From 1d854ff519b9c0867bfa4ecaf2f6329ca256f06a Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 10:29:06 -0500 Subject: Experimental merge of Ponyscape features into trunk (will not compile) (bzr r13090.1.1) --- po/de.po | 2 +- src/live_effects/CMakeLists.txt | 13 + src/live_effects/Makefile_insert | 14 +- src/live_effects/effect-enum.h | 6 + src/live_effects/effect.cpp | 39 +- src/live_effects/lpe-attach-path.cpp | 203 ++ src/live_effects/lpe-attach-path.h | 54 + src/live_effects/lpe-bounding-box.cpp | 67 + src/live_effects/lpe-bounding-box.h | 37 + src/live_effects/lpe-ellipse_5pts.cpp | 214 ++ src/live_effects/lpe-ellipse_5pts.h | 50 + src/live_effects/lpe-fill-between-many.cpp | 77 + src/live_effects/lpe-fill-between-many.h | 36 + src/live_effects/lpe-fill-between-strokes.cpp | 116 ++ src/live_effects/lpe-fill-between-strokes.h | 38 + src/live_effects/lpe-jointype.cpp | 203 ++ src/live_effects/lpe-jointype.h | 43 + src/live_effects/lpe-powerstroke-interpolators.h | 42 +- src/live_effects/lpe-powerstroke.cpp | 97 +- src/live_effects/lpe-powerstroke.h | 2 + src/live_effects/parameter/Makefile_insert | 4 + src/live_effects/parameter/originalpatharray.cpp | 486 +++++ src/live_effects/parameter/originalpatharray.h | 123 ++ .../parameter/powerstrokepointarray.cpp | 39 +- src/live_effects/parameter/powerstrokepointarray.h | 23 +- src/live_effects/parameter/transformedpoint.cpp | 182 ++ src/live_effects/parameter/transformedpoint.h | 87 + src/live_effects/pathoutlineprovider.h | 766 ++++++++ src/sp-item.cpp | 20 + src/sp-item.h | 10 + src/sp-object.h | 1 + src/ui/dialog/Makefile_insert | 4 + src/ui/dialog/lpe-powerstroke-properties.cpp | 203 ++ src/ui/dialog/lpe-powerstroke-properties.h | 99 + src/ui/dialog/objects.cpp | 2048 ++++++++++++++++++++ src/ui/dialog/objects.h | 255 +++ src/ui/dialog/tags.cpp | 1182 +++++++++++ src/ui/dialog/tags.h | 181 ++ src/ui/widget/clipmaskicon.cpp | 177 ++ src/ui/widget/clipmaskicon.h | 102 + src/ui/widget/highlight-picker.cpp | 176 ++ src/ui/widget/highlight-picker.h | 90 + src/ui/widget/insertordericon.cpp | 166 ++ src/ui/widget/insertordericon.h | 100 + src/ui/widget/layertypeicon.cpp | 167 ++ src/ui/widget/layertypeicon.h | 108 ++ 46 files changed, 8127 insertions(+), 25 deletions(-) create mode 100644 src/live_effects/lpe-attach-path.cpp create mode 100644 src/live_effects/lpe-attach-path.h create mode 100644 src/live_effects/lpe-bounding-box.cpp create mode 100644 src/live_effects/lpe-bounding-box.h create mode 100644 src/live_effects/lpe-ellipse_5pts.cpp create mode 100644 src/live_effects/lpe-ellipse_5pts.h create mode 100644 src/live_effects/lpe-fill-between-many.cpp create mode 100644 src/live_effects/lpe-fill-between-many.h create mode 100644 src/live_effects/lpe-fill-between-strokes.cpp create mode 100644 src/live_effects/lpe-fill-between-strokes.h create mode 100644 src/live_effects/lpe-jointype.cpp create mode 100755 src/live_effects/lpe-jointype.h create mode 100644 src/live_effects/parameter/originalpatharray.cpp create mode 100644 src/live_effects/parameter/originalpatharray.h create mode 100644 src/live_effects/parameter/transformedpoint.cpp create mode 100644 src/live_effects/parameter/transformedpoint.h create mode 100755 src/live_effects/pathoutlineprovider.h create mode 100644 src/ui/dialog/lpe-powerstroke-properties.cpp create mode 100644 src/ui/dialog/lpe-powerstroke-properties.h create mode 100644 src/ui/dialog/objects.cpp create mode 100644 src/ui/dialog/objects.h create mode 100644 src/ui/dialog/tags.cpp create mode 100644 src/ui/dialog/tags.h create mode 100644 src/ui/widget/clipmaskicon.cpp create mode 100644 src/ui/widget/clipmaskicon.h create mode 100644 src/ui/widget/highlight-picker.cpp create mode 100644 src/ui/widget/highlight-picker.h create mode 100644 src/ui/widget/insertordericon.cpp create mode 100644 src/ui/widget/insertordericon.h create mode 100644 src/ui/widget/layertypeicon.cpp create mode 100644 src/ui/widget/layertypeicon.h diff --git a/po/de.po b/po/de.po index c2da2b6b6..3e9afdd07 100644 --- a/po/de.po +++ b/po/de.po @@ -8649,7 +8649,7 @@ msgstr "Lineal" #. 0.49 #: ../src/live_effects/effect.cpp:123 msgid "Power stroke" -msgstr "Kräftige Kontur" +msgstr "Powerstroke" #: ../src/live_effects/effect.cpp:124 ../src/selection-chemistry.cpp:2789 msgid "Clone original path" diff --git a/src/live_effects/CMakeLists.txt b/src/live_effects/CMakeLists.txt index a5f50a69d..8ad1ccf9b 100644 --- a/src/live_effects/CMakeLists.txt +++ b/src/live_effects/CMakeLists.txt @@ -2,8 +2,10 @@ set(live_effects_SRC effect.cpp lpe-angle_bisector.cpp + lpe-attach-path.cpp lpe-bendpath.cpp lpe-boolops.cpp + lpe-bounding-box.cpp lpe-circle_3pts.cpp lpe-circle_with_radius.cpp lpe-clone-original.cpp @@ -11,8 +13,11 @@ set(live_effects_SRC lpe-copy_rotate.cpp lpe-curvestitch.cpp lpe-dynastroke.cpp + lpe-ellipse-5pts.cpp lpe-envelope.cpp lpe-extrude.cpp + lpe-fill-between-many.cpp + lpe-fill-between-strokes.cpp lpe-gears.cpp lpe-interpolate.cpp lpe-knot.cpp @@ -47,11 +52,13 @@ set(live_effects_SRC parameter/parameter.cpp parameter/path.cpp parameter/originalpath.cpp + parameter/originalpatharray.cpp parameter/path-reference.cpp parameter/point.cpp parameter/powerstrokepointarray.cpp parameter/random.cpp parameter/text.cpp + paramter/transformedpoint.cpp parameter/unit.cpp parameter/vector.cpp @@ -61,8 +68,10 @@ set(live_effects_SRC effect-enum.h effect.h lpe-angle_bisector.h + lpe-attach-path.h lpe-bendpath.h lpe-boolops.h + lpe-bounding-box.h lpe-circle_3pts.h lpe-circle_with_radius.h lpe-clone-original.h @@ -70,8 +79,11 @@ set(live_effects_SRC lpe-copy_rotate.h lpe-curvestitch.h lpe-dynastroke.h + lpe-ellipse-5pts.h lpe-envelope.h lpe-extrude.h + lpe-fill-between-many.h + lpe-fill-between-strokes.h lpe-gears.h lpe-interpolate.h lpe-knot.h @@ -109,6 +121,7 @@ set(live_effects_SRC parameter/path-reference.h parameter/path.h parameter/originalpath.h + parameter/originalpatharray.h parameter/point.h parameter/powerstrokepointarray.h parameter/random.h diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert index 9c3c171f2..76d7b418f 100644 --- a/src/live_effects/Makefile_insert +++ b/src/live_effects/Makefile_insert @@ -82,4 +82,16 @@ ink_common_sources += \ live_effects/lpe-path_length.cpp \ live_effects/lpe-path_length.h \ live_effects/lpe-line_segment.cpp \ - live_effects/lpe-line_segment.h + live_effects/lpe-line_segment.h \ + live_effects/lpe-bounding-box.cpp \ + live_effects/lpe-bounding-box.h \ + live_effects/lpe-attach-path.cpp \ + live_effects/lpe-attach-path.h \ + live_effects/lpe-fill-between-strokes.cpp \ + live_effects/lpe-fill-between-stroke.h \ + live_effects/lpe-fill-between-many.cpp \ + live_effects/lpe-fill-between-many.h \ + live_effects/lpe-ellipse_5pts.cpp \ + live_effects/lpe-ellipse_5pts.h \ + live_effects/lpe-jointype.cpp \ + live_effects/lpe-jointype.h diff --git a/src/live_effects/effect-enum.h b/src/live_effects/effect-enum.h index 43af33b53..46bc56a81 100644 --- a/src/live_effects/effect-enum.h +++ b/src/live_effects/effect-enum.h @@ -50,6 +50,12 @@ enum EffectType { EXTRUDE, POWERSTROKE, CLONE_ORIGINAL, + ATTACH_PATH, + FILL_BETWEEN_STROKES, + FILL_BETWEEN_MANY, + ELLIPSE_5PTS, + BOUNDING_BOX, + JOIN_TYPE, INVALID_LPE // This must be last (I made it such that it is not needed anymore I think..., Don't trust on it being last. - johan) }; diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 12990ee24..17b229352 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -//#define LPE_ENABLE_TEST_EFFECTS +#define LPE_ENABLE_TEST_EFFECTS #ifdef HAVE_CONFIG_H # include "config.h" @@ -47,6 +47,12 @@ #include "live_effects/lpe-extrude.h" #include "live_effects/lpe-powerstroke.h" #include "live_effects/lpe-clone-original.h" +#include "live_effects/lpe-attach-path.h" +#include "live_effects/lpe-fill-between-strokes.h" +#include "live_effects/lpe-fill-between-many.h" +#include "live_effects/lpe-ellipse_5pts.h" +#include "live_effects/lpe-bounding-box.h" +#include "live_effects/lpe-jointype.h" #include "xml/node-event-vector.h" #include "sp-object.h" @@ -103,9 +109,10 @@ const Util::EnumData LPETypeData[] = { {RECURSIVE_SKELETON, N_("Recursive skeleton"), "recursive_skeleton"}, {TANGENT_TO_CURVE, N_("Tangent to curve"), "tangent_to_curve"}, {TEXT_LABEL, N_("Text label"), "text_label"}, + {JOIN_TYPE, N_("Join type"), "join_type"}, #endif /* 0.46 */ - {BEND_PATH, N_("Bend"), "bend_path"}, + {BEND_PATH, N_("Bend"), "bend_path"}, {GEARS, N_("Gears"), "gears"}, {PATTERN_ALONG_PATH, N_("Pattern Along Path"), "skeletal"}, // for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG {CURVE_STITCH, N_("Stitch Sub-Paths"), "curvestitching"}, @@ -120,8 +127,14 @@ const Util::EnumData LPETypeData[] = { {SKETCH, N_("Sketch"), "sketch"}, {RULER, N_("Ruler"), "ruler"}, /* 0.49 */ - {POWERSTROKE, N_("Power stroke"), "powerstroke"}, - {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, + {POWERSTROKE, N_("Power stroke"), "powerstroke"}, + {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, +/* Ponyscape */ + {ATTACH_PATH, N_("Attach path"), "attach_path"}, + {FILL_BETWEEN_STROKES, N_("Fill between strokes"), "fill_between_strokes"}, + {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, + {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, + {BOUNDING_BOX, N_("Bounding Box"), "bounding_box"}, }; const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); @@ -245,6 +258,24 @@ Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj) case CLONE_ORIGINAL: neweffect = static_cast ( new LPECloneOriginal(lpeobj) ); break; + case ATTACH_PATH: + neweffect = static_cast ( new LPEAttachPath(lpeobj) ); + break; + case FILL_BETWEEN_STROKES: + neweffect = static_cast ( new LPEFillBetweenStrokes(lpeobj) ); + break; + case FILL_BETWEEN_MANY: + neweffect = static_cast ( new LPEFillBetweenMany(lpeobj) ); + break; + case ELLIPSE_5PTS: + neweffect = static_cast ( new LPEEllipse5Pts(lpeobj) ); + break; + case BOUNDING_BOX: + neweffect = static_cast ( new LPEBoundingBox(lpeobj) ); + break; + case JOIN_TYPE: + neweffect = static_cast ( new LPEJoinType(lpeobj) ); + break; default: g_warning("LivePathEffect::Effect::New called with invalid patheffect type (%d)", lpenr); neweffect = NULL; diff --git a/src/live_effects/lpe-attach-path.cpp b/src/live_effects/lpe-attach-path.cpp new file mode 100644 index 000000000..b3d5ed9b7 --- /dev/null +++ b/src/live_effects/lpe-attach-path.cpp @@ -0,0 +1,203 @@ +/* + * Copyright (C) Johan Engelen 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include + +#include "live_effects/lpe-attach-path.h" + +#include "display/curve.h" +#include "sp-item.h" +#include "2geom/path.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "2geom/bezier-curve.h" +#include "2geom/path-sink.h" +#include "parameter/parameter.h" +#include "live_effects/parameter/point.h" +#include "parameter/originalpath.h" +#include "2geom/affine.h" + +namespace Inkscape { +namespace LivePathEffect { + +LPEAttachPath::LPEAttachPath(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + start_path(_("Start path:"), _("Path to attach to the start of this path"), "startpath", &wr, this), + start_path_position(_("Start path position:"), _("Position to attach path start to"), "startposition", &wr, this, 0.0), + start_path_curve_start(_("Start path curve start:"), _("Starting curve"), "startcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), + start_path_curve_end(_("Start path curve end:"), _("Ending curve"), "startcurveend", &wr, this, Geom::Point(20,0)/*, true*/), + end_path(_("End path:"), _("Path to attach to the end of this path"), "endpath", &wr, this), + end_path_position(_("End path position:"), _("Position to attach path end to"), "endposition", &wr, this, 0.0), + end_path_curve_start(_("End path curve start:"), _("Starting curve"), "endcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), + end_path_curve_end(_("End path curve end:"), _("Ending curve"), "endcurveend", &wr, this, Geom::Point(20,0)/*, true*/) +{ + registerParameter( dynamic_cast(&start_path) ); + registerParameter( dynamic_cast(&start_path_position) ); + registerParameter( dynamic_cast(&start_path_curve_start) ); + registerParameter( dynamic_cast(&start_path_curve_end) ); + + registerParameter( dynamic_cast(&end_path) ); + registerParameter( dynamic_cast(&end_path_position) ); + registerParameter( dynamic_cast(&end_path_curve_start) ); + registerParameter( dynamic_cast(&end_path_curve_end) ); + + //perceived_path = true; + show_orig_path = true; + curve_start_previous_origin = start_path_curve_end.getOrigin(); + curve_end_previous_origin = end_path_curve_end.getOrigin(); +} + +LPEAttachPath::~LPEAttachPath() +{ + +} + +void LPEAttachPath::resetDefaults(SPItem const * item) +{ + curve_start_previous_origin = start_path_curve_end.getOrigin(); + curve_end_previous_origin = end_path_curve_end.getOrigin(); +} + +void LPEAttachPath::doBeforeEffect(const SPLPEItem *lpeitem) +{ + lpe_effect = lpeitem; +} + +void LPEAttachPath::doEffect (SPCurve * curve) +{ + std::vector this_pathv = curve->get_pathvector(); + if (lpe_effect && !this_pathv.empty()) { + Geom::Path p = Geom::Path(this_pathv.front().initialPoint()); + + bool set_start_end = start_path_curve_end.getOrigin() != curve_start_previous_origin; + bool set_end_end = end_path_curve_end.getOrigin() != curve_end_previous_origin; + + if (start_path.linksToPath()) { + + std::vector linked_pathv = start_path.get_pathvector(); + Geom::Affine linkedtransform = start_path.getObject()->getRelativeTransform(lpe_effect); + + if ( !linked_pathv.empty() ) + { + Geom::Path transformedpath = linked_pathv.front() * linkedtransform; + start_path_curve_start.setOrigin(this_pathv.front().initialPoint()); + + std::vector derivs = this_pathv.front().front().pointAndDerivatives(0, 3); + + for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { + Geom::Coord length = derivs[deriv_n].length(); + if ( ! Geom::are_near(length, 0) ) { + if (set_start_end) { + start_path_position.param_set_value(transformedpath.nearestPoint(start_path_curve_end.getOrigin())); + } + + if (start_path_position > transformedpath.size()) { + start_path_position.param_set_value(transformedpath.size()); + } else if (start_path_position < 0) { + start_path_position.param_set_value(0); + } + const Geom::Curve *c = start_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)start_path_position); + + std::vector derivs_2 = c->pointAndDerivatives(start_path_position >= transformedpath.size() ? 1 : (start_path_position - (int)start_path_position), 3); + for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { + Geom::Coord length_2 = derivs[deriv_n_2].length(); + if ( ! Geom::are_near(length_2, 0) ) { + start_path_curve_end.setOrigin(derivs_2[0]); + curve_start_previous_origin = start_path_curve_end.getOrigin(); + + double startangle = atan2(start_path_curve_start.getVector().y(), start_path_curve_start.getVector().x()); + double endangle = atan2(start_path_curve_end.getVector().y(), start_path_curve_end.getVector().x()); + double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); + double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); + Geom::Point pt1 = Geom::Point(start_path_curve_start.getVector().length() * cos(startangle + startderiv), start_path_curve_start.getVector().length() * sin(startangle + startderiv)); + Geom::Point pt2 = Geom::Point(start_path_curve_end.getVector().length() * cos(endangle + endderiv), start_path_curve_end.getVector().length() * sin(endangle + endderiv)); + p = Geom::Path(derivs_2[0]); + p.appendNew(-pt2 + derivs_2[0], -pt1 + this_pathv.front().initialPoint(), this_pathv.front().initialPoint()); + break; + + } + } + break; + } + } + } + } + + p.append(this_pathv.front()); + + if (end_path.linksToPath()) { + + std::vector linked_pathv = end_path.get_pathvector(); + Geom::Affine linkedtransform = end_path.getObject()->getRelativeTransform(lpe_effect); + + if ( !linked_pathv.empty() ) + { + Geom::Path transformedpath = linked_pathv.front() * linkedtransform; + Geom::Curve * last_seg_reverse = this_pathv.front().back().reverse(); + + end_path_curve_start.setOrigin(last_seg_reverse->initialPoint()); + + std::vector derivs = last_seg_reverse->pointAndDerivatives(0, 3); + for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { + Geom::Coord length = derivs[deriv_n].length(); + if ( ! Geom::are_near(length, 0) ) { + if (set_end_end) { + end_path_position.param_set_value(transformedpath.nearestPoint(end_path_curve_end.getOrigin())); + } + + if (end_path_position > transformedpath.size()) { + end_path_position.param_set_value(transformedpath.size()); + } else if (end_path_position < 0) { + end_path_position.param_set_value(0); + } + const Geom::Curve *c = end_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)end_path_position); + + std::vector derivs_2 = c->pointAndDerivatives(end_path_position >= transformedpath.size() ? 1 : (end_path_position - (int)end_path_position), 3); + for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { + Geom::Coord length_2 = derivs[deriv_n_2].length(); + if ( ! Geom::are_near(length_2, 0) ) { + + end_path_curve_end.setOrigin(derivs_2[0]); + curve_end_previous_origin = end_path_curve_end.getOrigin(); + + double startangle = atan2(end_path_curve_start.getVector().y(), end_path_curve_start.getVector().x()); + double endangle = atan2(end_path_curve_end.getVector().y(), end_path_curve_end.getVector().x()); + double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); + double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); + Geom::Point pt1 = Geom::Point(end_path_curve_start.getVector().length() * cos(startangle + startderiv), end_path_curve_start.getVector().length() * sin(startangle + startderiv)); + Geom::Point pt2 = Geom::Point(end_path_curve_end.getVector().length() * cos(endangle + endderiv), end_path_curve_end.getVector().length() * sin(endangle + endderiv)); + p.appendNew(-pt1 + this_pathv.front().finalPoint(), -pt2 + derivs_2[0], derivs_2[0]); + + break; + + } + } + break; + } + } + delete last_seg_reverse; + } + } + Geom::PathVector outvector; + outvector.push_back(p); + curve->set_pathvector(outvector); + } +} + +} // namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-attach-path.h b/src/live_effects/lpe-attach-path.h new file mode 100644 index 000000000..3dda189d6 --- /dev/null +++ b/src/live_effects/lpe-attach-path.h @@ -0,0 +1,54 @@ +#ifndef INKSCAPE_LPE_ATTACH_PATH_H +#define INKSCAPE_LPE_ATTACH_PATH_H + +/* + * Inkscape::LPEAttachPath + * + * Copyright (C) Ted Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/effect.h" +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/point.h" +#include "live_effects/parameter/originalpath.h" +#include "live_effects/parameter/vector.h" +#include "live_effects/parameter/bool.h" +#include "live_effects/parameter/transformedpoint.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEAttachPath : public Effect { +public: + LPEAttachPath(LivePathEffectObject *lpeobject); + virtual ~LPEAttachPath(); + + virtual void doBeforeEffect(const SPLPEItem *lpeitem); + virtual void doEffect (SPCurve * curve); + virtual void resetDefaults(SPItem const * item); + +private: + LPEAttachPath(const LPEAttachPath&); + LPEAttachPath& operator=(const LPEAttachPath&); + + Geom::Point curve_start_previous_origin; + Geom::Point curve_end_previous_origin; + + OriginalPathParam start_path; + ScalarParam start_path_position; + TransformedPointParam start_path_curve_start; + VectorParam start_path_curve_end; + + OriginalPathParam end_path; + ScalarParam end_path_position; + TransformedPointParam end_path_curve_start; + VectorParam end_path_curve_end; + const SPLPEItem * lpe_effect; +}; + +}; //namespace LivePathEffect +}; //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-bounding-box.cpp b/src/live_effects/lpe-bounding-box.cpp new file mode 100644 index 000000000..bafd5e70e --- /dev/null +++ b/src/live_effects/lpe-bounding-box.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include + +#include "live_effects/lpe-bounding-box.h" + +#include "display/curve.h" +#include "sp-item.h" +#include "2geom/path.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "2geom/bezier-curve.h" +#include "lpe-bounding-box.h" + +namespace Inkscape { +namespace LivePathEffect { + +LPEBoundingBox::LPEBoundingBox(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), + visual_bounds(_("Visual Bounds"), _("Uses the visual bounding box"), "visualbounds", &wr, this) +{ + registerParameter( dynamic_cast(&linked_path) ); + registerParameter( dynamic_cast(&visual_bounds) ); + //perceived_path = true; +} + +LPEBoundingBox::~LPEBoundingBox() +{ + +} + +void LPEBoundingBox::doEffect (SPCurve * curve) +{ + if (curve) { + if ( linked_path.linksToPath() && linked_path.getObject() ) { + SPItem * item = linked_path.getObject(); + Geom::OptRect bbox = visual_bounds.get_value() ? item->visualBounds() : item->geometricBounds(); + Geom::Path p(Geom::Point(bbox->left(), bbox->top())); + p.appendNew(Geom::Point(bbox->right(), bbox->top())); + p.appendNew(Geom::Point(bbox->right(), bbox->bottom())); + p.appendNew(Geom::Point(bbox->left(), bbox->bottom())); + p.appendNew(Geom::Point(bbox->left(), bbox->top())); + std::vector out; + out.push_back(p); + curve->set_pathvector(out); + } + } +} + +} // namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-bounding-box.h b/src/live_effects/lpe-bounding-box.h new file mode 100644 index 000000000..d028a20ac --- /dev/null +++ b/src/live_effects/lpe-bounding-box.h @@ -0,0 +1,37 @@ +#ifndef INKSCAPE_LPE_BOUNDING_BOX_H +#define INKSCAPE_LPE_BOUNDING_BOX_H + +/* + * Inkscape::LPEFillBetweenStrokes + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/effect.h" +#include "live_effects/parameter/originalpath.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEBoundingBox : public Effect { +public: + LPEBoundingBox(LivePathEffectObject *lpeobject); + virtual ~LPEBoundingBox(); + + virtual void doEffect (SPCurve * curve); + +private: + OriginalPathParam linked_path; + BoolParam visual_bounds; + +private: + LPEBoundingBox(const LPEBoundingBox&); + LPEBoundingBox& operator=(const LPEBoundingBox&); +}; + +}; //namespace LivePathEffect +}; //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-ellipse_5pts.cpp b/src/live_effects/lpe-ellipse_5pts.cpp new file mode 100644 index 000000000..b0a5919fe --- /dev/null +++ b/src/live_effects/lpe-ellipse_5pts.cpp @@ -0,0 +1,214 @@ +/** \file + * LPE "Ellipse through 5 points" implementation + */ + +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/lpe-ellipse_5pts.h" + +// You might need to include other 2geom files. You can add them here: +#include +#include <2geom/path.h> +#include <2geom/circle.h> +#include <2geom/ellipse.h> +#include <2geom/path-sink.h> +#include "inkscape.h" +#include "desktop.h" +#include "message-stack.h" + +namespace Inkscape { +namespace LivePathEffect { + +LPEEllipse5Pts::LPEEllipse5Pts(LivePathEffectObject *lpeobject) : + Effect(lpeobject) +{ + //perceived_path = true; +} + +LPEEllipse5Pts::~LPEEllipse5Pts() +{ +} + +static double _det3(double (*mat)[3]) +{ + for (int i = 0; i < 2; i++) + { + for (int j = i + 1; j < 3; j++) + { + for (int k = i + 1; k < 3; k++) + { + mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); + if (i) mat[j][k] /= mat[i-1][i-1]; + } + } + } + return mat[2][2]; +} +static double _det5(double (*mat)[5]) +{ + for (int i = 0; i < 4; i++) + { + for (int j = i + 1; j < 5; j++) + { + for (int k = i + 1; k < 5; k++) + { + mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); + if (i) mat[j][k] /= mat[i-1][i-1]; + } + } + } + return mat[4][4]; +} + +std::vector +LPEEllipse5Pts::doEffect_path (std::vector const & path_in) +{ + std::vector path_out = std::vector(); + + if (path_in[0].size() < 4) { + + SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Five points required for constructing an ellipse")); + return path_in; + } + // we assume that the path has >= 3 nodes + Geom::Point A = path_in[0].initialPoint(); + Geom::Point B = path_in[0].pointAt(1); + Geom::Point C = path_in[0].pointAt(2); + Geom::Point D = path_in[0].pointAt(3); + Geom::Point E = path_in[0].pointAt(4); + + using namespace Geom; + + double rowmajor_matrix[5][6] = + { + {A.x()*A.x(), A.x()*A.y(), A.y()*A.y(), A.x(), A.y(), 1}, + {B.x()*B.x(), B.x()*B.y(), B.y()*B.y(), B.x(), B.y(), 1}, + {C.x()*C.x(), C.x()*C.y(), C.y()*C.y(), C.x(), C.y(), 1}, + {D.x()*D.x(), D.x()*D.y(), D.y()*D.y(), D.x(), D.y(), 1}, + {E.x()*E.x(), E.x()*E.y(), E.y()*E.y(), E.x(), E.y(), 1} + }; + + double mat_a[5][5] = + { + {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, + {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, + {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, + {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, + {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} + }; + double mat_b[5][5] = + { + {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, + {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, + {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, + {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, + {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} + }; + double mat_c[5][5] = + { + {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, + {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, + {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, + {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, + {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} + }; + double mat_d[5][5] = + { + {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, + {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, + {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, + {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, + {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} + }; + double mat_e[5][5] = + { + {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, + {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, + {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, + {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, + {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} + }; + double mat_f[5][5] = + { + {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, + {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, + {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, + {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, + {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]} + }; + + double a1 = _det5(mat_a); + double b1 = -_det5(mat_b); + double c1 = _det5(mat_c); + double d1 = -_det5(mat_d); + double e1 = _det5(mat_e); + double f1 = -_det5(mat_f); + + double mat_check[][3] = + { + {a1, b1/2, d1/2}, + {b1/2, c1, e1/2}, + {d1/2, e1/2, f1} + }; + + if (_det3(mat_check) == 0 || a1*c1 - b1*b1/4 <= 0) { + SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No ellipse found for specified points")); + return path_in; + } + + Geom::Ellipse el(a1, b1, c1, d1, e1, f1); + + double s, e; + double x0, y0, x1, y1, x2, y2, x3, y3; + double len; + + // figure out if we have a slice, guarding against rounding errors + + Path p(Geom::Point(cos(0), sin(0))); + + double end = 2 * M_PI; + for (s = 0; s < end; s += M_PI_2) { + e = s + M_PI_2; + if (e > end) + e = end; + len = 4*tan((e - s)/4)/3; + x0 = cos(s); + y0 = sin(s); + x1 = x0 + len * cos(s + M_PI_2); + y1 = y0 + len * sin(s + M_PI_2); + x3 = cos(e); + y3 = sin(e); + x2 = x3 + len * cos(e - M_PI_2); + y2 = y3 + len * sin(e - M_PI_2); + p.appendNew(Geom::Point(x1,y1), Geom::Point(x2,y2), Geom::Point(x3,y3)); + } + + Geom::Affine aff = Geom::Scale(el.ray(Geom::X), el.ray(Geom::Y)) * Geom::Rotate(el.rot_angle()) * Geom::Translate(el.center()); + + path_out.push_back(p * aff); + + return path_out; +} + +/* ######################## */ + +} //namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-ellipse_5pts.h b/src/live_effects/lpe-ellipse_5pts.h new file mode 100644 index 000000000..d3b1fccfa --- /dev/null +++ b/src/live_effects/lpe-ellipse_5pts.h @@ -0,0 +1,50 @@ +#ifndef INKSCAPE_LPE_ELLIPSE_5PTS_H +#define INKSCAPE_LPE_ELLIPSE_5PTS_H + +/** \file + * LPE "Ellipse through 5 points" implementation + */ + +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/effect.h" +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/point.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEEllipse5Pts : public Effect { +public: + LPEEllipse5Pts(LivePathEffectObject *lpeobject); + virtual ~LPEEllipse5Pts(); + + virtual std::vector doEffect_path (std::vector const & path_in); + +private: + LPEEllipse5Pts(const LPEEllipse5Pts&); + LPEEllipse5Pts& operator=(const LPEEllipse5Pts&); +}; + +} //namespace LivePathEffect +} //namespace Inkscape + +#endif + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-fill-between-many.cpp b/src/live_effects/lpe-fill-between-many.cpp new file mode 100644 index 000000000..00cc1fed5 --- /dev/null +++ b/src/live_effects/lpe-fill-between-many.cpp @@ -0,0 +1,77 @@ +/* + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include + +#include "live_effects/lpe-fill-between-many.h" + +#include "display/curve.h" +#include "sp-item.h" +#include "2geom/path.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "2geom/bezier-curve.h" + +namespace Inkscape { +namespace LivePathEffect { + +LPEFillBetweenMany::LPEFillBetweenMany(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + linked_paths(_("Linked path:"), _("Paths from which to take the original path data"), "linkedpaths", &wr, this) +{ + registerParameter( dynamic_cast(&linked_paths) ); + //perceived_path = true; +} + +LPEFillBetweenMany::~LPEFillBetweenMany() +{ + +} + +void LPEFillBetweenMany::doEffect (SPCurve * curve) +{ + std::vector res_pathv; + SPItem * firstObj = NULL; + for (std::vector::iterator iter = linked_paths._vector.begin(); iter != linked_paths._vector.end(); iter++) { + SPObject *obj; + if ((*iter)->ref.isAttached() && (obj = (*iter)->ref.getObject()) && SP_IS_ITEM(obj) && !(*iter)->_pathvector.empty()) { + Geom::Path linked_path; + if ((*iter)->reversed) { + linked_path = (*iter)->_pathvector.front().reverse(); + } else { + linked_path = (*iter)->_pathvector.front(); + } + + if (!res_pathv.empty()) { + linked_path = linked_path * SP_ITEM(obj)->getRelativeTransform(firstObj); + res_pathv.front().appendNew(linked_path.initialPoint()); + res_pathv.front().append(linked_path); + } else { + firstObj = SP_ITEM(obj); + res_pathv.push_back(linked_path); + } + } + } + if (!res_pathv.empty()) { + res_pathv.front().close(); + } + curve->set_pathvector(res_pathv); +} + +} // namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-fill-between-many.h b/src/live_effects/lpe-fill-between-many.h new file mode 100644 index 000000000..99ee8b15f --- /dev/null +++ b/src/live_effects/lpe-fill-between-many.h @@ -0,0 +1,36 @@ +#ifndef INKSCAPE_LPE_FILL_BETWEEN_MANY_H +#define INKSCAPE_LPE_FILL_BETWEEN_MANY_H + +/* + * Inkscape::LPEFillBetweenStrokes + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/effect.h" +#include "live_effects/parameter/originalpatharray.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEFillBetweenMany : public Effect { +public: + LPEFillBetweenMany(LivePathEffectObject *lpeobject); + virtual ~LPEFillBetweenMany(); + + virtual void doEffect (SPCurve * curve); + +private: + OriginalPathArrayParam linked_paths; + +private: + LPEFillBetweenMany(const LPEFillBetweenMany&); + LPEFillBetweenMany& operator=(const LPEFillBetweenMany&); +}; + +}; //namespace LivePathEffect +}; //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-fill-between-strokes.cpp b/src/live_effects/lpe-fill-between-strokes.cpp new file mode 100644 index 000000000..e72979ed0 --- /dev/null +++ b/src/live_effects/lpe-fill-between-strokes.cpp @@ -0,0 +1,116 @@ +/* + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include + +#include "live_effects/lpe-fill-between-strokes.h" + +#include "display/curve.h" +#include "sp-item.h" +#include "2geom/path.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "2geom/bezier-curve.h" + +namespace Inkscape { +namespace LivePathEffect { + +LPEFillBetweenStrokes::LPEFillBetweenStrokes(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), + second_path(_("Second path:"), _("Second path from which to take the original path data"), "secondpath", &wr, this), + reverse_second(_("Reverse Second"), _("Reverses the second path order"), "reversesecond", &wr, this) +{ + registerParameter( dynamic_cast(&linked_path) ); + registerParameter( dynamic_cast(&second_path) ); + registerParameter( dynamic_cast(&reverse_second) ); + //perceived_path = true; +} + +LPEFillBetweenStrokes::~LPEFillBetweenStrokes() +{ + +} + +void LPEFillBetweenStrokes::doEffect (SPCurve * curve) +{ + if (curve) { + if ( linked_path.linksToPath() && second_path.linksToPath() && linked_path.getObject() && second_path.getObject() ) { + std::vector linked_pathv = linked_path.get_pathvector(); + std::vector second_pathv = second_path.get_pathvector(); + std::vector result_linked_pathv; + std::vector result_second_pathv; + Geom::Affine second_transform = second_path.getObject()->getRelativeTransform(linked_path.getObject()); + + for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) + { + result_linked_pathv.push_back((*iter)); + } + for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) + { + result_second_pathv.push_back((*iter) * second_transform); + } + + if ( !result_linked_pathv.empty() && !result_second_pathv.empty() && !result_linked_pathv.front().closed() ) { + if (reverse_second.get_value()) + { + result_linked_pathv.front().appendNew(result_second_pathv.front().finalPoint()); + result_linked_pathv.front().append(result_second_pathv.front().reverse()); + } + else + { + result_linked_pathv.front().appendNew(result_second_pathv.front().initialPoint()); + result_linked_pathv.front().append(result_second_pathv.front()); + } + curve->set_pathvector(result_linked_pathv); + } + else if ( !result_linked_pathv.empty() ) { + curve->set_pathvector(result_linked_pathv); + } + else if ( !result_second_pathv.empty() ) { + curve->set_pathvector(result_second_pathv); + } + } + else if ( linked_path.linksToPath() && linked_path.getObject() ) { + std::vector linked_pathv = linked_path.get_pathvector(); + std::vector result_pathv; + + for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) + { + result_pathv.push_back((*iter)); + } + if ( !result_pathv.empty() ) { + curve->set_pathvector(result_pathv); + } + } + else if ( second_path.linksToPath() && second_path.getObject() ) { + std::vector second_pathv = second_path.get_pathvector(); + std::vector result_pathv; + + for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) + { + result_pathv.push_back((*iter)); + } + if ( !result_pathv.empty() ) { + curve->set_pathvector(result_pathv); + } + } + } +} + +} // namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/lpe-fill-between-strokes.h b/src/live_effects/lpe-fill-between-strokes.h new file mode 100644 index 000000000..ec57b1852 --- /dev/null +++ b/src/live_effects/lpe-fill-between-strokes.h @@ -0,0 +1,38 @@ +#ifndef INKSCAPE_LPE_FILL_BETWEEN_STROKES_H +#define INKSCAPE_LPE_FILL_BETWEEN_STROKES_H + +/* + * Inkscape::LPEFillBetweenStrokes + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/effect.h" +#include "live_effects/parameter/originalpath.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEFillBetweenStrokes : public Effect { +public: + LPEFillBetweenStrokes(LivePathEffectObject *lpeobject); + virtual ~LPEFillBetweenStrokes(); + + virtual void doEffect (SPCurve * curve); + +private: + OriginalPathParam linked_path; + OriginalPathParam second_path; + BoolParam reverse_second; + +private: + LPEFillBetweenStrokes(const LPEFillBetweenStrokes&); + LPEFillBetweenStrokes& operator=(const LPEFillBetweenStrokes&); +}; + +}; //namespace LivePathEffect +}; //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp new file mode 100644 index 000000000..97c0a1b8a --- /dev/null +++ b/src/live_effects/lpe-jointype.cpp @@ -0,0 +1,203 @@ +/** \file + * LPE "Join Type" implementation + */ + /* Authors: + * + * Liam P White + * + * Copyright (C) 2014 Authors + * + * Released under GNU GPL v2, read the file 'COPYING' for more information + */ + +#include + +#include "sp-shape.h" +#include "style.h" +#include "xml/repr.h" +#include "sp-paint-server.h" +#include "svg/svg-color.h" +#include "desktop-style.h" +#include "svg/css-ostringstream.h" +#include "display/curve.h" +#include "live_effects/parameter/enum.h" + +#include <2geom/path.h> +#include <2geom/svg-elliptical-arc.h> +#include "live_effects/pathoutlineprovider.h" + +#include "lpe-jointype.h" + +namespace Inkscape { +namespace LivePathEffect { + +static const Util::EnumData JoinTypeData[] = { + {LINEJOIN_STRAIGHT, N_("Beveled"), "bevel"}, + {LINEJOIN_ROUND, N_("Rounded"), "round"}, + {LINEJOIN_POINTY, N_("Miter"), "miter"}, + {LINEJOIN_REFLECTED, N_("Reflected"), "extrapolated"}, + {LINEJOIN_EXTRAPOLATED, N_("Extrapolated arc"), "extrp_arc"} +}; + +static const Util::EnumData CapTypeData[] = { + {butt_straight, N_("Butt"), "butt"}, + {butt_round, N_("Rounded"), "round"}, + {butt_square, N_("Square"), "square"}, + {butt_pointy, N_("Peak"), "peak"} +}; + +static const Util::EnumDataConverter CapTypeConverter(CapTypeData, sizeof(CapTypeData)/sizeof(*CapTypeData)); +static const Util::EnumDataConverter JoinTypeConverter(JoinTypeData, sizeof(JoinTypeData)/sizeof(*JoinTypeData)); + +LPEJoinType::LPEJoinType(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + line_width(_("Line width"), _("Thickness of the stroke"), "line_width", &wr, this, 10.), + linecap_type(_("Line cap"), _("The end shape of the stroke"), "linecap_type", CapTypeConverter, &wr, this, butt_straight), + linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", JoinTypeConverter, &wr, this, join_pointy), + miter_limit(_("Miter limit:"), _("Maximum length of the miter join (in units of stroke width)"), "miter_limit", &wr, this, 100.), + attempt_force_join(_("Force miter"), _("Overrides the miter limit and forces a join."), "attempt_force_join", &wr, this, true) +{ + show_orig_path = true; + registerParameter( dynamic_cast(&linecap_type) ); + registerParameter( dynamic_cast(&line_width) ); + registerParameter( dynamic_cast(&linejoin_type) ); + registerParameter( dynamic_cast(&miter_limit) ); + registerParameter( dynamic_cast(&attempt_force_join) ); + was_initialized = false; +} + +LPEJoinType::~LPEJoinType() +{ +} + +//from LPEPowerStroke -- sets fill if stroke color because we will +//be converting to a fill to make the new join. + +void LPEJoinType::doOnApply(SPLPEItem const* lpeitem) +{ + if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem* item = const_cast(lpeitem); + double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed : 1.; + + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->stroke.isSet()) { + if (lpeitem->style->stroke.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getStrokePaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "fill", str.c_str()); + } + } else if (lpeitem->style->stroke.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "fill", c); + } else { + sp_repr_css_set_property (css, "fill", "none"); + } + } else { + sp_repr_css_unset_property (css, "fill"); + } + + sp_repr_css_set_property(css, "stroke", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + if (!was_initialized) + { + was_initialized = true; + line_width.param_set_value(width); + } + } else { + g_warning("LPE Join Type can only be applied to paths (not groups)."); + } +} + +//from LPEPowerStroke -- sets stroke color from existing fill color + +void LPEJoinType::doOnRemove(SPLPEItem const* lpeitem) +{ + + if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem *item = const_cast(lpeitem); + + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->fill.isSet()) { + if (lpeitem->style->fill.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getFillPaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "stroke", str.c_str()); + } + } else if (lpeitem->style->fill.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "stroke", c); + } else { + sp_repr_css_set_property (css, "stroke", "none"); + } + } else { + sp_repr_css_unset_property (css, "stroke"); + } + + Inkscape::CSSOStringStream os; + os << fabs(line_width); + sp_repr_css_set_property (css, "stroke-width", os.str().c_str()); + + sp_repr_css_set_property(css, "fill", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + item->updateRepr(); + } +} + + +std::vector LPEJoinType::doEffect_path(std::vector const & path_in) +{ + std::vector path_out = std::vector(); + if (path_in.empty()) + { + return path_out; + } + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + #define miter_lim ( (attempt_force_join) ? std::numeric_limits::max() : fabs(line_width * miter_limit)) + + //magic! + if (linejoin_type.get_value() <= 2) + { + p.Outline(&outlinepath, line_width / 2, static_cast( linejoin_type.get_value() ), + static_cast( linecap_type.get_value() ), miter_lim); + //fix memory leak + std::vector *pv_p = outlinepath.MakePathVector(); + path_out = *pv_p; + delete pv_p; + + } else if (linejoin_type.get_value() == 3) { + //reflected arc join + path_out = Outline::outlinePath(path_in, line_width, static_cast( linejoin_type.get_value() ), + static_cast( linecap_type.get_value() ), miter_lim); + + } else if (linejoin_type.get_value() == 4) { + //extrapolated arc join + path_out = Outline::outlinePath_extr(path_in, line_width, LINEJOIN_STRAIGHT, static_cast(linecap_type.get_value()), miter_lim); + + } + + #undef miter_lim + return path_out; +} + +} //namespace LivePathEffect +} //namespace Inkscape diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h new file mode 100755 index 000000000..db113c66a --- /dev/null +++ b/src/live_effects/lpe-jointype.h @@ -0,0 +1,43 @@ +/* Authors: + * Liam P White + * + * Copyright (C) 2014 Authors + * + * Released under GNU GPL v2, read the file COPYING for more information + */ +#ifndef INKSCAPE_LPE_JOINTYPE_H +#define INKSCAPE_LPE_JOINTYPE_H + +#include "live_effects/effect.h" +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/point.h" +#include "live_effects/parameter/enum.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEJoinType : public Effect { +public: + LPEJoinType(LivePathEffectObject *lpeobject); + virtual ~LPEJoinType(); + + virtual void doOnApply(SPLPEItem const* lpeitem); + virtual void doOnRemove(SPLPEItem const* lpeitem); + virtual std::vector doEffect_path (std::vector const & path_in); + +private: + LPEJoinType(const LPEJoinType&); + LPEJoinType& operator=(const LPEJoinType&); + + ScalarParam line_width; + EnumParam linecap_type; + EnumParam linejoin_type; + ScalarParam miter_limit; + BoolParam attempt_force_join; + bool was_initialized; +}; + +} //namespace LivePathEffect +} //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-powerstroke-interpolators.h b/src/live_effects/lpe-powerstroke-interpolators.h index 6f5b75af8..f080b06e6 100644 --- a/src/live_effects/lpe-powerstroke-interpolators.h +++ b/src/live_effects/lpe-powerstroke-interpolators.h @@ -27,7 +27,8 @@ enum InterpolatorType { INTERP_LINEAR, INTERP_CUBICBEZIER, INTERP_CUBICBEZIER_JOHAN, - INTERP_SPIRO + INTERP_SPIRO, + INTERP_CUBICBEZIER_SMOOTH }; class Interpolator { @@ -133,6 +134,43 @@ private: CubicBezierJohan& operator=(const CubicBezierJohan&); }; +/// @todo invent name for this class +class CubicBezierSmooth : public Interpolator { +public: + CubicBezierSmooth(double beta = 0.2) { + _beta = beta; + }; + virtual ~CubicBezierSmooth() {}; + + virtual Path interpolateToPath(std::vector const &points) const { + Path fit; + fit.start(points.at(0)); + unsigned int num_points = points.size(); + for (unsigned int i = 1; i < num_points; ++i) { + Point p0 = points.at(i-1); + Point p1 = points.at(i); + Point dx = Point(p1[X] - p0[X], 0); + if (i == 1) { + fit.appendNew(p0, p1-0.75*dx, p1); + } else if (i == points.size() - 1) { + fit.appendNew(p0+0.75*dx, p1, p1); + } else { + fit.appendNew(p0+_beta*dx, p1-_beta*dx, p1); + } + } + return fit; + }; + + void setBeta(double beta) { + _beta = beta; + } + + double _beta; + +private: + CubicBezierSmooth(const CubicBezierSmooth&); + CubicBezierSmooth& operator=(const CubicBezierSmooth&); +}; class SpiroInterpolator : public Interpolator { public: @@ -179,6 +217,8 @@ Interpolator::create(InterpolatorType type) { return new Geom::Interpolate::CubicBezierJohan(); case INTERP_SPIRO: return new Geom::Interpolate::SpiroInterpolator(); + case INTERP_CUBICBEZIER_SMOOTH: + return new Geom::Interpolate::CubicBezierSmooth(); default: return new Geom::Interpolate::Linear(); } diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp index acf8ab6a5..f6bc1de65 100644 --- a/src/live_effects/lpe-powerstroke.cpp +++ b/src/live_effects/lpe-powerstroke.cpp @@ -15,6 +15,11 @@ #include "sp-shape.h" #include "style.h" +#include "xml/repr.h" +#include "sp-paint-server.h" +#include "svg/svg-color.h" +#include "desktop-style.h" +#include "svg/css-ostringstream.h" #include "display/curve.h" #include <2geom/path.h> @@ -185,6 +190,7 @@ namespace Inkscape { namespace LivePathEffect { static const Util::EnumData InterpolatorTypeData[] = { + {Geom::Interpolate::INTERP_CUBICBEZIER_SMOOTH, N_("CubicBezierSmooth"), "CubicBezierSmooth"}, {Geom::Interpolate::INTERP_LINEAR , N_("Linear"), "Linear"}, {Geom::Interpolate::INTERP_CUBICBEZIER , N_("CubicBezierFit"), "CubicBezierFit"}, {Geom::Interpolate::INTERP_CUBICBEZIER_JOHAN , N_("CubicBezierJohan"), "CubicBezierJohan"}, @@ -222,9 +228,7 @@ static const Util::EnumData LineJoinTypeData[] = { {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, {LINEJOIN_MITER, N_("Miter"), "miter"}, {LINEJOIN_SPIRO, N_("Spiro"), "spiro"}, -#ifdef LPE_ENABLE_TEST_EFFECTS {LINEJOIN_EXTRP_MITER_ARC, N_("Extrapolated arc"), "extrp_arc"}, -#endif }; static const Util::EnumDataConverter LineJoinTypeConverter(LineJoinTypeData, sizeof(LineJoinTypeData)/sizeof(*LineJoinTypeData)); @@ -232,12 +236,12 @@ LPEPowerStroke::LPEPowerStroke(LivePathEffectObject *lpeobject) : Effect(lpeobject), offset_points(_("Offset points"), _("Offset points"), "offset_points", &wr, this), sort_points(_("Sort points"), _("Sort offset points according to their time value along the curve"), "sort_points", &wr, this, true), - interpolator_type(_("Interpolator type:"), _("Determines which kind of interpolator will be used to interpolate between stroke width along the path"), "interpolator_type", InterpolatorTypeConverter, &wr, this, Geom::Interpolate::INTERP_CUBICBEZIER_JOHAN), + interpolator_type(_("Interpolator type:"), _("Determines which kind of interpolator will be used to interpolate between stroke width along the path"), "interpolator_type", InterpolatorTypeConverter, &wr, this, Geom::Interpolate::INTERP_CUBICBEZIER), interpolator_beta(_("Smoothness:"), _("Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear interpolation, 1 = smooth"), "interpolator_beta", &wr, this, 0.2), - start_linecap_type(_("Start cap:"), _("Determines the shape of the path's start"), "start_linecap_type", LineCapTypeConverter, &wr, this, LINECAP_ROUND), - linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", LineJoinTypeConverter, &wr, this, LINEJOIN_ROUND), + start_linecap_type(_("Start cap:"), _("Determines the shape of the path's start"), "start_linecap_type", LineCapTypeConverter, &wr, this, LINECAP_BUTT), + linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", LineJoinTypeConverter, &wr, this, LINEJOIN_EXTRP_MITER_ARC), miter_limit(_("Miter limit:"), _("Maximum length of the miter (in units of stroke width)"), "miter_limit", &wr, this, 4.), - end_linecap_type(_("End cap:"), _("Determines the shape of the path's end"), "end_linecap_type", LineCapTypeConverter, &wr, this, LINECAP_ROUND) + end_linecap_type(_("End cap:"), _("Determines the shape of the path's end"), "end_linecap_type", LineCapTypeConverter, &wr, this, LINECAP_BUTT) { show_orig_path = true; @@ -266,20 +270,52 @@ void LPEPowerStroke::doOnApply(SPLPEItem const* lpeitem) { if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem* item = const_cast(lpeitem); std::vector points; Geom::PathVector const &pathv = SP_SHAPE(lpeitem)->_curve->get_pathvector(); - double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed : 1.; + double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed / 2 : 1.; + + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->stroke.isSet()) { + if (lpeitem->style->stroke.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getStrokePaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "fill", str.c_str()); + } + } else if (lpeitem->style->stroke.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "fill", c); + } else { + sp_repr_css_set_property (css, "fill", "none"); + } + } else { + sp_repr_css_unset_property (css, "fill"); + } + + sp_repr_css_set_property(css, "stroke", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + + item->updateRepr(); if (pathv.empty()) { - points.push_back( Geom::Point(0.,width) ); + points.push_back( Geom::Point(0.2,width) ); points.push_back( Geom::Point(0.5,width) ); - points.push_back( Geom::Point(1.,width) ); + points.push_back( Geom::Point(0.8,width) ); } else { Geom::Path const &path = pathv.front(); Geom::Path::size_type const size = path.size_default(); - points.push_back( Geom::Point(0.,width) ); + if (!path.closed()) { + points.push_back( Geom::Point(0.2,width) ); + } points.push_back( Geom::Point(0.5*size,width) ); if (!path.closed()) { - points.push_back( Geom::Point(size,width) ); + points.push_back( Geom::Point(size - 0.2,width) ); } } offset_points.param_set_and_write_new_value(points); @@ -288,6 +324,45 @@ LPEPowerStroke::doOnApply(SPLPEItem const* lpeitem) } } +void LPEPowerStroke::doOnRemove(SPLPEItem const* lpeitem) +{ + if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem *item = const_cast(lpeitem); + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->fill.isSet()) { + if (lpeitem->style->fill.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getFillPaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "stroke", str.c_str()); + } + } else if (lpeitem->style->fill.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "stroke", c); + } else { + sp_repr_css_set_property (css, "stroke", "none"); + } + } else { + sp_repr_css_unset_property (css, "stroke"); + } + + Inkscape::CSSOStringStream os; + os << offset_points.median_width() * 2; + sp_repr_css_set_property (css, "stroke-width", os.str().c_str()); + + sp_repr_css_set_property(css, "fill", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + + item->updateRepr(); + } +} + void LPEPowerStroke::adjustForNewPath(std::vector const & path_in) { diff --git a/src/live_effects/lpe-powerstroke.h b/src/live_effects/lpe-powerstroke.h index 7bc736820..a773434aa 100644 --- a/src/live_effects/lpe-powerstroke.h +++ b/src/live_effects/lpe-powerstroke.h @@ -25,9 +25,11 @@ public: LPEPowerStroke(LivePathEffectObject *lpeobject); virtual ~LPEPowerStroke(); + virtual std::vector doEffect_path (std::vector const & path_in); virtual void doOnApply(SPLPEItem const* lpeitem); + virtual void doOnRemove(SPLPEItem const* lpeitem); // methods called by path-manipulator upon edits void adjustForNewPath(std::vector const & path_in); diff --git a/src/live_effects/parameter/Makefile_insert b/src/live_effects/parameter/Makefile_insert index efdda686a..37cc3dc62 100644 --- a/src/live_effects/parameter/Makefile_insert +++ b/src/live_effects/parameter/Makefile_insert @@ -18,10 +18,14 @@ ink_common_sources += \ live_effects/parameter/path.h \ live_effects/parameter/originalpath.cpp \ live_effects/parameter/originalpath.h \ + live_effects/parameter/originalpatharray.cpp \ + live_effects/parameter/originalpatharray.h \ live_effects/parameter/powerstrokepointarray.cpp \ live_effects/parameter/powerstrokepointarray.h \ live_effects/parameter/text.cpp \ live_effects/parameter/text.h \ + live_effects/parameter/transformedpoint.cpp \ + live_effects/parameter/transformedpoint.h \ live_effects/parameter/unit.cpp \ live_effects/parameter/unit.h \ live_effects/parameter/vector.cpp \ diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp new file mode 100644 index 000000000..29e4c409c --- /dev/null +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -0,0 +1,486 @@ +/* + * Copyright (C) Johan Engelen 2008 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/parameter/originalpatharray.h" + +#include +#include +#include +#include + +#include + +#include "inkscape.h" +#include "icon-size.h" +#include "widgets/icon.h" +#include "ui/clipboard.h" +#include "svg/svg.h" +#include "svg/stringstream.h" +#include "originalpath.h" +#include "uri.h" +#include "display/curve.h" + +#include +#include <2geom/coord.h> +#include <2geom/point.h> +#include "sp-shape.h" +#include "sp-text.h" +#include "live_effects/effect.h" + +#include "verbs.h" +#include "document-undo.h" +#include "document.h" + +namespace Inkscape { + +namespace LivePathEffect { + +class OriginalPathArrayParam::ModelColumns : public Gtk::TreeModel::ColumnRecord +{ +public: + + ModelColumns() + { + add(_colObject); + add(_colLabel); + add(_colReverse); + } + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; + Gtk::TreeModelColumn _colReverse; +}; + +OriginalPathArrayParam::OriginalPathArrayParam( const Glib::ustring& label, + const Glib::ustring& tip, + const Glib::ustring& key, + Inkscape::UI::Widget::Registry* wr, + Effect* effect ) +: Parameter(label, tip, key, wr, effect), + _vector(), + _tree(), + _text_renderer(), + _toggle_renderer(), + _scroller() +{ + _model = new ModelColumns(); + _store = Gtk::TreeStore::create(*_model); + _tree.set_model(_store); + + _tree.set_reorderable(true); + _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); + + _text_renderer = manage(new Gtk::CellRendererText()); + int nameColNum = _tree.append_column(_("Name"), *_text_renderer) - 1; + _name_column = _tree.get_column(nameColNum); + _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); + + _tree.set_expander_column( *_tree.get_column(nameColNum) ); + _tree.set_search_column(_model->_colLabel); + + Gtk::CellRendererToggle * _toggle_renderer = manage(new Gtk::CellRendererToggle()); + int toggleColNum = _tree.append_column(_("Reverse"), *_toggle_renderer) - 1; + Gtk::TreeViewColumn* col = _tree.get_column(toggleColNum); + _toggle_renderer->set_activatable(true); + _toggle_renderer->signal_toggled().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_reverse_toggled)); + col->add_attribute(_toggle_renderer->property_active(), _model->_colReverse); + + _scroller.add(_tree); + _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scroller.set_shadow_type(Gtk::SHADOW_IN); + + oncanvas_editable = true; + +} + +OriginalPathArrayParam::~OriginalPathArrayParam() +{ + while (!_vector.empty()) { + PathAndDirection *w = _vector.back(); + _vector.pop_back(); + unlink(w); + delete w; + } + delete _model; +} + +void OriginalPathArrayParam::on_reverse_toggled(const Glib::ustring& path) +{ + Gtk::TreeModel::iterator iter = _store->get_iter(path); + Gtk::TreeModel::Row row = *iter; + PathAndDirection *w = row[_model->_colObject]; + row[_model->_colReverse] = !row[_model->_colReverse]; + w->reversed = row[_model->_colReverse]; + + gchar * full = param_getSVGValue(); + param_write_to_repr(full); + g_free(full); + DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, + _("Link path parameter to path")); +} + +void OriginalPathArrayParam::param_set_default() +{ + +} + +Gtk::Widget* OriginalPathArrayParam::param_newWidget() +{ + Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox()); + Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); + + vbox->pack_start(_scroller, Gtk::PACK_EXPAND_WIDGET); + + + { // Paste path to link button + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_PASTE, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); + pButton->set_relief(Gtk::RELIEF_NONE); + pIcon->show(); + pButton->add(*pIcon); + pButton->show(); + pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_link_button_click)); + hbox->pack_start(*pButton, Gtk::PACK_SHRINK); + pButton->set_tooltip_text(_("Link to path")); + } + + { // Remove linked path + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_REMOVE, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); + pButton->set_relief(Gtk::RELIEF_NONE); + pIcon->show(); + pButton->add(*pIcon); + pButton->show(); + pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_remove_button_click)); + hbox->pack_start(*pButton, Gtk::PACK_SHRINK); + pButton->set_tooltip_text(_("Remove Path")); + } + + { // Move Down + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_DOWN, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); + pButton->set_relief(Gtk::RELIEF_NONE); + pIcon->show(); + pButton->add(*pIcon); + pButton->show(); + pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_down_button_click)); + hbox->pack_end(*pButton, Gtk::PACK_SHRINK); + pButton->set_tooltip_text(_("Move Down")); + } + + { // Move Down + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_UP, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); + pButton->set_relief(Gtk::RELIEF_NONE); + pIcon->show(); + pButton->add(*pIcon); + pButton->show(); + pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_up_button_click)); + hbox->pack_end(*pButton, Gtk::PACK_SHRINK); + pButton->set_tooltip_text(_("Move Up")); + } + + vbox->pack_end(*hbox, Gtk::PACK_SHRINK); + + vbox->show_all_children(true); + + return vbox; +} + +bool OriginalPathArrayParam::_selectIndex(const Gtk::TreeIter& iter, int* i) +{ + if ((*i)-- <= 0) { + _tree.get_selection()->select(iter); + return true; + } + return false; +} + +void OriginalPathArrayParam::on_up_button_click() +{ + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter) { + Gtk::TreeModel::Row row = *iter; + + int i = -1; + std::vector::iterator piter = _vector.begin(); + for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); piter = iter, i++, iter++) { + if (*iter == row[_model->_colObject]) { + _vector.erase(iter); + _vector.insert(piter, row[_model->_colObject]); + break; + } + } + + gchar * full = param_getSVGValue(); + param_write_to_repr(full); + g_free(full); + + DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, + _("Move path up")); + + _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); + } +} + +void OriginalPathArrayParam::on_down_button_click() +{ + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter) { + Gtk::TreeModel::Row row = *iter; + + int i = 0; + for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); i++, iter++) { + if (*iter == row[_model->_colObject]) { + std::vector::iterator niter = _vector.erase(iter); + if (niter != _vector.end()) { + niter++; + i++; + } + _vector.insert(niter, row[_model->_colObject]); + break; + } + } + + gchar * full = param_getSVGValue(); + param_write_to_repr(full); + g_free(full); + + DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, + _("Move path down")); + + _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); + } +} + +void OriginalPathArrayParam::on_remove_button_click() +{ + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter) { + Gtk::TreeModel::Row row = *iter; + remove_link(row[_model->_colObject]); + + gchar * full = param_getSVGValue(); + param_write_to_repr(full); + g_free(full); + + DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, + _("Remove path")); + } + +} + +void +OriginalPathArrayParam::on_link_button_click() +{ + Inkscape::UI::ClipboardManager *cm = Inkscape::UI::ClipboardManager::get(); + Glib::ustring pathid = cm->getShapeOrTextObjectId(SP_ACTIVE_DESKTOP); + + if (pathid == "") { + return; + } + // add '#' at start to make it an uri. + pathid.insert(pathid.begin(), '#'); + + Inkscape::SVGOStringStream os; + bool foundOne = false; + for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { + if (foundOne) { + os << "|"; + } else { + foundOne = true; + } + os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); + } + + if (foundOne) { + os << "|"; + } + + os << pathid.c_str() << ",0"; + + param_write_to_repr(os.str().c_str()); + DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, + _("Link path parameter to path")); +} + +void OriginalPathArrayParam::unlink(PathAndDirection* to) +{ + to->linked_modified_connection.disconnect(); + to->linked_delete_connection.disconnect(); + to->ref.detach(); + to->_pathvector = Geom::PathVector(); + if (to->href) { + g_free(to->href); + to->href = NULL; + } +} + +void OriginalPathArrayParam::remove_link(PathAndDirection* to) +{ + unlink(to); + for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); iter++) { + if (*iter == to) { + PathAndDirection *w = *iter; + _vector.erase(iter); + delete w; + return; + } + } +} + +void OriginalPathArrayParam::linked_delete(SPObject */*deleted*/, PathAndDirection* to) +{ + //remove_link(to); + + gchar * full = param_getSVGValue(); + param_write_to_repr(full); + g_free(full); +} + +bool OriginalPathArrayParam::_updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd) +{ + Gtk::TreeModel::Row row = *iter; + if (row[_model->_colObject] == pd) { + SPObject *obj = pd->ref.getObject(); + row[_model->_colLabel] = obj && obj->getId() ? ( obj->label() ? obj->label() : obj->getId() ) : pd->href; + return true; + } + return false; +} + +void OriginalPathArrayParam::linked_changed(SPObject */*old_obj*/, SPObject *new_obj, PathAndDirection* to) +{ + to->linked_delete_connection.disconnect(); + to->linked_modified_connection.disconnect(); + to->linked_transformed_connection.disconnect(); + + if (new_obj && SP_IS_ITEM(new_obj)) { + to->linked_delete_connection = new_obj->connectDelete(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_delete), to)); + to->linked_modified_connection = new_obj->connectModified(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_modified), to)); + to->linked_transformed_connection = SP_ITEM(new_obj)->connectTransformed(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_transformed), to)); + + linked_modified(new_obj, SP_OBJECT_MODIFIED_FLAG, to); + } else { + to->_pathvector = Geom::PathVector(); + SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); + _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); + } +} + +void OriginalPathArrayParam::linked_transformed(Geom::Affine const *mp, SPItem* original, PathAndDirection* to) +{ + +} + +void OriginalPathArrayParam::setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to) +{ + if (!to) { + return; + } + SPCurve *curve = NULL; + if (SP_IS_SHAPE(linked_obj)) { + curve = SP_SHAPE(linked_obj)->getCurveBeforeLPE(); + } + if (SP_IS_TEXT(linked_obj)) { + curve = SP_TEXT(linked_obj)->getNormalizedBpath(); + } + + if (curve == NULL) { + // curve invalid, set empty pathvector + to->_pathvector = Geom::PathVector(); + } else { + to->_pathvector = curve->get_pathvector(); + curve->unref(); + } +} + +void OriginalPathArrayParam::linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to) +{ + if (!to) { + return; + } + setPathVector(linked_obj, flags, to); + SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); + _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); +} + +//void PathParam::linked_transformed(Geom::Affine const *rel_transf, SPItem *moved_item) +//{ +// linked_transformed_callback(rel_transf, moved_item); +//} + +bool OriginalPathArrayParam::param_readSVGValue(const gchar* strvalue) +{ + if (strvalue) { + while (!_vector.empty()) { + PathAndDirection *w = _vector.back(); + unlink(w); + _vector.pop_back(); + delete w; + } + _store->clear(); + + gchar ** strarray = g_strsplit(strvalue, "|", 0); + for (gchar ** iter = strarray; *iter != NULL; iter++) { + if ((*iter)[0] == '#') { + gchar ** substrarray = g_strsplit(*iter, ",", 0); + PathAndDirection* w = new PathAndDirection((SPObject *)param_effect->getLPEObj()); + w->href = g_strdup(*substrarray); + w->reversed = *(substrarray+1) != NULL && (*(substrarray+1))[0] == '1'; + + w->linked_changed_connection = w->ref.changedSignal().connect(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_changed), w)); + w->ref.attach(URI(w->href)); + + _vector.push_back(w); + + Gtk::TreeModel::iterator iter = _store->append(); + Gtk::TreeModel::Row row = *iter; + SPObject *obj = w->ref.getObject(); + + row[_model->_colObject] = w; + row[_model->_colLabel] = obj ? ( obj->label() ? obj->label() : obj->getId() ) : w->href; + row[_model->_colReverse] = w->reversed; + g_strfreev (substrarray); + } + } + g_strfreev (strarray); + return true; + } + return false; +} + +gchar * OriginalPathArrayParam::param_getSVGValue() const +{ + Inkscape::SVGOStringStream os; + bool foundOne = false; + for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { + if (foundOne) { + os << "|"; + } else { + foundOne = true; + } + os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); + } + gchar * str = g_strdup(os.str().c_str()); + return str; +} + +} /* namespace LivePathEffect */ + +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/parameter/originalpatharray.h b/src/live_effects/parameter/originalpatharray.h new file mode 100644 index 000000000..865a3f8e5 --- /dev/null +++ b/src/live_effects/parameter/originalpatharray.h @@ -0,0 +1,123 @@ +#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H +#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H + +/* + * Inkscape::LivePathEffectParameters + * +* Copyright (C) Johan Engelen 2008 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include + +#include +#include +#include +#include + +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/path-reference.h" + +#include "svg/svg.h" +#include "svg/stringstream.h" +#include "path-reference.h" +#include "sp-object.h" + +namespace Inkscape { + +namespace LivePathEffect { + +class PathAndDirection { +public: + PathAndDirection(SPObject *owner) + : href(NULL), + ref(owner), + _pathvector(Geom::PathVector()), + reversed(false) + { + + } + gchar *href; + URIReference ref; + //SPItem *obj; + std::vector _pathvector; + bool reversed; + + sigc::connection linked_changed_connection; + sigc::connection linked_delete_connection; + sigc::connection linked_modified_connection; + sigc::connection linked_transformed_connection; +}; + +class OriginalPathArrayParam : public Parameter { +public: + class ModelColumns; + + OriginalPathArrayParam( const Glib::ustring& label, + const Glib::ustring& tip, + const Glib::ustring& key, + Inkscape::UI::Widget::Registry* wr, + Effect* effect); + + virtual ~OriginalPathArrayParam(); + + virtual Gtk::Widget * param_newWidget(); + virtual bool param_readSVGValue(const gchar * strvalue); + virtual gchar * param_getSVGValue() const; + virtual void param_set_default(); + + /** Disable the canvas indicators of parent class by overriding this method */ + virtual void param_editOncanvas(SPItem * /*item*/, SPDesktop * /*dt*/) {}; + /** Disable the canvas indicators of parent class by overriding this method */ + virtual void addCanvasIndicators(SPLPEItem const* /*lpeitem*/, std::vector & /*hp_vec*/) {}; + + std::vector _vector; + +protected: + bool _updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd); + bool _selectIndex(const Gtk::TreeIter& iter, int* i); + void unlink(PathAndDirection* to); + void remove_link(PathAndDirection* to); + void setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to); + + void linked_changed(SPObject *old_obj, SPObject *new_obj, PathAndDirection* to); + void linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to); + void linked_transformed(Geom::Affine const *mp, SPItem *original, PathAndDirection* to); + void linked_delete(SPObject *deleted, PathAndDirection* to); + + ModelColumns *_model; + Glib::RefPtr _store; + Gtk::TreeView _tree; + Gtk::CellRendererText *_text_renderer; + Gtk::CellRendererToggle *_toggle_renderer; + Gtk::TreeView::Column *_name_column; + Gtk::ScrolledWindow _scroller; + + void on_link_button_click(); + void on_remove_button_click(); + void on_up_button_click(); + void on_down_button_click(); + void on_reverse_toggled(const Glib::ustring& path); + +private: + OriginalPathArrayParam(const OriginalPathArrayParam&); + OriginalPathArrayParam& operator=(const OriginalPathArrayParam&); +}; + +} //namespace LivePathEffect + +} //namespace Inkscape + +#endif + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp index fecdfeda8..ac0000b1a 100644 --- a/src/live_effects/parameter/powerstrokepointarray.cpp +++ b/src/live_effects/parameter/powerstrokepointarray.cpp @@ -6,6 +6,7 @@ #include +#include "ui/dialog/lpe-powerstroke-properties.h" #include "live_effects/parameter/powerstrokepointarray.h" #include "live_effects/effect.h" @@ -102,6 +103,23 @@ PowerStrokePointArrayParam::recalculate_controlpoints_for_new_pwd2(Geom::Piecewi } } +float PowerStrokePointArrayParam::median_width() +{ + size_t size = _vector.size(); + if (size > 0) + { + if (size % 2 == 0) + { + return (_vector[size / 2 - 1].y() + _vector[size / 2].y()) / 2; + } + else + { + return _vector[size / 2].y(); + } + } + return 1; +} + void PowerStrokePointArrayParam::set_pwd2(Geom::Piecewise > const & pwd2_in, Geom::Piecewise > const & pwd2_normal_in) { @@ -117,7 +135,7 @@ PowerStrokePointArrayParam::set_oncanvas_looks(SPKnotShapeType shape, SPKnotMode knot_mode = mode; knot_color = color; } - +/* class PowerStrokePointArrayParamKnotHolderEntity : public KnotHolderEntity { public: PowerStrokePointArrayParamKnotHolderEntity(PowerStrokePointArrayParam *p, unsigned int index); @@ -127,7 +145,7 @@ public: virtual Geom::Point knot_get() const; virtual void knot_click(guint state); - /** Checks whether the index falls within the size of the parameter's vector */ + /** Checks whether the index falls within the size of the parameter's vector / bool valid_index(unsigned int index) const { return (_pparam->_vector.size() > index); }; @@ -135,7 +153,7 @@ public: private: PowerStrokePointArrayParam *_pparam; unsigned int _index; -}; +};*/ PowerStrokePointArrayParamKnotHolderEntity::PowerStrokePointArrayParamKnotHolderEntity(PowerStrokePointArrayParam *p, unsigned int index) : _pparam(p), @@ -181,6 +199,12 @@ PowerStrokePointArrayParamKnotHolderEntity::knot_get() const return canvas_point; } +void PowerStrokePointArrayParamKnotHolderEntity::knot_set_offset(Geom::Point offset) +{ + _pparam->_vector.at(_index) = Geom::Point(offset.x(), offset.y() / 2); + this->parent_holder->knot_ungrabbed_handler(this->knot); +} + void PowerStrokePointArrayParamKnotHolderEntity::knot_click(guint state) { @@ -223,10 +247,15 @@ PowerStrokePointArrayParamKnotHolderEntity::knot_click(guint state) // add knot to knotholder PowerStrokePointArrayParamKnotHolderEntity *e = new PowerStrokePointArrayParamKnotHolderEntity(_pparam, _index+1); e->create( this->desktop, this->item, parent_holder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it."), + _("Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it, Shift+click launches width dialog."), _pparam->knot_shape, _pparam->knot_mode, _pparam->knot_color); parent_holder->add(e); } + } + else if ((state & GDK_MOD1_MASK) || (state & GDK_SHIFT_MASK)) + { + Geom::Point offset = Geom::Point(_pparam->_vector.at(_index).x(), _pparam->_vector.at(_index).y() * 2); + Inkscape::UI::Dialogs::PowerstrokePropertiesDialog::showDialog(this->desktop, offset, this); } } @@ -235,7 +264,7 @@ void PowerStrokePointArrayParam::addKnotHolderEntities(KnotHolder *knotholder, S for (unsigned int i = 0; i < _vector.size(); ++i) { PowerStrokePointArrayParamKnotHolderEntity *e = new PowerStrokePointArrayParamKnotHolderEntity(this, i); e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it."), + _("Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it, Shift+click launches width dialog."), knot_shape, knot_mode, knot_color); knotholder->add(e); } diff --git a/src/live_effects/parameter/powerstrokepointarray.h b/src/live_effects/parameter/powerstrokepointarray.h index e1fa440f2..911bbc82d 100644 --- a/src/live_effects/parameter/powerstrokepointarray.h +++ b/src/live_effects/parameter/powerstrokepointarray.h @@ -20,8 +20,6 @@ namespace Inkscape { namespace LivePathEffect { -class PowerStrokePointArrayParamKnotHolderEntity; - class PowerStrokePointArrayParam : public ArrayParam { public: PowerStrokePointArrayParam( const Glib::ustring& label, @@ -37,6 +35,8 @@ public: void set_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); + float median_width(); + virtual bool providesKnotHolderEntities() const { return true; } virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); @@ -60,6 +60,25 @@ private: Geom::Piecewise > last_pwd2_normal; }; +class PowerStrokePointArrayParamKnotHolderEntity : public KnotHolderEntity { +public: + PowerStrokePointArrayParamKnotHolderEntity(PowerStrokePointArrayParam *p, unsigned int index); + virtual ~PowerStrokePointArrayParamKnotHolderEntity() {} + + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; + virtual void knot_set_offset(Geom::Point offset); + virtual void knot_click(guint state); + + /** Checks whether the index falls within the size of the parameter's vector */ + bool valid_index(unsigned int index) const { + return (_pparam->_vector.size() > index); + }; + +private: + PowerStrokePointArrayParam *_pparam; + unsigned int _index; +}; } //namespace LivePathEffect diff --git a/src/live_effects/parameter/transformedpoint.cpp b/src/live_effects/parameter/transformedpoint.cpp new file mode 100644 index 000000000..f5b01e267 --- /dev/null +++ b/src/live_effects/parameter/transformedpoint.cpp @@ -0,0 +1,182 @@ +/* + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include + +#include "ui/widget/registered-widget.h" +#include "live_effects/parameter/transformedpoint.h" +#include "sp-lpe-item.h" +#include "knotholder.h" +#include "svg/svg.h" +#include "svg/stringstream.h" + +#include "live_effects/effect.h" +#include "desktop.h" +#include "verbs.h" + +namespace Inkscape { + +namespace LivePathEffect { + +TransformedPointParam::TransformedPointParam( const Glib::ustring& label, const Glib::ustring& tip, + const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr, + Effect* effect, Geom::Point default_vector, + bool dontTransform) + : Parameter(label, tip, key, wr, effect), + defvalue(default_vector), + origin(0.,0.), + vector(default_vector), + noTransform(dontTransform) +{ + vec_knot_shape = SP_KNOT_SHAPE_DIAMOND; + vec_knot_mode = SP_KNOT_MODE_XOR; + vec_knot_color = 0xffffb500; +} + +TransformedPointParam::~TransformedPointParam() +{ + +} + +void +TransformedPointParam::param_set_default() +{ + setOrigin(Geom::Point(0.,0.)); + setVector(defvalue); +} + +bool +TransformedPointParam::param_readSVGValue(const gchar * strvalue) +{ + gchar ** strarray = g_strsplit(strvalue, ",", 4); + if (!strarray) { + return false; + } + double val[4]; + unsigned int i = 0; + while (i < 4 && strarray[i]) { + if (sp_svg_number_read_d(strarray[i], &val[i]) != 0) { + i++; + } else { + break; + } + } + g_strfreev (strarray); + if (i == 4) { + setOrigin( Geom::Point(val[0], val[1]) ); + setVector( Geom::Point(val[2], val[3]) ); + return true; + } + return false; +} + +gchar * +TransformedPointParam::param_getSVGValue() const +{ + Inkscape::SVGOStringStream os; + os << origin << " , " << vector; + gchar * str = g_strdup(os.str().c_str()); + return str; +} + +Gtk::Widget * +TransformedPointParam::param_newWidget() +{ + Inkscape::UI::Widget::RegisteredVector * pointwdg = Gtk::manage( + new Inkscape::UI::Widget::RegisteredVector( param_label, + param_tooltip, + param_key, + *param_wr, + param_effect->getRepr(), + param_effect->getSPDoc() ) ); + pointwdg->setPolarCoords(); + pointwdg->setValue( vector, origin ); + pointwdg->clearProgrammatically(); + pointwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change vector parameter")); + + Gtk::HBox * hbox = Gtk::manage( new Gtk::HBox() ); + static_cast(hbox)->pack_start(*pointwdg, true, true); + static_cast(hbox)->show_all_children(); + + return dynamic_cast (hbox); +} + +void +TransformedPointParam::set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector) +{ + setValues(new_origin, new_vector); + gchar * str = param_getSVGValue(); + param_write_to_repr(str); + g_free(str); +} + +void +TransformedPointParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/) +{ + if (!noTransform) { + set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() ); + } +} + + +void +TransformedPointParam::set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color) +{ + vec_knot_shape = shape; + vec_knot_mode = mode; + vec_knot_color = color; +} + +void +TransformedPointParam::set_oncanvas_color(guint32 color) +{ + vec_knot_color = color; +} + +class TransformedPointParamKnotHolderEntity_Vector : public KnotHolderEntity { +public: + TransformedPointParamKnotHolderEntity_Vector(TransformedPointParam *p) : param(p) { } + virtual ~TransformedPointParamKnotHolderEntity_Vector() {} + + virtual void knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint /*state*/) { + Geom::Point const s = p - param->origin; + /// @todo implement angle snapping when holding CTRL + param->setVector(s); + sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); + }; + virtual Geom::Point knot_get() const{ + return param->origin + param->vector; + }; + virtual void knot_click(guint /*state*/){ + g_print ("This is the vector handle associated to parameter '%s'\n", param->param_key.c_str()); + }; + +private: + TransformedPointParam *param; +}; + +void +TransformedPointParam::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) +{ + TransformedPointParamKnotHolderEntity_Vector *vector_e = new TransformedPointParamKnotHolderEntity_Vector(this); + vector_e->create(desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, handleTip(), vec_knot_shape, vec_knot_mode, vec_knot_color); + knotholder->add(vector_e); +} + +} /* namespace LivePathEffect */ + +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/live_effects/parameter/transformedpoint.h b/src/live_effects/parameter/transformedpoint.h new file mode 100644 index 000000000..37af8b98f --- /dev/null +++ b/src/live_effects/parameter/transformedpoint.h @@ -0,0 +1,87 @@ +#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H +#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H + +/* + * Inkscape::LivePathEffectParameters + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include <2geom/point.h> + +#include "live_effects/parameter/parameter.h" + +#include "knot-holder-entity.h" + +namespace Inkscape { + +namespace LivePathEffect { + + +class TransformedPointParam : public Parameter { +public: + TransformedPointParam( const Glib::ustring& label, + const Glib::ustring& tip, + const Glib::ustring& key, + Inkscape::UI::Widget::Registry* wr, + Effect* effect, + Geom::Point default_vector = Geom::Point(1,0), + bool dontTransform = false); + virtual ~TransformedPointParam(); + + virtual Gtk::Widget * param_newWidget(); + inline const gchar *handleTip() const { return param_tooltip.c_str(); } + + virtual bool param_readSVGValue(const gchar * strvalue); + virtual gchar * param_getSVGValue() const; + + Geom::Point getVector() const { return vector; }; + Geom::Point getOrigin() const { return origin; }; + void setValues(Geom::Point const &new_origin, Geom::Point const &new_vector) { setVector(new_vector); setOrigin(new_origin); }; + void setVector(Geom::Point const &new_vector) { vector = new_vector; }; + void setOrigin(Geom::Point const &new_origin) { origin = new_origin; }; + virtual void param_set_default(); + + void set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector); + + virtual void param_transform_multiply(Geom::Affine const &postmul, bool set); + + void set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); + //void set_origin_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); + void set_oncanvas_color(guint32 color); + + virtual bool providesKnotHolderEntities() const { return true; } + virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); + +private: + TransformedPointParam(const TransformedPointParam&); + TransformedPointParam& operator=(const TransformedPointParam&); + + Geom::Point defvalue; + + Geom::Point origin; + Geom::Point vector; + + bool noTransform; + + /// The looks of the vector and origin knots oncanvas + SPKnotShapeType vec_knot_shape; + SPKnotModeType vec_knot_mode; + guint32 vec_knot_color; +// SPKnotShapeType ori_knot_shape; +// SPKnotModeType ori_knot_mode; +// guint32 ori_knot_color; + +// friend class VectorParamKnotHolderEntity_Origin; + friend class TransformedPointParamKnotHolderEntity_Vector; +}; + + +} //namespace LivePathEffect + +} //namespace Inkscape + +#endif diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h new file mode 100755 index 000000000..8aa2e38ad --- /dev/null +++ b/src/live_effects/pathoutlineprovider.h @@ -0,0 +1,766 @@ +#pragma once + +#include <2geom/path.h> +#include <2geom/circle.h> +#include <2geom/sbasis-to-bezier.h> +#include <2geom/shape.h> +#include <2geom/transforms.h> +#include <2geom/path-sink.h> + +#include +#include + +enum LineJoinType { + LINEJOIN_STRAIGHT, + LINEJOIN_ROUND, + LINEJOIN_POINTY, + LINEJOIN_REFLECTED, + LINEJOIN_EXTRAPOLATED +}; + +namespace Geom +{ + /** + * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." + From MathWorld--A Wolfram Web Resource. + http://mathworld.wolfram.com/Circle-CircleIntersection.html + * + * @return 0 if no intersection + * @return 1 if one circle is contained in the other + * @return 2 if intersections are found (they are written to p0 and p1) + */ + static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, + Point & p0, Point & p1) + { + Point X0 = circle0.center(); + double r0 = circle0.ray(); + Point X1 = circle1.center(); + double r1 = circle1.ray(); + + /* dx and dy are the vertical and horizontal distances between + * the circle centers. + */ + Point D = X1 - X0; + + /* Determine the straight-line distance between the centers. */ + double d = L2(D); + + /* Check for solvability. */ + if (d > (r0 + r1)) + { + /* no solution. circles do not intersect. */ + return 0; + } + if (d <= fabs(r0 - r1)) + { + /* no solution. one circle is contained in the other */ + return 1; + } + + /* 'point 2' is the point where the line through the circle + * intersection points crosses the line between the circle + * centers. + */ + + /* Determine the distance from point 0 to point 2. */ + double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; + + /* Determine the coordinates of point 2. */ + Point p2 = X0 + D * (a/d); + + /* Determine the distance from point 2 to either of the + * intersection points. + */ + double h = std::sqrt((r0*r0) - (a*a)); + + /* Now determine the offsets of the intersection points from + * point 2. + */ + Point r = (h/d)*rot90(D); + + /* Determine the absolute intersection points. */ + p0 = p2 + r; + p1 = p2 - r; + + return 2; + } + /** + * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. + * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). + */ + static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) + { + D2 dM=derivative(curve); + if ( are_near(L2sq(dM(t)),0.) ) { + dM=derivative(dM); + } + if ( are_near(L2sq(dM(t)),0.) ) { // try second time + dM=derivative(dM); + } + Piecewise > unitv = unitVector(dM,tol); + Piecewise dMlength = dot(Piecewise >(dM),unitv); + Piecewise k = cross(derivative(unitv),unitv); + k = divide(k,dMlength,tol,3); + double curv = k(t); // note that this value is signed + + Geom::Point normal = unitTangentAt(curve, t).cw(); + double radius = 1/curv; + Geom::Point center = curve(t) + radius*normal; + return Geom::Circle(center, fabs(radius)); + } + + static std::vector split_at_cusps(const Geom::Path& in) + { + Geom::PathVector out = Geom::PathVector(); + Geom::Path temp = Geom::Path(); + + for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) + { + temp = Geom::Path(); + temp.append(in[path_descr]); + out.push_back(temp); + } + + return out; + } + + static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) + { + std::vector temp; + sbasis_to_bezier(temp, sbasis_in, 4); + return Geom::CubicBezier( temp ); + } + + static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, + Geom::Point const & origin_b, Geom::Point const & vector_b) + { + Geom::Coord denom = cross(vector_b, vector_a); + if (!Geom::are_near(denom,0.)){ + Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; + return origin_a + t * vector_a; + } + return boost::none; + } +} + +namespace Outline +{ + + typedef Geom::D2 D2SB; + typedef Geom::Piecewise PWD2; + + static void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve*cbc2, Geom::Point endPt, double miter_limit) +{ + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + Geom::Path pth; + pth.append(*cbc1); + + Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + + Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); + Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); + + Geom::Point points[2]; + int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); + if (solutions == 2) + { + Geom::Point sol(0,0); + if ( dot(tang2,points[0]-endPt) > 0 ) + { + // points[0] is bad, choose points[1] + sol = points[1]; + } + else if ( dot(tang2,points[1]-endPt) > 0 ) { // points[0] could be good, now check points[1] + // points[1] is bad, choose points[0] + sol = points[0]; + } + else + { + // both points are good, choose nearest + sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? + points[0] : points[1]; + } + Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); + Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); + + if (arc0) + { + path_builder.append (arc0->toSBasis()); + delete arc0; + arc0 = NULL; + } + + if (arc1) + { + path_builder.append (arc1->toSBasis()); + delete arc1; + arc1 = NULL; + } + } + else + { + path_builder.appendNew (endPt); + } + } + else + { + path_builder.appendNew (endPt); + } +} + static Geom::Path half_outline_extrp(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + + Geom::Point initialPoint; + Geom::Point endPoint; + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + //Create a reflected outline join. + //Note: it is generally recommended to let half_outline do this for you! + //path_builder: the path to append the curves to + //cbc1: the curve before the join + //cbc2: the curve after the join + //endPt: the point to end at + //miter_limit: the miter parameter + static void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit) + { + //the most important work for the reflected join is done here + + //determine where we are in the path. If we're on the inside, ignore + //and just lineTo. On the outside, we'll do a little reflection magic :) + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + //probably on the outside of the corner + Geom::Path pth; + pth.append(*cbc1); + + Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + //reflect curves along the bevel + D2SB newcurve1 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang1) , + cbc1->finalPoint() ); + + Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + D2SB newcurve2 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang2) , + cbc2->initialPoint() ); + Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); + + cross = Geom::crossings(bzr1, bzr2); + if ( cross.empty() ) + { + //std::cout << "Oops, no crossings!" << std::endl; + //curves didn't cross; default to miter + /*boost::optional p = intersection_point (cbc1->finalPoint(), tang1, + cbc2->initialPoint(), tang2); + if (p) + { + path_builder.appendNew (*p); + }*/ + //bevel + path_builder.appendNew( endPt ); + } + else + { + //join + std::pair sub1 = bzr1.subdivide(cross[0].ta); + std::pair sub2 = bzr2.subdivide(cross[0].tb); + + //@TODO joins have a strange tendency to cross themselves twice. Check this. + + //sections commented out are for general stability + path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); + path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); + } + } + else // cross.empty() + { + //probably on the inside of the corner + path_builder.appendNew ( endPt ); + } + } + + /** @brief Converts a path to one half of an outline. + * path_in: The input path to use. (To create the other side use path_in.reverse() ) + * line_width: the line width to use (usually you want to divide this by 2) + * linecap_type: (not used here) the cap to apply. Passed to libvarot. + * miter_limit: the miter parameter + */ + static Geom::Path half_outline(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + //needed for closing the path + Geom::Point initialPoint; + Geom::Point endPoint; + + //some issues prevented me from using a PathBuilder here + //it seems like PathBuilder::peek() gave me a null reference exception + //and I was unable to get a stack trace on Windows, so had to switch to Linux + //to see what the hell was wrong. :( + //I wasted five hours opening it in IDAPro, VS2012, and GDB Windows + + /*Program received signal SIGSEGV, Segmentation fault. + 0x00000000006539ac in get_curves (this=0x0) + at /usr/include/c++/4.6/bits/locale_facets.h:1077 + 1077 { return __c; } + */ + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + static Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + static Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline_extrp( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline_extrp( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join_pointy, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + + +} // namespace Outline + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 5e126f486..aec749929 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -183,6 +183,26 @@ bool SPItem::isHidden(unsigned display_key) const { return true; } +bool SPItem::isHighlightSet() const { + return _highlightColor != NULL; +} + +guint32 SPItem::highlight_color() const { + if (_highlightColor) + { + return atoi(_highlightColor) | 0x000000ff; + } + else if (parent && parent != this && SP_IS_ITEM(parent)) + { + return SP_ITEM(parent)->highlight_color(); + } + else + { + static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + return prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff) | 0x000000ff; + } +} + void SPItem::setEvaluated(bool evaluated) { _is_evaluated = evaluated; _evaluated_status = StatusSet; diff --git a/src/sp-item.h b/src/sp-item.h index d605c99b9..dc0c54a80 100644 --- a/src/sp-item.h +++ b/src/sp-item.h @@ -145,6 +145,15 @@ public: bool isHidden() const; void setHidden(bool hidden); + /* Objects dialogue */ + bool isHighlightSet() const; + guint32 highlight_color() const; + + void setHighlightColor(guint32 color); + + void unsetHighlightColor(); + /********************/ + bool isEvaluated() const; void setEvaluated(bool visible); void resetEvaluated(); @@ -215,6 +224,7 @@ public: void set_i2d_affine(Geom::Affine const &transform); Geom::Affine dt2i_affine() const; + gchar *_highlightColor; private: enum EvaluatedStatus { diff --git a/src/sp-object.h b/src/sp-object.h index 3faadb404..4f7ef3f4c 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -45,6 +45,7 @@ class SPObject; #define SP_OBJECT_WRITE_BUILD (1 << 0) #define SP_OBJECT_WRITE_EXT (1 << 1) #define SP_OBJECT_WRITE_ALL (1 << 2) +#define SP_OBJECT_WRITE_NO_CHILDREN (1 << 3) #include #include diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert index c37767a08..1cf667f2a 100644 --- a/src/ui/dialog/Makefile_insert +++ b/src/ui/dialog/Makefile_insert @@ -109,4 +109,8 @@ ink_common_sources += \ ui/dialog/undo-history.h \ ui/dialog/xml-tree.cpp \ ui/dialog/xml-tree.h \ + ui/dialog/lpe-powerstroke-properties.cpp \ + ui/dialog/lpe-powerstroke-properties.h \ + ui/dialog/objects.cpp \ + ui/dialog/objects.h \ $(inkboard_dialogs) diff --git a/src/ui/dialog/lpe-powerstroke-properties.cpp b/src/ui/dialog/lpe-powerstroke-properties.cpp new file mode 100644 index 000000000..cef6f494e --- /dev/null +++ b/src/ui/dialog/lpe-powerstroke-properties.cpp @@ -0,0 +1,203 @@ +/** + * @file + * Dialog for renaming layers. + */ +/* Author: + * Bryce W. Harrington + * Andrius R. + * Abhishek Sharma + * + * Copyright (C) 2004 Bryce Harrington + * Copyright (C) 2006 Andrius R. + * + * Released under GNU GPL. Read the file 'COPYING' for more information + */ + +#include "lpe-powerstroke-properties.h" +#include +#include +#include +#include +#include "inkscape.h" +#include "desktop.h" +#include "document.h" +#include "document-undo.h" +#include "layer-manager.h" +#include "message-stack.h" +#include "desktop-handles.h" +#include "sp-object.h" +#include "sp-item.h" +#include "verbs.h" +#include "selection.h" +#include "selection-chemistry.h" +#include "ui/icon-names.h" +#include "ui/widget/imagetoggler.h" +//#include "event-context.h" + +namespace Inkscape { +namespace UI { +namespace Dialogs { + +PowerstrokePropertiesDialog::PowerstrokePropertiesDialog() +: _desktop(NULL), _knotpoint(NULL), _position_visible(false) +{ + Gtk::Box *mainVBox = get_vbox(); + + _layout_table.set_spacings(4); + _layout_table.resize (2, 2); + + // Layer name widgets + _powerstroke_position_entry.set_activates_default(true); + _powerstroke_position_label.set_label(_("Position:")); + _powerstroke_position_label.set_alignment(1.0, 0.5); + + _powerstroke_width_entry.set_activates_default(true); + _powerstroke_width_label.set_label(_("Width:")); + _powerstroke_width_label.set_alignment(1.0, 0.5); + + _layout_table.attach(_powerstroke_position_label, + 0, 1, 0, 1, Gtk::FILL, Gtk::FILL); + _layout_table.attach(_powerstroke_position_entry, + 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL); + + _layout_table.attach(_powerstroke_width_label, 0, 1, 1, 2, Gtk::FILL, Gtk::FILL); + _layout_table.attach(_powerstroke_width_entry, 1, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL); + + mainVBox->pack_start(_layout_table, true, true, 4); + + // Buttons + _close_button.set_use_stock(true); + _close_button.set_label(Gtk::Stock::CANCEL.id); + _close_button.set_can_default(); + + _apply_button.set_use_underline(true); + _apply_button.set_can_default(); + + _close_button.signal_clicked() + .connect(sigc::mem_fun(*this, &PowerstrokePropertiesDialog::_close)); + _apply_button.signal_clicked() + .connect(sigc::mem_fun(*this, &PowerstrokePropertiesDialog::_apply)); + + signal_delete_event().connect( + sigc::bind_return( + sigc::hide(sigc::mem_fun(*this, &PowerstrokePropertiesDialog::_close)), + true + ) + ); + + add_action_widget(_close_button, Gtk::RESPONSE_CLOSE); + add_action_widget(_apply_button, Gtk::RESPONSE_APPLY); + + _apply_button.grab_default(); + + show_all_children(); + + set_focus(_powerstroke_width_entry); +} + +PowerstrokePropertiesDialog::~PowerstrokePropertiesDialog() { + + _setDesktop(NULL); +} + +void PowerstrokePropertiesDialog::showDialog(SPDesktop *desktop, Geom::Point knotpoint, const Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity *pt) +{ + PowerstrokePropertiesDialog *dialog = new PowerstrokePropertiesDialog(); + + dialog->_setDesktop(desktop); + dialog->_setKnotPoint(knotpoint); + dialog->_setPt(pt); + + dialog->set_title(_("Modify Node Position")); + dialog->_apply_button.set_label(_("_Move")); + + dialog->set_modal(true); + desktop->setWindowTransient (dialog->gobj()); + dialog->property_destroy_with_parent() = true; + + dialog->show(); + dialog->present(); +} + +void +PowerstrokePropertiesDialog::_apply() +{ + std::istringstream i_pos(_powerstroke_position_entry.get_text()); + std::istringstream i_width(_powerstroke_width_entry.get_text()); + double d_pos, d_width; + if ((i_pos >> d_pos) && i_width >> d_width) { + _knotpoint->knot_set_offset(Geom::Point(d_pos, d_width)); + } + _close(); +} + +void +PowerstrokePropertiesDialog::_close() +{ + _setDesktop(NULL); + destroy_(); + Glib::signal_idle().connect( + sigc::bind_return( + sigc::bind(sigc::ptr_fun(&::operator delete), this), + false + ) + ); +} + +bool PowerstrokePropertiesDialog::_handleKeyEvent(GdkEventKey *event) +{ + + /*switch (get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: { + _apply(); + return true; + } + break; + }*/ + return false; +} + +void PowerstrokePropertiesDialog::_handleButtonEvent(GdkEventButton* event) +{ + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + _apply(); + } +} + +void PowerstrokePropertiesDialog::_setKnotPoint(Geom::Point knotpoint) +{ + _powerstroke_position_entry.set_text(boost::lexical_cast(knotpoint.x())); + _powerstroke_width_entry.set_text(boost::lexical_cast(knotpoint.y())); +} + +void PowerstrokePropertiesDialog::_setPt(const Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity *pt) +{ + _knotpoint = const_cast(pt); +} + +void PowerstrokePropertiesDialog::_setDesktop(SPDesktop *desktop) { + if (desktop) { + Inkscape::GC::anchor (desktop); + } + if (_desktop) { + Inkscape::GC::release (_desktop); + } + _desktop = desktop; +} + +} // namespace +} // namespace +} // namespace + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/lpe-powerstroke-properties.h b/src/ui/dialog/lpe-powerstroke-properties.h new file mode 100644 index 000000000..c53eac0d9 --- /dev/null +++ b/src/ui/dialog/lpe-powerstroke-properties.h @@ -0,0 +1,99 @@ +/** @file + * @brief Dialog for renaming layers + */ +/* Author: + * Bryce W. Harrington + * + * Copyright (C) 2004 Bryce Harrington + * + * Released under GNU GPL. Read the file 'COPYING' for more information + */ + +#ifndef INKSCAPE_DIALOG_POWERSTROKE_PROPERTIES_H +#define INKSCAPE_DIALOG_POWERSTROKE_PROPERTIES_H + +#include <2geom/point.h> +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "live_effects/parameter/powerstrokepointarray.h" + +class SPDesktop; + +namespace Inkscape { +namespace UI { +namespace Dialogs { + +class PowerstrokePropertiesDialog : public Gtk::Dialog { + public: + PowerstrokePropertiesDialog(); + virtual ~PowerstrokePropertiesDialog(); + + Glib::ustring getName() const { return "LayerPropertiesDialog"; } + + static void showDialog(SPDesktop *desktop, Geom::Point knotpoint, const Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity *pt); + +protected: + + SPDesktop *_desktop; + Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity *_knotpoint; + + Gtk::Label _powerstroke_position_label; + Gtk::Entry _powerstroke_position_entry; + Gtk::Label _powerstroke_width_label; + Gtk::Entry _powerstroke_width_entry; + Gtk::Table _layout_table; + bool _position_visible; + + Gtk::Button _close_button; + Gtk::Button _apply_button; + + sigc::connection _destroy_connection; + + static PowerstrokePropertiesDialog &_instance() { + static PowerstrokePropertiesDialog instance; + return instance; + } + + void _setDesktop(SPDesktop *desktop); + void _setPt(const Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity *pt); + + void _apply(); + void _close(); + + void _setKnotPoint(Geom::Point knotpoint); + void _prepareLabelRenderer(Gtk::TreeModel::const_iterator const &row); + + bool _handleKeyEvent(GdkEventKey *event); + void _handleButtonEvent(GdkEventButton* event); + + friend class Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity; + +private: + PowerstrokePropertiesDialog(PowerstrokePropertiesDialog const &); // no copy + PowerstrokePropertiesDialog &operator=(PowerstrokePropertiesDialog const &); // no assign +}; + +} // namespace +} // namespace +} // namespace + + +#endif //INKSCAPE_DIALOG_LAYER_PROPERTIES_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp new file mode 100644 index 000000000..31e73db29 --- /dev/null +++ b/src/ui/dialog/objects.cpp @@ -0,0 +1,2048 @@ +/* + * A simple panel for objects + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "objects.h" +#include +#include +#include +#include + +#include + +#include "desktop.h" +#include "desktop-style.h" +#include "document.h" +#include "document-undo.h" +#include "helper/action.h" +#include "inkscape.h" +#include "preferences.h" +#include "sp-item.h" +#include "sp-object.h" +#include "sp-shape.h" +#include "svg/css-ostringstream.h" +#include "ui/icon-names.h" +#include "ui/widget/imagetoggler.h" +#include "ui/widget/layertypeicon.h" +#include "ui/widget/insertordericon.h" +#include "ui/widget/clipmaskicon.h" +#include "ui/widget/highlight-picker.h" +#include "verbs.h" +#include "widgets/icon.h" +#include "xml/node.h" +#include "xml/node-observer.h" +#include "xml/repr.h" +#include "sp-root.h" +//#include "event-context.h" +#include "selection.h" +#include "dialogs/dialog-events.h" +#include "widgets/sp-color-notebook.h" +#include "style.h" +#include "filter-chemistry.h" +#include "filters/blend.h" +#include "filters/gaussian-blur.h" +#include "sp-clippath.h" +#include "sp-mask.h" +#include "layer-manager.h" + +//#define DUMP_LAYERS 1 + +namespace Inkscape { +namespace UI { +namespace Dialog { + +using Inkscape::XML::Node; + +/** + * Gets an instance of the Objects panel + */ +ObjectsPanel& ObjectsPanel::getInstance() +{ + return *new ObjectsPanel(); +} + +/** + * Column enumeration + */ +enum { + COL_VISIBLE = 1, + COL_LOCKED, + COL_TYPE, + COL_INSERTORDER, + COL_CLIPMASK, + COL_HIGHLIGHT +}; + +/** + * Button enumeration + */ +enum { + BUTTON_NEW = 0, + BUTTON_RENAME, + BUTTON_TOP, + BUTTON_BOTTOM, + BUTTON_UP, + BUTTON_DOWN, + BUTTON_DUPLICATE, + BUTTON_DELETE, + BUTTON_SOLO, + BUTTON_SHOW_ALL, + BUTTON_HIDE_ALL, + BUTTON_LOCK_OTHERS, + BUTTON_LOCK_ALL, + BUTTON_UNLOCK_ALL, + BUTTON_SETCLIP, + BUTTON_CLIPGROUP, + BUTTON_SETINVCLIP, + BUTTON_UNSETCLIP, + BUTTON_SETMASK, + BUTTON_UNSETMASK, + BUTTON_GROUP, + BUTTON_UNGROUP, + BUTTON_COLLAPSE_ALL, + DRAGNDROP +}; + +/** + * Xml node observer for observing objects in the document + */ +class ObjectsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { +public: + /** + * Creates a new object watcher + * @param pnl The panel to which the object watcher belongs + * @param obj The object to watch + */ + ObjectWatcher(ObjectsPanel* pnl, SPObject* obj) : + _pnl(pnl), + _obj(obj), + _repr(obj->getRepr()), + _highlightAttr(g_quark_from_string("inkscape:highlight-color")), + _lockedAttr(g_quark_from_string("sodipodi:insensitive")), + _labelAttr(g_quark_from_string("inkscape:label")), + _groupAttr(g_quark_from_string("inkscape:groupmode")), + _styleAttr(g_quark_from_string("style")), + _clipAttr(g_quark_from_string("clip-path")), + _maskAttr(g_quark_from_string("mask")) + {} + + virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if ( _pnl && _obj ) { + if ( name == _lockedAttr || name == _labelAttr || name == _highlightAttr || name == _groupAttr || name == _styleAttr || name == _clipAttr || name == _maskAttr ) { + _pnl->_updateObject(_obj, name == _highlightAttr); + if ( name == _styleAttr ) { + _pnl->_updateComposite(); + } + } + } + } + + /** + * Objects panel to which this watcher belongs + */ + ObjectsPanel* _pnl; + + /** + * The object that is being observed + */ + SPObject* _obj; + + /** + * The xml representation of the object that is being observed + */ + Inkscape::XML::Node* _repr; + + /* These are quarks which define the attributes that we are observing */ + GQuark _highlightAttr; + GQuark _lockedAttr; + GQuark _labelAttr; + GQuark _groupAttr; + GQuark _styleAttr; + GQuark _clipAttr; + GQuark _maskAttr; +}; + +class ObjectsPanel::InternalUIBounce +{ +public: + int _actionCode; +}; + +class ObjectsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord +{ +public: + + ModelColumns() + { + add(_colObject); + add(_colVisible); + add(_colLocked); + add(_colLabel); + add(_colType); + add(_colHighlight); + add(_colClipMask); + add(_colInsertOrder); + } + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; + Gtk::TreeModelColumn _colVisible; + Gtk::TreeModelColumn _colLocked; + Gtk::TreeModelColumn _colType; + Gtk::TreeModelColumn _colHighlight; + Gtk::TreeModelColumn _colClipMask; + Gtk::TreeModelColumn _colInsertOrder; +}; + +/** + * Stylizes a button using the given icon name and tooltip + */ +void ObjectsPanel::_styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ) +{ + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); + gtk_widget_show( child ); + btn.add( *Gtk::manage(Glib::wrap(child)) ); + btn.set_relief(Gtk::RELIEF_NONE); + + btn.set_tooltip_text (tooltip); + +} + +/** + * Adds an item to the pop-up (right-click) menu + * @param desktop The active destktop + * @param code Action code + * @param iconName Icon name + * @param fallback Fallback text + * @param id Button id for callback function + * @return The generated menu item + */ +Gtk::MenuItem& ObjectsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) +{ + GtkWidget* iconWidget = 0; + const char* label = 0; + + if ( iconName ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); + } + + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !iconWidget && action && action->image ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); + } + + if ( action ) { + label = action->name; + } + } + } + + if ( !label && fallback ) { + label = fallback; + } + + Gtk::Widget* wrapped = 0; + if ( iconWidget ) { + wrapped = Gtk::manage(Glib::wrap(iconWidget)); + wrapped->show(); + } + + + Gtk::MenuItem* item = 0; + + if (wrapped) { + item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); + } else { + item = Gtk::manage(new Gtk::MenuItem(label, true)); + } + + item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_takeAction), id)); + _popupMenu.append(*item); + + return *item; +} + +/** + * Callback function for when an object changes. Essentially refreshes the entire tree + * @param obj Object which was changed (currently not used as the entire tree is recreated) + */ +void ObjectsPanel::_objectsChanged(SPObject */*obj*/) +{ + //First, unattach the watchers + while (!_objectWatchers.empty()) + { + ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + if (_desktop) { + //Get the current document's root and use that to enumerate the tree + SPDocument* document = _desktop->doc(); + SPRoot* root = document->getRoot(); + if ( root ) { + _selectedConnection.block(); + //Clear the tree store + _store->clear(); + //Add all items recursively + _addObject( root, 0 ); + _selectedConnection.unblock(); + //Set the tree selection + _objectsSelected(_desktop->selection); + //Handle button sensitivity + _checkTreeSelection(); + } + } +} + +/** + * Recursively adds the children of the given item to the tree + * @param obj Root object to add to the tree + * @param parentRow Parent tree row (or NULL if adding to tree root) + */ +void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) +{ + if ( _desktop && obj ) { + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + + if (SP_IS_ITEM(child)) + { + SPItem * item = SP_ITEM(child); + SPGroup * group = SP_IS_GROUP(child) ? SP_GROUP(child) : 0; + + //Add the item to the tree and set the column information + Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = item; + row[_model->_colLabel] = item->label() ? item->label() : item->getId(); + row[_model->_colVisible] = !item->isHidden(); + row[_model->_colLocked] = !item->isSensitive(); + row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; + row[_model->_colHighlight] = item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00; + row[_model->_colClipMask] = item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0); + row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; + + //If our parent object is a group and it's expanded, expand the tree + if (SP_IS_GROUP(obj) && SP_GROUP(obj)->expanded()) + { + _tree.expand_to_path( _store->get_path(iter) ); + } + + //Add an object watcher to the item + ObjectsPanel::ObjectWatcher *w = new ObjectsPanel::ObjectWatcher(this, child); + child->getRepr()->addObserver(*w); + _objectWatchers.push_back(w); + + //If the item is a group, recursively add its children + if (group) + { + _addObject( child, &row ); + } + } + } + } +} + +/** + * Updates an item in the tree and optionally recursively updates the item's children + * @param obj The item to update in the tree + * @param recurse Whether to recurse through the item's children + */ +void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { + //Find the object in the tree store and update it + _store->foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_checkForUpdated), obj) ); + if (recurse) + { + for (SPObject * iter = obj->children; iter != NULL; iter = iter->next) + { + _updateObject(iter, recurse); + } + } +} + +/** + * Checks items in the tree store and updates the given item + * @param iter Current item being looked at in the tree + * @param obj Object to update + * @return + */ +bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj) +{ + Gtk::TreeModel::Row row = *iter; + if ( obj == row[_model->_colObject] ) + { + //We found our item in the tree!! Update it! + SPItem * item = SP_IS_ITEM(obj) ? SP_ITEM(obj) : 0; + SPGroup * group = SP_IS_GROUP(obj) ? SP_GROUP(obj) : 0; + + row[_model->_colLabel] = obj->label() ? obj->label() : obj->getId(); + row[_model->_colVisible] = item ? !item->isHidden() : false; + row[_model->_colLocked] = item ? !item->isSensitive() : false; + row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; + row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0; + row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? (item->clip_ref->getObject()->inverse ? 3 : 1) : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; + row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; + + return true; + } + + return false; +} + +/** + * Updates the composite controls for the selected item + */ +void ObjectsPanel::_updateComposite() { + if (!_blockCompositeUpdate) + { + //Set the default values + bool setValues = true; + + //Get/set the values + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_compositingChanged), &setValues)); + } +} + +/** + * Sets the compositing values for the first selected item in the tree + * @param iter Current tree item + * @param setValues Whether to set the compositing values + * @param blur Blur value to use + */ +void ObjectsPanel::_compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ) +{ + if (iter) { + Gtk::TreeModel::Row row = *iter; + SPItem *item = row[_model->_colObject]; + if (*setValues) + { + _setCompositingValues(item); + *setValues = false; + } + } +} + +/** + * Occurs when the current desktop selection changes + * @param sel The current selection + */ +void ObjectsPanel::_objectsSelected( Selection *sel ) { + + bool setOpacity = true; + _selectedConnection.block(); + _tree.get_selection()->unselect_all(); + SPItem *item = NULL; + for (const GSList * iter = sel->itemList(); iter != NULL; iter = iter->next) + { + item = reinterpret_cast(iter->data); + if (setOpacity) + { + _setCompositingValues(item); + setOpacity = false; + } + _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, iter->next == NULL)); + } + if (!item) { + if (_desktop->currentLayer() && SP_IS_ITEM(_desktop->currentLayer())) { + item = SP_ITEM(_desktop->currentLayer()); + _setCompositingValues(item); + _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, true)); + } + } + _selectedConnection.unblock(); + _checkTreeSelection(); +} + +/** + * Helper function for setting the compositing values + * @param item Item to use for setting the compositing values + */ +void ObjectsPanel::_setCompositingValues(SPItem *item) +{ + //Block the connections to avoid interference + _opacityConnection.block(); + _blendConnection.block(); + _blurConnection.block(); + + //Set the opacity + _opacity_adjustment.set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment.get_upper()); + SPFeBlend *spblend = NULL; + SPGaussianBlur *spblur = NULL; + if (item->style->getFilter()) + { + for(SPObject *primitive_obj = item->style->getFilter()->children; primitive_obj && SP_IS_FILTER_PRIMITIVE(primitive_obj); primitive_obj = primitive_obj->next) { + if(SP_IS_FEBLEND(primitive_obj) && !spblend) { + //Get the blend mode + spblend = SP_FEBLEND(primitive_obj); + } + + if(SP_IS_GAUSSIANBLUR(primitive_obj) && !spblur) { + //Get the blur value + spblur = SP_GAUSSIANBLUR(primitive_obj); + } + } + } + + //Set the blend mode + _fe_cb.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); + + //Set the blur value + Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); + if (bbox && spblur) { + double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? + _fe_blur.set_blur_value(spblur->stdDeviation.getNumber() * 400 / perimeter); + } else { + _fe_blur.set_blur_value(0); + } + + //Unblock connections + _blurConnection.unblock(); + _blendConnection.unblock(); + _opacityConnection.unblock(); +} + +/** + * Checks the tree and selects the specified item, optionally scrolling to the item + * @param path Current tree path + * @param iter Current tree item + * @param item Item to select in the tree + * @param scrollto Whether to scroll to the item + * @return Whether to continue searching the tree + */ +bool ObjectsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto) +{ + bool stopGoing = false; + + Gtk::TreeModel::Row row = *iter; + if ( item == row[_model->_colObject] ) + { + //We found the item! Expand to the path and select it in the tree. + _tree.expand_to_path( path ); + + Glib::RefPtr select = _tree.get_selection(); + + select->select(iter); + if (scrollto) { + //Scroll to the item in the tree + _tree.scroll_to_row(path); + } + + stopGoing = true; + } + + return stopGoing; +} + +/** + * Pushes the current tree selection to the canvas + */ +void ObjectsPanel::_pushTreeSelectionToCurrent() +{ + if ( _desktop && _desktop->currentRoot() ) { + //block connections for selection and compositing values to prevent interference + _selectionChangedConnection.block(); + + //Clear the selection and then iterate over the tree selection, pushing each item to the desktop + _desktop->selection->clear(); + bool setOpacity = true; + _tree.get_selection()->selected_foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_selected_row_callback), &setOpacity)); + //unblock connections + _selectionChangedConnection.unblock(); + + _checkTreeSelection(); + } +} + +/** + * Helper function for pushing the current tree selection to the current desktop + * @param iter Current tree item + * @param setCompositingValues Whether to set the compositing values + * @param blur + */ +void ObjectsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setCompositingValues ) +{ + if (iter) { + Gtk::TreeModel::Row row = *iter; + SPItem *item = row[_model->_colObject]; + if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) + { + //If the item is not a layer, then select it and set the current layer to its parent (if it's the first item) + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); + _desktop->selection->add(item); + } + else + { + //If the item is a layer, set the current layer + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); + } + if (*setCompositingValues) + { + //Only set the compositing values for the first item + _setCompositingValues(item); + *setCompositingValues = false; + } + } +} + +/** + * Handles button sensitivity + */ +void ObjectsPanel::_checkTreeSelection() +{ + bool sensitive = _tree.get_selection()->count_selected_rows() > 0; + //TODO: top/bottom sensitivity + bool sensitiveNonTop = true; + bool sensitiveNonBottom = true; + + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( sensitive ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonTop ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonBottom ); + } +} + +/** + * Sets visibility of items in the tree + * @param iter Current item in the tree + * @param visible Whether the item should be visible or not + */ +void ObjectsPanel::_setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + item->setHidden( !visible ); + row[_model->_colVisible] = visible; + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Sets sensitivity of items in the tree + * @param iter Current item in the tree + * @param locked Whether the item should be locked + */ +void ObjectsPanel::_setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + item->setLocked( locked ); + row[_model->_colLocked] = locked; + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Handles keyboard events + * @param event Keyboard event passed in from GDK + * @return Whether the event should be eaten (om nom nom) + */ +bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event) +{ + + switch (get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_F2: + { + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter && !_text_renderer->property_editable()) { + //Rename item + Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); + _text_renderer->property_editable() = true; + _tree.set_cursor(*path, *_name_column, true); + grab_focus(); + return true; + } + } + break; + case GDK_Home: + { + //Move item(s) to top of containing group/layer + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_TOP ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_FRONT ); + } + return true; + } + case GDK_End: + { + //Move item(s) to bottom of containing group/layer + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_BOTTOM ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_BACK ); + } + return true; + } + case GDK_KEY_Page_Up: + { + //Move item(s) up in containing group/layer + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_RAISE ); + } + else + { + if (event->state & GDK_SHIFT_MASK) { + _fireAction( SP_VERB_LAYER_MOVE_TO_NEXT ); + } else { + _fireAction( SP_VERB_SELECTION_RAISE ); + } + } + return true; + } + case GDK_KEY_Page_Down: + { + //Move item(s) down in containing group/layer + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_LOWER ); + } + else + { + if (event->state & GDK_SHIFT_MASK) { + _fireAction( SP_VERB_LAYER_MOVE_TO_PREV ); + } else { + _fireAction( SP_VERB_SELECTION_LOWER ); + } + } + return true; + } + //TODO: Handle Ctrl-A, etc. + } + return false; +} + +/** + * Handles mouse events + * @param event Mouse event from GDK + * @return whether to eat the event (om nom nom) + */ +bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) +{ + static unsigned doubleclick = 0; + static bool overVisible = false; + + //Right mouse button was clicked, launch the pop-up menu + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { + Gtk::TreeModel::Path path; + int x = static_cast(event->x); + int y = static_cast(event->y); + if ( _tree.get_path_at_pos( x, y, path ) ) { + _checkTreeSelection(); + _popupMenu.popup(event->button, event->time); + if (_tree.get_selection()->is_selected(path)) { + return true; + } + } + } + + //Left mouse button was pressed! In order to handle multiple item drag & drop, + //we need to defer selection by setting the select function so that the tree doesn't + //automatically select anything. In order to handle multiple item icon clicking, + //we need to eat the event. There might be a better way to do both of these... + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { + overVisible = false; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (col == _tree.get_column(COL_VISIBLE-1)) { + //Click on visible column, eat this event to keep row selection + overVisible = true; + return true; + } else if (col == _tree.get_column(COL_LOCKED-1) || + col == _tree.get_column(COL_TYPE-1) || + col == _tree.get_column(COL_INSERTORDER - 1) || + col == _tree.get_column(COL_HIGHLIGHT-1)) { + //Click on an icon column, eat this event to keep row selection + return true; + } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { + //Click on a selected item with no modifiers, defer selection to the mouse-up by + //setting the select function to _noSelection + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_noSelection)); + _defer_target = path; + } + } + } + + //Restore the selection function to allow tree selection on mouse button release + if ( event->type == GDK_BUTTON_RELEASE) { + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction)); + } + + //CellRenderers do not have good support for dealing with multiple items, so + //we handle all events on them here + if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { + + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (_defer_target) { + //We had deferred a selection target, select it here (assuming no drag & drop) + if (_defer_target == path && !(event->x == 0 && event->y == 0)) + { + _tree.set_cursor(path, *col, false); + } + _defer_target = Gtk::TreeModel::Path(); + } + else { + if (event->state & GDK_SHIFT_MASK) { + // Shift left click on the visible/lock columns toggles "solo" mode + if (col == _tree.get_column(COL_VISIBLE - 1)) { + _takeAction(BUTTON_SOLO); + } else if (col == _tree.get_column(COL_LOCKED - 1)) { + _takeAction(BUTTON_LOCK_OTHERS); + } + } else if (event->state & GDK_MOD1_MASK) { + // Alt+left click on the visible/lock columns toggles "solo" mode and preserves selection + Gtk::TreeModel::iterator iter = _store->get_iter(path); + if (_store->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + SPItem *item = row[_model->_colObject]; + if (col == _tree.get_column(COL_VISIBLE - 1)) { + _desktop->toggleLayerSolo( item ); + DocumentUndo::maybeDone(_desktop->doc(), "layer:solo", SP_VERB_LAYER_SOLO, _("Toggle layer solo")); + } else if (col == _tree.get_column(COL_LOCKED - 1)) { + _desktop->toggleLockOtherLayers( item ); + DocumentUndo::maybeDone(_desktop->doc(), "layer:lockothers", SP_VERB_LAYER_LOCK_OTHERS, _("Lock other layers")); + } + } + } else { + Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPItem* item = row[_model->_colObject]; + + if (col == _tree.get_column(COL_VISIBLE - 1)) { + if (overVisible) { + //Toggle visibility + bool newValue = !row[_model->_colVisible]; + if (_tree.get_selection()->is_selected(path)) + { + //If the current row is selected, toggle the visibility + //for all selected items + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setVisibleIter), newValue)); + } + else + { + //If the current row is not selected, toggle just its visibility + row[_model->_colVisible] = newValue; + item->setHidden(!newValue); + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, + newValue? _("Unhide objects") : _("Hide objects")); + overVisible = false; + } + } else if (col == _tree.get_column(COL_LOCKED - 1)) { + //Toggle locking + bool newValue = !row[_model->_colLocked]; + if (_tree.get_selection()->is_selected(path)) + { + //If the current row is selected, toggle the sensitivity for + //all selected items + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setLockedIter), newValue)); + } + else + { + //If the current row is not selected, toggle just its sensitivity + row[_model->_colLocked] = newValue; + item->setLocked( newValue ); + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, + newValue? _("Lock objects") : _("Unlock objects")); + + } else if (col == _tree.get_column(COL_TYPE - 1)) { + if (SP_IS_GROUP(item)) + { + //Toggle the current item between a group and a layer + SPGroup * g = SP_GROUP(item); + bool newValue = g->layerMode() == SPGroup::LAYER; + row[_model->_colType] = newValue ? 1: 2; + g->setLayerMode(newValue ? SPGroup::GROUP : SPGroup::LAYER); + g->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, + newValue? _("Layer to group") : _("Group to layer")); + } + } else if (col == _tree.get_column(COL_INSERTORDER - 1)) { + if (SP_IS_GROUP(item)) + { + //Toggle the current item's insert order + SPGroup * g = SP_GROUP(item); + bool newValue = !g->insertBottom(); + row[_model->_colInsertOrder] = newValue ? 2: 1; + g->setInsertBottom(newValue); + g->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, + newValue? _("Set insert mode bottom") : _("Set insert mode top")); + } + } else if (col == _tree.get_column(COL_HIGHLIGHT - 1)) { + //Clear the highlight targets + _highlight_target.clear(); + if (_tree.get_selection()->is_selected(path)) + { + //If the current item is selected, store all selected items + //in the highlight source + _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeHighlightTarget)); + } else { + //If the current item is not selected, store only it in the highlight source + _storeHighlightTarget(iter); + } + if (_colorSelector) + { + //Set up the color selector + SPColor color; + color.set( row[_model->_colHighlight] ); + _colorSelector->base->setColorAlpha(color, SP_RGBA32_A_F(row[_model->_colHighlight])); + } + //Show the color selector dialog + _colorSelectorDialog.show(); + } + } + } + } + } + + //Second mouse button press, set double click status for when the mouse is released + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + doubleclick = 1; + } + + //Double click on mouse button release, if we're over the label column, edit + //the item name + if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { + doubleclick = 0; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { + // Double click on the Layer name, enable editing + _text_renderer->property_editable() = true; + _tree.set_cursor (path, *_name_column, true); + grab_focus(); + } + } + + return false; +} + +/** + * Stores items in the highlight target vector to manipulate with the color selector + * @param iter Current tree item to store + */ +void ObjectsPanel::_storeHighlightTarget(const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + _highlight_target.push_back(item); + } +} + +/* + * Drap and drop within the tree + */ +bool ObjectsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) +{ + int cell_x = 0, cell_y = 0; + Gtk::TreeModel::Path target_path; + Gtk::TreeView::Column *target_column; + + //Set up our defaults and clear the source vector + _dnd_into = false; + _dnd_target = NULL; + _dnd_source.clear(); + + //Add all selected items to the source vector + _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeDragSource)); + + if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { + // Are we before, inside or after the drop layer + Gdk::Rectangle rect; + _tree.get_background_area (target_path, *target_column, rect); + int cell_height = rect.get_height(); + _dnd_into = (cell_y > (int)(cell_height * 1/4) && cell_y <= (int)(cell_height * 3/4)); + if (cell_y > (int)(cell_height * 3/4)) { + Gtk::TreeModel::Path next_path = target_path; + next_path.next(); + if (_store->iter_is_valid(_store->get_iter(next_path))) { + target_path = next_path; + } else { + // Dragging to the "end" + Gtk::TreeModel::Path up_path = target_path; + up_path.up(); + if (_store->iter_is_valid(_store->get_iter(up_path))) { + // Drop into parent + target_path = up_path; + _dnd_into = true; + } else { + // Drop into the top level + _dnd_target = NULL; + } + } + } + Gtk::TreeModel::iterator iter = _store->get_iter(target_path); + if (_store->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + //Set the drop target. If we're not dropping into a group, we cannot + //drop into it, so set _dnd_into false. + _dnd_target = row[_model->_colObject]; + if (!(SP_IS_GROUP(_dnd_target))) _dnd_into = false; + } + } + + _takeAction(DRAGNDROP); + + return false; +} + +/** + * Stores all selected items as the drag source + * @param iter Current tree item + */ +void ObjectsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + _dnd_source.push_back(item); + } +} + +/* + * Move a layer in response to a drag & drop action + */ +void ObjectsPanel::_doTreeMove( ) +{ + g_assert(_desktop != NULL); + g_assert(_document != NULL); + + std::vector idvector; + + //Clear the desktop selection + _desktop->selection->clear(); + while (!_dnd_source.empty()) + { + SPItem *obj = _dnd_source.back(); + _dnd_source.pop_back(); + + if (obj != _dnd_target) { + //Store the object id (for selection later) and move the object + idvector.push_back(g_strdup(obj->getId())); + obj->moveTo(_dnd_target, _dnd_into); + } + } + + //Select items + while (!idvector.empty()) { + //Grab the id from the vector, get the item in the document and select it + gchar * id = idvector.back(); + idvector.pop_back(); + SPObject *obj = _document->getObjectById(id); + g_free(id); + if (obj && SP_IS_ITEM(obj)) { + SPItem *item = SP_ITEM(obj); + if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) + { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); + _desktop->selection->add(item); + } + else + { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); + } + } + } + + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Moved objects")); +} + +/** + * Fires the action verb + */ +void ObjectsPanel::_fireAction( unsigned int code ) +{ + if ( _desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(_desktop); + if ( action ) { + sp_action_perform( action, NULL ); + } + } + } +} + +/** + * Executes the given button action during the idle time + */ +void ObjectsPanel::_takeAction( int val ) +{ + if ( !_pending ) { + _pending = new InternalUIBounce(); + _pending->_actionCode = val; + Glib::signal_timeout().connect( sigc::mem_fun(*this, &ObjectsPanel::_executeAction), 0 ); + } +} + +/** + * Executes the pending button action + */ +bool ObjectsPanel::_executeAction() +{ + // Make sure selected layer hasn't changed since the action was triggered + if ( _document && _pending) + { + int val = _pending->_actionCode; +// SPObject* target = _pending->_target; + + switch ( val ) { + case BUTTON_NEW: + { + _fireAction( SP_VERB_LAYER_NEW ); + } + break; + case BUTTON_RENAME: + { + _fireAction( SP_VERB_LAYER_RENAME ); + } + break; + case BUTTON_TOP: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_TOP ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_FRONT); + } + } + break; + case BUTTON_BOTTOM: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_BOTTOM ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_BACK); + } + } + break; + case BUTTON_UP: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_RAISE ); + } + else + { + _fireAction( SP_VERB_SELECTION_RAISE ); + } + } + break; + case BUTTON_DOWN: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_LOWER ); + } + else + { + _fireAction( SP_VERB_SELECTION_LOWER ); + } + } + break; + case BUTTON_DUPLICATE: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_DUPLICATE ); + } + else + { + _fireAction( SP_VERB_EDIT_DUPLICATE ); + } + } + break; + case BUTTON_DELETE: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_DELETE ); + } + else + { + _fireAction( SP_VERB_EDIT_DELETE ); + } + } + break; + case BUTTON_SOLO: + { + _fireAction( SP_VERB_LAYER_SOLO ); + } + break; + case BUTTON_SHOW_ALL: + { + _fireAction( SP_VERB_LAYER_SHOW_ALL ); + } + break; + case BUTTON_HIDE_ALL: + { + _fireAction( SP_VERB_LAYER_HIDE_ALL ); + } + break; + case BUTTON_LOCK_OTHERS: + { + _fireAction( SP_VERB_LAYER_LOCK_OTHERS ); + } + break; + case BUTTON_LOCK_ALL: + { + _fireAction( SP_VERB_LAYER_LOCK_ALL ); + } + break; + case BUTTON_UNLOCK_ALL: + { + _fireAction( SP_VERB_LAYER_UNLOCK_ALL ); + } + break; + case BUTTON_SETCLIP: + { + _fireAction( SP_VERB_OBJECT_SET_CLIPPATH ); + } + break; + case BUTTON_UNSETCLIP: + { + _fireAction( SP_VERB_OBJECT_UNSET_CLIPPATH ); + } + break; + case BUTTON_SETMASK: + { + _fireAction( SP_VERB_OBJECT_SET_MASK ); + } + break; + case BUTTON_UNSETMASK: + { + _fireAction( SP_VERB_OBJECT_UNSET_MASK ); + } + break; + case BUTTON_GROUP: + { + _fireAction( SP_VERB_SELECTION_GROUP ); + } + break; + case BUTTON_UNGROUP: + { + _fireAction( SP_VERB_SELECTION_UNGROUP ); + } + break; + case BUTTON_COLLAPSE_ALL: + { + for (SPObject* obj = _document->getRoot()->firstChild(); obj != NULL; obj = obj->next) { + if (SP_IS_GROUP(obj)) { + _setCollapsed(SP_GROUP(obj)); + } + } + _objectsChanged(_document->getRoot()); + } + break; + case DRAGNDROP: + { + _doTreeMove( ); + } + break; + } + + delete _pending; + _pending = 0; + } + + return false; +} + +/** + * Handles an unsuccessful item label edit (escape pressed, etc.) + */ +void ObjectsPanel::_handleEditingCancelled() +{ + _text_renderer->property_editable() = false; +} + +/** + * Handle a successful item label edit + * @param path Tree path of the item currently being edited + * @param new_text New label text + */ +void ObjectsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) +{ + Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + _renameObject(row, new_text); + _text_renderer->property_editable() = false; +} + +/** + * Renames an item in the tree + * @param row Tree row + * @param name New label to give to the item + */ +void ObjectsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) +{ + if ( row && _desktop) { + SPItem* item = row[_model->_colObject]; + if ( item ) { + gchar const* oldLabel = item->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + item->setLabel(name.c_str()); + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Rename object")); + } + } + } +} + +/** + * A row selection function used by the tree that doesn't allow any new items to be selected. + * Currently, this is used to allow multi-item drag & drop. + */ +bool ObjectsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool /*currentlySelected*/ ) +{ + return false; +} + +/** + * Default row selection function taken from the layers dialog + */ +bool ObjectsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) +{ + bool val = true; + if ( !currentlySelected && _toggleEvent ) + { + GdkEvent* event = gtk_get_current_event(); + if ( event ) { + // (keep these checks separate, so we know when to call gdk_event_free() + if ( event->type == GDK_BUTTON_PRESS ) { + GdkEventButton const* target = reinterpret_cast(_toggleEvent); + GdkEventButton const* evtb = reinterpret_cast(event); + + if ( (evtb->window == target->window) + && (evtb->send_event == target->send_event) + && (evtb->time == target->time) + && (evtb->state == target->state) + ) + { + // Ooooh! It's a magic one + val = false; + } + } + gdk_event_free(event); + } + } + return val; +} + +/** + * Sets a group to be collapsed and recursively collapses its children + * @param group The group to collapse + */ +void ObjectsPanel::_setCollapsed(SPGroup * group) +{ + group->setExpanded(false); + group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + for (SPObject *iter = group->children; iter != NULL; iter = iter->next) + { + if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); + } +} + +/** + * Sets a group to be expanded or collapsed + * @param iter Current tree item + * @param isexpanded Whether to expand or collapse + */ +void ObjectsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) +{ + Gtk::TreeModel::Row row = *iter; + + SPItem* item = row[_model->_colObject]; + if (item && SP_IS_GROUP(item)) + { + if (isexpanded) + { + //If we're expanding, simply perform the expansion + SP_GROUP(item)->setExpanded(isexpanded); + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + else + { + //If we're collapsing, we need to recursively collapse, so call our helper function + _setCollapsed(SP_GROUP(item)); + } + } +} + +/** + * Callback for when the highlight color is changed + * @param csel Color selector + * @param cp Objects panel + */ +void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject * cp) +{ + SPColor color; + float alpha = 0; + csel->base->getColorAlpha(color, alpha); + guint32 rgba = color.toRGBA32( alpha ); + + ObjectsPanel *ptr = reinterpret_cast(cp); + + //Set the highlight color for all items in the _highlight_target (all selected items) + for (std::vector::iterator iter = ptr->_highlight_target.begin(); iter != ptr->_highlight_target.end(); ++iter) + { + SPItem * target = *iter; + target->setHighlightColor(rgba); + target->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_OBJECTS, _("Set object highlight color")); +} + +/** + * Callback for when the opacity value is changed + */ +void ObjectsPanel::_opacityValueChanged() +{ + _blockCompositeUpdate = true; + _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_opacityChangedIter)); + DocumentUndo::maybeDone(_document, "opacity", SP_VERB_DIALOG_OBJECTS, _("Set object opacity")); + _blockCompositeUpdate = false; +} + +/** + * Change the opacity of the selected items in the tree + * @param iter Current tree item + */ +void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + item->style->opacity.set = TRUE; + item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment.get_value() / _opacity_adjustment.get_upper()); + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Callback for when the blend mode is changed + */ +void ObjectsPanel::_blendValueChanged() +{ + _blockCompositeUpdate = true; + const Glib::ustring blendmode = _fe_cb.get_blend_mode(); + + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blendChangedIter), blendmode)); + DocumentUndo::done(_document, SP_VERB_DIALOG_OBJECTS, _("Set object blend mode")); + _blockCompositeUpdate = false; +} + +/** + * Sets the blend mode of the selected tree items + * @param iter Current tree item + * @param blendmode Blend mode to set + */ +void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + //Since blur and blend are both filters, we need to set both at the same time + SPStyle *style = item->style; + g_assert(style != NULL); + + if (blendmode != "normal") { + gdouble radius = 0; + if (item->style->getFilter()) { + for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { + if (SP_IS_GAUSSIANBLUR(primitive)) { + Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); + if (bbox) { + radius = SP_GAUSSIANBLUR(primitive)->stdDeviation.getNumber(); + } + } + } + } + SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); + sp_style_set_property_url(item, "filter", filter, false); + } else { + for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { + if (SP_IS_FEBLEND(primitive)) { + primitive->deleteObject(); + break; + } + } + if (!item->style->getFilter()->children) { + remove_filter(item, false); + } + } + + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Callback for when the blur value has changed + */ +void ObjectsPanel::_blurValueChanged() +{ + _blockCompositeUpdate = true; + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blurChangedIter), _fe_blur.get_blur_value())); + DocumentUndo::maybeDone(_document, "blur", SP_VERB_DIALOG_OBJECTS, _("Set object blur")); + _blockCompositeUpdate = false; +} + +/** + * Sets the blur value for the selected items in the tree + * @param iter Current tree item + * @param blur Blur value to set + */ +void ObjectsPanel::_blurChangedIter(const Gtk::TreeIter& iter, double blur) +{ + Gtk::TreeModel::Row row = *iter; + SPItem* item = row[_model->_colObject]; + if (item) + { + //Since blur and blend are both filters, we need to set both at the same time + SPStyle *style = item->style; + if (style) { + Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); + double radius; + if (bbox) { + double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? + radius = blur * perimeter / 400; + } else { + radius = 0; + } + + if (radius != 0) { + SPFilter *filter = modify_filter_gaussian_blur_from_item(_document, item, radius); + sp_style_set_property_url(item, "filter", filter, false); + } else if (item->style->filter.set && item->style->getFilter()) { + for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { + if (SP_IS_GAUSSIANBLUR(primitive)) { + primitive->deleteObject(); + break; + } + } + if (!item->style->getFilter()->children) { + remove_filter(item, false); + } + } + item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + } +} + +/** + * Constructor + */ +ObjectsPanel::ObjectsPanel() : + UI::Widget::Panel("", "/dialogs/objects", SP_VERB_DIALOG_OBJECTS), + _rootWatcher(0), + _deskTrack(), + _desktop(0), + _document(0), + _model(0), + _pending(0), + _toggleEvent(0), + _defer_target(), + _composite_vbox(false, 0), + _opacity_vbox(false, 0), + _opacity_label(_("Opacity:")), + _opacity_label_unit(_("%")), +#if WITH_GTKMM_3_0 + _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)), +#else + _opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0), +#endif + _opacity_hscale(_opacity_adjustment), + _opacity_spin_button(_opacity_adjustment, 0.01, 1), + _fe_cb(UI::Widget::SimpleFilterModifier::BLEND), + _fe_vbox(false, 0), + _fe_alignment(1, 1, 1, 1), + _fe_blur(UI::Widget::SimpleFilterModifier::BLUR), + _blur_vbox(false, 0), + _blur_alignment(1, 1, 1, 1), + _colorSelectorDialog("dialogs.colorpickerwindow") +{ + //Create the tree model and store + ModelColumns *zoop = new ModelColumns(); + _model = zoop; + + _store = Gtk::TreeStore::create( *zoop ); + + //Set up the tree + _tree.set_model( _store ); + _tree.set_headers_visible(false); + _tree.set_reorderable(true); + _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); + + //Create the column CellRenderers + //Visible + Inkscape::UI::Widget::ImageToggler *eyeRenderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( + INKSCAPE_ICON("object-visible"), INKSCAPE_ICON("object-hidden")) ); + int visibleColNum = _tree.append_column("vis", *eyeRenderer) - 1; + eyeRenderer->property_activatable() = true; + Gtk::TreeViewColumn* col = _tree.get_column(visibleColNum); + if ( col ) { + col->add_attribute( eyeRenderer->property_active(), _model->_colVisible ); + } + + //Locked + Inkscape::UI::Widget::ImageToggler * renderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( + INKSCAPE_ICON("object-locked"), INKSCAPE_ICON("object-unlocked")) ); + int lockedColNum = _tree.append_column("lock", *renderer) - 1; + renderer->property_activatable() = true; + col = _tree.get_column(lockedColNum); + if ( col ) { + col->add_attribute( renderer->property_active(), _model->_colLocked ); + } + + //Type + Inkscape::UI::Widget::LayerTypeIcon * typeRenderer = Gtk::manage( new Inkscape::UI::Widget::LayerTypeIcon()); + int typeColNum = _tree.append_column("type", *typeRenderer) - 1; + typeRenderer->property_activatable() = true; + col = _tree.get_column(typeColNum); + if ( col ) { + col->add_attribute( typeRenderer->property_active(), _model->_colType ); + } + + //Insert order + Inkscape::UI::Widget::InsertOrderIcon * insertRenderer = Gtk::manage( new Inkscape::UI::Widget::InsertOrderIcon()); + int insertColNum = _tree.append_column("type", *insertRenderer) - 1; + col = _tree.get_column(insertColNum); + if ( col ) { + col->add_attribute( insertRenderer->property_active(), _model->_colInsertOrder ); + } + + //Clip/mask + Inkscape::UI::Widget::ClipMaskIcon * clipRenderer = Gtk::manage( new Inkscape::UI::Widget::ClipMaskIcon()); + int clipColNum = _tree.append_column("clipmask", *clipRenderer) - 1; + col = _tree.get_column(clipColNum); + if ( col ) { + col->add_attribute( clipRenderer->property_active(), _model->_colClipMask ); + } + + //Highlight + Inkscape::UI::Widget::HighlightPicker * highlightRenderer = Gtk::manage( new Inkscape::UI::Widget::HighlightPicker()); + int highlightColNum = _tree.append_column("highlight", *highlightRenderer) - 1; + col = _tree.get_column(highlightColNum); + if ( col ) { + col->add_attribute( highlightRenderer->property_active(), _model->_colHighlight ); + } + + //Label + _text_renderer = Gtk::manage(new Gtk::CellRendererText()); + int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; + _name_column = _tree.get_column(nameColNum); + _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); + + //Set the expander and search columns + _tree.set_expander_column( *_tree.get_column(nameColNum) ); + _tree.set_search_column(_model->_colLabel); + + //Set up the tree selection + _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); + _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &ObjectsPanel::_pushTreeSelectionToCurrent) ); + _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction) ); + + //Set up tree signals + _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); + _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); + _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleKeyEvent), false ); + _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleDragDrop), false); + _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), false)); + _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), true)); + + //Set up the label editing signals + _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEdited) ); + _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEditingCancelled) ); + + //Set up the scroller window and pack the page + _scroller.add( _tree ); + _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scroller.set_shadow_type(Gtk::SHADOW_IN); + Gtk::Requisition sreq; +#if WITH_GTKMM_3_0 + Gtk::Requisition sreq_natural; + _scroller.get_preferred_size(sreq_natural, sreq); +#else + sreq = _scroller.size_request(); +#endif + int minHeight = 70; + if (sreq.height < minHeight) { + // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar + _scroller.set_size_request(sreq.width, minHeight); + } + + _page.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); + + //Set up the compositing items + //Blend mode filter effect + _composite_vbox.pack_start(_fe_vbox, false, false, 2); + _fe_alignment.set_padding(0, 0, 4, 0); + _fe_alignment.add(_fe_cb); + _fe_vbox.pack_start(_fe_alignment, false, false, 0); + _blendConnection = _fe_cb.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blendValueChanged)); + + //Blur filter effect + _composite_vbox.pack_start(_blur_vbox, false, false, 2); + _blur_alignment.set_padding(0, 0, 4, 0); + _blur_alignment.add(_fe_blur); + _blur_vbox.pack_start(_blur_alignment, false, false, 0); + _blurConnection = _fe_blur.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blurValueChanged)); + + //Opacity + _composite_vbox.pack_start(_opacity_vbox, false, false, 2); + _opacity_label.set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); + _opacity_hbox.pack_start(_opacity_label, false, false, 3); + _opacity_vbox.pack_start(_opacity_hbox, false, false, 0); + _opacity_hbox.pack_start(_opacity_hscale, true, true, 0); + _opacity_hbox.pack_start(_opacity_spin_button, false, false, 0); + _opacity_hbox.pack_start(_opacity_label_unit, false, false, 3); + _opacity_hscale.set_draw_value(false); +#if WITH_GTKMM_3_0 + _opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); + _opacity_label.set_mnemonic_widget(_opacity_hscale); +#else + _opacityConnection = _opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); + _opacity_label.set_mnemonic_widget(_opacity_hscale); +#endif + + //Keep the labels aligned + GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj())); + gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj())); + gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_blur.get_blur_label()->gobj())); + + //Pack the compositing functions and the button row + _page.pack_end(_composite_vbox, Gtk::PACK_SHRINK); + _page.pack_end(_buttonsRow, Gtk::PACK_SHRINK); + + //Pack into the panel contents + _getContents()->pack_start(_page, Gtk::PACK_EXPAND_WIDGET); + + SPDesktop* targetDesktop = getDesktop(); + + //Set up the button row + Gtk::Button* btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_ADD, _("New Layer") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_NEW) ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_REMOVE, _("Remove") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DELETE) ); + _watching.push_back( btn ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_GOTO_BOTTOM, _("Move To Bottom") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_BOTTOM) ); + _watchingNonBottom.push_back( btn ); + _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_GO_DOWN, _("Move Down") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DOWN) ); + _watchingNonBottom.push_back( btn ); + _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_GO_UP, _("Move Up") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_UP) ); + _watchingNonTop.push_back( btn ); + _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_GOTO_TOP, _("Move To Top") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_TOP) ); + _watchingNonTop.push_back( btn ); + _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + + btn = Gtk::manage( new Gtk::Button() ); + _styleButton( *btn, GTK_STOCK_UNINDENT, _("Collapse All") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_COLLAPSE_ALL) ); + _watchingNonBottom.push_back( btn ); + _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + + _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); + _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); + + _watching.push_back(&_composite_vbox); + + //Set up the pop-up menu + // ------------------------------------------------------- + { + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_RENAME, 0, "Rename", (int)BUTTON_RENAME ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_EDIT_DUPLICATE, 0, "Duplicate", (int)BUTTON_DUPLICATE ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_NEW, 0, "New", (int)BUTTON_NEW ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SOLO, 0, "Solo", (int)BUTTON_SOLO ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SHOW_ALL, 0, "Show All", (int)BUTTON_SHOW_ALL ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_HIDE_ALL, 0, "Hide All", (int)BUTTON_HIDE_ALL ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_OTHERS, 0, "Lock Others", (int)BUTTON_LOCK_OTHERS ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_ALL, 0, "Lock All", (int)BUTTON_LOCK_ALL ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_UNLOCK_ALL, 0, "Unlock All", (int)BUTTON_UNLOCK_ALL ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watchingNonTop.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_RAISE, GTK_STOCK_GO_UP, "Up", (int)BUTTON_UP ) ); + _watchingNonBottom.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_LOWER, GTK_STOCK_GO_DOWN, "Down", (int)BUTTON_DOWN ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_GROUP, 0, "Group", (int)BUTTON_GROUP ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_UNGROUP, 0, "Ungroup", (int)BUTTON_UNGROUP ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_CLIPPATH, 0, "Set Clip", (int)BUTTON_SETCLIP ) ); + //not implemented + //_watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_CREATE_CLIP_GROUP, 0, "Create Clip Group", (int)BUTTON_CLIPGROUP ) ); + + //will never be implemented + //_watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_CLIPPATH, 0, "Unset Clip", (int)BUTTON_UNSETCLIP ) ); + + _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_MASK, 0, "Set Mask", (int)BUTTON_SETMASK ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_MASK, 0, "Unset Mask", (int)BUTTON_UNSETMASK ) ); + + _popupMenu.show_all_children(); + } + // ------------------------------------------------------- + + //Set initial sensitivity of buttons + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( false ); + } + + //Set up the color selection dialog + GtkWidget *dlg = GTK_WIDGET(_colorSelectorDialog.gobj()); + sp_transientize(dlg); + + _colorSelectorDialog.hide(); + _colorSelectorDialog.set_title (_("Select Highlight Color")); + _colorSelectorDialog.set_border_width (4); + _colorSelectorDialog.property_modal() = true; + _colorSelector = SP_COLOR_SELECTOR(sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK)); + _colorSelectorDialog.get_vbox()->pack_start ( + *Glib::wrap(&_colorSelector->vbox), true, true, 0); + + g_signal_connect(G_OBJECT(_colorSelector), "dragged", + G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); + g_signal_connect(G_OBJECT(_colorSelector), "released", + G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); + g_signal_connect(G_OBJECT(_colorSelector), "changed", + G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); + + gtk_widget_show(GTK_WIDGET(_colorSelector)); + + setDesktop( targetDesktop ); + + show_all_children(); + + //Connect the desktop changed connection + desktopChangeConn = _deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &ObjectsPanel::setDesktop) ); + _deskTrack.connect(GTK_WIDGET(gobj())); +} + +/** + * Destructor + */ +ObjectsPanel::~ObjectsPanel() +{ + //Close the highlight selection dialog + _colorSelectorDialog.hide(); + _colorSelector = NULL; + + //Set the desktop to null, which will disconnect all object watchers + setDesktop(NULL); + + if ( _model ) + { + delete _model; + _model = 0; + } + + if (_pending) { + delete _pending; + _pending = 0; + } + + if ( _toggleEvent ) + { + gdk_event_free( _toggleEvent ); + _toggleEvent = 0; + } + + desktopChangeConn.disconnect(); + _deskTrack.disconnect(); +} + +/** + * Sets the current document + */ +void ObjectsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) +{ + //Clear all object watchers + while (!_objectWatchers.empty()) + { + ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + //Delete the root watcher + if (_rootWatcher) + { + _rootWatcher->_repr->removeObserver(*_rootWatcher); + delete _rootWatcher; + _rootWatcher = NULL; + } + + _document = document; + + if (document && document->getRoot() && document->getRoot()->getRepr()) + { + //Create a new root watcher for the document and then call _objectsChanged to fill the tree + _rootWatcher = new ObjectsPanel::ObjectWatcher(this, document->getRoot()); + document->getRoot()->getRepr()->addObserver(*_rootWatcher); + _objectsChanged(document->getRoot()); + } +} + +/** + * Set the current panel desktop + */ +void ObjectsPanel::setDesktop( SPDesktop* desktop ) +{ + Panel::setDesktop(desktop); + + if ( desktop != _desktop ) { + _documentChangedConnection.disconnect(); + _selectionChangedConnection.disconnect(); + if ( _desktop ) { + _desktop = 0; + } + + _desktop = Panel::getDesktop(); + if ( _desktop ) { + //Connect desktop signals + _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &ObjectsPanel::setDocument)); + _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &ObjectsPanel::_objectsSelected)); + + setDocument(_desktop, _desktop->doc()); + } else { + setDocument(NULL, NULL); + } + } + _deskTrack.setBase(desktop); +} +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h new file mode 100644 index 000000000..7b07afd63 --- /dev/null +++ b/src/ui/dialog/objects.h @@ -0,0 +1,255 @@ +/* + * A simple dialog for objects UI. + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef SEEN_OBJECTS_PANEL_H +#define SEEN_OBJECTS_PANEL_H + +#include +#include +#include +#include +#include +#include "ui/widget/spinbutton.h" +#include "ui/widget/panel.h" +#include "ui/widget/object-composite-settings.h" +#include "desktop-tracker.h" +#include "ui/widget/style-subject.h" +#include "selection.h" +#include "ui/widget/filter-effect-chooser.h" + +class SPObject; +class SPGroup; +struct SPColorSelector; + +namespace Inkscape { + +namespace UI { +namespace Dialog { + + +/** + * A panel that displays objects. + */ +class ObjectsPanel : public UI::Widget::Panel +{ +public: + ObjectsPanel(); + virtual ~ObjectsPanel(); + + static ObjectsPanel& getInstance(); + + void setDesktop( SPDesktop* desktop ); + void setDocument( SPDesktop* desktop, SPDocument* document); + +private: + //Internal Classes: + class ModelColumns; + class InternalUIBounce; + class ObjectWatcher; + + //Connections, Watchers, Trackers: + + //Document root watcher + ObjectsPanel::ObjectWatcher* _rootWatcher; + + //All object watchers + std::vector _objectWatchers; + + //Connection for when the desktop changes + sigc::connection desktopChangeConn; + + //Connection for when the document changes + sigc::connection _documentChangedConnection; + + //Connection for when the active selection in the document changes + sigc::connection _selectionChangedConnection; + + //Connection for when the selection in the dialog changes + sigc::connection _selectedConnection; + + //Connections for when the opacity/blend/blur of the active selection in the document changes + sigc::connection _opacityConnection; + sigc::connection _blendConnection; + sigc::connection _blurConnection; + + //Desktop tracker for grabbing the desktop changed connection + DesktopTracker _deskTrack; + + //Members: + + //The current desktop + SPDesktop* _desktop; + + //The current document + SPDocument* _document; + + //Tree data model + ModelColumns* _model; + + //Prevents the composite controls from updating + bool _blockCompositeUpdate; + + // + InternalUIBounce* _pending; + + //Whether the drag & drop was dragged into an item + gboolean _dnd_into; + + //List of drag & drop source items + std::vector _dnd_source; + + //Drag & drop target item + SPItem* _dnd_target; + + //List of items to change the highlight on + std::vector _highlight_target; + + //GUI Members: + + GdkEvent* _toggleEvent; + + Gtk::TreeModel::Path _defer_target; + + Glib::RefPtr _store; + std::vector _watching; + std::vector _watchingNonTop; + std::vector _watchingNonBottom; + + Gtk::TreeView _tree; + Gtk::CellRendererText *_text_renderer; + Gtk::TreeView::Column *_name_column; +#if WITH_GTKMM_3_0 + Gtk::Box _buttonsRow; + Gtk::Box _buttonsPrimary; + Gtk::Box _buttonsSecondary; +#else + Gtk::HBox _buttonsRow; + Gtk::HBox _buttonsPrimary; + Gtk::HBox _buttonsSecondary; +#endif + Gtk::ScrolledWindow _scroller; + Gtk::Menu _popupMenu; + Inkscape::UI::Widget::SpinButton _spinBtn; + Gtk::VBox _page; + + /* Composite Settings */ + Gtk::VBox _composite_vbox; + Gtk::VBox _opacity_vbox; + Gtk::HBox _opacity_hbox; + Gtk::Label _opacity_label; + Gtk::Label _opacity_label_unit; +#if WITH_GTKMM_3_0 + Glib::RefPtr _opacity_adjustment; +#else + Gtk::Adjustment _opacity_adjustment; +#endif + Gtk::HScale _opacity_hscale; + Inkscape::UI::Widget::SpinButton _opacity_spin_button; + + Inkscape::UI::Widget::SimpleFilterModifier _fe_cb; + Gtk::VBox _fe_vbox; + Gtk::Alignment _fe_alignment; + Inkscape::UI::Widget::SimpleFilterModifier _fe_blur; + Gtk::VBox _blur_vbox; + Gtk::Alignment _blur_alignment; + + Gtk::Dialog _colorSelectorDialog; + SPColorSelector *_colorSelector; + + + //Methods: + + ObjectsPanel(ObjectsPanel const &); // no copy + ObjectsPanel &operator=(ObjectsPanel const &); // no assign + + void _styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ); + void _fireAction( unsigned int code ); + + Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); + + void _setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ); + void _setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ); + + bool _handleButtonEvent(GdkEventButton *event); + bool _handleKeyEvent(GdkEventKey *event); + + void _storeHighlightTarget(const Gtk::TreeModel::iterator& iter); + void _storeDragSource(const Gtk::TreeModel::iterator& iter); + bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); + void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); + void _handleEditingCancelled(); + + void _doTreeMove(); + void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); + + void _pushTreeSelectionToCurrent(); + void _selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setOpacity ); + + void _checkTreeSelection(); + + void _takeAction( int val ); + bool _executeAction(); + + void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); + void _setCollapsed(SPGroup * group); + + bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + + void _compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ); + void _updateComposite(); + void _setCompositingValues(SPItem *item); + + void _updateObject(SPObject *obj, bool recurse); + bool _checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj); + + void _objectsSelected(Selection *sel); + bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto); + + void _objectsChanged(SPObject *obj); + void _addObject( SPObject* obj, Gtk::TreeModel::Row* parentRow ); + + void _opacityChangedIter(const Gtk::TreeIter& iter); + void _opacityValueChanged(); + + void _blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode); + void _blendValueChanged(); + + void _blurChangedIter(const Gtk::TreeIter& iter, double blur); + void _blurValueChanged(); + + + void setupDialog(const Glib::ustring &title); + + friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); + +}; + + + +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + + +#endif // SEEN_OBJECTS_PANEL_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp new file mode 100644 index 000000000..f994b571f --- /dev/null +++ b/src/ui/dialog/tags.cpp @@ -0,0 +1,1182 @@ +/* + * A simple panel for tags + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "tags.h" +#include +#include +#include +#include + +#include + +#include "desktop.h" +#include "desktop-style.h" +#include "document.h" +#include "document-undo.h" +#include "helper/action.h" +#include "inkscape.h" +#include "layer-fns.h" +#include "layer-manager.h" +#include "preferences.h" +#include "sp-item.h" +#include "sp-object.h" +#include "sp-shape.h" +#include "svg/css-ostringstream.h" +#include "ui/icon-names.h" +#include "ui/widget/layertypeicon.h" +#include "ui/widget/addtoicon.h" +#include "verbs.h" +#include "widgets/icon.h" +#include "xml/node.h" +#include "xml/node-observer.h" +#include "xml/repr.h" +#include "sp-root.h" +#include "event-context.h" +#include "selection.h" +#include "dialogs/dialog-events.h" +#include "widgets/sp-color-notebook.h" +#include "style.h" +#include "filter-chemistry.h" +#include "filters/blend.h" +#include "filters/gaussian-blur.h" +#include "sp-clippath.h" +#include "sp-mask.h" +#include "sp-tag.h" +#include "sp-defs.h" +#include "sp-tag-use.h" +#include "sp-tag-use-reference.h" + +//#define DUMP_LAYERS 1 + +namespace Inkscape { +namespace UI { +namespace Dialog { + +using Inkscape::XML::Node; + +TagsPanel& TagsPanel::getInstance() +{ + return *new TagsPanel(); +} + +enum { + COL_ADD = 1 +}; + +enum { + BUTTON_NEW = 0, + BUTTON_TOP, + BUTTON_BOTTOM, + BUTTON_UP, + BUTTON_DOWN, + BUTTON_DELETE, + DRAGNDROP +}; + +class TagsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { +public: + ObjectWatcher(TagsPanel* pnl, SPObject* obj, Inkscape::XML::Node * repr) : + _pnl(pnl), + _obj(obj), + _repr(repr), + _labelAttr(g_quark_from_string("inkscape:label")) + {} + + ObjectWatcher(TagsPanel* pnl, SPObject* obj) : + _pnl(pnl), + _obj(obj), + _repr(obj->getRepr()), + _labelAttr(g_quark_from_string("inkscape:label")) + {} + + virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if ( _pnl && _obj ) { + if ( name == _labelAttr ) { + _pnl->_updateObject( _obj); + } + } + } + + TagsPanel* _pnl; + SPObject* _obj; + Inkscape::XML::Node* _repr; + GQuark _labelAttr; +}; + +class TagsPanel::InternalUIBounce +{ +public: + int _actionCode; +}; + +void TagsPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ) +{ + bool set = false; + + if ( iconName ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + btn.set_relief(Gtk::RELIEF_NONE); + set = true; + } + + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !set && action && action->image ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, action->image ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + set = true; + } + } + } + + btn.set_tooltip_text (tooltip); +} + + +Gtk::MenuItem& TagsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) +{ + GtkWidget* iconWidget = 0; + const char* label = 0; + + if ( iconName ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); + } + + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !iconWidget && action && action->image ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); + } + + if ( action ) { + label = action->name; + } + } + } + + if ( !label && fallback ) { + label = fallback; + } + + Gtk::Widget* wrapped = 0; + if ( iconWidget ) { + wrapped = manage(Glib::wrap(iconWidget)); + wrapped->show(); + } + + + Gtk::MenuItem* item = 0; + + if (wrapped) { + item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); + } else { + item = Gtk::manage(new Gtk::MenuItem(label, true)); + } + + item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &TagsPanel::_takeAction), id)); + _popupMenu.append(*item); + + return *item; +} + +void TagsPanel::_fireAction( unsigned int code ) +{ + if ( _desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(_desktop); + if ( action ) { + sp_action_perform( action, NULL ); + } + } + } +} + +void TagsPanel::_takeAction( int val ) +{ + if ( !_pending ) { + _pending = new InternalUIBounce(); + _pending->_actionCode = val; + Glib::signal_timeout().connect( sigc::mem_fun(*this, &TagsPanel::_executeAction), 0 ); + } +} + +bool TagsPanel::_executeAction() +{ + // Make sure selected layer hasn't changed since the action was triggered + if ( _pending) + { + int val = _pending->_actionCode; +// SPObject* target = _pending->_target; + + switch ( val ) { + case BUTTON_NEW: + { + _fireAction( SP_VERB_TAG_NEW ); + } + break; + case BUTTON_TOP: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_TOP ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_FRONT); + } + } + break; + case BUTTON_BOTTOM: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_TO_BOTTOM ); + } + else + { + _fireAction( SP_VERB_SELECTION_TO_BACK); + } + } + break; + case BUTTON_UP: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_RAISE ); + } + else + { + _fireAction( SP_VERB_SELECTION_RAISE ); + } + } + break; + case BUTTON_DOWN: + { + if (_desktop->selection->isEmpty()) + { + _fireAction( SP_VERB_LAYER_LOWER ); + } + else + { + _fireAction( SP_VERB_SELECTION_LOWER ); + } + } + break; + case BUTTON_DELETE: + { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * obj = *iter; + if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); + } + break; + case DRAGNDROP: + { + _doTreeMove( ); + } + break; + } + + delete _pending; + _pending = 0; + } + + return false; +} + + +class TagsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord +{ +public: + + ModelColumns() + { + add(_colParentObject); + add(_colObject); + add(_colLabel); + add(_colAddRemove); + add(_colAllowAddRemove); + } + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn _colParentObject; + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; + Gtk::TreeModelColumn _colAddRemove; + Gtk::TreeModelColumn _colAllowAddRemove; +}; + +void TagsPanel::_checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete) +{ + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj && obj->parent) { + todelete->push_back(obj); + } +} + +void TagsPanel::_updateObject( SPObject *obj ) { + _store->foreach( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_checkForUpdated), obj) ); +} + +bool TagsPanel::_checkForUpdated(const Gtk::TreePath &/*path*/, const Gtk::TreeIter& iter, SPObject* obj) +{ + Gtk::TreeModel::Row row = *iter; + if ( obj == row[_model->_colObject] ) + { + /* + * We get notified of layer update here (from layer->setLabel()) before layer->label() is set + * with the correct value (sp-object bug?). So use the inkscape:label attribute instead which + * has the correct value (bug #168351) + */ + //row[_model->_colLabel] = layer->label() ? layer->label() : layer->getId(); + gchar const *label; + SPTagUse * use = SP_IS_TAG_USE(obj) ? SP_TAG_USE(obj) : 0; + if (use && use->ref->isAttached()) { + label = use->ref->getObject()->getAttribute("inkscape:label"); + } else { + label = obj->getAttribute("inkscape:label"); + } + row[_model->_colLabel] = label ? label : obj->getId(); + row[_model->_colAddRemove] = SP_IS_TAG(obj); + } + + return false; +} + +void TagsPanel::_objectsSelected( Selection *sel ) { + + _selectedConnection.block(); + _tree.get_selection()->unselect_all(); + for (const GSList * iter = sel->list(); iter != NULL; iter = iter->next) + { + SPObject *obj = reinterpret_cast(iter->data); + _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); + } + _selectedConnection.unblock(); + _checkTreeSelection(); +} + +bool TagsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj) +{ + Gtk::TreeModel::Row row = *iter; + SPObject * it = row[_model->_colObject]; + if ( it && SP_IS_TAG_USE(it) && SP_TAG_USE(it)->ref->getObject() == obj ) + { + Glib::RefPtr select = _tree.get_selection(); + + select->select(iter); + } + return false; +} + +void TagsPanel::_objectsChanged(SPObject* root) +{ + while (!_objectWatchers.empty()) + { + TagsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + if (_desktop) { + SPDocument* document = _desktop->doc(); + SPDefs* root = document->getDefs(); + if ( root ) { + _selectedConnection.block(); + _store->clear(); + _addObject( document, root, 0 ); + _selectedConnection.unblock(); + _objectsSelected(_desktop->selection); + _checkTreeSelection(); + } + } +} + +void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ) +{ + if ( _desktop && obj ) { + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG(child)) + { + Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = child; + row[_model->_colParentObject] = NULL; + row[_model->_colLabel] = child->label() ? child->label() : child->getId(); + row[_model->_colAddRemove] = true; + row[_model->_colAllowAddRemove] = true; + + _tree.expand_to_path( _store->get_path(iter) ); + + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child); + child->getRepr()->addObserver(*w); + _objectWatchers.push_back(w); + _addObject( doc, child, &row ); + } + } + if (SP_IS_TAG(obj) && obj->children) + { + Gtk::TreeModel::iterator iteritems = parentRow ? _store->append(parentRow->children()) : _store->prepend(); + Gtk::TreeModel::Row rowitems = *iteritems; + rowitems[_model->_colObject] = NULL; + rowitems[_model->_colParentObject] = obj; + rowitems[_model->_colLabel] = _("Items"); + rowitems[_model->_colAddRemove] = false; + rowitems[_model->_colAllowAddRemove] = false; + + _tree.expand_to_path( _store->get_path(iteritems) ); + + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG_USE(child)) + { + SPItem *item = SP_TAG_USE(child)->ref->getObject(); + Gtk::TreeModel::iterator iter = _store->prepend(rowitems->children()); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = child; + row[_model->_colParentObject] = NULL; + row[_model->_colLabel] = item ? (item->label() ? item->label() : item->getId()) : SP_TAG_USE(child)->href; + row[_model->_colAddRemove] = false; + row[_model->_colAllowAddRemove] = true; + + if (SP_TAG(obj)->expanded()) { + _tree.expand_to_path( _store->get_path(iter) ); + } + + if (item) { + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child, item->getRepr()); + item->getRepr()->addObserver(*w); + _objectWatchers.push_back(w); + } + } + } + } + } +} + +void TagsPanel::_select_tag( SPTag * tag ) +{ + for (SPObject * child = tag->children; child != NULL; child = child->next) + { + if (SP_IS_TAG(child)) { + _select_tag(SP_TAG(child)); + } else if (SP_IS_TAG_USE(child)) { + SPObject * obj = SP_TAG_USE(child)->ref->getObject(); + if (obj) { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(obj->parent); + _desktop->selection->add(obj); + } + } + } +} + +void TagsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter ) +{ + if (iter) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_model->_colObject]; + if (obj) { + if (SP_IS_TAG(obj)) { + _select_tag(SP_TAG(obj)); + } else if (SP_IS_TAG_USE(obj)) { + SPObject * item = SP_TAG_USE(obj)->ref->getObject(); + if (item) { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); + _desktop->selection->add(item); + } + } + } + } +} + +void TagsPanel::_pushTreeSelectionToCurrent() +{ + _selectionChangedConnection.block(); + // TODO hunt down the possible API abuse in getting NULL + if ( _desktop && _desktop->currentRoot() ) { + _desktop->selection->clear(); + _tree.get_selection()->selected_foreach_iter( sigc::mem_fun(*this, &TagsPanel::_selected_row_callback)); + } + _selectionChangedConnection.unblock(); + + _checkTreeSelection(); +} + +void TagsPanel::_checkTreeSelection() +{ + bool sensitive = _tree.get_selection()->count_selected_rows() > 0; + bool sensitiveNonTop = true; + bool sensitiveNonBottom = true; +// if ( _tree.get_selection()->count_selected_rows() > 0 ) { +// sensitive = true; +// +// SPObject* inTree = _selectedLayer(); +// if ( inTree ) { +// +// sensitiveNonTop = (Inkscape::Nex(inTree->parent, inTree) != 0); +// sensitiveNonBottom = (Inkscape::previous_layer(inTree->parent, inTree) != 0); +// +// } +// } + + + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( sensitive ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonTop ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonBottom ); + } +} + +bool TagsPanel::_handleKeyEvent(GdkEventKey *event) +{ + + switch (get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_F2: { + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter && !_text_renderer->property_editable()) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj && SP_IS_TAG(obj)) { + Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); + // Edit the layer label + _text_renderer->property_editable() = true; + _tree.set_cursor(*path, *_name_column, true); + grab_focus(); + return true; + } + } + } + case GDK_KEY_Delete: { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + if (!todelete.empty()) { + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * obj = *iter; + if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); + } + return true; + } + break; + } + return false; +} + +bool TagsPanel::_handleButtonEvent(GdkEventButton* event) +{ + static unsigned doubleclick = 0; + + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { + // TODO - fix to a better is-popup function + Gtk::TreeModel::Path path; + int x = static_cast(event->x); + int y = static_cast(event->y); + if ( _tree.get_path_at_pos( x, y, path ) ) { + _checkTreeSelection(); + _popupMenu.popup(event->button, event->time); + if (_tree.get_selection()->is_selected(path)) { + return true; + } + } + } + + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { + // Alt left click on the visible/lock columns - eat this event to keep row selection + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (col == _tree.get_column(COL_ADD-1)) { + down_at_add = true; + return true; + } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_noSelection)); + _defer_target = path; + } else { + down_at_add = false; + } + } else { + down_at_add = false; + } + } + + if ( event->type == GDK_BUTTON_RELEASE) { + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction)); + } + + // TODO - ImageToggler doesn't seem to handle Shift/Alt clicks - so we deal with them here. + if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { + + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (_defer_target) { + if (_defer_target == path && !(event->x == 0 && event->y == 0)) + { + _tree.set_cursor(path, *col, false); + } + _defer_target = Gtk::TreeModel::Path(); + } else { + Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colObject]; + + if (obj) { + if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { + if (SP_IS_TAG(obj)) { + bool wasadded = false; + for (const GSList * iter = _desktop->selection->itemList(); iter != NULL; iter = iter->next) + { + SPObject *newobj = reinterpret_cast(iter->data); + bool addchild = true; + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { + addchild = false; + } + } + if (addchild) { + Inkscape::XML::Node *clone = _document->getReprDoc()->createElement("inkscape:tagref"); + clone->setAttribute("xlink:href", g_strdup_printf("#%s", newobj->getRepr()->attribute("id")), false); + obj->appendChild(clone); + wasadded = true; + } + } + if (wasadded) { + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Add selection to tag")); + } + } else { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + if (!todelete.empty()) { + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * tobj = *iter; + if (tobj && tobj->parent && tobj->getRepr() && tobj->parent->getRepr()) { + tobj->parent->getRepr()->removeChild(tobj->getRepr()); + } + } + } else if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); + } + } + } + } + } + } + + + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + doubleclick = 1; + } + + if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { + doubleclick = 0; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { + Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colObject]; + if (obj && (SP_IS_TAG(obj) || (SP_IS_TAG_USE(obj) && SP_TAG_USE(obj)->ref->getObject()))) { + // Double click on the Layer name, enable editing + _text_renderer->property_editable() = true; + _tree.set_cursor (path, *_name_column, true); + grab_focus(); + } + } + } + + return false; +} + +void TagsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + SPObject* obj = row[_model->_colObject]; + SPTag* item = ( obj && SP_IS_TAG(obj) ) ? SP_TAG(obj) : 0; + if (item) + { + _dnd_source.push_back(item); + } +} + +/* + * Drap and drop within the tree + * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer + */ +bool TagsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) +{ + int cell_x = 0, cell_y = 0; + Gtk::TreeModel::Path target_path; + Gtk::TreeView::Column *target_column; + + _dnd_into = true; + _dnd_target = _document->getDefs(); + _dnd_source.clear(); + _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &TagsPanel::_storeDragSource)); + + if (_dnd_source.empty()) { + return true; + } + + if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { + // Are we before, inside or after the drop layer + Gdk::Rectangle rect; + _tree.get_background_area (target_path, *target_column, rect); + int cell_height = rect.get_height(); + _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); + if (cell_y > (int)(cell_height * 2/3)) { + Gtk::TreeModel::Path next_path = target_path; + next_path.next(); + if (_store->iter_is_valid(_store->get_iter(next_path))) { + target_path = next_path; + } else { + // Dragging to the "end" + Gtk::TreeModel::Path up_path = target_path; + up_path.up(); + if (_store->iter_is_valid(_store->get_iter(up_path))) { + // Drop into parent + target_path = up_path; + _dnd_into = true; + } else { + // Drop into the top level + _dnd_target = _document->getDefs(); + _dnd_into = true; + } + } + } + Gtk::TreeModel::iterator iter = _store->get_iter(target_path); + if (_store->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_model->_colObject]; + SPObject *pobj = row[_model->_colParentObject]; + if (obj) { + if (SP_IS_TAG(obj)) { + _dnd_target = SP_TAG(obj); + } else if (SP_IS_TAG(obj->parent)) { + _dnd_target = SP_TAG(obj->parent); + _dnd_into = true; + } + } else if (pobj && SP_IS_TAG(pobj)) { + _dnd_target = SP_TAG(pobj); + _dnd_into = true; + } else { + return true; + } + } + } + + _takeAction(DRAGNDROP); + + return false; +} + +/* + * Move a layer in response to a drag & drop action + */ +void TagsPanel::_doTreeMove( ) +{ + if (_dnd_target) { + for (std::vector::iterator iter = _dnd_source.begin(); iter != _dnd_source.end(); ++iter) + { + SPTag *src = *iter; + if (src != _dnd_target) { + src->moveTo(_dnd_target, _dnd_into); + } + } + _desktop->selection->clear(); + while (!_dnd_source.empty()) + { + SPTag *src = _dnd_source.back(); + _select_tag(src); + _dnd_source.pop_back(); + } + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_TAGS, + _("Moved tags")); + } +} + + +void TagsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) +{ + Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + _renameObject(row, new_text); + _text_renderer->property_editable() = false; +} + +void TagsPanel::_handleEditingCancelled() +{ + _text_renderer->property_editable() = false; +} + +void TagsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) +{ + if ( row && _desktop) { + SPObject* obj = row[_model->_colObject]; + if ( obj ) { + if (SP_IS_TAG(obj)) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Rename object")); + } + } else if (SP_IS_TAG_USE(obj) && (obj = SP_TAG_USE(obj)->ref->getObject())) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Rename object")); + } + } + } + } +} + +bool TagsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) +{ + return false; +} + +bool TagsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) +{ + bool val = true; + if ( !currentlySelected && _toggleEvent ) + { + GdkEvent* event = gtk_get_current_event(); + if ( event ) { + // (keep these checks separate, so we know when to call gdk_event_free() + if ( event->type == GDK_BUTTON_PRESS ) { + GdkEventButton const* target = reinterpret_cast(_toggleEvent); + GdkEventButton const* evtb = reinterpret_cast(event); + + if ( (evtb->window == target->window) + && (evtb->send_event == target->send_event) + && (evtb->time == target->time) + && (evtb->state == target->state) + ) + { + // Ooooh! It's a magic one + val = false; + } + } + gdk_event_free(event); + } + } + return val; +} + +void TagsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) +{ + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colParentObject]; + if (obj && SP_IS_TAG(obj)) + { + SP_TAG(obj)->setExpanded(isexpanded); + obj->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Constructor + */ +TagsPanel::TagsPanel() : + UI::Widget::Panel("", "/dialogs/tags", SP_VERB_DIALOG_TAGS), + _rootWatcher(0), + deskTrack(), + _desktop(0), + _document(0), + _model(0), + _pending(0), + _toggleEvent(0), + _defer_target(), + desktopChangeConn() +{ + //Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + + ModelColumns *zoop = new ModelColumns(); + _model = zoop; + + _store = Gtk::TreeStore::create( *zoop ); + + _tree.set_model( _store ); + _tree.set_headers_visible(false); + _tree.set_reorderable(true); + _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); + + Inkscape::UI::Widget::AddToIcon * addRenderer = manage( new Inkscape::UI::Widget::AddToIcon()); + int addColNum = _tree.append_column("type", *addRenderer) - 1; + Gtk::TreeViewColumn *col = _tree.get_column(addColNum); + if ( col ) { + col->add_attribute( addRenderer->property_active(), _model->_colAddRemove ); + col->add_attribute( addRenderer->property_visible(), _model->_colAllowAddRemove ); + } + + _text_renderer = manage(new Gtk::CellRendererText()); + int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; + _name_column = _tree.get_column(nameColNum); + _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); + + _tree.set_expander_column( *_tree.get_column(nameColNum) ); + + _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); + _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &TagsPanel::_pushTreeSelectionToCurrent) ); + _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction) ); + + _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &TagsPanel::_handleDragDrop), false); + _collapsedConnection = _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), false)); + _expandedConnection = _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), true)); + + _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &TagsPanel::_handleEdited) ); + _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &TagsPanel::_handleEditingCancelled) ); + + _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); + _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); + _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleKeyEvent), false ); + + _scroller.add( _tree ); + _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scroller.set_shadow_type(Gtk::SHADOW_IN); + Gtk::Requisition sreq; +#if WITH_GTKMM_3_0 + Gtk::Requisition sreq_natural; + _scroller.get_preferred_size(sreq_natural, sreq); +#else + sreq = _scroller.size_request(); +#endif + int minHeight = 70; + if (sreq.height < minHeight) { + // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar + _scroller.set_size_request(sreq.width, minHeight); + } + + _layersPage.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); + + _layersPage.pack_end(_buttonsRow, Gtk::PACK_SHRINK); + + _getContents()->pack_start(_layersPage, Gtk::PACK_EXPAND_WIDGET); + + SPDesktop* targetDesktop = getDesktop(); + + Gtk::Button* btn = manage( new Gtk::Button() ); + _styleButton( *btn, targetDesktop, SP_VERB_TAG_NEW, GTK_STOCK_ADD, _("Add a new tag") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_NEW) ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + +// btn = manage( new Gtk::Button("Dup") ); +// btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &LayersPanel::_takeAction), (int)BUTTON_DUPLICATE) ); +// _buttonsRow.add( *btn ); + + btn = manage( new Gtk::Button() ); + _styleButton( *btn, targetDesktop, SP_VERB_LAYER_DELETE, GTK_STOCK_REMOVE, _("Remove Item/Tag") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_DELETE) ); + _watching.push_back( btn ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + + _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); + _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); + + // ------------------------------------------------------- + { + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_TAG_NEW, 0, "New", (int)BUTTON_NEW ) ); + + _popupMenu.show_all_children(); + } + // ------------------------------------------------------- + + + + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( false ); + } + + setDesktop( targetDesktop ); + + show_all_children(); + + // restorePanelPrefs(); + + // Connect this up last + desktopChangeConn = deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &TagsPanel::setDesktop) ); + deskTrack.connect(GTK_WIDGET(gobj())); +} + +TagsPanel::~TagsPanel() +{ + + setDesktop(NULL); + + if ( _model ) + { + delete _model; + _model = 0; + } + + if (_pending) { + delete _pending; + _pending = 0; + } + + if ( _toggleEvent ) + { + gdk_event_free( _toggleEvent ); + _toggleEvent = 0; + } + + desktopChangeConn.disconnect(); + deskTrack.disconnect(); +} + +void TagsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) +{ + while (!_objectWatchers.empty()) + { + TagsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + if (_rootWatcher) + { + _rootWatcher->_repr->removeObserver(*_rootWatcher); + delete _rootWatcher; + _rootWatcher = NULL; + } + + _document = document; + + if (document && document->getDefs() && document->getDefs()->getRepr()) + { + _rootWatcher = new TagsPanel::ObjectWatcher(this, document->getDefs()); + document->getDefs()->getRepr()->addObserver(*_rootWatcher); + _objectsChanged(document->getDefs()); + } +} + +void TagsPanel::setDesktop( SPDesktop* desktop ) +{ + Panel::setDesktop(desktop); + + if ( desktop != _desktop ) { + _documentChangedConnection.disconnect(); + _selectionChangedConnection.disconnect(); + if ( _desktop ) { + _desktop = 0; + } + + _desktop = Panel::getDesktop(); + if ( _desktop ) { + //setLabel( _desktop->doc()->name ); + _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &TagsPanel::setDocument)); + _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &TagsPanel::_objectsSelected)); + + setDocument(_desktop, _desktop->doc()); + } + } +/* + GSList const *layers = _desktop->doc()->getResourceList( "layer" ); + g_message( "layers list starts at %p", layers ); + for ( GSList const *iter=layers ; iter ; iter = iter->next ) { + SPObject *layer=static_cast(iter->data); + g_message(" {%s} [%s]", layer->id, layer->label() ); + } +*/ + deskTrack.setBase(desktop); +} + + + + + +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/tags.h b/src/ui/dialog/tags.h new file mode 100644 index 000000000..d35dfba01 --- /dev/null +++ b/src/ui/dialog/tags.h @@ -0,0 +1,181 @@ +/* + * A simple dialog for tags UI. + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef SEEN_TAGS_PANEL_H +#define SEEN_TAGS_PANEL_H + +#include +#include +#include +#include +#include +#include "ui/widget/spinbutton.h" +#include "ui/widget/panel.h" +#include "ui/widget/object-composite-settings.h" +#include "desktop-tracker.h" +#include "ui/widget/style-subject.h" +#include "selection.h" +#include "ui/widget/filter-effect-chooser.h" + +class SPObject; +class SPTag; +struct SPColorSelector; + +namespace Inkscape { + +namespace UI { +namespace Dialog { + + +/** + * A panel that displays layers. + */ +class TagsPanel : public UI::Widget::Panel +{ +public: + TagsPanel(); + virtual ~TagsPanel(); + + //virtual void setOrientation( Gtk::AnchorType how ); + + static TagsPanel& getInstance(); + + void setDesktop( SPDesktop* desktop ); + void setDocument( SPDesktop* desktop, SPDocument* document); + +protected: + //virtual void _handleAction( int setId, int itemId ); + friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); +private: + class ModelColumns; + class InternalUIBounce; + class ObjectWatcher; + + TagsPanel(TagsPanel const &); // no copy + TagsPanel &operator=(TagsPanel const &); // no assign + + void _styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ); + void _fireAction( unsigned int code ); + Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); + + bool _handleButtonEvent(GdkEventButton *event); + bool _handleKeyEvent(GdkEventKey *event); + + void _storeDragSource(const Gtk::TreeModel::iterator& iter); + bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); + void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); + void _handleEditingCancelled(); + + void _doTreeMove(); + void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); + + void _pushTreeSelectionToCurrent(); + void _selected_row_callback( const Gtk::TreeModel::iterator& iter ); + void _select_tag( SPTag * tag ); + + void _checkTreeSelection(); + + void _takeAction( int val ); + bool _executeAction(); + + void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); + + bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + + void _updateObject(SPObject *obj); + bool _checkForUpdated(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj); + + void _objectsSelected(Selection *sel); + bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPObject* layer); + + void _objectsChanged(SPObject *root); + void _addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ); + + void _checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete); + +// std::vector groupConnections; + TagsPanel::ObjectWatcher* _rootWatcher; + std::vector _objectWatchers; + + // Hooked to the layer manager: + sigc::connection _documentChangedConnection; + sigc::connection _selectionChangedConnection; + + sigc::connection _changedConnection; + sigc::connection _addedConnection; + sigc::connection _removedConnection; + + // Internal + sigc::connection _selectedConnection; + sigc::connection _expandedConnection; + sigc::connection _collapsedConnection; + + DesktopTracker deskTrack; + SPDesktop* _desktop; + SPDocument* _document; + ModelColumns* _model; + InternalUIBounce* _pending; + gboolean _dnd_into; + std::vector _dnd_source; + SPObject* _dnd_target; + + GdkEvent* _toggleEvent; + bool down_at_add; + + Gtk::TreeModel::Path _defer_target; + + Glib::RefPtr _store; + std::vector _watching; + std::vector _watchingNonTop; + std::vector _watchingNonBottom; + + Gtk::TreeView _tree; + Gtk::CellRendererText *_text_renderer; + Gtk::TreeView::Column *_name_column; +#if WITH_GTKMM_3_0 + Gtk::Box _buttonsRow; + Gtk::Box _buttonsPrimary; + Gtk::Box _buttonsSecondary; +#else + Gtk::HBox _buttonsRow; + Gtk::HBox _buttonsPrimary; + Gtk::HBox _buttonsSecondary; +#endif + Gtk::ScrolledWindow _scroller; + Gtk::Menu _popupMenu; + Inkscape::UI::Widget::SpinButton _spinBtn; + Gtk::VBox _layersPage; + + sigc::connection desktopChangeConn; + +}; + + + +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + + +#endif // SEEN_OBJECTS_PANEL_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp new file mode 100644 index 000000000..de7638bfe --- /dev/null +++ b/src/ui/widget/clipmaskicon.cpp @@ -0,0 +1,177 @@ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + + +#include "ui/widget/clipmaskicon.h" + +#include + +#include "widgets/icon.h" +#include "widgets/toolbox.h" +#include "ui/icon-names.h" +#include "layertypeicon.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +ClipMaskIcon::ClipMaskIcon() : + Glib::ObjectBase(typeid(ClipMaskIcon)), + Gtk::CellRendererPixbuf(), + _pixClipName(INKSCAPE_ICON("path-intersection")), + _pixInverseName(INKSCAPE_ICON("path-difference")), + _pixMaskName(INKSCAPE_ICON("mask-intersection")), + _property_active(*this, "active", 0), + _property_pixbuf_clip(*this, "pixbuf_on", Glib::RefPtr(0)), + _property_pixbuf_inverse(*this, "pixbuf_on", Glib::RefPtr(0)), + _property_pixbuf_mask(*this, "pixbuf_off", Glib::RefPtr(0)) +{ + + property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; + phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); + Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); + + if (!icon_theme->has_icon(_pixClipName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixClipName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + if (!icon_theme->has_icon(_pixInverseName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixInverseName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + if (!icon_theme->has_icon(_pixMaskName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixMaskName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + + if (icon_theme->has_icon(_pixClipName)) { + _property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0); + } + if (icon_theme->has_icon(_pixInverseName)) { + _property_pixbuf_inverse = icon_theme->load_icon(_pixInverseName, phys, (Gtk::IconLookupFlags)0); + } + if (icon_theme->has_icon(_pixMaskName)) { + _property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0); + } + + property_pixbuf() = Glib::RefPtr(0); +} + + +#if WITH_GTKMM_3_0 +void ClipMaskIcon::get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const +{ + Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); + + if (min_h) { + min_h += (min_h) >> 1; + } + + if (nat_h) { + nat_h += (nat_h) >> 1; + } +} + +void ClipMaskIcon::get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const +{ + Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); + + if (min_w) { + min_w += (min_w) >> 1; + } + + if (nat_w) { + nat_w += (nat_w) >> 1; + } +} +#else +void ClipMaskIcon::get_size_vfunc(Gtk::Widget& widget, + const Gdk::Rectangle* cell_area, + int* x_offset, + int* y_offset, + int* width, + int* height ) const +{ + Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); + + if ( width ) { + *width = phys;//+= (*width) >> 1; + } + if ( height ) { + *height =phys;//+= (*height) >> 1; + } +} +#endif + +#if WITH_GTKMM_3_0 +void ClipMaskIcon::render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ) +#else +void ClipMaskIcon::render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ) +#endif +{ + switch (_property_active.get_value()) + { + case 1: + property_pixbuf() = _property_pixbuf_clip; + break; + case 2: + property_pixbuf() = _property_pixbuf_mask; + break; + case 3: + property_pixbuf() = _property_pixbuf_inverse; + break; + default: + property_pixbuf() = Glib::RefPtr(0); + break; + } +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); +#else + Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); +#endif +} + +bool +ClipMaskIcon::activate_vfunc(GdkEvent* event, + Gtk::Widget& /*widget*/, + const Glib::ustring& path, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + return false; +} + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + + diff --git a/src/ui/widget/clipmaskicon.h b/src/ui/widget/clipmaskicon.h new file mode 100644 index 000000000..f1c1e7628 --- /dev/null +++ b/src/ui/widget/clipmaskicon.h @@ -0,0 +1,102 @@ +#ifndef __UI_DIALOG_CLIPMASKICON_H__ +#define __UI_DIALOG_CLIPMASKICON_H__ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ClipMaskIcon : public Gtk::CellRendererPixbuf { +public: + ClipMaskIcon(); + virtual ~ClipMaskIcon() {}; + + Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); + +protected: + +#if WITH_GTKMM_3_0 + virtual void render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ); + + virtual void get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const; + + virtual void get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const; +#else + virtual void render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ); + + virtual void get_size_vfunc( Gtk::Widget &widget, + Gdk::Rectangle const *cell_area, + int *x_offset, int *y_offset, int *width, int *height ) const; +#endif + + virtual bool activate_vfunc(GdkEvent *event, + Gtk::Widget &widget, + const Glib::ustring &path, + const Gdk::Rectangle &background_area, + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags); + + +private: + int phys; + + Glib::ustring _pixClipName; + Glib::ustring _pixInverseName; + Glib::ustring _pixMaskName; + + Glib::Property _property_active; + Glib::Property< Glib::RefPtr > _property_pixbuf_clip; + Glib::Property< Glib::RefPtr > _property_pixbuf_inverse; + Glib::Property< Glib::RefPtr > _property_pixbuf_mask; + +}; + + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + + +#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp new file mode 100644 index 000000000..b799b5e29 --- /dev/null +++ b/src/ui/widget/highlight-picker.cpp @@ -0,0 +1,176 @@ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include "display/cairo-utils.h" + +#include + +#include "highlight-picker.h" +#include "widgets/icon.h" +#include "widgets/toolbox.h" +#include "ui/icon-names.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +HighlightPicker::HighlightPicker() : + Glib::ObjectBase(typeid(HighlightPicker)), + Gtk::CellRendererPixbuf(), + _property_active(*this, "active", 0) +{ + + property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; +} + +HighlightPicker::~HighlightPicker() +{ +} + + +#if WITH_GTKMM_3_0 +void HighlightPicker::get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const +{ + Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); + + if (min_h) { + min_h += (min_h) >> 1; + } + + if (nat_h) { + nat_h += (nat_h) >> 1; + } +} + +void HighlightPicker::get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const +{ + Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); + + if (min_w) { + min_w += (min_w) >> 1; + } + + if (nat_w) { + nat_w += (nat_w) >> 1; + } +} +#else +void HighlightPicker::get_size_vfunc(Gtk::Widget& widget, + const Gdk::Rectangle* cell_area, + int* x_offset, + int* y_offset, + int* width, + int* height ) const +{ + Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); + + if ( width ) { + *width = 10;//+= (*width) >> 1; + } + if ( height ) { + *height = 20; //cell_area ? cell_area->get_height() / 2 : 50; //+= (*height) >> 1; + } +} +#endif + +#if WITH_GTKMM_3_0 +void HighlightPicker::render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ) +#else +void HighlightPicker::render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ) +#endif +{ + GdkRectangle carea; + + cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 10, 20); + cairo_t *ct = cairo_create(s); + + /* Transparent area */ + carea.x = 0; + carea.y = 0; + carea.width = 10; + carea.height = 20; + + cairo_pattern_t *checkers = ink_cairo_pattern_create_checkerboard(); + + cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height / 2); + cairo_set_source(ct, checkers); + cairo_fill_preserve(ct); + ink_cairo_set_source_rgba32(ct, _property_active.get_value()); + cairo_fill(ct); + + cairo_pattern_destroy(checkers); + + cairo_rectangle(ct, carea.x, carea.y + carea.height / 2, carea.width, carea.height / 2); + ink_cairo_set_source_rgba32(ct, _property_active.get_value() | 0x000000ff); + cairo_fill(ct); + + cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height); + ink_cairo_set_source_rgba32(ct, 0x333333ff); + cairo_set_line_width(ct, 2); + cairo_stroke(ct); + + cairo_destroy(ct); + cairo_surface_flush(s); + + GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s), + GDK_COLORSPACE_RGB, TRUE, 8, + 10, 20, cairo_image_surface_get_stride(s), + ink_cairo_pixbuf_cleanup, s); + convert_pixbuf_argb32_to_normal(pixbuf); + + property_pixbuf() = Glib::wrap(pixbuf); +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); +#else + Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); +#endif +} + +bool +HighlightPicker::activate_vfunc(GdkEvent* event, + Gtk::Widget& /*widget*/, + const Glib::ustring& path, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + return false; +} + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + + diff --git a/src/ui/widget/highlight-picker.h b/src/ui/widget/highlight-picker.h new file mode 100644 index 000000000..2d7dbc14e --- /dev/null +++ b/src/ui/widget/highlight-picker.h @@ -0,0 +1,90 @@ +#ifndef __UI_DIALOG_HIGHLIGHT_PICKER_H__ +#define __UI_DIALOG_HIGHLIGHT_PICKER_H__ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +namespace Inkscape { +namespace UI { +namespace Widget { + +class HighlightPicker : public Gtk::CellRendererPixbuf { +public: + HighlightPicker(); + virtual ~HighlightPicker(); + + Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } + +protected: + +#if WITH_GTKMM_3_0 + virtual void render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ); + + virtual void get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const; + + virtual void get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const; +#else + virtual void render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ); + + virtual void get_size_vfunc( Gtk::Widget &widget, + Gdk::Rectangle const *cell_area, + int *x_offset, int *y_offset, int *width, int *height ) const; +#endif + + virtual bool activate_vfunc(GdkEvent *event, + Gtk::Widget &widget, + const Glib::ustring &path, + const Gdk::Rectangle &background_area, + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags); + +private: + + Glib::Property _property_active; +}; + + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + + +#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/insertordericon.cpp b/src/ui/widget/insertordericon.cpp new file mode 100644 index 000000000..9002a99c2 --- /dev/null +++ b/src/ui/widget/insertordericon.cpp @@ -0,0 +1,166 @@ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + + +#include "ui/widget/insertordericon.h" + +#include + +#include "widgets/icon.h" +#include "widgets/toolbox.h" +#include "ui/icon-names.h" +#include "layertypeicon.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +InsertOrderIcon::InsertOrderIcon() : + Glib::ObjectBase(typeid(InsertOrderIcon)), + Gtk::CellRendererPixbuf(), + _pixTopName(INKSCAPE_ICON("insert-top")), + _pixBottomName(INKSCAPE_ICON("insert-bottom")), + _property_active(*this, "active", 0), + _property_pixbuf_top(*this, "pixbuf_on", Glib::RefPtr(0)), + _property_pixbuf_bottom(*this, "pixbuf_on", Glib::RefPtr(0)) +{ + + property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; + phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); + Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); + + if (!icon_theme->has_icon(_pixTopName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixTopName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + if (!icon_theme->has_icon(_pixBottomName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixBottomName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + + if (icon_theme->has_icon(_pixTopName)) { + _property_pixbuf_top = icon_theme->load_icon(_pixTopName, phys, (Gtk::IconLookupFlags)0); + } + if (icon_theme->has_icon(_pixBottomName)) { + _property_pixbuf_bottom = icon_theme->load_icon(_pixBottomName, phys, (Gtk::IconLookupFlags)0); + } + + property_pixbuf() = Glib::RefPtr(0); +} + + +#if WITH_GTKMM_3_0 +void InsertOrderIcon::get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const +{ + Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); + + if (min_h) { + min_h += (min_h) >> 1; + } + + if (nat_h) { + nat_h += (nat_h) >> 1; + } +} + +void InsertOrderIcon::get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const +{ + Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); + + if (min_w) { + min_w += (min_w) >> 1; + } + + if (nat_w) { + nat_w += (nat_w) >> 1; + } +} +#else +void InsertOrderIcon::get_size_vfunc(Gtk::Widget& widget, + const Gdk::Rectangle* cell_area, + int* x_offset, + int* y_offset, + int* width, + int* height ) const +{ + Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); + + if ( width ) { + *width = phys;//+= (*width) >> 1; + } + if ( height ) { + *height =phys;//+= (*height) >> 1; + } +} +#endif + +#if WITH_GTKMM_3_0 +void InsertOrderIcon::render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ) +#else +void InsertOrderIcon::render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ) +#endif +{ + switch (_property_active.get_value()) + { + case 1: + property_pixbuf() = _property_pixbuf_top; + break; + case 2: + property_pixbuf() = _property_pixbuf_bottom; + break; + default: + property_pixbuf() = Glib::RefPtr(0); + break; + } +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); +#else + Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); +#endif +} + +bool +InsertOrderIcon::activate_vfunc(GdkEvent* event, + Gtk::Widget& /*widget*/, + const Glib::ustring& path, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + return false; +} + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + + diff --git a/src/ui/widget/insertordericon.h b/src/ui/widget/insertordericon.h new file mode 100644 index 000000000..4b4b51de2 --- /dev/null +++ b/src/ui/widget/insertordericon.h @@ -0,0 +1,100 @@ +#ifndef __UI_DIALOG_INSERTORDERICON_H__ +#define __UI_DIALOG_INSERTORDERICON_H__ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +namespace Inkscape { +namespace UI { +namespace Widget { + +class InsertOrderIcon : public Gtk::CellRendererPixbuf { +public: + InsertOrderIcon(); + virtual ~InsertOrderIcon() {}; + + Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); + +protected: + +#if WITH_GTKMM_3_0 + virtual void render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ); + + virtual void get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const; + + virtual void get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const; +#else + virtual void render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ); + + virtual void get_size_vfunc( Gtk::Widget &widget, + Gdk::Rectangle const *cell_area, + int *x_offset, int *y_offset, int *width, int *height ) const; +#endif + + virtual bool activate_vfunc(GdkEvent *event, + Gtk::Widget &widget, + const Glib::ustring &path, + const Gdk::Rectangle &background_area, + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags); + + +private: + int phys; + + Glib::ustring _pixTopName; + Glib::ustring _pixBottomName; + + Glib::Property _property_active; + Glib::Property< Glib::RefPtr > _property_pixbuf_top; + Glib::Property< Glib::RefPtr > _property_pixbuf_bottom; + +}; + + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + + +#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/layertypeicon.cpp b/src/ui/widget/layertypeicon.cpp new file mode 100644 index 000000000..bfe855b28 --- /dev/null +++ b/src/ui/widget/layertypeicon.cpp @@ -0,0 +1,167 @@ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + + +#include "ui/widget/layertypeicon.h" + +#include + +#include "widgets/icon.h" +#include "widgets/toolbox.h" +#include "ui/icon-names.h" +#include "layertypeicon.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +LayerTypeIcon::LayerTypeIcon() : + Glib::ObjectBase(typeid(LayerTypeIcon)), + Gtk::CellRendererPixbuf(), + _pixLayerName(INKSCAPE_ICON("dialog-layers")), + _pixGroupName(INKSCAPE_ICON("layer-duplicate")), + _pixPathName(INKSCAPE_ICON("layer-rename")), + _property_active(*this, "active", false), + _property_activatable(*this, "activatable", true), + _property_pixbuf_layer(*this, "pixbuf_on", Glib::RefPtr(0)), + _property_pixbuf_group(*this, "pixbuf_off", Glib::RefPtr(0)), + _property_pixbuf_path(*this, "pixbuf_off", Glib::RefPtr(0)) +{ + + property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; + int phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); + Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); + + if (!icon_theme->has_icon(_pixLayerName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixLayerName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + if (!icon_theme->has_icon(_pixGroupName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixGroupName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + if (!icon_theme->has_icon(_pixPathName)) { + Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixPathName.data()), Inkscape::ICON_SIZE_DECORATION ); + } + + if (icon_theme->has_icon(_pixLayerName)) { + _property_pixbuf_layer = icon_theme->load_icon(_pixLayerName, phys, (Gtk::IconLookupFlags)0); + } + if (icon_theme->has_icon(_pixGroupName)) { + _property_pixbuf_group = icon_theme->load_icon(_pixGroupName, phys, (Gtk::IconLookupFlags)0); + } + if (icon_theme->has_icon(_pixPathName)) { + _property_pixbuf_path = icon_theme->load_icon(_pixPathName, phys, (Gtk::IconLookupFlags)0); + } + + property_pixbuf() = _property_pixbuf_path.get_value(); +} + + +#if WITH_GTKMM_3_0 +void LayerTypeIcon::get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const +{ + Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); + + if (min_h) { + min_h += (min_h) >> 1; + } + + if (nat_h) { + nat_h += (nat_h) >> 1; + } +} + +void LayerTypeIcon::get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const +{ + Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); + + if (min_w) { + min_w += (min_w) >> 1; + } + + if (nat_w) { + nat_w += (nat_w) >> 1; + } +} +#else +void LayerTypeIcon::get_size_vfunc(Gtk::Widget& widget, + const Gdk::Rectangle* cell_area, + int* x_offset, + int* y_offset, + int* width, + int* height ) const +{ + Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); + + if ( width ) { + *width += (*width) >> 1; + } + if ( height ) { + *height += (*height) >> 1; + } +} +#endif + +#if WITH_GTKMM_3_0 +void LayerTypeIcon::render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ) +#else +void LayerTypeIcon::render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ) +#endif +{ + property_pixbuf() = _property_active.get_value() == 1 ? _property_pixbuf_group : (_property_active.get_value() == 2 ? _property_pixbuf_layer : _property_pixbuf_path); +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); +#else + Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); +#endif +} + +bool +LayerTypeIcon::activate_vfunc(GdkEvent* event, + Gtk::Widget& /*widget*/, + const Glib::ustring& path, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + _signal_pre_toggle.emit(event); + _signal_toggled.emit(path); + + return false; +} + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + + diff --git a/src/ui/widget/layertypeicon.h b/src/ui/widget/layertypeicon.h new file mode 100644 index 000000000..4ad3f16fb --- /dev/null +++ b/src/ui/widget/layertypeicon.h @@ -0,0 +1,108 @@ +#ifndef __UI_DIALOG_LAYERTYPEICON_H__ +#define __UI_DIALOG_LAYERTYPEICON_H__ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +namespace Inkscape { +namespace UI { +namespace Widget { + +class LayerTypeIcon : public Gtk::CellRendererPixbuf { +public: + LayerTypeIcon(); + virtual ~LayerTypeIcon() {}; + + sigc::signal signal_toggled() { return _signal_toggled;} + sigc::signal signal_pre_toggle() { return _signal_pre_toggle; } + + Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } + Glib::PropertyProxy property_activatable() { return _property_activatable.get_proxy(); } + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); + +protected: + +#if WITH_GTKMM_3_0 + virtual void render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ); + + virtual void get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const; + + virtual void get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const; +#else + virtual void render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ); + + virtual void get_size_vfunc( Gtk::Widget &widget, + Gdk::Rectangle const *cell_area, + int *x_offset, int *y_offset, int *width, int *height ) const; +#endif + + virtual bool activate_vfunc(GdkEvent *event, + Gtk::Widget &widget, + const Glib::ustring &path, + const Gdk::Rectangle &background_area, + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags); + + +private: + Glib::ustring _pixLayerName; + Glib::ustring _pixGroupName; + Glib::ustring _pixPathName; + + Glib::Property _property_active; + Glib::Property _property_activatable; + Glib::Property< Glib::RefPtr > _property_pixbuf_layer; + Glib::Property< Glib::RefPtr > _property_pixbuf_group; + Glib::Property< Glib::RefPtr > _property_pixbuf_path; + + sigc::signal _signal_toggled; + sigc::signal _signal_pre_toggle; + +}; + + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + + +#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From 9bfba5c24a89f0d2ae75fc78a0aa21743a29e978 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 11:56:51 -0500 Subject: Experimental merge of Ponyscape features into trunk (will not compile) (bzr r13090.1.2) --- src/sp-item-group.cpp | 12 ++++++++++++ src/sp-item-group.h | 8 ++++++++ src/ui/dialog/objects.cpp | 12 +++++++++++- src/verbs.h | 2 ++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 2cfe97db8..fbd9a6538 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -616,6 +616,18 @@ SPGroup::LayerMode SPGroup::layerDisplayMode(unsigned int dkey) const { } } +void SPGroup::setExpanded(bool isexpanded) { + if ( _expanded != isexpanded ){ + _expanded = isexpanded; + } +} + +void SPGroup::setInsertBottom(bool insertbottom) { + if ( _insertBottom != insertbottom) { + _insertBottom = insertbottom; + } +} + void SPGroup::setLayerDisplayMode(unsigned int dkey, SPGroup::LayerMode mode) { if ( layerDisplayMode(dkey) != mode ) { _display_modes[dkey] = mode; diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 2004a72b8..68bbd083a 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -35,12 +35,20 @@ public: enum LayerMode { GROUP, LAYER, MASK_HELPER }; + bool _expanded; + bool _insertBottom; LayerMode _layer_mode; std::map _display_modes; LayerMode layerMode() const { return _layer_mode; } void setLayerMode(LayerMode mode); + bool expanded() const { return _expanded; } + void setExpanded(bool isexpanded); + + bool insertBottom() const { return _insertBottom; } + void setInsertBottom(bool insertbottom); + LayerMode effectiveLayerMode(unsigned int display_key) const { if ( _layer_mode == LAYER ) { return LAYER; diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 31e73db29..5023a8813 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -57,6 +57,8 @@ //#define DUMP_LAYERS 1 +guint get_group0_keyval(GdkEventKey *event); + namespace Inkscape { namespace UI { namespace Dialog { @@ -414,7 +416,7 @@ bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj) row[_model->_colLocked] = item ? !item->isSensitive() : false; row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0; - row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? (item->clip_ref->getObject()->inverse ? 3 : 1) : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; + row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; return true; @@ -2035,6 +2037,14 @@ void ObjectsPanel::setDesktop( SPDesktop* desktop ) } //namespace UI } //namespace Inkscape +guint get_group0_keyval(GdkEventKey *event) { + guint keyval = 0; + gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( + gdk_display_get_default()), event->hardware_keycode, + (GdkModifierType) event->state, 0 /*event->key.group*/, &keyval, + NULL, NULL, NULL); + return keyval; +} /* Local Variables: diff --git a/src/verbs.h b/src/verbs.h index 0f764eb29..b8a0b1fd5 100644 --- a/src/verbs.h +++ b/src/verbs.h @@ -289,6 +289,8 @@ enum { SP_VERB_DIALOG_INPUT, SP_VERB_DIALOG_EXTENSIONEDITOR, SP_VERB_DIALOG_LAYERS, + SP_VERB_DIALOG_OBJECTS, + SP_VERB_DIALOG_TAGS, SP_VERB_DIALOG_LIVE_PATH_EFFECT, SP_VERB_DIALOG_FILTER_EFFECTS, SP_VERB_DIALOG_SVG_FONTS, -- cgit v1.2.3 From 05f60fa645caeda752fe6bffb33993f6485cadb6 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 12:48:51 -0500 Subject: Experimental merge of Ponyscape to Inkscape trunk (does not compile) (bzr r13090.1.3) --- src/ui/widget/filter-effect-chooser.cpp | 2 ++ src/ui/widget/filter-effect-chooser.h | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ui/widget/filter-effect-chooser.cpp b/src/ui/widget/filter-effect-chooser.cpp index 65706a9dc..3932bdfd4 100644 --- a/src/ui/widget/filter-effect-chooser.cpp +++ b/src/ui/widget/filter-effect-chooser.cpp @@ -23,6 +23,8 @@ namespace Widget { SimpleFilterModifier::SimpleFilterModifier(int flags) : _lb_blend(_("Blend mode:")), + _lb_blur(_("_Blur:")), + _lb_blur_unit(_("%")), _blend(BlendModeConverter, SP_ATTR_INVALID, false), _blur(_("Blur (%)"), 0, 0, 100, 1, 0.01, 1) { diff --git a/src/ui/widget/filter-effect-chooser.h b/src/ui/widget/filter-effect-chooser.h index 6f0c2f26e..a467adcb1 100644 --- a/src/ui/widget/filter-effect-chooser.h +++ b/src/ui/widget/filter-effect-chooser.h @@ -54,11 +54,13 @@ public: double get_blur_value() const; void set_blur_value(const double); void set_blur_sensitive(const bool); + Gtk::Label *get_blur_label() { return &_lb_blur; }; private: int _flags; Gtk::HBox _hb_blend; - Gtk::Label _lb_blend; + Gtk::HBox _hb_blur; + Gtk::Label _lb_blend, _lb_blur, _lb_blur_unit; ComboBoxEnum _blend; SpinScale _blur; -- cgit v1.2.3 From ac167afb76ab4c730ac9dc945dc5dcd8efb8f5cf Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 12:59:13 -0500 Subject: Experimental Ponyscape to Inkscape merge (does not compile) (bzr r13090.1.4) --- src/display/cairo-utils.cpp | 4 +--- src/display/cairo-utils.h | 2 ++ src/ui/widget/Makefile_insert | 9 +++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/display/cairo-utils.cpp b/src/display/cairo-utils.cpp index 5b358ade7..c0a17bcdd 100644 --- a/src/display/cairo-utils.cpp +++ b/src/display/cairo-utils.cpp @@ -30,8 +30,6 @@ #include "helper/geom-curves.h" #include "display/cairo-templates.h" -static void ink_cairo_pixbuf_cleanup(guchar *, void *); - /** * Key for cairo_surface_t to keep track of current color interpolation value * Only the address of the structure is used, it is never initialized. See: @@ -1119,7 +1117,7 @@ GdkPixbuf *ink_pixbuf_create_from_cairo_surface(cairo_surface_t *s) * to gdk_pixbuf_new_from_data when creating a GdkPixbuf backed by * a Cairo surface. */ -static void ink_cairo_pixbuf_cleanup(guchar * /*pixels*/, void *data) +void ink_cairo_pixbuf_cleanup(guchar * /*pixels*/, void *data) { cairo_surface_t *surface = static_cast(data); cairo_surface_destroy(surface); diff --git a/src/display/cairo-utils.h b/src/display/cairo-utils.h index 505e2ca77..fa0ee8853 100644 --- a/src/display/cairo-utils.h +++ b/src/display/cairo-utils.h @@ -21,6 +21,8 @@ #include "style.h" struct SPColor; +void ink_cairo_pixbuf_cleanup(guchar *, void *); +void convert_pixbuf_argb32_to_normal(GdkPixbuf *pb); namespace Inkscape { diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index 710b95c2b..e388b27f5 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -81,5 +81,10 @@ ink_common_sources += \ ui/widget/unit-menu.cpp \ ui/widget/unit-menu.h \ ui/widget/unit-tracker.h \ - ui/widget/unit-tracker.cpp - + ui/widget/unit-tracker.cpp \ + ui/widget/clipmaskicon.cpp \ + ui/widget/clipmaskicon.h \ + ui/widget/highlight-picker.cpp \ + ui/widget/highlight-picker.h \ + ui/widget/layertypeicon.cpp \ + ui/widget/layertypeicon.h -- cgit v1.2.3 From 1f7732ba927a31166d834a206bdfc7d20128d483 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 14:15:38 -0500 Subject: Attempt at merging certaing features of Ponyscape to trunk (will not link) (bzr r13090.1.5) --- src/sp-item.cpp | 1 + src/sp-item.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/sp-item.cpp b/src/sp-item.cpp index aec749929..279606481 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -416,6 +416,7 @@ void SPItem::build(SPDocument *document, Inkscape::XML::Node *repr) { object->readAttr( "inkscape:transform-center-y" ); object->readAttr( "inkscape:connector-avoid" ); object->readAttr( "inkscape:connection-points" ); + object->readAttr( "inkscape:highlight-color" ); SPObject::build(document, repr); } diff --git a/src/sp-item.h b/src/sp-item.h index dc0c54a80..0c0edae2a 100644 --- a/src/sp-item.h +++ b/src/sp-item.h @@ -146,6 +146,10 @@ public: void setHidden(bool hidden); /* Objects dialogue */ + bool isSensitive() const { + return sensitive; + }; + bool isHighlightSet() const; guint32 highlight_color() const; -- cgit v1.2.3 From 8830d1ad5ab0693313d760cc99e2df0f35c9f6d9 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 16:29:52 -0500 Subject: Updated to include (non-functional) Objects dialogue (bzr r13090.1.6) --- src/menus-skeleton.h | 1 + src/ui/dialog/objects.cpp | 41 ++++++++++++++++++++++++++++++++++++++ src/ui/widget/Makefile_insert | 4 +++- src/ui/widget/highlight-picker.cpp | 32 ++++++++++++++++++++++++++++- 4 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h index 3fcb77207..855b7774b 100644 --- a/src/menus-skeleton.h +++ b/src/menus-skeleton.h @@ -179,6 +179,7 @@ static char const menus_skeleton[] = " \n" " \n" " \n" +" \n" " \n" " \n" " \n" diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 5023a8813..ebfa16f02 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -37,6 +37,7 @@ #include "ui/widget/insertordericon.h" #include "ui/widget/clipmaskicon.h" #include "ui/widget/highlight-picker.h" +#include "ui/tools/node-tool.h" #include "verbs.h" #include "widgets/icon.h" #include "xml/node.h" @@ -54,6 +55,7 @@ #include "sp-clippath.h" #include "sp-mask.h" #include "layer-manager.h" +#include "tools-switch.h" //#define DUMP_LAYERS 1 @@ -2037,6 +2039,9 @@ void ObjectsPanel::setDesktop( SPDesktop* desktop ) } //namespace UI } //namespace Inkscape +//should be okay to put these here because they are never referenced anywhere else +using namespace Inkscape::UI::Tools; + guint get_group0_keyval(GdkEventKey *event) { guint keyval = 0; gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( @@ -2046,6 +2051,42 @@ guint get_group0_keyval(GdkEventKey *event) { return keyval; } +void SPItem::setHighlightColor(guint32 const color) +{ + g_free(_highlightColor); + if (color & 0x000000ff) + { + _highlightColor = g_strdup_printf("%u", color); + } + else + { + _highlightColor = NULL; + } + + NodeTool *tool = 0; + if (SP_ACTIVE_DESKTOP ) { + ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; + if (INK_IS_NODE_TOOL(ec)) { + tool = static_cast(ec); + tools_switch(tool->desktop, TOOLS_NODES); + } + } +} + +void SPItem::unsetHighlightColor() +{ + g_free(_highlightColor); + _highlightColor = NULL; + NodeTool *tool = 0; + if (SP_ACTIVE_DESKTOP ) { + ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; + if (INK_IS_NODE_TOOL(ec)) { + tool = static_cast(ec); + tools_switch(tool->desktop, TOOLS_NODES); + } + } +} + /* Local Variables: mode:c++ diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index e388b27f5..2c543c5cc 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -87,4 +87,6 @@ ink_common_sources += \ ui/widget/highlight-picker.cpp \ ui/widget/highlight-picker.h \ ui/widget/layertypeicon.cpp \ - ui/widget/layertypeicon.h + ui/widget/layertypeicon.h \ + ui/widget/insertordericon.cpp \ + ui/widget/insertordericon.h diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp index b799b5e29..bf93fa960 100644 --- a/src/ui/widget/highlight-picker.cpp +++ b/src/ui/widget/highlight-picker.cpp @@ -157,11 +157,41 @@ HighlightPicker::activate_vfunc(GdkEvent* event, return false; } - } // namespace Widget } // namespace UI } // namespace Inkscape +//should be okay to put this here +/** + * Converts GdkPixbuf's data to premultiplied ARGB. + * This function will convert a GdkPixbuf in place into Cairo's native pixel format. + * Note that this is a hack intended to save memory. When the pixbuf is in Cairo's format, + * using it with GTK will result in corrupted drawings. + */ +void +convert_pixbuf_normal_to_argb32(GdkPixbuf *pb) +{ + convert_pixels_pixbuf_to_argb32( + gdk_pixbuf_get_pixels(pb), + gdk_pixbuf_get_width(pb), + gdk_pixbuf_get_height(pb), + gdk_pixbuf_get_rowstride(pb)); +} + +/** + * Converts GdkPixbuf's data back to its native format. + * Once this is done, the pixbuf can be used with GTK again. + */ +void +convert_pixbuf_argb32_to_normal(GdkPixbuf *pb) +{ + convert_pixels_argb32_to_pixbuf( + gdk_pixbuf_get_pixels(pb), + gdk_pixbuf_get_width(pb), + gdk_pixbuf_get_height(pb), + gdk_pixbuf_get_rowstride(pb)); +} + /* Local Variables: mode:c++ -- cgit v1.2.3 From 169c4551d14f4403f01724b93740c23e841f5fb0 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 17:00:28 -0500 Subject: Fix verbs.cpp (bzr r13090.1.7) --- src/verbs.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/verbs.cpp b/src/verbs.cpp index 653d5f892..4ac5fdc41 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -2040,6 +2040,9 @@ void DialogVerb::perform(SPAction *action, void *data) case SP_VERB_DIALOG_LAYERS: dt->_dlg_mgr->showDialog("LayersPanel"); break; + case SP_VERB_DIALOG_OBJECTS: + dt->_dlg_mgr->showDialog("ObjectsPanel"); + break; case SP_VERB_DIALOG_LIVE_PATH_EFFECT: dt->_dlg_mgr->showDialog("LivePathEffect"); break; -- cgit v1.2.3 From b8fb6e46b8e96c90a2182061d3a6c4fab1e7f784 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 17:23:47 -0500 Subject: Attempt 2 at getting objects dialogue (bzr r13090.1.8) --- src/verbs.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/verbs.cpp b/src/verbs.cpp index 4ac5fdc41..b5c5abe13 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -2861,6 +2861,8 @@ Verb *Verb::_base_verbs[] = { N_("Query information about extensions"), NULL), new DialogVerb(SP_VERB_DIALOG_LAYERS, "DialogLayers", N_("Layer_s..."), N_("View Layers"), INKSCAPE_ICON("dialog-layers")), + new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), + N_("View Objects"), INKSCAPE_ICON("dialog-layers")), new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), N_("Manage, edit, and apply path effects"), NULL), new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."), -- cgit v1.2.3 From fc643d9de8b5b3faf6d43559a43308fbce56e592 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 17:39:47 -0500 Subject: Fix objects dialogue (bzr r13090.1.9) --- src/ui/dialog/dialog-manager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp index 6d32e3aa8..bbb55ceee 100644 --- a/src/ui/dialog/dialog-manager.cpp +++ b/src/ui/dialog/dialog-manager.cpp @@ -54,6 +54,7 @@ #include "ui/dialog/xml-tree.h" #include "ui/dialog/clonetiler.h" #include "ui/dialog/svg-fonts-dialog.h" +#include "ui/dialog/objects.h" namespace Inkscape { namespace UI { @@ -108,6 +109,7 @@ DialogManager::DialogManager() { registerFactory("IconPreviewPanel", &create); registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); + registerFactory("ObjectsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); @@ -142,6 +144,7 @@ DialogManager::DialogManager() { registerFactory("IconPreviewPanel", &create); registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); + registerFactory("ObjectsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); -- cgit v1.2.3 From 93e2eef0d931bc2250b0328ddc24dac76c7c3e03 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 18:18:32 -0500 Subject: Modified Objects dialogue to stop crashing on change of highlight color (bzr r13090.1.10) --- src/sp-item.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 279606481..79d8cc37d 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -99,6 +99,8 @@ SPItem::SPItem() : SPObject() { sensitive = TRUE; bbox_valid = FALSE; + _highlightColor = NULL; + transform_center_x = 0; transform_center_y = 0; -- cgit v1.2.3 From 4eed716131afa00f3590b7d60600ef0c476c78e3 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 2 Mar 2014 20:24:50 -0500 Subject: Fixed path color when changed by Objects Dialog (bzr r13090.1.11) --- src/attributes.cpp | 1 + src/attributes.h | 1 + src/sp-item.cpp | 17 +++++++++++++++++ src/ui/tool/multi-path-manipulator.cpp | 6 +++--- src/ui/tool/multi-path-manipulator.h | 2 +- src/ui/tools/node-tool.cpp | 3 ++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/attributes.cpp b/src/attributes.cpp index ee2a80fd3..4e39b648e 100644 --- a/src/attributes.cpp +++ b/src/attributes.cpp @@ -41,6 +41,7 @@ static SPStyleProp const props[] = { {SP_ATTR_TRANSFORM_CENTER_X, "inkscape:transform-center-x"}, {SP_ATTR_TRANSFORM_CENTER_Y, "inkscape:transform-center-y"}, {SP_ATTR_INKSCAPE_PATH_EFFECT, "inkscape:path-effect"}, + {SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, "inkscape:highlight-color"}, /* SPAnchor */ {SP_ATTR_XLINK_HREF, "xlink:href"}, {SP_ATTR_XLINK_TYPE, "xlink:type"}, diff --git a/src/attributes.h b/src/attributes.h index b8843fcb7..d1c93b819 100644 --- a/src/attributes.h +++ b/src/attributes.h @@ -40,6 +40,7 @@ enum SPAttributeEnum { SP_ATTR_TRANSFORM_CENTER_X, SP_ATTR_TRANSFORM_CENTER_Y, SP_ATTR_INKSCAPE_PATH_EFFECT, + SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, /* SPAnchor */ SP_ATTR_XLINK_HREF, SP_ATTR_XLINK_TYPE, diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 79d8cc37d..ff3e3a31c 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -493,11 +493,23 @@ void SPItem::set(unsigned int key, gchar const* value) { break; } case SP_ATTR_SODIPODI_INSENSITIVE: + { item->sensitive = !value; for (SPItemView *v = item->display; v != NULL; v = v->next) { v->arenaitem->setSensitive(item->sensitive); } break; + } + case SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR: + { + g_free(item->_highlightColor); + if (value) { + item->_highlightColor = g_strdup(value); + } else { + item->_highlightColor = NULL; + } + break; + } case SP_ATTR_CONNECTOR_AVOID: item->avoidRef->setAvoid(value); break; @@ -706,6 +718,11 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X g_free ((void *) uri); } } + if (item->_highlightColor){ + repr->setAttribute("inkscape:highlight-color", item->_highlightColor); + } else { + repr->setAttribute("inkscape:highlight-color", NULL); + } SPObject::write(xml_doc, repr, flags); diff --git a/src/ui/tool/multi-path-manipulator.cpp b/src/ui/tool/multi-path-manipulator.cpp index 65987ad52..b54b5ad07 100644 --- a/src/ui/tool/multi-path-manipulator.cpp +++ b/src/ui/tool/multi-path-manipulator.cpp @@ -182,7 +182,7 @@ void MultiPathManipulator::setItems(std::set const &s) ShapeRecord const &r = *i; if (!SP_IS_PATH(r.item) && !IS_LIVEPATHEFFECT(r.item)) continue; boost::shared_ptr newpm(new PathManipulator(*this, (SPPath*) r.item, - r.edit_transform, _getOutlineColor(r.role), r.lpe_key)); + r.edit_transform, _getOutlineColor(r.role, r.item), r.lpe_key)); newpm->showHandles(_show_handles); // always show outlines for clips and masks newpm->showOutline(_show_outline || r.role != SHAPE_ROLE_NORMAL); @@ -833,7 +833,7 @@ void MultiPathManipulator::_doneWithCleanup(gchar const *reason, bool alert_LPE) } /** Get an outline color based on the shape's role (normal, mask, LPE parameter, etc.). */ -guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role) +guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role, SPItem *item) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); switch(role) { @@ -845,7 +845,7 @@ guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role) return prefs->getColor("/tools/nodes/lpe_param_color", 0x009000ff); case SHAPE_ROLE_NORMAL: default: - return prefs->getColor("/tools/nodes/outline_color", 0xff0000ff); + return item->highlight_color(); } } diff --git a/src/ui/tool/multi-path-manipulator.h b/src/ui/tool/multi-path-manipulator.h index 1328372c6..d3746b878 100644 --- a/src/ui/tool/multi-path-manipulator.h +++ b/src/ui/tool/multi-path-manipulator.h @@ -106,7 +106,7 @@ private: void _commit(CommitEvent cps); void _done(gchar const *reason, bool alert_LPE = false); void _doneWithCleanup(gchar const *reason, bool alert_LPE = false); - guint32 _getOutlineColor(ShapeRole role); + guint32 _getOutlineColor(ShapeRole role, SPItem *item); MapType _mmap; public: diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index b1e11bd66..719b67108 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -473,7 +473,8 @@ bool NodeTool::root_handler(GdkEvent* event) { SPCanvasItem *flash = sp_canvas_bpath_new(sp_desktop_tempgroup(desktop), c); sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(flash), - prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff), 1.0, + //prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff), 1.0, + over_item->highlight_color(), 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(flash), 0, SP_WIND_RULE_NONZERO); -- cgit v1.2.3 From dc1f7ce719d703d8dd4d7747d1967a3e8a1bfb18 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 4 Mar 2014 16:53:56 -0500 Subject: Remove tag dialog temporarily (bzr r13090.1.13) --- src/ui/dialog/Makefile_insert | 2 -- src/ui/dialog/dialog-manager.cpp | 6 +++--- src/ui/dialog/swatches.cpp | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert index bdb1abcda..1cf667f2a 100644 --- a/src/ui/dialog/Makefile_insert +++ b/src/ui/dialog/Makefile_insert @@ -113,6 +113,4 @@ ink_common_sources += \ ui/dialog/lpe-powerstroke-properties.h \ ui/dialog/objects.cpp \ ui/dialog/objects.h \ - ui/dialog/tags.cpp \ - ui/dialog/tags.h \ $(inkboard_dialogs) diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp index bbfea8cf0..1fddbf007 100644 --- a/src/ui/dialog/dialog-manager.cpp +++ b/src/ui/dialog/dialog-manager.cpp @@ -55,7 +55,7 @@ #include "ui/dialog/clonetiler.h" #include "ui/dialog/svg-fonts-dialog.h" #include "ui/dialog/objects.h" -#include "ui/dialog/tags.h" +//#include "ui/dialog/tags.h" namespace Inkscape { namespace UI { @@ -111,7 +111,7 @@ DialogManager::DialogManager() { registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); - registerFactory("TagsPanel", &create); + //registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); @@ -147,7 +147,7 @@ DialogManager::DialogManager() { registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); - registerFactory("TagsPanel", &create); + //registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 5e77a28ab..711bcfe2d 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -20,6 +20,7 @@ #include "swatches.h" #include +#include #include #include @@ -57,6 +58,22 @@ #include "gradient-chemistry.h" #include "helper/action.h" #include "helper/action-context.h" +#include "xml/node-observer.h" +#include "xml/repr.h" +#include "sp-pattern.h" +#include "icon-size.h" +#include "widgets/icon.h" +#include "filedialog.h" +#include "sp-stop.h" +#include "svg/svg-color.h" +#include "sp-radial-gradient.h" +#include "color-rgba.h" +#include "event-context.h" +#include +//sorry! +#ifdef WIN32 +#include +#endif namespace Inkscape { namespace UI { @@ -64,6 +81,7 @@ namespace Dialogs { #define VBLOCK 16 #define PREVIEW_PIXBUF_WIDTH 128 +#define SWATCHES_FILE_NAME "swatches.svg" void _loadPaletteFile( gchar const *filename, gboolean user=FALSE ); -- cgit v1.2.3 From 12971e975dae83c23e89cdbff99e990d3916b6ff Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 4 Mar 2014 18:05:52 -0500 Subject: Added some basic swatch stuff (does not compile) (bzr r13090.1.14) --- src/ui/dialog/swatches.cpp | 2940 ++++++++++++++++++++++++++++++-------------- src/ui/dialog/swatches.h | 155 ++- 2 files changed, 2157 insertions(+), 938 deletions(-) diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 711bcfe2d..a0c79b8ac 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -43,10 +43,10 @@ #include "path-prefix.h" #include "preferences.h" #include "sp-item.h" +#include "sp-gradient-fns.h" #include "sp-gradient.h" #include "sp-gradient-vector.h" #include "style.h" -#include "ui/previewholder.h" #include "widgets/desktop-widget.h" #include "widgets/gradient-vector.h" #include "widgets/eek-preview.h" @@ -57,7 +57,6 @@ #include "verbs.h" #include "gradient-chemistry.h" #include "helper/action.h" -#include "helper/action-context.h" #include "xml/node-observer.h" #include "xml/repr.h" #include "sp-pattern.h" @@ -68,1172 +67,2255 @@ #include "svg/svg-color.h" #include "sp-radial-gradient.h" #include "color-rgba.h" -#include "event-context.h" +#include "svg/css-ostringstream.h" +//#include "event-context.h" //no longer exists #include -//sorry! #ifdef WIN32 #include #endif +guint get_group0_keyval(GdkEventKey *event); +void sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill); + namespace Inkscape { namespace UI { namespace Dialogs { -#define VBLOCK 16 -#define PREVIEW_PIXBUF_WIDTH 128 #define SWATCHES_FILE_NAME "swatches.svg" -void _loadPaletteFile( gchar const *filename, gboolean user=FALSE ); - -std::list userSwatchPages; -std::list systemSwatchPages; -static std::map docPalettes; -static std::vector docTrackings; -static std::map docPerPanel; - - -class SwatchesPanelHook : public SwatchesPanel -{ -public: - static void convertGradient( GtkMenuItem *menuitem, gpointer userData ); - static void deleteGradient( GtkMenuItem *menuitem, gpointer userData ); -}; +static char* trim( char* str ) { + char* ret = str; + while ( *str && (*str == ' ' || *str == '\t') ) { + str++; + } + ret = str; + while ( *str ) { + str++; + } + str--; + while ( str > ret && (( *str == ' ' || *str == '\t' ) || *str == '\r' || *str == '\n') ) { + *str-- = 0; + } + return ret; +} -static void handleClick( GtkWidget* /*widget*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - item->buttonClicked(false); +static void skipWhitespace( char*& str ) { + while ( *str == ' ' || *str == '\t' ) { + str++; } } -static void handleSecondaryClick( GtkWidget* /*widget*/, gint /*arg1*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - item->buttonClicked(true); +static bool parseNum( char*& str, int& val ) { + val = 0; + while ( '0' <= *str && *str <= '9' ) { + val = val * 10 + (*str - '0'); + str++; } + bool retval = !(*str == 0 || *str == ' ' || *str == '\t' || *str == '\r' || *str == '\n'); + return retval; } -static GtkWidget* popupMenu = 0; -static GtkWidget *popupSubHolder = 0; -static GtkWidget *popupSub = 0; -static std::vector popupItems; -static std::vector popupExtras; -static ColorItem* bounceTarget = 0; -static SwatchesPanel* bouncePanel = 0; +static char * SwatchFile; +static SPDocument * SwatchDocument; +static unsigned int page_suffix; -static void redirClick( GtkMenuItem *menuitem, gpointer /*user_data*/ ) +static void loadPalletFile() { - if ( bounceTarget ) { - handleClick( GTK_WIDGET(menuitem), bounceTarget ); + if (!SwatchDocument) { + SwatchFile=g_build_filename(INKSCAPE_PALETTESDIR, _("swatches.svg"), NULL); + SwatchDocument=SPDocument::createNewDoc (SwatchFile, TRUE); + if (!SwatchDocument) { + SwatchDocument = SPDocument::createNewDoc(NULL, TRUE, true); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); + } } } -static void redirSecondaryClick( GtkMenuItem *menuitem, gpointer /*user_data*/ ) +static void addStop( Inkscape::XML::Node *parent, Glib::ustring const &color, gfloat opacity, gchar const *offset ) { - if ( bounceTarget ) { - handleSecondaryClick( GTK_WIDGET(menuitem), 0, bounceTarget ); +#ifdef SP_GR_VERBOSE + g_message("addStop(%p, %s, %d, %s)", parent, color.c_str(), opacity, offset); +#endif + Inkscape::XML::Node *stop = parent->document()->createElement("svg:stop"); + { + gchar *tmp = g_strdup_printf( "stop-color:%s;stop-opacity:%f;", color.c_str(), opacity < 0.0 ? 0.0 : (opacity > 1.0 ? 1.0 : opacity) ); + stop->setAttribute( "style", tmp ); + g_free(tmp); } + + stop->setAttribute( "offset", offset ); + + parent->appendChild(stop); + Inkscape::GC::release(stop); } -static void editGradientImpl( SPDesktop* desktop, SPGradient* gr ) +static SPGroup* importGPL(SPDocument* doc, const gchar* full) { - if ( gr ) { - bool shown = false; - if ( desktop && desktop->doc() ) { - Inkscape::Selection *selection = sp_desktop_selection( desktop ); - GSList const *items = selection->itemList(); - if (items) { - SPStyle *query = sp_style_new( desktop->doc() ); - int result = objects_query_fillstroke(const_cast(items), query, true); - if ( (result == QUERY_STYLE_MULTIPLE_SAME) || (result == QUERY_STYLE_SINGLE) ) { - // could be pertinent - if (query->fill.isPaintserver()) { - SPPaintServer* server = query->getFillPaintServer(); - if ( SP_IS_GRADIENT(server) ) { - SPGradient* grad = SP_GRADIENT(server); - if ( grad->isSwatch() && grad->getId() == gr->getId()) { - desktop->_dlg_mgr->showDialog("FillAndStroke"); - shown = true; + SPGroup* ret = NULL; + if ( !Inkscape::IO::file_test( full, G_FILE_TEST_IS_DIR ) ) { + + /*Load the pallet file here*/ + char block[1024]; + FILE *f = Inkscape::IO::fopen_utf8name( full, "r" ); + if ( f ) { + char* result = fgets( block, sizeof(block), f ); + if ( result ) { + if ( strncmp( "GIMP Palette", block, 12 ) == 0 ) { + bool inHeader = true; + bool hasErr = false; + + Inkscape::XML::Node * page = doc->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (doc->getObjectById(id)); + + page->setAttribute("id", id); + + do { + result = fgets( block, sizeof(block), f ); + block[sizeof(block) - 1] = 0; + if ( result ) { + if ( block[0] == '#' ) { + // ignore comment + } else { + char *ptr = block; + // very simple check for header versus entry + while ( *ptr == ' ' || *ptr == '\t' ) { + ptr++; + } + if ( (*ptr == 0) || (*ptr == '\r') || (*ptr == '\n') ) { + // blank line. skip it. + } else if ( '0' <= *ptr && *ptr <= '9' ) { + // should be an entry link + inHeader = false; + ptr = block; + Glib::ustring name(""); + skipWhitespace(ptr); + if ( *ptr ) { + int r = 0; + int g = 0; + int b = 0; + hasErr = parseNum(ptr, r); + if ( !hasErr ) { + skipWhitespace(ptr); + hasErr = parseNum(ptr, g); + } + if ( !hasErr ) { + skipWhitespace(ptr); + hasErr = parseNum(ptr, b); + } + if ( !hasErr && *ptr ) { + char* n = trim(ptr); + if (n != NULL) { + name = g_dpgettext2(NULL, "Palette", n); + } + } + if ( !hasErr ) { + // Add the entry now + + Inkscape::XML::Node *grad = doc->getReprDoc()->createElement("svg:linearGradient"); + grad->setAttribute("inkscape:label", name.c_str()); + grad->setAttribute( "osb:paint", "solid", 0 ); + SPColor color((float)r / 255, (float)g / 255, (float)b / 255); + addStop(grad, color.toString(), 1, "0"); + page->appendChild(grad); + Inkscape::GC::release(grad); + } + } else { + hasErr = true; + } + } else { + if ( !inHeader ) { + // Hmmm... probably bad. Not quite the format we want? + hasErr = true; + } else { + char* sep = strchr(result, ':'); + if ( sep ) { + *sep = 0; + char* val = trim(sep + 1); + char* name = trim(result); + if ( *name ) { + if ( strcmp( "Name", name ) == 0 ) + { + page->setAttribute("inkscape:label", val); + } + } else { + // error + hasErr = true; + } + } else { + // error + hasErr = true; + } + } + } } } + } while ( result && !hasErr ); + if ( !hasErr ) { + doc->getDefs()->appendChild(page); + Inkscape::GC::release(page); + SPObject* obj = doc->getObjectByRepr(page); + if (SP_IS_GROUP(obj)) { + ret = SP_GROUP(obj); + } + #if ENABLE_MAGIC_COLORS + ColorItem::_wireMagicColors( onceMore ); + #endif // ENABLE_MAGIC_COLORS + } else { + delete page; } } - sp_style_unref(query); } - } - if (!shown) { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - if (prefs->getBool("/dialogs/gradienteditor/showlegacy", false)) { - // Legacy gradient dialog - GtkWidget *dialog = sp_gradient_vector_editor_new( gr ); - gtk_widget_show( dialog ); - } else { - // Invoke the gradient tool - Inkscape::Verb *verb = Inkscape::Verb::get( SP_VERB_CONTEXT_GRADIENT ); - if ( verb ) { - SPAction *action = verb->get_action( Inkscape::ActionContext( ( Inkscape::UI::View::View * ) SP_ACTIVE_DESKTOP ) ); - if ( action ) { - sp_action_perform( action, NULL ); - } - } - } + fclose(f); } + /* end loading the pallet file*/ } + return ret; } -static void editGradient( GtkMenuItem */*menuitem*/, gpointer /*user_data*/ ) +SwatchesPanel& SwatchesPanel::getInstance() { - if ( bounceTarget ) { - SwatchesPanel* swp = bouncePanel; - SPDesktop* desktop = swp ? swp->getDesktop() : 0; - SPDocument *doc = desktop ? desktop->doc() : 0; - if (doc) { - std::string targetName(bounceTarget->def.descr); - const GSList *gradients = doc->getResourceList("gradient"); - for (const GSList *item = gradients; item; item = item->next) { - SPGradient* grad = SP_GRADIENT(item->data); - if ( targetName == grad->getId() ) { - editGradientImpl( desktop, grad ); - break; + return *new SwatchesPanel(); +} + +class SwatchesPanel::StopWatcher : public Inkscape::XML::NodeObserver { +public: + StopWatcher(SwatchesPanel* pnl, SPStop* obj) : + _pnl(pnl), + _obj(obj), + _repr(obj->getRepr()) + { + _repr->addObserver(*this); + } + + ~StopWatcher() { + _repr->removeObserver(*this); + } + + virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ){} + virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ){} + virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ){} + virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + + virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if (_pnl && _obj) { + _pnl->_defsChanged( ); + } + } + + SwatchesPanel* _pnl; + SPStop* _obj; + Inkscape::XML::Node* _repr; +}; + +class SwatchesPanel::GradientWatcher : public Inkscape::XML::NodeObserver { +public: + GradientWatcher(SwatchesPanel* pnl, SPGradient* obj) : + _pnl(pnl), + _obj(obj), + _repr(obj->getRepr()), + _labelAttr(g_quark_from_string("inkscape:label")), + _swatchAttr(g_quark_from_string("osb:paint")) + { + _repr->addObserver(*this); + } + + ~GradientWatcher() { + _repr->removeObserver(*this); + } + + virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ) + { + if ( _pnl && _obj && _obj->isSwatch()) { + _pnl->_defsChanged( ); + } + } + virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ) + { + if ( _pnl && _obj && _obj->isSwatch() ) { + _pnl->_defsChanged( ); + } + } + virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ) + { + if ( _pnl && _obj && _obj->isSwatch() ) { + _pnl->_defsChanged( ); + } + } + virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if (_pnl && _obj && ((_obj->isSwatch() && name == _labelAttr) || name == _swatchAttr)) { + _pnl->_defsChanged( ); + } + } + + SwatchesPanel* _pnl; + SPGradient* _obj; + Inkscape::XML::Node* _repr; + GQuark _labelAttr; + GQuark _swatchAttr; +}; + +class SwatchesPanel::SwatchWatcher : public Inkscape::XML::NodeObserver { +public: + SwatchWatcher(SwatchesPanel* pnl, SPObject* obj, bool builtIn) : + _pnl(pnl), + _obj(obj), + _builtIn(builtIn), + _repr(obj->getRepr()), + _labelAttr(g_quark_from_string("inkscape:label")), + _swatchAttr(g_quark_from_string("osb:paint")) + { + _repr->addObserver(*this); + } + + ~SwatchWatcher() { + _repr->removeObserver(*this); + } + + virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*prev*/ ) + { + if ( _pnl && _obj) { + SPObject *childobj = _builtIn ? SwatchDocument->getObjectByRepr(&child) : (_pnl->_currentDocument ? _pnl->_currentDocument->getObjectByRepr(&child) : 0); + if (childobj && ((SP_IS_GRADIENT(childobj) && SP_GRADIENT(childobj)->hasStops()) || SP_IS_GROUP(childobj))) { + if (_builtIn) { + _pnl->_swatchesChanged( ); + } else { + _pnl->_defsChanged( ); } } } } -} - -void SwatchesPanelHook::convertGradient( GtkMenuItem * /*menuitem*/, gpointer userData ) -{ - if ( bounceTarget ) { - SwatchesPanel* swp = bouncePanel; - SPDesktop* desktop = swp ? swp->getDesktop() : 0; - SPDocument *doc = desktop ? desktop->doc() : 0; - gint index = GPOINTER_TO_INT(userData); - if ( doc && (index >= 0) && (static_cast(index) < popupItems.size()) ) { - Glib::ustring targetName = popupItems[index]; - - const GSList *gradients = doc->getResourceList("gradient"); - for (const GSList *item = gradients; item; item = item->next) { - SPGradient* grad = SP_GRADIENT(item->data); - if ( targetName == grad->getId() ) { - grad->setSwatch(); - DocumentUndo::done(doc, SP_VERB_CONTEXT_GRADIENT, - _("Add gradient stop")); - break; + virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*prev*/ ) + { + if ( _pnl && _obj) { + if (_builtIn) { + _pnl->_swatchesChanged( ); + } else { + _pnl->_defsChanged( ); + } + } + } + virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ) + { + if ( _pnl && _obj) { + SPObject *childobj = _builtIn ? SwatchDocument->getObjectByRepr(&child) : (_pnl->_currentDocument ? _pnl->_currentDocument->getObjectByRepr(&child) : 0); + if (childobj && ((SP_IS_GRADIENT(childobj) && SP_GRADIENT(childobj)->hasStops()) || SP_IS_GROUP(childobj))) { + if (_builtIn) { + _pnl->_swatchesChanged( ); + } else { + _pnl->_defsChanged( ); } } } } -} + virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if (_pnl && _obj && name == _labelAttr) { + if (_builtIn) { + _pnl->_swatchesChanged( ); + } else { + _pnl->_defsChanged( ); + } + } + } -void SwatchesPanelHook::deleteGradient( GtkMenuItem */*menuitem*/, gpointer /*userData*/ ) + SwatchesPanel* _pnl; + SPObject* _obj; + bool _builtIn; + Inkscape::XML::Node* _repr; + GQuark _labelAttr; + GQuark _swatchAttr; +}; + +class SwatchesPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord { - if ( bounceTarget ) { - SwatchesPanel* swp = bouncePanel; - SPDesktop* desktop = swp ? swp->getDesktop() : 0; - sp_gradient_unset_swatch(desktop, bounceTarget->def.descr); +public: + + ModelColumns() + { + add(_colObject); + add(_colLabel); } -} + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; +}; -static SwatchesPanel* findContainingPanel( GtkWidget *widget ) +class SwatchesPanel::ModelColumnsDoc : public Gtk::TreeModel::ColumnRecord { - SwatchesPanel *swp = 0; +public: - std::map rawObjects; - for (std::map::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { - rawObjects[GTK_WIDGET(it->first->gobj())] = it->first; + ModelColumnsDoc() + { + add(_colObject); + add(_colLabel); + add(_colPixbuf); } + virtual ~ModelColumnsDoc() {} - for (GtkWidget* curr = widget; curr && !swp; curr = gtk_widget_get_parent(curr)) { - if (rawObjects.find(curr) != rawObjects.end()) { - swp = rawObjects[curr]; + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; + Gtk::TreeModelColumn > _colPixbuf; +}; + +static void StripChildGroups(Inkscape::XML::Node * node, SPObject* addTo) +{ + for (Inkscape::XML::Node * it = node->firstChild(); it != NULL;) { + if (!strcmp(it->name(), "svg:g")) { + Inkscape::XML::Node * todel = it; + it = it->next(); + node->removeChild(todel); + } else { + it = it->next(); } } - - return swp; + addTo->appendChildRepr(node); } -static void removeit( GtkWidget *widget, gpointer data ) +static void BubbleChildGroups(Inkscape::XML::Node * node, SPObject* addTo) { - gtk_container_remove( GTK_CONTAINER(data), widget ); + std::queue groups; + for (Inkscape::XML::Node * it = node->firstChild(); it != NULL; ) { + if (!strcmp(it->name(), "svg:g")) { + groups.push(it->duplicate(addTo->document->getReprDoc())); + Inkscape::XML::Node * todel = it; + it = it->next(); + node->removeChild(todel); + } else { + it = it->next(); + } + } + addTo->appendChildRepr(node); + while (!groups.empty()) { + Inkscape::XML::Node * it = groups.front(); + groups.pop(); + BubbleChildGroups(it, addTo); + Inkscape::GC::release(it); + } } -/* extern'ed from colot-item.cpp */ -gboolean colorItemHandleButtonPress( GtkWidget* widget, GdkEventButton* event, gpointer user_data ); +void SwatchesPanel::_addSwatchButtonClicked(SPGroup* swatch, bool recurse) +{ + if (_currentDocument) { + if (swatch && SP_IS_GROUP(swatch) ) { + Inkscape::XML::Node * copy = swatch->getRepr()->duplicate(_currentDocument->getReprDoc()); + if (recurse) { + BubbleChildGroups(copy, _currentDocument->getDefs()); + } else { + StripChildGroups(copy, _currentDocument->getDefs()); + } + Inkscape::GC::release(copy); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add swatches to document")); + } + } +} -gboolean colorItemHandleButtonPress( GtkWidget* widget, GdkEventButton* event, gpointer user_data ) +void SwatchesPanel::_importButtonClicked(bool addToDoc, bool addToBI) { - gboolean handled = FALSE; - - if ( event && (event->button == 3) && (event->type == GDK_BUTTON_PRESS) ) { - SwatchesPanel* swp = findContainingPanel( widget ); - - if ( !popupMenu ) { - popupMenu = gtk_menu_new(); - GtkWidget* child = 0; - - //TRANSLATORS: An item in context menu on a colour in the swatches - child = gtk_menu_item_new_with_label(_("Set fill")); - g_signal_connect( G_OBJECT(child), - "activate", - G_CALLBACK(redirClick), - user_data); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - - //TRANSLATORS: An item in context menu on a colour in the swatches - child = gtk_menu_item_new_with_label(_("Set stroke")); - - g_signal_connect( G_OBJECT(child), - "activate", - G_CALLBACK(redirSecondaryClick), - user_data); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - - child = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - popupExtras.push_back(child); - - child = gtk_menu_item_new_with_label(_("Delete")); - g_signal_connect( G_OBJECT(child), - "activate", - G_CALLBACK(SwatchesPanelHook::deleteGradient), - user_data ); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - popupExtras.push_back(child); - gtk_widget_set_sensitive( child, FALSE ); - - child = gtk_menu_item_new_with_label(_("Edit...")); - g_signal_connect( G_OBJECT(child), - "activate", - G_CALLBACK(editGradient), - user_data ); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - popupExtras.push_back(child); - - child = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - popupExtras.push_back(child); - - child = gtk_menu_item_new_with_label(_("Convert")); - gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); - //popupExtras.push_back(child); - //gtk_widget_set_sensitive( child, FALSE ); + if (addToDoc || addToBI) { + //# Get the current directory for finding files + static Glib::ustring open_path; + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + + if(open_path.empty()) + { + Glib::ustring attr = prefs->getString("/dialogs/open/path"); + if (!attr.empty()) open_path = attr; + } + + //# Test if the open_path directory exists + if (!Inkscape::IO::file_test(open_path.c_str(), + (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) + open_path = ""; + + #ifdef WIN32 + //# If no open path, default to our win32 documents folder + if (open_path.empty()) + { + // The path to the My Documents folder is read from the + // value "HKEY_CURRENT_USER\Software\Windows\CurrentVersion\Explorer\Shell Folders\Personal" + HKEY key = NULL; + if(RegOpenKeyExA(HKEY_CURRENT_USER, + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", + 0, KEY_QUERY_VALUE, &key) == ERROR_SUCCESS) { - popupSubHolder = child; - popupSub = gtk_menu_new(); - gtk_menu_item_set_submenu( GTK_MENU_ITEM(child), popupSub ); + WCHAR utf16path[_MAX_PATH]; + DWORD value_type; + DWORD data_size = sizeof(utf16path); + if(RegQueryValueExW(key, L"Personal", NULL, &value_type, + (BYTE*)utf16path, &data_size) == ERROR_SUCCESS) + { + g_assert(value_type == REG_SZ); + gchar *utf8path = g_utf16_to_utf8( + (const gunichar2*)utf16path, -1, NULL, NULL, NULL); + if(utf8path) + { + open_path = Glib::ustring(utf8path); + g_free(utf8path); + } + } } + } + #endif - gtk_widget_show_all(popupMenu); + //# If no open path, default to our home directory + if (open_path.empty()) + { + open_path = g_get_home_dir(); + open_path.append(G_DIR_SEPARATOR_S); } - if ( user_data ) { - ColorItem* item = reinterpret_cast(user_data); - bool show = swp && (swp->getSelectedIndex() == 0); - for ( std::vector::iterator it = popupExtras.begin(); it != popupExtras.end(); ++ it) { - gtk_widget_set_sensitive(*it, show); - } + Gtk::Window * parent = SP_ACTIVE_DESKTOP->getToplevel(); + //# Create a dialog + Inkscape::UI::Dialog::FileOpenDialog *openDialogInstance = + Inkscape::UI::Dialog::FileOpenDialog::create( + *parent, open_path, + Inkscape::UI::Dialog::SWATCH_TYPES, + _("Select file to open")); - bounceTarget = item; - bouncePanel = swp; - popupItems.clear(); - if ( popupMenu ) { - gtk_container_foreach(GTK_CONTAINER(popupSub), removeit, popupSub); - bool processed = false; - GtkWidget *wdgt = gtk_widget_get_ancestor(widget, SP_TYPE_DESKTOP_WIDGET); - if ( wdgt ) { - SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(wdgt); - if ( dtw && dtw->desktop ) { - // Pick up all gradients with vectors - const GSList *gradients = (dtw->desktop->doc())->getResourceList("gradient"); - gint index = 0; - for (const GSList *curr = gradients; curr; curr = curr->next) { - SPGradient* grad = SP_GRADIENT(curr->data); - if ( grad->hasStops() && !grad->isSwatch() ) { - //gl = g_slist_prepend(gl, curr->data); - processed = true; - GtkWidget *child = gtk_menu_item_new_with_label(grad->getId()); - gtk_menu_shell_append(GTK_MENU_SHELL(popupSub), child); - - popupItems.push_back(grad->getId()); - g_signal_connect( G_OBJECT(child), - "activate", - G_CALLBACK(SwatchesPanelHook::convertGradient), - GINT_TO_POINTER(index) ); - index++; - } - } + //# Show the dialog + bool const success = openDialogInstance->show(); - gtk_widget_show_all(popupSub); - } - } - gtk_widget_set_sensitive( popupSubHolder, processed ); + //# Save the folder the user selected for later + open_path = openDialogInstance->getCurrentDirectory(); - gtk_menu_popup(GTK_MENU(popupMenu), NULL, NULL, NULL, NULL, event->button, event->time); - handled = TRUE; - } + if (!success) + { + delete openDialogInstance; + return; } - } - return handled; -} + //# User selected something. Get name and type + Glib::ustring fileName = openDialogInstance->getFilename(); + //# We no longer need the file dialog object - delete it + delete openDialogInstance; + openDialogInstance = NULL; -static char* trim( char* str ) { - char* ret = str; - while ( *str && (*str == ' ' || *str == '\t') ) { - str++; - } - ret = str; - while ( *str ) { - str++; - } - str--; - while ( str > ret && (( *str == ' ' || *str == '\t' ) || *str == '\r' || *str == '\n') ) { - *str-- = 0; - } - return ret; -} -static void skipWhitespace( char*& str ) { - while ( *str == ' ' || *str == '\t' ) { - str++; + if (!fileName.empty()) + { + Glib::ustring newFileName = Glib::filename_to_utf8(fileName); + + if ( newFileName.size() > 0) + fileName = newFileName; + else + g_warning( "ERROR CONVERTING OPEN FILENAME TO UTF-8" ); + + open_path = Glib::path_get_dirname (fileName); + open_path.append(G_DIR_SEPARATOR_S); + prefs->setString("/dialogs/open/path", open_path); + + SPDocument* importdoc = SPDocument::createNewDoc(fileName.c_str(), true); + Inkscape::XML::Node * page = NULL; + if (importdoc && importdoc->getDefs()) { + if (addToBI) { + page = SwatchDocument->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (SwatchDocument->getObjectById(id)); + + page->setAttribute("id", id); + gchar* name = g_path_get_basename(importdoc->getName()); + page->setAttribute("inkscape:label", name); + g_free(name); + } + + for (SPObject* it = importdoc->getDefs()->firstChild(); it != NULL; it = it->next) { + if (SP_IS_GROUP(it)) { + if (page) { + Inkscape::XML::Node * copy = it->getRepr()->duplicate(SwatchDocument->getReprDoc()); + page->appendChild(copy); + } + if (addToDoc) { + _addSwatchButtonClicked(SP_GROUP(it), false); + } + } + } + if (page) { + SwatchDocument->getDefs()->appendChildRepr(page); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); + } + + importdoc->doUnref(); + } else { + SPGroup* g = importGPL(addToBI ? SwatchDocument : _currentDocument, fileName.c_str()); + if (addToBI) { + if (addToDoc) { + _addSwatchButtonClicked(g, false); + } + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); + } else { + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add swatches to document")); + } + } + } } } -static bool parseNum( char*& str, int& val ) { - val = 0; - while ( '0' <= *str && *str <= '9' ) { - val = val * 10 + (*str - '0'); - str++; +void SwatchesPanel::SetSelectedFill(SPGradient* swatch) +{ + if (_currentDesktop && _currentDocument) { + SPItem* it = _currentDesktop->selection->singleItem(); + if (it) { + if (it->style->fill.isSet()) { + if (it->style->fill.isPaintserver()) { + SPPaintServer * server = it->style->getFillPaintServer(); + if (SP_IS_GRADIENT(server)) { + SPGradient *grad = SP_GRADIENT(server)->getVector(); + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * drepr = swatch->getRepr(); + if (repr != drepr && grad != swatch) { + while (SPStop* olds = swatch->getFirstStop()) { + olds->deleteObject(); + } + for (SPStop* news = grad->getVector()->getFirstStop(); news != NULL; news = news->getNextStop()) { + Inkscape::XML::Node* clone = news->getRepr()->duplicate(_currentDocument->getReprDoc()); + swatch->appendChildRepr(clone); + Inkscape::GC::release(clone); + } + swatch->setSwatch(); + if (!_noLink.get_active()) { + sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(swatch), SP_IS_RADIALGRADIENT(swatch) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); + } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Gradient Swatch")); + } + } + } else if (it->style->fill.isColor()) { + while (SPStop* olds = swatch->getFirstStop()) { + olds->deleteObject(); + } + addStop(swatch->getRepr(), it->style->fill.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->fill_opacity.value), "0"); + swatch->setSwatch(); + if (!_noLink.get_active()) { + SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); + sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); + } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Color Swatch")); + } + } + } } - bool retval = !(*str == 0 || *str == ' ' || *str == '\t' || *str == '\r' || *str == '\n'); - return retval; } - -void _loadPaletteFile( gchar const *filename, gboolean user/*=FALSE*/ ) +void SwatchesPanel::SetSelectedStroke(SPGradient* swatch) { - char block[1024]; - FILE *f = Inkscape::IO::fopen_utf8name( filename, "r" ); - if ( f ) { - char* result = fgets( block, sizeof(block), f ); - if ( result ) { - if ( strncmp( "GIMP Palette", block, 12 ) == 0 ) { - bool inHeader = true; - bool hasErr = false; - - SwatchPage *onceMore = new SwatchPage(); - - do { - result = fgets( block, sizeof(block), f ); - block[sizeof(block) - 1] = 0; - if ( result ) { - if ( block[0] == '#' ) { - // ignore comment - } else { - char *ptr = block; - // very simple check for header versus entry - while ( *ptr == ' ' || *ptr == '\t' ) { - ptr++; + if (_currentDesktop && _currentDocument) { + SPItem* it = _currentDesktop->selection->singleItem(); + if (it) { + if (it->style->stroke.isSet()) { + if (it->style->stroke.isPaintserver()) { + SPPaintServer * server = it->style->getStrokePaintServer(); + if (SP_IS_GRADIENT(server)) { + SPGradient *grad = SP_GRADIENT(server)->getVector(); + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * drepr = swatch->getRepr(); + if (repr != drepr && grad != swatch) { + while (SPStop* olds = swatch->getFirstStop()) { + olds->deleteObject(); } - if ( (*ptr == 0) || (*ptr == '\r') || (*ptr == '\n') ) { - // blank line. skip it. - } else if ( '0' <= *ptr && *ptr <= '9' ) { - // should be an entry link - inHeader = false; - ptr = block; - Glib::ustring name(""); - skipWhitespace(ptr); - if ( *ptr ) { - int r = 0; - int g = 0; - int b = 0; - hasErr = parseNum(ptr, r); - if ( !hasErr ) { - skipWhitespace(ptr); - hasErr = parseNum(ptr, g); - } - if ( !hasErr ) { - skipWhitespace(ptr); - hasErr = parseNum(ptr, b); - } - if ( !hasErr && *ptr ) { - char* n = trim(ptr); - if (n != NULL) { - name = g_dpgettext2(NULL, "Palette", n); - } - } - if ( !hasErr ) { - // Add the entry now - Glib::ustring nameStr(name); - ColorItem* item = new ColorItem( r, g, b, nameStr ); - onceMore->_colors.push_back(item); - } - } else { - hasErr = true; - } - } else { - if ( !inHeader ) { - // Hmmm... probably bad. Not quite the format we want? - hasErr = true; - } else { - char* sep = strchr(result, ':'); - if ( sep ) { - *sep = 0; - char* val = trim(sep + 1); - char* name = trim(result); - if ( *name ) { - if ( strcmp( "Name", name ) == 0 ) - { - onceMore->_name = val; - } - else if ( strcmp( "Columns", name ) == 0 ) - { - gchar* endPtr = 0; - guint64 numVal = g_ascii_strtoull( val, &endPtr, 10 ); - if ( (numVal == G_MAXUINT64) && (ERANGE == errno) ) { - // overflow - } else if ( (numVal == 0) && (endPtr == val) ) { - // failed conversion - } else { - onceMore->_prefWidth = numVal; - } - } - } else { - // error - hasErr = true; - } - } else { - // error - hasErr = true; - } - } + for (SPStop* news = grad->getVector()->getFirstStop(); news != NULL; news = news->getNextStop()) { + Inkscape::XML::Node* clone = news->getRepr()->duplicate(_currentDocument->getReprDoc()); + swatch->appendChildRepr(clone); + Inkscape::GC::release(clone); + } + swatch->setSwatch(); + if (!_noLink.get_active()) { + sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(swatch), SP_IS_RADIALGRADIENT(swatch) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Gradient Swatch")); } } - } while ( result && !hasErr ); - if ( !hasErr ) { - if (user) - userSwatchPages.push_back(onceMore); - else - systemSwatchPages.push_back(onceMore); -#if ENABLE_MAGIC_COLORS - ColorItem::_wireMagicColors( onceMore ); -#endif // ENABLE_MAGIC_COLORS - } else { - delete onceMore; + } else if (it->style->stroke.isColor()) { + while (SPStop* olds = swatch->getFirstStop()) { + olds->deleteObject(); + } + addStop(swatch->getRepr(), it->style->stroke.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->stroke_opacity.value), "0"); + swatch->setSwatch(); + if (!_noLink.get_active()) { + SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); + sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); + } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Color Swatch")); } } } + } +} - fclose(f); +void SwatchesPanel::MoveSwatchDown(SPGradient* swatch) +{ + if (_currentDocument && swatch) { + SPObject* next = swatch->next; + while (next && (!SP_IS_GRADIENT(next) || !(SP_GRADIENT(next)->isSwatch()))) { + next = next->next; + } + if (next) { + Inkscape::XML::Node* repr = swatch->getRepr(); + repr->parent()->changeOrder(repr, next->getRepr()); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Right")); + } } } -static bool -compare_swatch_names(SwatchPage const *a, SwatchPage const *b) { +void SwatchesPanel::MoveSwatchUp(SPGradient* swatch) +{ + if (_currentDocument && swatch) { + SPObject* g = NULL; + SPObject* next = swatch->parent->firstChild(); + while (next && next != swatch) { + if (SP_IS_GRADIENT(next) && SP_GRADIENT(next)->isSwatch()) { + g = next; + } + next = next->next; + } + if (g) { + g = g->getPrev(); + Inkscape::XML::Node* repr = swatch->getRepr(); + repr->parent()->changeOrder(repr, g ? g->getRepr() : NULL); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Left")); + } + } +} - return g_utf8_collate(a->_name.c_str(), b->_name.c_str()) < 0; +void SwatchesPanel::RemoveSwatch(SPGradient* swatch) +{ + if (_currentDocument) { + if (swatch->isReferenced()) { + Inkscape::XML::Node * repr = swatch->getRepr(); + repr->parent()->removeChild(repr); + _currentDocument->getDefs()->getRepr()->appendChild(repr); + SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(false); + } else { + swatch->deleteObject(false); + } + } } -static void loadEmUp() +void SwatchesPanel::_setSelectionSwatch(SPGradient* swatch, bool isStroke) { - static bool beenHere = false; - gboolean userPalete = true; - if ( !beenHere ) { - beenHere = true; - - std::list sources; - sources.push_back( profile_path("palettes") ); - sources.push_back( g_strdup(INKSCAPE_PALETTESDIR) ); - sources.push_back( g_strdup(CREATE_PALETTESDIR) ); - - // Use this loop to iterate through a list of possible document locations. - while (!sources.empty()) { - gchar *dirname = sources.front(); - if ( Inkscape::IO::file_test( dirname, G_FILE_TEST_EXISTS ) - && Inkscape::IO::file_test( dirname, G_FILE_TEST_IS_DIR )) { - GError *err = 0; - GDir *directory = g_dir_open(dirname, 0, &err); - if (!directory) { - gchar *safeDir = Inkscape::IO::sanitizeString(dirname); - g_warning(_("Palettes directory (%s) is unavailable."), safeDir); - g_free(safeDir); + if (_currentDocument) { + if (swatch) { + if (_noLink.get_active()) { + if (swatch->isSolid()) { + ColorRGBA rgba(swatch->getFirstStop()->getEffectiveColor().toRGBA32(swatch->getFirstStop()->opacity)); + sp_desktop_set_color(_currentDesktop, rgba, false, !isStroke); } else { - gchar *filename = 0; - while ((filename = (gchar *)g_dir_read_name(directory)) != NULL) { - gchar* lower = g_ascii_strdown( filename, -1 ); -// if ( g_str_has_suffix(lower, ".gpl") ) { - if ( !g_str_has_suffix(lower, "~") ) { - gchar* full = g_build_filename(dirname, filename, NULL); - if ( !Inkscape::IO::file_test( full, G_FILE_TEST_IS_DIR ) ) { - _loadPaletteFile(full, userPalete); - } - g_free(full); - } -// } - g_free(lower); - } - g_dir_close(directory); + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_set_property(css, isStroke ? "stroke-opacity" : "fill-opacity", "1.0"); + + Inkscape::XML::Node * clone = swatch->getRepr()->duplicate(_currentDocument->getReprDoc()); + _currentDocument->getDefs()->appendChildRepr(clone); + SPGradient* grad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); + Inkscape::GC::release(clone); + grad->setSwatch(false); + SPGradient* normalized = sp_gradient_ensure_vector_normalized(grad); +// for (GSList const * it = _currentDesktop->selection->itemList(); it != NULL; it = it->next) { +// sp_desktop_apply_css_recursive(SP_ITEM(it->data), css, true); +// sp_item_set_gradient(SP_ITEM(it->data), normalized, SP_IS_RADIALGRADIENT(normalized) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, isStroke ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); +// } + sp_desktop_set_style(_currentDesktop, css); + sp_desktop_set_gradient(_currentDesktop, normalized, !isStroke); + sp_repr_css_attr_unref (css); } + } else { + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_set_property(css, isStroke ? "stroke-opacity" : "fill-opacity", "1.0"); + + SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); +// for (GSList const * it = _currentDesktop->selection->itemList(); it != NULL; it = it->next) { +// sp_desktop_apply_css_recursive(SP_ITEM(it->data), css, true); +// sp_item_set_gradient(SP_ITEM(it->data), normalized, SP_IS_RADIALGRADIENT(normalized) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, isStroke ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); +// } + sp_desktop_set_style(_currentDesktop, css); + sp_desktop_set_gradient(_currentDesktop, normalized, !isStroke); + sp_repr_css_attr_unref (css); } - - // toss the dirname - g_free(dirname); - sources.pop_front(); - userPalete = false; + } else { + SPCSSAttr *css = sp_repr_css_attr_new (); + sp_repr_css_set_property (css, isStroke ? "stroke" : "fill", "none"); + sp_desktop_set_style(_currentDesktop, css); + } + if (isStroke) { + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set item stroke swatch")); + } else { + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set item fill swatch")); } } +} - // Sort the list of swatches by name, grouped by user/system - userSwatchPages.sort(compare_swatch_names); - systemSwatchPages.sort(compare_swatch_names); +void SwatchesPanel::_swatchClicked(GdkEventButton* event, SPGradient* swatch) +{ + if (_currentDesktop) { + if (event->button == 3) { + Gtk::Menu * menu = Gtk::manage(new Gtk::Menu()); + + Gtk::MenuItem* mi; + + Glib::ustring us = Glib::ustring::compose("%1", swatch ? (swatch->label() ? swatch->label() : swatch->getId()) : _("[None]")); + mi = Gtk::manage(new Gtk::MenuItem(swatch ? (swatch->label() ? swatch->label() : swatch->getId()) : _("[None]"))); + Gtk::Label* namelbl = dynamic_cast(mi->get_child()); + if (namelbl) { + namelbl->set_markup(us); + } + mi->show(); + mi->set_sensitive(false); + menu->append(*mi); + + Gtk::SeparatorMenuItem* sep; + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Set Fill"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setSelectionSwatch), swatch, false)); + mi->show(); + mi->set_sensitive(_currentDesktop && !_currentDesktop->selection->isEmpty()); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Set Stroke"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setSelectionSwatch), swatch, true)); + mi->show(); + mi->set_sensitive(_currentDesktop && !_currentDesktop->selection->isEmpty()); + menu->append(*mi); + + if (swatch) { + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Set to Selected Fill"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::SetSelectedFill), swatch)); + mi->show(); + mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Set to Selected Stroke"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::SetSelectedStroke), swatch)); + mi->show(); + mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); + menu->append(*mi); + + + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Move Left"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveSwatchUp), swatch)); + mi->show(); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Move Right"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveSwatchDown), swatch)); + mi->show(); + menu->append(*mi); + + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Remove"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::RemoveSwatch), swatch)); + mi->show(); + menu->append(*mi); + } + menu->popup(event->button, event->time); + } else if (!_currentDesktop->selection->isEmpty()) { + _setSelectionSwatch(swatch, event->state & GDK_SHIFT_MASK); + } + } } +void SwatchesPanel::MoveDown(SPGroup* page) +{ + if (_currentDocument && page) { + SPObject* next = page->next; + while (next && !SP_IS_GROUP(next)) { + next = next->next; + } + if (next) { + Inkscape::XML::Node* repr = page->getRepr(); + repr->parent()->changeOrder(repr, next->getRepr()); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Down")); + } + } +} - -SwatchesPanel& SwatchesPanel::getInstance() +void SwatchesPanel::MoveUp(SPGroup* page) { - return *new SwatchesPanel(); + if (_currentDocument && page) { + SPObject* g = NULL; + SPObject* next = page->parent->firstChild(); + while (next && next != page) { + if (SP_IS_GROUP(next)) { + g = next; + } + next = next->next; + } + if (g) { + g = g->getPrev(); + Inkscape::XML::Node* repr = page->getRepr(); + repr->parent()->changeOrder(repr, g ? g->getRepr() : NULL); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Up")); + } + } } +void SwatchesPanel::Remove(SPGroup* page) +{ + if (_currentDocument && page) { + std::vector toMove; + for(SPObject* obj = page->firstChild(); obj != NULL; obj = obj->next) { + if (SP_IS_GRADIENT(obj)) { + SPGradient* grad = SP_GRADIENT(obj); + if (grad->isReferenced()) { + toMove.push_back(grad->getRepr()); + } + } + } + while (!toMove.empty()) { + Inkscape::XML::Node * repr = toMove.back(); + toMove.pop_back(); + repr->parent()->removeChild(repr); + _currentDocument->getDefs()->getRepr()->appendChild(repr); + SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(false); + } + page->deleteObject(false); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Remove Swatch Group")); + } +} -/** - * Constructor - */ -SwatchesPanel::SwatchesPanel(gchar const* prefsPath) : - Inkscape::UI::Widget::Panel("", prefsPath, SP_VERB_DIALOG_SWATCHES, "", true), - _holder(0), - _clear(0), - _remove(0), - _currentIndex(0), - _currentDesktop(0), - _currentDocument(0) +void SwatchesPanel::AddSelectedFill(SPGroup* page) { - Gtk::RadioMenuItem* hotItem = 0; - _holder = new PreviewHolder(); - _clear = new ColorItem( ege::PaintDef::CLEAR ); - _remove = new ColorItem( ege::PaintDef::NONE ); - if (docPalettes.empty()) { - SwatchPage *docPalette = new SwatchPage(); - - docPalette->_name = "Auto"; - docPalettes[0] = docPalette; - } - - loadEmUp(); - if ( !systemSwatchPages.empty() ) { - SwatchPage* first = 0; - int index = 0; - Glib::ustring targetName; - if ( !_prefs_path.empty() ) { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - targetName = prefs->getString(_prefs_path + "/palette"); - if (!targetName.empty()) { - if (targetName == "Auto") { - first = docPalettes[0]; - } else { - //index++; - std::vector pages = _getSwatchSets(); - for ( std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter ) { - if ( (*iter)->_name == targetName ) { - first = *iter; - break; + if (_currentDesktop && _currentDocument) { + SPItem* it = _currentDesktop->selection->singleItem(); + if (it) { + if (it->style->fill.isSet()) { + if (it->style->fill.isPaintserver()) { + SPPaintServer * server = it->style->getFillPaintServer(); + if (SP_IS_GRADIENT(server)) { + SPGradient *grad = SP_GRADIENT(server)->getVector(); + if (_noLink.get_active()) { + Inkscape::XML::Node * clone = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); + clone->setAttribute( "osb:paint", "gradient", 0 ); + if (page) { + page->appendChildRepr(clone); + } else { + _currentDocument->getDefs()->appendChildRepr(clone); + } + Inkscape::GC::release(clone); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); + } else if (grad->isSwatch()) { + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * clone = repr->duplicate(_currentDocument->getReprDoc()); + if (page) { + page->appendChildRepr(clone); + } else { + _currentDocument->getDefs()->appendChildRepr(clone); + } + SPGradient *newgrad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); + + sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(newgrad), SP_IS_RADIALGRADIENT(newgrad) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); + Inkscape::GC::release(clone); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); + } else { + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * drepr = page ? page->getRepr() : _currentDocument->getDefs()->getRepr(); + if (repr->parent() != drepr) { + repr->parent()->removeChild(repr); + drepr->appendChild(repr); + } + SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); } - index++; } + } else if (it->style->fill.isColor()) { + Inkscape::XML::Node *grad = _currentDocument->getReprDoc()->createElement("svg:linearGradient"); + grad->setAttribute( "osb:paint", "solid", 0 ); + addStop(grad, it->style->fill.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->fill_opacity.value), "0"); + if (page) { + page->appendChild(grad); + } else { + _currentDocument->getDefs()->appendChild(grad); + } + SPGradient* normalized = sp_gradient_ensure_vector_normalized(SP_GRADIENT(_currentDocument->getObjectByRepr(grad))); + Inkscape::GC::release(grad); + if (!_noLink.get_active()) { + sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); + } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Color Swatch")); } } } + } +} - if ( !first ) { - first = docPalettes[0]; - _currentIndex = 0; - } else { - _currentIndex = index; - } - - _rebuild(); - - Gtk::RadioMenuItem::Group groupOne; - - int i = 0; - std::vector swatchSets = _getSwatchSets(); - for ( std::vector::iterator it = swatchSets.begin(); it != swatchSets.end(); ++it) { - SwatchPage* curr = *it; - Gtk::RadioMenuItem* single = manage(new Gtk::RadioMenuItem(groupOne, curr->_name)); - if ( curr == first ) { - hotItem = single; +void SwatchesPanel::AddSelectedStroke(SPGroup* page) +{ + if (_currentDesktop && _currentDocument) { + SPItem* it = _currentDesktop->selection->singleItem(); + if (it) { + if (it->style->stroke.isSet()) { + if (it->style->stroke.isPaintserver()) { + SPPaintServer * server = it->style->getStrokePaintServer(); + if (SP_IS_GRADIENT(server)) { + SPGradient *grad = SP_GRADIENT(server)->getVector(); + if (_noLink.get_active()) { + Inkscape::XML::Node * clone = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); + clone->setAttribute( "osb:paint", "gradient", 0 ); + if (page) { + page->appendChildRepr(clone); + } else { + _currentDocument->getDefs()->appendChildRepr(clone); + } + Inkscape::GC::release(clone); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); + } else if (grad->isSwatch()) { + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * clone = repr->duplicate(_currentDocument->getReprDoc()); + if (page) { + page->appendChildRepr(clone); + } else { + _currentDocument->getDefs()->appendChildRepr(clone); + } + SPGradient *newgrad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); + + sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(newgrad), SP_IS_RADIALGRADIENT(newgrad) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); + Inkscape::GC::release(clone); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); + } else { + Inkscape::XML::Node * repr = grad->getRepr(); + Inkscape::XML::Node * drepr = page ? page->getRepr() : _currentDocument->getDefs()->getRepr(); + if (repr->parent() != drepr) { + repr->parent()->removeChild(repr); + drepr->appendChild(repr); + } + SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); + } + } + } else if (it->style->stroke.isColor()) { + Inkscape::XML::Node *grad = _currentDocument->getReprDoc()->createElement("svg:linearGradient"); + grad->setAttribute( "osb:paint", "solid", 0 ); + addStop(grad, it->style->stroke.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->stroke_opacity.value), "0"); + if (page) { + page->appendChild(grad); + } else { + _currentDocument->getDefs()->appendChild(grad); + } + SPGradient* normalized = sp_gradient_ensure_vector_normalized(SP_GRADIENT(_currentDocument->getObjectByRepr(grad))); + Inkscape::GC::release(grad); + if (!_noLink.get_active()) { + sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); + } + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Color Swatch")); + } } - _regItem( single, 3, i ); - - i++; } } +} - if (Glib::ustring(prefsPath) == "/dialogs/swatches") { - Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 - Gtk::Requisition sreq_natural; - get_preferred_size(sreq_natural, sreq); -#else - sreq = size_request(); -#endif - int minHeight = 60; - if (sreq.height < minHeight) { - set_size_request(70, minHeight); - } +void SwatchesPanel::_addBIButtonClicked(GdkEventButton* event) +{ + if (popUpImportMenu) { + popUpImportMenu->popup(event->button, event->time); } +} - _getContents()->pack_start(*_holder, Gtk::PACK_EXPAND_WIDGET); - _setTargetFillable(_holder); - - show_all_children(); - - restorePanelPrefs(); - if ( hotItem ) { - hotItem->set_active(); +void SwatchesPanel::NewGroupBI() +{ + if (_currentDocument) { + Inkscape::XML::Node * page = SwatchDocument->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (SwatchDocument->getObjectById(id)); + + page->setAttribute("id", id); + + SwatchDocument->getDefs()->appendChild(page); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } } -SwatchesPanel::~SwatchesPanel() +void SwatchesPanel::NewGroup() { - _trackDocument( this, 0 ); - - _documentConnection.disconnect(); - _selChanged.disconnect(); - - if ( _clear ) { - delete _clear; - } - if ( _remove ) { - delete _remove; - } - if ( _holder ) { - delete _holder; + if (_currentDocument) { + Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (_currentDocument->getObjectById(id)); + + page->setAttribute("id", id); + + _currentDocument->getDefs()->appendChild(page); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("New Swatch Group")); } } -void SwatchesPanel::setOrientation(SPAnchorType how) +void SwatchesPanel::SaveAs() { - // Must call the parent class or bad things might happen - Inkscape::UI::Widget::Panel::setOrientation( how ); - - if ( _holder ) - { - _holder->setOrientation(SP_ANCHOR_SOUTH); + if (_currentDocument) { + Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (_currentDocument->getObjectById(id)); + + page->setAttribute("id", id); + + std::vector toMove; + for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { + if (SP_IS_GRADIENT(it)) { + SPGradient* grad = SP_GRADIENT(it); + if (grad->isSwatch()) { + toMove.push_back(grad->getRepr()); + } + } + } + while (!toMove.empty()) { + Inkscape::XML::Node* repr = toMove.back(); + toMove.pop_back(); + repr->parent()->removeChild(repr); + page->appendChild(repr); + } + _currentDocument->getDefs()->appendChild(page); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Save Swatch Group")); } } -void SwatchesPanel::setDesktop( SPDesktop* desktop ) +void SwatchesPanel::Duplicate(SPGroup* oldpage) { - if ( desktop != _currentDesktop ) { - if ( _currentDesktop ) { - _documentConnection.disconnect(); - _selChanged.disconnect(); + if (_currentDocument) { + Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); + gchar *id=NULL; + do { + g_free(id); + id = g_strdup_printf("page%d", page_suffix++); + } while (_currentDocument->getObjectById(id)); + + page->setAttribute("id", id); + if (oldpage->label()) page->setAttribute("inkscape:label", oldpage->label()); + + for (SPObject *it = oldpage->firstChild(); it != NULL; it = it->next) { + if (SP_IS_GRADIENT(it)) { + SPGradient* grad = SP_GRADIENT(it); + if (grad->isSwatch()) { + Inkscape::XML::Node * copy = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); + page->appendChild(copy); + Inkscape::GC::release(copy); + } + } } + _currentDocument->getDefs()->appendChild(page); + DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Duplicate Swatch Group")); + } +} - _currentDesktop = desktop; +void SwatchesPanel::_lblClick(GdkEventButton* event, SPGroup* page) +{ + Gtk::Menu * menu = Gtk::manage(new Gtk::Menu()); + + Gtk::MenuItem* mi; + Glib::ustring us = Glib::ustring::compose("%1", page ? (page->label() ? page->label() : page->getId()) : _("[Base]")); + mi = Gtk::manage(new Gtk::MenuItem(page ? (page->label() ? page->label() : page->getId()) : _("[Base]"))); + Gtk::Label* namelbl = dynamic_cast(mi->get_child()); + if (namelbl) { + namelbl->set_markup(us); + } + mi->show(); + mi->set_sensitive(false); + menu->append(*mi); + + Gtk::SeparatorMenuItem* sep; + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Add Selected Fill"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::AddSelectedFill), page)); + mi->show(); + mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Add Selected Stroke"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::AddSelectedStroke), page)); + mi->show(); + mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); + menu->append(*mi); + + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + if (page) { + + mi = Gtk::manage(new Gtk::MenuItem(_("Move Up"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveUp), page)); + mi->show(); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Move Down"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveDown), page)); + mi->show(); + menu->append(*mi); + + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Duplicate"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::Duplicate), page)); + mi->show(); + menu->append(*mi); + + sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + menu->append(*sep); + + mi = Gtk::manage(new Gtk::MenuItem(_("Remove"))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::Remove), page)); + mi->show(); + menu->append(*mi); + } else { + mi = Gtk::manage(new Gtk::MenuItem(_("Create New Group"))); + mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NewGroup)); + mi->show(); + menu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Save As New Group"))); + mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::SaveAs)); + mi->show(); + menu->append(*mi); + } + + menu->popup(event->button, event->time); +} - if ( desktop ) { - _currentDesktop->selection->connectChanged( - sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); +void SwatchesPanel::_defsChanged() +{ + if (_storeDoc) { + _storeDoc->clear(); + } + + while (!docWatchers.empty()) { + Inkscape::XML::NodeObserver* w = docWatchers.back(); + docWatchers.pop_back(); + delete w; + } + + std::vector tableChildren = _insideTable.get_children(); + for (std::vector::iterator c = tableChildren.begin(); c != tableChildren.end(); ++c) { + _insideTable.remove(**c); + } + + if (_currentDocument) { + Gtk::EventBox* eb; + Gtk::Label* lbl; + if (_showlabels) { + eb = Gtk::manage(new Gtk::EventBox()); + eb->add_events(Gdk::BUTTON_PRESS_MASK); + eb->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_lblClick), NULL)); + + lbl = Gtk::manage(new Gtk::Label(_("[Base]"))); + eb->add(*lbl); + _insideTable.attach( *eb, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND , 5, 0); + } + Glib::ustring str1 = Glib::ustring(_("[None]")); + ColorItem* item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str1)); + //item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), NULL)); + item->setName(_("[None]")); + _insideTable.attach( *item, _showlabels ? 1 : 0, _showlabels ? 2 : 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + + unsigned int i = 1; + for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { + if (SP_IS_GRADIENT(it)) { + SPGradient* grad = SP_GRADIENT(it); + if (grad->hasStops()) { + + GradientWatcher* w = new GradientWatcher(this, grad); + docWatchers.push_back(w); + + if (grad->isSwatch()) { + + for (SPStop* s = grad->getFirstStop(); s != NULL; s = s->getNextStop()) { + StopWatcher* sw = new StopWatcher(this, s); + docWatchers.push_back(sw); + } - _currentDesktop->selection->connectModified( - sigc::hide(sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection)))); + if (_storeDoc) { + Gtk::TreeModel::iterator iter = _storeDoc->append(); + Gtk::TreeModel::Row row = *iter; + row[_modelDoc->_colObject] = grad; + row[_modelDoc->_colLabel] = grad->label() ? grad->label() : grad->getId(); + GdkPixbuf* pixb = sp_gradient_to_pixbuf (grad, 64, 18); + row[_modelDoc->_colPixbuf] = Glib::wrap(pixb); + } + Glib::ustring str2 = Glib::ustring(it->label() ? it->label() : it->getId()); + item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str2)); + item->setGradient(grad); + //item->colorItemHandleButtonPress().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); + item->setName(it->label() ? it->label() : it->getId()); + if (_showlabels) { + _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + } else { + _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + } - _currentDesktop->connectToolSubselectionChanged( - sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); + i++; + } + } + } + } + + for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { + if (SP_IS_GROUP(it)) { + SwatchWatcher* w = new SwatchWatcher(this, it, false); + docWatchers.push_back(w); + + if (_showlabels) { + i += 20 - (i % 20); + eb = Gtk::manage(new Gtk::EventBox()); + eb->add_events(Gdk::BUTTON_PRESS_MASK); + eb->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_lblClick), SP_GROUP(it))); + lbl = Gtk::manage(new Gtk::Label(it->label() ? it->label() : it->getId())); + eb->add(*lbl); + _insideTable.attach( *eb, 0, 1, i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND , 5, 0); + } + + Gtk::TreeModel::iterator rowiter; + + if (_storeDoc) { + rowiter = _storeDoc->append(); + Gtk::TreeModel::Row row = *rowiter; + row[_modelDoc->_colObject] = it; + row[_modelDoc->_colLabel] = it->label() ? it->label() : it->getId(); + } + + for (SPObject *cit = it->firstChild(); cit != NULL; cit = cit->next) { + if (SP_IS_GRADIENT(cit)) { + SPGradient* grad = SP_GRADIENT(cit); + + if (grad->hasStops()) { + + GradientWatcher* w = new GradientWatcher(this, grad); + docWatchers.push_back(w); + + if (grad->isSwatch()) { + + for (SPStop* s = grad->getFirstStop(); s != NULL; s = s->getNextStop()) { + StopWatcher* sw = new StopWatcher(this, s); + docWatchers.push_back(sw); + } - sigc::bound_mem_functor1 first = sigc::mem_fun(*this, &SwatchesPanel::_setDocument); - sigc::slot base2 = first; - sigc::slot slot2 = sigc::hide<0>( base2 ); - _documentConnection = desktop->connectDocumentReplaced( slot2 ); + if (_storeDoc && rowiter) { + Gtk::TreeModel::iterator iter = _storeDoc->append(rowiter->children()); + Gtk::TreeModel::Row row = *iter; + row[_modelDoc->_colObject] = grad; + row[_modelDoc->_colLabel] = grad->label() ? grad->label() : grad->getId(); + GdkPixbuf* pixb = sp_gradient_to_pixbuf (grad, 64, 18); + row[_modelDoc->_colPixbuf] = Glib::wrap(pixb); - _setDocument( desktop->doc() ); - } else { - _setDocument(0); + _editDoc.expand_to_path(_storeDoc->get_path(iter)); + } + Glib::ustring str3= Glib::ustring(cit->label() ? cit->label() : cit->getId()); + item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str3)); + item->setGradient(grad); + //item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); + item->setName(cit->label() ? cit->label() : cit->getId()); + if (_showlabels) { + _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + } else { + _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + } + i++; + } + } + } + } + } } } + + _scroller.show_all_children(); + _scroller.queue_draw(); } - -class DocTrack +Gtk::MenuItem* SwatchesPanel::_addSwatchGroup(SPGroup* group, Gtk::TreeModel::Row* parentRow) { -public: - DocTrack(SPDocument *doc, sigc::connection &docDestroy, sigc::connection &gradientRsrcChanged, sigc::connection &defsChanged, sigc::connection &defsModified) : - doc(doc), - updatePending(false), - lastGradientUpdate(0.0), - docDestroy(docDestroy), - gradientRsrcChanged(gradientRsrcChanged), - defsChanged(defsChanged), - defsModified(defsModified) - { - if ( !timer ) { - timer = new Glib::Timer(); - refreshTimer = Glib::signal_timeout().connect( sigc::ptr_fun(handleTimerCB), 33 ); + Gtk::MenuItem* mi = manage(new Gtk::MenuItem(group->label() ? group->label() : group->getId(),1)); + Gtk::Menu* m = NULL; + + Gtk::TreeModel::Row* r; + if (_store) { + Gtk::TreeModel::iterator iter = parentRow ? _store->append(parentRow->children()) : _store->append(); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = group; + row[_model->_colLabel] = group->label() ? group->label() : group->getId(); + + if (SP_IS_GROUP(group->parent) && SP_GROUP(group->parent)->expanded()) { + _editBI.expand_to_path(_store->get_path(iter)); } - timerRefCount++; + r = &row; + } else { + r = NULL; } - - ~DocTrack() + + bool hasswatches = false; + for (SPObject * obj = group->firstChild(); obj != NULL; obj = obj->next) { - timerRefCount--; - if ( timerRefCount <= 0 ) { - refreshTimer.disconnect(); - timerRefCount = 0; - if ( timer ) { - timer->stop(); - delete timer; - timer = 0; + if (SP_IS_GROUP(obj)) { + if (!m) { + m = manage(new Gtk::Menu()); + m->show_all(); + mi->set_submenu(*m); + + Gtk::MenuItem* basemi = manage(new Gtk::MenuItem(_("[All]"))); + basemi->show(); + Gtk::Label* namelbl = dynamic_cast(basemi->get_child()); + if (namelbl) { + namelbl->set_markup(_("[All]")); + } + basemi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, true)); + m->append(*basemi); + + Gtk::SeparatorMenuItem* sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + m->append(*sep); } + SwatchWatcher* w = new SwatchWatcher(this, obj, true); + rootWatchers.push_back(w); + m->append(*_addSwatchGroup(SP_GROUP(obj), r)); + } else if (SP_IS_GRADIENT(obj)) { + hasswatches = true; } - if (doc) { - docDestroy.disconnect(); - gradientRsrcChanged.disconnect(); - defsChanged.disconnect(); - defsModified.disconnect(); - doc = NULL; + } + if (!m) { + mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, false)); + } else if (hasswatches) { + Glib::ustring us = Glib::ustring::compose("%1", group->label() ? group->label() : group->getId()); + Gtk::MenuItem* basemi = manage(new Gtk::MenuItem(group->label() ? group->label() : group->getId())); + basemi->show(); + Gtk::Label* namelbl = dynamic_cast(basemi->get_child()); + if (namelbl) { + namelbl->set_markup(us); } + basemi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, false)); + m->prepend(*basemi); } + mi->show(); + return mi; +} - static bool handleTimerCB(); - - /** - * Checks if update should be queued or executed immediately. - * - * @return true if the update was queued and should not be immediately executed. - */ - static bool queueUpdateIfNeeded(SPDocument *doc); - - static Glib::Timer *timer; - static int timerRefCount; - static sigc::connection refreshTimer; - - SPDocument *doc; - bool updatePending; - double lastGradientUpdate; - sigc::connection docDestroy; - sigc::connection gradientRsrcChanged; - sigc::connection defsChanged; - sigc::connection defsModified; - -private: - DocTrack(DocTrack const &); // no copy - DocTrack &operator=(DocTrack const &); // no assign -}; - -Glib::Timer *DocTrack::timer = 0; -int DocTrack::timerRefCount = 0; -sigc::connection DocTrack::refreshTimer; +void SwatchesPanel::_swatchesChanged() +{ + while (!rootWatchers.empty()) { + Inkscape::XML::NodeObserver* w = rootWatchers.back(); + rootWatchers.pop_back(); + delete w; + } -static const double DOC_UPDATE_THREASHOLD = 0.090; + std::vector menuChildren = popUpMenu->get_children(); + for (std::vector::iterator c = menuChildren.begin(); c != menuChildren.end(); ++c) { + popUpMenu->remove(**c); + } + + if (_store) { + _store->clear(); + } + + Gtk::MenuItem* mi; + + for (SPObject * obj = SwatchDocument->getDefs()->firstChild(); obj != NULL; obj = obj->next) + { + if (SP_IS_GROUP(obj)) { + SwatchWatcher* w = new SwatchWatcher(this, obj, true); + rootWatchers.push_back(w); + popUpMenu->append(*_addSwatchGroup(SP_GROUP(obj), NULL)); + + } + } + Gtk::SeparatorMenuItem* sep = manage(new Gtk::SeparatorMenuItem()); + sep->show(); + popUpMenu->append(*sep); + + mi = manage(new Gtk::MenuItem(_("New Swatch Group..."),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &SwatchesPanel::NewGroup)); + mi->show(); + popUpMenu->append(*mi); + + mi = manage(new Gtk::MenuItem(_("Add Swatch File..."),1)); + mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), true, false)); + mi->show(); + popUpMenu->append(*mi); + + mi = manage(new Gtk::MenuItem(_("Import Swatch File..."),1)); + mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), true, true)); + mi->show(); + popUpMenu->append(*mi); +} -bool DocTrack::handleTimerCB() +void SwatchesPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback ) { - double now = timer->elapsed(); + bool set = false; + + if ( iconName ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + btn.set_relief(Gtk::RELIEF_NONE); + set = true; + } - std::vector needCallback; - for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it) { - DocTrack *track = *it; - if ( track->updatePending && ( (now - track->lastGradientUpdate) >= DOC_UPDATE_THREASHOLD) ) { - needCallback.push_back(track); + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !set && action && action->image ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, action->image ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + set = true; + } } } + + btn.set_tooltip_text (fallback); + + if ( !set ) { + btn.set_label( fallback ); + } +} - for (std::vector::iterator it = needCallback.begin(); it != needCallback.end(); ++it) { - DocTrack *track = *it; - if ( std::find(docTrackings.begin(), docTrackings.end(), track) != docTrackings.end() ) { // Just in case one gets deleted while we are looping - // Note: calling handleDefsModified will call queueUpdateIfNeeded and thus update the time and flag. - SwatchesPanel::handleDefsModified(track->doc); +void SwatchesPanel::_addButtonClicked(GdkEventButton* event) { + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3 || event->button == 1) ) { + if (popUpMenu) { + popUpMenu->popup(event->button, event->time); } } +} - return true; +void SwatchesPanel::NoLinkToggled() { + static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + Glib::ustring nolink = Glib::ustring::compose("%1/nolink", _prefs_path); + prefs->setBool(nolink, _noLink.get_active()); } -bool DocTrack::queueUpdateIfNeeded( SPDocument *doc ) +bool SwatchesPanel::_handleButtonEvent(GdkEventButton *event) { - bool deferProcessing = false; - for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it) { - DocTrack *track = *it; - if ( track->doc == doc ) { - double now = timer->elapsed(); - double elapsed = now - track->lastGradientUpdate; - - if ( elapsed < DOC_UPDATE_THREASHOLD ) { - deferProcessing = true; - track->updatePending = true; - } else { - track->lastGradientUpdate = now; - track->updatePending = false; - } + static unsigned doubleclick = 0; + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + doubleclick = 1; + } - break; + if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { + doubleclick = 0; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _editBI.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_columnBI) { + // Double click on the Layer name, enable editing + _text_rendererBI->property_editable() = true; + _editBI.set_cursor (path, *_name_columnBI, true); + grab_focus(); } } - return deferProcessing; + + return false; } -void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document ) +bool SwatchesPanel::_handleKeyEvent(GdkEventKey *event) { - SPDocument *oldDoc = NULL; - if (docPerPanel.find(panel) != docPerPanel.end()) { - oldDoc = docPerPanel[panel]; - if (!oldDoc) { - docPerPanel.erase(panel); // Should not be needed, but clean up just in case. - } - } - if (oldDoc != document) { - if (oldDoc) { - docPerPanel[panel] = NULL; - bool found = false; - for (std::map::iterator it = docPerPanel.begin(); (it != docPerPanel.end()) && !found; ++it) { - found = (it->second == document); - } - if (!found) { - for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it){ - if ((*it)->doc == oldDoc) { - delete *it; - docTrackings.erase(it); - break; - } + switch (get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_F2: { + Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); + if (iter && !_text_rendererBI->property_editable()) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj) { + Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); + // Edit the layer label + _text_rendererBI->property_editable() = true; + _editBI.set_cursor(*path, *_name_columnBI, true); + grab_focus(); + return true; } } } - - if (document) { - bool found = false; - for (std::map::iterator it = docPerPanel.begin(); (it != docPerPanel.end()) && !found; ++it) { - found = (it->second == document); - } - docPerPanel[panel] = document; - if (!found) { - sigc::connection conn0 = document->connectDestroy(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDocumentDestroy), document)); - sigc::connection conn1 = document->connectResourcesChanged( "gradient", sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleGradientsChange), document) ); - sigc::connection conn2 = document->getDefs()->connectRelease( sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document)) ); - sigc::connection conn3 = document->getDefs()->connectModified( sigc::hide(sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document))) ); - - DocTrack *dt = new DocTrack(document, conn0, conn1, conn2, conn3); - docTrackings.push_back(dt); - - if (docPalettes.find(document) == docPalettes.end()) { - SwatchPage *docPalette = new SwatchPage(); - docPalette->_name = "Auto"; - docPalettes[document] = docPalette; + case GDK_KEY_Delete: { + + Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); + if (iter) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj) { + obj->deleteObject(false); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } } + return true; } + break; } + return false; } -void SwatchesPanel::_setDocument( SPDocument *document ) +void SwatchesPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) { - if ( document != _currentDocument ) { - _trackDocument(this, document); - _currentDocument = document; - handleGradientsChange( document ); - } + Gtk::TreeModel::iterator iter = _editBI.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + _renameObject(row, new_text); + _text_rendererBI->property_editable() = false; } -static void recalcSwatchContents(SPDocument* doc, - boost::ptr_vector &tmpColors, - std::map &previewMappings, - std::map &gradMappings) +void SwatchesPanel::_handleEditingCancelled() { - std::vector newList; - - if (doc) { - const GSList *gradients = doc->getResourceList("gradient"); - for (const GSList *item = gradients; item; item = item->next) { - SPGradient* grad = SP_GRADIENT(item->data); - if ( grad->isSwatch() ) { - newList.push_back(SP_GRADIENT(item->data)); + _text_rendererBI->property_editable() = false; +} + +void SwatchesPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) +{ + if ( row && SwatchDocument) { + SPObject* obj = row[_model->_colObject]; + if ( obj ) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } } } +} - if ( !newList.empty() ) { - std::reverse(newList.begin(), newList.end()); - for ( std::vector::iterator it = newList.begin(); it != newList.end(); ++it ) - { - SPGradient* grad = *it; - - cairo_surface_t *preview = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, - PREVIEW_PIXBUF_WIDTH, VBLOCK); - cairo_t *ct = cairo_create(preview); - - Glib::ustring name( grad->getId() ); - ColorItem* item = new ColorItem( 0, 0, 0, name ); - - cairo_pattern_t *check = ink_cairo_pattern_create_checkerboard(); - cairo_pattern_t *gradient = sp_gradient_create_preview_pattern(grad, PREVIEW_PIXBUF_WIDTH); - cairo_set_source(ct, check); - cairo_paint(ct); - cairo_set_source(ct, gradient); - cairo_paint(ct); - - cairo_destroy(ct); - cairo_pattern_destroy(gradient); - cairo_pattern_destroy(check); - - cairo_pattern_t *prevpat = cairo_pattern_create_for_surface(preview); - cairo_surface_destroy(preview); +void SwatchesPanel::_setCollapsed(SPGroup * group) +{ + group->setExpanded(false); + group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + for (SPObject *iter = group->children; iter != NULL; iter = iter->next) + { + if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); + } +} - previewMappings[item] = prevpat; +void SwatchesPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) +{ + Gtk::TreeModel::Row row = *iter; - tmpColors.push_back(item); - gradMappings[item] = grad; + SPObject* obj = row[_model->_colObject]; + if (obj && SP_IS_GROUP(obj)) + { + if (isexpanded) + { + SP_GROUP(obj)->setExpanded(isexpanded); + obj->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } + else + { + _setCollapsed(SP_GROUP(obj)); } } + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } -void SwatchesPanel::handleDocumentDestroy(SPDocument *document) +void SwatchesPanel::_deleteButtonClicked() { - if (document) { - for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it){ - if ((*it)->doc == document) { - delete *it; - docTrackings.erase(it); - break; - } + Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); + if (iter) { + Gtk::TreeModel::Row row = *iter; + SPObject* obj = row[_model->_colObject]; + if (obj) { + obj->deleteObject(false); + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } + } +} - if (docPalettes.find(document) != docPalettes.end()) { - docPalettes.erase(document); +bool SwatchesPanel::_handleButtonEventDoc(GdkEventButton* event) +{ + static unsigned doubleclick = 0; + + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { + // TODO - fix to a better is-popup function + Gtk::TreeModel::Path path; + int x = static_cast(event->x); + int y = static_cast(event->y); + if ( _editDoc.get_path_at_pos( x, y, path ) ) { + Gtk::TreeModel::Children::iterator iter = _editDoc.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_modelDoc->_colObject]; + if (SP_IS_GRADIENT(obj)) { + _swatchClicked(event, SP_GRADIENT(obj)); + } else if (SP_IS_GROUP(obj)) { + _lblClick(event, SP_GROUP(obj)); + } else { + _lblClick(event, NULL); + } + } else { + _lblClick(event, NULL); } + } + + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + doubleclick = 1; + } - for (std::map::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { - if (it->second == document) { - SwatchesPanel* swp = it->first; - std::vector pages = swp->_getSwatchSets(); - if ((swp->_currentIndex >= static_cast(pages.size())) && (pages.size() > 0)) - { - swp->_setSelectedIndex(swp->_getSwatchSets().size() - 1); - } - swp->_rebuild(); - docPerPanel.erase(it); - break; - } + if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { + doubleclick = 0; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _editDoc.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_columnDoc) { + // Double click on the Layer name, enable editing + _text_rendererDoc->property_editable() = true; + _editDoc.set_cursor (path, *_name_columnDoc, true); + grab_focus(); } } + + return false; } -void SwatchesPanel::handleGradientsChange(SPDocument *document) +void SwatchesPanel::_deleteButtonClickedDoc() { - SwatchPage *docPalette = (docPalettes.find(document) != docPalettes.end()) ? docPalettes[document] : 0; - if (docPalette) { - boost::ptr_vector tmpColors; - std::map tmpPrevs; - std::map tmpGrads; - recalcSwatchContents(document, tmpColors, tmpPrevs, tmpGrads); - - for (std::map::iterator it = tmpPrevs.begin(); it != tmpPrevs.end(); ++it) { - it->first->setPattern(it->second); - cairo_pattern_destroy(it->second); + Gtk::TreeModel::iterator iter = _editDoc.get_selection()->get_selected(); + if (iter) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_modelDoc->_colObject]; + if (SP_IS_GRADIENT(obj)) { + RemoveSwatch(SP_GRADIENT(obj)); + } else if (SP_IS_GROUP(obj)) { + Remove(SP_GROUP(obj)); } + } +} - for (std::map::iterator it = tmpGrads.begin(); it != tmpGrads.end(); ++it) { - it->first->setGradient(it->second); - } - - docPalette->_colors.swap(tmpColors); - - // Figure out which SwatchesPanel instances are affected and update them. - - for (std::map::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { - if (it->second == document) { - SwatchesPanel* swp = it->first; - std::vector pages = swp->_getSwatchSets(); - SwatchPage* curr = pages[swp->_currentIndex]; - if (curr == docPalette) { - swp->_rebuild(); +bool SwatchesPanel::_handleKeyEventDoc(GdkEventKey *event) +{ + switch (get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_F2: { + Gtk::TreeModel::iterator iter = _editDoc.get_selection()->get_selected(); + if (iter && !_text_rendererDoc->property_editable()) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_modelDoc->_colObject]; + if (obj) { + Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); + // Edit the layer label + _text_rendererDoc->property_editable() = true; + _editDoc.set_cursor(*path, *_name_columnDoc, true); + grab_focus(); + return true; } } } + case GDK_KEY_Delete: { + + _deleteButtonClickedDoc(); + return true; + } + break; } + return false; } -void SwatchesPanel::handleDefsModified(SPDocument *document) +void SwatchesPanel::_renameObjectDoc(Gtk::TreeModel::Row row, const Glib::ustring& name) { - SwatchPage *docPalette = (docPalettes.find(document) != docPalettes.end()) ? docPalettes[document] : 0; - if (docPalette && !DocTrack::queueUpdateIfNeeded(document) ) { - boost::ptr_vector tmpColors; - std::map tmpPrevs; - std::map tmpGrads; - recalcSwatchContents(document, tmpColors, tmpPrevs, tmpGrads); - - if ( tmpColors.size() != docPalette->_colors.size() ) { - handleGradientsChange(document); - } else { - int cap = std::min(docPalette->_colors.size(), tmpColors.size()); - for (int i = 0; i < cap; i++) { - ColorItem *newColor = &tmpColors[i]; - ColorItem *oldColor = &docPalette->_colors[i]; - if ( (newColor->def.getType() != oldColor->def.getType()) || - (newColor->def.getR() != oldColor->def.getR()) || - (newColor->def.getG() != oldColor->def.getG()) || - (newColor->def.getB() != oldColor->def.getB()) ) { - oldColor->def.setRGB(newColor->def.getR(), newColor->def.getG(), newColor->def.getB()); - } - if (tmpGrads.find(newColor) != tmpGrads.end()) { - oldColor->setGradient(tmpGrads[newColor]); - } - if ( tmpPrevs.find(newColor) != tmpPrevs.end() ) { - oldColor->setPattern(tmpPrevs[newColor]); - } + if ( row && SwatchDocument) { + SPObject* obj = row[_modelDoc->_colObject]; + if ( obj ) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); } } - - for (std::map::iterator it = tmpPrevs.begin(); it != tmpPrevs.end(); ++it) { - cairo_pattern_destroy(it->second); - } } } +void SwatchesPanel::_handleEditedDoc(const Glib::ustring& path, const Glib::ustring& new_text) +{ + Gtk::TreeModel::iterator iter = _editDoc.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + _renameObjectDoc(row, new_text); + _text_rendererDoc->property_editable() = false; +} + +void SwatchesPanel::_handleEditingCancelledDoc() +{ + _text_rendererDoc->property_editable() = false; +} -std::vector SwatchesPanel::_getSwatchSets() const +/* + * Drap and drop within the tree + * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer + */ +bool SwatchesPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) { - std::vector tmp; - if (docPalettes.find(_currentDocument) != docPalettes.end()) { - tmp.push_back(docPalettes[_currentDocument]); + int cell_x = 0, cell_y = 0; + Gtk::TreeModel::Path target_path; + Gtk::TreeView::Column *target_column; + + bool _dnd_top = false; + _dnd_into = false; + _dnd_target = SwatchDocument->getDefs()->lastChild(); + Gtk::TreeModel::iterator itersel = _editBI.get_selection()->get_selected(); + if (!itersel) { + return true; } + Gtk::TreeModel::Row rowsel = *itersel; + _dnd_source = rowsel[_model->_colObject]; - tmp.insert(tmp.end(), userSwatchPages.begin(), userSwatchPages.end()); - tmp.insert(tmp.end(), systemSwatchPages.begin(), systemSwatchPages.end()); + if (!_dnd_source) { + return true; + } + + if (_editBI.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { + // Are we before, inside or after the drop layer + Gdk::Rectangle rect; + _editBI.get_background_area (target_path, *target_column, rect); + int cell_height = rect.get_height(); + _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); + if (cell_y < (int)(cell_height * 1/3)) { + Gtk::TreeModel::Path next_path = target_path; + if (next_path.prev()) { + target_path = next_path; + } else { + // Dragging to the "end" + Gtk::TreeModel::Path up_path = target_path; + up_path.up(); + if (_store->iter_is_valid(_store->get_iter(up_path))) { + // Drop into parent + target_path = up_path; + _dnd_into = true; + } else { + _dnd_top = true; + // Drop into the top level + _dnd_target = NULL; + } + } + } + if (!_dnd_top) { + Gtk::TreeModel::iterator iter = _store->get_iter(target_path); + if (_store->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_model->_colObject]; + if (obj) { + _dnd_target = obj; + } + } + } + } + + if (_dnd_source != _dnd_target) { + + Inkscape::XML::Node *target_ref = _dnd_target ? _dnd_target->getRepr() : NULL; + Inkscape::XML::Node *our_ref = _dnd_source->getRepr(); + + if (target_ref != our_ref) { + if (!target_ref) { + target_ref = SwatchDocument->getDefs()->getRepr(); + if (target_ref != our_ref->parent()) { + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else { + our_ref->parent()->changeOrder(our_ref, NULL); + } + } else if (_dnd_into) { + // Move this inside of the target at the end + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else if (target_ref->parent() != our_ref->parent()) { + // Change in parent, need to remove and add + our_ref->parent()->removeChild(our_ref); + target_ref->parent()->addChild(our_ref, target_ref); + } else { + // Same parent, just move + our_ref->parent()->changeOrder(our_ref, target_ref); + } + } + sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); + } - return tmp; + return true; } -void SwatchesPanel::_updateFromSelection() +/* + * Drap and drop within the tree + * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer + */ +bool SwatchesPanel::_handleDragDropDoc(const Glib::RefPtr& context, int x, int y, guint time) { - SwatchPage *docPalette = (docPalettes.find(_currentDocument) != docPalettes.end()) ? docPalettes[_currentDocument] : 0; - if ( docPalette ) { - Glib::ustring fillId; - Glib::ustring strokeId; - - SPStyle *tmpStyle = sp_style_new( sp_desktop_document(_currentDesktop) ); - int result = sp_desktop_query_style( _currentDesktop, tmpStyle, QUERY_STYLE_PROPERTY_FILL ); - switch (result) { - case QUERY_STYLE_SINGLE: - case QUERY_STYLE_MULTIPLE_AVERAGED: - case QUERY_STYLE_MULTIPLE_SAME: - { - if (tmpStyle->fill.set && tmpStyle->fill.isPaintserver()) { - SPPaintServer* server = tmpStyle->getFillPaintServer(); - if ( SP_IS_GRADIENT(server) ) { - SPGradient* target = 0; - SPGradient* grad = SP_GRADIENT(server); - - if ( grad->isSwatch() ) { - target = grad; - } else if ( grad->ref ) { - SPGradient *tmp = grad->ref->getObject(); - if ( tmp && tmp->isSwatch() ) { - target = tmp; - } - } - if ( target ) { - //XML Tree being used directly here while it shouldn't be - gchar const* id = target->getRepr()->attribute("id"); - if ( id ) { - fillId = id; - } - } - } + int cell_x = 0, cell_y = 0; + Gtk::TreeModel::Path target_path; + Gtk::TreeView::Column *target_column; + + bool _dnd_top = false; + _dnd_into = false; + _dnd_target = _currentDocument->getDefs()->lastChild(); + Gtk::TreeModel::iterator itersel = _editDoc.get_selection()->get_selected(); + if (!itersel) { + return true; + } + Gtk::TreeModel::Row rowsel = *itersel; + _dnd_source = rowsel[_modelDoc->_colObject]; + + if (!_dnd_source) { + return true; + } + + if (_editDoc.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { + // Are we before, inside or after the drop layer + Gdk::Rectangle rect; + _editDoc.get_background_area (target_path, *target_column, rect); + int cell_height = rect.get_height(); + _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); + if (cell_y < (int)(cell_height * 1/3)) { + Gtk::TreeModel::Path next_path = target_path; + if (next_path.prev()) { + target_path = next_path; + } else { + // Dragging to the "end" + Gtk::TreeModel::Path up_path = target_path; + up_path.up(); + if (_storeDoc->iter_is_valid(_storeDoc->get_iter(up_path))) { + // Drop into parent + target_path = up_path; + _dnd_into = true; + } else { + _dnd_top = true; + // Drop into the top level + _dnd_target = NULL; } - break; } } - - result = sp_desktop_query_style( _currentDesktop, tmpStyle, QUERY_STYLE_PROPERTY_STROKE ); - switch (result) { - case QUERY_STYLE_SINGLE: - case QUERY_STYLE_MULTIPLE_AVERAGED: - case QUERY_STYLE_MULTIPLE_SAME: - { - if (tmpStyle->stroke.set && tmpStyle->stroke.isPaintserver()) { - SPPaintServer* server = tmpStyle->getStrokePaintServer(); - if ( SP_IS_GRADIENT(server) ) { - SPGradient* target = 0; - SPGradient* grad = SP_GRADIENT(server); - if ( grad->isSwatch() ) { - target = grad; - } else if ( grad->ref ) { - SPGradient *tmp = grad->ref->getObject(); - if ( tmp && tmp->isSwatch() ) { - target = tmp; - } - } - if ( target ) { - //XML Tree being used directly here while it shouldn't be - gchar const* id = target->getRepr()->attribute("id"); - if ( id ) { - strokeId = id; - } + if (!_dnd_top) { + Gtk::TreeModel::iterator iter = _storeDoc->get_iter(target_path); + if (_storeDoc->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_modelDoc->_colObject]; + if (obj) { + _dnd_target = obj; + if (SP_IS_GRADIENT(obj)) { + _dnd_into = false; + if (SP_IS_GROUP(_dnd_source)) { + _dnd_target = obj->parent; } + } else if (SP_IS_GROUP(_dnd_source)) { + _dnd_into = false; } } - break; } } - sp_style_unref(tmpStyle); - - for ( boost::ptr_vector::iterator it = docPalette->_colors.begin(); it != docPalette->_colors.end(); ++it ) { - ColorItem* item = &*it; - bool isFill = (fillId == item->def.descr); - bool isStroke = (strokeId == item->def.descr); - item->setState( isFill, isStroke ); + } + + if (_dnd_source != _dnd_target) { + + Inkscape::XML::Node *target_ref = _dnd_target ? _dnd_target->getRepr() : NULL; + Inkscape::XML::Node *our_ref = _dnd_source->getRepr(); + + if (target_ref != our_ref) { + if (!target_ref) { + target_ref = _currentDocument->getDefs()->getRepr(); + if (target_ref != our_ref->parent()) { + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else { + our_ref->parent()->changeOrder(our_ref, NULL); + } + } else if (_dnd_into) { + // Move this inside of the target at the end + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else if (target_ref->parent() != our_ref->parent()) { + // Change in parent, need to remove and add + our_ref->parent()->removeChild(our_ref); + target_ref->parent()->addChild(our_ref, target_ref); + } else { + // Same parent, just move + our_ref->parent()->changeOrder(our_ref, target_ref); + } } + DocumentUndo::done( _currentDocument , SP_VERB_DIALOG_SWATCHES, + _("Moved Swatches")); } + + return true; } -void SwatchesPanel::_handleAction( int setId, int itemId ) + +/** + * Constructor + */ +SwatchesPanel::SwatchesPanel(gchar const* prefsPath, bool showLabels) : + Inkscape::UI::Widget::Panel("", prefsPath, SP_VERB_DIALOG_SWATCHES, ""), + _scroller(), + _insideTable(1, 2), + _insideV(), + _insideH(), + _buttonsRow(), + _outsideV(), + _noLink(_("Don't Link")), + _showlabels(showLabels), + _store(0), + _scrollerBI(), + _editBI(), + _buttonsRowBI(), + _editBIV(), + _storeDoc(0), + _scrollerDoc(), + _editDoc(), + _buttonsRowDoc(), + _editDocV(), + _notebook(), + rootWatcher(0), + docWatcher(0), + _currentDesktop(0), + _currentDocument(0) { - switch( setId ) { - case 3: + _insideH.pack_start(_insideTable, Gtk::PACK_SHRINK); + if (_showlabels) { + _insideV.pack_start(_insideH, Gtk::PACK_SHRINK); + _scroller.add(_insideV); + } else { + _scroller.property_height_request() = 45; + _scroller.add(_insideH); + } + + popUpMenu = manage( new Gtk::Menu() ); + popUpMenu->show_all_children(); + + Gtk::Button* btn = manage( new Gtk::Button() ); + _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Add Swatch") ); + btn->signal_button_press_event().connect_notify( sigc::mem_fun(*this, &SwatchesPanel::_addButtonClicked) ); + _buttonsRow.pack_start(*btn, Gtk::PACK_SHRINK); + +// btn = manage( new Gtk::Button() ); +// _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_DISCONNECT, C_("Unlink", "New") ); +// _buttonsRow.pack_end(*btn, Gtk::PACK_SHRINK); + + static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + Glib::ustring nolink = Glib::ustring::compose("%1/nolink", prefsPath); + _noLink.set_tooltip_text(_("Don't link swatches")); + _noLink.set_active(prefs->getBool(nolink, false)); + _noLink.signal_toggled().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NoLinkToggled)); + _buttonsRow.pack_end(_noLink, Gtk::PACK_SHRINK); + + _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scroller.set_shadow_type(Gtk::SHADOW_NONE); + + if (_showlabels) { + _outsideV.pack_end(_buttonsRow, Gtk::PACK_SHRINK); + _outsideV.pack_end(_scroller, Gtk::PACK_EXPAND_WIDGET); + + _notebook.append_page(_outsideV, "Use"); + + { + ModelColumnsDoc *zoop = new ModelColumnsDoc(); + _modelDoc = zoop; + + _storeDoc = Gtk::TreeStore::create( *zoop ); + + _editDoc.set_model( _storeDoc ); + _editDoc.set_headers_visible(false); + _editDoc.set_reorderable(true); + _editDoc.enable_model_drag_dest (Gdk::ACTION_MOVE); + + Gtk::Button* btn = manage( new Gtk::Button() ); + _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Import Swatch") ); + btn->signal_button_press_event().connect_notify( sigc::mem_fun(*this, &SwatchesPanel::_addButtonClicked)); + _buttonsRowDoc.pack_start(*btn, Gtk::PACK_SHRINK); + + btn = manage( new Gtk::Button() ); + _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_DELETE, GTK_STOCK_DELETE, _("Delete Swatch") ); + btn->signal_button_press_event().connect_notify( sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_deleteButtonClickedDoc))); + _buttonsRowDoc.pack_start(*btn, Gtk::PACK_SHRINK); + + _pixbuf_rendererDoc = manage(new Gtk::CellRendererPixbuf()); + int pixbufColNum = _editDoc.append_column("Pixbuf", *_pixbuf_rendererDoc) - 1; + _pixbuf_columnDoc = _editDoc.get_column(pixbufColNum); + _pixbuf_columnDoc->add_attribute(_pixbuf_rendererDoc->property_pixbuf(), _modelDoc->_colPixbuf); + + _text_rendererDoc = manage(new Gtk::CellRendererText()); + int nameColNum = _editDoc.append_column("Name", *_text_rendererDoc) - 1; + _name_columnDoc = _editDoc.get_column(nameColNum); + _name_columnDoc->add_attribute(_text_rendererDoc->property_text(), _modelDoc->_colLabel); + + _text_rendererDoc->signal_edited().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditedDoc) ); + _text_rendererDoc->signal_editing_canceled().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditingCancelledDoc) ); + + _editDoc.set_expander_column( *_editDoc.get_column(nameColNum) ); + + _editDoc.signal_button_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEventDoc), false ); + _editDoc.signal_button_release_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEventDoc), false ); + _editDoc.signal_key_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleKeyEventDoc), false ); + + _editDoc.signal_drag_drop().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleDragDropDoc), false); + + _scrollerDoc.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scrollerDoc.set_shadow_type(Gtk::SHADOW_IN); + _scrollerDoc.add(_editDoc); + + _editDocV.pack_start(_scrollerDoc, Gtk::PACK_EXPAND_WIDGET); + _editDocV.pack_end(_buttonsRowDoc, Gtk::PACK_SHRINK); + + _notebook.append_page(_editDocV, "Edit"); + } + { - _setSelectedIndex(itemId); + popUpImportMenu = Gtk::manage(new Gtk::Menu()); + + Gtk::MenuItem* mi = Gtk::manage(new Gtk::MenuItem(_("New Swatch Group..."))); + mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NewGroupBI)); + mi->show(); + popUpImportMenu->append(*mi); + + mi = Gtk::manage(new Gtk::MenuItem(_("Import Swatch File..."))); + mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), false, true)); + mi->show(); + popUpImportMenu->append(*mi); + + ModelColumns *zoop = new ModelColumns(); + _model = zoop; + + _store = Gtk::TreeStore::create( *zoop ); + + _editBI.set_model( _store ); + _editBI.set_headers_visible(false); + _editBI.set_reorderable(true); + _editBI.enable_model_drag_dest (Gdk::ACTION_MOVE); + + Gtk::Button* btn = manage( new Gtk::Button() ); + _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Import Swatch") ); + btn->signal_button_press_event().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::_addBIButtonClicked)); + _buttonsRowBI.pack_start(*btn, Gtk::PACK_SHRINK); + + btn = manage( new Gtk::Button() ); + _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_DELETE, GTK_STOCK_DELETE, _("Delete Swatch") ); + btn->signal_button_press_event().connect_notify( sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_deleteButtonClicked))); + _buttonsRowBI.pack_start(*btn, Gtk::PACK_SHRINK); + + _text_rendererBI = manage(new Gtk::CellRendererText()); + int nameColNum = _editBI.append_column("Name", *_text_rendererBI) - 1; + _name_columnBI = _editBI.get_column(nameColNum); + _name_columnBI->add_attribute(_text_rendererBI->property_text(), _model->_colLabel); + + _text_rendererBI->signal_edited().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEdited) ); + _text_rendererBI->signal_editing_canceled().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditingCancelled) ); + + _editBI.set_expander_column( *_editBI.get_column(nameColNum) ); + + _editBI.signal_button_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEvent), false ); + _editBI.signal_button_release_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEvent), false ); + _editBI.signal_key_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleKeyEvent), false ); + + _editBI.signal_drag_drop().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleDragDrop), false); + _editBI.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setExpanded), false)); + _editBI.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setExpanded), true)); + + _scrollerBI.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scrollerBI.set_shadow_type(Gtk::SHADOW_IN); + _scrollerBI.add(_editBI); + + _editBIV.pack_start(_scrollerBI, Gtk::PACK_EXPAND_WIDGET); + _editBIV.pack_end(_buttonsRowBI, Gtk::PACK_SHRINK); + + _notebook.append_page(_editBIV, "Edit Built-In"); } - break; + + _getContents()->pack_end(_notebook, Gtk::PACK_EXPAND_WIDGET); + } else { + //_outsideV.pack_end(_scroller, Gtk::PACK_SHRINK); + _buttonsRow.pack_end(_scroller, Gtk::PACK_EXPAND_WIDGET); + //_getContents()->pack_end(_outsideV, Gtk::PACK_SHRINK); + _getContents()->pack_end(_buttonsRow, Gtk::PACK_SHRINK); } + + loadPalletFile(); + + rootWatcher = new SwatchWatcher(this, SwatchDocument->getDefs(), true); + SwatchDocument->getDefs()->getRepr()->addObserver(*rootWatcher); + _swatchesChanged(); } -void SwatchesPanel::_setSelectedIndex( int index ) +SwatchesPanel::~SwatchesPanel() { - std::vector pages = _getSwatchSets(); - if ( index >= 0 && index < static_cast(pages.size()) ) { - _currentIndex = index; + if (rootWatcher) { + rootWatcher->_repr->removeObserver(*rootWatcher); + delete rootWatcher; + } + + if (docWatcher) { + docWatcher->_repr->removeObserver(*docWatcher); + delete docWatcher; + } + + _documentConnection.disconnect(); + _selChanged.disconnect(); +} - if ( !_prefs_path.empty() ) { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setString(_prefs_path + "/palette", pages[_currentIndex]->_name); +void SwatchesPanel::setDesktop( SPDesktop* desktop ) +{ + Inkscape::UI::Widget::Panel::setDesktop(desktop); + if ( desktop != _currentDesktop ) { + if ( _currentDesktop ) { + _documentConnection.disconnect(); + _selChanged.disconnect(); } - _rebuild(); + _currentDesktop = desktop; + + if ( desktop ) { + //_currentDesktop->selection->connectChanged(sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); + + _documentConnection = desktop->connectDocumentReplaced(sigc::mem_fun(*this, &SwatchesPanel::_setDocument)); + + _setDocument( desktop, desktop->doc() ); + } else { + _setDocument(0, 0); + } } } -void SwatchesPanel::_rebuild() +void SwatchesPanel::_setDocument( SPDesktop* desktop, SPDocument *document ) { - std::vector pages = _getSwatchSets(); - if (_currentIndex < static_cast(pages.size())) { - SwatchPage* curr = pages[_currentIndex]; - _holder->clear(); - - if ( curr->_prefWidth > 0 ) { - _holder->setColumnPref( curr->_prefWidth ); + if ( document != _currentDocument ) { + if (docWatcher) { + docWatcher->_repr->removeObserver(*docWatcher); + delete docWatcher; + docWatcher = NULL; } - _holder->freezeUpdates(); - // TODO restore once 'clear' works _holder->addPreview(_clear); - _holder->addPreview(_remove); - for ( boost::ptr_vector::iterator it = curr->_colors.begin(); it != curr->_colors.end(); ++it) { - _holder->addPreview(&*it); + _currentDocument = document; + + if (_currentDocument) { + docWatcher = new SwatchWatcher(this, _currentDocument->getDefs(), false); + _currentDocument->getDefs()->getRepr()->addObserver(*docWatcher); } - _holder->thawUpdates(); + _defsChanged(); } } @@ -1241,6 +2323,48 @@ void SwatchesPanel::_rebuild() } //namespace UI } //namespace Inkscape +//should be okay to add this here +guint get_group0_keyval(GdkEventKey *event) { + guint keyval = 0; + gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( + gdk_display_get_default()), event->hardware_keycode, + (GdkModifierType) event->state, 0 /*event->key.group*/, &keyval, + NULL, NULL, NULL); + return keyval; +} + +void +sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill) +{ + + bool intercepted = false; + + if (gradient->isSolid()) { + ColorRGBA color(gradient->getFirstStop()->getEffectiveColor().toRGBA32(gradient->getFirstStop()->opacity)); + guint32 rgba = SP_RGBA32_F_COMPOSE(color[0], color[1], color[2], color[3]); + gchar b[64]; + sp_svg_write_color(b, sizeof(b), rgba); + SPCSSAttr *css = sp_repr_css_attr_new(); + if (fill) { + sp_repr_css_set_property(css, "fill", b); + Inkscape::CSSOStringStream osalpha; + osalpha << color[3]; + sp_repr_css_set_property(css, "fill-opacity", osalpha.str().c_str()); + } else { + sp_repr_css_set_property(css, "stroke", b); + Inkscape::CSSOStringStream osalpha; + osalpha << color[3]; + sp_repr_css_set_property(css, "stroke-opacity", osalpha.str().c_str()); + } + intercepted = desktop->_set_style_signal.emit(css); + } + + if (!intercepted) { + for (const GSList *it = desktop->selection->itemList(); it != NULL; it = it->next) { + sp_item_set_gradient(SP_ITEM(it->data), gradient, SP_IS_RADIALGRADIENT(gradient) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, !fill ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); + } + } +} /* Local Variables: diff --git a/src/ui/dialog/swatches.h b/src/ui/dialog/swatches.h index 3abb81d98..cb8f87962 100644 --- a/src/ui/dialog/swatches.h +++ b/src/ui/dialog/swatches.h @@ -12,66 +12,161 @@ #include "ui/widget/panel.h" #include "enums.h" +#include "sp-object.h" +#include "sp-item-group.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "sp-gradient.h" +#include "xml/node-observer.h" namespace Inkscape { namespace UI { -class PreviewHolder; - namespace Dialogs { -class ColorItem; -class SwatchPage; -class DocTrack; - /** * A panel that displays paint swatches. */ class SwatchesPanel : public Inkscape::UI::Widget::Panel { public: - SwatchesPanel(gchar const* prefsPath = "/dialogs/swatches"); + SwatchesPanel(gchar const* prefsPath = "/dialogs/swatches", bool showLabels = true); virtual ~SwatchesPanel(); - + static SwatchesPanel& getInstance(); - virtual void setOrientation(SPAnchorType how); - virtual void setDesktop( SPDesktop* desktop ); virtual SPDesktop* getDesktop() {return _currentDesktop;} - virtual int getSelectedIndex() {return _currentIndex;} // temporary - protected: - static void handleDocumentDestroy(SPDocument *document); - static void handleGradientsChange(SPDocument *document); - - virtual void _updateFromSelection(); - virtual void _handleAction( int setId, int itemId ); - virtual void _setDocument( SPDocument *document ); - virtual void _setSelectedIndex( int index ); - virtual void _rebuild(); - virtual std::vector _getSwatchSets() const; + virtual void _setDocument( SPDesktop* desktop, SPDocument *document ); private: + class ModelColumns; + class ModelColumnsDoc; + + class StopWatcher; + class GradientWatcher; + class SwatchWatcher; + SwatchesPanel(SwatchesPanel const &); // no copy SwatchesPanel &operator=(SwatchesPanel const &); // no assign + + void _styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback ); + + void _setSelectionSwatch(SPGradient* swatchItem, bool isStroke); + + void NoLinkToggled(); + void NewGroup(); + void NewGroupBI(); + void _addBIButtonClicked(GdkEventButton* event); + void Duplicate(SPGroup* page); + void SaveAs(); + void AddSelectedFill(SPGroup* page); + void AddSelectedStroke(SPGroup* page); + void MoveUp(SPGroup* page); + void MoveDown(SPGroup* page); + void Remove(SPGroup* page); + + void SetSelectedFill(SPGradient* swatch); + void SetSelectedStroke(SPGradient* swatch); + void MoveSwatchUp(SPGradient* swatch); + void MoveSwatchDown(SPGradient* swatch); + void RemoveSwatch(SPGradient* swatch); + + void _lblClick(GdkEventButton* event, SPGroup* page); + void _addSwatchButtonClicked(SPGroup* swatch, bool recurse); + void _defsChanged(); + void _importButtonClicked(bool addToDoc, bool addToBI); + void _deleteButtonClicked(); + void _addButtonClicked(GdkEventButton* event); + void _swatchClicked(GdkEventButton* event, SPGradient* swatchItem); + + Gtk::MenuItem* _addSwatchGroup(SPGroup* group, Gtk::TreeModel::Row* parentRow); + void _swatchesChanged(); + + bool _handleButtonEvent(GdkEventButton *event); + bool _handleKeyEvent(GdkEventKey *event); + + void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); + void _handleEditingCancelled(); + void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); + + void _setCollapsed(SPGroup * group); + void _setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded); + + void _deleteButtonClickedDoc(); + bool _handleButtonEventDoc(GdkEventButton* event); + bool _handleKeyEventDoc(GdkEventKey *event); + + void _handleEditedDoc(const Glib::ustring& path, const Glib::ustring& new_text); + void _handleEditingCancelledDoc(); + void _renameObjectDoc(Gtk::TreeModel::Row row, const Glib::ustring& name); + + bool _handleDragDropDoc(const Glib::RefPtr& context, int x, int y, guint time); + bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); + + Gtk::Menu *popUpMenu; + Gtk::Menu *popUpImportMenu; + + Gtk::ScrolledWindow _scroller; + Gtk::Table _insideTable; + Gtk::VBox _insideV; + Gtk::HBox _insideH; + Gtk::HBox _buttonsRow; + Gtk::VBox _outsideV; + Gtk::CheckButton _noLink; + bool _showlabels; + + SwatchesPanel::ModelColumns* _model; + Glib::RefPtr _store; + + Gtk::CellRendererText *_text_rendererBI; + Gtk::TreeView::Column *_name_columnBI; + Gtk::ScrolledWindow _scrollerBI; + Gtk::TreeView _editBI; + Gtk::HBox _buttonsRowBI; + Gtk::VBox _editBIV; + + SwatchesPanel::ModelColumnsDoc* _modelDoc; + Glib::RefPtr _storeDoc; + + Gtk::CellRendererText *_text_rendererDoc; + Gtk::CellRendererPixbuf *_pixbuf_rendererDoc; + Gtk::TreeView::Column *_name_columnDoc; + Gtk::TreeView::Column *_pixbuf_columnDoc; + Gtk::ScrolledWindow _scrollerDoc; + Gtk::TreeView _editDoc; + Gtk::HBox _buttonsRowDoc; + Gtk::VBox _editDocV; + + Gtk::Notebook _notebook; + + SwatchWatcher* rootWatcher; + std::vector rootWatchers; + + std::vector docWatchers; + SwatchWatcher* docWatcher; - static void _trackDocument( SwatchesPanel *panel, SPDocument *document ); - static void handleDefsModified(SPDocument *document); - - PreviewHolder* _holder; - ColorItem* _clear; - ColorItem* _remove; - int _currentIndex; SPDesktop* _currentDesktop; SPDocument* _currentDocument; + + bool _dnd_into; + SPObject* _dnd_source; + SPObject* _dnd_target; sigc::connection _documentConnection; sigc::connection _selChanged; - - friend class DocTrack; }; } //namespace Dialogs -- cgit v1.2.3 From 3093434e177d4bb7ccc57c1339fad00d47431c17 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 4 Mar 2014 21:24:03 -0500 Subject: Added a few swatch related functions (does not compile) (bzr r13090.1.15) --- src/sp-gradient-fns.h | 47 ++++++++ src/sp-tag-use-reference.cpp | 147 ++++++++++++++++++++++ src/sp-tag-use-reference.h | 77 ++++++++++++ src/sp-tag-use.cpp | 281 +++++++++++++++++++++++++++++++++++++++++++ src/sp-tag-use.h | 53 ++++++++ src/sp-tag.cpp | 240 ++++++++++++++++++++++++++++++++++++ src/sp-tag.h | 55 +++++++++ src/ui/dialog/swatches.cpp | 2 +- src/ui/widget/addtoicon.cpp | 149 +++++++++++++++++++++++ src/ui/widget/addtoicon.h | 98 +++++++++++++++ 10 files changed, 1148 insertions(+), 1 deletion(-) create mode 100644 src/sp-gradient-fns.h create mode 100644 src/sp-tag-use-reference.cpp create mode 100644 src/sp-tag-use-reference.h create mode 100644 src/sp-tag-use.cpp create mode 100644 src/sp-tag-use.h create mode 100644 src/sp-tag.cpp create mode 100644 src/sp-tag.h create mode 100644 src/ui/widget/addtoicon.cpp create mode 100644 src/ui/widget/addtoicon.h diff --git a/src/sp-gradient-fns.h b/src/sp-gradient-fns.h new file mode 100644 index 000000000..e57877256 --- /dev/null +++ b/src/sp-gradient-fns.h @@ -0,0 +1,47 @@ +#ifndef SEEN_SP_GRADIENT_FNS_H +#define SEEN_SP_GRADIENT_FNS_H + +/** \file + * Macros and fn declarations related to gradients. + */ + +#include +#include +#include <2geom/forward.h> +#include "sp-gradient-spread.h" +#include "sp-gradient-units.h" + +class SPGradient; +class SPMeshGradient; + +SPGradientSpread sp_gradient_get_spread (SPGradient *gradient); + +/* Gradient repr methods */ +void sp_gradient_repr_write_vector(SPGradient *gr); +void sp_gradient_repr_clear_vector(SPGradient *gr); + +void sp_meshgradient_repr_write(SPMeshGradient *mg); + +cairo_pattern_t *sp_gradient_create_preview_pattern(SPGradient *gradient, double width); + +/** Transforms to/from gradient position space in given environment */ +Geom::Affine sp_gradient_get_g2d_matrix(SPGradient const *gr, Geom::Affine const &ctm, + Geom::Rect const &bbox); +Geom::Affine sp_gradient_get_gs2d_matrix(SPGradient const *gr, Geom::Affine const &ctm, + Geom::Rect const &bbox); +void sp_gradient_set_gs2d_matrix(SPGradient *gr, Geom::Affine const &ctm, Geom::Rect const &bbox, + Geom::Affine const &gs2d); + + +#endif /* !SEEN_SP_GRADIENT_FNS_H */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/sp-tag-use-reference.cpp b/src/sp-tag-use-reference.cpp new file mode 100644 index 000000000..8e48c0285 --- /dev/null +++ b/src/sp-tag-use-reference.cpp @@ -0,0 +1,147 @@ +/* + * The reference corresponding to href of element. + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information. + */ + +#include +#include +#include + +#include "enums.h" +#include "sp-tag-use-reference.h" + +#include "display/curve.h" +#include "livarot/Path.h" +#include "preferences.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "uri.h" + + + +bool SPTagUseReference::_acceptObject(SPObject * const obj) const +{ + if (SP_IS_ITEM(obj)) { + SPObject * const owner = getOwner(); + // Refuse references to us or to an ancestor. + for ( SPObject *iter = owner ; iter ; iter = iter->parent ) { + if ( iter == obj ) { + return false; + } + } + return true; + } else { + return false; + } +} + + +static void sp_usepath_href_changed(SPObject *old_ref, SPObject *ref, SPTagUsePath *offset); +static void sp_usepath_delete_self(SPObject *deleted, SPTagUsePath *offset); + +SPTagUsePath::SPTagUsePath(SPObject* i_owner):SPTagUseReference(i_owner) +{ + owner=i_owner; + originalPath = NULL; + sourceDirty=false; + sourceHref = NULL; + sourceRepr = NULL; + sourceObject = NULL; + _changed_connection = changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_usepath_href_changed), this)); // listening to myself, this should be virtual instead + + user_unlink = NULL; +} + +SPTagUsePath::~SPTagUsePath(void) +{ + delete originalPath; + originalPath = NULL; + + _changed_connection.disconnect(); // to do before unlinking + + quit_listening(); + unlink(); +} + +void +SPTagUsePath::link(char *to) +{ + if ( to == NULL ) { + quit_listening(); + unlink(); + } else { + if ( !sourceHref || ( strcmp(to, sourceHref) != 0 ) ) { + g_free(sourceHref); + sourceHref = g_strdup(to); + try { + attach(Inkscape::URI(to)); + } catch (Inkscape::BadURIException &e) { + /* TODO: Proper error handling as per + * http://www.w3.org/TR/SVG11/implnote.html#ErrorProcessing. + */ + g_warning("%s", e.what()); + detach(); + } + } + } +} + +void +SPTagUsePath::unlink(void) +{ + g_free(sourceHref); + sourceHref = NULL; + detach(); +} + +void +SPTagUsePath::start_listening(SPObject* to) +{ + if ( to == NULL ) { + return; + } + sourceObject = to; + sourceRepr = to->getRepr(); + _delete_connection = to->connectDelete(sigc::bind(sigc::ptr_fun(&sp_usepath_delete_self), this)); +} + +void +SPTagUsePath::quit_listening(void) +{ + if ( sourceObject == NULL ) { + return; + } + _delete_connection.disconnect(); + sourceRepr = NULL; + sourceObject = NULL; +} + +static void +sp_usepath_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPTagUsePath *offset) +{ + offset->quit_listening(); + SPItem *refobj = offset->getObject(); + if ( refobj ) { + offset->start_listening(refobj); + } +} + +static void +sp_usepath_delete_self(SPObject */*deleted*/, SPTagUsePath *offset) +{ + offset->owner->deleteObject(); +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use-reference.h b/src/sp-tag-use-reference.h new file mode 100644 index 000000000..039d2fd7d --- /dev/null +++ b/src/sp-tag-use-reference.h @@ -0,0 +1,77 @@ +#ifndef SEEN_SP_TAG_USE_REFERENCE_H +#define SEEN_SP_TAG_USE_REFERENCE_H + +/* + * The reference corresponding to href of element. + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information. + */ + +#include "sp-object.h" +#include "sp-item.h" +#include +#include +#include + +class Path; + +namespace Inkscape { +namespace XML { + struct Node; +} +} + + +class SPTagUseReference : public Inkscape::URIReference { +public: + SPTagUseReference(SPObject *owner) : URIReference(owner) {} + + SPItem *getObject() const { + return static_cast(URIReference::getObject()); + } + +protected: + virtual bool _acceptObject(SPObject * const obj) const; + +}; + + +class SPTagUsePath : public SPTagUseReference { +public: + Path *originalPath; + bool sourceDirty; + + SPObject *owner; + gchar *sourceHref; + Inkscape::XML::Node *sourceRepr; + SPObject *sourceObject; + + sigc::connection _delete_connection; + sigc::connection _changed_connection; + + SPTagUsePath(SPObject* i_owner); + ~SPTagUsePath(void); + + void link(char* to); + void unlink(void); + void start_listening(SPObject* to); + void quit_listening(void); + void refresh_source(void); + + void (*user_unlink) (SPObject *user); +}; + +#endif /* !SEEN_SP_USE_REFERENCE_H */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.cpp b/src/sp-tag-use.cpp new file mode 100644 index 000000000..4c5171bbb --- /dev/null +++ b/src/sp-tag-use.cpp @@ -0,0 +1,281 @@ +/* + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include +#include "display/drawing-group.h" +#include "attributes.h" +#include "document.h" +#include "sp-object-repr.h" +#include "uri.h" +#include "xml/repr.h" +#include "preferences.h" +#include "style.h" +#include "sp-symbol.h" +#include "sp-tag-use.h" +#include "sp-tag-use-reference.h" + +/* fixme: */ + +static void sp_tag_use_class_init(SPTagUseClass *classname); +static void sp_tag_use_init(SPTagUse *use); +static void sp_tag_use_finalize(GObject *obj); + +static void sp_tag_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); +static void sp_tag_use_release(SPObject *object); +static void sp_tag_use_set(SPObject *object, unsigned key, gchar const *value); +static Inkscape::XML::Node *sp_tag_use_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); +static void sp_tag_use_update(SPObject *object, SPCtx *ctx, guint flags); + +static void sp_tag_use_href_changed(SPObject *old_ref, SPObject *ref, SPTagUse *use); + +static SPObjectClass *parent_class; + + +GType +sp_tag_use_get_type(void) +{ + static GType use_type = 0; + if (!use_type) { + GTypeInfo use_info = { + sizeof(SPTagUseClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) sp_tag_use_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof(SPTagUse), + 16, /* n_preallocs */ + (GInstanceInitFunc) sp_tag_use_init, + NULL, /* value_table */ + }; + use_type = g_type_register_static(SP_TYPE_OBJECT, "SPTagUse", &use_info, (GTypeFlags)0); + } + return use_type; +} + +static void +sp_tag_use_class_init(SPTagUseClass *classname) +{ + GObjectClass *gobject_class = (GObjectClass *) classname; + SPObjectClass *sp_object_class = (SPObjectClass *) classname; + + parent_class = (SPObjectClass*)g_type_class_peek_parent(classname); + + gobject_class->finalize = sp_tag_use_finalize; + + sp_object_class->build = sp_tag_use_build; + sp_object_class->release = sp_tag_use_release; + sp_object_class->set = sp_tag_use_set; + sp_object_class->write = sp_tag_use_write; + sp_object_class->update = sp_tag_use_update; +} + +static void +sp_tag_use_init(SPTagUse *use) +{ + use->href = NULL; + + new (&use->_changed_connection) sigc::connection(); + + use->ref = new SPTagUseReference(use); + + use->_changed_connection = use->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_tag_use_href_changed), use)); +} + +static void +sp_tag_use_finalize(GObject *obj) +{ + SPTagUse *use = reinterpret_cast(obj); + + if (use->child) { + use->detach(use->child); + use->child = NULL; + } + + use->ref->detach(); + delete use->ref; + use->ref = 0; + + use->_changed_connection.~connection(); + +} + +static void +sp_tag_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +{ + if (((SPObjectClass *) parent_class)->build) { + (* ((SPObjectClass *) parent_class)->build)(object, document, repr); + } + + object->readAttr( "xlink:href" ); + + // We don't need to create child here: + // reading xlink:href will attach ref, and that will cause the changed signal to be emitted, + // which will call sp_tag_use_href_changed, and that will take care of the child +} + +static void +sp_tag_use_release(SPObject *object) +{ + SPTagUse *use = SP_TAG_USE(object); + + if (use->child) { + object->detach(use->child); + use->child = NULL; + } + + use->_changed_connection.disconnect(); + + g_free(use->href); + use->href = NULL; + + use->ref->detach(); + + if (((SPObjectClass *) parent_class)->release) { + ((SPObjectClass *) parent_class)->release(object); + } +} + +static void +sp_tag_use_set(SPObject *object, unsigned key, gchar const *value) +{ + SPTagUse *use = SP_TAG_USE(object); + + switch (key) { + case SP_ATTR_XLINK_HREF: { + if ( value && use->href && ( strcmp(value, use->href) == 0 ) ) { + /* No change, do nothing. */ + } else { + g_free(use->href); + use->href = NULL; + if (value) { + // First, set the href field, because sp_tag_use_href_changed will need it. + use->href = g_strdup(value); + + // Now do the attaching, which emits the changed signal. + try { + use->ref->attach(Inkscape::URI(value)); + } catch (Inkscape::BadURIException &e) { + g_warning("%s", e.what()); + use->ref->detach(); + } + } else { + use->ref->detach(); + } + } + break; + } + + default: + if (((SPObjectClass *) parent_class)->set) { + ((SPObjectClass *) parent_class)->set(object, key, value); + } + break; + } +} + +static Inkscape::XML::Node * +sp_tag_use_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) +{ + SPTagUse *use = SP_TAG_USE(object); + + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = xml_doc->createElement("inkscape:tagref"); + } + + if (((SPObjectClass *) (parent_class))->write) { + ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); + } + + if (use->ref->getURI()) { + gchar *uri_string = use->ref->getURI()->toString(); + repr->setAttribute("xlink:href", uri_string); + g_free(uri_string); + } + + return repr; +} + +/** + * Returns the ultimate original of a SPTagUse (i.e. the first object in the chain of its originals + * which is not an SPTagUse). If no original is found, NULL is returned (it is the responsibility + * of the caller to make sure that this is handled correctly). + * + * Note that the returned is the clone object, i.e. the child of an SPTagUse (of the argument one for + * the trivial case) and not the "true original". + */ +SPItem * +sp_tag_use_root(SPTagUse *use) +{ + SPObject *orig = use->child; + while (orig && SP_IS_TAG_USE(orig)) { + orig = SP_TAG_USE(orig)->child; + } + if (!orig || !SP_IS_ITEM(orig)) + return NULL; + return SP_ITEM(orig); +} + +static void +sp_tag_use_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPTagUse *use) +{ + if (use->href) { + SPItem *refobj = use->ref->getObject(); + if (refobj) { + Inkscape::XML::Node *childrepr = refobj->getRepr(); + GType type = sp_repr_type_lookup(childrepr); + g_return_if_fail(type > G_TYPE_NONE); + if (g_type_is_a(type, SP_TYPE_ITEM)) { + use->child = (SPObject*) g_object_new(type, 0); + use->attach(use->child, use->lastChild()); + sp_object_unref(use->child, use); + (use->child)->invoke_build(use->document, childrepr, TRUE); + + } + } + } +} + +static void +sp_tag_use_update(SPObject *object, SPCtx *ctx, unsigned flags) +{ + if (((SPObjectClass *) (parent_class))->update) + ((SPObjectClass *) (parent_class))->update(object, ctx, flags); +} + +SPItem *sp_tag_use_get_original(SPTagUse *use) +{ + SPItem *ref = NULL; + if (use){ + if (use->ref){ + ref = use->ref->getObject(); + } + } + return ref; +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.h b/src/sp-tag-use.h new file mode 100644 index 000000000..6e068fc21 --- /dev/null +++ b/src/sp-tag-use.h @@ -0,0 +1,53 @@ +#ifndef __SP_TAG_USE_H__ +#define __SP_TAG_USE_H__ + +/* + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include +#include "svg/svg-length.h" +#include "sp-object.h" + + +#define SP_TYPE_TAG_USE (sp_tag_use_get_type ()) +#define SP_TAG_USE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_TAG_USE, SPTagUse)) +#define SP_TAG_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_TAG_USE, SPTagUseClass)) +#define SP_IS_TAG_USE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_TAG_USE)) +#define SP_IS_TAG_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_TAG_USE)) + +class SPTagUse; +class SPTagUseClass; +class SPTagUseReference; + +struct SPTagUse : public SPObject { + // item built from the original's repr (the visible clone) + // relative to the SPUse itself, it is treated as a child, similar to a grouped item relative to its group + SPObject *child; + + gchar *href; + + // the reference to the original object + SPTagUseReference *ref; + sigc::connection _changed_connection; +}; + +struct SPTagUseClass { + SPObjectClass parent_class; +}; + +GType sp_tag_use_get_type (void); + +SPItem *sp_tag_use_unlink (SPTagUse *use); +SPItem *sp_tag_use_get_original (SPTagUse *use); + +SPItem *sp_tag_use_root(SPTagUse *use); +#endif diff --git a/src/sp-tag.cpp b/src/sp-tag.cpp new file mode 100644 index 000000000..eef55d628 --- /dev/null +++ b/src/sp-tag.cpp @@ -0,0 +1,240 @@ +/** \file + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "attributes.h" +#include "sp-tag.h" +#include "xml/repr.h" +#include + +#define DEBUG_TAG +#ifdef DEBUG_TAG +# define debug(f, a...) { g_print("%s(%d) %s:", \ + __FILE__,__LINE__,__FUNCTION__); \ + g_print(f, ## a); \ + g_print("\n"); \ + } +#else +# define debug(f, a...) /**/ +#endif + +/* Tag base class */ + +static void sp_tag_class_init(SPTagClass *klass); +static void sp_tag_init(SPTag *tag); + +static void sp_tag_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); +static void sp_tag_release(SPObject *object); +static void sp_tag_set(SPObject *object, unsigned int key, gchar const *value); +static void sp_tag_update(SPObject *object, SPCtx *ctx, guint flags); +static Inkscape::XML::Node *sp_tag_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); + +static SPObjectClass *tag_parent_class; + +GType +sp_tag_get_type() +{ + static GType tag_type = 0; + + if (!tag_type) { + GTypeInfo tag_info = { + sizeof(SPTagClass), + NULL, NULL, + (GClassInitFunc) sp_tag_class_init, + NULL, NULL, + sizeof(SPTag), + 16, + (GInstanceInitFunc) sp_tag_init, + NULL, /* value_table */ + }; + tag_type = g_type_register_static(SP_TYPE_OBJECT, "SPTag", &tag_info, (GTypeFlags)0); + } + return tag_type; +} + +static void +sp_tag_class_init(SPTagClass *klass) +{ + //GObjectClass *gobject_class = (GObjectClass *)klass; + SPObjectClass *sp_object_class = (SPObjectClass *)klass; + + tag_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); + + sp_object_class->build = sp_tag_build; + sp_object_class->release = sp_tag_release; + sp_object_class->write = sp_tag_write; + sp_object_class->set = sp_tag_set; + sp_object_class->update = sp_tag_update; +} + +static void +sp_tag_init(SPTag *tag) +{ +} + +/* + * Move this SPItem into or after another SPItem in the doc + * \param target - the SPItem to move into or after + * \param intoafter - move to after the target (false), move inside (sublayer) of the target (true) + */ +void SPTag::moveTo(SPObject *target, gboolean intoafter) { + + Inkscape::XML::Node *target_ref = ( target ? target->getRepr() : NULL ); + Inkscape::XML::Node *our_ref = getRepr(); + gboolean first = FALSE; + + if (target_ref == our_ref) { + // Move to ourself ignore + return; + } + + if (!target_ref) { + // Assume move to the "first" in the top node, find the top node + target_ref = our_ref; + while (target_ref->parent() != target_ref->root()) { + target_ref = target_ref->parent(); + } + first = TRUE; + } + + if (intoafter) { + // Move this inside of the target at the end + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else if (target_ref->parent() != our_ref->parent()) { + // Change in parent, need to remove and add + our_ref->parent()->removeChild(our_ref); + target_ref->parent()->addChild(our_ref, target_ref); + } else if (!first) { + // Same parent, just move + our_ref->parent()->changeOrder(our_ref, target_ref); + } +} + +/** + * Reads the Inkscape::XML::Node, and initializes SPTag variables. For this to get called, + * our name must be associated with a repr via "sp_object_type_register". Best done through + * sp-object-repr.cpp's repr_name_entries array. + */ +static void +sp_tag_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +{ + object->readAttr( "inkscape:expanded" ); + + if (((SPObjectClass *) tag_parent_class)->build) { + ((SPObjectClass *) tag_parent_class)->build(object, document, repr); + } +} + +/** + * Drops any allocated memory. + */ +static void +sp_tag_release(SPObject *object) +{ + /* deal with our children and our selves here */ + + if (((SPObjectClass *) tag_parent_class)->release) + ((SPObjectClass *) tag_parent_class)->release(object); +} + +/** + * Sets a specific value in the SPTag. + */ +static void +sp_tag_set(SPObject *object, unsigned int key, gchar const *value) +{ + SPTag *tag = SP_TAG(object); + + switch (key) + { + case SP_ATTR_INKSCAPE_EXPANDED: + if ( value && !strcmp(value, "true") ) { + tag->setExpanded(true); + } + break; + default: + if (((SPObjectClass *) tag_parent_class)->set) { + ((SPObjectClass *) tag_parent_class)->set(object, key, value); + } + break; + } +} + +void SPTag::setExpanded(bool isexpanded) { + if ( _expanded != isexpanded ){ + _expanded = isexpanded; + } +} + +/** + * Receives update notifications. + */ +static void +sp_tag_update(SPObject *object, SPCtx *ctx, guint flags) +{ + //SPTag *tag = SP_TAG(object); + + if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | + SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { + + /* do something to trigger redisplay, updates? */ + + } + + if (((SPObjectClass *) tag_parent_class)->update) { + ((SPObjectClass *) tag_parent_class)->update(object, ctx, flags); + } +} + +/** + * Writes its settings to an incoming repr object, if any. + */ +static Inkscape::XML::Node * +sp_tag_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) +{ + SPTag *tag = SP_TAG(object); + + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = doc->createElement("inkscape:tag"); + } + + // Inkscape-only object, not copied during an "plain SVG" dump: + if (flags & SP_OBJECT_WRITE_EXT) { + + if (tag->_expanded) { + repr->setAttribute("inkscape:expanded", "true"); + } else { + repr->setAttribute("inkscape:expanded", NULL); + } + } + + if (((SPObjectClass *) tag_parent_class)->write) { + ((SPObjectClass *) tag_parent_class)->write(object, doc, repr, flags); + } + + return repr; +} + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/sp-tag.h b/src/sp-tag.h new file mode 100644 index 000000000..c5eec785a --- /dev/null +++ b/src/sp-tag.h @@ -0,0 +1,55 @@ +#ifndef SP_TAG_H_SEEN +#define SP_TAG_H_SEEN + +/** \file + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "sp-object.h" + +/* Skeleton base class */ + +#define SP_TYPE_TAG (sp_tag_get_type()) +#define SP_TAG(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_TAG, SPTag)) +#define SP_IS_TAG(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_TAG)) + +class SPTag; +class SPTagClass; + +class SPTag : public SPObject { +public: + bool _expanded; + + bool expanded() const { return _expanded; } + void setExpanded(bool isexpanded); + + void moveTo(SPObject *target, gboolean intoafter); + +}; + +struct SPTagClass { + SPObjectClass parent_class; +}; + +GType sp_tag_get_type(); + + +#endif /* !SP_SKELETON_H_SEEN */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index a0c79b8ac..2956c6d17 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -68,7 +68,7 @@ #include "sp-radial-gradient.h" #include "color-rgba.h" #include "svg/css-ostringstream.h" -//#include "event-context.h" //no longer exists +#include "ui/tools/tool-base.h" //event-context.h #include #ifdef WIN32 #include diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp new file mode 100644 index 000000000..3d6091f70 --- /dev/null +++ b/src/ui/widget/addtoicon.cpp @@ -0,0 +1,149 @@ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + + +#include "ui/widget/addtoicon.h" + +#include + +#include "widgets/icon.h" +#include "widgets/toolbox.h" +#include "ui/icon-names.h" +#include "layertypeicon.h" +#include "addtoicon.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +AddToIcon::AddToIcon() : + Glib::ObjectBase(typeid(AddToIcon)), + Gtk::CellRendererPixbuf(), +// _pixAddName(INKSCAPE_ICON("layer-new")), + _property_active(*this, "active", false) +// _property_pixbuf_add(*this, "pixbuf_on", Glib::RefPtr(0)) +{ + property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; + phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_BUTTON); +// Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); +// +// if (!icon_theme->has_icon(_pixAddName)) { +// Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixAddName.data()), Inkscape::ICON_SIZE_DECORATION ); +// } +// if (icon_theme->has_icon(_pixAddName)) { +// _property_pixbuf_add = icon_theme->load_icon(_pixAddName, phys, (Gtk::IconLookupFlags)0); +// } +// +// _property_pixbuf_add = Gtk::Widget:: + + property_stock_id() = GTK_STOCK_ADD; +} + + +#if WITH_GTKMM_3_0 +void AddToIcon::get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const +{ + Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); + + if (min_h) { + min_h += (min_h) >> 1; + } + + if (nat_h) { + nat_h += (nat_h) >> 1; + } +} + +void AddToIcon::get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const +{ + Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); + + if (min_w) { + min_w += (min_w) >> 1; + } + + if (nat_w) { + nat_w += (nat_w) >> 1; + } +} +#else +void AddToIcon::get_size_vfunc(Gtk::Widget& widget, + const Gdk::Rectangle* cell_area, + int* x_offset, + int* y_offset, + int* width, + int* height ) const +{ + Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); + + if ( width ) { + *width = phys;//+= (*width) >> 1; + } + if ( height ) { + *height =phys;//+= (*height) >> 1; + } +} +#endif + +#if WITH_GTKMM_3_0 +void AddToIcon::render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ) +#else +void AddToIcon::render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ) +#endif +{ + property_stock_id() = property_active().get_value() ? GTK_STOCK_ADD : GTK_STOCK_DELETE; + +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); +#else + Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); +#endif +} + +bool +AddToIcon::activate_vfunc(GdkEvent* event, + Gtk::Widget& /*widget*/, + const Glib::ustring& path, + const Gdk::Rectangle& /*background_area*/, + const Gdk::Rectangle& /*cell_area*/, + Gtk::CellRendererState /*flags*/) +{ + return false; +} + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + + diff --git a/src/ui/widget/addtoicon.h b/src/ui/widget/addtoicon.h new file mode 100644 index 000000000..aa8b4148e --- /dev/null +++ b/src/ui/widget/addtoicon.h @@ -0,0 +1,98 @@ +#ifndef __UI_DIALOG_ADDTOICON_H__ +#define __UI_DIALOG_ADDTOICON_H__ +/* + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +namespace Inkscape { +namespace UI { +namespace Widget { + +class AddToIcon : public Gtk::CellRendererPixbuf { +public: + AddToIcon(); + virtual ~AddToIcon() {}; + + Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); + Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); + +protected: + +#if WITH_GTKMM_3_0 + virtual void render_vfunc( const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags ); + + virtual void get_preferred_width_vfunc(Gtk::Widget& widget, + int& min_w, + int& nat_w) const; + + virtual void get_preferred_height_vfunc(Gtk::Widget& widget, + int& min_h, + int& nat_h) const; +#else + virtual void render_vfunc( const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags ); + + virtual void get_size_vfunc( Gtk::Widget &widget, + Gdk::Rectangle const *cell_area, + int *x_offset, int *y_offset, int *width, int *height ) const; +#endif + + virtual bool activate_vfunc(GdkEvent *event, + Gtk::Widget &widget, + const Glib::ustring &path, + const Gdk::Rectangle &background_area, + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags); + + +private: + int phys; + +// Glib::ustring _pixAddName; + + Glib::Property _property_active; +// Glib::Property< Glib::RefPtr > _property_pixbuf_add; + +}; + + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + + +#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From fcffbecabedd7c6bca1312918c918d57fee3cf8c Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 5 Mar 2014 15:24:04 -0500 Subject: Added new swatches dialog (bzr r13090.1.16) --- live_effects.patch | 2008 +++ mkerror.txt | 11 + objects_dialog.patch | 3637 ++++ share/palettes/MLP/All.gpl | 10 + share/palettes/MLP/Applejack.gpl | 18 + share/palettes/MLP/Daisy.gpl | 16 + share/palettes/MLP/Fluttershy.gpl | 15 + share/palettes/MLP/Lily.gpl | 18 + share/palettes/MLP/Makefile | 520 + share/palettes/MLP/Makefile.am | 18 + share/palettes/MLP/Pinkie.gpl | 15 + share/palettes/MLP/Rainbow-Dash.gpl | 23 + share/palettes/MLP/Rarity.gpl | 18 + share/palettes/MLP/Roseluck.gpl | 21 + share/palettes/MLP/Silver-Rains.gpl | 17 + share/palettes/MLP/Spike.gpl | 17 + share/palettes/MLP/Twilight-Sparkle.gpl | 17 + share/palettes/Makefile.am | 4 +- share/palettes/README | 9 +- share/palettes/Tango-Palette.gpl | 2 - share/palettes/swatches.svg | 28382 ++++++++++++++++++++++++++++++ src/ui/dialog/color-item.cpp | 860 +- src/ui/dialog/color-item.h | 108 +- src/ui/dialog/filedialog.h | 1 + src/ui/dialog/swatches.cpp | 48 +- src/widgets/desktop-widget.cpp | 2 +- 26 files changed, 34989 insertions(+), 826 deletions(-) create mode 100644 live_effects.patch create mode 100644 mkerror.txt create mode 100644 objects_dialog.patch create mode 100644 share/palettes/MLP/All.gpl create mode 100644 share/palettes/MLP/Applejack.gpl create mode 100644 share/palettes/MLP/Daisy.gpl create mode 100644 share/palettes/MLP/Fluttershy.gpl create mode 100644 share/palettes/MLP/Lily.gpl create mode 100644 share/palettes/MLP/Makefile create mode 100644 share/palettes/MLP/Makefile.am create mode 100644 share/palettes/MLP/Pinkie.gpl create mode 100644 share/palettes/MLP/Rainbow-Dash.gpl create mode 100644 share/palettes/MLP/Rarity.gpl create mode 100644 share/palettes/MLP/Roseluck.gpl create mode 100644 share/palettes/MLP/Silver-Rains.gpl create mode 100644 share/palettes/MLP/Spike.gpl create mode 100644 share/palettes/MLP/Twilight-Sparkle.gpl create mode 100644 share/palettes/swatches.svg diff --git a/live_effects.patch b/live_effects.patch new file mode 100644 index 000000000..3d1091221 --- /dev/null +++ b/live_effects.patch @@ -0,0 +1,2008 @@ +=== modified file 'src/live_effects/CMakeLists.txt' +--- src/live_effects/CMakeLists.txt 2012-03-23 21:02:03 +0000 ++++ src/live_effects/CMakeLists.txt 2014-03-01 16:12:14 +0000 +@@ -2,8 +2,10 @@ + set(live_effects_SRC + effect.cpp + lpe-angle_bisector.cpp ++ lpe-attach-path.cpp + lpe-bendpath.cpp + lpe-boolops.cpp ++ lpe-bounding-box.cpp + lpe-circle_3pts.cpp + lpe-circle_with_radius.cpp + lpe-clone-original.cpp +@@ -11,8 +13,11 @@ + lpe-copy_rotate.cpp + lpe-curvestitch.cpp + lpe-dynastroke.cpp ++ lpe-ellipse-5pts.cpp + lpe-envelope.cpp + lpe-extrude.cpp ++ lpe-fill-between-many.cpp ++ lpe-fill-between-strokes.cpp + lpe-gears.cpp + lpe-interpolate.cpp + lpe-knot.cpp +@@ -47,11 +52,13 @@ + parameter/parameter.cpp + parameter/path.cpp + parameter/originalpath.cpp ++ parameter/originalpatharray.cpp + parameter/path-reference.cpp + parameter/point.cpp + parameter/powerstrokepointarray.cpp + parameter/random.cpp + parameter/text.cpp ++ paramter/transformedpoint.cpp + parameter/unit.cpp + parameter/vector.cpp + +@@ -61,8 +68,10 @@ + effect-enum.h + effect.h + lpe-angle_bisector.h ++ lpe-attach-path.h + lpe-bendpath.h + lpe-boolops.h ++ lpe-bounding-box.h + lpe-circle_3pts.h + lpe-circle_with_radius.h + lpe-clone-original.h +@@ -70,8 +79,11 @@ + lpe-copy_rotate.h + lpe-curvestitch.h + lpe-dynastroke.h ++ lpe-ellipse-5pts.h + lpe-envelope.h + lpe-extrude.h ++ lpe-fill-between-many.h ++ lpe-fill-between-strokes.h + lpe-gears.h + lpe-interpolate.h + lpe-knot.h +@@ -109,6 +121,7 @@ + parameter/path-reference.h + parameter/path.h + parameter/originalpath.h ++ parameter/originalpatharray.h + parameter/point.h + parameter/powerstrokepointarray.h + parameter/random.h + +=== modified file 'src/live_effects/Makefile_insert' +--- src/live_effects/Makefile_insert 2012-03-23 21:02:03 +0000 ++++ src/live_effects/Makefile_insert 2014-03-01 18:49:52 +0000 +@@ -82,4 +82,14 @@ + live_effects/lpe-path_length.cpp \ + live_effects/lpe-path_length.h \ + live_effects/lpe-line_segment.cpp \ +- live_effects/lpe-line_segment.h ++ live_effects/lpe-line_segment.h \ ++ live_effects/lpe-bounding-box.cpp \ ++ live_effects/lpe-bounding-box.h \ ++ live_effects/lpe-attach-path.cpp \ ++ live_effects/lpe-attach-path.h \ ++ live_effects/lpe-fill-between-strokes.cpp \ ++ live_effects/lpe-fill-between-stroke.h \ ++ live_effects/lpe-fill-between-many.cpp \ ++ live_effects/lpe-fill-between-many.h \ ++ live_effects/lpe-ellipse-5pts.cpp \ ++ live_effects/lpe-ellipse-5pts.h + +=== modified file 'src/live_effects/effect-enum.h' +--- src/live_effects/effect-enum.h 2012-01-12 21:06:16 +0000 ++++ src/live_effects/effect-enum.h 2014-03-01 02:07:48 +0000 +@@ -50,6 +50,11 @@ + EXTRUDE, + POWERSTROKE, + CLONE_ORIGINAL, ++ ATTACH_PATH, ++ FILL_BETWEEN_STROKES, ++ FILL_BETWEEN_MANY, ++ ELLIPSE_5PTS, ++ BOUNDING_BOX, + INVALID_LPE // This must be last (I made it such that it is not needed anymore I think..., Don't trust on it being last. - johan) + }; + + +=== modified file 'src/live_effects/effect.cpp' +--- src/live_effects/effect.cpp 2014-01-12 22:12:14 +0000 ++++ src/live_effects/effect.cpp 2014-03-01 02:27:38 +0000 +@@ -5,7 +5,7 @@ + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +-//#define LPE_ENABLE_TEST_EFFECTS ++#define LPE_ENABLE_TEST_EFFECTS + + #ifdef HAVE_CONFIG_H + # include "config.h" +@@ -47,6 +47,11 @@ + #include "live_effects/lpe-extrude.h" + #include "live_effects/lpe-powerstroke.h" + #include "live_effects/lpe-clone-original.h" ++#include "live_effects/lpe-attach-path.h" ++#include "live_effects/lpe-fill-between-strokes.h" ++#include "live_effects/lpe-fill-between-many.h" ++#include "live_effects/lpe-ellipse_5pts.h" ++#include "live_effects/lpe-bounding-box.h" + + #include "xml/node-event-vector.h" + #include "sp-object.h" +@@ -122,6 +127,12 @@ + /* 0.49 */ + {POWERSTROKE, N_("Power stroke"), "powerstroke"}, + {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, ++/* Ponyscape */ ++ {ATTACH_PATH, N_("Attach path"), "attach_path"}, ++ {FILL_BETWEEN_STROKES, N_("Fill between strokes"), "fill_between_strokes"}, ++ {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, ++ {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, ++ {BOUNDING_BOX, N_("Bounding Box"), "bounding_box"}, + }; + const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); + +@@ -245,6 +256,21 @@ + case CLONE_ORIGINAL: + neweffect = static_cast ( new LPECloneOriginal(lpeobj) ); + break; ++ case ATTACH_PATH: ++ neweffect = static_cast ( new LPEAttachPath(lpeobj) ); ++ break; ++ case FILL_BETWEEN_STROKES: ++ neweffect = static_cast ( new LPEFillBetweenStrokes(lpeobj) ); ++ break; ++ case FILL_BETWEEN_MANY: ++ neweffect = static_cast ( new LPEFillBetweenMany(lpeobj) ); ++ break; ++ case ELLIPSE_5PTS: ++ neweffect = static_cast ( new LPEEllipse5Pts(lpeobj) ); ++ break; ++ case BOUNDING_BOX: ++ neweffect = static_cast ( new LPEBoundingBox(lpeobj) ); ++ break; + default: + g_warning("LivePathEffect::Effect::New called with invalid patheffect type (%d)", lpenr); + neweffect = NULL; + +=== added file 'src/live_effects/lpe-attach-path.cpp' +--- src/live_effects/lpe-attach-path.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-attach-path.cpp 2014-03-01 22:47:28 +0000 +@@ -0,0 +1,203 @@ ++/* ++ * Copyright (C) Johan Engelen 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++#include ++ ++#include "live_effects/lpe-attach-path.h" ++ ++#include "display/curve.h" ++#include "sp-item.h" ++#include "2geom/path.h" ++#include "sp-shape.h" ++#include "sp-text.h" ++#include "2geom/bezier-curve.h" ++#include "2geom/path-sink.h" ++#include "parameter/parameter.h" ++#include "live_effects/parameter/point.h" ++#include "parameter/originalpath.h" ++#include "2geom/affine.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++LPEAttachPath::LPEAttachPath(LivePathEffectObject *lpeobject) : ++ Effect(lpeobject), ++ start_path(_("Start path:"), _("Path to attach to the start of this path"), "startpath", &wr, this), ++ start_path_position(_("Start path position:"), _("Position to attach path start to"), "startposition", &wr, this, 0.0), ++ start_path_curve_start(_("Start path curve start:"), _("Starting curve"), "startcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), ++ start_path_curve_end(_("Start path curve end:"), _("Ending curve"), "startcurveend", &wr, this, Geom::Point(20,0)/*, true*/), ++ end_path(_("End path:"), _("Path to attach to the end of this path"), "endpath", &wr, this), ++ end_path_position(_("End path position:"), _("Position to attach path end to"), "endposition", &wr, this, 0.0), ++ end_path_curve_start(_("End path curve start:"), _("Starting curve"), "endcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), ++ end_path_curve_end(_("End path curve end:"), _("Ending curve"), "endcurveend", &wr, this, Geom::Point(20,0)/*, true*/) ++{ ++ registerParameter( dynamic_cast(&start_path) ); ++ registerParameter( dynamic_cast(&start_path_position) ); ++ registerParameter( dynamic_cast(&start_path_curve_start) ); ++ registerParameter( dynamic_cast(&start_path_curve_end) ); ++ ++ registerParameter( dynamic_cast(&end_path) ); ++ registerParameter( dynamic_cast(&end_path_position) ); ++ registerParameter( dynamic_cast(&end_path_curve_start) ); ++ registerParameter( dynamic_cast(&end_path_curve_end) ); ++ ++ //perceived_path = true; ++ show_orig_path = true; ++ curve_start_previous_origin = start_path_curve_end.getOrigin(); ++ curve_end_previous_origin = end_path_curve_end.getOrigin(); ++} ++ ++LPEAttachPath::~LPEAttachPath() ++{ ++ ++} ++ ++void LPEAttachPath::resetDefaults(SPItem const * item) ++{ ++ curve_start_previous_origin = start_path_curve_end.getOrigin(); ++ curve_end_previous_origin = end_path_curve_end.getOrigin(); ++} ++ ++void LPEAttachPath::doBeforeEffect(const SPLPEItem *lpeitem) ++{ ++ lpe_effect = lpeitem; ++} ++ ++void LPEAttachPath::doEffect (SPCurve * curve) ++{ ++ std::vector this_pathv = curve->get_pathvector(); ++ if (lpe_effect && !this_pathv.empty()) { ++ Geom::Path p = Geom::Path(this_pathv.front().initialPoint()); ++ ++ bool set_start_end = start_path_curve_end.getOrigin() != curve_start_previous_origin; ++ bool set_end_end = end_path_curve_end.getOrigin() != curve_end_previous_origin; ++ ++ if (start_path.linksToPath()) { ++ ++ std::vector linked_pathv = start_path.get_pathvector(); ++ Geom::Affine linkedtransform = start_path.getObject()->getRelativeTransform(lpe_effect); ++ ++ if ( !linked_pathv.empty() ) ++ { ++ Geom::Path transformedpath = linked_pathv.front() * linkedtransform; ++ start_path_curve_start.setOrigin(this_pathv.front().initialPoint()); ++ ++ std::vector derivs = this_pathv.front().front().pointAndDerivatives(0, 3); ++ ++ for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { ++ Geom::Coord length = derivs[deriv_n].length(); ++ if ( ! Geom::are_near(length, 0) ) { ++ if (set_start_end) { ++ start_path_position.param_set_value(transformedpath.nearestPoint(start_path_curve_end.getOrigin())); ++ } ++ ++ if (start_path_position > transformedpath.size()) { ++ start_path_position.param_set_value(transformedpath.size()); ++ } else if (start_path_position < 0) { ++ start_path_position.param_set_value(0); ++ } ++ const Geom::Curve *c = start_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)start_path_position); ++ ++ std::vector derivs_2 = c->pointAndDerivatives(start_path_position >= transformedpath.size() ? 1 : (start_path_position - (int)start_path_position), 3); ++ for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { ++ Geom::Coord length_2 = derivs[deriv_n_2].length(); ++ if ( ! Geom::are_near(length_2, 0) ) { ++ start_path_curve_end.setOrigin(derivs_2[0]); ++ curve_start_previous_origin = start_path_curve_end.getOrigin(); ++ ++ double startangle = atan2(start_path_curve_start.getVector().y(), start_path_curve_start.getVector().x()); ++ double endangle = atan2(start_path_curve_end.getVector().y(), start_path_curve_end.getVector().x()); ++ double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); ++ double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); ++ Geom::Point pt1 = Geom::Point(start_path_curve_start.getVector().length() * cos(startangle + startderiv), start_path_curve_start.getVector().length() * sin(startangle + startderiv)); ++ Geom::Point pt2 = Geom::Point(start_path_curve_end.getVector().length() * cos(endangle + endderiv), start_path_curve_end.getVector().length() * sin(endangle + endderiv)); ++ p = Geom::Path(derivs_2[0]); ++ p.appendNew(-pt2 + derivs_2[0], -pt1 + this_pathv.front().initialPoint(), this_pathv.front().initialPoint()); ++ break; ++ ++ } ++ } ++ break; ++ } ++ } ++ } ++ } ++ ++ p.append(this_pathv.front()); ++ ++ if (end_path.linksToPath()) { ++ ++ std::vector linked_pathv = end_path.get_pathvector(); ++ Geom::Affine linkedtransform = end_path.getObject()->getRelativeTransform(lpe_effect); ++ ++ if ( !linked_pathv.empty() ) ++ { ++ Geom::Path transformedpath = linked_pathv.front() * linkedtransform; ++ Geom::Curve * last_seg_reverse = this_pathv.front().back().reverse(); ++ ++ end_path_curve_start.setOrigin(last_seg_reverse->initialPoint()); ++ ++ std::vector derivs = last_seg_reverse->pointAndDerivatives(0, 3); ++ for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { ++ Geom::Coord length = derivs[deriv_n].length(); ++ if ( ! Geom::are_near(length, 0) ) { ++ if (set_end_end) { ++ end_path_position.param_set_value(transformedpath.nearestPoint(end_path_curve_end.getOrigin())); ++ } ++ ++ if (end_path_position > transformedpath.size()) { ++ end_path_position.param_set_value(transformedpath.size()); ++ } else if (end_path_position < 0) { ++ end_path_position.param_set_value(0); ++ } ++ const Geom::Curve *c = end_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)end_path_position); ++ ++ std::vector derivs_2 = c->pointAndDerivatives(end_path_position >= transformedpath.size() ? 1 : (end_path_position - (int)end_path_position), 3); ++ for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { ++ Geom::Coord length_2 = derivs[deriv_n_2].length(); ++ if ( ! Geom::are_near(length_2, 0) ) { ++ ++ end_path_curve_end.setOrigin(derivs_2[0]); ++ curve_end_previous_origin = end_path_curve_end.getOrigin(); ++ ++ double startangle = atan2(end_path_curve_start.getVector().y(), end_path_curve_start.getVector().x()); ++ double endangle = atan2(end_path_curve_end.getVector().y(), end_path_curve_end.getVector().x()); ++ double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); ++ double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); ++ Geom::Point pt1 = Geom::Point(end_path_curve_start.getVector().length() * cos(startangle + startderiv), end_path_curve_start.getVector().length() * sin(startangle + startderiv)); ++ Geom::Point pt2 = Geom::Point(end_path_curve_end.getVector().length() * cos(endangle + endderiv), end_path_curve_end.getVector().length() * sin(endangle + endderiv)); ++ p.appendNew(-pt1 + this_pathv.front().finalPoint(), -pt2 + derivs_2[0], derivs_2[0]); ++ ++ break; ++ ++ } ++ } ++ break; ++ } ++ } ++ delete last_seg_reverse; ++ } ++ } ++ Geom::PathVector outvector; ++ outvector.push_back(p); ++ curve->set_pathvector(outvector); ++ } ++} ++ ++} // namespace LivePathEffect ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-attach-path.h' +--- src/live_effects/lpe-attach-path.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-attach-path.h 2014-03-01 22:40:18 +0000 +@@ -0,0 +1,54 @@ ++#ifndef INKSCAPE_LPE_ATTACH_PATH_H ++#define INKSCAPE_LPE_ATTACH_PATH_H ++ ++/* ++ * Inkscape::LPEAttachPath ++ * ++ * Copyright (C) Ted Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/effect.h" ++#include "live_effects/parameter/parameter.h" ++#include "live_effects/parameter/point.h" ++#include "live_effects/parameter/originalpath.h" ++#include "live_effects/parameter/vector.h" ++#include "live_effects/parameter/bool.h" ++#include "live_effects/parameter/transformedpoint.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++class LPEAttachPath : public Effect { ++public: ++ LPEAttachPath(LivePathEffectObject *lpeobject); ++ virtual ~LPEAttachPath(); ++ ++ virtual void doBeforeEffect(const SPLPEItem *lpeitem); ++ virtual void doEffect (SPCurve * curve); ++ virtual void resetDefaults(SPItem const * item); ++ ++private: ++ LPEAttachPath(const LPEAttachPath&); ++ LPEAttachPath& operator=(const LPEAttachPath&); ++ ++ Geom::Point curve_start_previous_origin; ++ Geom::Point curve_end_previous_origin; ++ ++ OriginalPathParam start_path; ++ ScalarParam start_path_position; ++ TransformedPointParam start_path_curve_start; ++ VectorParam start_path_curve_end; ++ ++ OriginalPathParam end_path; ++ ScalarParam end_path_position; ++ TransformedPointParam end_path_curve_start; ++ VectorParam end_path_curve_end; ++ const SPLPEItem * lpe_effect; ++}; ++ ++}; //namespace LivePathEffect ++}; //namespace Inkscape ++ ++#endif + +=== added file 'src/live_effects/lpe-bounding-box.cpp' +--- src/live_effects/lpe-bounding-box.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-bounding-box.cpp 2014-03-01 21:18:13 +0000 +@@ -0,0 +1,67 @@ ++/* ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++ ++#include "live_effects/lpe-bounding-box.h" ++ ++#include "display/curve.h" ++#include "sp-item.h" ++#include "2geom/path.h" ++#include "sp-shape.h" ++#include "sp-text.h" ++#include "2geom/bezier-curve.h" ++#include "lpe-bounding-box.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++LPEBoundingBox::LPEBoundingBox(LivePathEffectObject *lpeobject) : ++ Effect(lpeobject), ++ linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), ++ visual_bounds(_("Visual Bounds"), _("Uses the visual bounding box"), "visualbounds", &wr, this) ++{ ++ registerParameter( dynamic_cast(&linked_path) ); ++ registerParameter( dynamic_cast(&visual_bounds) ); ++ //perceived_path = true; ++} ++ ++LPEBoundingBox::~LPEBoundingBox() ++{ ++ ++} ++ ++void LPEBoundingBox::doEffect (SPCurve * curve) ++{ ++ if (curve) { ++ if ( linked_path.linksToPath() && linked_path.getObject() ) { ++ SPItem * item = linked_path.getObject(); ++ Geom::OptRect bbox = visual_bounds.get_value() ? item->visualBounds() : item->geometricBounds(); ++ Geom::Path p(Geom::Point(bbox->left(), bbox->top())); ++ p.appendNew(Geom::Point(bbox->right(), bbox->top())); ++ p.appendNew(Geom::Point(bbox->right(), bbox->bottom())); ++ p.appendNew(Geom::Point(bbox->left(), bbox->bottom())); ++ p.appendNew(Geom::Point(bbox->left(), bbox->top())); ++ std::vector out; ++ out.push_back(p); ++ curve->set_pathvector(out); ++ } ++ } ++} ++ ++} // namespace LivePathEffect ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-bounding-box.h' +--- src/live_effects/lpe-bounding-box.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-bounding-box.h 2014-03-01 19:37:36 +0000 +@@ -0,0 +1,37 @@ ++#ifndef INKSCAPE_LPE_BOUNDING_BOX_H ++#define INKSCAPE_LPE_BOUNDING_BOX_H ++ ++/* ++ * Inkscape::LPEFillBetweenStrokes ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/effect.h" ++#include "live_effects/parameter/originalpath.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++class LPEBoundingBox : public Effect { ++public: ++ LPEBoundingBox(LivePathEffectObject *lpeobject); ++ virtual ~LPEBoundingBox(); ++ ++ virtual void doEffect (SPCurve * curve); ++ ++private: ++ OriginalPathParam linked_path; ++ BoolParam visual_bounds; ++ ++private: ++ LPEBoundingBox(const LPEBoundingBox&); ++ LPEBoundingBox& operator=(const LPEBoundingBox&); ++}; ++ ++}; //namespace LivePathEffect ++}; //namespace Inkscape ++ ++#endif + +=== added file 'src/live_effects/lpe-ellipse_5pts.cpp' +--- src/live_effects/lpe-ellipse_5pts.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-ellipse_5pts.cpp 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,214 @@ ++/** \file ++ * LPE "Ellipse through 5 points" implementation ++ */ ++ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/lpe-ellipse_5pts.h" ++ ++// You might need to include other 2geom files. You can add them here: ++#include ++#include <2geom/path.h> ++#include <2geom/circle.h> ++#include <2geom/ellipse.h> ++#include <2geom/svg-path.h> ++#include "inkscape.h" ++#include "desktop.h" ++#include "message-stack.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++LPEEllipse5Pts::LPEEllipse5Pts(LivePathEffectObject *lpeobject) : ++ Effect(lpeobject) ++{ ++ perceived_path = true; ++} ++ ++LPEEllipse5Pts::~LPEEllipse5Pts() ++{ ++} ++ ++static double _det3(double (*mat)[3]) ++{ ++ for (int i = 0; i < 2; i++) ++ { ++ for (int j = i + 1; j < 3; j++) ++ { ++ for (int k = i + 1; k < 3; k++) ++ { ++ mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); ++ if (i) mat[j][k] /= mat[i-1][i-1]; ++ } ++ } ++ } ++ return mat[2][2]; ++} ++static double _det5(double (*mat)[5]) ++{ ++ for (int i = 0; i < 4; i++) ++ { ++ for (int j = i + 1; j < 5; j++) ++ { ++ for (int k = i + 1; k < 5; k++) ++ { ++ mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); ++ if (i) mat[j][k] /= mat[i-1][i-1]; ++ } ++ } ++ } ++ return mat[4][4]; ++} ++ ++std::vector ++LPEEllipse5Pts::doEffect_path (std::vector const & path_in) ++{ ++ std::vector path_out = std::vector(); ++ ++ if (path_in[0].size() < 4) { ++ ++ SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Five points required for constructing an ellipse")); ++ return path_in; ++ } ++ // we assume that the path has >= 3 nodes ++ Geom::Point A = path_in[0].initialPoint(); ++ Geom::Point B = path_in[0].pointAt(1); ++ Geom::Point C = path_in[0].pointAt(2); ++ Geom::Point D = path_in[0].pointAt(3); ++ Geom::Point E = path_in[0].pointAt(4); ++ ++ using namespace Geom; ++ ++ double rowmajor_matrix[5][6] = ++ { ++ {A.x()*A.x(), A.x()*A.y(), A.y()*A.y(), A.x(), A.y(), 1}, ++ {B.x()*B.x(), B.x()*B.y(), B.y()*B.y(), B.x(), B.y(), 1}, ++ {C.x()*C.x(), C.x()*C.y(), C.y()*C.y(), C.x(), C.y(), 1}, ++ {D.x()*D.x(), D.x()*D.y(), D.y()*D.y(), D.x(), D.y(), 1}, ++ {E.x()*E.x(), E.x()*E.y(), E.y()*E.y(), E.x(), E.y(), 1} ++ }; ++ ++ double mat_a[5][5] = ++ { ++ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, ++ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, ++ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, ++ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, ++ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} ++ }; ++ double mat_b[5][5] = ++ { ++ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, ++ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, ++ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, ++ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, ++ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} ++ }; ++ double mat_c[5][5] = ++ { ++ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, ++ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, ++ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, ++ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, ++ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} ++ }; ++ double mat_d[5][5] = ++ { ++ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, ++ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, ++ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, ++ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, ++ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} ++ }; ++ double mat_e[5][5] = ++ { ++ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, ++ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, ++ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, ++ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, ++ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} ++ }; ++ double mat_f[5][5] = ++ { ++ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, ++ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, ++ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, ++ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, ++ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]} ++ }; ++ ++ double a1 = _det5(mat_a); ++ double b1 = -_det5(mat_b); ++ double c1 = _det5(mat_c); ++ double d1 = -_det5(mat_d); ++ double e1 = _det5(mat_e); ++ double f1 = -_det5(mat_f); ++ ++ double mat_check[][3] = ++ { ++ {a1, b1/2, d1/2}, ++ {b1/2, c1, e1/2}, ++ {d1/2, e1/2, f1} ++ }; ++ ++ if (_det3(mat_check) == 0 || a1*c1 - b1*b1/4 <= 0) { ++ SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No ellipse found for specified points")); ++ return path_in; ++ } ++ ++ Geom::Ellipse el(a1, b1, c1, d1, e1, f1); ++ ++ double s, e; ++ double x0, y0, x1, y1, x2, y2, x3, y3; ++ double len; ++ ++ // figure out if we have a slice, guarding against rounding errors ++ ++ Path p(Geom::Point(cos(0), sin(0))); ++ ++ double end = 2 * M_PI; ++ for (s = 0; s < end; s += M_PI_2) { ++ e = s + M_PI_2; ++ if (e > end) ++ e = end; ++ len = 4*tan((e - s)/4)/3; ++ x0 = cos(s); ++ y0 = sin(s); ++ x1 = x0 + len * cos(s + M_PI_2); ++ y1 = y0 + len * sin(s + M_PI_2); ++ x3 = cos(e); ++ y3 = sin(e); ++ x2 = x3 + len * cos(e - M_PI_2); ++ y2 = y3 + len * sin(e - M_PI_2); ++ p.appendNew(Geom::Point(x1,y1), Geom::Point(x2,y2), Geom::Point(x3,y3)); ++ } ++ ++ Geom::Affine aff = Geom::Scale(el.ray(Geom::X), el.ray(Geom::Y)) * Geom::Rotate(el.rot_angle()) * Geom::Translate(el.center()); ++ ++ path_out.push_back(p * aff); ++ ++ return path_out; ++} ++ ++/* ######################## */ ++ ++} //namespace LivePathEffect ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-ellipse_5pts.h' +--- src/live_effects/lpe-ellipse_5pts.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-ellipse_5pts.h 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,50 @@ ++#ifndef INKSCAPE_LPE_ELLIPSE_5PTS_H ++#define INKSCAPE_LPE_ELLIPSE_5PTS_H ++ ++/** \file ++ * LPE "Ellipse through 5 points" implementation ++ */ ++ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/effect.h" ++#include "live_effects/parameter/parameter.h" ++#include "live_effects/parameter/point.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++class LPEEllipse5Pts : public Effect { ++public: ++ LPEEllipse5Pts(LivePathEffectObject *lpeobject); ++ virtual ~LPEEllipse5Pts(); ++ ++ virtual std::vector doEffect_path (std::vector const & path_in); ++ ++private: ++ LPEEllipse5Pts(const LPEEllipse5Pts&); ++ LPEEllipse5Pts& operator=(const LPEEllipse5Pts&); ++}; ++ ++} //namespace LivePathEffect ++} //namespace Inkscape ++ ++#endif ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-fill-between-many.cpp' +--- src/live_effects/lpe-fill-between-many.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-fill-between-many.cpp 2014-03-01 21:14:38 +0000 +@@ -0,0 +1,77 @@ ++/* ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++#include ++ ++#include "live_effects/lpe-fill-between-many.h" ++ ++#include "display/curve.h" ++#include "sp-item.h" ++#include "2geom/path.h" ++#include "sp-shape.h" ++#include "sp-text.h" ++#include "2geom/bezier-curve.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++LPEFillBetweenMany::LPEFillBetweenMany(LivePathEffectObject *lpeobject) : ++ Effect(lpeobject), ++ linked_paths(_("Linked path:"), _("Paths from which to take the original path data"), "linkedpaths", &wr, this) ++{ ++ registerParameter( dynamic_cast(&linked_paths) ); ++ //perceived_path = true; ++} ++ ++LPEFillBetweenMany::~LPEFillBetweenMany() ++{ ++ ++} ++ ++void LPEFillBetweenMany::doEffect (SPCurve * curve) ++{ ++ std::vector res_pathv; ++ SPItem * firstObj = NULL; ++ for (std::vector::iterator iter = linked_paths._vector.begin(); iter != linked_paths._vector.end(); iter++) { ++ SPObject *obj; ++ if ((*iter)->ref.isAttached() && (obj = (*iter)->ref.getObject()) && SP_IS_ITEM(obj) && !(*iter)->_pathvector.empty()) { ++ Geom::Path linked_path; ++ if ((*iter)->reversed) { ++ linked_path = (*iter)->_pathvector.front().reverse(); ++ } else { ++ linked_path = (*iter)->_pathvector.front(); ++ } ++ ++ if (!res_pathv.empty()) { ++ linked_path = linked_path * SP_ITEM(obj)->getRelativeTransform(firstObj); ++ res_pathv.front().appendNew(linked_path.initialPoint()); ++ res_pathv.front().append(linked_path); ++ } else { ++ firstObj = SP_ITEM(obj); ++ res_pathv.push_back(linked_path); ++ } ++ } ++ } ++ if (!res_pathv.empty()) { ++ res_pathv.front().close(); ++ } ++ curve->set_pathvector(res_pathv); ++} ++ ++} // namespace LivePathEffect ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-fill-between-many.h' +--- src/live_effects/lpe-fill-between-many.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-fill-between-many.h 2014-03-01 21:13:34 +0000 +@@ -0,0 +1,36 @@ ++#ifndef INKSCAPE_LPE_FILL_BETWEEN_MANY_H ++#define INKSCAPE_LPE_FILL_BETWEEN_MANY_H ++ ++/* ++ * Inkscape::LPEFillBetweenStrokes ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/effect.h" ++#include "live_effects/parameter/originalpatharray.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++class LPEFillBetweenMany : public Effect { ++public: ++ LPEFillBetweenMany(LivePathEffectObject *lpeobject); ++ virtual ~LPEFillBetweenMany(); ++ ++ virtual void doEffect (SPCurve * curve); ++ ++private: ++ OriginalPathArrayParam linked_paths; ++ ++private: ++ LPEFillBetweenMany(const LPEFillBetweenMany&); ++ LPEFillBetweenMany& operator=(const LPEFillBetweenMany&); ++}; ++ ++}; //namespace LivePathEffect ++}; //namespace Inkscape ++ ++#endif + +=== added file 'src/live_effects/lpe-fill-between-strokes.cpp' +--- src/live_effects/lpe-fill-between-strokes.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-fill-between-strokes.cpp 2014-03-01 21:13:06 +0000 +@@ -0,0 +1,116 @@ ++/* ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++ ++#include "live_effects/lpe-fill-between-strokes.h" ++ ++#include "display/curve.h" ++#include "sp-item.h" ++#include "2geom/path.h" ++#include "sp-shape.h" ++#include "sp-text.h" ++#include "2geom/bezier-curve.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++LPEFillBetweenStrokes::LPEFillBetweenStrokes(LivePathEffectObject *lpeobject) : ++ Effect(lpeobject), ++ linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), ++ second_path(_("Second path:"), _("Second path from which to take the original path data"), "secondpath", &wr, this), ++ reverse_second(_("Reverse Second"), _("Reverses the second path order"), "reversesecond", &wr, this) ++{ ++ registerParameter( dynamic_cast(&linked_path) ); ++ registerParameter( dynamic_cast(&second_path) ); ++ registerParameter( dynamic_cast(&reverse_second) ); ++ //perceived_path = true; ++} ++ ++LPEFillBetweenStrokes::~LPEFillBetweenStrokes() ++{ ++ ++} ++ ++void LPEFillBetweenStrokes::doEffect (SPCurve * curve) ++{ ++ if (curve) { ++ if ( linked_path.linksToPath() && second_path.linksToPath() && linked_path.getObject() && second_path.getObject() ) { ++ std::vector linked_pathv = linked_path.get_pathvector(); ++ std::vector second_pathv = second_path.get_pathvector(); ++ std::vector result_linked_pathv; ++ std::vector result_second_pathv; ++ Geom::Affine second_transform = second_path.getObject()->getRelativeTransform(linked_path.getObject()); ++ ++ for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) ++ { ++ result_linked_pathv.push_back((*iter)); ++ } ++ for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) ++ { ++ result_second_pathv.push_back((*iter) * second_transform); ++ } ++ ++ if ( !result_linked_pathv.empty() && !result_second_pathv.empty() && !result_linked_pathv.front().closed() ) { ++ if (reverse_second.get_value()) ++ { ++ result_linked_pathv.front().appendNew(result_second_pathv.front().finalPoint()); ++ result_linked_pathv.front().append(result_second_pathv.front().reverse()); ++ } ++ else ++ { ++ result_linked_pathv.front().appendNew(result_second_pathv.front().initialPoint()); ++ result_linked_pathv.front().append(result_second_pathv.front()); ++ } ++ curve->set_pathvector(result_linked_pathv); ++ } ++ else if ( !result_linked_pathv.empty() ) { ++ curve->set_pathvector(result_linked_pathv); ++ } ++ else if ( !result_second_pathv.empty() ) { ++ curve->set_pathvector(result_second_pathv); ++ } ++ } ++ else if ( linked_path.linksToPath() && linked_path.getObject() ) { ++ std::vector linked_pathv = linked_path.get_pathvector(); ++ std::vector result_pathv; ++ ++ for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) ++ { ++ result_pathv.push_back((*iter)); ++ } ++ if ( !result_pathv.empty() ) { ++ curve->set_pathvector(result_pathv); ++ } ++ } ++ else if ( second_path.linksToPath() && second_path.getObject() ) { ++ std::vector second_pathv = second_path.get_pathvector(); ++ std::vector result_pathv; ++ ++ for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) ++ { ++ result_pathv.push_back((*iter)); ++ } ++ if ( !result_pathv.empty() ) { ++ curve->set_pathvector(result_pathv); ++ } ++ } ++ } ++} ++ ++} // namespace LivePathEffect ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/lpe-fill-between-strokes.h' +--- src/live_effects/lpe-fill-between-strokes.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/lpe-fill-between-strokes.h 2014-03-01 21:11:40 +0000 +@@ -0,0 +1,38 @@ ++#ifndef INKSCAPE_LPE_FILL_BETWEEN_STROKES_H ++#define INKSCAPE_LPE_FILL_BETWEEN_STROKES_H ++ ++/* ++ * Inkscape::LPEFillBetweenStrokes ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/effect.h" ++#include "live_effects/parameter/originalpath.h" ++ ++namespace Inkscape { ++namespace LivePathEffect { ++ ++class LPEFillBetweenStrokes : public Effect { ++public: ++ LPEFillBetweenStrokes(LivePathEffectObject *lpeobject); ++ virtual ~LPEFillBetweenStrokes(); ++ ++ virtual void doEffect (SPCurve * curve); ++ ++private: ++ OriginalPathParam linked_path; ++ OriginalPathParam second_path; ++ BoolParam reverse_second; ++ ++private: ++ LPEFillBetweenStrokes(const LPEFillBetweenStrokes&); ++ LPEFillBetweenStrokes& operator=(const LPEFillBetweenStrokes&); ++}; ++ ++}; //namespace LivePathEffect ++}; //namespace Inkscape ++ ++#endif + +=== added file 'src/live_effects/parameter/originalpatharray.cpp' +--- src/live_effects/parameter/originalpatharray.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/parameter/originalpatharray.cpp 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,486 @@ ++/* ++ * Copyright (C) Johan Engelen 2008 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include "live_effects/parameter/originalpatharray.h" ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "inkscape.h" ++#include "icon-size.h" ++#include "widgets/icon.h" ++#include "ui/clipboard.h" ++#include "svg/svg.h" ++#include "svg/stringstream.h" ++#include "originalpath.h" ++#include "uri.h" ++#include "display/curve.h" ++ ++#include ++#include <2geom/coord.h> ++#include <2geom/point.h> ++#include "sp-shape.h" ++#include "sp-text.h" ++#include "live_effects/effect.h" ++ ++#include "verbs.h" ++#include "document-undo.h" ++#include "document.h" ++ ++namespace Inkscape { ++ ++namespace LivePathEffect { ++ ++class OriginalPathArrayParam::ModelColumns : public Gtk::TreeModel::ColumnRecord ++{ ++public: ++ ++ ModelColumns() ++ { ++ add(_colObject); ++ add(_colLabel); ++ add(_colReverse); ++ } ++ virtual ~ModelColumns() {} ++ ++ Gtk::TreeModelColumn _colObject; ++ Gtk::TreeModelColumn _colLabel; ++ Gtk::TreeModelColumn _colReverse; ++}; ++ ++OriginalPathArrayParam::OriginalPathArrayParam( const Glib::ustring& label, ++ const Glib::ustring& tip, ++ const Glib::ustring& key, ++ Inkscape::UI::Widget::Registry* wr, ++ Effect* effect ) ++: Parameter(label, tip, key, wr, effect), ++ _vector(), ++ _tree(), ++ _text_renderer(), ++ _toggle_renderer(), ++ _scroller() ++{ ++ _model = new ModelColumns(); ++ _store = Gtk::TreeStore::create(*_model); ++ _tree.set_model(_store); ++ ++ _tree.set_reorderable(true); ++ _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); ++ ++ _text_renderer = manage(new Gtk::CellRendererText()); ++ int nameColNum = _tree.append_column(_("Name"), *_text_renderer) - 1; ++ _name_column = _tree.get_column(nameColNum); ++ _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); ++ ++ _tree.set_expander_column( *_tree.get_column(nameColNum) ); ++ _tree.set_search_column(_model->_colLabel); ++ ++ Gtk::CellRendererToggle * _toggle_renderer = manage(new Gtk::CellRendererToggle()); ++ int toggleColNum = _tree.append_column(_("Reverse"), *_toggle_renderer) - 1; ++ Gtk::TreeViewColumn* col = _tree.get_column(toggleColNum); ++ _toggle_renderer->set_activatable(true); ++ _toggle_renderer->signal_toggled().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_reverse_toggled)); ++ col->add_attribute(_toggle_renderer->property_active(), _model->_colReverse); ++ ++ _scroller.add(_tree); ++ _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); ++ _scroller.set_shadow_type(Gtk::SHADOW_IN); ++ ++ oncanvas_editable = true; ++ ++} ++ ++OriginalPathArrayParam::~OriginalPathArrayParam() ++{ ++ while (!_vector.empty()) { ++ PathAndDirection *w = _vector.back(); ++ _vector.pop_back(); ++ unlink(w); ++ delete w; ++ } ++ delete _model; ++} ++ ++void OriginalPathArrayParam::on_reverse_toggled(const Glib::ustring& path) ++{ ++ Gtk::TreeModel::iterator iter = _store->get_iter(path); ++ Gtk::TreeModel::Row row = *iter; ++ PathAndDirection *w = row[_model->_colObject]; ++ row[_model->_colReverse] = !row[_model->_colReverse]; ++ w->reversed = row[_model->_colReverse]; ++ ++ gchar * full = param_getSVGValue(); ++ param_write_to_repr(full); ++ g_free(full); ++ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, ++ _("Link path parameter to path")); ++} ++ ++void OriginalPathArrayParam::param_set_default() ++{ ++ ++} ++ ++Gtk::Widget* OriginalPathArrayParam::param_newWidget() ++{ ++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox()); ++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); ++ ++ vbox->pack_start(_scroller, Gtk::PACK_EXPAND_WIDGET); ++ ++ ++ { // Paste path to link button ++ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_PASTE, Inkscape::ICON_SIZE_BUTTON) ); ++ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); ++ pButton->set_relief(Gtk::RELIEF_NONE); ++ pIcon->show(); ++ pButton->add(*pIcon); ++ pButton->show(); ++ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_link_button_click)); ++ hbox->pack_start(*pButton, Gtk::PACK_SHRINK); ++ pButton->set_tooltip_text(_("Link to path")); ++ } ++ ++ { // Remove linked path ++ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_REMOVE, Inkscape::ICON_SIZE_BUTTON) ); ++ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); ++ pButton->set_relief(Gtk::RELIEF_NONE); ++ pIcon->show(); ++ pButton->add(*pIcon); ++ pButton->show(); ++ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_remove_button_click)); ++ hbox->pack_start(*pButton, Gtk::PACK_SHRINK); ++ pButton->set_tooltip_text(_("Remove Path")); ++ } ++ ++ { // Move Down ++ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_DOWN, Inkscape::ICON_SIZE_BUTTON) ); ++ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); ++ pButton->set_relief(Gtk::RELIEF_NONE); ++ pIcon->show(); ++ pButton->add(*pIcon); ++ pButton->show(); ++ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_down_button_click)); ++ hbox->pack_end(*pButton, Gtk::PACK_SHRINK); ++ pButton->set_tooltip_text(_("Move Down")); ++ } ++ ++ { // Move Down ++ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_UP, Inkscape::ICON_SIZE_BUTTON) ); ++ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); ++ pButton->set_relief(Gtk::RELIEF_NONE); ++ pIcon->show(); ++ pButton->add(*pIcon); ++ pButton->show(); ++ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_up_button_click)); ++ hbox->pack_end(*pButton, Gtk::PACK_SHRINK); ++ pButton->set_tooltip_text(_("Move Up")); ++ } ++ ++ vbox->pack_end(*hbox, Gtk::PACK_SHRINK); ++ ++ vbox->show_all_children(true); ++ ++ return vbox; ++} ++ ++bool OriginalPathArrayParam::_selectIndex(const Gtk::TreeIter& iter, int* i) ++{ ++ if ((*i)-- <= 0) { ++ _tree.get_selection()->select(iter); ++ return true; ++ } ++ return false; ++} ++ ++void OriginalPathArrayParam::on_up_button_click() ++{ ++ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); ++ if (iter) { ++ Gtk::TreeModel::Row row = *iter; ++ ++ int i = -1; ++ std::vector::iterator piter = _vector.begin(); ++ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); piter = iter, i++, iter++) { ++ if (*iter == row[_model->_colObject]) { ++ _vector.erase(iter); ++ _vector.insert(piter, row[_model->_colObject]); ++ break; ++ } ++ } ++ ++ gchar * full = param_getSVGValue(); ++ param_write_to_repr(full); ++ g_free(full); ++ ++ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, ++ _("Move path up")); ++ ++ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); ++ } ++} ++ ++void OriginalPathArrayParam::on_down_button_click() ++{ ++ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); ++ if (iter) { ++ Gtk::TreeModel::Row row = *iter; ++ ++ int i = 0; ++ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); i++, iter++) { ++ if (*iter == row[_model->_colObject]) { ++ std::vector::iterator niter = _vector.erase(iter); ++ if (niter != _vector.end()) { ++ niter++; ++ i++; ++ } ++ _vector.insert(niter, row[_model->_colObject]); ++ break; ++ } ++ } ++ ++ gchar * full = param_getSVGValue(); ++ param_write_to_repr(full); ++ g_free(full); ++ ++ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, ++ _("Move path down")); ++ ++ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); ++ } ++} ++ ++void OriginalPathArrayParam::on_remove_button_click() ++{ ++ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); ++ if (iter) { ++ Gtk::TreeModel::Row row = *iter; ++ remove_link(row[_model->_colObject]); ++ ++ gchar * full = param_getSVGValue(); ++ param_write_to_repr(full); ++ g_free(full); ++ ++ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, ++ _("Remove path")); ++ } ++ ++} ++ ++void ++OriginalPathArrayParam::on_link_button_click() ++{ ++ Inkscape::UI::ClipboardManager *cm = Inkscape::UI::ClipboardManager::get(); ++ Glib::ustring pathid = cm->getShapeOrTextObjectId(SP_ACTIVE_DESKTOP); ++ ++ if (pathid == "") { ++ return; ++ } ++ // add '#' at start to make it an uri. ++ pathid.insert(pathid.begin(), '#'); ++ ++ Inkscape::SVGOStringStream os; ++ bool foundOne = false; ++ for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { ++ if (foundOne) { ++ os << "|"; ++ } else { ++ foundOne = true; ++ } ++ os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); ++ } ++ ++ if (foundOne) { ++ os << "|"; ++ } ++ ++ os << pathid.c_str() << ",0"; ++ ++ param_write_to_repr(os.str().c_str()); ++ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, ++ _("Link path parameter to path")); ++} ++ ++void OriginalPathArrayParam::unlink(PathAndDirection* to) ++{ ++ to->linked_modified_connection.disconnect(); ++ to->linked_delete_connection.disconnect(); ++ to->ref.detach(); ++ to->_pathvector = Geom::PathVector(); ++ if (to->href) { ++ g_free(to->href); ++ to->href = NULL; ++ } ++} ++ ++void OriginalPathArrayParam::remove_link(PathAndDirection* to) ++{ ++ unlink(to); ++ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); iter++) { ++ if (*iter == to) { ++ PathAndDirection *w = *iter; ++ _vector.erase(iter); ++ delete w; ++ return; ++ } ++ } ++} ++ ++void OriginalPathArrayParam::linked_delete(SPObject */*deleted*/, PathAndDirection* to) ++{ ++ //remove_link(to); ++ ++ gchar * full = param_getSVGValue(); ++ param_write_to_repr(full); ++ g_free(full); ++} ++ ++bool OriginalPathArrayParam::_updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ if (row[_model->_colObject] == pd) { ++ SPObject *obj = pd->ref.getObject(); ++ row[_model->_colLabel] = obj && obj->getId() ? ( obj->label() ? obj->label() : obj->getId() ) : pd->href; ++ return true; ++ } ++ return false; ++} ++ ++void OriginalPathArrayParam::linked_changed(SPObject */*old_obj*/, SPObject *new_obj, PathAndDirection* to) ++{ ++ to->linked_delete_connection.disconnect(); ++ to->linked_modified_connection.disconnect(); ++ to->linked_transformed_connection.disconnect(); ++ ++ if (new_obj && SP_IS_ITEM(new_obj)) { ++ to->linked_delete_connection = new_obj->connectDelete(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_delete), to)); ++ to->linked_modified_connection = new_obj->connectModified(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_modified), to)); ++ to->linked_transformed_connection = SP_ITEM(new_obj)->connectTransformed(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_transformed), to)); ++ ++ linked_modified(new_obj, SP_OBJECT_MODIFIED_FLAG, to); ++ } else { ++ to->_pathvector = Geom::PathVector(); ++ SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); ++ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); ++ } ++} ++ ++void OriginalPathArrayParam::linked_transformed(Geom::Affine const *mp, SPItem* original, PathAndDirection* to) ++{ ++ ++} ++ ++void OriginalPathArrayParam::setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to) ++{ ++ if (!to) { ++ return; ++ } ++ SPCurve *curve = NULL; ++ if (SP_IS_SHAPE(linked_obj)) { ++ curve = SP_SHAPE(linked_obj)->getCurvePerceived(); ++ } ++ if (SP_IS_TEXT(linked_obj)) { ++ curve = SP_TEXT(linked_obj)->getNormalizedBpath(); ++ } ++ ++ if (curve == NULL) { ++ // curve invalid, set empty pathvector ++ to->_pathvector = Geom::PathVector(); ++ } else { ++ to->_pathvector = curve->get_pathvector(); ++ curve->unref(); ++ } ++} ++ ++void OriginalPathArrayParam::linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to) ++{ ++ if (!to) { ++ return; ++ } ++ setPathVector(linked_obj, flags, to); ++ SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); ++ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); ++} ++ ++//void PathParam::linked_transformed(Geom::Affine const *rel_transf, SPItem *moved_item) ++//{ ++// linked_transformed_callback(rel_transf, moved_item); ++//} ++ ++bool OriginalPathArrayParam::param_readSVGValue(const gchar* strvalue) ++{ ++ if (strvalue) { ++ while (!_vector.empty()) { ++ PathAndDirection *w = _vector.back(); ++ unlink(w); ++ _vector.pop_back(); ++ delete w; ++ } ++ _store->clear(); ++ ++ gchar ** strarray = g_strsplit(strvalue, "|", 0); ++ for (gchar ** iter = strarray; *iter != NULL; iter++) { ++ if ((*iter)[0] == '#') { ++ gchar ** substrarray = g_strsplit(*iter, ",", 0); ++ PathAndDirection* w = new PathAndDirection((SPObject *)param_effect->getLPEObj()); ++ w->href = g_strdup(*substrarray); ++ w->reversed = *(substrarray+1) != NULL && (*(substrarray+1))[0] == '1'; ++ ++ w->linked_changed_connection = w->ref.changedSignal().connect(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_changed), w)); ++ w->ref.attach(URI(w->href)); ++ ++ _vector.push_back(w); ++ ++ Gtk::TreeModel::iterator iter = _store->append(); ++ Gtk::TreeModel::Row row = *iter; ++ SPObject *obj = w->ref.getObject(); ++ ++ row[_model->_colObject] = w; ++ row[_model->_colLabel] = obj ? ( obj->label() ? obj->label() : obj->getId() ) : w->href; ++ row[_model->_colReverse] = w->reversed; ++ g_strfreev (substrarray); ++ } ++ } ++ g_strfreev (strarray); ++ return true; ++ } ++ return false; ++} ++ ++gchar * OriginalPathArrayParam::param_getSVGValue() const ++{ ++ Inkscape::SVGOStringStream os; ++ bool foundOne = false; ++ for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { ++ if (foundOne) { ++ os << "|"; ++ } else { ++ foundOne = true; ++ } ++ os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); ++ } ++ gchar * str = g_strdup(os.str().c_str()); ++ return str; ++} ++ ++} /* namespace LivePathEffect */ ++ ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/parameter/originalpatharray.h' +--- src/live_effects/parameter/originalpatharray.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/parameter/originalpatharray.h 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,123 @@ ++#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H ++#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H ++ ++/* ++ * Inkscape::LivePathEffectParameters ++ * ++* Copyright (C) Johan Engelen 2008 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "live_effects/parameter/parameter.h" ++#include "live_effects/parameter/path-reference.h" ++ ++#include "svg/svg.h" ++#include "svg/stringstream.h" ++#include "path-reference.h" ++#include "sp-object.h" ++ ++namespace Inkscape { ++ ++namespace LivePathEffect { ++ ++class PathAndDirection { ++public: ++ PathAndDirection(SPObject *owner) ++ : href(NULL), ++ ref(owner), ++ _pathvector(Geom::PathVector()), ++ reversed(false) ++ { ++ ++ } ++ gchar *href; ++ URIReference ref; ++ //SPItem *obj; ++ std::vector _pathvector; ++ bool reversed; ++ ++ sigc::connection linked_changed_connection; ++ sigc::connection linked_delete_connection; ++ sigc::connection linked_modified_connection; ++ sigc::connection linked_transformed_connection; ++}; ++ ++class OriginalPathArrayParam : public Parameter { ++public: ++ class ModelColumns; ++ ++ OriginalPathArrayParam( const Glib::ustring& label, ++ const Glib::ustring& tip, ++ const Glib::ustring& key, ++ Inkscape::UI::Widget::Registry* wr, ++ Effect* effect); ++ ++ virtual ~OriginalPathArrayParam(); ++ ++ virtual Gtk::Widget * param_newWidget(); ++ virtual bool param_readSVGValue(const gchar * strvalue); ++ virtual gchar * param_getSVGValue() const; ++ virtual void param_set_default(); ++ ++ /** Disable the canvas indicators of parent class by overriding this method */ ++ virtual void param_editOncanvas(SPItem * /*item*/, SPDesktop * /*dt*/) {}; ++ /** Disable the canvas indicators of parent class by overriding this method */ ++ virtual void addCanvasIndicators(SPLPEItem const* /*lpeitem*/, std::vector & /*hp_vec*/) {}; ++ ++ std::vector _vector; ++ ++protected: ++ bool _updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd); ++ bool _selectIndex(const Gtk::TreeIter& iter, int* i); ++ void unlink(PathAndDirection* to); ++ void remove_link(PathAndDirection* to); ++ void setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to); ++ ++ void linked_changed(SPObject *old_obj, SPObject *new_obj, PathAndDirection* to); ++ void linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to); ++ void linked_transformed(Geom::Affine const *mp, SPItem *original, PathAndDirection* to); ++ void linked_delete(SPObject *deleted, PathAndDirection* to); ++ ++ ModelColumns *_model; ++ Glib::RefPtr _store; ++ Gtk::TreeView _tree; ++ Gtk::CellRendererText *_text_renderer; ++ Gtk::CellRendererToggle *_toggle_renderer; ++ Gtk::TreeView::Column *_name_column; ++ Gtk::ScrolledWindow _scroller; ++ ++ void on_link_button_click(); ++ void on_remove_button_click(); ++ void on_up_button_click(); ++ void on_down_button_click(); ++ void on_reverse_toggled(const Glib::ustring& path); ++ ++private: ++ OriginalPathArrayParam(const OriginalPathArrayParam&); ++ OriginalPathArrayParam& operator=(const OriginalPathArrayParam&); ++}; ++ ++} //namespace LivePathEffect ++ ++} //namespace Inkscape ++ ++#endif ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/parameter/transformedpoint.cpp' +--- src/live_effects/parameter/transformedpoint.cpp 1970-01-01 00:00:00 +0000 ++++ src/live_effects/parameter/transformedpoint.cpp 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,182 @@ ++/* ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++ ++#include "ui/widget/registered-widget.h" ++#include "live_effects/parameter/transformedpoint.h" ++#include "sp-lpe-item.h" ++#include "knotholder.h" ++#include "svg/svg.h" ++#include "svg/stringstream.h" ++ ++#include "live_effects/effect.h" ++#include "desktop.h" ++#include "verbs.h" ++ ++namespace Inkscape { ++ ++namespace LivePathEffect { ++ ++TransformedPointParam::TransformedPointParam( const Glib::ustring& label, const Glib::ustring& tip, ++ const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr, ++ Effect* effect, Geom::Point default_vector, ++ bool dontTransform) ++ : Parameter(label, tip, key, wr, effect), ++ defvalue(default_vector), ++ origin(0.,0.), ++ vector(default_vector), ++ noTransform(dontTransform) ++{ ++ vec_knot_shape = SP_KNOT_SHAPE_DIAMOND; ++ vec_knot_mode = SP_KNOT_MODE_XOR; ++ vec_knot_color = 0xffffb500; ++} ++ ++TransformedPointParam::~TransformedPointParam() ++{ ++ ++} ++ ++void ++TransformedPointParam::param_set_default() ++{ ++ setOrigin(Geom::Point(0.,0.)); ++ setVector(defvalue); ++} ++ ++bool ++TransformedPointParam::param_readSVGValue(const gchar * strvalue) ++{ ++ gchar ** strarray = g_strsplit(strvalue, ",", 4); ++ if (!strarray) { ++ return false; ++ } ++ double val[4]; ++ unsigned int i = 0; ++ while (i < 4 && strarray[i]) { ++ if (sp_svg_number_read_d(strarray[i], &val[i]) != 0) { ++ i++; ++ } else { ++ break; ++ } ++ } ++ g_strfreev (strarray); ++ if (i == 4) { ++ setOrigin( Geom::Point(val[0], val[1]) ); ++ setVector( Geom::Point(val[2], val[3]) ); ++ return true; ++ } ++ return false; ++} ++ ++gchar * ++TransformedPointParam::param_getSVGValue() const ++{ ++ Inkscape::SVGOStringStream os; ++ os << origin << " , " << vector; ++ gchar * str = g_strdup(os.str().c_str()); ++ return str; ++} ++ ++Gtk::Widget * ++TransformedPointParam::param_newWidget() ++{ ++ Inkscape::UI::Widget::RegisteredVector * pointwdg = Gtk::manage( ++ new Inkscape::UI::Widget::RegisteredVector( param_label, ++ param_tooltip, ++ param_key, ++ *param_wr, ++ param_effect->getRepr(), ++ param_effect->getSPDoc() ) ); ++ pointwdg->setPolarCoords(); ++ pointwdg->setValue( vector, origin ); ++ pointwdg->clearProgrammatically(); ++ pointwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change vector parameter")); ++ ++ Gtk::HBox * hbox = Gtk::manage( new Gtk::HBox() ); ++ static_cast(hbox)->pack_start(*pointwdg, true, true); ++ static_cast(hbox)->show_all_children(); ++ ++ return dynamic_cast (hbox); ++} ++ ++void ++TransformedPointParam::set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector) ++{ ++ setValues(new_origin, new_vector); ++ gchar * str = param_getSVGValue(); ++ param_write_to_repr(str); ++ g_free(str); ++} ++ ++void ++TransformedPointParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/) ++{ ++ if (!noTransform) { ++ set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() ); ++ } ++} ++ ++ ++void ++TransformedPointParam::set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color) ++{ ++ vec_knot_shape = shape; ++ vec_knot_mode = mode; ++ vec_knot_color = color; ++} ++ ++void ++TransformedPointParam::set_oncanvas_color(guint32 color) ++{ ++ vec_knot_color = color; ++} ++ ++class TransformedPointParamKnotHolderEntity_Vector : public KnotHolderEntity { ++public: ++ TransformedPointParamKnotHolderEntity_Vector(TransformedPointParam *p) : param(p) { } ++ virtual ~TransformedPointParamKnotHolderEntity_Vector() {} ++ ++ virtual void knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint /*state*/) { ++ Geom::Point const s = p - param->origin; ++ /// @todo implement angle snapping when holding CTRL ++ param->setVector(s); ++ sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); ++ }; ++ virtual Geom::Point knot_get() const{ ++ return param->origin + param->vector; ++ }; ++ virtual void knot_click(guint /*state*/){ ++ g_print ("This is the vector handle associated to parameter '%s'\n", param->param_key.c_str()); ++ }; ++ ++private: ++ TransformedPointParam *param; ++}; ++ ++void ++TransformedPointParam::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) ++{ ++ TransformedPointParamKnotHolderEntity_Vector *vector_e = new TransformedPointParamKnotHolderEntity_Vector(this); ++ vector_e->create(desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, handleTip(), vec_knot_shape, vec_knot_mode, vec_knot_color); ++ knotholder->add(vector_e); ++} ++ ++} /* namespace LivePathEffect */ ++ ++} /* namespace Inkscape */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + +=== added file 'src/live_effects/parameter/transformedpoint.h' +--- src/live_effects/parameter/transformedpoint.h 1970-01-01 00:00:00 +0000 ++++ src/live_effects/parameter/transformedpoint.h 2013-09-07 18:46:36 +0000 +@@ -0,0 +1,87 @@ ++#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H ++#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H ++ ++/* ++ * Inkscape::LivePathEffectParameters ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++#include <2geom/point.h> ++ ++#include "live_effects/parameter/parameter.h" ++ ++#include "knot-holder-entity.h" ++ ++namespace Inkscape { ++ ++namespace LivePathEffect { ++ ++ ++class TransformedPointParam : public Parameter { ++public: ++ TransformedPointParam( const Glib::ustring& label, ++ const Glib::ustring& tip, ++ const Glib::ustring& key, ++ Inkscape::UI::Widget::Registry* wr, ++ Effect* effect, ++ Geom::Point default_vector = Geom::Point(1,0), ++ bool dontTransform = false); ++ virtual ~TransformedPointParam(); ++ ++ virtual Gtk::Widget * param_newWidget(); ++ inline const gchar *handleTip() const { return param_tooltip.c_str(); } ++ ++ virtual bool param_readSVGValue(const gchar * strvalue); ++ virtual gchar * param_getSVGValue() const; ++ ++ Geom::Point getVector() const { return vector; }; ++ Geom::Point getOrigin() const { return origin; }; ++ void setValues(Geom::Point const &new_origin, Geom::Point const &new_vector) { setVector(new_vector); setOrigin(new_origin); }; ++ void setVector(Geom::Point const &new_vector) { vector = new_vector; }; ++ void setOrigin(Geom::Point const &new_origin) { origin = new_origin; }; ++ virtual void param_set_default(); ++ ++ void set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector); ++ ++ virtual void param_transform_multiply(Geom::Affine const &postmul, bool set); ++ ++ void set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); ++ //void set_origin_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); ++ void set_oncanvas_color(guint32 color); ++ ++ virtual bool providesKnotHolderEntities() const { return true; } ++ virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); ++ ++private: ++ TransformedPointParam(const TransformedPointParam&); ++ TransformedPointParam& operator=(const TransformedPointParam&); ++ ++ Geom::Point defvalue; ++ ++ Geom::Point origin; ++ Geom::Point vector; ++ ++ bool noTransform; ++ ++ /// The looks of the vector and origin knots oncanvas ++ SPKnotShapeType vec_knot_shape; ++ SPKnotModeType vec_knot_mode; ++ guint32 vec_knot_color; ++// SPKnotShapeType ori_knot_shape; ++// SPKnotModeType ori_knot_mode; ++// guint32 ori_knot_color; ++ ++// friend class VectorParamKnotHolderEntity_Origin; ++ friend class TransformedPointParamKnotHolderEntity_Vector; ++}; ++ ++ ++} //namespace LivePathEffect ++ ++} //namespace Inkscape ++ ++#endif + diff --git a/mkerror.txt b/mkerror.txt new file mode 100644 index 000000000..069535166 --- /dev/null +++ b/mkerror.txt @@ -0,0 +1,11 @@ +make all-recursive +make[1]: Entering directory `/home/inkscape-diff' +Making all in src +make[2]: Entering directory `/home/inkscape-diff/src' +make all-am +make[3]: Entering directory `/home/inkscape-diff/src' + CXXLD inkscape + CXXLD inkview +make[3]: Leaving directory `/home/inkscape-diff/src' +make[2]: Leaving directory `/home/inkscape-diff/src' +make[1]: Leaving directory `/home/inkscape-diff' diff --git a/objects_dialog.patch b/objects_dialog.patch new file mode 100644 index 000000000..1cdd09c34 --- /dev/null +++ b/objects_dialog.patch @@ -0,0 +1,3637 @@ +=== modified file 'src/attributes.cpp' +--- src/attributes.cpp 2012-12-22 16:34:31 +0000 ++++ src/attributes.cpp 2013-03-17 14:36:44 +0000 +@@ -41,6 +41,7 @@ + {SP_ATTR_TRANSFORM_CENTER_X, "inkscape:transform-center-x"}, + {SP_ATTR_TRANSFORM_CENTER_Y, "inkscape:transform-center-y"}, + {SP_ATTR_INKSCAPE_PATH_EFFECT, "inkscape:path-effect"}, ++ {SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, "inkscape:highlight-color"}, + /* SPAnchor */ + {SP_ATTR_XLINK_HREF, "xlink:href"}, + {SP_ATTR_XLINK_TYPE, "xlink:type"}, +@@ -50,7 +51,9 @@ + {SP_ATTR_XLINK_SHOW, "xlink:show"}, + {SP_ATTR_XLINK_ACTUATE, "xlink:actuate"}, + {SP_ATTR_TARGET, "target"}, ++ /* SPGroup */ + {SP_ATTR_INKSCAPE_GROUPMODE, "inkscape:groupmode"}, ++ {SP_ATTR_INKSCAPE_EXPANDED, "inkscape:expanded"}, + /* SPRoot */ + {SP_ATTR_VERSION, "version"}, + {SP_ATTR_WIDTH, "width"}, + +=== modified file 'src/attributes.h' +--- src/attributes.h 2012-12-22 16:34:31 +0000 ++++ src/attributes.h 2013-03-17 14:36:17 +0000 +@@ -40,6 +40,7 @@ + SP_ATTR_TRANSFORM_CENTER_X, + SP_ATTR_TRANSFORM_CENTER_Y, + SP_ATTR_INKSCAPE_PATH_EFFECT, ++ SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, + /* SPAnchor */ + SP_ATTR_XLINK_HREF, + SP_ATTR_XLINK_TYPE, +@@ -51,6 +52,7 @@ + SP_ATTR_TARGET, + /* SPGroup */ + SP_ATTR_INKSCAPE_GROUPMODE, ++ SP_ATTR_INKSCAPE_EXPANDED, + /* SPRoot */ + SP_ATTR_VERSION, + SP_ATTR_WIDTH, + +=== modified file 'src/desktop.cpp' +--- src/desktop.cpp 2013-01-27 14:19:11 +0000 ++++ src/desktop.cpp 2013-03-17 14:43:46 +0000 +@@ -1885,6 +1885,7 @@ + std::map mapVerbPreference; + std::map::const_iterator iter; + mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_LAYERS, "/dialogs/layers") ); ++ mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_OBJECTS, "/dialogs/objects") ); + mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_FILL_STROKE, "/dialogs/fillstroke") ); + mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_EXTENSIONEDITOR, "/dialogs/extensioneditor") ); + mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_ALIGN_DISTRIBUTE, "/dialogs/align") ); + +=== modified file 'src/menus-skeleton.h' +--- src/menus-skeleton.h 2013-03-16 16:26:03 +0000 ++++ src/menus-skeleton.h 2013-03-17 14:30:19 +0000 +@@ -180,6 +180,8 @@ + " \n" + " \n" + " \n" ++" \n" ++" \n" + " \n" + " \n" + " \n" + +=== modified file 'src/sp-item-group.cpp' +--- src/sp-item-group.cpp 2013-01-24 11:43:26 +0000 ++++ src/sp-item-group.cpp 2013-03-17 14:50:17 +0000 +@@ -123,6 +123,7 @@ + static void sp_group_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) + { + object->readAttr( "inkscape:groupmode" ); ++ object->readAttr( "inkscape:expanded" ); + + if (((SPObjectClass *)sp_group_parent_class)->build) { + ((SPObjectClass *)sp_group_parent_class)->build(object, document, repr); +@@ -221,7 +222,7 @@ + Inkscape::GC::release((Inkscape::XML::Node *) l->data); + l = g_slist_remove (l, l->data); + } +- } else { ++ } else if (!(flags & SP_OBJECT_WRITE_NO_CHILDREN)) { + for (SPObject *child = object->firstChild() ; child ; child = child->getNext() ) { + if ( !SP_IS_TITLE(child) && !SP_IS_DESC(child) ) { + child->updateRepr(flags); +@@ -241,6 +242,12 @@ + value = NULL; + } + repr->setAttribute("inkscape:groupmode", value); ++ ++ if (group->_expanded) { ++ repr->setAttribute("inkscape:expanded", "true"); ++ } else { ++ repr->setAttribute("inkscape:expanded", NULL); ++ } + } + + if (((SPObjectClass *) (sp_group_parent_class))->write) { +@@ -280,6 +287,11 @@ + group->setLayerMode(SPGroup::GROUP); + } + break; ++ case SP_ATTR_INKSCAPE_EXPANDED: ++ if ( value && !strcmp(value, "true") ) { ++ group->setExpanded(true); ++ } ++ break; + default: { + if (((SPObjectClass *) (sp_group_parent_class))->set) { + (* ((SPObjectClass *) (sp_group_parent_class))->set)(object, key, value); +@@ -517,6 +529,12 @@ + } + } + ++void SPGroup::setExpanded(bool isexpanded) { ++ if ( _expanded != isexpanded ){ ++ _expanded = isexpanded; ++ } ++} ++ + SPGroup::LayerMode SPGroup::layerDisplayMode(unsigned int dkey) const { + std::map::const_iterator iter; + iter = _display_modes.find(dkey); + +=== modified file 'src/sp-item-group.h' +--- src/sp-item-group.h 2011-10-04 19:04:58 +0000 ++++ src/sp-item-group.h 2013-03-17 14:50:53 +0000 +@@ -36,11 +36,15 @@ + struct SPGroup : public SPLPEItem { + enum LayerMode { GROUP, LAYER, MASK_HELPER }; + ++ bool _expanded; + LayerMode _layer_mode; + std::map _display_modes; + + LayerMode layerMode() const { return _layer_mode; } + void setLayerMode(LayerMode mode); ++ ++ bool expanded() const { return _expanded; } ++ void setExpanded(bool isexpanded); + + LayerMode effectiveLayerMode(unsigned int display_key) const { + if ( _layer_mode == LAYER ) { + +=== modified file 'src/sp-item.cpp' +--- src/sp-item.cpp 2013-01-23 12:22:14 +0000 ++++ src/sp-item.cpp 2013-03-17 14:54:59 +0000 +@@ -72,6 +72,9 @@ + #include "live_effects/lpeobject.h" + #include "live_effects/effect.h" + #include "live_effects/lpeobject-reference.h" ++#include "ui/tool/node-tool.h" ++#include "ui/tool/multi-path-manipulator.h" ++#include "tools-switch.h" + + #define noSP_ITEM_DEBUG_IDLE + +@@ -135,6 +138,8 @@ + _is_evaluated = true; + _evaluated_status = StatusUnknown; + ++ _highlightColor = NULL; ++ + transform = Geom::identity(); + doc_bbox = Geom::OptRect(); + freeze_stroke_width = false; +@@ -210,6 +215,62 @@ + return true; + } + ++bool SPItem::isHighlightSet() const { ++ return _highlightColor != NULL; ++} ++ ++guint32 SPItem::highlight_color() const { ++ if (_highlightColor) ++ { ++ return atoi(_highlightColor) | 0x000000ff; ++ } ++ else if (parent && parent != this && SP_IS_ITEM(parent)) ++ { ++ return SP_ITEM(parent)->highlight_color(); ++ } ++ else ++ { ++ static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); ++ return prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff) | 0x000000ff; ++ } ++} ++ ++void SPItem::setHighlightColor(guint32 const color) ++{ ++ g_free(_highlightColor); ++ if (color & 0x000000ff) ++ { ++ _highlightColor = g_strdup_printf("%u", color); ++ } ++ else ++ { ++ _highlightColor = NULL; ++ } ++ ++ InkNodeTool *tool = 0; ++ if (SP_ACTIVE_DESKTOP ) { ++ SPEventContext *ec = SP_ACTIVE_DESKTOP->event_context; ++ if (INK_IS_NODE_TOOL(ec)) { ++ tool = static_cast(ec); ++ tools_switch(tool->desktop, TOOLS_NODES); ++ } ++ } ++} ++ ++void SPItem::unsetHighlightColor() ++{ ++ g_free(_highlightColor); ++ _highlightColor = NULL; ++ InkNodeTool *tool = 0; ++ if (SP_ACTIVE_DESKTOP ) { ++ SPEventContext *ec = SP_ACTIVE_DESKTOP->event_context; ++ if (INK_IS_NODE_TOOL(ec)) { ++ tool = static_cast(ec); ++ tools_switch(tool->desktop, TOOLS_NODES); ++ } ++ } ++} ++ + void SPItem::setEvaluated(bool evaluated) { + _is_evaluated = evaluated; + _evaluated_status = StatusSet; +@@ -387,14 +448,30 @@ + while (target_ref->parent() != target_ref->root()) { + target_ref = target_ref->parent(); + } ++ if (target_ref) { ++ SPObject *obj = document->getObjectByRepr(target_ref); ++ if (SP_IS_ITEM(obj)) { ++ target = SP_ITEM(obj); ++ } ++ } + first = TRUE; + } ++ ++ g_assert(target_ref != NULL); + + if (intoafter) { ++ Geom::Affine t = getRelativeTransform(target); ++ doWriteTransform(our_ref, t); ++ our_ref = getRepr(); ++ + // Move this inside of the target at the end + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else if (target_ref->parent() != our_ref->parent()) { ++ Geom::Affine t = getRelativeTransform(target->parent); ++ doWriteTransform(our_ref, t); ++ our_ref = getRepr(); ++ + // Change in parent, need to remove and add + our_ref->parent()->removeChild(our_ref); + target_ref->parent()->addChild(our_ref, target_ref); +@@ -424,6 +501,7 @@ + object->readAttr( "inkscape:transform-center-y" ); + object->readAttr( "inkscape:connector-avoid" ); + object->readAttr( "inkscape:connection-points" ); ++ object->readAttr( "inkscape:highlight-color" ); + + if ((SP_OBJECT_CLASS(sp_item_parent_class))->build) { + (* (SP_OBJECT_CLASS(sp_item_parent_class))->build)(object, document, repr); +@@ -510,6 +588,14 @@ + v->arenaitem->setSensitive(item->sensitive); + } + break; ++ case SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR: ++ g_free(item->_highlightColor); ++ if (value) { ++ item->_highlightColor = g_strdup(value); ++ } else { ++ item->_highlightColor = NULL; ++ } ++ break; + case SP_ATTR_CONNECTOR_AVOID: + item->avoidRef->setAvoid(value); + break; +@@ -720,6 +806,11 @@ + g_free ((void *) value); + } + } ++ if (item->_highlightColor){ ++ repr->setAttribute("inkscape:highlight-color", item->_highlightColor); ++ } else { ++ repr->setAttribute("inkscape:highlight-color", NULL); ++ } + + if ((SP_OBJECT_CLASS(sp_item_parent_class))->write) { + (SP_OBJECT_CLASS(sp_item_parent_class))->write(object, xml_doc, repr, flags); + +=== modified file 'src/sp-item.h' +--- src/sp-item.h 2013-03-14 23:24:17 +0000 ++++ src/sp-item.h 2013-03-17 14:51:37 +0000 +@@ -144,11 +144,21 @@ + + void init(); + bool isLocked() const; ++ bool isSensitive() const { ++ return sensitive; ++ }; + void setLocked(bool lock); + + bool isHidden() const; + void setHidden(bool hidden); + ++ bool isHighlightSet() const; ++ guint32 highlight_color() const; ++ ++ void setHighlightColor(guint32 color); ++ ++ void unsetHighlightColor(); ++ + bool isEvaluated() const; + void setEvaluated(bool visible); + void resetEvaluated(); +@@ -218,6 +228,7 @@ + Geom::Affine dt2i_affine() const; + void convert_to_guides(); + ++ gchar *_highlightColor; + private: + enum EvaluatedStatus + { + +=== modified file 'src/sp-object.h' +--- src/sp-object.h 2013-03-14 01:33:10 +0000 ++++ src/sp-object.h 2013-03-17 14:53:10 +0000 +@@ -48,6 +48,7 @@ + #define SP_OBJECT_WRITE_BUILD (1 << 0) + #define SP_OBJECT_WRITE_EXT (1 << 1) + #define SP_OBJECT_WRITE_ALL (1 << 2) ++#define SP_OBJECT_WRITE_NO_CHILDREN (1 << 3) + + #include + #include + +=== modified file 'src/ui/dialog/Makefile_insert' +--- src/ui/dialog/Makefile_insert 2012-10-11 17:54:14 +0000 ++++ src/ui/dialog/Makefile_insert 2013-03-17 13:55:34 +0000 +@@ -70,6 +70,8 @@ + ui/dialog/memory.h \ + ui/dialog/messages.cpp \ + ui/dialog/messages.h \ ++ ui/dialog/objects.cpp \ ++ ui/dialog/objects.h \ + ui/dialog/ocaldialogs.cpp \ + ui/dialog/ocaldialogs.h \ + ui/dialog/object-attributes.cpp \ + +=== modified file 'src/ui/dialog/dialog-manager.cpp' +--- src/ui/dialog/dialog-manager.cpp 2013-03-16 16:26:03 +0000 ++++ src/ui/dialog/dialog-manager.cpp 2013-03-17 14:03:02 +0000 +@@ -40,6 +40,7 @@ + #include "ui/dialog/undo-history.h" + #include "ui/dialog/panel-dialog.h" + #include "ui/dialog/layers.h" ++#include "ui/dialog/objects.h" + #include "ui/dialog/icon-preview.h" + #include "ui/dialog/floating-behavior.h" + #include "ui/dialog/dock-behavior.h" +@@ -108,6 +109,7 @@ + registerFactory("IconPreviewPanel", &create); + registerFactory("InkscapePreferences", &create); + registerFactory("LayersPanel", &create); ++ registerFactory("ObjectsPanel", &create); + registerFactory("LivePathEffect", &create); + registerFactory("Memory", &create); + registerFactory("Messages", &create); +@@ -142,6 +144,7 @@ + registerFactory("IconPreviewPanel", &create); + registerFactory("InkscapePreferences", &create); + registerFactory("LayersPanel", &create); ++ registerFactory("ObjectsPanel", &create); + registerFactory("LivePathEffect", &create); + registerFactory("Memory", &create); + registerFactory("Messages", &create); + +=== added file 'src/ui/dialog/objects.cpp' +--- src/ui/dialog/objects.cpp 1970-01-01 00:00:00 +0000 ++++ src/ui/dialog/objects.cpp 2013-03-17 15:01:22 +0000 +@@ -0,0 +1,2014 @@ ++/* ++ * A simple panel for objects ++ * ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include "objects.h" ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "desktop.h" ++#include "desktop-style.h" ++#include "document.h" ++#include "document-undo.h" ++#include "helper/action.h" ++#include "inkscape.h" ++#include "preferences.h" ++#include "sp-item.h" ++#include "sp-object.h" ++#include "sp-shape.h" ++#include "svg/css-ostringstream.h" ++#include "ui/icon-names.h" ++#include "ui/widget/imagetoggler.h" ++#include "ui/widget/layertypeicon.h" ++#include "ui/widget/clipmaskicon.h" ++#include "ui/widget/highlight-picker.h" ++#include "verbs.h" ++#include "widgets/icon.h" ++#include "xml/node.h" ++#include "xml/node-observer.h" ++#include "xml/repr.h" ++#include "sp-root.h" ++#include "event-context.h" ++#include "selection.h" ++#include "dialogs/dialog-events.h" ++#include "widgets/sp-color-notebook.h" ++#include "style.h" ++#include "filter-chemistry.h" ++#include "filters/blend.h" ++#include "filters/gaussian-blur.h" ++#include "sp-clippath.h" ++#include "sp-mask.h" ++#include "layer-manager.h" ++ ++//#define DUMP_LAYERS 1 ++ ++namespace Inkscape { ++namespace UI { ++namespace Dialog { ++ ++using Inkscape::XML::Node; ++ ++/** ++ * Gets an instance of the Objects panel ++ */ ++ObjectsPanel& ObjectsPanel::getInstance() ++{ ++ return *new ObjectsPanel(); ++} ++ ++/** ++ * Column enumeration ++ */ ++enum { ++ COL_VISIBLE = 1, ++ COL_LOCKED, ++ COL_TYPE, ++ COL_CLIPMASK, ++ COL_HIGHLIGHT ++}; ++ ++/** ++ * Button enumeration ++ */ ++enum { ++ BUTTON_NEW = 0, ++ BUTTON_RENAME, ++ BUTTON_TOP, ++ BUTTON_BOTTOM, ++ BUTTON_UP, ++ BUTTON_DOWN, ++ BUTTON_DUPLICATE, ++ BUTTON_DELETE, ++ BUTTON_SOLO, ++ BUTTON_SHOW_ALL, ++ BUTTON_HIDE_ALL, ++ BUTTON_LOCK_OTHERS, ++ BUTTON_LOCK_ALL, ++ BUTTON_UNLOCK_ALL, ++ BUTTON_SETCLIP, ++ BUTTON_UNSETCLIP, ++ BUTTON_SETMASK, ++ BUTTON_UNSETMASK, ++ BUTTON_GROUP, ++ BUTTON_UNGROUP, ++ BUTTON_COLLAPSE_ALL, ++ DRAGNDROP ++}; ++ ++/** ++ * Xml node observer for observing objects in the document ++ */ ++class ObjectsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { ++public: ++ /** ++ * Creates a new object watcher ++ * @param pnl The panel to which the object watcher belongs ++ * @param obj The object to watch ++ */ ++ ObjectWatcher(ObjectsPanel* pnl, SPObject* obj) : ++ _pnl(pnl), ++ _obj(obj), ++ _repr(obj->getRepr()), ++ _highlightAttr(g_quark_from_string("inkscape:highlight-color")), ++ _lockedAttr(g_quark_from_string("sodipodi:insensitive")), ++ _labelAttr(g_quark_from_string("inkscape:label")), ++ _groupAttr(g_quark_from_string("inkscape:groupmode")), ++ _styleAttr(g_quark_from_string("style")), ++ _clipAttr(g_quark_from_string("clip-path")), ++ _maskAttr(g_quark_from_string("mask")) ++ {} ++ ++ virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) ++ { ++ if ( _pnl && _obj ) { ++ _pnl->_objectsChanged( _obj ); ++ } ++ } ++ virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) ++ { ++ if ( _pnl && _obj ) { ++ _pnl->_objectsChanged( _obj ); ++ } ++ } ++ virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) ++ { ++ if ( _pnl && _obj ) { ++ _pnl->_objectsChanged( _obj ); ++ } ++ } ++ virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} ++ virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { ++ if ( _pnl && _obj ) { ++ if ( name == _lockedAttr || name == _labelAttr || name == _highlightAttr || name == _groupAttr || name == _styleAttr || name == _clipAttr || name == _maskAttr ) { ++ _pnl->_updateObject(_obj, name == _highlightAttr); ++ if ( name == _styleAttr ) { ++ _pnl->_updateComposite(); ++ } ++ } ++ } ++ } ++ ++ /** ++ * Objects panel to which this watcher belongs ++ */ ++ ObjectsPanel* _pnl; ++ ++ /** ++ * The object that is being observed ++ */ ++ SPObject* _obj; ++ ++ /** ++ * The xml representation of the object that is being observed ++ */ ++ Inkscape::XML::Node* _repr; ++ ++ /* These are quarks which define the attributes that we are observing */ ++ GQuark _highlightAttr; ++ GQuark _lockedAttr; ++ GQuark _labelAttr; ++ GQuark _groupAttr; ++ GQuark _styleAttr; ++ GQuark _clipAttr; ++ GQuark _maskAttr; ++}; ++ ++class ObjectsPanel::InternalUIBounce ++{ ++public: ++ int _actionCode; ++}; ++ ++class ObjectsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord ++{ ++public: ++ ++ ModelColumns() ++ { ++ add(_colObject); ++ add(_colVisible); ++ add(_colLocked); ++ add(_colLabel); ++ add(_colType); ++ add(_colHighlight); ++ add(_colClipMask); ++ } ++ virtual ~ModelColumns() {} ++ ++ Gtk::TreeModelColumn _colObject; ++ Gtk::TreeModelColumn _colLabel; ++ Gtk::TreeModelColumn _colVisible; ++ Gtk::TreeModelColumn _colLocked; ++ Gtk::TreeModelColumn _colType; ++ Gtk::TreeModelColumn _colHighlight; ++ Gtk::TreeModelColumn _colClipMask; ++}; ++ ++/** ++ * Stylizes a button using the given icon name and tooltip ++ */ ++void ObjectsPanel::_styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ) ++{ ++ GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); ++ gtk_widget_show( child ); ++ btn.add( *Gtk::manage(Glib::wrap(child)) ); ++ btn.set_relief(Gtk::RELIEF_NONE); ++ ++ btn.set_tooltip_text (tooltip); ++ ++} ++ ++/** ++ * Adds an item to the pop-up (right-click) menu ++ * @param desktop The active destktop ++ * @param code Action code ++ * @param iconName Icon name ++ * @param fallback Fallback text ++ * @param id Button id for callback function ++ * @return The generated menu item ++ */ ++Gtk::MenuItem& ObjectsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) ++{ ++ GtkWidget* iconWidget = 0; ++ const char* label = 0; ++ ++ if ( iconName ) { ++ iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); ++ } ++ ++ if ( desktop ) { ++ Verb *verb = Verb::get( code ); ++ if ( verb ) { ++ SPAction *action = verb->get_action(desktop); ++ if ( !iconWidget && action && action->image ) { ++ iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); ++ } ++ ++ if ( action ) { ++ label = action->name; ++ } ++ } ++ } ++ ++ if ( !label && fallback ) { ++ label = fallback; ++ } ++ ++ Gtk::Widget* wrapped = 0; ++ if ( iconWidget ) { ++ wrapped = Gtk::manage(Glib::wrap(iconWidget)); ++ wrapped->show(); ++ } ++ ++ ++ Gtk::MenuItem* item = 0; ++ ++ if (wrapped) { ++ item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); ++ } else { ++ item = Gtk::manage(new Gtk::MenuItem(label, true)); ++ } ++ ++ item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_takeAction), id)); ++ _popupMenu.append(*item); ++ ++ return *item; ++} ++ ++/** ++ * Callback function for when an object changes. Essentially refreshes the entire tree ++ * @param obj Object which was changed (currently not used as the entire tree is recreated) ++ */ ++void ObjectsPanel::_objectsChanged(SPObject */*obj*/) ++{ ++ //First, unattach the watchers ++ while (!_objectWatchers.empty()) ++ { ++ ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); ++ w->_repr->removeObserver(*w); ++ _objectWatchers.pop_back(); ++ delete w; ++ } ++ ++ if (_desktop) { ++ //Get the current document's root and use that to enumerate the tree ++ SPDocument* document = _desktop->doc(); ++ SPRoot* root = document->getRoot(); ++ if ( root ) { ++ _selectedConnection.block(); ++ //Clear the tree store ++ _store->clear(); ++ //Add all items recursively ++ _addObject( root, 0 ); ++ _selectedConnection.unblock(); ++ //Set the tree selection ++ _objectsSelected(_desktop->selection); ++ //Handle button sensitivity ++ _checkTreeSelection(); ++ } ++ } ++} ++ ++/** ++ * Recursively adds the children of the given item to the tree ++ * @param obj Root object to add to the tree ++ * @param parentRow Parent tree row (or NULL if adding to tree root) ++ */ ++void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) ++{ ++ if ( _desktop && obj ) { ++ for ( SPObject *child = obj->children; child != NULL; child = child->next) { ++ ++ if (SP_IS_ITEM(child)) ++ { ++ SPItem * item = SP_ITEM(child); ++ SPGroup * group = SP_IS_GROUP(child) ? SP_GROUP(child) : 0; ++ ++ //Add the item to the tree and set the column information ++ Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); ++ Gtk::TreeModel::Row row = *iter; ++ row[_model->_colObject] = item; ++ row[_model->_colLabel] = item->label() ? item->label() : item->getId(); ++ row[_model->_colVisible] = !item->isHidden(); ++ row[_model->_colLocked] = !item->isSensitive(); ++ row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; ++ row[_model->_colHighlight] = item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00; ++ row[_model->_colClipMask] = item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0); ++ ++ //If our parent object is a group and it's expanded, expand the tree ++ if (SP_IS_GROUP(obj) && SP_GROUP(obj)->expanded()) ++ { ++ _tree.expand_to_path( _store->get_path(iter) ); ++ } ++ ++ //Add an object watcher to the item ++ ObjectsPanel::ObjectWatcher *w = new ObjectsPanel::ObjectWatcher(this, child); ++ child->getRepr()->addObserver(*w); ++ _objectWatchers.push_back(w); ++ ++ //If the item is a group, recursively add its children ++ if (group) ++ { ++ _addObject( child, &row ); ++ } ++ } ++ } ++ } ++} ++ ++/** ++ * Updates an item in the tree and optionally recursively updates the item's children ++ * @param obj The item to update in the tree ++ * @param recurse Whether to recurse through the item's children ++ */ ++void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { ++ //Find the object in the tree store and update it ++ _store->foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_checkForUpdated), obj) ); ++ if (recurse) ++ { ++ for (SPObject * iter = obj->children; iter != NULL; iter = iter->next) ++ { ++ _updateObject(iter, recurse); ++ } ++ } ++} ++ ++/** ++ * Checks items in the tree store and updates the given item ++ * @param iter Current item being looked at in the tree ++ * @param obj Object to update ++ * @return ++ */ ++bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ if ( obj == row[_model->_colObject] ) ++ { ++ //We found our item in the tree!! Update it! ++ SPItem * item = SP_IS_ITEM(obj) ? SP_ITEM(obj) : 0; ++ SPGroup * group = SP_IS_GROUP(obj) ? SP_GROUP(obj) : 0; ++ ++ row[_model->_colLabel] = obj->label() ? obj->label() : obj->getId(); ++ row[_model->_colVisible] = item ? !item->isHidden() : false; ++ row[_model->_colLocked] = item ? !item->isSensitive() : false; ++ row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; ++ row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0; ++ row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; ++ ++ return true; ++ } ++ ++ return false; ++} ++ ++/** ++ * Updates the composite controls for the selected item ++ */ ++void ObjectsPanel::_updateComposite() { ++ if (!_blockCompositeUpdate) ++ { ++ //Set the default values ++ bool setValues = true; ++ ++ //Get/set the values ++ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_compositingChanged), &setValues)); ++ } ++} ++ ++/** ++ * Sets the compositing values for the first selected item in the tree ++ * @param iter Current tree item ++ * @param setValues Whether to set the compositing values ++ * @param blur Blur value to use ++ */ ++void ObjectsPanel::_compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ) ++{ ++ if (iter) { ++ Gtk::TreeModel::Row row = *iter; ++ SPItem *item = row[_model->_colObject]; ++ if (*setValues) ++ { ++ _setCompositingValues(item); ++ *setValues = false; ++ } ++ } ++} ++ ++/** ++ * Occurs when the current desktop selection changes ++ * @param sel The current selection ++ */ ++void ObjectsPanel::_objectsSelected( Selection *sel ) { ++ ++ bool setOpacity = true; ++ _selectedConnection.block(); ++ _tree.get_selection()->unselect_all(); ++ SPItem *item = NULL; ++ for (const GSList * iter = sel->itemList(); iter != NULL; iter = iter->next) ++ { ++ item = reinterpret_cast(iter->data); ++ if (setOpacity) ++ { ++ _setCompositingValues(item); ++ setOpacity = false; ++ } ++ _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, iter->next == NULL)); ++ } ++ if (!item) { ++ if (_desktop->currentLayer() && SP_IS_ITEM(_desktop->currentLayer())) { ++ item = SP_ITEM(_desktop->currentLayer()); ++ _setCompositingValues(item); ++ _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, true)); ++ } ++ } ++ _selectedConnection.unblock(); ++ _checkTreeSelection(); ++} ++ ++/** ++ * Helper function for setting the compositing values ++ * @param item Item to use for setting the compositing values ++ */ ++void ObjectsPanel::_setCompositingValues(SPItem *item) ++{ ++ //Block the connections to avoid interference ++ _opacityConnection.block(); ++ _blendConnection.block(); ++ _blurConnection.block(); ++ ++ //Set the opacity ++ _opacity_adjustment.set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment.get_upper()); ++ SPFeBlend *spblend = NULL; ++ SPGaussianBlur *spblur = NULL; ++ if (item->style->getFilter()) ++ { ++ for(SPObject *primitive_obj = item->style->getFilter()->children; primitive_obj && SP_IS_FILTER_PRIMITIVE(primitive_obj); primitive_obj = primitive_obj->next) { ++ if(SP_IS_FEBLEND(primitive_obj) && !spblend) { ++ //Get the blend mode ++ spblend = SP_FEBLEND(primitive_obj); ++ } ++ ++ if(SP_IS_GAUSSIANBLUR(primitive_obj) && !spblur) { ++ //Get the blur value ++ spblur = SP_GAUSSIANBLUR(primitive_obj); ++ } ++ } ++ } ++ ++ //Set the blend mode ++ _fe_cb.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); ++ ++ //Set the blur value ++ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); ++ if (bbox && spblur) { ++ double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? ++ _fe_blur.set_blur_value(spblur->stdDeviation.getNumber() * 400 / perimeter); ++ } else { ++ _fe_blur.set_blur_value(0); ++ } ++ ++ //Unblock connections ++ _blurConnection.unblock(); ++ _blendConnection.unblock(); ++ _opacityConnection.unblock(); ++} ++ ++/** ++ * Checks the tree and selects the specified item, optionally scrolling to the item ++ * @param path Current tree path ++ * @param iter Current tree item ++ * @param item Item to select in the tree ++ * @param scrollto Whether to scroll to the item ++ * @return Whether to continue searching the tree ++ */ ++bool ObjectsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto) ++{ ++ bool stopGoing = false; ++ ++ Gtk::TreeModel::Row row = *iter; ++ if ( item == row[_model->_colObject] ) ++ { ++ //We found the item! Expand to the path and select it in the tree. ++ _tree.expand_to_path( path ); ++ ++ Glib::RefPtr select = _tree.get_selection(); ++ ++ select->select(iter); ++ if (scrollto) { ++ //Scroll to the item in the tree ++ _tree.scroll_to_row(path); ++ } ++ ++ stopGoing = true; ++ } ++ ++ return stopGoing; ++} ++ ++/** ++ * Pushes the current tree selection to the canvas ++ */ ++void ObjectsPanel::_pushTreeSelectionToCurrent() ++{ ++ if ( _desktop && _desktop->currentRoot() ) { ++ //block connections for selection and compositing values to prevent interference ++ _selectionChangedConnection.block(); ++ ++ //Clear the selection and then iterate over the tree selection, pushing each item to the desktop ++ _desktop->selection->clear(); ++ bool setOpacity = true; ++ _tree.get_selection()->selected_foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_selected_row_callback), &setOpacity)); ++ //unblock connections ++ _selectionChangedConnection.unblock(); ++ ++ _checkTreeSelection(); ++ } ++} ++ ++/** ++ * Helper function for pushing the current tree selection to the current desktop ++ * @param iter Current tree item ++ * @param setCompositingValues Whether to set the compositing values ++ * @param blur ++ */ ++void ObjectsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setCompositingValues ) ++{ ++ if (iter) { ++ Gtk::TreeModel::Row row = *iter; ++ SPItem *item = row[_model->_colObject]; ++ if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) ++ { ++ //If the item is not a layer, then select it and set the current layer to its parent (if it's the first item) ++ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); ++ _desktop->selection->add(item); ++ } ++ else ++ { ++ //If the item is a layer, set the current layer ++ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); ++ } ++ if (*setCompositingValues) ++ { ++ //Only set the compositing values for the first item ++ _setCompositingValues(item); ++ *setCompositingValues = false; ++ } ++ } ++} ++ ++/** ++ * Handles button sensitivity ++ */ ++void ObjectsPanel::_checkTreeSelection() ++{ ++ bool sensitive = _tree.get_selection()->count_selected_rows() > 0; ++ //TODO: top/bottom sensitivity ++ bool sensitiveNonTop = true; ++ bool sensitiveNonBottom = true; ++ ++ for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { ++ (*it)->set_sensitive( sensitive ); ++ } ++ for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { ++ (*it)->set_sensitive( sensitiveNonTop ); ++ } ++ for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { ++ (*it)->set_sensitive( sensitiveNonBottom ); ++ } ++} ++ ++/** ++ * Sets visibility of items in the tree ++ * @param iter Current item in the tree ++ * @param visible Whether the item should be visible or not ++ */ ++void ObjectsPanel::_setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ item->setHidden( !visible ); ++ row[_model->_colVisible] = visible; ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++} ++ ++/** ++ * Sets sensitivity of items in the tree ++ * @param iter Current item in the tree ++ * @param locked Whether the item should be locked ++ */ ++void ObjectsPanel::_setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ item->setLocked( locked ); ++ row[_model->_colLocked] = locked; ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++} ++ ++/** ++ * Handles keyboard events ++ * @param event Keyboard event passed in from GDK ++ * @return Whether the event should be eaten (om nom nom) ++ */ ++bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event) ++{ ++ ++ switch (get_group0_keyval(event)) { ++ case GDK_KEY_Return: ++ case GDK_KEY_KP_Enter: ++ case GDK_KEY_F2: ++ { ++ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); ++ if (iter && !_text_renderer->property_editable()) { ++ //Rename item ++ Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); ++ _text_renderer->property_editable() = true; ++ _tree.set_cursor(*path, *_name_column, true); ++ grab_focus(); ++ return true; ++ } ++ } ++ break; ++ case GDK_Home: ++ { ++ //Move item(s) to top of containing group/layer ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_TO_TOP ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_TO_FRONT ); ++ } ++ return true; ++ } ++ case GDK_End: ++ { ++ //Move item(s) to bottom of containing group/layer ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_TO_BOTTOM ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_TO_BACK ); ++ } ++ return true; ++ } ++ case GDK_KEY_Page_Up: ++ { ++ //Move item(s) up in containing group/layer ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_RAISE ); ++ } ++ else ++ { ++ if (event->state & GDK_SHIFT_MASK) { ++ _fireAction( SP_VERB_LAYER_MOVE_TO_NEXT ); ++ } else { ++ _fireAction( SP_VERB_SELECTION_RAISE ); ++ } ++ } ++ return true; ++ } ++ case GDK_KEY_Page_Down: ++ { ++ //Move item(s) down in containing group/layer ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_LOWER ); ++ } ++ else ++ { ++ if (event->state & GDK_SHIFT_MASK) { ++ _fireAction( SP_VERB_LAYER_MOVE_TO_PREV ); ++ } else { ++ _fireAction( SP_VERB_SELECTION_LOWER ); ++ } ++ } ++ return true; ++ } ++ //TODO: Handle Ctrl-A, etc. ++ } ++ return false; ++} ++ ++/** ++ * Handles mouse events ++ * @param event Mouse event from GDK ++ * @return whether to eat the event (om nom nom) ++ */ ++bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) ++{ ++ static unsigned doubleclick = 0; ++ static bool overVisible = false; ++ ++ //Right mouse button was clicked, launch the pop-up menu ++ if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { ++ Gtk::TreeModel::Path path; ++ int x = static_cast(event->x); ++ int y = static_cast(event->y); ++ if ( _tree.get_path_at_pos( x, y, path ) ) { ++ _checkTreeSelection(); ++ _popupMenu.popup(event->button, event->time); ++ if (_tree.get_selection()->is_selected(path)) { ++ return true; ++ } ++ } ++ } ++ ++ //Left mouse button was pressed! In order to handle multiple item drag & drop, ++ //we need to defer selection by setting the select function so that the tree doesn't ++ //automatically select anything. In order to handle multiple item icon clicking, ++ //we need to eat the event. There might be a better way to do both of these... ++ if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { ++ overVisible = false; ++ Gtk::TreeModel::Path path; ++ Gtk::TreeViewColumn* col = 0; ++ int x = static_cast(event->x); ++ int y = static_cast(event->y); ++ int x2 = 0; ++ int y2 = 0; ++ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { ++ if (col == _tree.get_column(COL_VISIBLE-1)) { ++ //Click on visible column, eat this event to keep row selection ++ overVisible = true; ++ return true; ++ } else if (col == _tree.get_column(COL_LOCKED-1) || ++ col == _tree.get_column(COL_TYPE-1) || ++ col == _tree.get_column(COL_HIGHLIGHT-1)) { ++ //Click on an icon column, eat this event to keep row selection ++ return true; ++ } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { ++ //Click on a selected item with no modifiers, defer selection to the mouse-up by ++ //setting the select function to _noSelection ++ _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_noSelection)); ++ _defer_target = path; ++ } ++ } ++ } ++ ++ //Restore the selection function to allow tree selection on mouse button release ++ if ( event->type == GDK_BUTTON_RELEASE) { ++ _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction)); ++ } ++ ++ //CellRenderers do not have good support for dealing with multiple items, so ++ //we handle all events on them here ++ if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { ++ ++ Gtk::TreeModel::Path path; ++ Gtk::TreeViewColumn* col = 0; ++ int x = static_cast(event->x); ++ int y = static_cast(event->y); ++ int x2 = 0; ++ int y2 = 0; ++ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { ++ if (_defer_target) { ++ //We had deferred a selection target, select it here (assuming no drag & drop) ++ if (_defer_target == path && !(event->x == 0 && event->y == 0)) ++ { ++ _tree.set_cursor(path, *col, false); ++ } ++ _defer_target = Gtk::TreeModel::Path(); ++ } ++ else { ++ if (event->state & GDK_SHIFT_MASK) { ++ // Shift left click on the visible/lock columns toggles "solo" mode ++ if (col == _tree.get_column(COL_VISIBLE - 1)) { ++ _takeAction(BUTTON_SOLO); ++ } else if (col == _tree.get_column(COL_LOCKED - 1)) { ++ _takeAction(BUTTON_LOCK_OTHERS); ++ } ++ } else if (event->state & GDK_MOD1_MASK) { ++ // Alt+left click on the visible/lock columns toggles "solo" mode and preserves selection ++ Gtk::TreeModel::iterator iter = _store->get_iter(path); ++ if (_store->iter_is_valid(iter)) { ++ Gtk::TreeModel::Row row = *iter; ++ SPItem *item = row[_model->_colObject]; ++ if (col == _tree.get_column(COL_VISIBLE - 1)) { ++ _desktop->toggleLayerSolo( item ); ++ DocumentUndo::maybeDone(_desktop->doc(), "layer:solo", SP_VERB_LAYER_SOLO, _("Toggle layer solo")); ++ } else if (col == _tree.get_column(COL_LOCKED - 1)) { ++ _desktop->toggleLockOtherLayers( item ); ++ DocumentUndo::maybeDone(_desktop->doc(), "layer:lockothers", SP_VERB_LAYER_LOCK_OTHERS, _("Lock other layers")); ++ } ++ } ++ } else { ++ Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); ++ Gtk::TreeModel::Row row = *iter; ++ ++ SPItem* item = row[_model->_colObject]; ++ ++ if (col == _tree.get_column(COL_VISIBLE - 1)) { ++ if (overVisible) { ++ //Toggle visibility ++ bool newValue = !row[_model->_colVisible]; ++ if (_tree.get_selection()->is_selected(path)) ++ { ++ //If the current row is selected, toggle the visibility ++ //for all selected items ++ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setVisibleIter), newValue)); ++ } ++ else ++ { ++ //If the current row is not selected, toggle just its visibility ++ row[_model->_colVisible] = newValue; ++ item->setHidden(!newValue); ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, ++ newValue? _("Unhide objects") : _("Hide objects")); ++ overVisible = false; ++ } ++ } else if (col == _tree.get_column(COL_LOCKED - 1)) { ++ //Toggle locking ++ bool newValue = !row[_model->_colLocked]; ++ if (_tree.get_selection()->is_selected(path)) ++ { ++ //If the current row is selected, toggle the sensitivity for ++ //all selected items ++ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setLockedIter), newValue)); ++ } ++ else ++ { ++ //If the current row is not selected, toggle just its sensitivity ++ row[_model->_colLocked] = newValue; ++ item->setLocked( newValue ); ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, ++ newValue? _("Lock objects") : _("Unlock objects")); ++ ++ } else if (col == _tree.get_column(COL_TYPE - 1)) { ++ if (SP_IS_GROUP(item)) ++ { ++ //Toggle the current item between a group and a layer ++ SPGroup * g = SP_GROUP(item); ++ bool newValue = g->layerMode() == SPGroup::LAYER; ++ row[_model->_colType] = newValue ? 1: 2; ++ g->setLayerMode(newValue ? SPGroup::GROUP : SPGroup::LAYER); ++ g->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, ++ newValue? _("Layer to group") : _("Group to layer")); ++ } ++ } else if (col == _tree.get_column(COL_HIGHLIGHT - 1)) { ++ //Clear the highlight targets ++ _highlight_target.clear(); ++ if (_tree.get_selection()->is_selected(path)) ++ { ++ //If the current item is selected, store all selected items ++ //in the highlight source ++ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeHighlightTarget)); ++ } else { ++ //If the current item is not selected, store only it in the highlight source ++ _storeHighlightTarget(iter); ++ } ++ if (_colorSelector) ++ { ++ //Set up the color selector ++ SPColor color; ++ color.set( row[_model->_colHighlight] ); ++ _colorSelector->base->setColorAlpha(color, SP_RGBA32_A_F(row[_model->_colHighlight])); ++ } ++ //Show the color selector dialog ++ _colorSelectorDialog.show(); ++ } ++ } ++ } ++ } ++ } ++ ++ //Second mouse button press, set double click status for when the mouse is released ++ if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { ++ doubleclick = 1; ++ } ++ ++ //Double click on mouse button release, if we're over the label column, edit ++ //the item name ++ if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { ++ doubleclick = 0; ++ Gtk::TreeModel::Path path; ++ Gtk::TreeViewColumn* col = 0; ++ int x = static_cast(event->x); ++ int y = static_cast(event->y); ++ int x2 = 0; ++ int y2 = 0; ++ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { ++ // Double click on the Layer name, enable editing ++ _text_renderer->property_editable() = true; ++ _tree.set_cursor (path, *_name_column, true); ++ grab_focus(); ++ } ++ } ++ ++ return false; ++} ++ ++/** ++ * Stores items in the highlight target vector to manipulate with the color selector ++ * @param iter Current tree item to store ++ */ ++void ObjectsPanel::_storeHighlightTarget(const Gtk::TreeModel::iterator& iter) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ _highlight_target.push_back(item); ++ } ++} ++ ++/* ++ * Drap and drop within the tree ++ */ ++bool ObjectsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) ++{ ++ int cell_x = 0, cell_y = 0; ++ Gtk::TreeModel::Path target_path; ++ Gtk::TreeView::Column *target_column; ++ ++ //Set up our defaults and clear the source vector ++ _dnd_into = false; ++ _dnd_target = NULL; ++ _dnd_source.clear(); ++ ++ //Add all selected items to the source vector ++ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeDragSource)); ++ ++ if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { ++ // Are we before, inside or after the drop layer ++ Gdk::Rectangle rect; ++ _tree.get_background_area (target_path, *target_column, rect); ++ int cell_height = rect.get_height(); ++ _dnd_into = (cell_y > (int)(cell_height * 1/4) && cell_y <= (int)(cell_height * 3/4)); ++ if (cell_y > (int)(cell_height * 3/4)) { ++ Gtk::TreeModel::Path next_path = target_path; ++ next_path.next(); ++ if (_store->iter_is_valid(_store->get_iter(next_path))) { ++ target_path = next_path; ++ } else { ++ // Dragging to the "end" ++ Gtk::TreeModel::Path up_path = target_path; ++ up_path.up(); ++ if (_store->iter_is_valid(_store->get_iter(up_path))) { ++ // Drop into parent ++ target_path = up_path; ++ _dnd_into = true; ++ } else { ++ // Drop into the top level ++ _dnd_target = NULL; ++ } ++ } ++ } ++ Gtk::TreeModel::iterator iter = _store->get_iter(target_path); ++ if (_store->iter_is_valid(iter)) { ++ Gtk::TreeModel::Row row = *iter; ++ //Set the drop target. If we're not dropping into a group, we cannot ++ //drop into it, so set _dnd_into false. ++ _dnd_target = row[_model->_colObject]; ++ if (!(SP_IS_GROUP(_dnd_target))) _dnd_into = false; ++ } ++ } ++ ++ _takeAction(DRAGNDROP); ++ ++ return false; ++} ++ ++/** ++ * Stores all selected items as the drag source ++ * @param iter Current tree item ++ */ ++void ObjectsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ _dnd_source.push_back(item); ++ } ++} ++ ++/* ++ * Move a layer in response to a drag & drop action ++ */ ++void ObjectsPanel::_doTreeMove( ) ++{ ++ g_assert(_desktop != NULL); ++ g_assert(_document != NULL); ++ ++ std::vector idvector; ++ ++ //Clear the desktop selection ++ _desktop->selection->clear(); ++ while (!_dnd_source.empty()) ++ { ++ SPItem *obj = _dnd_source.back(); ++ _dnd_source.pop_back(); ++ ++ if (obj != _dnd_target) { ++ //Store the object id (for selection later) and move the object ++ idvector.push_back(g_strdup(obj->getId())); ++ obj->moveTo(_dnd_target, _dnd_into); ++ } ++ } ++ ++ //Select items ++ while (!idvector.empty()) { ++ //Grab the id from the vector, get the item in the document and select it ++ gchar * id = idvector.back(); ++ idvector.pop_back(); ++ SPObject *obj = _document->getObjectById(id); ++ g_free(id); ++ if (obj && SP_IS_ITEM(obj)) { ++ SPItem *item = SP_ITEM(obj); ++ if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) ++ { ++ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); ++ _desktop->selection->add(item); ++ } ++ else ++ { ++ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); ++ } ++ } ++ } ++ ++ DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, ++ _("Moved objects")); ++} ++ ++/** ++ * Fires the action verb ++ */ ++void ObjectsPanel::_fireAction( unsigned int code ) ++{ ++ if ( _desktop ) { ++ Verb *verb = Verb::get( code ); ++ if ( verb ) { ++ SPAction *action = verb->get_action(_desktop); ++ if ( action ) { ++ sp_action_perform( action, NULL ); ++ } ++ } ++ } ++} ++ ++/** ++ * Executes the given button action during the idle time ++ */ ++void ObjectsPanel::_takeAction( int val ) ++{ ++ if ( !_pending ) { ++ _pending = new InternalUIBounce(); ++ _pending->_actionCode = val; ++ Glib::signal_timeout().connect( sigc::mem_fun(*this, &ObjectsPanel::_executeAction), 0 ); ++ } ++} ++ ++/** ++ * Executes the pending button action ++ */ ++bool ObjectsPanel::_executeAction() ++{ ++ // Make sure selected layer hasn't changed since the action was triggered ++ if ( _document && _pending) ++ { ++ int val = _pending->_actionCode; ++// SPObject* target = _pending->_target; ++ ++ switch ( val ) { ++ case BUTTON_NEW: ++ { ++ _fireAction( SP_VERB_LAYER_NEW ); ++ } ++ break; ++ case BUTTON_RENAME: ++ { ++ _fireAction( SP_VERB_LAYER_RENAME ); ++ } ++ break; ++ case BUTTON_TOP: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_TO_TOP ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_TO_FRONT); ++ } ++ } ++ break; ++ case BUTTON_BOTTOM: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_TO_BOTTOM ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_TO_BACK); ++ } ++ } ++ break; ++ case BUTTON_UP: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_RAISE ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_RAISE ); ++ } ++ } ++ break; ++ case BUTTON_DOWN: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_LOWER ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_SELECTION_LOWER ); ++ } ++ } ++ break; ++ case BUTTON_DUPLICATE: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_DUPLICATE ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_EDIT_DUPLICATE ); ++ } ++ } ++ break; ++ case BUTTON_DELETE: ++ { ++ if (_desktop->selection->isEmpty()) ++ { ++ _fireAction( SP_VERB_LAYER_DELETE ); ++ } ++ else ++ { ++ _fireAction( SP_VERB_EDIT_DELETE ); ++ } ++ } ++ break; ++ case BUTTON_SOLO: ++ { ++ _fireAction( SP_VERB_LAYER_SOLO ); ++ } ++ break; ++ case BUTTON_SHOW_ALL: ++ { ++ _fireAction( SP_VERB_LAYER_SHOW_ALL ); ++ } ++ break; ++ case BUTTON_HIDE_ALL: ++ { ++ _fireAction( SP_VERB_LAYER_HIDE_ALL ); ++ } ++ break; ++ case BUTTON_LOCK_OTHERS: ++ { ++ _fireAction( SP_VERB_LAYER_LOCK_OTHERS ); ++ } ++ break; ++ case BUTTON_LOCK_ALL: ++ { ++ _fireAction( SP_VERB_LAYER_LOCK_ALL ); ++ } ++ break; ++ case BUTTON_UNLOCK_ALL: ++ { ++ _fireAction( SP_VERB_LAYER_UNLOCK_ALL ); ++ } ++ break; ++ case BUTTON_SETCLIP: ++ { ++ _fireAction( SP_VERB_OBJECT_SET_CLIPPATH ); ++ } ++ break; ++ case BUTTON_UNSETCLIP: ++ { ++ _fireAction( SP_VERB_OBJECT_UNSET_CLIPPATH ); ++ } ++ break; ++ case BUTTON_SETMASK: ++ { ++ _fireAction( SP_VERB_OBJECT_SET_MASK ); ++ } ++ break; ++ case BUTTON_UNSETMASK: ++ { ++ _fireAction( SP_VERB_OBJECT_UNSET_MASK ); ++ } ++ break; ++ case BUTTON_GROUP: ++ { ++ _fireAction( SP_VERB_SELECTION_GROUP ); ++ } ++ break; ++ case BUTTON_UNGROUP: ++ { ++ _fireAction( SP_VERB_SELECTION_UNGROUP ); ++ } ++ break; ++ case BUTTON_COLLAPSE_ALL: ++ { ++ for (SPObject* obj = _document->getRoot()->firstChild(); obj != NULL; obj = obj->next) { ++ if (SP_IS_GROUP(obj)) { ++ _setCollapsed(SP_GROUP(obj)); ++ } ++ } ++ _objectsChanged(_document->getRoot()); ++ } ++ break; ++ case DRAGNDROP: ++ { ++ _doTreeMove( ); ++ } ++ break; ++ } ++ ++ delete _pending; ++ _pending = 0; ++ } ++ ++ return false; ++} ++ ++/** ++ * Handles an unsuccessful item label edit (escape pressed, etc.) ++ */ ++void ObjectsPanel::_handleEditingCancelled() ++{ ++ _text_renderer->property_editable() = false; ++} ++ ++/** ++ * Handle a successful item label edit ++ * @param path Tree path of the item currently being edited ++ * @param new_text New label text ++ */ ++void ObjectsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) ++{ ++ Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); ++ Gtk::TreeModel::Row row = *iter; ++ ++ _renameObject(row, new_text); ++ _text_renderer->property_editable() = false; ++} ++ ++/** ++ * Renames an item in the tree ++ * @param row Tree row ++ * @param name New label to give to the item ++ */ ++void ObjectsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) ++{ ++ if ( row && _desktop) { ++ SPItem* item = row[_model->_colObject]; ++ if ( item ) { ++ gchar const* oldLabel = item->label(); ++ if ( !name.empty() && (!oldLabel || name != oldLabel) ) { ++ item->setLabel(name.c_str()); ++ DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, ++ _("Rename object")); ++ } ++ } ++ } ++} ++ ++/** ++ * A row selection function used by the tree that doesn't allow any new items to be selected. ++ * Currently, this is used to allow multi-item drag & drop. ++ */ ++bool ObjectsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool /*currentlySelected*/ ) ++{ ++ return false; ++} ++ ++/** ++ * Default row selection function taken from the layers dialog ++ */ ++bool ObjectsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) ++{ ++ bool val = true; ++ if ( !currentlySelected && _toggleEvent ) ++ { ++ GdkEvent* event = gtk_get_current_event(); ++ if ( event ) { ++ // (keep these checks separate, so we know when to call gdk_event_free() ++ if ( event->type == GDK_BUTTON_PRESS ) { ++ GdkEventButton const* target = reinterpret_cast(_toggleEvent); ++ GdkEventButton const* evtb = reinterpret_cast(event); ++ ++ if ( (evtb->window == target->window) ++ && (evtb->send_event == target->send_event) ++ && (evtb->time == target->time) ++ && (evtb->state == target->state) ++ ) ++ { ++ // Ooooh! It's a magic one ++ val = false; ++ } ++ } ++ gdk_event_free(event); ++ } ++ } ++ return val; ++} ++ ++/** ++ * Sets a group to be collapsed and recursively collapses its children ++ * @param group The group to collapse ++ */ ++void ObjectsPanel::_setCollapsed(SPGroup * group) ++{ ++ group->setExpanded(false); ++ group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ for (SPObject *iter = group->children; iter != NULL; iter = iter->next) ++ { ++ if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); ++ } ++} ++ ++/** ++ * Sets a group to be expanded or collapsed ++ * @param iter Current tree item ++ * @param isexpanded Whether to expand or collapse ++ */ ++void ObjectsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ ++ SPItem* item = row[_model->_colObject]; ++ if (item && SP_IS_GROUP(item)) ++ { ++ if (isexpanded) ++ { ++ //If we're expanding, simply perform the expansion ++ SP_GROUP(item)->setExpanded(isexpanded); ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++ else ++ { ++ //If we're collapsing, we need to recursively collapse, so call our helper function ++ _setCollapsed(SP_GROUP(item)); ++ } ++ } ++} ++ ++/** ++ * Callback for when the highlight color is changed ++ * @param csel Color selector ++ * @param cp Objects panel ++ */ ++void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject * cp) ++{ ++ SPColor color; ++ float alpha = 0; ++ csel->base->getColorAlpha(color, alpha); ++ guint32 rgba = color.toRGBA32( alpha ); ++ ++ ObjectsPanel *ptr = reinterpret_cast(cp); ++ ++ //Set the highlight color for all items in the _highlight_target (all selected items) ++ for (std::vector::iterator iter = ptr->_highlight_target.begin(); iter != ptr->_highlight_target.end(); ++iter) ++ { ++ SPItem * target = *iter; ++ target->setHighlightColor(rgba); ++ target->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++ DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_OBJECTS, _("Set object highlight color")); ++} ++ ++/** ++ * Callback for when the opacity value is changed ++ */ ++void ObjectsPanel::_opacityValueChanged() ++{ ++ _blockCompositeUpdate = true; ++ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_opacityChangedIter)); ++ DocumentUndo::maybeDone(_document, "opacity", SP_VERB_DIALOG_OBJECTS, _("Set object opacity")); ++ _blockCompositeUpdate = false; ++} ++ ++/** ++ * Change the opacity of the selected items in the tree ++ * @param iter Current tree item ++ */ ++void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ item->style->opacity.set = TRUE; ++ item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment.get_value() / _opacity_adjustment.get_upper()); ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++} ++ ++/** ++ * Callback for when the blend mode is changed ++ */ ++void ObjectsPanel::_blendValueChanged() ++{ ++ _blockCompositeUpdate = true; ++ const Glib::ustring blendmode = _fe_cb.get_blend_mode(); ++ ++ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blendChangedIter), blendmode)); ++ DocumentUndo::done(_document, SP_VERB_DIALOG_OBJECTS, _("Set object blend mode")); ++ _blockCompositeUpdate = false; ++} ++ ++/** ++ * Sets the blend mode of the selected tree items ++ * @param iter Current tree item ++ * @param blendmode Blend mode to set ++ */ ++void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ //Since blur and blend are both filters, we need to set both at the same time ++ SPStyle *style = item->style; ++ g_assert(style != NULL); ++ ++ if (blendmode != "normal") { ++ gdouble radius = 0; ++ if (item->style->getFilter()) { ++ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { ++ if (SP_IS_GAUSSIANBLUR(primitive)) { ++ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); ++ if (bbox) { ++ radius = SP_GAUSSIANBLUR(primitive)->stdDeviation.getNumber(); ++ } ++ } ++ } ++ } ++ SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); ++ sp_style_set_property_url(item, "filter", filter, false); ++ } else { ++ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { ++ if (SP_IS_FEBLEND(primitive)) { ++ primitive->deleteObject(); ++ break; ++ } ++ } ++ if (!item->style->getFilter()->children) { ++ remove_filter(item, false); ++ } ++ } ++ ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++} ++ ++/** ++ * Callback for when the blur value has changed ++ */ ++void ObjectsPanel::_blurValueChanged() ++{ ++ _blockCompositeUpdate = true; ++ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blurChangedIter), _fe_blur.get_blur_value())); ++ DocumentUndo::maybeDone(_document, "blur", SP_VERB_DIALOG_OBJECTS, _("Set object blur")); ++ _blockCompositeUpdate = false; ++} ++ ++/** ++ * Sets the blur value for the selected items in the tree ++ * @param iter Current tree item ++ * @param blur Blur value to set ++ */ ++void ObjectsPanel::_blurChangedIter(const Gtk::TreeIter& iter, double blur) ++{ ++ Gtk::TreeModel::Row row = *iter; ++ SPItem* item = row[_model->_colObject]; ++ if (item) ++ { ++ //Since blur and blend are both filters, we need to set both at the same time ++ SPStyle *style = item->style; ++ if (style) { ++ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); ++ double radius; ++ if (bbox) { ++ double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? ++ radius = blur * perimeter / 400; ++ } else { ++ radius = 0; ++ } ++ ++ if (radius != 0) { ++ SPFilter *filter = modify_filter_gaussian_blur_from_item(_document, item, radius); ++ sp_style_set_property_url(item, "filter", filter, false); ++ } else if (item->style->filter.set && item->style->getFilter()) { ++ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { ++ if (SP_IS_GAUSSIANBLUR(primitive)) { ++ primitive->deleteObject(); ++ break; ++ } ++ } ++ if (!item->style->getFilter()->children) { ++ remove_filter(item, false); ++ } ++ } ++ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); ++ } ++ } ++} ++ ++/** ++ * Constructor ++ */ ++ObjectsPanel::ObjectsPanel() : ++ UI::Widget::Panel("", "/dialogs/objects", SP_VERB_DIALOG_OBJECTS), ++ _rootWatcher(0), ++ _deskTrack(), ++ _desktop(0), ++ _document(0), ++ _model(0), ++ _pending(0), ++ _toggleEvent(0), ++ _defer_target(), ++ _composite_vbox(false, 0), ++ _opacity_vbox(false, 0), ++ _opacity_label(_("Opacity:")), ++ _opacity_label_unit(_("%")), ++#if WITH_GTKMM_3_0 ++ _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)), ++#else ++ _opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0), ++#endif ++ _opacity_hscale(_opacity_adjustment), ++ _opacity_spin_button(_opacity_adjustment, 0.01, 1), ++ _fe_cb(UI::Widget::SimpleFilterModifier::BLEND), ++ _fe_vbox(false, 0), ++ _fe_alignment(1, 1, 1, 1), ++ _fe_blur(UI::Widget::SimpleFilterModifier::BLUR), ++ _blur_vbox(false, 0), ++ _blur_alignment(1, 1, 1, 1), ++ _colorSelectorDialog("dialogs.colorpickerwindow") ++{ ++ //Create the tree model and store ++ ModelColumns *zoop = new ModelColumns(); ++ _model = zoop; ++ ++ _store = Gtk::TreeStore::create( *zoop ); ++ ++ //Set up the tree ++ _tree.set_model( _store ); ++ _tree.set_headers_visible(false); ++ _tree.set_reorderable(true); ++ _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); ++ ++ //Create the column CellRenderers ++ //Visible ++ Inkscape::UI::Widget::ImageToggler *eyeRenderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( ++ INKSCAPE_ICON("object-visible"), INKSCAPE_ICON("object-hidden")) ); ++ int visibleColNum = _tree.append_column("vis", *eyeRenderer) - 1; ++ eyeRenderer->property_activatable() = true; ++ Gtk::TreeViewColumn* col = _tree.get_column(visibleColNum); ++ if ( col ) { ++ col->add_attribute( eyeRenderer->property_active(), _model->_colVisible ); ++ } ++ ++ //Locked ++ Inkscape::UI::Widget::ImageToggler * renderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( ++ INKSCAPE_ICON("object-locked"), INKSCAPE_ICON("object-unlocked")) ); ++ int lockedColNum = _tree.append_column("lock", *renderer) - 1; ++ renderer->property_activatable() = true; ++ col = _tree.get_column(lockedColNum); ++ if ( col ) { ++ col->add_attribute( renderer->property_active(), _model->_colLocked ); ++ } ++ ++ //Type ++ Inkscape::UI::Widget::LayerTypeIcon * typeRenderer = Gtk::manage( new Inkscape::UI::Widget::LayerTypeIcon()); ++ int typeColNum = _tree.append_column("type", *typeRenderer) - 1; ++ typeRenderer->property_activatable() = true; ++ col = _tree.get_column(typeColNum); ++ if ( col ) { ++ col->add_attribute( typeRenderer->property_active(), _model->_colType ); ++ } ++ ++ //Clip/mask ++ Inkscape::UI::Widget::ClipMaskIcon * clipRenderer = Gtk::manage( new Inkscape::UI::Widget::ClipMaskIcon()); ++ int clipColNum = _tree.append_column("clipmask", *clipRenderer) - 1; ++ col = _tree.get_column(clipColNum); ++ if ( col ) { ++ col->add_attribute( clipRenderer->property_active(), _model->_colClipMask ); ++ } ++ ++ //Highlight ++ Inkscape::UI::Widget::HighlightPicker * highlightRenderer = Gtk::manage( new Inkscape::UI::Widget::HighlightPicker()); ++ int highlightColNum = _tree.append_column("highlight", *highlightRenderer) - 1; ++ col = _tree.get_column(highlightColNum); ++ if ( col ) { ++ col->add_attribute( highlightRenderer->property_active(), _model->_colHighlight ); ++ } ++ ++ //Label ++ _text_renderer = Gtk::manage(new Gtk::CellRendererText()); ++ int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; ++ _name_column = _tree.get_column(nameColNum); ++ _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); ++ ++ //Set the expander and search columns ++ _tree.set_expander_column( *_tree.get_column(nameColNum) ); ++ _tree.set_search_column(_model->_colLabel); ++ ++ //Set up the tree selection ++ _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); ++ _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &ObjectsPanel::_pushTreeSelectionToCurrent) ); ++ _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction) ); ++ ++ //Set up tree signals ++ _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); ++ _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); ++ _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleKeyEvent), false ); ++ _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleDragDrop), false); ++ _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), false)); ++ _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), true)); ++ ++ //Set up the label editing signals ++ _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEdited) ); ++ _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEditingCancelled) ); ++ ++ //Set up the scroller window and pack the page ++ _scroller.add( _tree ); ++ _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); ++ _scroller.set_shadow_type(Gtk::SHADOW_IN); ++ Gtk::Requisition sreq; ++#if WITH_GTKMM_3_0 ++ Gtk::Requisition sreq_natural; ++ _scroller.get_preferred_size(sreq_natural, sreq); ++#else ++ sreq = _scroller.size_request(); ++#endif ++ int minHeight = 70; ++ if (sreq.height < minHeight) { ++ // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar ++ _scroller.set_size_request(sreq.width, minHeight); ++ } ++ ++ _page.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); ++ ++ //Set up the compositing items ++ //Blend mode filter effect ++ _composite_vbox.pack_start(_fe_vbox, false, false, 2); ++ _fe_alignment.set_padding(0, 0, 4, 0); ++ _fe_alignment.add(_fe_cb); ++ _fe_vbox.pack_start(_fe_alignment, false, false, 0); ++ _blendConnection = _fe_cb.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blendValueChanged)); ++ ++ //Blur filter effect ++ _composite_vbox.pack_start(_blur_vbox, false, false, 2); ++ _blur_alignment.set_padding(0, 0, 4, 0); ++ _blur_alignment.add(_fe_blur); ++ _blur_vbox.pack_start(_blur_alignment, false, false, 0); ++ _blurConnection = _fe_blur.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blurValueChanged)); ++ ++ //Opacity ++ _composite_vbox.pack_start(_opacity_vbox, false, false, 2); ++ _opacity_label.set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); ++ _opacity_hbox.pack_start(_opacity_label, false, false, 3); ++ _opacity_vbox.pack_start(_opacity_hbox, false, false, 0); ++ _opacity_hbox.pack_start(_opacity_hscale, true, true, 0); ++ _opacity_hbox.pack_start(_opacity_spin_button, false, false, 0); ++ _opacity_hbox.pack_start(_opacity_label_unit, false, false, 3); ++ _opacity_hscale.set_draw_value(false); ++#if WITH_GTKMM_3_0 ++ _opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); ++ _opacity_label.set_mnemonic_widget(_opacity_hscale); ++#else ++ _opacityConnection = _opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); ++ _opacity_label.set_mnemonic_widget(_opacity_hscale); ++#endif ++ ++ //Keep the labels aligned ++// GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); ++// gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj())); ++// gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj())); ++// gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_blur.get_blur_label()->gobj())); ++ ++ //Pack the compositing functions and the button row ++ _page.pack_end(_composite_vbox, Gtk::PACK_SHRINK); ++ _page.pack_end(_buttonsRow, Gtk::PACK_SHRINK); ++ ++ //Pack into the panel contents ++ _getContents()->pack_start(_page, Gtk::PACK_EXPAND_WIDGET); ++ ++ SPDesktop* targetDesktop = getDesktop(); ++ ++ //Set up the button row ++ Gtk::Button* btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_ADD, _("New Layer") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_NEW) ); ++ _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_REMOVE, _("Remove") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DELETE) ); ++ _watching.push_back( btn ); ++ _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_GOTO_BOTTOM, _("Move To Bottom") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_BOTTOM) ); ++ _watchingNonBottom.push_back( btn ); ++ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_GO_DOWN, _("Move Down") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DOWN) ); ++ _watchingNonBottom.push_back( btn ); ++ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_GO_UP, _("Move Up") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_UP) ); ++ _watchingNonTop.push_back( btn ); ++ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_GOTO_TOP, _("Move To Top") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_TOP) ); ++ _watchingNonTop.push_back( btn ); ++ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); ++ ++ btn = Gtk::manage( new Gtk::Button() ); ++ _styleButton( *btn, GTK_STOCK_UNINDENT, _("Collapse All") ); ++ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_COLLAPSE_ALL) ); ++ _watchingNonBottom.push_back( btn ); ++ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); ++ ++ _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); ++ _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); ++ ++ _watching.push_back(&_composite_vbox); ++ ++ //Set up the pop-up menu ++ // ------------------------------------------------------- ++ { ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_RENAME, 0, "Rename", (int)BUTTON_RENAME ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_EDIT_DUPLICATE, 0, "Duplicate", (int)BUTTON_DUPLICATE ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_NEW, 0, "New", (int)BUTTON_NEW ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SOLO, 0, "Solo", (int)BUTTON_SOLO ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SHOW_ALL, 0, "Show All", (int)BUTTON_SHOW_ALL ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_HIDE_ALL, 0, "Hide All", (int)BUTTON_HIDE_ALL ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_OTHERS, 0, "Lock Others", (int)BUTTON_LOCK_OTHERS ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_ALL, 0, "Lock All", (int)BUTTON_LOCK_ALL ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_UNLOCK_ALL, 0, "Unlock All", (int)BUTTON_UNLOCK_ALL ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watchingNonTop.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_RAISE, GTK_STOCK_GO_UP, "Up", (int)BUTTON_UP ) ); ++ _watchingNonBottom.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_LOWER, GTK_STOCK_GO_DOWN, "Down", (int)BUTTON_DOWN ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_GROUP, 0, "Group", (int)BUTTON_GROUP ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_UNGROUP, 0, "Ungroup", (int)BUTTON_UNGROUP ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_CLIPPATH, 0, "Set Clip", (int)BUTTON_SETCLIP ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_CLIPPATH, 0, "Unset Clip", (int)BUTTON_UNSETCLIP ) ); ++ ++ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); ++ ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_MASK, 0, "Set Mask", (int)BUTTON_SETMASK ) ); ++ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_MASK, 0, "Unset Mask", (int)BUTTON_UNSETMASK ) ); ++ ++ _popupMenu.show_all_children(); ++ } ++ // ------------------------------------------------------- ++ ++ //Set initial sensitivity of buttons ++ for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { ++ (*it)->set_sensitive( false ); ++ } ++ for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { ++ (*it)->set_sensitive( false ); ++ } ++ for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { ++ (*it)->set_sensitive( false ); ++ } ++ ++ //Set up the color selection dialog ++ GtkWidget *dlg = GTK_WIDGET(_colorSelectorDialog.gobj()); ++ sp_transientize(dlg); ++ ++ _colorSelectorDialog.hide(); ++ _colorSelectorDialog.set_title (_("Select Highlight Color")); ++ _colorSelectorDialog.set_border_width (4); ++ _colorSelectorDialog.property_modal() = true; ++ _colorSelector = SP_COLOR_SELECTOR(sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK)); ++ _colorSelectorDialog.get_vbox()->pack_start ( ++ *Glib::wrap(&_colorSelector->vbox), true, true, 0); ++ ++ g_signal_connect(G_OBJECT(_colorSelector), "dragged", ++ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); ++ g_signal_connect(G_OBJECT(_colorSelector), "released", ++ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); ++ g_signal_connect(G_OBJECT(_colorSelector), "changed", ++ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); ++ ++ gtk_widget_show(GTK_WIDGET(_colorSelector)); ++ ++ setDesktop( targetDesktop ); ++ ++ show_all_children(); ++ ++ //Connect the desktop changed connection ++ desktopChangeConn = _deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &ObjectsPanel::setDesktop) ); ++ _deskTrack.connect(GTK_WIDGET(gobj())); ++} ++ ++/** ++ * Destructor ++ */ ++ObjectsPanel::~ObjectsPanel() ++{ ++ //Close the highlight selection dialog ++ _colorSelectorDialog.hide(); ++ _colorSelector = NULL; ++ ++ //Set the desktop to null, which will disconnect all object watchers ++ setDesktop(NULL); ++ ++ if ( _model ) ++ { ++ delete _model; ++ _model = 0; ++ } ++ ++ if (_pending) { ++ delete _pending; ++ _pending = 0; ++ } ++ ++ if ( _toggleEvent ) ++ { ++ gdk_event_free( _toggleEvent ); ++ _toggleEvent = 0; ++ } ++ ++ desktopChangeConn.disconnect(); ++ _deskTrack.disconnect(); ++} ++ ++/** ++ * Sets the current document ++ */ ++void ObjectsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) ++{ ++ //Clear all object watchers ++ while (!_objectWatchers.empty()) ++ { ++ ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); ++ w->_repr->removeObserver(*w); ++ _objectWatchers.pop_back(); ++ delete w; ++ } ++ ++ //Delete the root watcher ++ if (_rootWatcher) ++ { ++ _rootWatcher->_repr->removeObserver(*_rootWatcher); ++ delete _rootWatcher; ++ _rootWatcher = NULL; ++ } ++ ++ _document = document; ++ ++ if (document && document->getRoot() && document->getRoot()->getRepr()) ++ { ++ //Create a new root watcher for the document and then call _objectsChanged to fill the tree ++ _rootWatcher = new ObjectsPanel::ObjectWatcher(this, document->getRoot()); ++ document->getRoot()->getRepr()->addObserver(*_rootWatcher); ++ _objectsChanged(document->getRoot()); ++ } ++} ++ ++/** ++ * Set the current panel desktop ++ */ ++void ObjectsPanel::setDesktop( SPDesktop* desktop ) ++{ ++ Panel::setDesktop(desktop); ++ ++ if ( desktop != _desktop ) { ++ _documentChangedConnection.disconnect(); ++ _selectionChangedConnection.disconnect(); ++ if ( _desktop ) { ++ _desktop = 0; ++ } ++ ++ _desktop = Panel::getDesktop(); ++ if ( _desktop ) { ++ //Connect desktop signals ++ _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &ObjectsPanel::setDocument)); ++ _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &ObjectsPanel::_objectsSelected)); ++ ++ setDocument(_desktop, _desktop->doc()); ++ } else { ++ setDocument(NULL, NULL); ++ } ++ } ++ _deskTrack.setBase(desktop); ++} ++} //namespace Dialogs ++} //namespace UI ++} //namespace Inkscape ++ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + +=== added file 'src/ui/dialog/objects.h' +--- src/ui/dialog/objects.h 1970-01-01 00:00:00 +0000 ++++ src/ui/dialog/objects.h 2013-03-17 13:42:01 +0000 +@@ -0,0 +1,255 @@ ++/* ++ * A simple dialog for objects UI. ++ * ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#ifndef SEEN_OBJECTS_PANEL_H ++#define SEEN_OBJECTS_PANEL_H ++ ++#include ++#include ++#include ++#include ++#include ++#include "ui/widget/spinbutton.h" ++#include "ui/widget/panel.h" ++#include "ui/widget/object-composite-settings.h" ++#include "desktop-tracker.h" ++#include "ui/widget/style-subject.h" ++#include "selection.h" ++#include "ui/widget/filter-effect-chooser.h" ++ ++class SPObject; ++class SPGroup; ++struct SPColorSelector; ++ ++namespace Inkscape { ++ ++namespace UI { ++namespace Dialog { ++ ++ ++/** ++ * A panel that displays objects. ++ */ ++class ObjectsPanel : public UI::Widget::Panel ++{ ++public: ++ ObjectsPanel(); ++ virtual ~ObjectsPanel(); ++ ++ static ObjectsPanel& getInstance(); ++ ++ void setDesktop( SPDesktop* desktop ); ++ void setDocument( SPDesktop* desktop, SPDocument* document); ++ ++private: ++ //Internal Classes: ++ class ModelColumns; ++ class InternalUIBounce; ++ class ObjectWatcher; ++ ++ //Connections, Watchers, Trackers: ++ ++ //Document root watcher ++ ObjectsPanel::ObjectWatcher* _rootWatcher; ++ ++ //All object watchers ++ std::vector _objectWatchers; ++ ++ //Connection for when the desktop changes ++ sigc::connection desktopChangeConn; ++ ++ //Connection for when the document changes ++ sigc::connection _documentChangedConnection; ++ ++ //Connection for when the active selection in the document changes ++ sigc::connection _selectionChangedConnection; ++ ++ //Connection for when the selection in the dialog changes ++ sigc::connection _selectedConnection; ++ ++ //Connections for when the opacity/blend/blur of the active selection in the document changes ++ sigc::connection _opacityConnection; ++ sigc::connection _blendConnection; ++ sigc::connection _blurConnection; ++ ++ //Desktop tracker for grabbing the desktop changed connection ++ DesktopTracker _deskTrack; ++ ++ //Members: ++ ++ //The current desktop ++ SPDesktop* _desktop; ++ ++ //The current document ++ SPDocument* _document; ++ ++ //Tree data model ++ ModelColumns* _model; ++ ++ //Prevents the composite controls from updating ++ bool _blockCompositeUpdate; ++ ++ // ++ InternalUIBounce* _pending; ++ ++ //Whether the drag & drop was dragged into an item ++ gboolean _dnd_into; ++ ++ //List of drag & drop source items ++ std::vector _dnd_source; ++ ++ //Drag & drop target item ++ SPItem* _dnd_target; ++ ++ //List of items to change the highlight on ++ std::vector _highlight_target; ++ ++ //GUI Members: ++ ++ GdkEvent* _toggleEvent; ++ ++ Gtk::TreeModel::Path _defer_target; ++ ++ Glib::RefPtr _store; ++ std::vector _watching; ++ std::vector _watchingNonTop; ++ std::vector _watchingNonBottom; ++ ++ Gtk::TreeView _tree; ++ Gtk::CellRendererText *_text_renderer; ++ Gtk::TreeView::Column *_name_column; ++#if WITH_GTKMM_3_0 ++ Gtk::Box _buttonsRow; ++ Gtk::Box _buttonsPrimary; ++ Gtk::Box _buttonsSecondary; ++#else ++ Gtk::HBox _buttonsRow; ++ Gtk::HBox _buttonsPrimary; ++ Gtk::HBox _buttonsSecondary; ++#endif ++ Gtk::ScrolledWindow _scroller; ++ Gtk::Menu _popupMenu; ++ Inkscape::UI::Widget::SpinButton _spinBtn; ++ Gtk::VBox _page; ++ ++ /* Composite Settings */ ++ Gtk::VBox _composite_vbox; ++ Gtk::VBox _opacity_vbox; ++ Gtk::HBox _opacity_hbox; ++ Gtk::Label _opacity_label; ++ Gtk::Label _opacity_label_unit; ++#if WITH_GTKMM_3_0 ++ Glib::RefPtr _opacity_adjustment; ++#else ++ Gtk::Adjustment _opacity_adjustment; ++#endif ++ Gtk::HScale _opacity_hscale; ++ Inkscape::UI::Widget::SpinButton _opacity_spin_button; ++ ++ Inkscape::UI::Widget::SimpleFilterModifier _fe_cb; ++ Gtk::VBox _fe_vbox; ++ Gtk::Alignment _fe_alignment; ++ Inkscape::UI::Widget::SimpleFilterModifier _fe_blur; ++ Gtk::VBox _blur_vbox; ++ Gtk::Alignment _blur_alignment; ++ ++ Gtk::Dialog _colorSelectorDialog; ++ SPColorSelector *_colorSelector; ++ ++ ++ //Methods: ++ ++ ObjectsPanel(ObjectsPanel const &); // no copy ++ ObjectsPanel &operator=(ObjectsPanel const &); // no assign ++ ++ void _styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ); ++ void _fireAction( unsigned int code ); ++ ++ Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); ++ ++ void _setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ); ++ void _setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ); ++ ++ bool _handleButtonEvent(GdkEventButton *event); ++ bool _handleKeyEvent(GdkEventKey *event); ++ ++ void _storeHighlightTarget(const Gtk::TreeModel::iterator& iter); ++ void _storeDragSource(const Gtk::TreeModel::iterator& iter); ++ bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); ++ void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); ++ void _handleEditingCancelled(); ++ ++ void _doTreeMove(); ++ void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); ++ ++ void _pushTreeSelectionToCurrent(); ++ void _selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setOpacity ); ++ ++ void _checkTreeSelection(); ++ ++ void _takeAction( int val ); ++ bool _executeAction(); ++ ++ void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); ++ void _setCollapsed(SPGroup * group); ++ ++ bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); ++ bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); ++ ++ void _compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ); ++ void _updateComposite(); ++ void _setCompositingValues(SPItem *item); ++ ++ void _updateObject(SPObject *obj, bool recurse); ++ bool _checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj); ++ ++ void _objectsSelected(Selection *sel); ++ bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto); ++ ++ void _objectsChanged(SPObject *obj); ++ void _addObject( SPObject* obj, Gtk::TreeModel::Row* parentRow ); ++ ++ void _opacityChangedIter(const Gtk::TreeIter& iter); ++ void _opacityValueChanged(); ++ ++ void _blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode); ++ void _blendValueChanged(); ++ ++ void _blurChangedIter(const Gtk::TreeIter& iter, double blur); ++ void _blurValueChanged(); ++ ++ ++ void setupDialog(const Glib::ustring &title); ++ ++ friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); ++ ++}; ++ ++ ++ ++} //namespace Dialogs ++} //namespace UI ++} //namespace Inkscape ++ ++ ++ ++#endif // SEEN_OBJECTS_PANEL_H ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + +=== modified file 'src/ui/tool/multi-path-manipulator.cpp' +--- src/ui/tool/multi-path-manipulator.cpp 2012-09-06 02:25:16 +0000 ++++ src/ui/tool/multi-path-manipulator.cpp 2013-03-19 00:31:09 +0000 +@@ -195,7 +195,7 @@ + ShapeRecord const &r = *i; + if (!SP_IS_PATH(r.item) && !IS_LIVEPATHEFFECT(r.item)) continue; + boost::shared_ptr newpm(new PathManipulator(*this, (SPPath*) r.item, +- r.edit_transform, _getOutlineColor(r.role), r.lpe_key)); ++ r.edit_transform, _getOutlineColor(r.role, r.item), r.lpe_key)); + newpm->showHandles(_show_handles); + // always show outlines for clips and masks + newpm->showOutline(_show_outline || r.role != SHAPE_ROLE_NORMAL); +@@ -834,7 +834,7 @@ + } + + /** Get an outline color based on the shape's role (normal, mask, LPE parameter, etc.). */ +-guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role) ++guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role, SPItem *item) + { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + switch(role) { +@@ -846,7 +846,7 @@ + return prefs->getColor("/tools/nodes/lpe_param_color", 0x009000ff); + case SHAPE_ROLE_NORMAL: + default: +- return prefs->getColor("/tools/nodes/outline_color", 0xff0000ff); ++ return item->highlight_color(); + } + } + + +=== modified file 'src/ui/tool/multi-path-manipulator.h' +--- src/ui/tool/multi-path-manipulator.h 2012-05-17 09:10:15 +0000 ++++ src/ui/tool/multi-path-manipulator.h 2013-03-19 00:31:16 +0000 +@@ -106,7 +106,7 @@ + void _commit(CommitEvent cps); + void _done(gchar const *reason, bool alert_LPE = false); + void _doneWithCleanup(gchar const *reason, bool alert_LPE = false); +- guint32 _getOutlineColor(ShapeRole role); ++ guint32 _getOutlineColor(ShapeRole role, SPItem *item); + + MapType _mmap; + public: + +=== modified file 'src/ui/tool/node-tool.cpp' +--- src/ui/tool/node-tool.cpp 2013-01-26 19:33:04 +0000 ++++ src/ui/tool/node-tool.cpp 2013-03-19 00:31:25 +0000 +@@ -488,7 +488,7 @@ + c->transform(over_item->i2dt_affine()); + SPCanvasItem *flash = sp_canvas_bpath_new(sp_desktop_tempgroup(desktop), c); + sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(flash), +- prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff), 1.0, ++ over_item->highlight_color(), 1.0, + SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); + sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(flash), 0, SP_WIND_RULE_NONZERO); + nt->flash_tempitem = desktop->add_temporary_canvasitem(flash, + +=== modified file 'src/ui/widget/Makefile_insert' +--- src/ui/widget/Makefile_insert 2013-01-08 12:06:44 +0000 ++++ src/ui/widget/Makefile_insert 2013-03-17 14:17:34 +0000 +@@ -4,6 +4,8 @@ + ui/widget/attr-widget.h \ + ui/widget/button.h \ + ui/widget/button.cpp \ ++ ui/widget/clipmaskicon.cpp \ ++ ui/widget/clipmaskicon.h \ + ui/widget/color-picker.cpp \ + ui/widget/color-picker.h \ + ui/widget/color-preview.cpp \ +@@ -23,6 +25,8 @@ + ui/widget/gimpspinscale.h \ + ui/widget/gimpcolorwheel.c \ + ui/widget/gimpcolorwheel.h \ ++ ui/widget/highlight-picker.cpp \ ++ ui/widget/highlight-picker.h \ + ui/widget/frame.cpp \ + ui/widget/frame.h \ + ui/widget/imageicon.cpp \ +@@ -33,6 +37,8 @@ + ui/widget/labelled.h \ + ui/widget/layer-selector.cpp \ + ui/widget/layer-selector.h \ ++ ui/widget/layertypeicon.cpp \ ++ ui/widget/layertypeicon.h \ + ui/widget/licensor.cpp \ + ui/widget/licensor.h \ + ui/widget/notebook-page.cpp \ + +=== added file 'src/ui/widget/clipmaskicon.cpp' +--- src/ui/widget/clipmaskicon.cpp 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/clipmaskicon.cpp 2013-03-14 23:36:37 +0000 +@@ -0,0 +1,177 @@ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++ ++#include "ui/widget/clipmaskicon.h" ++ ++#include ++ ++#include "widgets/icon.h" ++#include "widgets/toolbox.h" ++#include "ui/icon-names.h" ++#include "layertypeicon.h" ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++ClipMaskIcon::ClipMaskIcon() : ++ Glib::ObjectBase(typeid(ClipMaskIcon)), ++ Gtk::CellRendererPixbuf(), ++ _pixClipName(INKSCAPE_ICON("path-intersection")), ++ _pixInverseName(INKSCAPE_ICON("path-difference")), ++ _pixMaskName(INKSCAPE_ICON("mask-intersection")), ++ _property_active(*this, "active", 0), ++ _property_pixbuf_clip(*this, "pixbuf_on", Glib::RefPtr(0)), ++ _property_pixbuf_inverse(*this, "pixbuf_on", Glib::RefPtr(0)), ++ _property_pixbuf_mask(*this, "pixbuf_off", Glib::RefPtr(0)) ++{ ++ ++ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; ++ phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); ++ Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); ++ ++ if (!icon_theme->has_icon(_pixClipName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixClipName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ if (!icon_theme->has_icon(_pixInverseName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixInverseName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ if (!icon_theme->has_icon(_pixMaskName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixMaskName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ ++ if (icon_theme->has_icon(_pixClipName)) { ++ _property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0); ++ } ++ if (icon_theme->has_icon(_pixInverseName)) { ++ _property_pixbuf_inverse = icon_theme->load_icon(_pixInverseName, phys, (Gtk::IconLookupFlags)0); ++ } ++ if (icon_theme->has_icon(_pixMaskName)) { ++ _property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0); ++ } ++ ++ property_pixbuf() = Glib::RefPtr(0); ++} ++ ++ ++#if WITH_GTKMM_3_0 ++void ClipMaskIcon::get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); ++ ++ if (min_h) { ++ min_h += (min_h) >> 1; ++ } ++ ++ if (nat_h) { ++ nat_h += (nat_h) >> 1; ++ } ++} ++ ++void ClipMaskIcon::get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); ++ ++ if (min_w) { ++ min_w += (min_w) >> 1; ++ } ++ ++ if (nat_w) { ++ nat_w += (nat_w) >> 1; ++ } ++} ++#else ++void ClipMaskIcon::get_size_vfunc(Gtk::Widget& widget, ++ const Gdk::Rectangle* cell_area, ++ int* x_offset, ++ int* y_offset, ++ int* width, ++ int* height ) const ++{ ++ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); ++ ++ if ( width ) { ++ *width = phys;//+= (*width) >> 1; ++ } ++ if ( height ) { ++ *height =phys;//+= (*height) >> 1; ++ } ++} ++#endif ++ ++#if WITH_GTKMM_3_0 ++void ClipMaskIcon::render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ) ++#else ++void ClipMaskIcon::render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ) ++#endif ++{ ++ switch (_property_active.get_value()) ++ { ++ case 1: ++ property_pixbuf() = _property_pixbuf_clip; ++ break; ++ case 2: ++ property_pixbuf() = _property_pixbuf_mask; ++ break; ++ case 3: ++ property_pixbuf() = _property_pixbuf_inverse; ++ break; ++ default: ++ property_pixbuf() = Glib::RefPtr(0); ++ break; ++ } ++#if WITH_GTKMM_3_0 ++ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); ++#else ++ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); ++#endif ++} ++ ++bool ++ClipMaskIcon::activate_vfunc(GdkEvent* event, ++ Gtk::Widget& /*widget*/, ++ const Glib::ustring& path, ++ const Gdk::Rectangle& /*background_area*/, ++ const Gdk::Rectangle& /*cell_area*/, ++ Gtk::CellRendererState /*flags*/) ++{ ++ return false; ++} ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : ++ ++ + +=== added file 'src/ui/widget/clipmaskicon.h' +--- src/ui/widget/clipmaskicon.h 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/clipmaskicon.h 2013-03-08 04:27:35 +0000 +@@ -0,0 +1,102 @@ ++#ifndef __UI_DIALOG_CLIPMASKICON_H__ ++#define __UI_DIALOG_CLIPMASKICON_H__ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#if HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#include ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++class ClipMaskIcon : public Gtk::CellRendererPixbuf { ++public: ++ ClipMaskIcon(); ++ virtual ~ClipMaskIcon() {}; ++ ++ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } ++ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); ++ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); ++ ++protected: ++ ++#if WITH_GTKMM_3_0 ++ virtual void render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const; ++ ++ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const; ++#else ++ virtual void render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_size_vfunc( Gtk::Widget &widget, ++ Gdk::Rectangle const *cell_area, ++ int *x_offset, int *y_offset, int *width, int *height ) const; ++#endif ++ ++ virtual bool activate_vfunc(GdkEvent *event, ++ Gtk::Widget &widget, ++ const Glib::ustring &path, ++ const Gdk::Rectangle &background_area, ++ const Gdk::Rectangle &cell_area, ++ Gtk::CellRendererState flags); ++ ++ ++private: ++ int phys; ++ ++ Glib::ustring _pixClipName; ++ Glib::ustring _pixInverseName; ++ Glib::ustring _pixMaskName; ++ ++ Glib::Property _property_active; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_clip; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_inverse; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_mask; ++ ++}; ++ ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++ ++#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + +=== added file 'src/ui/widget/highlight-picker.cpp' +--- src/ui/widget/highlight-picker.cpp 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/highlight-picker.cpp 2013-03-08 04:27:35 +0000 +@@ -0,0 +1,176 @@ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#include ++#include "display/cairo-utils.h" ++ ++#include ++ ++#include "highlight-picker.h" ++#include "widgets/icon.h" ++#include "widgets/toolbox.h" ++#include "ui/icon-names.h" ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++HighlightPicker::HighlightPicker() : ++ Glib::ObjectBase(typeid(HighlightPicker)), ++ Gtk::CellRendererPixbuf(), ++ _property_active(*this, "active", 0) ++{ ++ ++ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; ++} ++ ++HighlightPicker::~HighlightPicker() ++{ ++} ++ ++ ++#if WITH_GTKMM_3_0 ++void HighlightPicker::get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); ++ ++ if (min_h) { ++ min_h += (min_h) >> 1; ++ } ++ ++ if (nat_h) { ++ nat_h += (nat_h) >> 1; ++ } ++} ++ ++void HighlightPicker::get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); ++ ++ if (min_w) { ++ min_w += (min_w) >> 1; ++ } ++ ++ if (nat_w) { ++ nat_w += (nat_w) >> 1; ++ } ++} ++#else ++void HighlightPicker::get_size_vfunc(Gtk::Widget& widget, ++ const Gdk::Rectangle* cell_area, ++ int* x_offset, ++ int* y_offset, ++ int* width, ++ int* height ) const ++{ ++ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); ++ ++ if ( width ) { ++ *width = 10;//+= (*width) >> 1; ++ } ++ if ( height ) { ++ *height = 20; //cell_area ? cell_area->get_height() / 2 : 50; //+= (*height) >> 1; ++ } ++} ++#endif ++ ++#if WITH_GTKMM_3_0 ++void HighlightPicker::render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ) ++#else ++void HighlightPicker::render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ) ++#endif ++{ ++ GdkRectangle carea; ++ ++ cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 10, 20); ++ cairo_t *ct = cairo_create(s); ++ ++ /* Transparent area */ ++ carea.x = 0; ++ carea.y = 0; ++ carea.width = 10; ++ carea.height = 20; ++ ++ cairo_pattern_t *checkers = ink_cairo_pattern_create_checkerboard(); ++ ++ cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height / 2); ++ cairo_set_source(ct, checkers); ++ cairo_fill_preserve(ct); ++ ink_cairo_set_source_rgba32(ct, _property_active.get_value()); ++ cairo_fill(ct); ++ ++ cairo_pattern_destroy(checkers); ++ ++ cairo_rectangle(ct, carea.x, carea.y + carea.height / 2, carea.width, carea.height / 2); ++ ink_cairo_set_source_rgba32(ct, _property_active.get_value() | 0x000000ff); ++ cairo_fill(ct); ++ ++ cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height); ++ ink_cairo_set_source_rgba32(ct, 0x333333ff); ++ cairo_set_line_width(ct, 2); ++ cairo_stroke(ct); ++ ++ cairo_destroy(ct); ++ cairo_surface_flush(s); ++ ++ GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s), ++ GDK_COLORSPACE_RGB, TRUE, 8, ++ 10, 20, cairo_image_surface_get_stride(s), ++ ink_cairo_pixbuf_cleanup, s); ++ convert_pixbuf_argb32_to_normal(pixbuf); ++ ++ property_pixbuf() = Glib::wrap(pixbuf); ++#if WITH_GTKMM_3_0 ++ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); ++#else ++ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); ++#endif ++} ++ ++bool ++HighlightPicker::activate_vfunc(GdkEvent* event, ++ Gtk::Widget& /*widget*/, ++ const Glib::ustring& path, ++ const Gdk::Rectangle& /*background_area*/, ++ const Gdk::Rectangle& /*cell_area*/, ++ Gtk::CellRendererState /*flags*/) ++{ ++ return false; ++} ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : ++ ++ + +=== added file 'src/ui/widget/highlight-picker.h' +--- src/ui/widget/highlight-picker.h 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/highlight-picker.h 2013-03-08 04:27:35 +0000 +@@ -0,0 +1,90 @@ ++#ifndef __UI_DIALOG_HIGHLIGHT_PICKER_H__ ++#define __UI_DIALOG_HIGHLIGHT_PICKER_H__ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#if HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#include ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++class HighlightPicker : public Gtk::CellRendererPixbuf { ++public: ++ HighlightPicker(); ++ virtual ~HighlightPicker(); ++ ++ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } ++ ++protected: ++ ++#if WITH_GTKMM_3_0 ++ virtual void render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const; ++ ++ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const; ++#else ++ virtual void render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_size_vfunc( Gtk::Widget &widget, ++ Gdk::Rectangle const *cell_area, ++ int *x_offset, int *y_offset, int *width, int *height ) const; ++#endif ++ ++ virtual bool activate_vfunc(GdkEvent *event, ++ Gtk::Widget &widget, ++ const Glib::ustring &path, ++ const Gdk::Rectangle &background_area, ++ const Gdk::Rectangle &cell_area, ++ Gtk::CellRendererState flags); ++ ++private: ++ ++ Glib::Property _property_active; ++}; ++ ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++ ++#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + +=== added file 'src/ui/widget/layertypeicon.cpp' +--- src/ui/widget/layertypeicon.cpp 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/layertypeicon.cpp 2013-03-08 04:27:35 +0000 +@@ -0,0 +1,167 @@ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++ ++#include "ui/widget/layertypeicon.h" ++ ++#include ++ ++#include "widgets/icon.h" ++#include "widgets/toolbox.h" ++#include "ui/icon-names.h" ++#include "layertypeicon.h" ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++LayerTypeIcon::LayerTypeIcon() : ++ Glib::ObjectBase(typeid(LayerTypeIcon)), ++ Gtk::CellRendererPixbuf(), ++ _pixLayerName(INKSCAPE_ICON("dialog-layers")), ++ _pixGroupName(INKSCAPE_ICON("layer-duplicate")), ++ _pixPathName(INKSCAPE_ICON("layer-rename")), ++ _property_active(*this, "active", false), ++ _property_activatable(*this, "activatable", true), ++ _property_pixbuf_layer(*this, "pixbuf_on", Glib::RefPtr(0)), ++ _property_pixbuf_group(*this, "pixbuf_off", Glib::RefPtr(0)), ++ _property_pixbuf_path(*this, "pixbuf_off", Glib::RefPtr(0)) ++{ ++ ++ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; ++ int phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); ++ Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); ++ ++ if (!icon_theme->has_icon(_pixLayerName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixLayerName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ if (!icon_theme->has_icon(_pixGroupName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixGroupName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ if (!icon_theme->has_icon(_pixPathName)) { ++ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixPathName.data()), Inkscape::ICON_SIZE_DECORATION ); ++ } ++ ++ if (icon_theme->has_icon(_pixLayerName)) { ++ _property_pixbuf_layer = icon_theme->load_icon(_pixLayerName, phys, (Gtk::IconLookupFlags)0); ++ } ++ if (icon_theme->has_icon(_pixGroupName)) { ++ _property_pixbuf_group = icon_theme->load_icon(_pixGroupName, phys, (Gtk::IconLookupFlags)0); ++ } ++ if (icon_theme->has_icon(_pixPathName)) { ++ _property_pixbuf_path = icon_theme->load_icon(_pixPathName, phys, (Gtk::IconLookupFlags)0); ++ } ++ ++ property_pixbuf() = _property_pixbuf_path.get_value(); ++} ++ ++ ++#if WITH_GTKMM_3_0 ++void LayerTypeIcon::get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); ++ ++ if (min_h) { ++ min_h += (min_h) >> 1; ++ } ++ ++ if (nat_h) { ++ nat_h += (nat_h) >> 1; ++ } ++} ++ ++void LayerTypeIcon::get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const ++{ ++ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); ++ ++ if (min_w) { ++ min_w += (min_w) >> 1; ++ } ++ ++ if (nat_w) { ++ nat_w += (nat_w) >> 1; ++ } ++} ++#else ++void LayerTypeIcon::get_size_vfunc(Gtk::Widget& widget, ++ const Gdk::Rectangle* cell_area, ++ int* x_offset, ++ int* y_offset, ++ int* width, ++ int* height ) const ++{ ++ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); ++ ++ if ( width ) { ++ *width += (*width) >> 1; ++ } ++ if ( height ) { ++ *height += (*height) >> 1; ++ } ++} ++#endif ++ ++#if WITH_GTKMM_3_0 ++void LayerTypeIcon::render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ) ++#else ++void LayerTypeIcon::render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ) ++#endif ++{ ++ property_pixbuf() = _property_active.get_value() == 1 ? _property_pixbuf_group : (_property_active.get_value() == 2 ? _property_pixbuf_layer : _property_pixbuf_path); ++#if WITH_GTKMM_3_0 ++ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); ++#else ++ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); ++#endif ++} ++ ++bool ++LayerTypeIcon::activate_vfunc(GdkEvent* event, ++ Gtk::Widget& /*widget*/, ++ const Glib::ustring& path, ++ const Gdk::Rectangle& /*background_area*/, ++ const Gdk::Rectangle& /*cell_area*/, ++ Gtk::CellRendererState /*flags*/) ++{ ++ _signal_pre_toggle.emit(event); ++ _signal_toggled.emit(path); ++ ++ return false; ++} ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : ++ ++ + +=== added file 'src/ui/widget/layertypeicon.h' +--- src/ui/widget/layertypeicon.h 1970-01-01 00:00:00 +0000 ++++ src/ui/widget/layertypeicon.h 2013-03-08 04:27:35 +0000 +@@ -0,0 +1,108 @@ ++#ifndef __UI_DIALOG_LAYERTYPEICON_H__ ++#define __UI_DIALOG_LAYERTYPEICON_H__ ++/* ++ * Authors: ++ * Theodore Janeczko ++ * ++ * Copyright (C) Theodore Janeczko 2012 ++ * ++ * Released under GNU GPL, read the file 'COPYING' for more information ++ */ ++ ++#if HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#include ++ ++namespace Inkscape { ++namespace UI { ++namespace Widget { ++ ++class LayerTypeIcon : public Gtk::CellRendererPixbuf { ++public: ++ LayerTypeIcon(); ++ virtual ~LayerTypeIcon() {}; ++ ++ sigc::signal signal_toggled() { return _signal_toggled;} ++ sigc::signal signal_pre_toggle() { return _signal_pre_toggle; } ++ ++ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } ++ Glib::PropertyProxy property_activatable() { return _property_activatable.get_proxy(); } ++ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); ++ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); ++ ++protected: ++ ++#if WITH_GTKMM_3_0 ++ virtual void render_vfunc( const Cairo::RefPtr& cr, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, ++ int& min_w, ++ int& nat_w) const; ++ ++ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, ++ int& min_h, ++ int& nat_h) const; ++#else ++ virtual void render_vfunc( const Glib::RefPtr& window, ++ Gtk::Widget& widget, ++ const Gdk::Rectangle& background_area, ++ const Gdk::Rectangle& cell_area, ++ const Gdk::Rectangle& expose_area, ++ Gtk::CellRendererState flags ); ++ ++ virtual void get_size_vfunc( Gtk::Widget &widget, ++ Gdk::Rectangle const *cell_area, ++ int *x_offset, int *y_offset, int *width, int *height ) const; ++#endif ++ ++ virtual bool activate_vfunc(GdkEvent *event, ++ Gtk::Widget &widget, ++ const Glib::ustring &path, ++ const Gdk::Rectangle &background_area, ++ const Gdk::Rectangle &cell_area, ++ Gtk::CellRendererState flags); ++ ++ ++private: ++ Glib::ustring _pixLayerName; ++ Glib::ustring _pixGroupName; ++ Glib::ustring _pixPathName; ++ ++ Glib::Property _property_active; ++ Glib::Property _property_activatable; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_layer; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_group; ++ Glib::Property< Glib::RefPtr > _property_pixbuf_path; ++ ++ sigc::signal _signal_toggled; ++ sigc::signal _signal_pre_toggle; ++ ++}; ++ ++ ++ ++} // namespace Widget ++} // namespace UI ++} // namespace Inkscape ++ ++ ++#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ ++ ++/* ++ Local Variables: ++ mode:c++ ++ c-file-style:"stroustrup" ++ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) ++ indent-tabs-mode:nil ++ fill-column:99 ++ End: ++*/ ++// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + +=== modified file 'src/verbs.cpp' +--- src/verbs.cpp 2013-03-04 17:21:11 +0000 ++++ src/verbs.cpp 2013-03-17 14:29:16 +0000 +@@ -1980,6 +1980,9 @@ + case SP_VERB_DIALOG_LAYERS: + dt->_dlg_mgr->showDialog("LayersPanel"); + break; ++ case SP_VERB_DIALOG_OBJECTS: ++ dt->_dlg_mgr->showDialog("ObjectsPanel"); ++ break; + case SP_VERB_DIALOG_LIVE_PATH_EFFECT: + dt->_dlg_mgr->showDialog("LivePathEffect"); + break; +@@ -2791,6 +2794,8 @@ + N_("Query information about extensions"), NULL), + new DialogVerb(SP_VERB_DIALOG_LAYERS, "DialogLayers", N_("Layer_s..."), + N_("View Layers"), INKSCAPE_ICON("dialog-layers")), ++ new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), ++ N_("View Objects"), INKSCAPE_ICON("dialog-layers")), + new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), + N_("Manage, edit, and apply path effects"), NULL), + new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."), + +=== modified file 'src/verbs.h' +--- src/verbs.h 2013-03-04 17:21:11 +0000 ++++ src/verbs.h 2013-03-17 14:28:15 +0000 +@@ -285,6 +285,7 @@ + SP_VERB_DIALOG_INPUT, + SP_VERB_DIALOG_EXTENSIONEDITOR, + SP_VERB_DIALOG_LAYERS, ++ SP_VERB_DIALOG_OBJECTS, + SP_VERB_DIALOG_LIVE_PATH_EFFECT, + SP_VERB_DIALOG_FILTER_EFFECTS, + SP_VERB_DIALOG_SVG_FONTS, + diff --git a/share/palettes/MLP/All.gpl b/share/palettes/MLP/All.gpl new file mode 100644 index 000000000..d408e0c10 --- /dev/null +++ b/share/palettes/MLP/All.gpl @@ -0,0 +1,10 @@ +GIMP Palette +Name: All +Columns: 0 +# +255 255 255 White + 0 0 0 Black +255 255 255 Teeth Fill +185 224 247 Teeth Stroke +197 52 116 Mouth +246 112 51 Tongue diff --git a/share/palettes/MLP/Applejack.gpl b/share/palettes/MLP/Applejack.gpl new file mode 100644 index 000000000..03845416f --- /dev/null +++ b/share/palettes/MLP/Applejack.gpl @@ -0,0 +1,18 @@ +GIMP Palette +Name: Applejack +Columns: 0 +# +250 186 97 Body Fill +242 171 84 Body Shadow +233 113 53 Body Stroke +245 239 179 Mane Fill +229 215 97 Mane Stroke +234 64 63 Hair Band +203 154 91 Hat Fill +176 134 79 Hat Stroke + 96 189 80 Eye Grad Light + 38 119 22 Eye Grad Dark +125 217 103 Eye Accent +209 236 201 Eye Highlight +234 64 63 Cutie Mark Apple + 96 189 80 Cutie Mark Stem diff --git a/share/palettes/MLP/Daisy.gpl b/share/palettes/MLP/Daisy.gpl new file mode 100644 index 000000000..deab92e56 --- /dev/null +++ b/share/palettes/MLP/Daisy.gpl @@ -0,0 +1,16 @@ +GIMP Palette +Name: Daisy +Columns: 0 +# +255 170 250 Body Fill +250 148 242 Body fill Shadow +242 104 219 Body stroke +203 244 140 Mane Fill +153 222 60 Mane Stroke + 58 183 109 Eye Grad Light + 39 95 76 Eye Grad Dark +111 229 144 Eye Accent +198 243 193 Eye Highlight +255 255 255 CM Fill +194 192 193 CM Stroke +255 255 1 CM Centre diff --git a/share/palettes/MLP/Fluttershy.gpl b/share/palettes/MLP/Fluttershy.gpl new file mode 100644 index 000000000..cf525b5a9 --- /dev/null +++ b/share/palettes/MLP/Fluttershy.gpl @@ -0,0 +1,15 @@ +GIMP Palette +Name: Fluttershy +Columns: 0 +# +253 246 175 Body Fill +254 231 133 Body Shadow +234 212 99 Body Stroke +243 185 216 Mane Fill +235 129 180 Mane Stroke + 0 173 168 Eye Grad Light + 3 83 80 Eye Grad Dark +104 200 198 Eye Accent +158 216 213 Eye Highlight +104 200 198 Cutie Mark Body +243 185 216 Cutie Mark Wings diff --git a/share/palettes/MLP/Lily.gpl b/share/palettes/MLP/Lily.gpl new file mode 100644 index 000000000..3ec72fe16 --- /dev/null +++ b/share/palettes/MLP/Lily.gpl @@ -0,0 +1,18 @@ +GIMP Palette +Name: Lily +Columns: 0 +# +239 148 186 Body Fill +231 129 174 Body fill Shadow +211 90 138 Body stroke +247 225 141 Mane Fill +220 197 97 Mane Stroke +250 236 181 Mane Highlight +251 244 172 Eye Grad Light +246 181 65 Eye Grad Dark +235 227 103 Eye Accent +255 255 254 Eye Highlight +251 252 250 CM Fill +192 220 232 CM Stroke +246 212 68 CM stem +243 155 63 CM pollin diff --git a/share/palettes/MLP/Makefile b/share/palettes/MLP/Makefile new file mode 100644 index 000000000..17028e01d --- /dev/null +++ b/share/palettes/MLP/Makefile @@ -0,0 +1,520 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# share/palettes/MLP/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +pkgdatadir = $(datadir)/ponyscape +pkgincludedir = $(includedir)/ponyscape +pkglibdir = $(libdir)/ponyscape +pkglibexecdir = $(libexecdir)/ponyscape +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +subdir = share/palettes/MLP +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/m4/ac_define_dir.m4 \ + $(top_srcdir)/m4/relaytool.m4 \ + $(top_srcdir)/m4/ink_bzr_snapshot_build.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(MLPdir)" +DATA = $(MLP_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/ponyscape-src/build-aux/missing --run aclocal-1.11 +ALL_LINGUAS = +AMTAR = ${SHELL} /home/ponyscape-src/build-aux/missing --run tar +AM_DEFAULT_VERBOSITY = 0 +AR = ar +AUTOCONF = ${SHELL} /home/ponyscape-src/build-aux/missing --run autoconf +AUTOHEADER = ${SHELL} /home/ponyscape-src/build-aux/missing --run autoheader +AUTOMAKE = ${SHELL} /home/ponyscape-src/build-aux/missing --run automake-1.11 +AWK = mawk +CAIRO_PDF_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 +CAIRO_PDF_LIBS = -lz -lcairo +CAIRO_SVG_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 +CAIRO_SVG_LIBS = -lcairo +CAIRO_USER_FONTS_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 +CAIRO_USER_FONTS_LIBS = -lcairo +CARBON_LDFLAGS = +CC = gcc +CCAS = gcc +CCASDEPMODE = depmode=gcc3 +CCASFLAGS = -g -O2 +CCDEPMODE = depmode=gcc3 +CFLAGS = -Wno-pointer-sign -g -O2 +CPP = gcc -E +CPPFLAGS = -DG_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED -DGTK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -Werror=format-security -DGSEAL_ENABLE -DG_DISABLE_SINGLE_INCLUDES -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -g -O2 -fopenmp +CYGPATH_W = echo +DATADIRNAME = share +DBUSSERVICEDIR = +DBUS_CFLAGS = +DBUS_LIBS = +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +EXIF_CFLAGS = -I/usr/include/libexif +EXIF_LIBS = -lexif +FGREP = /bin/grep -F +FREETYPE_CFLAGS = -I/usr/include/freetype2 +FREETYPE_CONFIG = /usr/bin/freetype-config +FREETYPE_LIBS = -L/usr/lib/x86_64-linux-gnu -lfreetype -lz +GETTEXT_MACRO_VERSION = 0.17 +GETTEXT_PACKAGE = ponyscape +GLIBMM_USES_DEPRECATED_GLIB_SYMBOLS_CFLAGS = +GLIBMM_USES_DEPRECATED_GLIB_SYMBOLS_LIBS = +GMSGFMT = /usr/bin/msgfmt +GMSGFMT_015 = /usr/bin/msgfmt +GNOME_VFS_CFLAGS = -pthread -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 +GNOME_VFS_LIBS = -pthread -lgnomevfs-2 -lgconf-2 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 +GREP = /bin/grep +IMAGEMAGICK_CFLAGS = -fopenmp -I/usr/include/ImageMagick +IMAGEMAGICK_LIBS = -lMagick++ -lMagickCore +INKSCAPE_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/libxml2 -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 +INKSCAPE_DATADIR = /usr/local/share +INKSCAPE_LIBS = -pthread -lgc -lxslt -lxml2 -lpng12 -lgsl -lgslcblas -lm -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lX11 -lz -lxml2 -ldl -lgomp -lpopt -laspell +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLLIBS = +INTLTOOL_EXTRACT = /usr/bin/intltool-extract +INTLTOOL_MERGE = /usr/bin/intltool-merge +INTLTOOL_PERL = /usr/bin/perl +INTLTOOL_UPDATE = /usr/bin/intltool-update +INTL_MACOSX_LIBS = +LCMS2_CFLAGS = +LCMS2_LIBS = +LCMS_CFLAGS = +LCMS_LIBS = -llcms +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = -Wl,-z,relro +LIBCDR_CFLAGS = +LIBCDR_LIBS = +LIBICONV = -liconv +LIBINTL = +LIBOBJS = +LIBS = -ljpeg -llcms -lpoppler -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIBVISIO_CFLAGS = +LIBVISIO_LIBS = +LIBWPG01_CFLAGS = +LIBWPG01_LIBS = +LIBWPG02_CFLAGS = -I/usr/include/libwpg-0.2 -I/usr/include/libwpd-0.9 +LIBWPG02_LIBS = -lwpg-0.2 -lwpd-0.9 -lwpd-stream-0.9 +LIBWPG_CFLAGS = -I/usr/include/libwpg-0.2 -I/usr/include/libwpd-0.9 +LIBWPG_LIBS = -lwpg-0.2 -lwpd-0.9 -lwpd-stream-0.9 +LIPO = +LN_S = ln -s +LTLIBICONV = -liconv +LTLIBINTL = +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/ponyscape-src/build-aux/missing --run makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +MSGFMT = /usr/bin/msgfmt +MSGFMT_015 = /usr/bin/msgfmt +MSGMERGE = /usr/bin/msgmerge +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OPENMP_CXXFLAGS = -fopenmp +OTOOL = +OTOOL64 = +PACKAGE = ponyscape +PACKAGE_BUGREPORT = http://bugs.launchpad.net/inkscape/+filebug +PACKAGE_LOCALE_DIR = /usr/local/share/locale +PACKAGE_NAME = ponyscape +PACKAGE_STRING = ponyscape 0.4 +PACKAGE_TARNAME = ponyscape +PACKAGE_URL = http://ponyscape.org/ +PACKAGE_VERSION = 0.4 +PANGO_USES_DEPRECATED_GLIB_SYMBOLS_CFLAGS = +PANGO_USES_DEPRECATED_GLIB_SYMBOLS_LIBS = +PATH_SEPARATOR = : +PKG_CONFIG = /usr/bin/pkg-config +PKG_CONFIG_LIBDIR = +PKG_CONFIG_PATH = +POPPLER_CAIRO_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/poppler +POPPLER_CAIRO_LIBS = -lpoppler -lcairo +POPPLER_CFLAGS = -I/usr/include/poppler +POPPLER_GFXFONT_CFLAGS = -I/usr/include/poppler +POPPLER_GFXFONT_LIBS = -lpoppler +POPPLER_GLIB_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/cairo -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/pango-1.0 -I/usr/include/poppler/glib -I/usr/include/poppler +POPPLER_GLIB_LIBS = -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 +POPPLER_LIBS = -lpoppler -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 +POPPLER_NEWERRORAPI_CFLAGS = +POPPLER_NEWERRORAPI_LIBS = +POSUB = po +POW_LIB = +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +USE_NLS = yes +VERSION = 0.4 +WIN32_CFLAGS = +XGETTEXT = /usr/bin/xgettext +XGETTEXT_015 = /usr/bin/xgettext +XGETTEXT_EXTRA_OPTIONS = +abs_builddir = /home/ponyscape-src/share/palettes/MLP +abs_srcdir = /home/ponyscape-src/share/palettes/MLP +abs_top_builddir = /home/ponyscape-src +abs_top_srcdir = /home/ponyscape-src +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__tar = tar --format=posix -chf - "$$tardir" +am__untar = tar -xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/ponyscape-src/build-aux/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = /bin/mkdir -p +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../../../ +top_builddir = ../../.. +top_srcdir = ../../.. +MLPdir = $(datadir)/ponyscape/palettes/MLP +MLP_DATA = \ + All.gpl \ + Applejack.gpl \ + Daisy.gpl \ + Fluttershy.gpl \ + Lily.gpl \ + Pinkie.gpl \ + Rainbow-Dash.gpl \ + Rarity.gpl \ + Roseluck.gpl \ + Silver-Rains.gpl \ + Spike.gpl \ + Twilight-Sparkle.gpl + +EXTRA_DIST = $(MLP_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/palettes/MLP/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu share/palettes/MLP/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-MLPDATA: $(MLP_DATA) + @$(NORMAL_INSTALL) + test -z "$(MLPdir)" || $(MKDIR_P) "$(DESTDIR)$(MLPdir)" + @list='$(MLP_DATA)'; test -n "$(MLPdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(MLPdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(MLPdir)" || exit $$?; \ + done + +uninstall-MLPDATA: + @$(NORMAL_UNINSTALL) + @list='$(MLP_DATA)'; test -n "$(MLPdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(MLPdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(MLPdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(MLPdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-MLPDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-MLPDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-MLPDATA \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-MLPDATA uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/share/palettes/MLP/Makefile.am b/share/palettes/MLP/Makefile.am new file mode 100644 index 000000000..cfd45878c --- /dev/null +++ b/share/palettes/MLP/Makefile.am @@ -0,0 +1,18 @@ + +MLPdir = $(datadir)/ponyscape/palettes/MLP + +MLP_DATA = \ + All.gpl \ + Applejack.gpl \ + Daisy.gpl \ + Fluttershy.gpl \ + Lily.gpl \ + Pinkie.gpl \ + Rainbow-Dash.gpl \ + Rarity.gpl \ + Roseluck.gpl \ + Silver-Rains.gpl \ + Spike.gpl \ + Twilight-Sparkle.gpl + +EXTRA_DIST = $(MLP_DATA) diff --git a/share/palettes/MLP/Pinkie.gpl b/share/palettes/MLP/Pinkie.gpl new file mode 100644 index 000000000..ca7b46d4d --- /dev/null +++ b/share/palettes/MLP/Pinkie.gpl @@ -0,0 +1,15 @@ +GIMP Palette +Name: Pinkie +Columns: 0 +# +249 184 210 Body Fill +237 157 194 Body Shadow +234 128 176 Body Stroke +240 67 140 Mane Fill +192 27 117 Mane Stroke +127 210 244 Eye Grad Light + 24 113 149 Eye Grad Dark +157 226 249 Eye Accent +223 249 254 Eye Highlight +255 247 173 Cutie Mark Yellow +123 212 249 Cutie Mark Blue diff --git a/share/palettes/MLP/Rainbow-Dash.gpl b/share/palettes/MLP/Rainbow-Dash.gpl new file mode 100644 index 000000000..7f398cf23 --- /dev/null +++ b/share/palettes/MLP/Rainbow-Dash.gpl @@ -0,0 +1,23 @@ +GIMP Palette +Name: Rainbow Dash +Columns: 0 +# +157 217 248 Body Fill +145 190 231 Body Shadow +106 170 221 Body Stroke +241 62 50 Mane Red +246 118 52 Mane Orange +245 235 126 Mane Yellow +122 194 64 Mane Green + 1 147 207 Mane Blue +102 46 138 Mane Purple + 1 147 207 Mane Stroke +198 0 111 Eye Grad Light + 87 0 48 Eye Grad Dark +214 74 153 Eye Accent +240 174 208 Eye Highlight +255 255 255 Cutie Mark Cloud Fill + 1 147 207 Cutie Mark Cloud Stroke +241 62 50 Cutie Mark Red +245 235 126 Cutie Mark Yellow + 1 147 207 Cutie Mark Blue diff --git a/share/palettes/MLP/Rarity.gpl b/share/palettes/MLP/Rarity.gpl new file mode 100644 index 000000000..9ecbd2bed --- /dev/null +++ b/share/palettes/MLP/Rarity.gpl @@ -0,0 +1,18 @@ +GIMP Palette +Name: Rarity +Columns: 0 +# +240 242 243 Body Fill +226 228 230 Body Shadow +194 197 198 Body Stroke + 94 81 163 Mane Fill + 75 21 102 Mane Stroke +126 74 153 Mane Grad Light + 75 21 102 Mane Grad Dark + 55 119 190 Eye Grad Light + 26 70 106 Eye Grad Dark + 85 149 211 Eye Accent +122 172 236 Eye Highlight +188 228 247 Eyeshadow +115 212 253 Cutie Mark Fill + 44 143 183 Cutie Mark Stroke diff --git a/share/palettes/MLP/Roseluck.gpl b/share/palettes/MLP/Roseluck.gpl new file mode 100644 index 000000000..9ca484f94 --- /dev/null +++ b/share/palettes/MLP/Roseluck.gpl @@ -0,0 +1,21 @@ +GIMP Palette +Name: Roseluck +Columns: 0 +# +255 255 217 Body Fill +226 226 195 Body Fill Shadow +201 192 148 Body Stroke +187 42 87 Mane Fill +152 35 69 Mane Stroke +227 131 159 Mane Highlight +221 104 139 Mane Highlight Stroke +189 232 135 Eye Grad Light + 57 84 31 Eye Grad Dark +253 255 246 Eye Highlight +214 237 178 Eye Accent + 73 118 36 CM Stem +110 162 55 CM leaf stroke +151 205 99 CM leaf fill +211 54 102 CM Rose fill +152 35 69 CM rose Stroke +187 42 87 CM rose Shadow fill diff --git a/share/palettes/MLP/Silver-Rains.gpl b/share/palettes/MLP/Silver-Rains.gpl new file mode 100644 index 000000000..8affb0e7c --- /dev/null +++ b/share/palettes/MLP/Silver-Rains.gpl @@ -0,0 +1,17 @@ +GIMP Palette +Name: Silver Rains +Columns: 0 +# +201 201 201 Body Fill +190 190 190 Body Shadow +168 168 168 Body Stroke +151 177 250 Mane Fill +120 142 202 Mane Streak + 74 100 174 Mane Stroke +118 244 192 Eye Grad Light + 2 198 161 Eye Grad Dark +180 252 226 Eye Accent +205 249 233 Eye Highlight +154 160 177 Cutie Mark Cloud +138 195 255 Cutie Mark Drops + 52 93 136 Cutie Mark Notes diff --git a/share/palettes/MLP/Spike.gpl b/share/palettes/MLP/Spike.gpl new file mode 100644 index 000000000..91b827a3b --- /dev/null +++ b/share/palettes/MLP/Spike.gpl @@ -0,0 +1,17 @@ +GIMP Palette +Name: Spike +Columns: 0 +# +198 147 201 Body Fill +176 116 185 Body Shadow +153 95 160 Body Stroke +219 236 180 Body Green Fill +152 210 124 Body Green Stroke + 82 196 88 Spike Fill + 44 151 47 Spike Stroke +178 217 100 Ear Fill +226 236 139 Ear Stroke + 98 187 77 Eye Grad Light + 39 117 20 Eye Grad Dark +127 217 104 Eye Accent +203 240 196 Eye Highlight diff --git a/share/palettes/MLP/Twilight-Sparkle.gpl b/share/palettes/MLP/Twilight-Sparkle.gpl new file mode 100644 index 000000000..59acf5dac --- /dev/null +++ b/share/palettes/MLP/Twilight-Sparkle.gpl @@ -0,0 +1,17 @@ +GIMP Palette +Name: Twilight Sparkle +Columns: 0 +# +212 164 232 Body Fill +174 133 193 Body Shadow +166 110 190 Body Stroke + 39 55 113 Mane Fill + 19 32 66 Mane Stroke + 98 46 134 Mane Highlight Purple +230 69 139 Mane Highlight Pink + 99 49 131 Eye Grad Light + 41 10 75 Eye Grad Dark +150 107 171 Eye Accent +206 183 215 Eye Highlight +230 69 139 Cutie Mark Pink +255 255 255 Cutie Mark White diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am index b25b35a06..2e6560bb1 100644 --- a/share/palettes/Makefile.am +++ b/share/palettes/Makefile.am @@ -1,5 +1,6 @@ +SUBDIRS = MLP -palettesdir = $(datadir)/inkscape/palettes +palettesdir = $(datadir)/ponyscape/palettes palettes_DATA = \ README \ @@ -17,6 +18,7 @@ palettes_DATA = \ Reds.gpl \ Royal.gpl \ svg.gpl \ + swatches.svg \ Tango-Palette.gpl \ Topographic.gpl \ Ubuntu.gpl \ diff --git a/share/palettes/README b/share/palettes/README index b6e7fd759..8b04470b7 100644 --- a/share/palettes/README +++ b/share/palettes/README @@ -1,11 +1,4 @@ This is the directory with the Inkscape color palettes. They are in Gimp format (.gpl). Within Inkscape, they can be accessed by a drop-down menu in the Swatches -dialog (Ctrl+Shift+W). - -Internationalization - -This file is internationalized the same way as share/filters/filters/svg -The i18n.py script called from the makefile will extract strings from the *.svg -into a *.svg.h file. Intltool is then able to extracts these strings just like -from normal .h files. +dialog (Ctrl+Shift+W). \ No newline at end of file diff --git a/share/palettes/Tango-Palette.gpl b/share/palettes/Tango-Palette.gpl index 7e626737b..22dc46676 100644 --- a/share/palettes/Tango-Palette.gpl +++ b/share/palettes/Tango-Palette.gpl @@ -23,11 +23,9 @@ Columns: 3 239 41 41 Scarlet Red 1 204 0 0 Scarlet Red 2 164 0 0 Scarlet Red 3 -255 255 255 Snowy White 238 238 236 Aluminium 1 211 215 207 Aluminium 2 186 189 182 Aluminium 3 136 138 133 Aluminium 4 85 87 83 Aluminium 5 46 52 54 Aluminium 6 - 0 0 0 Jet Black diff --git a/share/palettes/swatches.svg b/share/palettes/swatches.svg new file mode 100644 index 000000000..ac007b507 --- /dev/null +++ b/share/palettes/swatches.svg @@ -0,0 +1,28382 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index 7940c28ae..6eece0c17 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -11,18 +11,9 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - #include - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include #include +#include #include #include @@ -45,6 +36,7 @@ #include "xml/repr.h" #include "verbs.h" #include "widgets/gradient-vector.h" +#include "sp-paint-server.h" #include "color.h" // for SP_RGBA32_U_COMPOSE @@ -53,756 +45,206 @@ namespace Inkscape { namespace UI { namespace Dialogs { -static std::vector mimeStrings; -static std::map mimeToInt; - -#if ENABLE_MAGIC_COLORS -// TODO remove this soon: -extern std::vector possible; -#endif // ENABLE_MAGIC_COLORS - - -#if ENABLE_MAGIC_COLORS -static bool bruteForce( SPDocument* document, Inkscape::XML::Node* node, Glib::ustring const& match, int r, int g, int b ) +bool ColorItem::on_enter_notify_event(GdkEventCrossing* event) { - bool changed = false; - - if ( node ) { - gchar const * val = node->attribute("inkscape:x-fill-tag"); - if ( val && (match == val) ) { - SPObject *obj = document->getObjectByRepr( node ); - - gchar c[64] = {0}; - sp_svg_write_color( c, sizeof(c), SP_RGBA32_U_COMPOSE( r, g, b, 0xff ) ); - SPCSSAttr *css = sp_repr_css_attr_new(); - sp_repr_css_set_property( css, "fill", c ); - - sp_desktop_apply_css_recursive( obj, css, true ); - static_cast(obj)->updateRepr(); - - changed = true; - } - - val = node->attribute("inkscape:x-stroke-tag"); - if ( val && (match == val) ) { - SPObject *obj = document->getObjectByRepr( node ); - - gchar c[64] = {0}; - sp_svg_write_color( c, sizeof(c), SP_RGBA32_U_COMPOSE( r, g, b, 0xff ) ); - SPCSSAttr *css = sp_repr_css_attr_new(); - sp_repr_css_set_property( css, "stroke", c ); - - sp_desktop_apply_css_recursive( (SPItem*)obj, css, true ); - ((SPItem*)obj)->updateRepr(); - - changed = true; - } - - Inkscape::XML::Node* first = node->firstChild(); - changed |= bruteForce( document, first, match, r, g, b ); - - changed |= bruteForce( document, node->next(), match, r, g, b ); - } - - return changed; -} -#endif // ENABLE_MAGIC_COLORS - -static void handleClick( GtkWidget* /*widget*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - item->buttonClicked(false); - } -} - -static void handleSecondaryClick( GtkWidget* /*widget*/, gint /*arg1*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - item->buttonClicked(true); - } -} - -static gboolean handleEnterNotify( GtkWidget* /*widget*/, GdkEventCrossing* /*event*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if ( desktop ) { - gchar* msg = g_strdup_printf(_("Color: %s; Click to set fill, Shift+click to set stroke"), - item->def.descr.c_str()); - desktop->tipsMessageContext()->set(Inkscape::INFORMATION_MESSAGE, msg); - g_free(msg); - } - } - return FALSE; -} - -static gboolean handleLeaveNotify( GtkWidget* /*widget*/, GdkEventCrossing* /*event*/, gpointer callback_data ) { - ColorItem* item = reinterpret_cast(callback_data); - if ( item ) { - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if ( desktop ) { - desktop->tipsMessageContext()->clear(); - } + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if ( desktop ) { + gchar* msg = g_strdup_printf(_("Color: %s; Click to set fill, Shift+click to set stroke"),def); + desktop->tipsMessageContext()->set(Inkscape::INFORMATION_MESSAGE, msg); + g_free(msg); } - return FALSE; + return Gtk::Widget::on_enter_notify_event(event); } -static void dieDieDie( GObject *obj, gpointer user_data ) +bool ColorItem::on_leave_notify_event(GdkEventCrossing* event) { - g_message("die die die %p %p", obj, user_data ); -} - -static bool getBlock( std::string& dst, guchar ch, std::string const & str ) -{ - bool good = false; - std::string::size_type pos = str.find(ch); - if ( pos != std::string::npos ) - { - std::string::size_type pos2 = str.find( '(', pos ); - if ( pos2 != std::string::npos ) { - std::string::size_type endPos = str.find( ')', pos2 ); - if ( endPos != std::string::npos ) { - dst = str.substr( pos2 + 1, (endPos - pos2 - 1) ); - good = true; - } - } + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if ( desktop ) { + desktop->tipsMessageContext()->clear(); } - return good; + return Gtk::Widget::on_leave_notify_event(event); } -static bool popVal( guint64& numVal, std::string& str ) +void ColorItem::selection_modified(Selection* selection, guint flags) { - bool good = false; - std::string::size_type endPos = str.find(','); - if ( endPos == std::string::npos ) { - endPos = str.length(); - } - - if ( endPos != std::string::npos && endPos > 0 ) { - std::string xxx = str.substr( 0, endPos ); - const gchar* ptr = xxx.c_str(); - gchar* endPtr = 0; - numVal = g_ascii_strtoull( ptr, &endPtr, 10 ); - if ( (numVal == G_MAXUINT64) && (ERANGE == errno) ) { - // overflow - } else if ( (numVal == 0) && (endPtr == ptr) ) { - // failed conversion - } else { - good = true; - str.erase( 0, endPos + 1 ); - } - } - - return good; + selection_changed(selection); } -// TODO resolve this more cleanly: -extern gboolean colorItemHandleButtonPress( GtkWidget* /*widget*/, GdkEventButton* event, gpointer user_data); - -static void colorItemDragBegin( GtkWidget */*widget*/, GdkDragContext* dc, gpointer data ) +void ColorItem::selection_changed(Selection* selection) { - ColorItem* item = reinterpret_cast(data); - if ( item ) + SPItem* item = selection->singleItem(); + SPPaintServer* grad; + if (item && + ( + (item->style->fill.isPaintserver() && + SP_IS_GRADIENT( (grad = item->style->getFillPaintServer()) ) + && SP_GRADIENT(grad)->getVector() == gradient) || + + (item->style->stroke.isPaintserver() && + SP_IS_GRADIENT( (grad = item->style->getStrokePaintServer()) ) && + SP_GRADIENT(grad)->getVector() == gradient) + ) + ) { - using Inkscape::IO::Resource::get_path; - using Inkscape::IO::Resource::ICONS; - using Inkscape::IO::Resource::SYSTEM; - int width = 32; - int height = 24; - - if (item->def.getType() != ege::PaintDef::RGB){ - GError *error = NULL; - gsize bytesRead = 0; - gsize bytesWritten = 0; - gchar *localFilename = g_filename_from_utf8( get_path(SYSTEM, ICONS, "remove-color.png"), - -1, - &bytesRead, - &bytesWritten, - &error); - GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file_at_scale(localFilename, width, height, FALSE, &error); - g_free(localFilename); - gtk_drag_set_icon_pixbuf( dc, pixbuf, 0, 0 ); - } else { - GdkPixbuf* pixbuf = 0; - if ( item->getGradient() ){ - cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); - cairo_pattern_t *gradient = sp_gradient_create_preview_pattern(item->getGradient(), width); - cairo_t *ct = cairo_create(s); - cairo_set_source(ct, gradient); - cairo_paint(ct); - cairo_destroy(ct); - cairo_pattern_destroy(gradient); - cairo_surface_flush(s); - - pixbuf = ink_pixbuf_create_from_cairo_surface(s); - } else { - Glib::RefPtr thumb = Gdk::Pixbuf::create( Gdk::COLORSPACE_RGB, false, 8, width, height ); - guint32 fillWith = (0xff000000 & (item->def.getR() << 24)) - | (0x00ff0000 & (item->def.getG() << 16)) - | (0x0000ff00 & (item->def.getB() << 8)); - thumb->fill( fillWith ); - pixbuf = thumb->gobj(); - g_object_ref(G_OBJECT(pixbuf)); - } - gtk_drag_set_icon_pixbuf( dc, pixbuf, 0, 0 ); + if (!_isSelected) { + _isSelected = true; + queue_draw(); } + } else if (_isSelected) { + _isSelected = false; + queue_draw(); } - -} - -//"drag-drop" -// gboolean dragDropColorData( GtkWidget *widget, -// GdkDragContext *drag_context, -// gint x, -// gint y, -// guint time, -// gpointer user_data) -// { -// // TODO finish - -// return TRUE; -// } - - -SwatchPage::SwatchPage() - : _prefWidth(0) -{ -} - -SwatchPage::~SwatchPage() -{ -} - - -ColorItem::ColorItem(ege::PaintDef::ColorType type) : - def(type), - _isFill(false), - _isStroke(false), - _isLive(false), - _linkIsTone(false), - _linkPercent(0), - _linkGray(0), - _linkSrc(0), - _grad(0), - _pattern(0) -{ -} - -ColorItem::ColorItem( unsigned int r, unsigned int g, unsigned int b, Glib::ustring& name ) : - def( r, g, b, name ), - _isFill(false), - _isStroke(false), - _isLive(false), - _linkIsTone(false), - _linkPercent(0), - _linkGray(0), - _linkSrc(0), - _grad(0), - _pattern(0) -{ -} - -ColorItem::~ColorItem() -{ - if (_pattern != NULL) { - cairo_pattern_destroy(_pattern); - } -} - -ColorItem::ColorItem(ColorItem const &other) : - Inkscape::UI::Previewable() -{ - if ( this != &other ) { - *this = other; - } -} - -ColorItem &ColorItem::operator=(ColorItem const &other) -{ - if ( this != &other ) { - def = other.def; - - // TODO - correct linkage - _linkSrc = other._linkSrc; - g_message("Erk!"); - } - return *this; } -void ColorItem::setState( bool fill, bool stroke ) +ColorItem::ColorItem( SPGradient* grad, const gchar* name, SPDesktop* desktop ) : + Glib::ObjectBase("coloritem"), + Gtk::Widget(), + def( name ), + gradient(grad), + _isSelected(false) { - if ( (_isFill != fill) || (_isStroke != stroke) ) { - _isFill = fill; - _isStroke = stroke; - - for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { - Gtk::Widget* widget = *it; - if ( IS_EEK_PREVIEW(widget->gobj()) ) { - EekPreview * preview = EEK_PREVIEW(widget->gobj()); - - int val = eek_preview_get_linked( preview ); - val &= ~(PREVIEW_FILL | PREVIEW_STROKE); - if ( _isFill ) { - val |= PREVIEW_FILL; - } - if ( _isStroke ) { - val |= PREVIEW_STROKE; - } - eek_preview_set_linked( preview, static_cast(val) ); - } - } - } + set_has_window(true); + add_events(Gdk::BUTTON_PRESS_MASK); + add_events(Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); + sel_connection = desktop->selection->connectChanged(sigc::mem_fun(*this, &ColorItem::selection_changed)); + mod_connection = desktop->selection->connectModified(sigc::mem_fun(*this, &ColorItem::selection_modified)); + selection_changed(desktop->selection); } -void ColorItem::setGradient(SPGradient *grad) +void ColorItem::on_size_request(Gtk::Requisition* requisition) { - if (_grad != grad) { - _grad = grad; - // TODO regen and push to listeners - } - - setName( gr_prepare_label(_grad) ); + requisition->height = 20; + requisition->width = 20; } -void ColorItem::setName(const Glib::ustring name) +void ColorItem::on_size_allocate(Gtk::Allocation& allocation) { - //def.descr = name; - - for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { - Gtk::Widget* widget = *it; - if ( IS_EEK_PREVIEW(widget->gobj()) ) { - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->gobj()), name.c_str()); - } - else if ( GTK_IS_LABEL(widget->gobj()) ) { - gtk_label_set_text(GTK_LABEL(widget->gobj()), name.c_str()); - } + set_allocation(allocation); + if (m_refGdkWindow) + { + m_refGdkWindow->move_resize( allocation.get_x(), allocation.get_y(), allocation.get_width(), allocation.get_height() ); } } -void ColorItem::setPattern(cairo_pattern_t *pattern) +void ColorItem::on_map() { - if (pattern) { - cairo_pattern_reference(pattern); - } - if (_pattern) { - cairo_pattern_destroy(_pattern); - } - _pattern = pattern; - - _updatePreviews(); + Gtk::Widget::on_map(); } -void ColorItem::_dragGetColorData( GtkWidget */*widget*/, - GdkDragContext */*drag_context*/, - GtkSelectionData *data, - guint info, - guint /*time*/, - gpointer user_data) +void ColorItem::on_unmap() { - ColorItem* item = reinterpret_cast(user_data); - std::string key; - if ( info < mimeStrings.size() ) { - key = mimeStrings[info]; - } else { - g_warning("ERROR: unknown value (%d)", info); - } - - if ( !key.empty() ) { - char* tmp = 0; - int len = 0; - int format = 0; - item->def.getMIMEData(key, tmp, len, format); - if ( tmp ) { - GdkAtom dataAtom = gdk_atom_intern( key.c_str(), FALSE ); - gtk_selection_data_set( data, dataAtom, format, (guchar*)tmp, len ); - delete[] tmp; - } - } + Gtk::Widget::on_unmap(); } -void ColorItem::_dropDataIn( GtkWidget */*widget*/, - GdkDragContext */*drag_context*/, - gint /*x*/, gint /*y*/, - GtkSelectionData */*data*/, - guint /*info*/, - guint /*event_time*/, - gpointer /*user_data*/) +void ColorItem::on_realize() { + set_realized(); + ensure_style(); + + if(!m_refGdkWindow) + { + //Create the GdkWindow: + + GdkWindowAttr attributes; + memset(&attributes, 0, sizeof(attributes)); + + Gtk::Allocation allocation = get_allocation(); + + //Set initial position and size of the Gdk::Window: + attributes.x = allocation.get_x(); + attributes.y = allocation.get_y(); + attributes.width = allocation.get_width(); + attributes.height = allocation.get_height(); + + attributes.event_mask = get_events () | Gdk::EXPOSURE_MASK; + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + + m_refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, + GDK_WA_X | GDK_WA_Y); + set_window(m_refGdkWindow); + + //Attach this widget's style to its Gdk::Window. + style_attach(); + + //make the widget receive expose events + m_refGdkWindow->set_user_data(gobj()); + } } -void ColorItem::_colorDefChanged(void* data) +void ColorItem::on_unrealize() { - ColorItem* item = reinterpret_cast(data); - if ( item ) { - item->_updatePreviews(); - } + m_refGdkWindow.reset(); + + Gtk::Widget::on_unrealize(); } -void ColorItem::_updatePreviews() +bool ColorItem::on_expose_event(GdkEventExpose* event) { - for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { - Gtk::Widget* widget = *it; - if ( IS_EEK_PREVIEW(widget->gobj()) ) { - EekPreview * preview = EEK_PREVIEW(widget->gobj()); - - _regenPreview(preview); - - widget->queue_draw(); - } - } - - for ( std::vector::iterator it = _listeners.begin(); it != _listeners.end(); ++it ) { - guint r = def.getR(); - guint g = def.getG(); - guint b = def.getB(); - - if ( (*it)->_linkIsTone ) { - r = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * r) ) / 100; - g = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * g) ) / 100; - b = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * b) ) / 100; - } else { - r = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * r) ) / 100; - g = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * g) ) / 100; - b = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * b) ) / 100; - } - - (*it)->def.setRGB( r, g, b ); - } - - -#if ENABLE_MAGIC_COLORS - // Look for objects using this color + if(m_refGdkWindow) { - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if ( desktop ) { - SPDocument* document = sp_desktop_document( desktop ); - Inkscape::XML::Node *rroot = document->getReprRoot(); - if ( rroot ) { - - // Find where this thing came from - Glib::ustring paletteName; - bool found = false; - int index = 0; - for ( std::vector::iterator it2 = possible.begin(); it2 != possible.end() && !found; ++it2 ) { - SwatchPage* curr = *it2; - index = 0; - for ( boost::ptr_vector::iterator zz = curr->_colors.begin(); zz != curr->_colors.end(); ++zz ) { - if ( this == &*zz ) { - found = true; - paletteName = curr->_name; - break; - } else { - index++; - } - } - } - - if ( !paletteName.empty() ) { - gchar* str = g_strdup_printf("%d|", index); - paletteName.insert( 0, str ); - g_free(str); - str = 0; - - if ( bruteForce( document, rroot, paletteName, def.getR(), def.getG(), def.getB() ) ) { - SPDocumentUndo::done( document , SP_VERB_DIALOG_SWATCHES, - _("Change color definition")); - } - } - } - } - } -#endif // ENABLE_MAGIC_COLORS - -} - -void ColorItem::_regenPreview(EekPreview * preview) -{ - if ( def.getType() != ege::PaintDef::RGB ) { - using Inkscape::IO::Resource::get_path; - using Inkscape::IO::Resource::ICONS; - using Inkscape::IO::Resource::SYSTEM; - GError *error = NULL; - gsize bytesRead = 0; - gsize bytesWritten = 0; - gchar *localFilename = g_filename_from_utf8( get_path(SYSTEM, ICONS, "remove-color.png"), - -1, - &bytesRead, - &bytesWritten, - &error); - GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file(localFilename, &error); - if (!pixbuf) { - g_warning("Null pixbuf for %p [%s]", localFilename, localFilename ); - } - g_free(localFilename); - - eek_preview_set_pixbuf( preview, pixbuf ); - } - else if ( !_pattern ){ - eek_preview_set_color( preview, - (def.getR() << 8) | def.getR(), - (def.getG() << 8) | def.getG(), - (def.getB() << 8) | def.getB() ); - } else { - // These correspond to PREVIEW_PIXBUF_WIDTH and VBLOCK from swatches.cpp - // TODO: the pattern to draw should be in the widget that draws the preview, - // so the preview can be scalable - int w = 128; - int h = 16; - - cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h); - cairo_t *ct = cairo_create(s); - cairo_set_source(ct, _pattern); - cairo_paint(ct); - cairo_destroy(ct); - cairo_surface_flush(s); - - GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s); - eek_preview_set_pixbuf( preview, pixbuf ); - } - - eek_preview_set_linked( preview, (LinkType)((_linkSrc ? PREVIEW_LINK_IN:0) - | (_listeners.empty() ? 0:PREVIEW_LINK_OUT) - | (_isLive ? PREVIEW_LINK_OTHER:0)) ); -} - -Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewSize size, guint ratio, guint border) -{ - Gtk::Widget* widget = 0; - if ( style == PREVIEW_STYLE_BLURB) { - Gtk::Label *lbl = new Gtk::Label(def.descr); - lbl->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - widget = lbl; - } else { - GtkWidget* eekWidget = eek_preview_new(); - EekPreview * preview = EEK_PREVIEW(eekWidget); - Gtk::Widget* newBlot = Glib::wrap(eekWidget); - _regenPreview(preview); - - eek_preview_set_details( preview, - (::ViewType)view, - (::PreviewSize)size, - ratio, - border ); - - def.addCallback( _colorDefChanged, this ); - eek_preview_set_focus_on_click(preview, FALSE); - newBlot->set_tooltip_text(def.descr); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "clicked", - G_CALLBACK(handleClick), - this); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "alt-clicked", - G_CALLBACK(handleSecondaryClick), - this); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "button-press-event", - G_CALLBACK(colorItemHandleButtonPress), - this); - + Cairo::RefPtr cr = m_refGdkWindow->create_cairo_context(); + if(event) { - std::vector listing = def.getMIMETypes(); - int entryCount = listing.size(); - GtkTargetEntry* entries = new GtkTargetEntry[entryCount]; - GtkTargetEntry* curr = entries; - for ( std::vector::iterator it = listing.begin(); it != listing.end(); ++it ) { - curr->target = g_strdup(it->c_str()); - curr->flags = 0; - if ( mimeToInt.find(*it) == mimeToInt.end() ){ - // these next lines are order-dependent: - mimeToInt[*it] = mimeStrings.size(); - mimeStrings.push_back(*it); - } - curr->info = mimeToInt[curr->target]; - curr++; - } - gtk_drag_source_set( GTK_WIDGET(newBlot->gobj()), - GDK_BUTTON1_MASK, - entries, entryCount, - GdkDragAction(GDK_ACTION_MOVE | GDK_ACTION_COPY) ); - for ( int i = 0; i < entryCount; i++ ) { - g_free(entries[i].target); - } - delete[] entries; + // clip to the area that needs to be re-exposed so we don't draw any + // more than we need to. + cr->rectangle(event->area.x, event->area.y, event->area.width, event->area.height); + cr->clip(); } - g_signal_connect( G_OBJECT(newBlot->gobj()), - "drag-data-get", - G_CALLBACK(ColorItem::_dragGetColorData), - this); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "drag-begin", - G_CALLBACK(colorItemDragBegin), - this ); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "enter-notify-event", - G_CALLBACK(handleEnterNotify), - this); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "leave-notify-event", - G_CALLBACK(handleLeaveNotify), - this); - - g_signal_connect( G_OBJECT(newBlot->gobj()), - "destroy", - G_CALLBACK(dieDieDie), - this); - - - widget = newBlot; - } - - _previews.push_back( widget ); - - return widget; -} - -void ColorItem::buttonClicked(bool secondary) -{ - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if (desktop) { - char const * attrName = secondary ? "stroke" : "fill"; - - SPCSSAttr *css = sp_repr_css_attr_new(); - Glib::ustring descr; - switch (def.getType()) { - case ege::PaintDef::CLEAR: { - // TODO actually make this clear - sp_repr_css_set_property( css, attrName, "none" ); - descr = secondary? _("Remove stroke color") : _("Remove fill color"); - break; - } - case ege::PaintDef::NONE: { - sp_repr_css_set_property( css, attrName, "none" ); - descr = secondary? _("Set stroke color to none") : _("Set fill color to none"); - break; - } - case ege::PaintDef::RGB: { - Glib::ustring colorspec; - if ( _grad ){ - colorspec = "url(#"; - colorspec += _grad->getId(); - colorspec += ")"; - } else { - gchar c[64]; - guint32 rgba = (def.getR() << 24) | (def.getG() << 16) | (def.getB() << 8) | 0xff; - sp_svg_write_color(c, sizeof(c), rgba); - colorspec = c; - } - sp_repr_css_set_property( css, attrName, colorspec.c_str() ); - descr = secondary? _("Set stroke color from swatch") : _("Set fill color from swatch"); - break; - } - } - sp_desktop_set_style(desktop, css); - sp_repr_css_attr_unref(css); - - DocumentUndo::done( sp_desktop_document(desktop), SP_VERB_DIALOG_SWATCHES, descr.c_str() ); - } -} - -void ColorItem::_wireMagicColors( SwatchPage *colorSet ) -{ - if ( colorSet ) - { - for ( boost::ptr_vector::iterator it = colorSet->_colors.begin(); it != colorSet->_colors.end(); ++it ) - { - std::string::size_type pos = it->def.descr.find("*{"); - if ( pos != std::string::npos ) - { - std::string subby = it->def.descr.substr( pos + 2 ); - std::string::size_type endPos = subby.find("}*"); - if ( endPos != std::string::npos ) - { - subby.erase( endPos ); - //g_message("FOUND MAGIC at '%s'", (*it)->def.descr.c_str()); - //g_message(" '%s'", subby.c_str()); - - if ( subby.find('E') != std::string::npos ) - { - it->def.setEditable( true ); - } - - if ( subby.find('L') != std::string::npos ) - { - it->_isLive = true; - } - - std::string part; - // Tint. index + 1 more val. - if ( getBlock( part, 'T', subby ) ) { - guint64 colorIndex = 0; - if ( popVal( colorIndex, part ) ) { - guint64 percent = 0; - if ( popVal( percent, part ) ) { - it->_linkTint( colorSet->_colors[colorIndex], percent ); - } - } - } - - // Shade/tone. index + 1 or 2 more val. - if ( getBlock( part, 'S', subby ) ) { - guint64 colorIndex = 0; - if ( popVal( colorIndex, part ) ) { - guint64 percent = 0; - if ( popVal( percent, part ) ) { - guint64 grayLevel = 0; - if ( !popVal( grayLevel, part ) ) { - grayLevel = 0; - } - it->_linkTone( colorSet->_colors[colorIndex], percent, grayLevel ); - } - } - } - - } + if (gradient) { + cairo_pattern_t *check = ink_cairo_pattern_create_checkerboard(); + + Cairo::RefPtr checkpat(new Cairo::Pattern(check)); + + cr->set_source(checkpat); + cr->paint(); + + cairo_pattern_t *g = sp_gradient_create_preview_pattern(gradient, get_allocation().get_width()); + Cairo::RefPtr gpat(new Cairo::Pattern(g)); + cr->set_source(gpat); + cr->paint(); + gpat.clear(); + cairo_pattern_destroy(g); + + checkpat.clear(); + + cairo_pattern_destroy(check); + + if (_isSelected) { + cr->set_source_rgb(0, 0, 0); + cr->set_line_width(3); + cr->move_to(0, get_allocation().get_height()); + cr->line_to(0,0); + cr->line_to(get_allocation().get_width(), 0); + cr->stroke(); + cr->move_to(get_allocation().get_width(), 0); + cr->set_source_rgb(1, 1, 1); + cr->line_to(get_allocation().get_width(), get_allocation().get_height()); + cr->line_to(0, get_allocation().get_height()); + //cr->rectangle(0, 0, get_allocation().get_width(), get_allocation().get_height()); + cr->stroke(); } + } else { + cr->set_source_rgb(1, 1, 1); + cr->paint(); + cr->set_source_rgb(1, 0, 0); + cr->set_line_width(3); + cr->move_to(0,0); + cr->line_to(get_allocation().get_width(), get_allocation().get_height()); + cr->move_to(get_allocation().get_width(), 0); + cr->line_to(0, get_allocation().get_height()); + cr->stroke(); } } + return true; } - -void ColorItem::_linkTint( ColorItem& other, int percent ) -{ - if ( !_linkSrc ) - { - other._listeners.push_back(this); - _linkIsTone = false; - _linkPercent = percent; - if ( _linkPercent > 100 ) - _linkPercent = 100; - if ( _linkPercent < 0 ) - _linkPercent = 0; - _linkGray = 0; - _linkSrc = &other; - - ColorItem::_colorDefChanged(&other); - } -} - -void ColorItem::_linkTone( ColorItem& other, int percent, int grayLevel ) +ColorItem::~ColorItem() { - if ( !_linkSrc ) - { - other._listeners.push_back(this); - _linkIsTone = true; - _linkPercent = percent; - if ( _linkPercent > 100 ) - _linkPercent = 100; - if ( _linkPercent < 0 ) - _linkPercent = 0; - _linkGray = grayLevel; - _linkSrc = &other; - - ColorItem::_colorDefChanged(&other); - } + sel_connection.disconnect(); + mod_connection.disconnect(); } } // namespace Dialogs diff --git a/src/ui/dialog/color-item.h b/src/ui/dialog/color-item.h index 3a0b33193..5d97d8803 100644 --- a/src/ui/dialog/color-item.h +++ b/src/ui/dialog/color-item.h @@ -15,7 +15,11 @@ #include #include "widgets/ege-paint-def.h" -#include "ui/previewable.h" +#include "widgets/eek-preview.h" +#include +#include +#include "desktop.h" +#include "selection.h" class SPGradient; @@ -23,89 +27,43 @@ namespace Inkscape { namespace UI { namespace Dialogs { -class ColorItem; - -class SwatchPage -{ -public: - SwatchPage(); - ~SwatchPage(); - - Glib::ustring _name; - int _prefWidth; - boost::ptr_vector _colors; -}; - /** * The color swatch you see on screen as a clickable box. */ -class ColorItem : public Inkscape::UI::Previewable +class ColorItem : public Gtk::Widget { - friend void _loadPaletteFile( gchar const *filename ); public: - ColorItem( ege::PaintDef::ColorType type ); - ColorItem( unsigned int r, unsigned int g, unsigned int b, - Glib::ustring& name ); + ColorItem( SPGradient * grad, const gchar* name, SPDesktop* desktop ); virtual ~ColorItem(); - ColorItem(ColorItem const &other); - virtual ColorItem &operator=(ColorItem const &other); - virtual Gtk::Widget* getPreview(PreviewStyle style, - ViewType view, - ::PreviewSize size, - guint ratio, - guint border); - void buttonClicked(bool secondary = false); - - void setGradient(SPGradient *grad); - SPGradient * getGradient() const { return _grad; } - void setPattern(cairo_pattern_t *pattern); - void setName(const Glib::ustring name); - - void setState( bool fill, bool stroke ); - bool isFill() { return _isFill; } - bool isStroke() { return _isStroke; } - - ege::PaintDef def; - + + SPGradient * getGradient() { return gradient; } + +protected: + + const gchar* def; + SPGradient * gradient; + virtual bool on_enter_notify_event(GdkEventCrossing* event); + virtual bool on_leave_notify_event(GdkEventCrossing* event); + + virtual void on_size_request(Gtk::Requisition* requisition); + virtual void on_size_allocate(Gtk::Allocation& allocation); + virtual void on_map(); + virtual void on_unmap(); + virtual void on_realize(); + virtual void on_unrealize(); + virtual bool on_expose_event(GdkEventExpose* event); + + Glib::RefPtr m_refGdkWindow; + + private: + void selection_changed(Selection* selection); + void selection_modified(Selection* selection, guint flags); - static void _dropDataIn( GtkWidget *widget, - GdkDragContext *drag_context, - gint x, gint y, - GtkSelectionData *data, - guint info, - guint event_time, - gpointer user_data); - - static void _dragGetColorData( GtkWidget *widget, - GdkDragContext *drag_context, - GtkSelectionData *data, - guint info, - guint time, - gpointer user_data); - - static void _wireMagicColors( SwatchPage *colorSet ); - static void _colorDefChanged(void* data); - - void _updatePreviews(); - void _regenPreview(EekPreview * preview); - - void _linkTint( ColorItem& other, int percent ); - void _linkTone( ColorItem& other, int percent, int grayLevel ); - - std::vector _previews; - - bool _isFill; - bool _isStroke; - bool _isLive; - bool _linkIsTone; - int _linkPercent; - int _linkGray; - ColorItem* _linkSrc; - SPGradient* _grad; - cairo_pattern_t *_pattern; - std::vector _listeners; + sigc::connection sel_connection; + sigc::connection mod_connection; + bool _isSelected; }; } // namespace Dialogs diff --git a/src/ui/dialog/filedialog.h b/src/ui/dialog/filedialog.h index 8dfcf5dce..175031bcf 100644 --- a/src/ui/dialog/filedialog.h +++ b/src/ui/dialog/filedialog.h @@ -48,6 +48,7 @@ typedef enum { IMPORT_TYPES, EXPORT_TYPES, EXE_TYPES, + SWATCH_TYPES, CUSTOM_TYPE } FileDialogType; diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 2956c6d17..efea4b869 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -67,14 +67,14 @@ #include "svg/svg-color.h" #include "sp-radial-gradient.h" #include "color-rgba.h" +#include "ui/tools/tool-base.h" #include "svg/css-ostringstream.h" -#include "ui/tools/tool-base.h" //event-context.h #include #ifdef WIN32 #include #endif -guint get_group0_keyval(GdkEventKey *event); +//lazy! void sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill); namespace Inkscape { @@ -1335,10 +1335,10 @@ void SwatchesPanel::_defsChanged() eb->add(*lbl); _insideTable.attach( *eb, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND , 5, 0); } - Glib::ustring str1 = Glib::ustring(_("[None]")); - ColorItem* item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str1)); - //item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), NULL)); - item->setName(_("[None]")); + + ColorItem* item = Gtk::manage(new ColorItem(NULL, _("[None]"), _currentDesktop)); + item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), NULL)); + item->set_tooltip_text(_("[None]")); _insideTable.attach( *item, _showlabels ? 1 : 0, _showlabels ? 2 : 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); unsigned int i = 1; @@ -1365,11 +1365,10 @@ void SwatchesPanel::_defsChanged() GdkPixbuf* pixb = sp_gradient_to_pixbuf (grad, 64, 18); row[_modelDoc->_colPixbuf] = Glib::wrap(pixb); } - Glib::ustring str2 = Glib::ustring(it->label() ? it->label() : it->getId()); - item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str2)); - item->setGradient(grad); - //item->colorItemHandleButtonPress().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); - item->setName(it->label() ? it->label() : it->getId()); + + item = Gtk::manage(new ColorItem(grad, it->label() ? it->label() : it->getId(), _currentDesktop)); + item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); + item->set_tooltip_text(it->label() ? it->label() : it->getId()); if (_showlabels) { _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); } else { @@ -1432,11 +1431,10 @@ void SwatchesPanel::_defsChanged() _editDoc.expand_to_path(_storeDoc->get_path(iter)); } - Glib::ustring str3= Glib::ustring(cit->label() ? cit->label() : cit->getId()); - item = Gtk::manage(new ColorItem(NULL, NULL, NULL, str3)); - item->setGradient(grad); - //item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); - item->setName(cit->label() ? cit->label() : cit->getId()); + + item = Gtk::manage(new ColorItem(grad, cit->label() ? cit->label() : cit->getId(), _currentDesktop)); + item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); + item->set_tooltip_text(cit->label() ? cit->label() : cit->getId()); if (_showlabels) { _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); } else { @@ -1643,7 +1641,7 @@ bool SwatchesPanel::_handleButtonEvent(GdkEventButton *event) bool SwatchesPanel::_handleKeyEvent(GdkEventKey *event) { - switch (get_group0_keyval(event)) { + switch (Inkscape::UI::Tools::get_group0_keyval(event)) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: case GDK_KEY_F2: { @@ -1815,7 +1813,7 @@ void SwatchesPanel::_deleteButtonClickedDoc() bool SwatchesPanel::_handleKeyEventDoc(GdkEventKey *event) { - switch (get_group0_keyval(event)) { + switch (Inkscape::UI::Tools::get_group0_keyval(event)) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: case GDK_KEY_F2: { @@ -2323,18 +2321,8 @@ void SwatchesPanel::_setDocument( SPDesktop* desktop, SPDocument *document ) } //namespace UI } //namespace Inkscape -//should be okay to add this here -guint get_group0_keyval(GdkEventKey *event) { - guint keyval = 0; - gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( - gdk_display_get_default()), event->hardware_keycode, - (GdkModifierType) event->state, 0 /*event->key.group*/, &keyval, - NULL, NULL, NULL); - return keyval; -} - -void -sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill) +//really lazy! +void sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill) { bool intercepted = false; diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 583dbec85..2eba8bb8c 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -358,7 +358,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) { using Inkscape::UI::Dialogs::SwatchesPanel; - dtw->panels = new SwatchesPanel("/embedded/swatches"); + dtw->panels = new SwatchesPanel("/embedded/swatches", false); dtw->panels->setOrientation(SP_ANCHOR_SOUTH); #if GTK_CHECK_VERSION(3,0,0) -- cgit v1.2.3 From a13fdaaa6335ad69b59750a3a9c6b978b921881b Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 5 Mar 2014 16:21:29 -0500 Subject: Fixed some swatch sizes (what about the table?) (bzr r13090.1.17) --- share/palettes/MLP/Makefile.am | 2 +- share/palettes/Makefile.am | 2 +- src/ui/dialog/swatches.cpp | 16 ++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/share/palettes/MLP/Makefile.am b/share/palettes/MLP/Makefile.am index cfd45878c..00695478c 100644 --- a/share/palettes/MLP/Makefile.am +++ b/share/palettes/MLP/Makefile.am @@ -1,5 +1,5 @@ -MLPdir = $(datadir)/ponyscape/palettes/MLP +MLPdir = $(datadir)/inkscape/palettes/MLP MLP_DATA = \ All.gpl \ diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am index 2e6560bb1..91e72ea84 100644 --- a/share/palettes/Makefile.am +++ b/share/palettes/Makefile.am @@ -1,6 +1,6 @@ SUBDIRS = MLP -palettesdir = $(datadir)/ponyscape/palettes +palettesdir = $(datadir)/inkscape/palettes palettes_DATA = \ README \ diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index efea4b869..91d859f90 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -1333,13 +1333,13 @@ void SwatchesPanel::_defsChanged() lbl = Gtk::manage(new Gtk::Label(_("[Base]"))); eb->add(*lbl); - _insideTable.attach( *eb, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND , 5, 0); + _insideTable.attach( *eb, 0, 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ , 5, 0); } ColorItem* item = Gtk::manage(new ColorItem(NULL, _("[None]"), _currentDesktop)); item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), NULL)); item->set_tooltip_text(_("[None]")); - _insideTable.attach( *item, _showlabels ? 1 : 0, _showlabels ? 2 : 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + _insideTable.attach( *item, _showlabels ? 1 : 0, _showlabels ? 2 : 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); unsigned int i = 1; for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { @@ -1370,9 +1370,9 @@ void SwatchesPanel::_defsChanged() item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); item->set_tooltip_text(it->label() ? it->label() : it->getId()); if (_showlabels) { - _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); } else { - _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); } i++; @@ -1393,7 +1393,7 @@ void SwatchesPanel::_defsChanged() eb->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_lblClick), SP_GROUP(it))); lbl = Gtk::manage(new Gtk::Label(it->label() ? it->label() : it->getId())); eb->add(*lbl); - _insideTable.attach( *eb, 0, 1, i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND , 5, 0); + _insideTable.attach( *eb, 0, 1, i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ , 5, 0); } Gtk::TreeModel::iterator rowiter; @@ -1436,9 +1436,9 @@ void SwatchesPanel::_defsChanged() item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); item->set_tooltip_text(cit->label() ? cit->label() : cit->getId()); if (_showlabels) { - _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); } else { - _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); } i++; } @@ -2072,7 +2072,7 @@ bool SwatchesPanel::_handleDragDropDoc(const Glib::RefPtr& con SwatchesPanel::SwatchesPanel(gchar const* prefsPath, bool showLabels) : Inkscape::UI::Widget::Panel("", prefsPath, SP_VERB_DIALOG_SWATCHES, ""), _scroller(), - _insideTable(1, 2), + _insideTable(1, 1), _insideV(), _insideH(), _buttonsRow(), -- cgit v1.2.3 From 8db893813e5974793db85bad0eb6b32468d29c45 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 5 Mar 2014 19:31:15 -0500 Subject: Makefile fix (bzr r13090.1.18) --- configure.ac | 1 + share/palettes/MLP/Makefile | 68 ++++++++++++++++++++++++--------------------- src/ui/dialog/swatches.cpp | 5 +++- 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/configure.ac b/configure.ac index 0d32691f8..abfdb0348 100644 --- a/configure.ac +++ b/configure.ac @@ -1100,6 +1100,7 @@ share/icons/application/256x256/Makefile share/keys/Makefile share/markers/Makefile share/palettes/Makefile +share/palettes/MLP/Makefile share/patterns/Makefile share/screens/Makefile share/symbols/Makefile diff --git a/share/palettes/MLP/Makefile b/share/palettes/MLP/Makefile index 17028e01d..80a23cafd 100644 --- a/share/palettes/MLP/Makefile +++ b/share/palettes/MLP/Makefile @@ -16,10 +16,10 @@ -pkgdatadir = $(datadir)/ponyscape -pkgincludedir = $(includedir)/ponyscape -pkglibdir = $(libdir)/ponyscape -pkglibexecdir = $(libexecdir)/ponyscape +pkgdatadir = $(datadir)/inkscape +pkgincludedir = $(includedir)/inkscape +pkglibdir = $(libdir)/inkscape +pkglibexecdir = $(libexecdir)/inkscape am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -87,21 +87,19 @@ am__base_list = \ am__installdirs = "$(DESTDIR)$(MLPdir)" DATA = $(MLP_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /home/ponyscape-src/build-aux/missing --run aclocal-1.11 +ACLOCAL = ${SHELL} /home/inkscape-diff/build-aux/missing --run aclocal-1.11 ALL_LINGUAS = -AMTAR = ${SHELL} /home/ponyscape-src/build-aux/missing --run tar +AMTAR = ${SHELL} /home/inkscape-diff/build-aux/missing --run tar AM_DEFAULT_VERBOSITY = 0 AR = ar -AUTOCONF = ${SHELL} /home/ponyscape-src/build-aux/missing --run autoconf -AUTOHEADER = ${SHELL} /home/ponyscape-src/build-aux/missing --run autoheader -AUTOMAKE = ${SHELL} /home/ponyscape-src/build-aux/missing --run automake-1.11 +AUTOCONF = ${SHELL} /home/inkscape-diff/build-aux/missing --run autoconf +AUTOHEADER = ${SHELL} /home/inkscape-diff/build-aux/missing --run autoheader +AUTOMAKE = ${SHELL} /home/inkscape-diff/build-aux/missing --run automake-1.11 AWK = mawk CAIRO_PDF_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 CAIRO_PDF_LIBS = -lz -lcairo CAIRO_SVG_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 CAIRO_SVG_LIBS = -lcairo -CAIRO_USER_FONTS_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -CAIRO_USER_FONTS_LIBS = -lcairo CARBON_LDFLAGS = CC = gcc CCAS = gcc @@ -136,20 +134,24 @@ FGREP = /bin/grep -F FREETYPE_CFLAGS = -I/usr/include/freetype2 FREETYPE_CONFIG = /usr/bin/freetype-config FREETYPE_LIBS = -L/usr/lib/x86_64-linux-gnu -lfreetype -lz +GDL_3_6_CFLAGS = +GDL_3_6_LIBS = GETTEXT_MACRO_VERSION = 0.17 -GETTEXT_PACKAGE = ponyscape -GLIBMM_USES_DEPRECATED_GLIB_SYMBOLS_CFLAGS = -GLIBMM_USES_DEPRECATED_GLIB_SYMBOLS_LIBS = +GETTEXT_PACKAGE = inkscape +GLIBMM_2_32_CFLAGS = +GLIBMM_2_32_LIBS = GMSGFMT = /usr/bin/msgfmt GMSGFMT_015 = /usr/bin/msgfmt GNOME_VFS_CFLAGS = -pthread -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 GNOME_VFS_LIBS = -pthread -lgnomevfs-2 -lgconf-2 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 GREP = /bin/grep +GTK_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 +GTK_LIBS = -pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 IMAGEMAGICK_CFLAGS = -fopenmp -I/usr/include/ImageMagick IMAGEMAGICK_LIBS = -lMagick++ -lMagickCore -INKSCAPE_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/libxml2 -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 +INKSCAPE_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/libxml2 INKSCAPE_DATADIR = /usr/local/share -INKSCAPE_LIBS = -pthread -lgc -lxslt -lxml2 -lpng12 -lgsl -lgslcblas -lm -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lX11 -lz -lxml2 -ldl -lgomp -lpopt -laspell +INKSCAPE_LIBS = -pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread -lgc -lcairomm-1.0 -lcairo -lgiomm-2.4 -lgio-2.0 -lglibmm-2.4 -lgsl -lgslcblas -lm -lpng12 -lxslt -lxml2 -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lsigc-2.0 -lz -lxml2 -ldl -lgomp -lpopt -laspell INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} @@ -187,7 +189,7 @@ LN_S = ln -s LTLIBICONV = -liconv LTLIBINTL = LTLIBOBJS = -MAKEINFO = ${SHELL} /home/ponyscape-src/build-aux/missing --run makeinfo +MAKEINFO = ${SHELL} /home/inkscape-diff/build-aux/missing --run makeinfo MANIFEST_TOOL = : MKDIR_P = /bin/mkdir -p MSGFMT = /usr/bin/msgfmt @@ -200,14 +202,14 @@ OBJEXT = o OPENMP_CXXFLAGS = -fopenmp OTOOL = OTOOL64 = -PACKAGE = ponyscape +PACKAGE = inkscape PACKAGE_BUGREPORT = http://bugs.launchpad.net/inkscape/+filebug PACKAGE_LOCALE_DIR = /usr/local/share/locale -PACKAGE_NAME = ponyscape -PACKAGE_STRING = ponyscape 0.4 -PACKAGE_TARNAME = ponyscape -PACKAGE_URL = http://ponyscape.org/ -PACKAGE_VERSION = 0.4 +PACKAGE_NAME = inkscape +PACKAGE_STRING = inkscape 0.48+devel +PACKAGE_TARNAME = inkscape +PACKAGE_URL = http://inkscape.org/ +PACKAGE_VERSION = 0.48+devel PANGO_USES_DEPRECATED_GLIB_SYMBOLS_CFLAGS = PANGO_USES_DEPRECATED_GLIB_SYMBOLS_LIBS = PATH_SEPARATOR = : @@ -232,15 +234,17 @@ SET_MAKE = SHELL = /bin/bash STRIP = strip USE_NLS = yes -VERSION = 0.4 +VERSION = 0.48+devel WIN32_CFLAGS = +X11_CFLAGS = +X11_LIBS = -lX11 XGETTEXT = /usr/bin/xgettext XGETTEXT_015 = /usr/bin/xgettext XGETTEXT_EXTRA_OPTIONS = -abs_builddir = /home/ponyscape-src/share/palettes/MLP -abs_srcdir = /home/ponyscape-src/share/palettes/MLP -abs_top_builddir = /home/ponyscape-src -abs_top_srcdir = /home/ponyscape-src +abs_builddir = /home/inkscape-diff/share/palettes/MLP +abs_srcdir = /home/inkscape-diff/share/palettes/MLP +abs_top_builddir = /home/inkscape-diff +abs_top_srcdir = /home/inkscape-diff ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ @@ -270,7 +274,7 @@ host_vendor = unknown htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /home/ponyscape-src/build-aux/install-sh +install_sh = ${SHELL} /home/inkscape-diff/build-aux/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale @@ -290,7 +294,7 @@ target_alias = top_build_prefix = ../../../ top_builddir = ../../.. top_srcdir = ../../.. -MLPdir = $(datadir)/ponyscape/palettes/MLP +MLPdir = $(datadir)/inkscape/palettes/MLP MLP_DATA = \ All.gpl \ Applejack.gpl \ @@ -318,9 +322,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/palettes/MLP/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign share/palettes/MLP/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu share/palettes/MLP/Makefile + $(AUTOMAKE) --foreign share/palettes/MLP/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 91d859f90..ceda27885 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -1448,9 +1448,11 @@ void SwatchesPanel::_defsChanged() } } } - + //_scroller.resize(1,1); + _insideTable.resize(1,1); _scroller.show_all_children(); _scroller.queue_draw(); + } Gtk::MenuItem* SwatchesPanel::_addSwatchGroup(SPGroup* group, Gtk::TreeModel::Row* parentRow) @@ -2258,6 +2260,7 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath, bool showLabels) : rootWatcher = new SwatchWatcher(this, SwatchDocument->getDefs(), true); SwatchDocument->getDefs()->getRepr()->addObserver(*rootWatcher); _swatchesChanged(); + _insideTable.resize(1,1); } SwatchesPanel::~SwatchesPanel() -- cgit v1.2.3 From 50a5b62b327c55b8038b5031d35bf6ae48705485 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 5 Mar 2014 21:08:09 -0500 Subject: Fixed size of swatches widget (bzr r13090.1.19) --- live_effects.patch | 2008 ------------------------ mkerror.txt | 11 - objects_dialog.patch | 3637 ------------------------------------------- share/palettes/MLP/Makefile | 524 ------- src/ui/dialog/swatches.cpp | 2 +- 5 files changed, 1 insertion(+), 6181 deletions(-) delete mode 100644 live_effects.patch delete mode 100644 mkerror.txt delete mode 100644 objects_dialog.patch delete mode 100644 share/palettes/MLP/Makefile diff --git a/live_effects.patch b/live_effects.patch deleted file mode 100644 index 3d1091221..000000000 --- a/live_effects.patch +++ /dev/null @@ -1,2008 +0,0 @@ -=== modified file 'src/live_effects/CMakeLists.txt' ---- src/live_effects/CMakeLists.txt 2012-03-23 21:02:03 +0000 -+++ src/live_effects/CMakeLists.txt 2014-03-01 16:12:14 +0000 -@@ -2,8 +2,10 @@ - set(live_effects_SRC - effect.cpp - lpe-angle_bisector.cpp -+ lpe-attach-path.cpp - lpe-bendpath.cpp - lpe-boolops.cpp -+ lpe-bounding-box.cpp - lpe-circle_3pts.cpp - lpe-circle_with_radius.cpp - lpe-clone-original.cpp -@@ -11,8 +13,11 @@ - lpe-copy_rotate.cpp - lpe-curvestitch.cpp - lpe-dynastroke.cpp -+ lpe-ellipse-5pts.cpp - lpe-envelope.cpp - lpe-extrude.cpp -+ lpe-fill-between-many.cpp -+ lpe-fill-between-strokes.cpp - lpe-gears.cpp - lpe-interpolate.cpp - lpe-knot.cpp -@@ -47,11 +52,13 @@ - parameter/parameter.cpp - parameter/path.cpp - parameter/originalpath.cpp -+ parameter/originalpatharray.cpp - parameter/path-reference.cpp - parameter/point.cpp - parameter/powerstrokepointarray.cpp - parameter/random.cpp - parameter/text.cpp -+ paramter/transformedpoint.cpp - parameter/unit.cpp - parameter/vector.cpp - -@@ -61,8 +68,10 @@ - effect-enum.h - effect.h - lpe-angle_bisector.h -+ lpe-attach-path.h - lpe-bendpath.h - lpe-boolops.h -+ lpe-bounding-box.h - lpe-circle_3pts.h - lpe-circle_with_radius.h - lpe-clone-original.h -@@ -70,8 +79,11 @@ - lpe-copy_rotate.h - lpe-curvestitch.h - lpe-dynastroke.h -+ lpe-ellipse-5pts.h - lpe-envelope.h - lpe-extrude.h -+ lpe-fill-between-many.h -+ lpe-fill-between-strokes.h - lpe-gears.h - lpe-interpolate.h - lpe-knot.h -@@ -109,6 +121,7 @@ - parameter/path-reference.h - parameter/path.h - parameter/originalpath.h -+ parameter/originalpatharray.h - parameter/point.h - parameter/powerstrokepointarray.h - parameter/random.h - -=== modified file 'src/live_effects/Makefile_insert' ---- src/live_effects/Makefile_insert 2012-03-23 21:02:03 +0000 -+++ src/live_effects/Makefile_insert 2014-03-01 18:49:52 +0000 -@@ -82,4 +82,14 @@ - live_effects/lpe-path_length.cpp \ - live_effects/lpe-path_length.h \ - live_effects/lpe-line_segment.cpp \ -- live_effects/lpe-line_segment.h -+ live_effects/lpe-line_segment.h \ -+ live_effects/lpe-bounding-box.cpp \ -+ live_effects/lpe-bounding-box.h \ -+ live_effects/lpe-attach-path.cpp \ -+ live_effects/lpe-attach-path.h \ -+ live_effects/lpe-fill-between-strokes.cpp \ -+ live_effects/lpe-fill-between-stroke.h \ -+ live_effects/lpe-fill-between-many.cpp \ -+ live_effects/lpe-fill-between-many.h \ -+ live_effects/lpe-ellipse-5pts.cpp \ -+ live_effects/lpe-ellipse-5pts.h - -=== modified file 'src/live_effects/effect-enum.h' ---- src/live_effects/effect-enum.h 2012-01-12 21:06:16 +0000 -+++ src/live_effects/effect-enum.h 2014-03-01 02:07:48 +0000 -@@ -50,6 +50,11 @@ - EXTRUDE, - POWERSTROKE, - CLONE_ORIGINAL, -+ ATTACH_PATH, -+ FILL_BETWEEN_STROKES, -+ FILL_BETWEEN_MANY, -+ ELLIPSE_5PTS, -+ BOUNDING_BOX, - INVALID_LPE // This must be last (I made it such that it is not needed anymore I think..., Don't trust on it being last. - johan) - }; - - -=== modified file 'src/live_effects/effect.cpp' ---- src/live_effects/effect.cpp 2014-01-12 22:12:14 +0000 -+++ src/live_effects/effect.cpp 2014-03-01 02:27:38 +0000 -@@ -5,7 +5,7 @@ - * Released under GNU GPL, read the file 'COPYING' for more information - */ - --//#define LPE_ENABLE_TEST_EFFECTS -+#define LPE_ENABLE_TEST_EFFECTS - - #ifdef HAVE_CONFIG_H - # include "config.h" -@@ -47,6 +47,11 @@ - #include "live_effects/lpe-extrude.h" - #include "live_effects/lpe-powerstroke.h" - #include "live_effects/lpe-clone-original.h" -+#include "live_effects/lpe-attach-path.h" -+#include "live_effects/lpe-fill-between-strokes.h" -+#include "live_effects/lpe-fill-between-many.h" -+#include "live_effects/lpe-ellipse_5pts.h" -+#include "live_effects/lpe-bounding-box.h" - - #include "xml/node-event-vector.h" - #include "sp-object.h" -@@ -122,6 +127,12 @@ - /* 0.49 */ - {POWERSTROKE, N_("Power stroke"), "powerstroke"}, - {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, -+/* Ponyscape */ -+ {ATTACH_PATH, N_("Attach path"), "attach_path"}, -+ {FILL_BETWEEN_STROKES, N_("Fill between strokes"), "fill_between_strokes"}, -+ {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, -+ {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, -+ {BOUNDING_BOX, N_("Bounding Box"), "bounding_box"}, - }; - const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); - -@@ -245,6 +256,21 @@ - case CLONE_ORIGINAL: - neweffect = static_cast ( new LPECloneOriginal(lpeobj) ); - break; -+ case ATTACH_PATH: -+ neweffect = static_cast ( new LPEAttachPath(lpeobj) ); -+ break; -+ case FILL_BETWEEN_STROKES: -+ neweffect = static_cast ( new LPEFillBetweenStrokes(lpeobj) ); -+ break; -+ case FILL_BETWEEN_MANY: -+ neweffect = static_cast ( new LPEFillBetweenMany(lpeobj) ); -+ break; -+ case ELLIPSE_5PTS: -+ neweffect = static_cast ( new LPEEllipse5Pts(lpeobj) ); -+ break; -+ case BOUNDING_BOX: -+ neweffect = static_cast ( new LPEBoundingBox(lpeobj) ); -+ break; - default: - g_warning("LivePathEffect::Effect::New called with invalid patheffect type (%d)", lpenr); - neweffect = NULL; - -=== added file 'src/live_effects/lpe-attach-path.cpp' ---- src/live_effects/lpe-attach-path.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-attach-path.cpp 2014-03-01 22:47:28 +0000 -@@ -0,0 +1,203 @@ -+/* -+ * Copyright (C) Johan Engelen 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+#include -+ -+#include "live_effects/lpe-attach-path.h" -+ -+#include "display/curve.h" -+#include "sp-item.h" -+#include "2geom/path.h" -+#include "sp-shape.h" -+#include "sp-text.h" -+#include "2geom/bezier-curve.h" -+#include "2geom/path-sink.h" -+#include "parameter/parameter.h" -+#include "live_effects/parameter/point.h" -+#include "parameter/originalpath.h" -+#include "2geom/affine.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+LPEAttachPath::LPEAttachPath(LivePathEffectObject *lpeobject) : -+ Effect(lpeobject), -+ start_path(_("Start path:"), _("Path to attach to the start of this path"), "startpath", &wr, this), -+ start_path_position(_("Start path position:"), _("Position to attach path start to"), "startposition", &wr, this, 0.0), -+ start_path_curve_start(_("Start path curve start:"), _("Starting curve"), "startcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), -+ start_path_curve_end(_("Start path curve end:"), _("Ending curve"), "startcurveend", &wr, this, Geom::Point(20,0)/*, true*/), -+ end_path(_("End path:"), _("Path to attach to the end of this path"), "endpath", &wr, this), -+ end_path_position(_("End path position:"), _("Position to attach path end to"), "endposition", &wr, this, 0.0), -+ end_path_curve_start(_("End path curve start:"), _("Starting curve"), "endcurvestart", &wr, this, Geom::Point(20,0)/*, true*/), -+ end_path_curve_end(_("End path curve end:"), _("Ending curve"), "endcurveend", &wr, this, Geom::Point(20,0)/*, true*/) -+{ -+ registerParameter( dynamic_cast(&start_path) ); -+ registerParameter( dynamic_cast(&start_path_position) ); -+ registerParameter( dynamic_cast(&start_path_curve_start) ); -+ registerParameter( dynamic_cast(&start_path_curve_end) ); -+ -+ registerParameter( dynamic_cast(&end_path) ); -+ registerParameter( dynamic_cast(&end_path_position) ); -+ registerParameter( dynamic_cast(&end_path_curve_start) ); -+ registerParameter( dynamic_cast(&end_path_curve_end) ); -+ -+ //perceived_path = true; -+ show_orig_path = true; -+ curve_start_previous_origin = start_path_curve_end.getOrigin(); -+ curve_end_previous_origin = end_path_curve_end.getOrigin(); -+} -+ -+LPEAttachPath::~LPEAttachPath() -+{ -+ -+} -+ -+void LPEAttachPath::resetDefaults(SPItem const * item) -+{ -+ curve_start_previous_origin = start_path_curve_end.getOrigin(); -+ curve_end_previous_origin = end_path_curve_end.getOrigin(); -+} -+ -+void LPEAttachPath::doBeforeEffect(const SPLPEItem *lpeitem) -+{ -+ lpe_effect = lpeitem; -+} -+ -+void LPEAttachPath::doEffect (SPCurve * curve) -+{ -+ std::vector this_pathv = curve->get_pathvector(); -+ if (lpe_effect && !this_pathv.empty()) { -+ Geom::Path p = Geom::Path(this_pathv.front().initialPoint()); -+ -+ bool set_start_end = start_path_curve_end.getOrigin() != curve_start_previous_origin; -+ bool set_end_end = end_path_curve_end.getOrigin() != curve_end_previous_origin; -+ -+ if (start_path.linksToPath()) { -+ -+ std::vector linked_pathv = start_path.get_pathvector(); -+ Geom::Affine linkedtransform = start_path.getObject()->getRelativeTransform(lpe_effect); -+ -+ if ( !linked_pathv.empty() ) -+ { -+ Geom::Path transformedpath = linked_pathv.front() * linkedtransform; -+ start_path_curve_start.setOrigin(this_pathv.front().initialPoint()); -+ -+ std::vector derivs = this_pathv.front().front().pointAndDerivatives(0, 3); -+ -+ for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { -+ Geom::Coord length = derivs[deriv_n].length(); -+ if ( ! Geom::are_near(length, 0) ) { -+ if (set_start_end) { -+ start_path_position.param_set_value(transformedpath.nearestPoint(start_path_curve_end.getOrigin())); -+ } -+ -+ if (start_path_position > transformedpath.size()) { -+ start_path_position.param_set_value(transformedpath.size()); -+ } else if (start_path_position < 0) { -+ start_path_position.param_set_value(0); -+ } -+ const Geom::Curve *c = start_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)start_path_position); -+ -+ std::vector derivs_2 = c->pointAndDerivatives(start_path_position >= transformedpath.size() ? 1 : (start_path_position - (int)start_path_position), 3); -+ for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { -+ Geom::Coord length_2 = derivs[deriv_n_2].length(); -+ if ( ! Geom::are_near(length_2, 0) ) { -+ start_path_curve_end.setOrigin(derivs_2[0]); -+ curve_start_previous_origin = start_path_curve_end.getOrigin(); -+ -+ double startangle = atan2(start_path_curve_start.getVector().y(), start_path_curve_start.getVector().x()); -+ double endangle = atan2(start_path_curve_end.getVector().y(), start_path_curve_end.getVector().x()); -+ double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); -+ double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); -+ Geom::Point pt1 = Geom::Point(start_path_curve_start.getVector().length() * cos(startangle + startderiv), start_path_curve_start.getVector().length() * sin(startangle + startderiv)); -+ Geom::Point pt2 = Geom::Point(start_path_curve_end.getVector().length() * cos(endangle + endderiv), start_path_curve_end.getVector().length() * sin(endangle + endderiv)); -+ p = Geom::Path(derivs_2[0]); -+ p.appendNew(-pt2 + derivs_2[0], -pt1 + this_pathv.front().initialPoint(), this_pathv.front().initialPoint()); -+ break; -+ -+ } -+ } -+ break; -+ } -+ } -+ } -+ } -+ -+ p.append(this_pathv.front()); -+ -+ if (end_path.linksToPath()) { -+ -+ std::vector linked_pathv = end_path.get_pathvector(); -+ Geom::Affine linkedtransform = end_path.getObject()->getRelativeTransform(lpe_effect); -+ -+ if ( !linked_pathv.empty() ) -+ { -+ Geom::Path transformedpath = linked_pathv.front() * linkedtransform; -+ Geom::Curve * last_seg_reverse = this_pathv.front().back().reverse(); -+ -+ end_path_curve_start.setOrigin(last_seg_reverse->initialPoint()); -+ -+ std::vector derivs = last_seg_reverse->pointAndDerivatives(0, 3); -+ for (unsigned deriv_n = 1; deriv_n < derivs.size(); deriv_n++) { -+ Geom::Coord length = derivs[deriv_n].length(); -+ if ( ! Geom::are_near(length, 0) ) { -+ if (set_end_end) { -+ end_path_position.param_set_value(transformedpath.nearestPoint(end_path_curve_end.getOrigin())); -+ } -+ -+ if (end_path_position > transformedpath.size()) { -+ end_path_position.param_set_value(transformedpath.size()); -+ } else if (end_path_position < 0) { -+ end_path_position.param_set_value(0); -+ } -+ const Geom::Curve *c = end_path_position >= transformedpath.size() ? &transformedpath.back() : &transformedpath.at_index((int)end_path_position); -+ -+ std::vector derivs_2 = c->pointAndDerivatives(end_path_position >= transformedpath.size() ? 1 : (end_path_position - (int)end_path_position), 3); -+ for (unsigned deriv_n_2 = 1; deriv_n_2 < derivs_2.size(); deriv_n_2++) { -+ Geom::Coord length_2 = derivs[deriv_n_2].length(); -+ if ( ! Geom::are_near(length_2, 0) ) { -+ -+ end_path_curve_end.setOrigin(derivs_2[0]); -+ curve_end_previous_origin = end_path_curve_end.getOrigin(); -+ -+ double startangle = atan2(end_path_curve_start.getVector().y(), end_path_curve_start.getVector().x()); -+ double endangle = atan2(end_path_curve_end.getVector().y(), end_path_curve_end.getVector().x()); -+ double startderiv = atan2(derivs[deriv_n].y(), derivs[deriv_n].x()); -+ double endderiv = atan2(derivs_2[deriv_n_2].y(), derivs_2[deriv_n_2].x()); -+ Geom::Point pt1 = Geom::Point(end_path_curve_start.getVector().length() * cos(startangle + startderiv), end_path_curve_start.getVector().length() * sin(startangle + startderiv)); -+ Geom::Point pt2 = Geom::Point(end_path_curve_end.getVector().length() * cos(endangle + endderiv), end_path_curve_end.getVector().length() * sin(endangle + endderiv)); -+ p.appendNew(-pt1 + this_pathv.front().finalPoint(), -pt2 + derivs_2[0], derivs_2[0]); -+ -+ break; -+ -+ } -+ } -+ break; -+ } -+ } -+ delete last_seg_reverse; -+ } -+ } -+ Geom::PathVector outvector; -+ outvector.push_back(p); -+ curve->set_pathvector(outvector); -+ } -+} -+ -+} // namespace LivePathEffect -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-attach-path.h' ---- src/live_effects/lpe-attach-path.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-attach-path.h 2014-03-01 22:40:18 +0000 -@@ -0,0 +1,54 @@ -+#ifndef INKSCAPE_LPE_ATTACH_PATH_H -+#define INKSCAPE_LPE_ATTACH_PATH_H -+ -+/* -+ * Inkscape::LPEAttachPath -+ * -+ * Copyright (C) Ted Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/effect.h" -+#include "live_effects/parameter/parameter.h" -+#include "live_effects/parameter/point.h" -+#include "live_effects/parameter/originalpath.h" -+#include "live_effects/parameter/vector.h" -+#include "live_effects/parameter/bool.h" -+#include "live_effects/parameter/transformedpoint.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+class LPEAttachPath : public Effect { -+public: -+ LPEAttachPath(LivePathEffectObject *lpeobject); -+ virtual ~LPEAttachPath(); -+ -+ virtual void doBeforeEffect(const SPLPEItem *lpeitem); -+ virtual void doEffect (SPCurve * curve); -+ virtual void resetDefaults(SPItem const * item); -+ -+private: -+ LPEAttachPath(const LPEAttachPath&); -+ LPEAttachPath& operator=(const LPEAttachPath&); -+ -+ Geom::Point curve_start_previous_origin; -+ Geom::Point curve_end_previous_origin; -+ -+ OriginalPathParam start_path; -+ ScalarParam start_path_position; -+ TransformedPointParam start_path_curve_start; -+ VectorParam start_path_curve_end; -+ -+ OriginalPathParam end_path; -+ ScalarParam end_path_position; -+ TransformedPointParam end_path_curve_start; -+ VectorParam end_path_curve_end; -+ const SPLPEItem * lpe_effect; -+}; -+ -+}; //namespace LivePathEffect -+}; //namespace Inkscape -+ -+#endif - -=== added file 'src/live_effects/lpe-bounding-box.cpp' ---- src/live_effects/lpe-bounding-box.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-bounding-box.cpp 2014-03-01 21:18:13 +0000 -@@ -0,0 +1,67 @@ -+/* -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+ -+#include "live_effects/lpe-bounding-box.h" -+ -+#include "display/curve.h" -+#include "sp-item.h" -+#include "2geom/path.h" -+#include "sp-shape.h" -+#include "sp-text.h" -+#include "2geom/bezier-curve.h" -+#include "lpe-bounding-box.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+LPEBoundingBox::LPEBoundingBox(LivePathEffectObject *lpeobject) : -+ Effect(lpeobject), -+ linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), -+ visual_bounds(_("Visual Bounds"), _("Uses the visual bounding box"), "visualbounds", &wr, this) -+{ -+ registerParameter( dynamic_cast(&linked_path) ); -+ registerParameter( dynamic_cast(&visual_bounds) ); -+ //perceived_path = true; -+} -+ -+LPEBoundingBox::~LPEBoundingBox() -+{ -+ -+} -+ -+void LPEBoundingBox::doEffect (SPCurve * curve) -+{ -+ if (curve) { -+ if ( linked_path.linksToPath() && linked_path.getObject() ) { -+ SPItem * item = linked_path.getObject(); -+ Geom::OptRect bbox = visual_bounds.get_value() ? item->visualBounds() : item->geometricBounds(); -+ Geom::Path p(Geom::Point(bbox->left(), bbox->top())); -+ p.appendNew(Geom::Point(bbox->right(), bbox->top())); -+ p.appendNew(Geom::Point(bbox->right(), bbox->bottom())); -+ p.appendNew(Geom::Point(bbox->left(), bbox->bottom())); -+ p.appendNew(Geom::Point(bbox->left(), bbox->top())); -+ std::vector out; -+ out.push_back(p); -+ curve->set_pathvector(out); -+ } -+ } -+} -+ -+} // namespace LivePathEffect -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-bounding-box.h' ---- src/live_effects/lpe-bounding-box.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-bounding-box.h 2014-03-01 19:37:36 +0000 -@@ -0,0 +1,37 @@ -+#ifndef INKSCAPE_LPE_BOUNDING_BOX_H -+#define INKSCAPE_LPE_BOUNDING_BOX_H -+ -+/* -+ * Inkscape::LPEFillBetweenStrokes -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/effect.h" -+#include "live_effects/parameter/originalpath.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+class LPEBoundingBox : public Effect { -+public: -+ LPEBoundingBox(LivePathEffectObject *lpeobject); -+ virtual ~LPEBoundingBox(); -+ -+ virtual void doEffect (SPCurve * curve); -+ -+private: -+ OriginalPathParam linked_path; -+ BoolParam visual_bounds; -+ -+private: -+ LPEBoundingBox(const LPEBoundingBox&); -+ LPEBoundingBox& operator=(const LPEBoundingBox&); -+}; -+ -+}; //namespace LivePathEffect -+}; //namespace Inkscape -+ -+#endif - -=== added file 'src/live_effects/lpe-ellipse_5pts.cpp' ---- src/live_effects/lpe-ellipse_5pts.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-ellipse_5pts.cpp 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,214 @@ -+/** \file -+ * LPE "Ellipse through 5 points" implementation -+ */ -+ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/lpe-ellipse_5pts.h" -+ -+// You might need to include other 2geom files. You can add them here: -+#include -+#include <2geom/path.h> -+#include <2geom/circle.h> -+#include <2geom/ellipse.h> -+#include <2geom/svg-path.h> -+#include "inkscape.h" -+#include "desktop.h" -+#include "message-stack.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+LPEEllipse5Pts::LPEEllipse5Pts(LivePathEffectObject *lpeobject) : -+ Effect(lpeobject) -+{ -+ perceived_path = true; -+} -+ -+LPEEllipse5Pts::~LPEEllipse5Pts() -+{ -+} -+ -+static double _det3(double (*mat)[3]) -+{ -+ for (int i = 0; i < 2; i++) -+ { -+ for (int j = i + 1; j < 3; j++) -+ { -+ for (int k = i + 1; k < 3; k++) -+ { -+ mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); -+ if (i) mat[j][k] /= mat[i-1][i-1]; -+ } -+ } -+ } -+ return mat[2][2]; -+} -+static double _det5(double (*mat)[5]) -+{ -+ for (int i = 0; i < 4; i++) -+ { -+ for (int j = i + 1; j < 5; j++) -+ { -+ for (int k = i + 1; k < 5; k++) -+ { -+ mat[j][k] = (mat[j][k] * mat[i][i] - mat[j][i] * mat[i][k]); -+ if (i) mat[j][k] /= mat[i-1][i-1]; -+ } -+ } -+ } -+ return mat[4][4]; -+} -+ -+std::vector -+LPEEllipse5Pts::doEffect_path (std::vector const & path_in) -+{ -+ std::vector path_out = std::vector(); -+ -+ if (path_in[0].size() < 4) { -+ -+ SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Five points required for constructing an ellipse")); -+ return path_in; -+ } -+ // we assume that the path has >= 3 nodes -+ Geom::Point A = path_in[0].initialPoint(); -+ Geom::Point B = path_in[0].pointAt(1); -+ Geom::Point C = path_in[0].pointAt(2); -+ Geom::Point D = path_in[0].pointAt(3); -+ Geom::Point E = path_in[0].pointAt(4); -+ -+ using namespace Geom; -+ -+ double rowmajor_matrix[5][6] = -+ { -+ {A.x()*A.x(), A.x()*A.y(), A.y()*A.y(), A.x(), A.y(), 1}, -+ {B.x()*B.x(), B.x()*B.y(), B.y()*B.y(), B.x(), B.y(), 1}, -+ {C.x()*C.x(), C.x()*C.y(), C.y()*C.y(), C.x(), C.y(), 1}, -+ {D.x()*D.x(), D.x()*D.y(), D.y()*D.y(), D.x(), D.y(), 1}, -+ {E.x()*E.x(), E.x()*E.y(), E.y()*E.y(), E.x(), E.y(), 1} -+ }; -+ -+ double mat_a[5][5] = -+ { -+ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, -+ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, -+ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, -+ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, -+ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} -+ }; -+ double mat_b[5][5] = -+ { -+ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, -+ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, -+ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, -+ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, -+ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} -+ }; -+ double mat_c[5][5] = -+ { -+ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, -+ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, -+ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, -+ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, -+ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} -+ }; -+ double mat_d[5][5] = -+ { -+ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, -+ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, -+ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, -+ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]}, -+ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} -+ }; -+ double mat_e[5][5] = -+ { -+ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, -+ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, -+ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, -+ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, -+ {rowmajor_matrix[0][5], rowmajor_matrix[1][5], rowmajor_matrix[2][5], rowmajor_matrix[3][5], rowmajor_matrix[4][5]} -+ }; -+ double mat_f[5][5] = -+ { -+ {rowmajor_matrix[0][0], rowmajor_matrix[1][0], rowmajor_matrix[2][0], rowmajor_matrix[3][0], rowmajor_matrix[4][0]}, -+ {rowmajor_matrix[0][1], rowmajor_matrix[1][1], rowmajor_matrix[2][1], rowmajor_matrix[3][1], rowmajor_matrix[4][1]}, -+ {rowmajor_matrix[0][2], rowmajor_matrix[1][2], rowmajor_matrix[2][2], rowmajor_matrix[3][2], rowmajor_matrix[4][2]}, -+ {rowmajor_matrix[0][3], rowmajor_matrix[1][3], rowmajor_matrix[2][3], rowmajor_matrix[3][3], rowmajor_matrix[4][3]}, -+ {rowmajor_matrix[0][4], rowmajor_matrix[1][4], rowmajor_matrix[2][4], rowmajor_matrix[3][4], rowmajor_matrix[4][4]} -+ }; -+ -+ double a1 = _det5(mat_a); -+ double b1 = -_det5(mat_b); -+ double c1 = _det5(mat_c); -+ double d1 = -_det5(mat_d); -+ double e1 = _det5(mat_e); -+ double f1 = -_det5(mat_f); -+ -+ double mat_check[][3] = -+ { -+ {a1, b1/2, d1/2}, -+ {b1/2, c1, e1/2}, -+ {d1/2, e1/2, f1} -+ }; -+ -+ if (_det3(mat_check) == 0 || a1*c1 - b1*b1/4 <= 0) { -+ SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No ellipse found for specified points")); -+ return path_in; -+ } -+ -+ Geom::Ellipse el(a1, b1, c1, d1, e1, f1); -+ -+ double s, e; -+ double x0, y0, x1, y1, x2, y2, x3, y3; -+ double len; -+ -+ // figure out if we have a slice, guarding against rounding errors -+ -+ Path p(Geom::Point(cos(0), sin(0))); -+ -+ double end = 2 * M_PI; -+ for (s = 0; s < end; s += M_PI_2) { -+ e = s + M_PI_2; -+ if (e > end) -+ e = end; -+ len = 4*tan((e - s)/4)/3; -+ x0 = cos(s); -+ y0 = sin(s); -+ x1 = x0 + len * cos(s + M_PI_2); -+ y1 = y0 + len * sin(s + M_PI_2); -+ x3 = cos(e); -+ y3 = sin(e); -+ x2 = x3 + len * cos(e - M_PI_2); -+ y2 = y3 + len * sin(e - M_PI_2); -+ p.appendNew(Geom::Point(x1,y1), Geom::Point(x2,y2), Geom::Point(x3,y3)); -+ } -+ -+ Geom::Affine aff = Geom::Scale(el.ray(Geom::X), el.ray(Geom::Y)) * Geom::Rotate(el.rot_angle()) * Geom::Translate(el.center()); -+ -+ path_out.push_back(p * aff); -+ -+ return path_out; -+} -+ -+/* ######################## */ -+ -+} //namespace LivePathEffect -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-ellipse_5pts.h' ---- src/live_effects/lpe-ellipse_5pts.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-ellipse_5pts.h 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,50 @@ -+#ifndef INKSCAPE_LPE_ELLIPSE_5PTS_H -+#define INKSCAPE_LPE_ELLIPSE_5PTS_H -+ -+/** \file -+ * LPE "Ellipse through 5 points" implementation -+ */ -+ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/effect.h" -+#include "live_effects/parameter/parameter.h" -+#include "live_effects/parameter/point.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+class LPEEllipse5Pts : public Effect { -+public: -+ LPEEllipse5Pts(LivePathEffectObject *lpeobject); -+ virtual ~LPEEllipse5Pts(); -+ -+ virtual std::vector doEffect_path (std::vector const & path_in); -+ -+private: -+ LPEEllipse5Pts(const LPEEllipse5Pts&); -+ LPEEllipse5Pts& operator=(const LPEEllipse5Pts&); -+}; -+ -+} //namespace LivePathEffect -+} //namespace Inkscape -+ -+#endif -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-fill-between-many.cpp' ---- src/live_effects/lpe-fill-between-many.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-fill-between-many.cpp 2014-03-01 21:14:38 +0000 -@@ -0,0 +1,77 @@ -+/* -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+#include -+ -+#include "live_effects/lpe-fill-between-many.h" -+ -+#include "display/curve.h" -+#include "sp-item.h" -+#include "2geom/path.h" -+#include "sp-shape.h" -+#include "sp-text.h" -+#include "2geom/bezier-curve.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+LPEFillBetweenMany::LPEFillBetweenMany(LivePathEffectObject *lpeobject) : -+ Effect(lpeobject), -+ linked_paths(_("Linked path:"), _("Paths from which to take the original path data"), "linkedpaths", &wr, this) -+{ -+ registerParameter( dynamic_cast(&linked_paths) ); -+ //perceived_path = true; -+} -+ -+LPEFillBetweenMany::~LPEFillBetweenMany() -+{ -+ -+} -+ -+void LPEFillBetweenMany::doEffect (SPCurve * curve) -+{ -+ std::vector res_pathv; -+ SPItem * firstObj = NULL; -+ for (std::vector::iterator iter = linked_paths._vector.begin(); iter != linked_paths._vector.end(); iter++) { -+ SPObject *obj; -+ if ((*iter)->ref.isAttached() && (obj = (*iter)->ref.getObject()) && SP_IS_ITEM(obj) && !(*iter)->_pathvector.empty()) { -+ Geom::Path linked_path; -+ if ((*iter)->reversed) { -+ linked_path = (*iter)->_pathvector.front().reverse(); -+ } else { -+ linked_path = (*iter)->_pathvector.front(); -+ } -+ -+ if (!res_pathv.empty()) { -+ linked_path = linked_path * SP_ITEM(obj)->getRelativeTransform(firstObj); -+ res_pathv.front().appendNew(linked_path.initialPoint()); -+ res_pathv.front().append(linked_path); -+ } else { -+ firstObj = SP_ITEM(obj); -+ res_pathv.push_back(linked_path); -+ } -+ } -+ } -+ if (!res_pathv.empty()) { -+ res_pathv.front().close(); -+ } -+ curve->set_pathvector(res_pathv); -+} -+ -+} // namespace LivePathEffect -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-fill-between-many.h' ---- src/live_effects/lpe-fill-between-many.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-fill-between-many.h 2014-03-01 21:13:34 +0000 -@@ -0,0 +1,36 @@ -+#ifndef INKSCAPE_LPE_FILL_BETWEEN_MANY_H -+#define INKSCAPE_LPE_FILL_BETWEEN_MANY_H -+ -+/* -+ * Inkscape::LPEFillBetweenStrokes -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/effect.h" -+#include "live_effects/parameter/originalpatharray.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+class LPEFillBetweenMany : public Effect { -+public: -+ LPEFillBetweenMany(LivePathEffectObject *lpeobject); -+ virtual ~LPEFillBetweenMany(); -+ -+ virtual void doEffect (SPCurve * curve); -+ -+private: -+ OriginalPathArrayParam linked_paths; -+ -+private: -+ LPEFillBetweenMany(const LPEFillBetweenMany&); -+ LPEFillBetweenMany& operator=(const LPEFillBetweenMany&); -+}; -+ -+}; //namespace LivePathEffect -+}; //namespace Inkscape -+ -+#endif - -=== added file 'src/live_effects/lpe-fill-between-strokes.cpp' ---- src/live_effects/lpe-fill-between-strokes.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-fill-between-strokes.cpp 2014-03-01 21:13:06 +0000 -@@ -0,0 +1,116 @@ -+/* -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+ -+#include "live_effects/lpe-fill-between-strokes.h" -+ -+#include "display/curve.h" -+#include "sp-item.h" -+#include "2geom/path.h" -+#include "sp-shape.h" -+#include "sp-text.h" -+#include "2geom/bezier-curve.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+LPEFillBetweenStrokes::LPEFillBetweenStrokes(LivePathEffectObject *lpeobject) : -+ Effect(lpeobject), -+ linked_path(_("Linked path:"), _("Path from which to take the original path data"), "linkedpath", &wr, this), -+ second_path(_("Second path:"), _("Second path from which to take the original path data"), "secondpath", &wr, this), -+ reverse_second(_("Reverse Second"), _("Reverses the second path order"), "reversesecond", &wr, this) -+{ -+ registerParameter( dynamic_cast(&linked_path) ); -+ registerParameter( dynamic_cast(&second_path) ); -+ registerParameter( dynamic_cast(&reverse_second) ); -+ //perceived_path = true; -+} -+ -+LPEFillBetweenStrokes::~LPEFillBetweenStrokes() -+{ -+ -+} -+ -+void LPEFillBetweenStrokes::doEffect (SPCurve * curve) -+{ -+ if (curve) { -+ if ( linked_path.linksToPath() && second_path.linksToPath() && linked_path.getObject() && second_path.getObject() ) { -+ std::vector linked_pathv = linked_path.get_pathvector(); -+ std::vector second_pathv = second_path.get_pathvector(); -+ std::vector result_linked_pathv; -+ std::vector result_second_pathv; -+ Geom::Affine second_transform = second_path.getObject()->getRelativeTransform(linked_path.getObject()); -+ -+ for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) -+ { -+ result_linked_pathv.push_back((*iter)); -+ } -+ for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) -+ { -+ result_second_pathv.push_back((*iter) * second_transform); -+ } -+ -+ if ( !result_linked_pathv.empty() && !result_second_pathv.empty() && !result_linked_pathv.front().closed() ) { -+ if (reverse_second.get_value()) -+ { -+ result_linked_pathv.front().appendNew(result_second_pathv.front().finalPoint()); -+ result_linked_pathv.front().append(result_second_pathv.front().reverse()); -+ } -+ else -+ { -+ result_linked_pathv.front().appendNew(result_second_pathv.front().initialPoint()); -+ result_linked_pathv.front().append(result_second_pathv.front()); -+ } -+ curve->set_pathvector(result_linked_pathv); -+ } -+ else if ( !result_linked_pathv.empty() ) { -+ curve->set_pathvector(result_linked_pathv); -+ } -+ else if ( !result_second_pathv.empty() ) { -+ curve->set_pathvector(result_second_pathv); -+ } -+ } -+ else if ( linked_path.linksToPath() && linked_path.getObject() ) { -+ std::vector linked_pathv = linked_path.get_pathvector(); -+ std::vector result_pathv; -+ -+ for (std::vector::iterator iter = linked_pathv.begin(); iter != linked_pathv.end(); ++iter) -+ { -+ result_pathv.push_back((*iter)); -+ } -+ if ( !result_pathv.empty() ) { -+ curve->set_pathvector(result_pathv); -+ } -+ } -+ else if ( second_path.linksToPath() && second_path.getObject() ) { -+ std::vector second_pathv = second_path.get_pathvector(); -+ std::vector result_pathv; -+ -+ for (std::vector::iterator iter = second_pathv.begin(); iter != second_pathv.end(); ++iter) -+ { -+ result_pathv.push_back((*iter)); -+ } -+ if ( !result_pathv.empty() ) { -+ curve->set_pathvector(result_pathv); -+ } -+ } -+ } -+} -+ -+} // namespace LivePathEffect -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/lpe-fill-between-strokes.h' ---- src/live_effects/lpe-fill-between-strokes.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/lpe-fill-between-strokes.h 2014-03-01 21:11:40 +0000 -@@ -0,0 +1,38 @@ -+#ifndef INKSCAPE_LPE_FILL_BETWEEN_STROKES_H -+#define INKSCAPE_LPE_FILL_BETWEEN_STROKES_H -+ -+/* -+ * Inkscape::LPEFillBetweenStrokes -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/effect.h" -+#include "live_effects/parameter/originalpath.h" -+ -+namespace Inkscape { -+namespace LivePathEffect { -+ -+class LPEFillBetweenStrokes : public Effect { -+public: -+ LPEFillBetweenStrokes(LivePathEffectObject *lpeobject); -+ virtual ~LPEFillBetweenStrokes(); -+ -+ virtual void doEffect (SPCurve * curve); -+ -+private: -+ OriginalPathParam linked_path; -+ OriginalPathParam second_path; -+ BoolParam reverse_second; -+ -+private: -+ LPEFillBetweenStrokes(const LPEFillBetweenStrokes&); -+ LPEFillBetweenStrokes& operator=(const LPEFillBetweenStrokes&); -+}; -+ -+}; //namespace LivePathEffect -+}; //namespace Inkscape -+ -+#endif - -=== added file 'src/live_effects/parameter/originalpatharray.cpp' ---- src/live_effects/parameter/originalpatharray.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/parameter/originalpatharray.cpp 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,486 @@ -+/* -+ * Copyright (C) Johan Engelen 2008 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include "live_effects/parameter/originalpatharray.h" -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "inkscape.h" -+#include "icon-size.h" -+#include "widgets/icon.h" -+#include "ui/clipboard.h" -+#include "svg/svg.h" -+#include "svg/stringstream.h" -+#include "originalpath.h" -+#include "uri.h" -+#include "display/curve.h" -+ -+#include -+#include <2geom/coord.h> -+#include <2geom/point.h> -+#include "sp-shape.h" -+#include "sp-text.h" -+#include "live_effects/effect.h" -+ -+#include "verbs.h" -+#include "document-undo.h" -+#include "document.h" -+ -+namespace Inkscape { -+ -+namespace LivePathEffect { -+ -+class OriginalPathArrayParam::ModelColumns : public Gtk::TreeModel::ColumnRecord -+{ -+public: -+ -+ ModelColumns() -+ { -+ add(_colObject); -+ add(_colLabel); -+ add(_colReverse); -+ } -+ virtual ~ModelColumns() {} -+ -+ Gtk::TreeModelColumn _colObject; -+ Gtk::TreeModelColumn _colLabel; -+ Gtk::TreeModelColumn _colReverse; -+}; -+ -+OriginalPathArrayParam::OriginalPathArrayParam( const Glib::ustring& label, -+ const Glib::ustring& tip, -+ const Glib::ustring& key, -+ Inkscape::UI::Widget::Registry* wr, -+ Effect* effect ) -+: Parameter(label, tip, key, wr, effect), -+ _vector(), -+ _tree(), -+ _text_renderer(), -+ _toggle_renderer(), -+ _scroller() -+{ -+ _model = new ModelColumns(); -+ _store = Gtk::TreeStore::create(*_model); -+ _tree.set_model(_store); -+ -+ _tree.set_reorderable(true); -+ _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); -+ -+ _text_renderer = manage(new Gtk::CellRendererText()); -+ int nameColNum = _tree.append_column(_("Name"), *_text_renderer) - 1; -+ _name_column = _tree.get_column(nameColNum); -+ _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); -+ -+ _tree.set_expander_column( *_tree.get_column(nameColNum) ); -+ _tree.set_search_column(_model->_colLabel); -+ -+ Gtk::CellRendererToggle * _toggle_renderer = manage(new Gtk::CellRendererToggle()); -+ int toggleColNum = _tree.append_column(_("Reverse"), *_toggle_renderer) - 1; -+ Gtk::TreeViewColumn* col = _tree.get_column(toggleColNum); -+ _toggle_renderer->set_activatable(true); -+ _toggle_renderer->signal_toggled().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_reverse_toggled)); -+ col->add_attribute(_toggle_renderer->property_active(), _model->_colReverse); -+ -+ _scroller.add(_tree); -+ _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); -+ _scroller.set_shadow_type(Gtk::SHADOW_IN); -+ -+ oncanvas_editable = true; -+ -+} -+ -+OriginalPathArrayParam::~OriginalPathArrayParam() -+{ -+ while (!_vector.empty()) { -+ PathAndDirection *w = _vector.back(); -+ _vector.pop_back(); -+ unlink(w); -+ delete w; -+ } -+ delete _model; -+} -+ -+void OriginalPathArrayParam::on_reverse_toggled(const Glib::ustring& path) -+{ -+ Gtk::TreeModel::iterator iter = _store->get_iter(path); -+ Gtk::TreeModel::Row row = *iter; -+ PathAndDirection *w = row[_model->_colObject]; -+ row[_model->_colReverse] = !row[_model->_colReverse]; -+ w->reversed = row[_model->_colReverse]; -+ -+ gchar * full = param_getSVGValue(); -+ param_write_to_repr(full); -+ g_free(full); -+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, -+ _("Link path parameter to path")); -+} -+ -+void OriginalPathArrayParam::param_set_default() -+{ -+ -+} -+ -+Gtk::Widget* OriginalPathArrayParam::param_newWidget() -+{ -+ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox()); -+ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); -+ -+ vbox->pack_start(_scroller, Gtk::PACK_EXPAND_WIDGET); -+ -+ -+ { // Paste path to link button -+ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_PASTE, Inkscape::ICON_SIZE_BUTTON) ); -+ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); -+ pButton->set_relief(Gtk::RELIEF_NONE); -+ pIcon->show(); -+ pButton->add(*pIcon); -+ pButton->show(); -+ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_link_button_click)); -+ hbox->pack_start(*pButton, Gtk::PACK_SHRINK); -+ pButton->set_tooltip_text(_("Link to path")); -+ } -+ -+ { // Remove linked path -+ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_REMOVE, Inkscape::ICON_SIZE_BUTTON) ); -+ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); -+ pButton->set_relief(Gtk::RELIEF_NONE); -+ pIcon->show(); -+ pButton->add(*pIcon); -+ pButton->show(); -+ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_remove_button_click)); -+ hbox->pack_start(*pButton, Gtk::PACK_SHRINK); -+ pButton->set_tooltip_text(_("Remove Path")); -+ } -+ -+ { // Move Down -+ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_DOWN, Inkscape::ICON_SIZE_BUTTON) ); -+ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); -+ pButton->set_relief(Gtk::RELIEF_NONE); -+ pIcon->show(); -+ pButton->add(*pIcon); -+ pButton->show(); -+ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_down_button_click)); -+ hbox->pack_end(*pButton, Gtk::PACK_SHRINK); -+ pButton->set_tooltip_text(_("Move Down")); -+ } -+ -+ { // Move Down -+ Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_UP, Inkscape::ICON_SIZE_BUTTON) ); -+ Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); -+ pButton->set_relief(Gtk::RELIEF_NONE); -+ pIcon->show(); -+ pButton->add(*pIcon); -+ pButton->show(); -+ pButton->signal_clicked().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_up_button_click)); -+ hbox->pack_end(*pButton, Gtk::PACK_SHRINK); -+ pButton->set_tooltip_text(_("Move Up")); -+ } -+ -+ vbox->pack_end(*hbox, Gtk::PACK_SHRINK); -+ -+ vbox->show_all_children(true); -+ -+ return vbox; -+} -+ -+bool OriginalPathArrayParam::_selectIndex(const Gtk::TreeIter& iter, int* i) -+{ -+ if ((*i)-- <= 0) { -+ _tree.get_selection()->select(iter); -+ return true; -+ } -+ return false; -+} -+ -+void OriginalPathArrayParam::on_up_button_click() -+{ -+ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); -+ if (iter) { -+ Gtk::TreeModel::Row row = *iter; -+ -+ int i = -1; -+ std::vector::iterator piter = _vector.begin(); -+ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); piter = iter, i++, iter++) { -+ if (*iter == row[_model->_colObject]) { -+ _vector.erase(iter); -+ _vector.insert(piter, row[_model->_colObject]); -+ break; -+ } -+ } -+ -+ gchar * full = param_getSVGValue(); -+ param_write_to_repr(full); -+ g_free(full); -+ -+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, -+ _("Move path up")); -+ -+ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); -+ } -+} -+ -+void OriginalPathArrayParam::on_down_button_click() -+{ -+ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); -+ if (iter) { -+ Gtk::TreeModel::Row row = *iter; -+ -+ int i = 0; -+ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); i++, iter++) { -+ if (*iter == row[_model->_colObject]) { -+ std::vector::iterator niter = _vector.erase(iter); -+ if (niter != _vector.end()) { -+ niter++; -+ i++; -+ } -+ _vector.insert(niter, row[_model->_colObject]); -+ break; -+ } -+ } -+ -+ gchar * full = param_getSVGValue(); -+ param_write_to_repr(full); -+ g_free(full); -+ -+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, -+ _("Move path down")); -+ -+ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_selectIndex), &i)); -+ } -+} -+ -+void OriginalPathArrayParam::on_remove_button_click() -+{ -+ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); -+ if (iter) { -+ Gtk::TreeModel::Row row = *iter; -+ remove_link(row[_model->_colObject]); -+ -+ gchar * full = param_getSVGValue(); -+ param_write_to_repr(full); -+ g_free(full); -+ -+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, -+ _("Remove path")); -+ } -+ -+} -+ -+void -+OriginalPathArrayParam::on_link_button_click() -+{ -+ Inkscape::UI::ClipboardManager *cm = Inkscape::UI::ClipboardManager::get(); -+ Glib::ustring pathid = cm->getShapeOrTextObjectId(SP_ACTIVE_DESKTOP); -+ -+ if (pathid == "") { -+ return; -+ } -+ // add '#' at start to make it an uri. -+ pathid.insert(pathid.begin(), '#'); -+ -+ Inkscape::SVGOStringStream os; -+ bool foundOne = false; -+ for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { -+ if (foundOne) { -+ os << "|"; -+ } else { -+ foundOne = true; -+ } -+ os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); -+ } -+ -+ if (foundOne) { -+ os << "|"; -+ } -+ -+ os << pathid.c_str() << ",0"; -+ -+ param_write_to_repr(os.str().c_str()); -+ DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, -+ _("Link path parameter to path")); -+} -+ -+void OriginalPathArrayParam::unlink(PathAndDirection* to) -+{ -+ to->linked_modified_connection.disconnect(); -+ to->linked_delete_connection.disconnect(); -+ to->ref.detach(); -+ to->_pathvector = Geom::PathVector(); -+ if (to->href) { -+ g_free(to->href); -+ to->href = NULL; -+ } -+} -+ -+void OriginalPathArrayParam::remove_link(PathAndDirection* to) -+{ -+ unlink(to); -+ for (std::vector::iterator iter = _vector.begin(); iter != _vector.end(); iter++) { -+ if (*iter == to) { -+ PathAndDirection *w = *iter; -+ _vector.erase(iter); -+ delete w; -+ return; -+ } -+ } -+} -+ -+void OriginalPathArrayParam::linked_delete(SPObject */*deleted*/, PathAndDirection* to) -+{ -+ //remove_link(to); -+ -+ gchar * full = param_getSVGValue(); -+ param_write_to_repr(full); -+ g_free(full); -+} -+ -+bool OriginalPathArrayParam::_updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ if (row[_model->_colObject] == pd) { -+ SPObject *obj = pd->ref.getObject(); -+ row[_model->_colLabel] = obj && obj->getId() ? ( obj->label() ? obj->label() : obj->getId() ) : pd->href; -+ return true; -+ } -+ return false; -+} -+ -+void OriginalPathArrayParam::linked_changed(SPObject */*old_obj*/, SPObject *new_obj, PathAndDirection* to) -+{ -+ to->linked_delete_connection.disconnect(); -+ to->linked_modified_connection.disconnect(); -+ to->linked_transformed_connection.disconnect(); -+ -+ if (new_obj && SP_IS_ITEM(new_obj)) { -+ to->linked_delete_connection = new_obj->connectDelete(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_delete), to)); -+ to->linked_modified_connection = new_obj->connectModified(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_modified), to)); -+ to->linked_transformed_connection = SP_ITEM(new_obj)->connectTransformed(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_transformed), to)); -+ -+ linked_modified(new_obj, SP_OBJECT_MODIFIED_FLAG, to); -+ } else { -+ to->_pathvector = Geom::PathVector(); -+ SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); -+ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); -+ } -+} -+ -+void OriginalPathArrayParam::linked_transformed(Geom::Affine const *mp, SPItem* original, PathAndDirection* to) -+{ -+ -+} -+ -+void OriginalPathArrayParam::setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to) -+{ -+ if (!to) { -+ return; -+ } -+ SPCurve *curve = NULL; -+ if (SP_IS_SHAPE(linked_obj)) { -+ curve = SP_SHAPE(linked_obj)->getCurvePerceived(); -+ } -+ if (SP_IS_TEXT(linked_obj)) { -+ curve = SP_TEXT(linked_obj)->getNormalizedBpath(); -+ } -+ -+ if (curve == NULL) { -+ // curve invalid, set empty pathvector -+ to->_pathvector = Geom::PathVector(); -+ } else { -+ to->_pathvector = curve->get_pathvector(); -+ curve->unref(); -+ } -+} -+ -+void OriginalPathArrayParam::linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to) -+{ -+ if (!to) { -+ return; -+ } -+ setPathVector(linked_obj, flags, to); -+ SP_OBJECT(param_effect->getLPEObj())->requestModified(SP_OBJECT_MODIFIED_FLAG); -+ _store->foreach_iter(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::_updateLink), to)); -+} -+ -+//void PathParam::linked_transformed(Geom::Affine const *rel_transf, SPItem *moved_item) -+//{ -+// linked_transformed_callback(rel_transf, moved_item); -+//} -+ -+bool OriginalPathArrayParam::param_readSVGValue(const gchar* strvalue) -+{ -+ if (strvalue) { -+ while (!_vector.empty()) { -+ PathAndDirection *w = _vector.back(); -+ unlink(w); -+ _vector.pop_back(); -+ delete w; -+ } -+ _store->clear(); -+ -+ gchar ** strarray = g_strsplit(strvalue, "|", 0); -+ for (gchar ** iter = strarray; *iter != NULL; iter++) { -+ if ((*iter)[0] == '#') { -+ gchar ** substrarray = g_strsplit(*iter, ",", 0); -+ PathAndDirection* w = new PathAndDirection((SPObject *)param_effect->getLPEObj()); -+ w->href = g_strdup(*substrarray); -+ w->reversed = *(substrarray+1) != NULL && (*(substrarray+1))[0] == '1'; -+ -+ w->linked_changed_connection = w->ref.changedSignal().connect(sigc::bind(sigc::mem_fun(*this, &OriginalPathArrayParam::linked_changed), w)); -+ w->ref.attach(URI(w->href)); -+ -+ _vector.push_back(w); -+ -+ Gtk::TreeModel::iterator iter = _store->append(); -+ Gtk::TreeModel::Row row = *iter; -+ SPObject *obj = w->ref.getObject(); -+ -+ row[_model->_colObject] = w; -+ row[_model->_colLabel] = obj ? ( obj->label() ? obj->label() : obj->getId() ) : w->href; -+ row[_model->_colReverse] = w->reversed; -+ g_strfreev (substrarray); -+ } -+ } -+ g_strfreev (strarray); -+ return true; -+ } -+ return false; -+} -+ -+gchar * OriginalPathArrayParam::param_getSVGValue() const -+{ -+ Inkscape::SVGOStringStream os; -+ bool foundOne = false; -+ for (std::vector::const_iterator iter = _vector.begin(); iter != _vector.end(); iter++) { -+ if (foundOne) { -+ os << "|"; -+ } else { -+ foundOne = true; -+ } -+ os << (*iter)->href << "," << ((*iter)->reversed ? "1" : "0"); -+ } -+ gchar * str = g_strdup(os.str().c_str()); -+ return str; -+} -+ -+} /* namespace LivePathEffect */ -+ -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/parameter/originalpatharray.h' ---- src/live_effects/parameter/originalpatharray.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/parameter/originalpatharray.h 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,123 @@ -+#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H -+#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_ORIGINALPATHARRAY_H -+ -+/* -+ * Inkscape::LivePathEffectParameters -+ * -+* Copyright (C) Johan Engelen 2008 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "live_effects/parameter/parameter.h" -+#include "live_effects/parameter/path-reference.h" -+ -+#include "svg/svg.h" -+#include "svg/stringstream.h" -+#include "path-reference.h" -+#include "sp-object.h" -+ -+namespace Inkscape { -+ -+namespace LivePathEffect { -+ -+class PathAndDirection { -+public: -+ PathAndDirection(SPObject *owner) -+ : href(NULL), -+ ref(owner), -+ _pathvector(Geom::PathVector()), -+ reversed(false) -+ { -+ -+ } -+ gchar *href; -+ URIReference ref; -+ //SPItem *obj; -+ std::vector _pathvector; -+ bool reversed; -+ -+ sigc::connection linked_changed_connection; -+ sigc::connection linked_delete_connection; -+ sigc::connection linked_modified_connection; -+ sigc::connection linked_transformed_connection; -+}; -+ -+class OriginalPathArrayParam : public Parameter { -+public: -+ class ModelColumns; -+ -+ OriginalPathArrayParam( const Glib::ustring& label, -+ const Glib::ustring& tip, -+ const Glib::ustring& key, -+ Inkscape::UI::Widget::Registry* wr, -+ Effect* effect); -+ -+ virtual ~OriginalPathArrayParam(); -+ -+ virtual Gtk::Widget * param_newWidget(); -+ virtual bool param_readSVGValue(const gchar * strvalue); -+ virtual gchar * param_getSVGValue() const; -+ virtual void param_set_default(); -+ -+ /** Disable the canvas indicators of parent class by overriding this method */ -+ virtual void param_editOncanvas(SPItem * /*item*/, SPDesktop * /*dt*/) {}; -+ /** Disable the canvas indicators of parent class by overriding this method */ -+ virtual void addCanvasIndicators(SPLPEItem const* /*lpeitem*/, std::vector & /*hp_vec*/) {}; -+ -+ std::vector _vector; -+ -+protected: -+ bool _updateLink(const Gtk::TreeIter& iter, PathAndDirection* pd); -+ bool _selectIndex(const Gtk::TreeIter& iter, int* i); -+ void unlink(PathAndDirection* to); -+ void remove_link(PathAndDirection* to); -+ void setPathVector(SPObject *linked_obj, guint flags, PathAndDirection* to); -+ -+ void linked_changed(SPObject *old_obj, SPObject *new_obj, PathAndDirection* to); -+ void linked_modified(SPObject *linked_obj, guint flags, PathAndDirection* to); -+ void linked_transformed(Geom::Affine const *mp, SPItem *original, PathAndDirection* to); -+ void linked_delete(SPObject *deleted, PathAndDirection* to); -+ -+ ModelColumns *_model; -+ Glib::RefPtr _store; -+ Gtk::TreeView _tree; -+ Gtk::CellRendererText *_text_renderer; -+ Gtk::CellRendererToggle *_toggle_renderer; -+ Gtk::TreeView::Column *_name_column; -+ Gtk::ScrolledWindow _scroller; -+ -+ void on_link_button_click(); -+ void on_remove_button_click(); -+ void on_up_button_click(); -+ void on_down_button_click(); -+ void on_reverse_toggled(const Glib::ustring& path); -+ -+private: -+ OriginalPathArrayParam(const OriginalPathArrayParam&); -+ OriginalPathArrayParam& operator=(const OriginalPathArrayParam&); -+}; -+ -+} //namespace LivePathEffect -+ -+} //namespace Inkscape -+ -+#endif -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/parameter/transformedpoint.cpp' ---- src/live_effects/parameter/transformedpoint.cpp 1970-01-01 00:00:00 +0000 -+++ src/live_effects/parameter/transformedpoint.cpp 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,182 @@ -+/* -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+ -+#include "ui/widget/registered-widget.h" -+#include "live_effects/parameter/transformedpoint.h" -+#include "sp-lpe-item.h" -+#include "knotholder.h" -+#include "svg/svg.h" -+#include "svg/stringstream.h" -+ -+#include "live_effects/effect.h" -+#include "desktop.h" -+#include "verbs.h" -+ -+namespace Inkscape { -+ -+namespace LivePathEffect { -+ -+TransformedPointParam::TransformedPointParam( const Glib::ustring& label, const Glib::ustring& tip, -+ const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr, -+ Effect* effect, Geom::Point default_vector, -+ bool dontTransform) -+ : Parameter(label, tip, key, wr, effect), -+ defvalue(default_vector), -+ origin(0.,0.), -+ vector(default_vector), -+ noTransform(dontTransform) -+{ -+ vec_knot_shape = SP_KNOT_SHAPE_DIAMOND; -+ vec_knot_mode = SP_KNOT_MODE_XOR; -+ vec_knot_color = 0xffffb500; -+} -+ -+TransformedPointParam::~TransformedPointParam() -+{ -+ -+} -+ -+void -+TransformedPointParam::param_set_default() -+{ -+ setOrigin(Geom::Point(0.,0.)); -+ setVector(defvalue); -+} -+ -+bool -+TransformedPointParam::param_readSVGValue(const gchar * strvalue) -+{ -+ gchar ** strarray = g_strsplit(strvalue, ",", 4); -+ if (!strarray) { -+ return false; -+ } -+ double val[4]; -+ unsigned int i = 0; -+ while (i < 4 && strarray[i]) { -+ if (sp_svg_number_read_d(strarray[i], &val[i]) != 0) { -+ i++; -+ } else { -+ break; -+ } -+ } -+ g_strfreev (strarray); -+ if (i == 4) { -+ setOrigin( Geom::Point(val[0], val[1]) ); -+ setVector( Geom::Point(val[2], val[3]) ); -+ return true; -+ } -+ return false; -+} -+ -+gchar * -+TransformedPointParam::param_getSVGValue() const -+{ -+ Inkscape::SVGOStringStream os; -+ os << origin << " , " << vector; -+ gchar * str = g_strdup(os.str().c_str()); -+ return str; -+} -+ -+Gtk::Widget * -+TransformedPointParam::param_newWidget() -+{ -+ Inkscape::UI::Widget::RegisteredVector * pointwdg = Gtk::manage( -+ new Inkscape::UI::Widget::RegisteredVector( param_label, -+ param_tooltip, -+ param_key, -+ *param_wr, -+ param_effect->getRepr(), -+ param_effect->getSPDoc() ) ); -+ pointwdg->setPolarCoords(); -+ pointwdg->setValue( vector, origin ); -+ pointwdg->clearProgrammatically(); -+ pointwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change vector parameter")); -+ -+ Gtk::HBox * hbox = Gtk::manage( new Gtk::HBox() ); -+ static_cast(hbox)->pack_start(*pointwdg, true, true); -+ static_cast(hbox)->show_all_children(); -+ -+ return dynamic_cast (hbox); -+} -+ -+void -+TransformedPointParam::set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector) -+{ -+ setValues(new_origin, new_vector); -+ gchar * str = param_getSVGValue(); -+ param_write_to_repr(str); -+ g_free(str); -+} -+ -+void -+TransformedPointParam::param_transform_multiply(Geom::Affine const& postmul, bool /*set*/) -+{ -+ if (!noTransform) { -+ set_and_write_new_values( origin * postmul, vector * postmul.withoutTranslation() ); -+ } -+} -+ -+ -+void -+TransformedPointParam::set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color) -+{ -+ vec_knot_shape = shape; -+ vec_knot_mode = mode; -+ vec_knot_color = color; -+} -+ -+void -+TransformedPointParam::set_oncanvas_color(guint32 color) -+{ -+ vec_knot_color = color; -+} -+ -+class TransformedPointParamKnotHolderEntity_Vector : public KnotHolderEntity { -+public: -+ TransformedPointParamKnotHolderEntity_Vector(TransformedPointParam *p) : param(p) { } -+ virtual ~TransformedPointParamKnotHolderEntity_Vector() {} -+ -+ virtual void knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint /*state*/) { -+ Geom::Point const s = p - param->origin; -+ /// @todo implement angle snapping when holding CTRL -+ param->setVector(s); -+ sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); -+ }; -+ virtual Geom::Point knot_get() const{ -+ return param->origin + param->vector; -+ }; -+ virtual void knot_click(guint /*state*/){ -+ g_print ("This is the vector handle associated to parameter '%s'\n", param->param_key.c_str()); -+ }; -+ -+private: -+ TransformedPointParam *param; -+}; -+ -+void -+TransformedPointParam::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) -+{ -+ TransformedPointParamKnotHolderEntity_Vector *vector_e = new TransformedPointParamKnotHolderEntity_Vector(this); -+ vector_e->create(desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, handleTip(), vec_knot_shape, vec_knot_mode, vec_knot_color); -+ knotholder->add(vector_e); -+} -+ -+} /* namespace LivePathEffect */ -+ -+} /* namespace Inkscape */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - -=== added file 'src/live_effects/parameter/transformedpoint.h' ---- src/live_effects/parameter/transformedpoint.h 1970-01-01 00:00:00 +0000 -+++ src/live_effects/parameter/transformedpoint.h 2013-09-07 18:46:36 +0000 -@@ -0,0 +1,87 @@ -+#ifndef INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H -+#define INKSCAPE_LIVEPATHEFFECT_PARAMETER_TRANSFORMED_POINT_H -+ -+/* -+ * Inkscape::LivePathEffectParameters -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+#include <2geom/point.h> -+ -+#include "live_effects/parameter/parameter.h" -+ -+#include "knot-holder-entity.h" -+ -+namespace Inkscape { -+ -+namespace LivePathEffect { -+ -+ -+class TransformedPointParam : public Parameter { -+public: -+ TransformedPointParam( const Glib::ustring& label, -+ const Glib::ustring& tip, -+ const Glib::ustring& key, -+ Inkscape::UI::Widget::Registry* wr, -+ Effect* effect, -+ Geom::Point default_vector = Geom::Point(1,0), -+ bool dontTransform = false); -+ virtual ~TransformedPointParam(); -+ -+ virtual Gtk::Widget * param_newWidget(); -+ inline const gchar *handleTip() const { return param_tooltip.c_str(); } -+ -+ virtual bool param_readSVGValue(const gchar * strvalue); -+ virtual gchar * param_getSVGValue() const; -+ -+ Geom::Point getVector() const { return vector; }; -+ Geom::Point getOrigin() const { return origin; }; -+ void setValues(Geom::Point const &new_origin, Geom::Point const &new_vector) { setVector(new_vector); setOrigin(new_origin); }; -+ void setVector(Geom::Point const &new_vector) { vector = new_vector; }; -+ void setOrigin(Geom::Point const &new_origin) { origin = new_origin; }; -+ virtual void param_set_default(); -+ -+ void set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector); -+ -+ virtual void param_transform_multiply(Geom::Affine const &postmul, bool set); -+ -+ void set_vector_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); -+ //void set_origin_oncanvas_looks(SPKnotShapeType shape, SPKnotModeType mode, guint32 color); -+ void set_oncanvas_color(guint32 color); -+ -+ virtual bool providesKnotHolderEntities() const { return true; } -+ virtual void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); -+ -+private: -+ TransformedPointParam(const TransformedPointParam&); -+ TransformedPointParam& operator=(const TransformedPointParam&); -+ -+ Geom::Point defvalue; -+ -+ Geom::Point origin; -+ Geom::Point vector; -+ -+ bool noTransform; -+ -+ /// The looks of the vector and origin knots oncanvas -+ SPKnotShapeType vec_knot_shape; -+ SPKnotModeType vec_knot_mode; -+ guint32 vec_knot_color; -+// SPKnotShapeType ori_knot_shape; -+// SPKnotModeType ori_knot_mode; -+// guint32 ori_knot_color; -+ -+// friend class VectorParamKnotHolderEntity_Origin; -+ friend class TransformedPointParamKnotHolderEntity_Vector; -+}; -+ -+ -+} //namespace LivePathEffect -+ -+} //namespace Inkscape -+ -+#endif - diff --git a/mkerror.txt b/mkerror.txt deleted file mode 100644 index 069535166..000000000 --- a/mkerror.txt +++ /dev/null @@ -1,11 +0,0 @@ -make all-recursive -make[1]: Entering directory `/home/inkscape-diff' -Making all in src -make[2]: Entering directory `/home/inkscape-diff/src' -make all-am -make[3]: Entering directory `/home/inkscape-diff/src' - CXXLD inkscape - CXXLD inkview -make[3]: Leaving directory `/home/inkscape-diff/src' -make[2]: Leaving directory `/home/inkscape-diff/src' -make[1]: Leaving directory `/home/inkscape-diff' diff --git a/objects_dialog.patch b/objects_dialog.patch deleted file mode 100644 index 1cdd09c34..000000000 --- a/objects_dialog.patch +++ /dev/null @@ -1,3637 +0,0 @@ -=== modified file 'src/attributes.cpp' ---- src/attributes.cpp 2012-12-22 16:34:31 +0000 -+++ src/attributes.cpp 2013-03-17 14:36:44 +0000 -@@ -41,6 +41,7 @@ - {SP_ATTR_TRANSFORM_CENTER_X, "inkscape:transform-center-x"}, - {SP_ATTR_TRANSFORM_CENTER_Y, "inkscape:transform-center-y"}, - {SP_ATTR_INKSCAPE_PATH_EFFECT, "inkscape:path-effect"}, -+ {SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, "inkscape:highlight-color"}, - /* SPAnchor */ - {SP_ATTR_XLINK_HREF, "xlink:href"}, - {SP_ATTR_XLINK_TYPE, "xlink:type"}, -@@ -50,7 +51,9 @@ - {SP_ATTR_XLINK_SHOW, "xlink:show"}, - {SP_ATTR_XLINK_ACTUATE, "xlink:actuate"}, - {SP_ATTR_TARGET, "target"}, -+ /* SPGroup */ - {SP_ATTR_INKSCAPE_GROUPMODE, "inkscape:groupmode"}, -+ {SP_ATTR_INKSCAPE_EXPANDED, "inkscape:expanded"}, - /* SPRoot */ - {SP_ATTR_VERSION, "version"}, - {SP_ATTR_WIDTH, "width"}, - -=== modified file 'src/attributes.h' ---- src/attributes.h 2012-12-22 16:34:31 +0000 -+++ src/attributes.h 2013-03-17 14:36:17 +0000 -@@ -40,6 +40,7 @@ - SP_ATTR_TRANSFORM_CENTER_X, - SP_ATTR_TRANSFORM_CENTER_Y, - SP_ATTR_INKSCAPE_PATH_EFFECT, -+ SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR, - /* SPAnchor */ - SP_ATTR_XLINK_HREF, - SP_ATTR_XLINK_TYPE, -@@ -51,6 +52,7 @@ - SP_ATTR_TARGET, - /* SPGroup */ - SP_ATTR_INKSCAPE_GROUPMODE, -+ SP_ATTR_INKSCAPE_EXPANDED, - /* SPRoot */ - SP_ATTR_VERSION, - SP_ATTR_WIDTH, - -=== modified file 'src/desktop.cpp' ---- src/desktop.cpp 2013-01-27 14:19:11 +0000 -+++ src/desktop.cpp 2013-03-17 14:43:46 +0000 -@@ -1885,6 +1885,7 @@ - std::map mapVerbPreference; - std::map::const_iterator iter; - mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_LAYERS, "/dialogs/layers") ); -+ mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_OBJECTS, "/dialogs/objects") ); - mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_FILL_STROKE, "/dialogs/fillstroke") ); - mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_EXTENSIONEDITOR, "/dialogs/extensioneditor") ); - mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_ALIGN_DISTRIBUTE, "/dialogs/align") ); - -=== modified file 'src/menus-skeleton.h' ---- src/menus-skeleton.h 2013-03-16 16:26:03 +0000 -+++ src/menus-skeleton.h 2013-03-17 14:30:19 +0000 -@@ -180,6 +180,8 @@ - " \n" - " \n" - " \n" -+" \n" -+" \n" - " \n" - " \n" - " \n" - -=== modified file 'src/sp-item-group.cpp' ---- src/sp-item-group.cpp 2013-01-24 11:43:26 +0000 -+++ src/sp-item-group.cpp 2013-03-17 14:50:17 +0000 -@@ -123,6 +123,7 @@ - static void sp_group_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) - { - object->readAttr( "inkscape:groupmode" ); -+ object->readAttr( "inkscape:expanded" ); - - if (((SPObjectClass *)sp_group_parent_class)->build) { - ((SPObjectClass *)sp_group_parent_class)->build(object, document, repr); -@@ -221,7 +222,7 @@ - Inkscape::GC::release((Inkscape::XML::Node *) l->data); - l = g_slist_remove (l, l->data); - } -- } else { -+ } else if (!(flags & SP_OBJECT_WRITE_NO_CHILDREN)) { - for (SPObject *child = object->firstChild() ; child ; child = child->getNext() ) { - if ( !SP_IS_TITLE(child) && !SP_IS_DESC(child) ) { - child->updateRepr(flags); -@@ -241,6 +242,12 @@ - value = NULL; - } - repr->setAttribute("inkscape:groupmode", value); -+ -+ if (group->_expanded) { -+ repr->setAttribute("inkscape:expanded", "true"); -+ } else { -+ repr->setAttribute("inkscape:expanded", NULL); -+ } - } - - if (((SPObjectClass *) (sp_group_parent_class))->write) { -@@ -280,6 +287,11 @@ - group->setLayerMode(SPGroup::GROUP); - } - break; -+ case SP_ATTR_INKSCAPE_EXPANDED: -+ if ( value && !strcmp(value, "true") ) { -+ group->setExpanded(true); -+ } -+ break; - default: { - if (((SPObjectClass *) (sp_group_parent_class))->set) { - (* ((SPObjectClass *) (sp_group_parent_class))->set)(object, key, value); -@@ -517,6 +529,12 @@ - } - } - -+void SPGroup::setExpanded(bool isexpanded) { -+ if ( _expanded != isexpanded ){ -+ _expanded = isexpanded; -+ } -+} -+ - SPGroup::LayerMode SPGroup::layerDisplayMode(unsigned int dkey) const { - std::map::const_iterator iter; - iter = _display_modes.find(dkey); - -=== modified file 'src/sp-item-group.h' ---- src/sp-item-group.h 2011-10-04 19:04:58 +0000 -+++ src/sp-item-group.h 2013-03-17 14:50:53 +0000 -@@ -36,11 +36,15 @@ - struct SPGroup : public SPLPEItem { - enum LayerMode { GROUP, LAYER, MASK_HELPER }; - -+ bool _expanded; - LayerMode _layer_mode; - std::map _display_modes; - - LayerMode layerMode() const { return _layer_mode; } - void setLayerMode(LayerMode mode); -+ -+ bool expanded() const { return _expanded; } -+ void setExpanded(bool isexpanded); - - LayerMode effectiveLayerMode(unsigned int display_key) const { - if ( _layer_mode == LAYER ) { - -=== modified file 'src/sp-item.cpp' ---- src/sp-item.cpp 2013-01-23 12:22:14 +0000 -+++ src/sp-item.cpp 2013-03-17 14:54:59 +0000 -@@ -72,6 +72,9 @@ - #include "live_effects/lpeobject.h" - #include "live_effects/effect.h" - #include "live_effects/lpeobject-reference.h" -+#include "ui/tool/node-tool.h" -+#include "ui/tool/multi-path-manipulator.h" -+#include "tools-switch.h" - - #define noSP_ITEM_DEBUG_IDLE - -@@ -135,6 +138,8 @@ - _is_evaluated = true; - _evaluated_status = StatusUnknown; - -+ _highlightColor = NULL; -+ - transform = Geom::identity(); - doc_bbox = Geom::OptRect(); - freeze_stroke_width = false; -@@ -210,6 +215,62 @@ - return true; - } - -+bool SPItem::isHighlightSet() const { -+ return _highlightColor != NULL; -+} -+ -+guint32 SPItem::highlight_color() const { -+ if (_highlightColor) -+ { -+ return atoi(_highlightColor) | 0x000000ff; -+ } -+ else if (parent && parent != this && SP_IS_ITEM(parent)) -+ { -+ return SP_ITEM(parent)->highlight_color(); -+ } -+ else -+ { -+ static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); -+ return prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff) | 0x000000ff; -+ } -+} -+ -+void SPItem::setHighlightColor(guint32 const color) -+{ -+ g_free(_highlightColor); -+ if (color & 0x000000ff) -+ { -+ _highlightColor = g_strdup_printf("%u", color); -+ } -+ else -+ { -+ _highlightColor = NULL; -+ } -+ -+ InkNodeTool *tool = 0; -+ if (SP_ACTIVE_DESKTOP ) { -+ SPEventContext *ec = SP_ACTIVE_DESKTOP->event_context; -+ if (INK_IS_NODE_TOOL(ec)) { -+ tool = static_cast(ec); -+ tools_switch(tool->desktop, TOOLS_NODES); -+ } -+ } -+} -+ -+void SPItem::unsetHighlightColor() -+{ -+ g_free(_highlightColor); -+ _highlightColor = NULL; -+ InkNodeTool *tool = 0; -+ if (SP_ACTIVE_DESKTOP ) { -+ SPEventContext *ec = SP_ACTIVE_DESKTOP->event_context; -+ if (INK_IS_NODE_TOOL(ec)) { -+ tool = static_cast(ec); -+ tools_switch(tool->desktop, TOOLS_NODES); -+ } -+ } -+} -+ - void SPItem::setEvaluated(bool evaluated) { - _is_evaluated = evaluated; - _evaluated_status = StatusSet; -@@ -387,14 +448,30 @@ - while (target_ref->parent() != target_ref->root()) { - target_ref = target_ref->parent(); - } -+ if (target_ref) { -+ SPObject *obj = document->getObjectByRepr(target_ref); -+ if (SP_IS_ITEM(obj)) { -+ target = SP_ITEM(obj); -+ } -+ } - first = TRUE; - } -+ -+ g_assert(target_ref != NULL); - - if (intoafter) { -+ Geom::Affine t = getRelativeTransform(target); -+ doWriteTransform(our_ref, t); -+ our_ref = getRepr(); -+ - // Move this inside of the target at the end - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else if (target_ref->parent() != our_ref->parent()) { -+ Geom::Affine t = getRelativeTransform(target->parent); -+ doWriteTransform(our_ref, t); -+ our_ref = getRepr(); -+ - // Change in parent, need to remove and add - our_ref->parent()->removeChild(our_ref); - target_ref->parent()->addChild(our_ref, target_ref); -@@ -424,6 +501,7 @@ - object->readAttr( "inkscape:transform-center-y" ); - object->readAttr( "inkscape:connector-avoid" ); - object->readAttr( "inkscape:connection-points" ); -+ object->readAttr( "inkscape:highlight-color" ); - - if ((SP_OBJECT_CLASS(sp_item_parent_class))->build) { - (* (SP_OBJECT_CLASS(sp_item_parent_class))->build)(object, document, repr); -@@ -510,6 +588,14 @@ - v->arenaitem->setSensitive(item->sensitive); - } - break; -+ case SP_ATTR_INKSCAPE_HIGHLIGHT_COLOR: -+ g_free(item->_highlightColor); -+ if (value) { -+ item->_highlightColor = g_strdup(value); -+ } else { -+ item->_highlightColor = NULL; -+ } -+ break; - case SP_ATTR_CONNECTOR_AVOID: - item->avoidRef->setAvoid(value); - break; -@@ -720,6 +806,11 @@ - g_free ((void *) value); - } - } -+ if (item->_highlightColor){ -+ repr->setAttribute("inkscape:highlight-color", item->_highlightColor); -+ } else { -+ repr->setAttribute("inkscape:highlight-color", NULL); -+ } - - if ((SP_OBJECT_CLASS(sp_item_parent_class))->write) { - (SP_OBJECT_CLASS(sp_item_parent_class))->write(object, xml_doc, repr, flags); - -=== modified file 'src/sp-item.h' ---- src/sp-item.h 2013-03-14 23:24:17 +0000 -+++ src/sp-item.h 2013-03-17 14:51:37 +0000 -@@ -144,11 +144,21 @@ - - void init(); - bool isLocked() const; -+ bool isSensitive() const { -+ return sensitive; -+ }; - void setLocked(bool lock); - - bool isHidden() const; - void setHidden(bool hidden); - -+ bool isHighlightSet() const; -+ guint32 highlight_color() const; -+ -+ void setHighlightColor(guint32 color); -+ -+ void unsetHighlightColor(); -+ - bool isEvaluated() const; - void setEvaluated(bool visible); - void resetEvaluated(); -@@ -218,6 +228,7 @@ - Geom::Affine dt2i_affine() const; - void convert_to_guides(); - -+ gchar *_highlightColor; - private: - enum EvaluatedStatus - { - -=== modified file 'src/sp-object.h' ---- src/sp-object.h 2013-03-14 01:33:10 +0000 -+++ src/sp-object.h 2013-03-17 14:53:10 +0000 -@@ -48,6 +48,7 @@ - #define SP_OBJECT_WRITE_BUILD (1 << 0) - #define SP_OBJECT_WRITE_EXT (1 << 1) - #define SP_OBJECT_WRITE_ALL (1 << 2) -+#define SP_OBJECT_WRITE_NO_CHILDREN (1 << 3) - - #include - #include - -=== modified file 'src/ui/dialog/Makefile_insert' ---- src/ui/dialog/Makefile_insert 2012-10-11 17:54:14 +0000 -+++ src/ui/dialog/Makefile_insert 2013-03-17 13:55:34 +0000 -@@ -70,6 +70,8 @@ - ui/dialog/memory.h \ - ui/dialog/messages.cpp \ - ui/dialog/messages.h \ -+ ui/dialog/objects.cpp \ -+ ui/dialog/objects.h \ - ui/dialog/ocaldialogs.cpp \ - ui/dialog/ocaldialogs.h \ - ui/dialog/object-attributes.cpp \ - -=== modified file 'src/ui/dialog/dialog-manager.cpp' ---- src/ui/dialog/dialog-manager.cpp 2013-03-16 16:26:03 +0000 -+++ src/ui/dialog/dialog-manager.cpp 2013-03-17 14:03:02 +0000 -@@ -40,6 +40,7 @@ - #include "ui/dialog/undo-history.h" - #include "ui/dialog/panel-dialog.h" - #include "ui/dialog/layers.h" -+#include "ui/dialog/objects.h" - #include "ui/dialog/icon-preview.h" - #include "ui/dialog/floating-behavior.h" - #include "ui/dialog/dock-behavior.h" -@@ -108,6 +109,7 @@ - registerFactory("IconPreviewPanel", &create); - registerFactory("InkscapePreferences", &create); - registerFactory("LayersPanel", &create); -+ registerFactory("ObjectsPanel", &create); - registerFactory("LivePathEffect", &create); - registerFactory("Memory", &create); - registerFactory("Messages", &create); -@@ -142,6 +144,7 @@ - registerFactory("IconPreviewPanel", &create); - registerFactory("InkscapePreferences", &create); - registerFactory("LayersPanel", &create); -+ registerFactory("ObjectsPanel", &create); - registerFactory("LivePathEffect", &create); - registerFactory("Memory", &create); - registerFactory("Messages", &create); - -=== added file 'src/ui/dialog/objects.cpp' ---- src/ui/dialog/objects.cpp 1970-01-01 00:00:00 +0000 -+++ src/ui/dialog/objects.cpp 2013-03-17 15:01:22 +0000 -@@ -0,0 +1,2014 @@ -+/* -+ * A simple panel for objects -+ * -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include "objects.h" -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "desktop.h" -+#include "desktop-style.h" -+#include "document.h" -+#include "document-undo.h" -+#include "helper/action.h" -+#include "inkscape.h" -+#include "preferences.h" -+#include "sp-item.h" -+#include "sp-object.h" -+#include "sp-shape.h" -+#include "svg/css-ostringstream.h" -+#include "ui/icon-names.h" -+#include "ui/widget/imagetoggler.h" -+#include "ui/widget/layertypeicon.h" -+#include "ui/widget/clipmaskicon.h" -+#include "ui/widget/highlight-picker.h" -+#include "verbs.h" -+#include "widgets/icon.h" -+#include "xml/node.h" -+#include "xml/node-observer.h" -+#include "xml/repr.h" -+#include "sp-root.h" -+#include "event-context.h" -+#include "selection.h" -+#include "dialogs/dialog-events.h" -+#include "widgets/sp-color-notebook.h" -+#include "style.h" -+#include "filter-chemistry.h" -+#include "filters/blend.h" -+#include "filters/gaussian-blur.h" -+#include "sp-clippath.h" -+#include "sp-mask.h" -+#include "layer-manager.h" -+ -+//#define DUMP_LAYERS 1 -+ -+namespace Inkscape { -+namespace UI { -+namespace Dialog { -+ -+using Inkscape::XML::Node; -+ -+/** -+ * Gets an instance of the Objects panel -+ */ -+ObjectsPanel& ObjectsPanel::getInstance() -+{ -+ return *new ObjectsPanel(); -+} -+ -+/** -+ * Column enumeration -+ */ -+enum { -+ COL_VISIBLE = 1, -+ COL_LOCKED, -+ COL_TYPE, -+ COL_CLIPMASK, -+ COL_HIGHLIGHT -+}; -+ -+/** -+ * Button enumeration -+ */ -+enum { -+ BUTTON_NEW = 0, -+ BUTTON_RENAME, -+ BUTTON_TOP, -+ BUTTON_BOTTOM, -+ BUTTON_UP, -+ BUTTON_DOWN, -+ BUTTON_DUPLICATE, -+ BUTTON_DELETE, -+ BUTTON_SOLO, -+ BUTTON_SHOW_ALL, -+ BUTTON_HIDE_ALL, -+ BUTTON_LOCK_OTHERS, -+ BUTTON_LOCK_ALL, -+ BUTTON_UNLOCK_ALL, -+ BUTTON_SETCLIP, -+ BUTTON_UNSETCLIP, -+ BUTTON_SETMASK, -+ BUTTON_UNSETMASK, -+ BUTTON_GROUP, -+ BUTTON_UNGROUP, -+ BUTTON_COLLAPSE_ALL, -+ DRAGNDROP -+}; -+ -+/** -+ * Xml node observer for observing objects in the document -+ */ -+class ObjectsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { -+public: -+ /** -+ * Creates a new object watcher -+ * @param pnl The panel to which the object watcher belongs -+ * @param obj The object to watch -+ */ -+ ObjectWatcher(ObjectsPanel* pnl, SPObject* obj) : -+ _pnl(pnl), -+ _obj(obj), -+ _repr(obj->getRepr()), -+ _highlightAttr(g_quark_from_string("inkscape:highlight-color")), -+ _lockedAttr(g_quark_from_string("sodipodi:insensitive")), -+ _labelAttr(g_quark_from_string("inkscape:label")), -+ _groupAttr(g_quark_from_string("inkscape:groupmode")), -+ _styleAttr(g_quark_from_string("style")), -+ _clipAttr(g_quark_from_string("clip-path")), -+ _maskAttr(g_quark_from_string("mask")) -+ {} -+ -+ virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) -+ { -+ if ( _pnl && _obj ) { -+ _pnl->_objectsChanged( _obj ); -+ } -+ } -+ virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) -+ { -+ if ( _pnl && _obj ) { -+ _pnl->_objectsChanged( _obj ); -+ } -+ } -+ virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) -+ { -+ if ( _pnl && _obj ) { -+ _pnl->_objectsChanged( _obj ); -+ } -+ } -+ virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} -+ virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { -+ if ( _pnl && _obj ) { -+ if ( name == _lockedAttr || name == _labelAttr || name == _highlightAttr || name == _groupAttr || name == _styleAttr || name == _clipAttr || name == _maskAttr ) { -+ _pnl->_updateObject(_obj, name == _highlightAttr); -+ if ( name == _styleAttr ) { -+ _pnl->_updateComposite(); -+ } -+ } -+ } -+ } -+ -+ /** -+ * Objects panel to which this watcher belongs -+ */ -+ ObjectsPanel* _pnl; -+ -+ /** -+ * The object that is being observed -+ */ -+ SPObject* _obj; -+ -+ /** -+ * The xml representation of the object that is being observed -+ */ -+ Inkscape::XML::Node* _repr; -+ -+ /* These are quarks which define the attributes that we are observing */ -+ GQuark _highlightAttr; -+ GQuark _lockedAttr; -+ GQuark _labelAttr; -+ GQuark _groupAttr; -+ GQuark _styleAttr; -+ GQuark _clipAttr; -+ GQuark _maskAttr; -+}; -+ -+class ObjectsPanel::InternalUIBounce -+{ -+public: -+ int _actionCode; -+}; -+ -+class ObjectsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord -+{ -+public: -+ -+ ModelColumns() -+ { -+ add(_colObject); -+ add(_colVisible); -+ add(_colLocked); -+ add(_colLabel); -+ add(_colType); -+ add(_colHighlight); -+ add(_colClipMask); -+ } -+ virtual ~ModelColumns() {} -+ -+ Gtk::TreeModelColumn _colObject; -+ Gtk::TreeModelColumn _colLabel; -+ Gtk::TreeModelColumn _colVisible; -+ Gtk::TreeModelColumn _colLocked; -+ Gtk::TreeModelColumn _colType; -+ Gtk::TreeModelColumn _colHighlight; -+ Gtk::TreeModelColumn _colClipMask; -+}; -+ -+/** -+ * Stylizes a button using the given icon name and tooltip -+ */ -+void ObjectsPanel::_styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ) -+{ -+ GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); -+ gtk_widget_show( child ); -+ btn.add( *Gtk::manage(Glib::wrap(child)) ); -+ btn.set_relief(Gtk::RELIEF_NONE); -+ -+ btn.set_tooltip_text (tooltip); -+ -+} -+ -+/** -+ * Adds an item to the pop-up (right-click) menu -+ * @param desktop The active destktop -+ * @param code Action code -+ * @param iconName Icon name -+ * @param fallback Fallback text -+ * @param id Button id for callback function -+ * @return The generated menu item -+ */ -+Gtk::MenuItem& ObjectsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) -+{ -+ GtkWidget* iconWidget = 0; -+ const char* label = 0; -+ -+ if ( iconName ) { -+ iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); -+ } -+ -+ if ( desktop ) { -+ Verb *verb = Verb::get( code ); -+ if ( verb ) { -+ SPAction *action = verb->get_action(desktop); -+ if ( !iconWidget && action && action->image ) { -+ iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); -+ } -+ -+ if ( action ) { -+ label = action->name; -+ } -+ } -+ } -+ -+ if ( !label && fallback ) { -+ label = fallback; -+ } -+ -+ Gtk::Widget* wrapped = 0; -+ if ( iconWidget ) { -+ wrapped = Gtk::manage(Glib::wrap(iconWidget)); -+ wrapped->show(); -+ } -+ -+ -+ Gtk::MenuItem* item = 0; -+ -+ if (wrapped) { -+ item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); -+ } else { -+ item = Gtk::manage(new Gtk::MenuItem(label, true)); -+ } -+ -+ item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_takeAction), id)); -+ _popupMenu.append(*item); -+ -+ return *item; -+} -+ -+/** -+ * Callback function for when an object changes. Essentially refreshes the entire tree -+ * @param obj Object which was changed (currently not used as the entire tree is recreated) -+ */ -+void ObjectsPanel::_objectsChanged(SPObject */*obj*/) -+{ -+ //First, unattach the watchers -+ while (!_objectWatchers.empty()) -+ { -+ ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); -+ w->_repr->removeObserver(*w); -+ _objectWatchers.pop_back(); -+ delete w; -+ } -+ -+ if (_desktop) { -+ //Get the current document's root and use that to enumerate the tree -+ SPDocument* document = _desktop->doc(); -+ SPRoot* root = document->getRoot(); -+ if ( root ) { -+ _selectedConnection.block(); -+ //Clear the tree store -+ _store->clear(); -+ //Add all items recursively -+ _addObject( root, 0 ); -+ _selectedConnection.unblock(); -+ //Set the tree selection -+ _objectsSelected(_desktop->selection); -+ //Handle button sensitivity -+ _checkTreeSelection(); -+ } -+ } -+} -+ -+/** -+ * Recursively adds the children of the given item to the tree -+ * @param obj Root object to add to the tree -+ * @param parentRow Parent tree row (or NULL if adding to tree root) -+ */ -+void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) -+{ -+ if ( _desktop && obj ) { -+ for ( SPObject *child = obj->children; child != NULL; child = child->next) { -+ -+ if (SP_IS_ITEM(child)) -+ { -+ SPItem * item = SP_ITEM(child); -+ SPGroup * group = SP_IS_GROUP(child) ? SP_GROUP(child) : 0; -+ -+ //Add the item to the tree and set the column information -+ Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); -+ Gtk::TreeModel::Row row = *iter; -+ row[_model->_colObject] = item; -+ row[_model->_colLabel] = item->label() ? item->label() : item->getId(); -+ row[_model->_colVisible] = !item->isHidden(); -+ row[_model->_colLocked] = !item->isSensitive(); -+ row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; -+ row[_model->_colHighlight] = item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00; -+ row[_model->_colClipMask] = item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0); -+ -+ //If our parent object is a group and it's expanded, expand the tree -+ if (SP_IS_GROUP(obj) && SP_GROUP(obj)->expanded()) -+ { -+ _tree.expand_to_path( _store->get_path(iter) ); -+ } -+ -+ //Add an object watcher to the item -+ ObjectsPanel::ObjectWatcher *w = new ObjectsPanel::ObjectWatcher(this, child); -+ child->getRepr()->addObserver(*w); -+ _objectWatchers.push_back(w); -+ -+ //If the item is a group, recursively add its children -+ if (group) -+ { -+ _addObject( child, &row ); -+ } -+ } -+ } -+ } -+} -+ -+/** -+ * Updates an item in the tree and optionally recursively updates the item's children -+ * @param obj The item to update in the tree -+ * @param recurse Whether to recurse through the item's children -+ */ -+void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { -+ //Find the object in the tree store and update it -+ _store->foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_checkForUpdated), obj) ); -+ if (recurse) -+ { -+ for (SPObject * iter = obj->children; iter != NULL; iter = iter->next) -+ { -+ _updateObject(iter, recurse); -+ } -+ } -+} -+ -+/** -+ * Checks items in the tree store and updates the given item -+ * @param iter Current item being looked at in the tree -+ * @param obj Object to update -+ * @return -+ */ -+bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ if ( obj == row[_model->_colObject] ) -+ { -+ //We found our item in the tree!! Update it! -+ SPItem * item = SP_IS_ITEM(obj) ? SP_ITEM(obj) : 0; -+ SPGroup * group = SP_IS_GROUP(obj) ? SP_GROUP(obj) : 0; -+ -+ row[_model->_colLabel] = obj->label() ? obj->label() : obj->getId(); -+ row[_model->_colVisible] = item ? !item->isHidden() : false; -+ row[_model->_colLocked] = item ? !item->isSensitive() : false; -+ row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; -+ row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0; -+ row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; -+ -+ return true; -+ } -+ -+ return false; -+} -+ -+/** -+ * Updates the composite controls for the selected item -+ */ -+void ObjectsPanel::_updateComposite() { -+ if (!_blockCompositeUpdate) -+ { -+ //Set the default values -+ bool setValues = true; -+ -+ //Get/set the values -+ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_compositingChanged), &setValues)); -+ } -+} -+ -+/** -+ * Sets the compositing values for the first selected item in the tree -+ * @param iter Current tree item -+ * @param setValues Whether to set the compositing values -+ * @param blur Blur value to use -+ */ -+void ObjectsPanel::_compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ) -+{ -+ if (iter) { -+ Gtk::TreeModel::Row row = *iter; -+ SPItem *item = row[_model->_colObject]; -+ if (*setValues) -+ { -+ _setCompositingValues(item); -+ *setValues = false; -+ } -+ } -+} -+ -+/** -+ * Occurs when the current desktop selection changes -+ * @param sel The current selection -+ */ -+void ObjectsPanel::_objectsSelected( Selection *sel ) { -+ -+ bool setOpacity = true; -+ _selectedConnection.block(); -+ _tree.get_selection()->unselect_all(); -+ SPItem *item = NULL; -+ for (const GSList * iter = sel->itemList(); iter != NULL; iter = iter->next) -+ { -+ item = reinterpret_cast(iter->data); -+ if (setOpacity) -+ { -+ _setCompositingValues(item); -+ setOpacity = false; -+ } -+ _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, iter->next == NULL)); -+ } -+ if (!item) { -+ if (_desktop->currentLayer() && SP_IS_ITEM(_desktop->currentLayer())) { -+ item = SP_ITEM(_desktop->currentLayer()); -+ _setCompositingValues(item); -+ _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, true)); -+ } -+ } -+ _selectedConnection.unblock(); -+ _checkTreeSelection(); -+} -+ -+/** -+ * Helper function for setting the compositing values -+ * @param item Item to use for setting the compositing values -+ */ -+void ObjectsPanel::_setCompositingValues(SPItem *item) -+{ -+ //Block the connections to avoid interference -+ _opacityConnection.block(); -+ _blendConnection.block(); -+ _blurConnection.block(); -+ -+ //Set the opacity -+ _opacity_adjustment.set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment.get_upper()); -+ SPFeBlend *spblend = NULL; -+ SPGaussianBlur *spblur = NULL; -+ if (item->style->getFilter()) -+ { -+ for(SPObject *primitive_obj = item->style->getFilter()->children; primitive_obj && SP_IS_FILTER_PRIMITIVE(primitive_obj); primitive_obj = primitive_obj->next) { -+ if(SP_IS_FEBLEND(primitive_obj) && !spblend) { -+ //Get the blend mode -+ spblend = SP_FEBLEND(primitive_obj); -+ } -+ -+ if(SP_IS_GAUSSIANBLUR(primitive_obj) && !spblur) { -+ //Get the blur value -+ spblur = SP_GAUSSIANBLUR(primitive_obj); -+ } -+ } -+ } -+ -+ //Set the blend mode -+ _fe_cb.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); -+ -+ //Set the blur value -+ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); -+ if (bbox && spblur) { -+ double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? -+ _fe_blur.set_blur_value(spblur->stdDeviation.getNumber() * 400 / perimeter); -+ } else { -+ _fe_blur.set_blur_value(0); -+ } -+ -+ //Unblock connections -+ _blurConnection.unblock(); -+ _blendConnection.unblock(); -+ _opacityConnection.unblock(); -+} -+ -+/** -+ * Checks the tree and selects the specified item, optionally scrolling to the item -+ * @param path Current tree path -+ * @param iter Current tree item -+ * @param item Item to select in the tree -+ * @param scrollto Whether to scroll to the item -+ * @return Whether to continue searching the tree -+ */ -+bool ObjectsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto) -+{ -+ bool stopGoing = false; -+ -+ Gtk::TreeModel::Row row = *iter; -+ if ( item == row[_model->_colObject] ) -+ { -+ //We found the item! Expand to the path and select it in the tree. -+ _tree.expand_to_path( path ); -+ -+ Glib::RefPtr select = _tree.get_selection(); -+ -+ select->select(iter); -+ if (scrollto) { -+ //Scroll to the item in the tree -+ _tree.scroll_to_row(path); -+ } -+ -+ stopGoing = true; -+ } -+ -+ return stopGoing; -+} -+ -+/** -+ * Pushes the current tree selection to the canvas -+ */ -+void ObjectsPanel::_pushTreeSelectionToCurrent() -+{ -+ if ( _desktop && _desktop->currentRoot() ) { -+ //block connections for selection and compositing values to prevent interference -+ _selectionChangedConnection.block(); -+ -+ //Clear the selection and then iterate over the tree selection, pushing each item to the desktop -+ _desktop->selection->clear(); -+ bool setOpacity = true; -+ _tree.get_selection()->selected_foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_selected_row_callback), &setOpacity)); -+ //unblock connections -+ _selectionChangedConnection.unblock(); -+ -+ _checkTreeSelection(); -+ } -+} -+ -+/** -+ * Helper function for pushing the current tree selection to the current desktop -+ * @param iter Current tree item -+ * @param setCompositingValues Whether to set the compositing values -+ * @param blur -+ */ -+void ObjectsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setCompositingValues ) -+{ -+ if (iter) { -+ Gtk::TreeModel::Row row = *iter; -+ SPItem *item = row[_model->_colObject]; -+ if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) -+ { -+ //If the item is not a layer, then select it and set the current layer to its parent (if it's the first item) -+ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); -+ _desktop->selection->add(item); -+ } -+ else -+ { -+ //If the item is a layer, set the current layer -+ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); -+ } -+ if (*setCompositingValues) -+ { -+ //Only set the compositing values for the first item -+ _setCompositingValues(item); -+ *setCompositingValues = false; -+ } -+ } -+} -+ -+/** -+ * Handles button sensitivity -+ */ -+void ObjectsPanel::_checkTreeSelection() -+{ -+ bool sensitive = _tree.get_selection()->count_selected_rows() > 0; -+ //TODO: top/bottom sensitivity -+ bool sensitiveNonTop = true; -+ bool sensitiveNonBottom = true; -+ -+ for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { -+ (*it)->set_sensitive( sensitive ); -+ } -+ for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { -+ (*it)->set_sensitive( sensitiveNonTop ); -+ } -+ for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { -+ (*it)->set_sensitive( sensitiveNonBottom ); -+ } -+} -+ -+/** -+ * Sets visibility of items in the tree -+ * @param iter Current item in the tree -+ * @param visible Whether the item should be visible or not -+ */ -+void ObjectsPanel::_setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ item->setHidden( !visible ); -+ row[_model->_colVisible] = visible; -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+} -+ -+/** -+ * Sets sensitivity of items in the tree -+ * @param iter Current item in the tree -+ * @param locked Whether the item should be locked -+ */ -+void ObjectsPanel::_setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ item->setLocked( locked ); -+ row[_model->_colLocked] = locked; -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+} -+ -+/** -+ * Handles keyboard events -+ * @param event Keyboard event passed in from GDK -+ * @return Whether the event should be eaten (om nom nom) -+ */ -+bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event) -+{ -+ -+ switch (get_group0_keyval(event)) { -+ case GDK_KEY_Return: -+ case GDK_KEY_KP_Enter: -+ case GDK_KEY_F2: -+ { -+ Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); -+ if (iter && !_text_renderer->property_editable()) { -+ //Rename item -+ Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); -+ _text_renderer->property_editable() = true; -+ _tree.set_cursor(*path, *_name_column, true); -+ grab_focus(); -+ return true; -+ } -+ } -+ break; -+ case GDK_Home: -+ { -+ //Move item(s) to top of containing group/layer -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_TO_TOP ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_TO_FRONT ); -+ } -+ return true; -+ } -+ case GDK_End: -+ { -+ //Move item(s) to bottom of containing group/layer -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_TO_BOTTOM ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_TO_BACK ); -+ } -+ return true; -+ } -+ case GDK_KEY_Page_Up: -+ { -+ //Move item(s) up in containing group/layer -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_RAISE ); -+ } -+ else -+ { -+ if (event->state & GDK_SHIFT_MASK) { -+ _fireAction( SP_VERB_LAYER_MOVE_TO_NEXT ); -+ } else { -+ _fireAction( SP_VERB_SELECTION_RAISE ); -+ } -+ } -+ return true; -+ } -+ case GDK_KEY_Page_Down: -+ { -+ //Move item(s) down in containing group/layer -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_LOWER ); -+ } -+ else -+ { -+ if (event->state & GDK_SHIFT_MASK) { -+ _fireAction( SP_VERB_LAYER_MOVE_TO_PREV ); -+ } else { -+ _fireAction( SP_VERB_SELECTION_LOWER ); -+ } -+ } -+ return true; -+ } -+ //TODO: Handle Ctrl-A, etc. -+ } -+ return false; -+} -+ -+/** -+ * Handles mouse events -+ * @param event Mouse event from GDK -+ * @return whether to eat the event (om nom nom) -+ */ -+bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) -+{ -+ static unsigned doubleclick = 0; -+ static bool overVisible = false; -+ -+ //Right mouse button was clicked, launch the pop-up menu -+ if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { -+ Gtk::TreeModel::Path path; -+ int x = static_cast(event->x); -+ int y = static_cast(event->y); -+ if ( _tree.get_path_at_pos( x, y, path ) ) { -+ _checkTreeSelection(); -+ _popupMenu.popup(event->button, event->time); -+ if (_tree.get_selection()->is_selected(path)) { -+ return true; -+ } -+ } -+ } -+ -+ //Left mouse button was pressed! In order to handle multiple item drag & drop, -+ //we need to defer selection by setting the select function so that the tree doesn't -+ //automatically select anything. In order to handle multiple item icon clicking, -+ //we need to eat the event. There might be a better way to do both of these... -+ if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { -+ overVisible = false; -+ Gtk::TreeModel::Path path; -+ Gtk::TreeViewColumn* col = 0; -+ int x = static_cast(event->x); -+ int y = static_cast(event->y); -+ int x2 = 0; -+ int y2 = 0; -+ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { -+ if (col == _tree.get_column(COL_VISIBLE-1)) { -+ //Click on visible column, eat this event to keep row selection -+ overVisible = true; -+ return true; -+ } else if (col == _tree.get_column(COL_LOCKED-1) || -+ col == _tree.get_column(COL_TYPE-1) || -+ col == _tree.get_column(COL_HIGHLIGHT-1)) { -+ //Click on an icon column, eat this event to keep row selection -+ return true; -+ } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { -+ //Click on a selected item with no modifiers, defer selection to the mouse-up by -+ //setting the select function to _noSelection -+ _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_noSelection)); -+ _defer_target = path; -+ } -+ } -+ } -+ -+ //Restore the selection function to allow tree selection on mouse button release -+ if ( event->type == GDK_BUTTON_RELEASE) { -+ _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction)); -+ } -+ -+ //CellRenderers do not have good support for dealing with multiple items, so -+ //we handle all events on them here -+ if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { -+ -+ Gtk::TreeModel::Path path; -+ Gtk::TreeViewColumn* col = 0; -+ int x = static_cast(event->x); -+ int y = static_cast(event->y); -+ int x2 = 0; -+ int y2 = 0; -+ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { -+ if (_defer_target) { -+ //We had deferred a selection target, select it here (assuming no drag & drop) -+ if (_defer_target == path && !(event->x == 0 && event->y == 0)) -+ { -+ _tree.set_cursor(path, *col, false); -+ } -+ _defer_target = Gtk::TreeModel::Path(); -+ } -+ else { -+ if (event->state & GDK_SHIFT_MASK) { -+ // Shift left click on the visible/lock columns toggles "solo" mode -+ if (col == _tree.get_column(COL_VISIBLE - 1)) { -+ _takeAction(BUTTON_SOLO); -+ } else if (col == _tree.get_column(COL_LOCKED - 1)) { -+ _takeAction(BUTTON_LOCK_OTHERS); -+ } -+ } else if (event->state & GDK_MOD1_MASK) { -+ // Alt+left click on the visible/lock columns toggles "solo" mode and preserves selection -+ Gtk::TreeModel::iterator iter = _store->get_iter(path); -+ if (_store->iter_is_valid(iter)) { -+ Gtk::TreeModel::Row row = *iter; -+ SPItem *item = row[_model->_colObject]; -+ if (col == _tree.get_column(COL_VISIBLE - 1)) { -+ _desktop->toggleLayerSolo( item ); -+ DocumentUndo::maybeDone(_desktop->doc(), "layer:solo", SP_VERB_LAYER_SOLO, _("Toggle layer solo")); -+ } else if (col == _tree.get_column(COL_LOCKED - 1)) { -+ _desktop->toggleLockOtherLayers( item ); -+ DocumentUndo::maybeDone(_desktop->doc(), "layer:lockothers", SP_VERB_LAYER_LOCK_OTHERS, _("Lock other layers")); -+ } -+ } -+ } else { -+ Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); -+ Gtk::TreeModel::Row row = *iter; -+ -+ SPItem* item = row[_model->_colObject]; -+ -+ if (col == _tree.get_column(COL_VISIBLE - 1)) { -+ if (overVisible) { -+ //Toggle visibility -+ bool newValue = !row[_model->_colVisible]; -+ if (_tree.get_selection()->is_selected(path)) -+ { -+ //If the current row is selected, toggle the visibility -+ //for all selected items -+ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setVisibleIter), newValue)); -+ } -+ else -+ { -+ //If the current row is not selected, toggle just its visibility -+ row[_model->_colVisible] = newValue; -+ item->setHidden(!newValue); -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, -+ newValue? _("Unhide objects") : _("Hide objects")); -+ overVisible = false; -+ } -+ } else if (col == _tree.get_column(COL_LOCKED - 1)) { -+ //Toggle locking -+ bool newValue = !row[_model->_colLocked]; -+ if (_tree.get_selection()->is_selected(path)) -+ { -+ //If the current row is selected, toggle the sensitivity for -+ //all selected items -+ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setLockedIter), newValue)); -+ } -+ else -+ { -+ //If the current row is not selected, toggle just its sensitivity -+ row[_model->_colLocked] = newValue; -+ item->setLocked( newValue ); -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, -+ newValue? _("Lock objects") : _("Unlock objects")); -+ -+ } else if (col == _tree.get_column(COL_TYPE - 1)) { -+ if (SP_IS_GROUP(item)) -+ { -+ //Toggle the current item between a group and a layer -+ SPGroup * g = SP_GROUP(item); -+ bool newValue = g->layerMode() == SPGroup::LAYER; -+ row[_model->_colType] = newValue ? 1: 2; -+ g->setLayerMode(newValue ? SPGroup::GROUP : SPGroup::LAYER); -+ g->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, -+ newValue? _("Layer to group") : _("Group to layer")); -+ } -+ } else if (col == _tree.get_column(COL_HIGHLIGHT - 1)) { -+ //Clear the highlight targets -+ _highlight_target.clear(); -+ if (_tree.get_selection()->is_selected(path)) -+ { -+ //If the current item is selected, store all selected items -+ //in the highlight source -+ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeHighlightTarget)); -+ } else { -+ //If the current item is not selected, store only it in the highlight source -+ _storeHighlightTarget(iter); -+ } -+ if (_colorSelector) -+ { -+ //Set up the color selector -+ SPColor color; -+ color.set( row[_model->_colHighlight] ); -+ _colorSelector->base->setColorAlpha(color, SP_RGBA32_A_F(row[_model->_colHighlight])); -+ } -+ //Show the color selector dialog -+ _colorSelectorDialog.show(); -+ } -+ } -+ } -+ } -+ } -+ -+ //Second mouse button press, set double click status for when the mouse is released -+ if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { -+ doubleclick = 1; -+ } -+ -+ //Double click on mouse button release, if we're over the label column, edit -+ //the item name -+ if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { -+ doubleclick = 0; -+ Gtk::TreeModel::Path path; -+ Gtk::TreeViewColumn* col = 0; -+ int x = static_cast(event->x); -+ int y = static_cast(event->y); -+ int x2 = 0; -+ int y2 = 0; -+ if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { -+ // Double click on the Layer name, enable editing -+ _text_renderer->property_editable() = true; -+ _tree.set_cursor (path, *_name_column, true); -+ grab_focus(); -+ } -+ } -+ -+ return false; -+} -+ -+/** -+ * Stores items in the highlight target vector to manipulate with the color selector -+ * @param iter Current tree item to store -+ */ -+void ObjectsPanel::_storeHighlightTarget(const Gtk::TreeModel::iterator& iter) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ _highlight_target.push_back(item); -+ } -+} -+ -+/* -+ * Drap and drop within the tree -+ */ -+bool ObjectsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) -+{ -+ int cell_x = 0, cell_y = 0; -+ Gtk::TreeModel::Path target_path; -+ Gtk::TreeView::Column *target_column; -+ -+ //Set up our defaults and clear the source vector -+ _dnd_into = false; -+ _dnd_target = NULL; -+ _dnd_source.clear(); -+ -+ //Add all selected items to the source vector -+ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_storeDragSource)); -+ -+ if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { -+ // Are we before, inside or after the drop layer -+ Gdk::Rectangle rect; -+ _tree.get_background_area (target_path, *target_column, rect); -+ int cell_height = rect.get_height(); -+ _dnd_into = (cell_y > (int)(cell_height * 1/4) && cell_y <= (int)(cell_height * 3/4)); -+ if (cell_y > (int)(cell_height * 3/4)) { -+ Gtk::TreeModel::Path next_path = target_path; -+ next_path.next(); -+ if (_store->iter_is_valid(_store->get_iter(next_path))) { -+ target_path = next_path; -+ } else { -+ // Dragging to the "end" -+ Gtk::TreeModel::Path up_path = target_path; -+ up_path.up(); -+ if (_store->iter_is_valid(_store->get_iter(up_path))) { -+ // Drop into parent -+ target_path = up_path; -+ _dnd_into = true; -+ } else { -+ // Drop into the top level -+ _dnd_target = NULL; -+ } -+ } -+ } -+ Gtk::TreeModel::iterator iter = _store->get_iter(target_path); -+ if (_store->iter_is_valid(iter)) { -+ Gtk::TreeModel::Row row = *iter; -+ //Set the drop target. If we're not dropping into a group, we cannot -+ //drop into it, so set _dnd_into false. -+ _dnd_target = row[_model->_colObject]; -+ if (!(SP_IS_GROUP(_dnd_target))) _dnd_into = false; -+ } -+ } -+ -+ _takeAction(DRAGNDROP); -+ -+ return false; -+} -+ -+/** -+ * Stores all selected items as the drag source -+ * @param iter Current tree item -+ */ -+void ObjectsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ _dnd_source.push_back(item); -+ } -+} -+ -+/* -+ * Move a layer in response to a drag & drop action -+ */ -+void ObjectsPanel::_doTreeMove( ) -+{ -+ g_assert(_desktop != NULL); -+ g_assert(_document != NULL); -+ -+ std::vector idvector; -+ -+ //Clear the desktop selection -+ _desktop->selection->clear(); -+ while (!_dnd_source.empty()) -+ { -+ SPItem *obj = _dnd_source.back(); -+ _dnd_source.pop_back(); -+ -+ if (obj != _dnd_target) { -+ //Store the object id (for selection later) and move the object -+ idvector.push_back(g_strdup(obj->getId())); -+ obj->moveTo(_dnd_target, _dnd_into); -+ } -+ } -+ -+ //Select items -+ while (!idvector.empty()) { -+ //Grab the id from the vector, get the item in the document and select it -+ gchar * id = idvector.back(); -+ idvector.pop_back(); -+ SPObject *obj = _document->getObjectById(id); -+ g_free(id); -+ if (obj && SP_IS_ITEM(obj)) { -+ SPItem *item = SP_ITEM(obj); -+ if (!SP_IS_GROUP(item) || SP_GROUP(item)->layerMode() != SPGroup::LAYER) -+ { -+ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); -+ _desktop->selection->add(item); -+ } -+ else -+ { -+ if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item); -+ } -+ } -+ } -+ -+ DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, -+ _("Moved objects")); -+} -+ -+/** -+ * Fires the action verb -+ */ -+void ObjectsPanel::_fireAction( unsigned int code ) -+{ -+ if ( _desktop ) { -+ Verb *verb = Verb::get( code ); -+ if ( verb ) { -+ SPAction *action = verb->get_action(_desktop); -+ if ( action ) { -+ sp_action_perform( action, NULL ); -+ } -+ } -+ } -+} -+ -+/** -+ * Executes the given button action during the idle time -+ */ -+void ObjectsPanel::_takeAction( int val ) -+{ -+ if ( !_pending ) { -+ _pending = new InternalUIBounce(); -+ _pending->_actionCode = val; -+ Glib::signal_timeout().connect( sigc::mem_fun(*this, &ObjectsPanel::_executeAction), 0 ); -+ } -+} -+ -+/** -+ * Executes the pending button action -+ */ -+bool ObjectsPanel::_executeAction() -+{ -+ // Make sure selected layer hasn't changed since the action was triggered -+ if ( _document && _pending) -+ { -+ int val = _pending->_actionCode; -+// SPObject* target = _pending->_target; -+ -+ switch ( val ) { -+ case BUTTON_NEW: -+ { -+ _fireAction( SP_VERB_LAYER_NEW ); -+ } -+ break; -+ case BUTTON_RENAME: -+ { -+ _fireAction( SP_VERB_LAYER_RENAME ); -+ } -+ break; -+ case BUTTON_TOP: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_TO_TOP ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_TO_FRONT); -+ } -+ } -+ break; -+ case BUTTON_BOTTOM: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_TO_BOTTOM ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_TO_BACK); -+ } -+ } -+ break; -+ case BUTTON_UP: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_RAISE ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_RAISE ); -+ } -+ } -+ break; -+ case BUTTON_DOWN: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_LOWER ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_SELECTION_LOWER ); -+ } -+ } -+ break; -+ case BUTTON_DUPLICATE: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_DUPLICATE ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_EDIT_DUPLICATE ); -+ } -+ } -+ break; -+ case BUTTON_DELETE: -+ { -+ if (_desktop->selection->isEmpty()) -+ { -+ _fireAction( SP_VERB_LAYER_DELETE ); -+ } -+ else -+ { -+ _fireAction( SP_VERB_EDIT_DELETE ); -+ } -+ } -+ break; -+ case BUTTON_SOLO: -+ { -+ _fireAction( SP_VERB_LAYER_SOLO ); -+ } -+ break; -+ case BUTTON_SHOW_ALL: -+ { -+ _fireAction( SP_VERB_LAYER_SHOW_ALL ); -+ } -+ break; -+ case BUTTON_HIDE_ALL: -+ { -+ _fireAction( SP_VERB_LAYER_HIDE_ALL ); -+ } -+ break; -+ case BUTTON_LOCK_OTHERS: -+ { -+ _fireAction( SP_VERB_LAYER_LOCK_OTHERS ); -+ } -+ break; -+ case BUTTON_LOCK_ALL: -+ { -+ _fireAction( SP_VERB_LAYER_LOCK_ALL ); -+ } -+ break; -+ case BUTTON_UNLOCK_ALL: -+ { -+ _fireAction( SP_VERB_LAYER_UNLOCK_ALL ); -+ } -+ break; -+ case BUTTON_SETCLIP: -+ { -+ _fireAction( SP_VERB_OBJECT_SET_CLIPPATH ); -+ } -+ break; -+ case BUTTON_UNSETCLIP: -+ { -+ _fireAction( SP_VERB_OBJECT_UNSET_CLIPPATH ); -+ } -+ break; -+ case BUTTON_SETMASK: -+ { -+ _fireAction( SP_VERB_OBJECT_SET_MASK ); -+ } -+ break; -+ case BUTTON_UNSETMASK: -+ { -+ _fireAction( SP_VERB_OBJECT_UNSET_MASK ); -+ } -+ break; -+ case BUTTON_GROUP: -+ { -+ _fireAction( SP_VERB_SELECTION_GROUP ); -+ } -+ break; -+ case BUTTON_UNGROUP: -+ { -+ _fireAction( SP_VERB_SELECTION_UNGROUP ); -+ } -+ break; -+ case BUTTON_COLLAPSE_ALL: -+ { -+ for (SPObject* obj = _document->getRoot()->firstChild(); obj != NULL; obj = obj->next) { -+ if (SP_IS_GROUP(obj)) { -+ _setCollapsed(SP_GROUP(obj)); -+ } -+ } -+ _objectsChanged(_document->getRoot()); -+ } -+ break; -+ case DRAGNDROP: -+ { -+ _doTreeMove( ); -+ } -+ break; -+ } -+ -+ delete _pending; -+ _pending = 0; -+ } -+ -+ return false; -+} -+ -+/** -+ * Handles an unsuccessful item label edit (escape pressed, etc.) -+ */ -+void ObjectsPanel::_handleEditingCancelled() -+{ -+ _text_renderer->property_editable() = false; -+} -+ -+/** -+ * Handle a successful item label edit -+ * @param path Tree path of the item currently being edited -+ * @param new_text New label text -+ */ -+void ObjectsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) -+{ -+ Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); -+ Gtk::TreeModel::Row row = *iter; -+ -+ _renameObject(row, new_text); -+ _text_renderer->property_editable() = false; -+} -+ -+/** -+ * Renames an item in the tree -+ * @param row Tree row -+ * @param name New label to give to the item -+ */ -+void ObjectsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) -+{ -+ if ( row && _desktop) { -+ SPItem* item = row[_model->_colObject]; -+ if ( item ) { -+ gchar const* oldLabel = item->label(); -+ if ( !name.empty() && (!oldLabel || name != oldLabel) ) { -+ item->setLabel(name.c_str()); -+ DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, -+ _("Rename object")); -+ } -+ } -+ } -+} -+ -+/** -+ * A row selection function used by the tree that doesn't allow any new items to be selected. -+ * Currently, this is used to allow multi-item drag & drop. -+ */ -+bool ObjectsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool /*currentlySelected*/ ) -+{ -+ return false; -+} -+ -+/** -+ * Default row selection function taken from the layers dialog -+ */ -+bool ObjectsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) -+{ -+ bool val = true; -+ if ( !currentlySelected && _toggleEvent ) -+ { -+ GdkEvent* event = gtk_get_current_event(); -+ if ( event ) { -+ // (keep these checks separate, so we know when to call gdk_event_free() -+ if ( event->type == GDK_BUTTON_PRESS ) { -+ GdkEventButton const* target = reinterpret_cast(_toggleEvent); -+ GdkEventButton const* evtb = reinterpret_cast(event); -+ -+ if ( (evtb->window == target->window) -+ && (evtb->send_event == target->send_event) -+ && (evtb->time == target->time) -+ && (evtb->state == target->state) -+ ) -+ { -+ // Ooooh! It's a magic one -+ val = false; -+ } -+ } -+ gdk_event_free(event); -+ } -+ } -+ return val; -+} -+ -+/** -+ * Sets a group to be collapsed and recursively collapses its children -+ * @param group The group to collapse -+ */ -+void ObjectsPanel::_setCollapsed(SPGroup * group) -+{ -+ group->setExpanded(false); -+ group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ for (SPObject *iter = group->children; iter != NULL; iter = iter->next) -+ { -+ if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); -+ } -+} -+ -+/** -+ * Sets a group to be expanded or collapsed -+ * @param iter Current tree item -+ * @param isexpanded Whether to expand or collapse -+ */ -+void ObjectsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ -+ SPItem* item = row[_model->_colObject]; -+ if (item && SP_IS_GROUP(item)) -+ { -+ if (isexpanded) -+ { -+ //If we're expanding, simply perform the expansion -+ SP_GROUP(item)->setExpanded(isexpanded); -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+ else -+ { -+ //If we're collapsing, we need to recursively collapse, so call our helper function -+ _setCollapsed(SP_GROUP(item)); -+ } -+ } -+} -+ -+/** -+ * Callback for when the highlight color is changed -+ * @param csel Color selector -+ * @param cp Objects panel -+ */ -+void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject * cp) -+{ -+ SPColor color; -+ float alpha = 0; -+ csel->base->getColorAlpha(color, alpha); -+ guint32 rgba = color.toRGBA32( alpha ); -+ -+ ObjectsPanel *ptr = reinterpret_cast(cp); -+ -+ //Set the highlight color for all items in the _highlight_target (all selected items) -+ for (std::vector::iterator iter = ptr->_highlight_target.begin(); iter != ptr->_highlight_target.end(); ++iter) -+ { -+ SPItem * target = *iter; -+ target->setHighlightColor(rgba); -+ target->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+ DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_OBJECTS, _("Set object highlight color")); -+} -+ -+/** -+ * Callback for when the opacity value is changed -+ */ -+void ObjectsPanel::_opacityValueChanged() -+{ -+ _blockCompositeUpdate = true; -+ _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &ObjectsPanel::_opacityChangedIter)); -+ DocumentUndo::maybeDone(_document, "opacity", SP_VERB_DIALOG_OBJECTS, _("Set object opacity")); -+ _blockCompositeUpdate = false; -+} -+ -+/** -+ * Change the opacity of the selected items in the tree -+ * @param iter Current tree item -+ */ -+void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ item->style->opacity.set = TRUE; -+ item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment.get_value() / _opacity_adjustment.get_upper()); -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+} -+ -+/** -+ * Callback for when the blend mode is changed -+ */ -+void ObjectsPanel::_blendValueChanged() -+{ -+ _blockCompositeUpdate = true; -+ const Glib::ustring blendmode = _fe_cb.get_blend_mode(); -+ -+ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blendChangedIter), blendmode)); -+ DocumentUndo::done(_document, SP_VERB_DIALOG_OBJECTS, _("Set object blend mode")); -+ _blockCompositeUpdate = false; -+} -+ -+/** -+ * Sets the blend mode of the selected tree items -+ * @param iter Current tree item -+ * @param blendmode Blend mode to set -+ */ -+void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ //Since blur and blend are both filters, we need to set both at the same time -+ SPStyle *style = item->style; -+ g_assert(style != NULL); -+ -+ if (blendmode != "normal") { -+ gdouble radius = 0; -+ if (item->style->getFilter()) { -+ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { -+ if (SP_IS_GAUSSIANBLUR(primitive)) { -+ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); -+ if (bbox) { -+ radius = SP_GAUSSIANBLUR(primitive)->stdDeviation.getNumber(); -+ } -+ } -+ } -+ } -+ SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); -+ sp_style_set_property_url(item, "filter", filter, false); -+ } else { -+ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { -+ if (SP_IS_FEBLEND(primitive)) { -+ primitive->deleteObject(); -+ break; -+ } -+ } -+ if (!item->style->getFilter()->children) { -+ remove_filter(item, false); -+ } -+ } -+ -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+} -+ -+/** -+ * Callback for when the blur value has changed -+ */ -+void ObjectsPanel::_blurValueChanged() -+{ -+ _blockCompositeUpdate = true; -+ _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blurChangedIter), _fe_blur.get_blur_value())); -+ DocumentUndo::maybeDone(_document, "blur", SP_VERB_DIALOG_OBJECTS, _("Set object blur")); -+ _blockCompositeUpdate = false; -+} -+ -+/** -+ * Sets the blur value for the selected items in the tree -+ * @param iter Current tree item -+ * @param blur Blur value to set -+ */ -+void ObjectsPanel::_blurChangedIter(const Gtk::TreeIter& iter, double blur) -+{ -+ Gtk::TreeModel::Row row = *iter; -+ SPItem* item = row[_model->_colObject]; -+ if (item) -+ { -+ //Since blur and blend are both filters, we need to set both at the same time -+ SPStyle *style = item->style; -+ if (style) { -+ Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); -+ double radius; -+ if (bbox) { -+ double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? -+ radius = blur * perimeter / 400; -+ } else { -+ radius = 0; -+ } -+ -+ if (radius != 0) { -+ SPFilter *filter = modify_filter_gaussian_blur_from_item(_document, item, radius); -+ sp_style_set_property_url(item, "filter", filter, false); -+ } else if (item->style->filter.set && item->style->getFilter()) { -+ for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { -+ if (SP_IS_GAUSSIANBLUR(primitive)) { -+ primitive->deleteObject(); -+ break; -+ } -+ } -+ if (!item->style->getFilter()->children) { -+ remove_filter(item, false); -+ } -+ } -+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); -+ } -+ } -+} -+ -+/** -+ * Constructor -+ */ -+ObjectsPanel::ObjectsPanel() : -+ UI::Widget::Panel("", "/dialogs/objects", SP_VERB_DIALOG_OBJECTS), -+ _rootWatcher(0), -+ _deskTrack(), -+ _desktop(0), -+ _document(0), -+ _model(0), -+ _pending(0), -+ _toggleEvent(0), -+ _defer_target(), -+ _composite_vbox(false, 0), -+ _opacity_vbox(false, 0), -+ _opacity_label(_("Opacity:")), -+ _opacity_label_unit(_("%")), -+#if WITH_GTKMM_3_0 -+ _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)), -+#else -+ _opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0), -+#endif -+ _opacity_hscale(_opacity_adjustment), -+ _opacity_spin_button(_opacity_adjustment, 0.01, 1), -+ _fe_cb(UI::Widget::SimpleFilterModifier::BLEND), -+ _fe_vbox(false, 0), -+ _fe_alignment(1, 1, 1, 1), -+ _fe_blur(UI::Widget::SimpleFilterModifier::BLUR), -+ _blur_vbox(false, 0), -+ _blur_alignment(1, 1, 1, 1), -+ _colorSelectorDialog("dialogs.colorpickerwindow") -+{ -+ //Create the tree model and store -+ ModelColumns *zoop = new ModelColumns(); -+ _model = zoop; -+ -+ _store = Gtk::TreeStore::create( *zoop ); -+ -+ //Set up the tree -+ _tree.set_model( _store ); -+ _tree.set_headers_visible(false); -+ _tree.set_reorderable(true); -+ _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); -+ -+ //Create the column CellRenderers -+ //Visible -+ Inkscape::UI::Widget::ImageToggler *eyeRenderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( -+ INKSCAPE_ICON("object-visible"), INKSCAPE_ICON("object-hidden")) ); -+ int visibleColNum = _tree.append_column("vis", *eyeRenderer) - 1; -+ eyeRenderer->property_activatable() = true; -+ Gtk::TreeViewColumn* col = _tree.get_column(visibleColNum); -+ if ( col ) { -+ col->add_attribute( eyeRenderer->property_active(), _model->_colVisible ); -+ } -+ -+ //Locked -+ Inkscape::UI::Widget::ImageToggler * renderer = Gtk::manage( new Inkscape::UI::Widget::ImageToggler( -+ INKSCAPE_ICON("object-locked"), INKSCAPE_ICON("object-unlocked")) ); -+ int lockedColNum = _tree.append_column("lock", *renderer) - 1; -+ renderer->property_activatable() = true; -+ col = _tree.get_column(lockedColNum); -+ if ( col ) { -+ col->add_attribute( renderer->property_active(), _model->_colLocked ); -+ } -+ -+ //Type -+ Inkscape::UI::Widget::LayerTypeIcon * typeRenderer = Gtk::manage( new Inkscape::UI::Widget::LayerTypeIcon()); -+ int typeColNum = _tree.append_column("type", *typeRenderer) - 1; -+ typeRenderer->property_activatable() = true; -+ col = _tree.get_column(typeColNum); -+ if ( col ) { -+ col->add_attribute( typeRenderer->property_active(), _model->_colType ); -+ } -+ -+ //Clip/mask -+ Inkscape::UI::Widget::ClipMaskIcon * clipRenderer = Gtk::manage( new Inkscape::UI::Widget::ClipMaskIcon()); -+ int clipColNum = _tree.append_column("clipmask", *clipRenderer) - 1; -+ col = _tree.get_column(clipColNum); -+ if ( col ) { -+ col->add_attribute( clipRenderer->property_active(), _model->_colClipMask ); -+ } -+ -+ //Highlight -+ Inkscape::UI::Widget::HighlightPicker * highlightRenderer = Gtk::manage( new Inkscape::UI::Widget::HighlightPicker()); -+ int highlightColNum = _tree.append_column("highlight", *highlightRenderer) - 1; -+ col = _tree.get_column(highlightColNum); -+ if ( col ) { -+ col->add_attribute( highlightRenderer->property_active(), _model->_colHighlight ); -+ } -+ -+ //Label -+ _text_renderer = Gtk::manage(new Gtk::CellRendererText()); -+ int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; -+ _name_column = _tree.get_column(nameColNum); -+ _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); -+ -+ //Set the expander and search columns -+ _tree.set_expander_column( *_tree.get_column(nameColNum) ); -+ _tree.set_search_column(_model->_colLabel); -+ -+ //Set up the tree selection -+ _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); -+ _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &ObjectsPanel::_pushTreeSelectionToCurrent) ); -+ _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &ObjectsPanel::_rowSelectFunction) ); -+ -+ //Set up tree signals -+ _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); -+ _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleButtonEvent), false ); -+ _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleKeyEvent), false ); -+ _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleDragDrop), false); -+ _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), false)); -+ _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_setExpanded), true)); -+ -+ //Set up the label editing signals -+ _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEdited) ); -+ _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &ObjectsPanel::_handleEditingCancelled) ); -+ -+ //Set up the scroller window and pack the page -+ _scroller.add( _tree ); -+ _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); -+ _scroller.set_shadow_type(Gtk::SHADOW_IN); -+ Gtk::Requisition sreq; -+#if WITH_GTKMM_3_0 -+ Gtk::Requisition sreq_natural; -+ _scroller.get_preferred_size(sreq_natural, sreq); -+#else -+ sreq = _scroller.size_request(); -+#endif -+ int minHeight = 70; -+ if (sreq.height < minHeight) { -+ // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar -+ _scroller.set_size_request(sreq.width, minHeight); -+ } -+ -+ _page.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); -+ -+ //Set up the compositing items -+ //Blend mode filter effect -+ _composite_vbox.pack_start(_fe_vbox, false, false, 2); -+ _fe_alignment.set_padding(0, 0, 4, 0); -+ _fe_alignment.add(_fe_cb); -+ _fe_vbox.pack_start(_fe_alignment, false, false, 0); -+ _blendConnection = _fe_cb.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blendValueChanged)); -+ -+ //Blur filter effect -+ _composite_vbox.pack_start(_blur_vbox, false, false, 2); -+ _blur_alignment.set_padding(0, 0, 4, 0); -+ _blur_alignment.add(_fe_blur); -+ _blur_vbox.pack_start(_blur_alignment, false, false, 0); -+ _blurConnection = _fe_blur.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blurValueChanged)); -+ -+ //Opacity -+ _composite_vbox.pack_start(_opacity_vbox, false, false, 2); -+ _opacity_label.set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); -+ _opacity_hbox.pack_start(_opacity_label, false, false, 3); -+ _opacity_vbox.pack_start(_opacity_hbox, false, false, 0); -+ _opacity_hbox.pack_start(_opacity_hscale, true, true, 0); -+ _opacity_hbox.pack_start(_opacity_spin_button, false, false, 0); -+ _opacity_hbox.pack_start(_opacity_label_unit, false, false, 3); -+ _opacity_hscale.set_draw_value(false); -+#if WITH_GTKMM_3_0 -+ _opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); -+ _opacity_label.set_mnemonic_widget(_opacity_hscale); -+#else -+ _opacityConnection = _opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); -+ _opacity_label.set_mnemonic_widget(_opacity_hscale); -+#endif -+ -+ //Keep the labels aligned -+// GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); -+// gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj())); -+// gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj())); -+// gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_blur.get_blur_label()->gobj())); -+ -+ //Pack the compositing functions and the button row -+ _page.pack_end(_composite_vbox, Gtk::PACK_SHRINK); -+ _page.pack_end(_buttonsRow, Gtk::PACK_SHRINK); -+ -+ //Pack into the panel contents -+ _getContents()->pack_start(_page, Gtk::PACK_EXPAND_WIDGET); -+ -+ SPDesktop* targetDesktop = getDesktop(); -+ -+ //Set up the button row -+ Gtk::Button* btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_ADD, _("New Layer") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_NEW) ); -+ _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_REMOVE, _("Remove") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DELETE) ); -+ _watching.push_back( btn ); -+ _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_GOTO_BOTTOM, _("Move To Bottom") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_BOTTOM) ); -+ _watchingNonBottom.push_back( btn ); -+ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_GO_DOWN, _("Move Down") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DOWN) ); -+ _watchingNonBottom.push_back( btn ); -+ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_GO_UP, _("Move Up") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_UP) ); -+ _watchingNonTop.push_back( btn ); -+ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_GOTO_TOP, _("Move To Top") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_TOP) ); -+ _watchingNonTop.push_back( btn ); -+ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); -+ -+ btn = Gtk::manage( new Gtk::Button() ); -+ _styleButton( *btn, GTK_STOCK_UNINDENT, _("Collapse All") ); -+ btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_COLLAPSE_ALL) ); -+ _watchingNonBottom.push_back( btn ); -+ _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); -+ -+ _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); -+ _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); -+ -+ _watching.push_back(&_composite_vbox); -+ -+ //Set up the pop-up menu -+ // ------------------------------------------------------- -+ { -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_RENAME, 0, "Rename", (int)BUTTON_RENAME ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_EDIT_DUPLICATE, 0, "Duplicate", (int)BUTTON_DUPLICATE ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_NEW, 0, "New", (int)BUTTON_NEW ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SOLO, 0, "Solo", (int)BUTTON_SOLO ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_SHOW_ALL, 0, "Show All", (int)BUTTON_SHOW_ALL ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_HIDE_ALL, 0, "Hide All", (int)BUTTON_HIDE_ALL ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_OTHERS, 0, "Lock Others", (int)BUTTON_LOCK_OTHERS ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_LOCK_ALL, 0, "Lock All", (int)BUTTON_LOCK_ALL ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_LAYER_UNLOCK_ALL, 0, "Unlock All", (int)BUTTON_UNLOCK_ALL ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watchingNonTop.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_RAISE, GTK_STOCK_GO_UP, "Up", (int)BUTTON_UP ) ); -+ _watchingNonBottom.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_LOWER, GTK_STOCK_GO_DOWN, "Down", (int)BUTTON_DOWN ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_GROUP, 0, "Group", (int)BUTTON_GROUP ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_UNGROUP, 0, "Ungroup", (int)BUTTON_UNGROUP ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_CLIPPATH, 0, "Set Clip", (int)BUTTON_SETCLIP ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_CLIPPATH, 0, "Unset Clip", (int)BUTTON_UNSETCLIP ) ); -+ -+ _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); -+ -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_MASK, 0, "Set Mask", (int)BUTTON_SETMASK ) ); -+ _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_UNSET_MASK, 0, "Unset Mask", (int)BUTTON_UNSETMASK ) ); -+ -+ _popupMenu.show_all_children(); -+ } -+ // ------------------------------------------------------- -+ -+ //Set initial sensitivity of buttons -+ for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { -+ (*it)->set_sensitive( false ); -+ } -+ for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { -+ (*it)->set_sensitive( false ); -+ } -+ for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { -+ (*it)->set_sensitive( false ); -+ } -+ -+ //Set up the color selection dialog -+ GtkWidget *dlg = GTK_WIDGET(_colorSelectorDialog.gobj()); -+ sp_transientize(dlg); -+ -+ _colorSelectorDialog.hide(); -+ _colorSelectorDialog.set_title (_("Select Highlight Color")); -+ _colorSelectorDialog.set_border_width (4); -+ _colorSelectorDialog.property_modal() = true; -+ _colorSelector = SP_COLOR_SELECTOR(sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK)); -+ _colorSelectorDialog.get_vbox()->pack_start ( -+ *Glib::wrap(&_colorSelector->vbox), true, true, 0); -+ -+ g_signal_connect(G_OBJECT(_colorSelector), "dragged", -+ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); -+ g_signal_connect(G_OBJECT(_colorSelector), "released", -+ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); -+ g_signal_connect(G_OBJECT(_colorSelector), "changed", -+ G_CALLBACK(sp_highlight_picker_color_mod), (void *)this); -+ -+ gtk_widget_show(GTK_WIDGET(_colorSelector)); -+ -+ setDesktop( targetDesktop ); -+ -+ show_all_children(); -+ -+ //Connect the desktop changed connection -+ desktopChangeConn = _deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &ObjectsPanel::setDesktop) ); -+ _deskTrack.connect(GTK_WIDGET(gobj())); -+} -+ -+/** -+ * Destructor -+ */ -+ObjectsPanel::~ObjectsPanel() -+{ -+ //Close the highlight selection dialog -+ _colorSelectorDialog.hide(); -+ _colorSelector = NULL; -+ -+ //Set the desktop to null, which will disconnect all object watchers -+ setDesktop(NULL); -+ -+ if ( _model ) -+ { -+ delete _model; -+ _model = 0; -+ } -+ -+ if (_pending) { -+ delete _pending; -+ _pending = 0; -+ } -+ -+ if ( _toggleEvent ) -+ { -+ gdk_event_free( _toggleEvent ); -+ _toggleEvent = 0; -+ } -+ -+ desktopChangeConn.disconnect(); -+ _deskTrack.disconnect(); -+} -+ -+/** -+ * Sets the current document -+ */ -+void ObjectsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) -+{ -+ //Clear all object watchers -+ while (!_objectWatchers.empty()) -+ { -+ ObjectsPanel::ObjectWatcher *w = _objectWatchers.back(); -+ w->_repr->removeObserver(*w); -+ _objectWatchers.pop_back(); -+ delete w; -+ } -+ -+ //Delete the root watcher -+ if (_rootWatcher) -+ { -+ _rootWatcher->_repr->removeObserver(*_rootWatcher); -+ delete _rootWatcher; -+ _rootWatcher = NULL; -+ } -+ -+ _document = document; -+ -+ if (document && document->getRoot() && document->getRoot()->getRepr()) -+ { -+ //Create a new root watcher for the document and then call _objectsChanged to fill the tree -+ _rootWatcher = new ObjectsPanel::ObjectWatcher(this, document->getRoot()); -+ document->getRoot()->getRepr()->addObserver(*_rootWatcher); -+ _objectsChanged(document->getRoot()); -+ } -+} -+ -+/** -+ * Set the current panel desktop -+ */ -+void ObjectsPanel::setDesktop( SPDesktop* desktop ) -+{ -+ Panel::setDesktop(desktop); -+ -+ if ( desktop != _desktop ) { -+ _documentChangedConnection.disconnect(); -+ _selectionChangedConnection.disconnect(); -+ if ( _desktop ) { -+ _desktop = 0; -+ } -+ -+ _desktop = Panel::getDesktop(); -+ if ( _desktop ) { -+ //Connect desktop signals -+ _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &ObjectsPanel::setDocument)); -+ _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &ObjectsPanel::_objectsSelected)); -+ -+ setDocument(_desktop, _desktop->doc()); -+ } else { -+ setDocument(NULL, NULL); -+ } -+ } -+ _deskTrack.setBase(desktop); -+} -+} //namespace Dialogs -+} //namespace UI -+} //namespace Inkscape -+ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - -=== added file 'src/ui/dialog/objects.h' ---- src/ui/dialog/objects.h 1970-01-01 00:00:00 +0000 -+++ src/ui/dialog/objects.h 2013-03-17 13:42:01 +0000 -@@ -0,0 +1,255 @@ -+/* -+ * A simple dialog for objects UI. -+ * -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#ifndef SEEN_OBJECTS_PANEL_H -+#define SEEN_OBJECTS_PANEL_H -+ -+#include -+#include -+#include -+#include -+#include -+#include "ui/widget/spinbutton.h" -+#include "ui/widget/panel.h" -+#include "ui/widget/object-composite-settings.h" -+#include "desktop-tracker.h" -+#include "ui/widget/style-subject.h" -+#include "selection.h" -+#include "ui/widget/filter-effect-chooser.h" -+ -+class SPObject; -+class SPGroup; -+struct SPColorSelector; -+ -+namespace Inkscape { -+ -+namespace UI { -+namespace Dialog { -+ -+ -+/** -+ * A panel that displays objects. -+ */ -+class ObjectsPanel : public UI::Widget::Panel -+{ -+public: -+ ObjectsPanel(); -+ virtual ~ObjectsPanel(); -+ -+ static ObjectsPanel& getInstance(); -+ -+ void setDesktop( SPDesktop* desktop ); -+ void setDocument( SPDesktop* desktop, SPDocument* document); -+ -+private: -+ //Internal Classes: -+ class ModelColumns; -+ class InternalUIBounce; -+ class ObjectWatcher; -+ -+ //Connections, Watchers, Trackers: -+ -+ //Document root watcher -+ ObjectsPanel::ObjectWatcher* _rootWatcher; -+ -+ //All object watchers -+ std::vector _objectWatchers; -+ -+ //Connection for when the desktop changes -+ sigc::connection desktopChangeConn; -+ -+ //Connection for when the document changes -+ sigc::connection _documentChangedConnection; -+ -+ //Connection for when the active selection in the document changes -+ sigc::connection _selectionChangedConnection; -+ -+ //Connection for when the selection in the dialog changes -+ sigc::connection _selectedConnection; -+ -+ //Connections for when the opacity/blend/blur of the active selection in the document changes -+ sigc::connection _opacityConnection; -+ sigc::connection _blendConnection; -+ sigc::connection _blurConnection; -+ -+ //Desktop tracker for grabbing the desktop changed connection -+ DesktopTracker _deskTrack; -+ -+ //Members: -+ -+ //The current desktop -+ SPDesktop* _desktop; -+ -+ //The current document -+ SPDocument* _document; -+ -+ //Tree data model -+ ModelColumns* _model; -+ -+ //Prevents the composite controls from updating -+ bool _blockCompositeUpdate; -+ -+ // -+ InternalUIBounce* _pending; -+ -+ //Whether the drag & drop was dragged into an item -+ gboolean _dnd_into; -+ -+ //List of drag & drop source items -+ std::vector _dnd_source; -+ -+ //Drag & drop target item -+ SPItem* _dnd_target; -+ -+ //List of items to change the highlight on -+ std::vector _highlight_target; -+ -+ //GUI Members: -+ -+ GdkEvent* _toggleEvent; -+ -+ Gtk::TreeModel::Path _defer_target; -+ -+ Glib::RefPtr _store; -+ std::vector _watching; -+ std::vector _watchingNonTop; -+ std::vector _watchingNonBottom; -+ -+ Gtk::TreeView _tree; -+ Gtk::CellRendererText *_text_renderer; -+ Gtk::TreeView::Column *_name_column; -+#if WITH_GTKMM_3_0 -+ Gtk::Box _buttonsRow; -+ Gtk::Box _buttonsPrimary; -+ Gtk::Box _buttonsSecondary; -+#else -+ Gtk::HBox _buttonsRow; -+ Gtk::HBox _buttonsPrimary; -+ Gtk::HBox _buttonsSecondary; -+#endif -+ Gtk::ScrolledWindow _scroller; -+ Gtk::Menu _popupMenu; -+ Inkscape::UI::Widget::SpinButton _spinBtn; -+ Gtk::VBox _page; -+ -+ /* Composite Settings */ -+ Gtk::VBox _composite_vbox; -+ Gtk::VBox _opacity_vbox; -+ Gtk::HBox _opacity_hbox; -+ Gtk::Label _opacity_label; -+ Gtk::Label _opacity_label_unit; -+#if WITH_GTKMM_3_0 -+ Glib::RefPtr _opacity_adjustment; -+#else -+ Gtk::Adjustment _opacity_adjustment; -+#endif -+ Gtk::HScale _opacity_hscale; -+ Inkscape::UI::Widget::SpinButton _opacity_spin_button; -+ -+ Inkscape::UI::Widget::SimpleFilterModifier _fe_cb; -+ Gtk::VBox _fe_vbox; -+ Gtk::Alignment _fe_alignment; -+ Inkscape::UI::Widget::SimpleFilterModifier _fe_blur; -+ Gtk::VBox _blur_vbox; -+ Gtk::Alignment _blur_alignment; -+ -+ Gtk::Dialog _colorSelectorDialog; -+ SPColorSelector *_colorSelector; -+ -+ -+ //Methods: -+ -+ ObjectsPanel(ObjectsPanel const &); // no copy -+ ObjectsPanel &operator=(ObjectsPanel const &); // no assign -+ -+ void _styleButton( Gtk::Button& btn, char const* iconName, char const* tooltip ); -+ void _fireAction( unsigned int code ); -+ -+ Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); -+ -+ void _setVisibleIter( const Gtk::TreeModel::iterator& iter, const bool visible ); -+ void _setLockedIter( const Gtk::TreeModel::iterator& iter, const bool locked ); -+ -+ bool _handleButtonEvent(GdkEventButton *event); -+ bool _handleKeyEvent(GdkEventKey *event); -+ -+ void _storeHighlightTarget(const Gtk::TreeModel::iterator& iter); -+ void _storeDragSource(const Gtk::TreeModel::iterator& iter); -+ bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); -+ void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); -+ void _handleEditingCancelled(); -+ -+ void _doTreeMove(); -+ void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); -+ -+ void _pushTreeSelectionToCurrent(); -+ void _selected_row_callback( const Gtk::TreeModel::iterator& iter, bool *setOpacity ); -+ -+ void _checkTreeSelection(); -+ -+ void _takeAction( int val ); -+ bool _executeAction(); -+ -+ void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); -+ void _setCollapsed(SPGroup * group); -+ -+ bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); -+ bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); -+ -+ void _compositingChanged( const Gtk::TreeModel::iterator& iter, bool *setValues ); -+ void _updateComposite(); -+ void _setCompositingValues(SPItem *item); -+ -+ void _updateObject(SPObject *obj, bool recurse); -+ bool _checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj); -+ -+ void _objectsSelected(Selection *sel); -+ bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPItem* item, bool scrollto); -+ -+ void _objectsChanged(SPObject *obj); -+ void _addObject( SPObject* obj, Gtk::TreeModel::Row* parentRow ); -+ -+ void _opacityChangedIter(const Gtk::TreeIter& iter); -+ void _opacityValueChanged(); -+ -+ void _blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring blendmode); -+ void _blendValueChanged(); -+ -+ void _blurChangedIter(const Gtk::TreeIter& iter, double blur); -+ void _blurValueChanged(); -+ -+ -+ void setupDialog(const Glib::ustring &title); -+ -+ friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); -+ -+}; -+ -+ -+ -+} //namespace Dialogs -+} //namespace UI -+} //namespace Inkscape -+ -+ -+ -+#endif // SEEN_OBJECTS_PANEL_H -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - -=== modified file 'src/ui/tool/multi-path-manipulator.cpp' ---- src/ui/tool/multi-path-manipulator.cpp 2012-09-06 02:25:16 +0000 -+++ src/ui/tool/multi-path-manipulator.cpp 2013-03-19 00:31:09 +0000 -@@ -195,7 +195,7 @@ - ShapeRecord const &r = *i; - if (!SP_IS_PATH(r.item) && !IS_LIVEPATHEFFECT(r.item)) continue; - boost::shared_ptr newpm(new PathManipulator(*this, (SPPath*) r.item, -- r.edit_transform, _getOutlineColor(r.role), r.lpe_key)); -+ r.edit_transform, _getOutlineColor(r.role, r.item), r.lpe_key)); - newpm->showHandles(_show_handles); - // always show outlines for clips and masks - newpm->showOutline(_show_outline || r.role != SHAPE_ROLE_NORMAL); -@@ -834,7 +834,7 @@ - } - - /** Get an outline color based on the shape's role (normal, mask, LPE parameter, etc.). */ --guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role) -+guint32 MultiPathManipulator::_getOutlineColor(ShapeRole role, SPItem *item) - { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - switch(role) { -@@ -846,7 +846,7 @@ - return prefs->getColor("/tools/nodes/lpe_param_color", 0x009000ff); - case SHAPE_ROLE_NORMAL: - default: -- return prefs->getColor("/tools/nodes/outline_color", 0xff0000ff); -+ return item->highlight_color(); - } - } - - -=== modified file 'src/ui/tool/multi-path-manipulator.h' ---- src/ui/tool/multi-path-manipulator.h 2012-05-17 09:10:15 +0000 -+++ src/ui/tool/multi-path-manipulator.h 2013-03-19 00:31:16 +0000 -@@ -106,7 +106,7 @@ - void _commit(CommitEvent cps); - void _done(gchar const *reason, bool alert_LPE = false); - void _doneWithCleanup(gchar const *reason, bool alert_LPE = false); -- guint32 _getOutlineColor(ShapeRole role); -+ guint32 _getOutlineColor(ShapeRole role, SPItem *item); - - MapType _mmap; - public: - -=== modified file 'src/ui/tool/node-tool.cpp' ---- src/ui/tool/node-tool.cpp 2013-01-26 19:33:04 +0000 -+++ src/ui/tool/node-tool.cpp 2013-03-19 00:31:25 +0000 -@@ -488,7 +488,7 @@ - c->transform(over_item->i2dt_affine()); - SPCanvasItem *flash = sp_canvas_bpath_new(sp_desktop_tempgroup(desktop), c); - sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(flash), -- prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff), 1.0, -+ over_item->highlight_color(), 1.0, - SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); - sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(flash), 0, SP_WIND_RULE_NONZERO); - nt->flash_tempitem = desktop->add_temporary_canvasitem(flash, - -=== modified file 'src/ui/widget/Makefile_insert' ---- src/ui/widget/Makefile_insert 2013-01-08 12:06:44 +0000 -+++ src/ui/widget/Makefile_insert 2013-03-17 14:17:34 +0000 -@@ -4,6 +4,8 @@ - ui/widget/attr-widget.h \ - ui/widget/button.h \ - ui/widget/button.cpp \ -+ ui/widget/clipmaskicon.cpp \ -+ ui/widget/clipmaskicon.h \ - ui/widget/color-picker.cpp \ - ui/widget/color-picker.h \ - ui/widget/color-preview.cpp \ -@@ -23,6 +25,8 @@ - ui/widget/gimpspinscale.h \ - ui/widget/gimpcolorwheel.c \ - ui/widget/gimpcolorwheel.h \ -+ ui/widget/highlight-picker.cpp \ -+ ui/widget/highlight-picker.h \ - ui/widget/frame.cpp \ - ui/widget/frame.h \ - ui/widget/imageicon.cpp \ -@@ -33,6 +37,8 @@ - ui/widget/labelled.h \ - ui/widget/layer-selector.cpp \ - ui/widget/layer-selector.h \ -+ ui/widget/layertypeicon.cpp \ -+ ui/widget/layertypeicon.h \ - ui/widget/licensor.cpp \ - ui/widget/licensor.h \ - ui/widget/notebook-page.cpp \ - -=== added file 'src/ui/widget/clipmaskicon.cpp' ---- src/ui/widget/clipmaskicon.cpp 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/clipmaskicon.cpp 2013-03-14 23:36:37 +0000 -@@ -0,0 +1,177 @@ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+ -+#include "ui/widget/clipmaskicon.h" -+ -+#include -+ -+#include "widgets/icon.h" -+#include "widgets/toolbox.h" -+#include "ui/icon-names.h" -+#include "layertypeicon.h" -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+ClipMaskIcon::ClipMaskIcon() : -+ Glib::ObjectBase(typeid(ClipMaskIcon)), -+ Gtk::CellRendererPixbuf(), -+ _pixClipName(INKSCAPE_ICON("path-intersection")), -+ _pixInverseName(INKSCAPE_ICON("path-difference")), -+ _pixMaskName(INKSCAPE_ICON("mask-intersection")), -+ _property_active(*this, "active", 0), -+ _property_pixbuf_clip(*this, "pixbuf_on", Glib::RefPtr(0)), -+ _property_pixbuf_inverse(*this, "pixbuf_on", Glib::RefPtr(0)), -+ _property_pixbuf_mask(*this, "pixbuf_off", Glib::RefPtr(0)) -+{ -+ -+ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; -+ phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); -+ Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); -+ -+ if (!icon_theme->has_icon(_pixClipName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixClipName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ if (!icon_theme->has_icon(_pixInverseName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixInverseName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ if (!icon_theme->has_icon(_pixMaskName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixMaskName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ -+ if (icon_theme->has_icon(_pixClipName)) { -+ _property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0); -+ } -+ if (icon_theme->has_icon(_pixInverseName)) { -+ _property_pixbuf_inverse = icon_theme->load_icon(_pixInverseName, phys, (Gtk::IconLookupFlags)0); -+ } -+ if (icon_theme->has_icon(_pixMaskName)) { -+ _property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0); -+ } -+ -+ property_pixbuf() = Glib::RefPtr(0); -+} -+ -+ -+#if WITH_GTKMM_3_0 -+void ClipMaskIcon::get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); -+ -+ if (min_h) { -+ min_h += (min_h) >> 1; -+ } -+ -+ if (nat_h) { -+ nat_h += (nat_h) >> 1; -+ } -+} -+ -+void ClipMaskIcon::get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); -+ -+ if (min_w) { -+ min_w += (min_w) >> 1; -+ } -+ -+ if (nat_w) { -+ nat_w += (nat_w) >> 1; -+ } -+} -+#else -+void ClipMaskIcon::get_size_vfunc(Gtk::Widget& widget, -+ const Gdk::Rectangle* cell_area, -+ int* x_offset, -+ int* y_offset, -+ int* width, -+ int* height ) const -+{ -+ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); -+ -+ if ( width ) { -+ *width = phys;//+= (*width) >> 1; -+ } -+ if ( height ) { -+ *height =phys;//+= (*height) >> 1; -+ } -+} -+#endif -+ -+#if WITH_GTKMM_3_0 -+void ClipMaskIcon::render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ) -+#else -+void ClipMaskIcon::render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ) -+#endif -+{ -+ switch (_property_active.get_value()) -+ { -+ case 1: -+ property_pixbuf() = _property_pixbuf_clip; -+ break; -+ case 2: -+ property_pixbuf() = _property_pixbuf_mask; -+ break; -+ case 3: -+ property_pixbuf() = _property_pixbuf_inverse; -+ break; -+ default: -+ property_pixbuf() = Glib::RefPtr(0); -+ break; -+ } -+#if WITH_GTKMM_3_0 -+ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -+#else -+ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -+#endif -+} -+ -+bool -+ClipMaskIcon::activate_vfunc(GdkEvent* event, -+ Gtk::Widget& /*widget*/, -+ const Glib::ustring& path, -+ const Gdk::Rectangle& /*background_area*/, -+ const Gdk::Rectangle& /*cell_area*/, -+ Gtk::CellRendererState /*flags*/) -+{ -+ return false; -+} -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -+ -+ - -=== added file 'src/ui/widget/clipmaskicon.h' ---- src/ui/widget/clipmaskicon.h 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/clipmaskicon.h 2013-03-08 04:27:35 +0000 -@@ -0,0 +1,102 @@ -+#ifndef __UI_DIALOG_CLIPMASKICON_H__ -+#define __UI_DIALOG_CLIPMASKICON_H__ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#if HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include -+#include -+#include -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+class ClipMaskIcon : public Gtk::CellRendererPixbuf { -+public: -+ ClipMaskIcon(); -+ virtual ~ClipMaskIcon() {}; -+ -+ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } -+ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); -+ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); -+ -+protected: -+ -+#if WITH_GTKMM_3_0 -+ virtual void render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const; -+ -+ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const; -+#else -+ virtual void render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_size_vfunc( Gtk::Widget &widget, -+ Gdk::Rectangle const *cell_area, -+ int *x_offset, int *y_offset, int *width, int *height ) const; -+#endif -+ -+ virtual bool activate_vfunc(GdkEvent *event, -+ Gtk::Widget &widget, -+ const Glib::ustring &path, -+ const Gdk::Rectangle &background_area, -+ const Gdk::Rectangle &cell_area, -+ Gtk::CellRendererState flags); -+ -+ -+private: -+ int phys; -+ -+ Glib::ustring _pixClipName; -+ Glib::ustring _pixInverseName; -+ Glib::ustring _pixMaskName; -+ -+ Glib::Property _property_active; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_clip; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_inverse; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_mask; -+ -+}; -+ -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+ -+#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - -=== added file 'src/ui/widget/highlight-picker.cpp' ---- src/ui/widget/highlight-picker.cpp 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/highlight-picker.cpp 2013-03-08 04:27:35 +0000 -@@ -0,0 +1,176 @@ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#include -+#include "display/cairo-utils.h" -+ -+#include -+ -+#include "highlight-picker.h" -+#include "widgets/icon.h" -+#include "widgets/toolbox.h" -+#include "ui/icon-names.h" -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+HighlightPicker::HighlightPicker() : -+ Glib::ObjectBase(typeid(HighlightPicker)), -+ Gtk::CellRendererPixbuf(), -+ _property_active(*this, "active", 0) -+{ -+ -+ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; -+} -+ -+HighlightPicker::~HighlightPicker() -+{ -+} -+ -+ -+#if WITH_GTKMM_3_0 -+void HighlightPicker::get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); -+ -+ if (min_h) { -+ min_h += (min_h) >> 1; -+ } -+ -+ if (nat_h) { -+ nat_h += (nat_h) >> 1; -+ } -+} -+ -+void HighlightPicker::get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); -+ -+ if (min_w) { -+ min_w += (min_w) >> 1; -+ } -+ -+ if (nat_w) { -+ nat_w += (nat_w) >> 1; -+ } -+} -+#else -+void HighlightPicker::get_size_vfunc(Gtk::Widget& widget, -+ const Gdk::Rectangle* cell_area, -+ int* x_offset, -+ int* y_offset, -+ int* width, -+ int* height ) const -+{ -+ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); -+ -+ if ( width ) { -+ *width = 10;//+= (*width) >> 1; -+ } -+ if ( height ) { -+ *height = 20; //cell_area ? cell_area->get_height() / 2 : 50; //+= (*height) >> 1; -+ } -+} -+#endif -+ -+#if WITH_GTKMM_3_0 -+void HighlightPicker::render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ) -+#else -+void HighlightPicker::render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ) -+#endif -+{ -+ GdkRectangle carea; -+ -+ cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 10, 20); -+ cairo_t *ct = cairo_create(s); -+ -+ /* Transparent area */ -+ carea.x = 0; -+ carea.y = 0; -+ carea.width = 10; -+ carea.height = 20; -+ -+ cairo_pattern_t *checkers = ink_cairo_pattern_create_checkerboard(); -+ -+ cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height / 2); -+ cairo_set_source(ct, checkers); -+ cairo_fill_preserve(ct); -+ ink_cairo_set_source_rgba32(ct, _property_active.get_value()); -+ cairo_fill(ct); -+ -+ cairo_pattern_destroy(checkers); -+ -+ cairo_rectangle(ct, carea.x, carea.y + carea.height / 2, carea.width, carea.height / 2); -+ ink_cairo_set_source_rgba32(ct, _property_active.get_value() | 0x000000ff); -+ cairo_fill(ct); -+ -+ cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height); -+ ink_cairo_set_source_rgba32(ct, 0x333333ff); -+ cairo_set_line_width(ct, 2); -+ cairo_stroke(ct); -+ -+ cairo_destroy(ct); -+ cairo_surface_flush(s); -+ -+ GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s), -+ GDK_COLORSPACE_RGB, TRUE, 8, -+ 10, 20, cairo_image_surface_get_stride(s), -+ ink_cairo_pixbuf_cleanup, s); -+ convert_pixbuf_argb32_to_normal(pixbuf); -+ -+ property_pixbuf() = Glib::wrap(pixbuf); -+#if WITH_GTKMM_3_0 -+ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -+#else -+ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -+#endif -+} -+ -+bool -+HighlightPicker::activate_vfunc(GdkEvent* event, -+ Gtk::Widget& /*widget*/, -+ const Glib::ustring& path, -+ const Gdk::Rectangle& /*background_area*/, -+ const Gdk::Rectangle& /*cell_area*/, -+ Gtk::CellRendererState /*flags*/) -+{ -+ return false; -+} -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -+ -+ - -=== added file 'src/ui/widget/highlight-picker.h' ---- src/ui/widget/highlight-picker.h 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/highlight-picker.h 2013-03-08 04:27:35 +0000 -@@ -0,0 +1,90 @@ -+#ifndef __UI_DIALOG_HIGHLIGHT_PICKER_H__ -+#define __UI_DIALOG_HIGHLIGHT_PICKER_H__ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#if HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include -+#include -+#include -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+class HighlightPicker : public Gtk::CellRendererPixbuf { -+public: -+ HighlightPicker(); -+ virtual ~HighlightPicker(); -+ -+ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } -+ -+protected: -+ -+#if WITH_GTKMM_3_0 -+ virtual void render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const; -+ -+ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const; -+#else -+ virtual void render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_size_vfunc( Gtk::Widget &widget, -+ Gdk::Rectangle const *cell_area, -+ int *x_offset, int *y_offset, int *width, int *height ) const; -+#endif -+ -+ virtual bool activate_vfunc(GdkEvent *event, -+ Gtk::Widget &widget, -+ const Glib::ustring &path, -+ const Gdk::Rectangle &background_area, -+ const Gdk::Rectangle &cell_area, -+ Gtk::CellRendererState flags); -+ -+private: -+ -+ Glib::Property _property_active; -+}; -+ -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+ -+#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - -=== added file 'src/ui/widget/layertypeicon.cpp' ---- src/ui/widget/layertypeicon.cpp 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/layertypeicon.cpp 2013-03-08 04:27:35 +0000 -@@ -0,0 +1,167 @@ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+ -+#include "ui/widget/layertypeicon.h" -+ -+#include -+ -+#include "widgets/icon.h" -+#include "widgets/toolbox.h" -+#include "ui/icon-names.h" -+#include "layertypeicon.h" -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+LayerTypeIcon::LayerTypeIcon() : -+ Glib::ObjectBase(typeid(LayerTypeIcon)), -+ Gtk::CellRendererPixbuf(), -+ _pixLayerName(INKSCAPE_ICON("dialog-layers")), -+ _pixGroupName(INKSCAPE_ICON("layer-duplicate")), -+ _pixPathName(INKSCAPE_ICON("layer-rename")), -+ _property_active(*this, "active", false), -+ _property_activatable(*this, "activatable", true), -+ _property_pixbuf_layer(*this, "pixbuf_on", Glib::RefPtr(0)), -+ _property_pixbuf_group(*this, "pixbuf_off", Glib::RefPtr(0)), -+ _property_pixbuf_path(*this, "pixbuf_off", Glib::RefPtr(0)) -+{ -+ -+ property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; -+ int phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); -+ Glib::RefPtr icon_theme = Gtk::IconTheme::get_default(); -+ -+ if (!icon_theme->has_icon(_pixLayerName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixLayerName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ if (!icon_theme->has_icon(_pixGroupName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixGroupName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ if (!icon_theme->has_icon(_pixPathName)) { -+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixPathName.data()), Inkscape::ICON_SIZE_DECORATION ); -+ } -+ -+ if (icon_theme->has_icon(_pixLayerName)) { -+ _property_pixbuf_layer = icon_theme->load_icon(_pixLayerName, phys, (Gtk::IconLookupFlags)0); -+ } -+ if (icon_theme->has_icon(_pixGroupName)) { -+ _property_pixbuf_group = icon_theme->load_icon(_pixGroupName, phys, (Gtk::IconLookupFlags)0); -+ } -+ if (icon_theme->has_icon(_pixPathName)) { -+ _property_pixbuf_path = icon_theme->load_icon(_pixPathName, phys, (Gtk::IconLookupFlags)0); -+ } -+ -+ property_pixbuf() = _property_pixbuf_path.get_value(); -+} -+ -+ -+#if WITH_GTKMM_3_0 -+void LayerTypeIcon::get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_height_vfunc(widget, min_h, nat_h); -+ -+ if (min_h) { -+ min_h += (min_h) >> 1; -+ } -+ -+ if (nat_h) { -+ nat_h += (nat_h) >> 1; -+ } -+} -+ -+void LayerTypeIcon::get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const -+{ -+ Gtk::CellRendererPixbuf::get_preferred_width_vfunc(widget, min_w, nat_w); -+ -+ if (min_w) { -+ min_w += (min_w) >> 1; -+ } -+ -+ if (nat_w) { -+ nat_w += (nat_w) >> 1; -+ } -+} -+#else -+void LayerTypeIcon::get_size_vfunc(Gtk::Widget& widget, -+ const Gdk::Rectangle* cell_area, -+ int* x_offset, -+ int* y_offset, -+ int* width, -+ int* height ) const -+{ -+ Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); -+ -+ if ( width ) { -+ *width += (*width) >> 1; -+ } -+ if ( height ) { -+ *height += (*height) >> 1; -+ } -+} -+#endif -+ -+#if WITH_GTKMM_3_0 -+void LayerTypeIcon::render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ) -+#else -+void LayerTypeIcon::render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ) -+#endif -+{ -+ property_pixbuf() = _property_active.get_value() == 1 ? _property_pixbuf_group : (_property_active.get_value() == 2 ? _property_pixbuf_layer : _property_pixbuf_path); -+#if WITH_GTKMM_3_0 -+ Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -+#else -+ Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -+#endif -+} -+ -+bool -+LayerTypeIcon::activate_vfunc(GdkEvent* event, -+ Gtk::Widget& /*widget*/, -+ const Glib::ustring& path, -+ const Gdk::Rectangle& /*background_area*/, -+ const Gdk::Rectangle& /*cell_area*/, -+ Gtk::CellRendererState /*flags*/) -+{ -+ _signal_pre_toggle.emit(event); -+ _signal_toggled.emit(path); -+ -+ return false; -+} -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -+ -+ - -=== added file 'src/ui/widget/layertypeicon.h' ---- src/ui/widget/layertypeicon.h 1970-01-01 00:00:00 +0000 -+++ src/ui/widget/layertypeicon.h 2013-03-08 04:27:35 +0000 -@@ -0,0 +1,108 @@ -+#ifndef __UI_DIALOG_LAYERTYPEICON_H__ -+#define __UI_DIALOG_LAYERTYPEICON_H__ -+/* -+ * Authors: -+ * Theodore Janeczko -+ * -+ * Copyright (C) Theodore Janeczko 2012 -+ * -+ * Released under GNU GPL, read the file 'COPYING' for more information -+ */ -+ -+#if HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include -+#include -+#include -+ -+namespace Inkscape { -+namespace UI { -+namespace Widget { -+ -+class LayerTypeIcon : public Gtk::CellRendererPixbuf { -+public: -+ LayerTypeIcon(); -+ virtual ~LayerTypeIcon() {}; -+ -+ sigc::signal signal_toggled() { return _signal_toggled;} -+ sigc::signal signal_pre_toggle() { return _signal_pre_toggle; } -+ -+ Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } -+ Glib::PropertyProxy property_activatable() { return _property_activatable.get_proxy(); } -+ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_on(); -+ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); -+ -+protected: -+ -+#if WITH_GTKMM_3_0 -+ virtual void render_vfunc( const Cairo::RefPtr& cr, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_preferred_width_vfunc(Gtk::Widget& widget, -+ int& min_w, -+ int& nat_w) const; -+ -+ virtual void get_preferred_height_vfunc(Gtk::Widget& widget, -+ int& min_h, -+ int& nat_h) const; -+#else -+ virtual void render_vfunc( const Glib::RefPtr& window, -+ Gtk::Widget& widget, -+ const Gdk::Rectangle& background_area, -+ const Gdk::Rectangle& cell_area, -+ const Gdk::Rectangle& expose_area, -+ Gtk::CellRendererState flags ); -+ -+ virtual void get_size_vfunc( Gtk::Widget &widget, -+ Gdk::Rectangle const *cell_area, -+ int *x_offset, int *y_offset, int *width, int *height ) const; -+#endif -+ -+ virtual bool activate_vfunc(GdkEvent *event, -+ Gtk::Widget &widget, -+ const Glib::ustring &path, -+ const Gdk::Rectangle &background_area, -+ const Gdk::Rectangle &cell_area, -+ Gtk::CellRendererState flags); -+ -+ -+private: -+ Glib::ustring _pixLayerName; -+ Glib::ustring _pixGroupName; -+ Glib::ustring _pixPathName; -+ -+ Glib::Property _property_active; -+ Glib::Property _property_activatable; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_layer; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_group; -+ Glib::Property< Glib::RefPtr > _property_pixbuf_path; -+ -+ sigc::signal _signal_toggled; -+ sigc::signal _signal_pre_toggle; -+ -+}; -+ -+ -+ -+} // namespace Widget -+} // namespace UI -+} // namespace Inkscape -+ -+ -+#endif /* __UI_DIALOG_IMAGETOGGLER_H__ */ -+ -+/* -+ Local Variables: -+ mode:c++ -+ c-file-style:"stroustrup" -+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) -+ indent-tabs-mode:nil -+ fill-column:99 -+ End: -+*/ -+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - -=== modified file 'src/verbs.cpp' ---- src/verbs.cpp 2013-03-04 17:21:11 +0000 -+++ src/verbs.cpp 2013-03-17 14:29:16 +0000 -@@ -1980,6 +1980,9 @@ - case SP_VERB_DIALOG_LAYERS: - dt->_dlg_mgr->showDialog("LayersPanel"); - break; -+ case SP_VERB_DIALOG_OBJECTS: -+ dt->_dlg_mgr->showDialog("ObjectsPanel"); -+ break; - case SP_VERB_DIALOG_LIVE_PATH_EFFECT: - dt->_dlg_mgr->showDialog("LivePathEffect"); - break; -@@ -2791,6 +2794,8 @@ - N_("Query information about extensions"), NULL), - new DialogVerb(SP_VERB_DIALOG_LAYERS, "DialogLayers", N_("Layer_s..."), - N_("View Layers"), INKSCAPE_ICON("dialog-layers")), -+ new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), -+ N_("View Objects"), INKSCAPE_ICON("dialog-layers")), - new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), - N_("Manage, edit, and apply path effects"), NULL), - new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."), - -=== modified file 'src/verbs.h' ---- src/verbs.h 2013-03-04 17:21:11 +0000 -+++ src/verbs.h 2013-03-17 14:28:15 +0000 -@@ -285,6 +285,7 @@ - SP_VERB_DIALOG_INPUT, - SP_VERB_DIALOG_EXTENSIONEDITOR, - SP_VERB_DIALOG_LAYERS, -+ SP_VERB_DIALOG_OBJECTS, - SP_VERB_DIALOG_LIVE_PATH_EFFECT, - SP_VERB_DIALOG_FILTER_EFFECTS, - SP_VERB_DIALOG_SVG_FONTS, - diff --git a/share/palettes/MLP/Makefile b/share/palettes/MLP/Makefile deleted file mode 100644 index 80a23cafd..000000000 --- a/share/palettes/MLP/Makefile +++ /dev/null @@ -1,524 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# share/palettes/MLP/Makefile. Generated from Makefile.in by configure. - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - - - -pkgdatadir = $(datadir)/inkscape -pkgincludedir = $(includedir)/inkscape -pkglibdir = $(libdir)/inkscape -pkglibexecdir = $(libexecdir)/inkscape -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = x86_64-unknown-linux-gnu -host_triplet = x86_64-unknown-linux-gnu -subdir = share/palettes/MLP -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/m4/ac_define_dir.m4 \ - $(top_srcdir)/m4/relaytool.m4 \ - $(top_srcdir)/m4/ink_bzr_snapshot_build.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(MLPdir)" -DATA = $(MLP_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /home/inkscape-diff/build-aux/missing --run aclocal-1.11 -ALL_LINGUAS = -AMTAR = ${SHELL} /home/inkscape-diff/build-aux/missing --run tar -AM_DEFAULT_VERBOSITY = 0 -AR = ar -AUTOCONF = ${SHELL} /home/inkscape-diff/build-aux/missing --run autoconf -AUTOHEADER = ${SHELL} /home/inkscape-diff/build-aux/missing --run autoheader -AUTOMAKE = ${SHELL} /home/inkscape-diff/build-aux/missing --run automake-1.11 -AWK = mawk -CAIRO_PDF_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -CAIRO_PDF_LIBS = -lz -lcairo -CAIRO_SVG_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -CAIRO_SVG_LIBS = -lcairo -CARBON_LDFLAGS = -CC = gcc -CCAS = gcc -CCASDEPMODE = depmode=gcc3 -CCASFLAGS = -g -O2 -CCDEPMODE = depmode=gcc3 -CFLAGS = -Wno-pointer-sign -g -O2 -CPP = gcc -E -CPPFLAGS = -DG_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED -DGTK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -Werror=format-security -DGSEAL_ENABLE -DG_DISABLE_SINGLE_INCLUDES -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -CXX = g++ -CXXCPP = g++ -E -CXXDEPMODE = depmode=gcc3 -CXXFLAGS = -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -g -O2 -fopenmp -CYGPATH_W = echo -DATADIRNAME = share -DBUSSERVICEDIR = -DBUS_CFLAGS = -DBUS_LIBS = -DEFS = -DHAVE_CONFIG_H -DEPDIR = .deps -DLLTOOL = false -DSYMUTIL = -DUMPBIN = -ECHO_C = -ECHO_N = -n -ECHO_T = -EGREP = /bin/grep -E -EXEEXT = -EXIF_CFLAGS = -I/usr/include/libexif -EXIF_LIBS = -lexif -FGREP = /bin/grep -F -FREETYPE_CFLAGS = -I/usr/include/freetype2 -FREETYPE_CONFIG = /usr/bin/freetype-config -FREETYPE_LIBS = -L/usr/lib/x86_64-linux-gnu -lfreetype -lz -GDL_3_6_CFLAGS = -GDL_3_6_LIBS = -GETTEXT_MACRO_VERSION = 0.17 -GETTEXT_PACKAGE = inkscape -GLIBMM_2_32_CFLAGS = -GLIBMM_2_32_LIBS = -GMSGFMT = /usr/bin/msgfmt -GMSGFMT_015 = /usr/bin/msgfmt -GNOME_VFS_CFLAGS = -pthread -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 -GNOME_VFS_LIBS = -pthread -lgnomevfs-2 -lgconf-2 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -GREP = /bin/grep -GTK_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -GTK_LIBS = -pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -IMAGEMAGICK_CFLAGS = -fopenmp -I/usr/include/ImageMagick -IMAGEMAGICK_LIBS = -lMagick++ -lMagickCore -INKSCAPE_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/libxml2 -INKSCAPE_DATADIR = /usr/local/share -INKSCAPE_LIBS = -pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread -lgc -lcairomm-1.0 -lcairo -lgiomm-2.4 -lgio-2.0 -lglibmm-2.4 -lgsl -lgslcblas -lm -lpng12 -lxslt -lxml2 -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lsigc-2.0 -lz -lxml2 -ldl -lgomp -lpopt -laspell -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM = ${INSTALL} -INSTALL_SCRIPT = ${INSTALL} -INSTALL_STRIP_PROGRAM = $(install_sh) -c -s -INTLLIBS = -INTLTOOL_EXTRACT = /usr/bin/intltool-extract -INTLTOOL_MERGE = /usr/bin/intltool-merge -INTLTOOL_PERL = /usr/bin/perl -INTLTOOL_UPDATE = /usr/bin/intltool-update -INTL_MACOSX_LIBS = -LCMS2_CFLAGS = -LCMS2_LIBS = -LCMS_CFLAGS = -LCMS_LIBS = -llcms -LD = /usr/bin/ld -m elf_x86_64 -LDFLAGS = -Wl,-z,relro -LIBCDR_CFLAGS = -LIBCDR_LIBS = -LIBICONV = -liconv -LIBINTL = -LIBOBJS = -LIBS = -ljpeg -llcms -lpoppler -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIBVISIO_CFLAGS = -LIBVISIO_LIBS = -LIBWPG01_CFLAGS = -LIBWPG01_LIBS = -LIBWPG02_CFLAGS = -I/usr/include/libwpg-0.2 -I/usr/include/libwpd-0.9 -LIBWPG02_LIBS = -lwpg-0.2 -lwpd-0.9 -lwpd-stream-0.9 -LIBWPG_CFLAGS = -I/usr/include/libwpg-0.2 -I/usr/include/libwpd-0.9 -LIBWPG_LIBS = -lwpg-0.2 -lwpd-0.9 -lwpd-stream-0.9 -LIPO = -LN_S = ln -s -LTLIBICONV = -liconv -LTLIBINTL = -LTLIBOBJS = -MAKEINFO = ${SHELL} /home/inkscape-diff/build-aux/missing --run makeinfo -MANIFEST_TOOL = : -MKDIR_P = /bin/mkdir -p -MSGFMT = /usr/bin/msgfmt -MSGFMT_015 = /usr/bin/msgfmt -MSGMERGE = /usr/bin/msgmerge -NM = /usr/bin/nm -B -NMEDIT = -OBJDUMP = objdump -OBJEXT = o -OPENMP_CXXFLAGS = -fopenmp -OTOOL = -OTOOL64 = -PACKAGE = inkscape -PACKAGE_BUGREPORT = http://bugs.launchpad.net/inkscape/+filebug -PACKAGE_LOCALE_DIR = /usr/local/share/locale -PACKAGE_NAME = inkscape -PACKAGE_STRING = inkscape 0.48+devel -PACKAGE_TARNAME = inkscape -PACKAGE_URL = http://inkscape.org/ -PACKAGE_VERSION = 0.48+devel -PANGO_USES_DEPRECATED_GLIB_SYMBOLS_CFLAGS = -PANGO_USES_DEPRECATED_GLIB_SYMBOLS_LIBS = -PATH_SEPARATOR = : -PKG_CONFIG = /usr/bin/pkg-config -PKG_CONFIG_LIBDIR = -PKG_CONFIG_PATH = -POPPLER_CAIRO_CFLAGS = -pthread -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/poppler -POPPLER_CAIRO_LIBS = -lpoppler -lcairo -POPPLER_CFLAGS = -I/usr/include/poppler -POPPLER_GFXFONT_CFLAGS = -I/usr/include/poppler -POPPLER_GFXFONT_LIBS = -lpoppler -POPPLER_GLIB_CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/cairo -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/pango-1.0 -I/usr/include/poppler/glib -I/usr/include/poppler -POPPLER_GLIB_LIBS = -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -POPPLER_LIBS = -lpoppler -pthread -lpoppler-glib -lgdk-x11-2.0 -lpoppler -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -POPPLER_NEWERRORAPI_CFLAGS = -POPPLER_NEWERRORAPI_LIBS = -POSUB = po -POW_LIB = -RANLIB = ranlib -SED = /bin/sed -SET_MAKE = -SHELL = /bin/bash -STRIP = strip -USE_NLS = yes -VERSION = 0.48+devel -WIN32_CFLAGS = -X11_CFLAGS = -X11_LIBS = -lX11 -XGETTEXT = /usr/bin/xgettext -XGETTEXT_015 = /usr/bin/xgettext -XGETTEXT_EXTRA_OPTIONS = -abs_builddir = /home/inkscape-diff/share/palettes/MLP -abs_srcdir = /home/inkscape-diff/share/palettes/MLP -abs_top_builddir = /home/inkscape-diff -abs_top_srcdir = /home/inkscape-diff -ac_ct_AR = ar -ac_ct_CC = gcc -ac_ct_CXX = g++ -ac_ct_DUMPBIN = -am__include = include -am__leading_dot = . -am__quote = -am__tar = tar --format=posix -chf - "$$tardir" -am__untar = tar -xf - -bindir = ${exec_prefix}/bin -build = x86_64-unknown-linux-gnu -build_alias = -build_cpu = x86_64 -build_os = linux-gnu -build_vendor = unknown -builddir = . -datadir = ${datarootdir} -datarootdir = ${prefix}/share -docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} -dvidir = ${docdir} -exec_prefix = ${prefix} -host = x86_64-unknown-linux-gnu -host_alias = -host_cpu = x86_64 -host_os = linux-gnu -host_vendor = unknown -htmldir = ${docdir} -includedir = ${prefix}/include -infodir = ${datarootdir}/info -install_sh = ${SHELL} /home/inkscape-diff/build-aux/install-sh -libdir = ${exec_prefix}/lib -libexecdir = ${exec_prefix}/libexec -localedir = ${datarootdir}/locale -localstatedir = ${prefix}/var -mandir = ${datarootdir}/man -mkdir_p = /bin/mkdir -p -oldincludedir = /usr/include -pdfdir = ${docdir} -prefix = /usr/local -program_transform_name = s,x,x, -psdir = ${docdir} -sbindir = ${exec_prefix}/sbin -sharedstatedir = ${prefix}/com -srcdir = . -sysconfdir = ${prefix}/etc -target_alias = -top_build_prefix = ../../../ -top_builddir = ../../.. -top_srcdir = ../../.. -MLPdir = $(datadir)/inkscape/palettes/MLP -MLP_DATA = \ - All.gpl \ - Applejack.gpl \ - Daisy.gpl \ - Fluttershy.gpl \ - Lily.gpl \ - Pinkie.gpl \ - Rainbow-Dash.gpl \ - Rarity.gpl \ - Roseluck.gpl \ - Silver-Rains.gpl \ - Spike.gpl \ - Twilight-Sparkle.gpl - -EXTRA_DIST = $(MLP_DATA) -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign share/palettes/MLP/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign share/palettes/MLP/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-MLPDATA: $(MLP_DATA) - @$(NORMAL_INSTALL) - test -z "$(MLPdir)" || $(MKDIR_P) "$(DESTDIR)$(MLPdir)" - @list='$(MLP_DATA)'; test -n "$(MLPdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(MLPdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(MLPdir)" || exit $$?; \ - done - -uninstall-MLPDATA: - @$(NORMAL_UNINSTALL) - @list='$(MLP_DATA)'; test -n "$(MLPdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(MLPdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(MLPdir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(MLPdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-MLPDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-MLPDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-MLPDATA \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-MLPDATA uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index ceda27885..c3889db46 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -2102,7 +2102,7 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath, bool showLabels) : _insideV.pack_start(_insideH, Gtk::PACK_SHRINK); _scroller.add(_insideV); } else { - _scroller.property_height_request() = 45; + _scroller.property_height_request() = 20; _scroller.add(_insideH); } -- cgit v1.2.3 From c3edf2beebfdf0cbb505d2accbddc4fec17dff7d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 6 Mar 2014 21:05:19 -0500 Subject: Start cleanup for merge into trunk (bzr r13090.1.20) --- configure.ac | 1 - share/palettes/MLP/All.gpl | 10 - share/palettes/MLP/Applejack.gpl | 18 - share/palettes/MLP/Daisy.gpl | 16 - share/palettes/MLP/Fluttershy.gpl | 15 - share/palettes/MLP/Lily.gpl | 18 - share/palettes/MLP/Makefile.am | 18 - share/palettes/MLP/Pinkie.gpl | 15 - share/palettes/MLP/Rainbow-Dash.gpl | 23 - share/palettes/MLP/Rarity.gpl | 18 - share/palettes/MLP/Roseluck.gpl | 21 - share/palettes/MLP/Silver-Rains.gpl | 17 - share/palettes/MLP/Spike.gpl | 17 - share/palettes/MLP/Twilight-Sparkle.gpl | 17 - share/palettes/Makefile.am | 1 - src/live_effects/effect.cpp | 8 +- src/live_effects/lpe-fill-between-many.cpp | 3 +- src/live_effects/lpe-jointype.cpp | 5 +- src/live_effects/parameter/originalpatharray.cpp | 12 +- .../parameter/powerstrokepointarray.cpp | 6 +- src/live_effects/parameter/transformedpoint.cpp | 4 +- src/sp-gradient-fns.h | 47 - src/sp-tag-use-reference.cpp | 147 --- src/sp-tag-use-reference.h | 77 -- src/sp-tag-use.cpp | 281 ----- src/sp-tag-use.h | 53 - src/sp-tag.cpp | 240 ---- src/sp-tag.h | 55 - src/ui/dialog/color-item.cpp | 2 +- src/ui/dialog/dialog-manager.cpp | 4 +- src/ui/dialog/lpe-powerstroke-properties.cpp | 8 + src/ui/dialog/swatches.cpp | 1 - src/ui/dialog/tags.cpp | 1182 -------------------- src/ui/dialog/tags.h | 181 --- src/ui/widget/addtoicon.h | 2 +- src/ui/widget/clipmaskicon.h | 2 +- src/ui/widget/highlight-picker.cpp | 10 +- src/ui/widget/highlight-picker.h | 2 +- src/ui/widget/insertordericon.cpp | 7 + src/ui/widget/layertypeicon.h | 2 +- src/verbs.cpp | 8 +- src/verbs.h | 2 +- 42 files changed, 61 insertions(+), 2515 deletions(-) delete mode 100644 share/palettes/MLP/All.gpl delete mode 100644 share/palettes/MLP/Applejack.gpl delete mode 100644 share/palettes/MLP/Daisy.gpl delete mode 100644 share/palettes/MLP/Fluttershy.gpl delete mode 100644 share/palettes/MLP/Lily.gpl delete mode 100644 share/palettes/MLP/Makefile.am delete mode 100644 share/palettes/MLP/Pinkie.gpl delete mode 100644 share/palettes/MLP/Rainbow-Dash.gpl delete mode 100644 share/palettes/MLP/Rarity.gpl delete mode 100644 share/palettes/MLP/Roseluck.gpl delete mode 100644 share/palettes/MLP/Silver-Rains.gpl delete mode 100644 share/palettes/MLP/Spike.gpl delete mode 100644 share/palettes/MLP/Twilight-Sparkle.gpl delete mode 100644 src/sp-gradient-fns.h delete mode 100644 src/sp-tag-use-reference.cpp delete mode 100644 src/sp-tag-use-reference.h delete mode 100644 src/sp-tag-use.cpp delete mode 100644 src/sp-tag-use.h delete mode 100644 src/sp-tag.cpp delete mode 100644 src/sp-tag.h delete mode 100644 src/ui/dialog/tags.cpp delete mode 100644 src/ui/dialog/tags.h diff --git a/configure.ac b/configure.ac index abfdb0348..0d32691f8 100644 --- a/configure.ac +++ b/configure.ac @@ -1100,7 +1100,6 @@ share/icons/application/256x256/Makefile share/keys/Makefile share/markers/Makefile share/palettes/Makefile -share/palettes/MLP/Makefile share/patterns/Makefile share/screens/Makefile share/symbols/Makefile diff --git a/share/palettes/MLP/All.gpl b/share/palettes/MLP/All.gpl deleted file mode 100644 index d408e0c10..000000000 --- a/share/palettes/MLP/All.gpl +++ /dev/null @@ -1,10 +0,0 @@ -GIMP Palette -Name: All -Columns: 0 -# -255 255 255 White - 0 0 0 Black -255 255 255 Teeth Fill -185 224 247 Teeth Stroke -197 52 116 Mouth -246 112 51 Tongue diff --git a/share/palettes/MLP/Applejack.gpl b/share/palettes/MLP/Applejack.gpl deleted file mode 100644 index 03845416f..000000000 --- a/share/palettes/MLP/Applejack.gpl +++ /dev/null @@ -1,18 +0,0 @@ -GIMP Palette -Name: Applejack -Columns: 0 -# -250 186 97 Body Fill -242 171 84 Body Shadow -233 113 53 Body Stroke -245 239 179 Mane Fill -229 215 97 Mane Stroke -234 64 63 Hair Band -203 154 91 Hat Fill -176 134 79 Hat Stroke - 96 189 80 Eye Grad Light - 38 119 22 Eye Grad Dark -125 217 103 Eye Accent -209 236 201 Eye Highlight -234 64 63 Cutie Mark Apple - 96 189 80 Cutie Mark Stem diff --git a/share/palettes/MLP/Daisy.gpl b/share/palettes/MLP/Daisy.gpl deleted file mode 100644 index deab92e56..000000000 --- a/share/palettes/MLP/Daisy.gpl +++ /dev/null @@ -1,16 +0,0 @@ -GIMP Palette -Name: Daisy -Columns: 0 -# -255 170 250 Body Fill -250 148 242 Body fill Shadow -242 104 219 Body stroke -203 244 140 Mane Fill -153 222 60 Mane Stroke - 58 183 109 Eye Grad Light - 39 95 76 Eye Grad Dark -111 229 144 Eye Accent -198 243 193 Eye Highlight -255 255 255 CM Fill -194 192 193 CM Stroke -255 255 1 CM Centre diff --git a/share/palettes/MLP/Fluttershy.gpl b/share/palettes/MLP/Fluttershy.gpl deleted file mode 100644 index cf525b5a9..000000000 --- a/share/palettes/MLP/Fluttershy.gpl +++ /dev/null @@ -1,15 +0,0 @@ -GIMP Palette -Name: Fluttershy -Columns: 0 -# -253 246 175 Body Fill -254 231 133 Body Shadow -234 212 99 Body Stroke -243 185 216 Mane Fill -235 129 180 Mane Stroke - 0 173 168 Eye Grad Light - 3 83 80 Eye Grad Dark -104 200 198 Eye Accent -158 216 213 Eye Highlight -104 200 198 Cutie Mark Body -243 185 216 Cutie Mark Wings diff --git a/share/palettes/MLP/Lily.gpl b/share/palettes/MLP/Lily.gpl deleted file mode 100644 index 3ec72fe16..000000000 --- a/share/palettes/MLP/Lily.gpl +++ /dev/null @@ -1,18 +0,0 @@ -GIMP Palette -Name: Lily -Columns: 0 -# -239 148 186 Body Fill -231 129 174 Body fill Shadow -211 90 138 Body stroke -247 225 141 Mane Fill -220 197 97 Mane Stroke -250 236 181 Mane Highlight -251 244 172 Eye Grad Light -246 181 65 Eye Grad Dark -235 227 103 Eye Accent -255 255 254 Eye Highlight -251 252 250 CM Fill -192 220 232 CM Stroke -246 212 68 CM stem -243 155 63 CM pollin diff --git a/share/palettes/MLP/Makefile.am b/share/palettes/MLP/Makefile.am deleted file mode 100644 index 00695478c..000000000 --- a/share/palettes/MLP/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ - -MLPdir = $(datadir)/inkscape/palettes/MLP - -MLP_DATA = \ - All.gpl \ - Applejack.gpl \ - Daisy.gpl \ - Fluttershy.gpl \ - Lily.gpl \ - Pinkie.gpl \ - Rainbow-Dash.gpl \ - Rarity.gpl \ - Roseluck.gpl \ - Silver-Rains.gpl \ - Spike.gpl \ - Twilight-Sparkle.gpl - -EXTRA_DIST = $(MLP_DATA) diff --git a/share/palettes/MLP/Pinkie.gpl b/share/palettes/MLP/Pinkie.gpl deleted file mode 100644 index ca7b46d4d..000000000 --- a/share/palettes/MLP/Pinkie.gpl +++ /dev/null @@ -1,15 +0,0 @@ -GIMP Palette -Name: Pinkie -Columns: 0 -# -249 184 210 Body Fill -237 157 194 Body Shadow -234 128 176 Body Stroke -240 67 140 Mane Fill -192 27 117 Mane Stroke -127 210 244 Eye Grad Light - 24 113 149 Eye Grad Dark -157 226 249 Eye Accent -223 249 254 Eye Highlight -255 247 173 Cutie Mark Yellow -123 212 249 Cutie Mark Blue diff --git a/share/palettes/MLP/Rainbow-Dash.gpl b/share/palettes/MLP/Rainbow-Dash.gpl deleted file mode 100644 index 7f398cf23..000000000 --- a/share/palettes/MLP/Rainbow-Dash.gpl +++ /dev/null @@ -1,23 +0,0 @@ -GIMP Palette -Name: Rainbow Dash -Columns: 0 -# -157 217 248 Body Fill -145 190 231 Body Shadow -106 170 221 Body Stroke -241 62 50 Mane Red -246 118 52 Mane Orange -245 235 126 Mane Yellow -122 194 64 Mane Green - 1 147 207 Mane Blue -102 46 138 Mane Purple - 1 147 207 Mane Stroke -198 0 111 Eye Grad Light - 87 0 48 Eye Grad Dark -214 74 153 Eye Accent -240 174 208 Eye Highlight -255 255 255 Cutie Mark Cloud Fill - 1 147 207 Cutie Mark Cloud Stroke -241 62 50 Cutie Mark Red -245 235 126 Cutie Mark Yellow - 1 147 207 Cutie Mark Blue diff --git a/share/palettes/MLP/Rarity.gpl b/share/palettes/MLP/Rarity.gpl deleted file mode 100644 index 9ecbd2bed..000000000 --- a/share/palettes/MLP/Rarity.gpl +++ /dev/null @@ -1,18 +0,0 @@ -GIMP Palette -Name: Rarity -Columns: 0 -# -240 242 243 Body Fill -226 228 230 Body Shadow -194 197 198 Body Stroke - 94 81 163 Mane Fill - 75 21 102 Mane Stroke -126 74 153 Mane Grad Light - 75 21 102 Mane Grad Dark - 55 119 190 Eye Grad Light - 26 70 106 Eye Grad Dark - 85 149 211 Eye Accent -122 172 236 Eye Highlight -188 228 247 Eyeshadow -115 212 253 Cutie Mark Fill - 44 143 183 Cutie Mark Stroke diff --git a/share/palettes/MLP/Roseluck.gpl b/share/palettes/MLP/Roseluck.gpl deleted file mode 100644 index 9ca484f94..000000000 --- a/share/palettes/MLP/Roseluck.gpl +++ /dev/null @@ -1,21 +0,0 @@ -GIMP Palette -Name: Roseluck -Columns: 0 -# -255 255 217 Body Fill -226 226 195 Body Fill Shadow -201 192 148 Body Stroke -187 42 87 Mane Fill -152 35 69 Mane Stroke -227 131 159 Mane Highlight -221 104 139 Mane Highlight Stroke -189 232 135 Eye Grad Light - 57 84 31 Eye Grad Dark -253 255 246 Eye Highlight -214 237 178 Eye Accent - 73 118 36 CM Stem -110 162 55 CM leaf stroke -151 205 99 CM leaf fill -211 54 102 CM Rose fill -152 35 69 CM rose Stroke -187 42 87 CM rose Shadow fill diff --git a/share/palettes/MLP/Silver-Rains.gpl b/share/palettes/MLP/Silver-Rains.gpl deleted file mode 100644 index 8affb0e7c..000000000 --- a/share/palettes/MLP/Silver-Rains.gpl +++ /dev/null @@ -1,17 +0,0 @@ -GIMP Palette -Name: Silver Rains -Columns: 0 -# -201 201 201 Body Fill -190 190 190 Body Shadow -168 168 168 Body Stroke -151 177 250 Mane Fill -120 142 202 Mane Streak - 74 100 174 Mane Stroke -118 244 192 Eye Grad Light - 2 198 161 Eye Grad Dark -180 252 226 Eye Accent -205 249 233 Eye Highlight -154 160 177 Cutie Mark Cloud -138 195 255 Cutie Mark Drops - 52 93 136 Cutie Mark Notes diff --git a/share/palettes/MLP/Spike.gpl b/share/palettes/MLP/Spike.gpl deleted file mode 100644 index 91b827a3b..000000000 --- a/share/palettes/MLP/Spike.gpl +++ /dev/null @@ -1,17 +0,0 @@ -GIMP Palette -Name: Spike -Columns: 0 -# -198 147 201 Body Fill -176 116 185 Body Shadow -153 95 160 Body Stroke -219 236 180 Body Green Fill -152 210 124 Body Green Stroke - 82 196 88 Spike Fill - 44 151 47 Spike Stroke -178 217 100 Ear Fill -226 236 139 Ear Stroke - 98 187 77 Eye Grad Light - 39 117 20 Eye Grad Dark -127 217 104 Eye Accent -203 240 196 Eye Highlight diff --git a/share/palettes/MLP/Twilight-Sparkle.gpl b/share/palettes/MLP/Twilight-Sparkle.gpl deleted file mode 100644 index 59acf5dac..000000000 --- a/share/palettes/MLP/Twilight-Sparkle.gpl +++ /dev/null @@ -1,17 +0,0 @@ -GIMP Palette -Name: Twilight Sparkle -Columns: 0 -# -212 164 232 Body Fill -174 133 193 Body Shadow -166 110 190 Body Stroke - 39 55 113 Mane Fill - 19 32 66 Mane Stroke - 98 46 134 Mane Highlight Purple -230 69 139 Mane Highlight Pink - 99 49 131 Eye Grad Light - 41 10 75 Eye Grad Dark -150 107 171 Eye Accent -206 183 215 Eye Highlight -230 69 139 Cutie Mark Pink -255 255 255 Cutie Mark White diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am index 91e72ea84..de11f67be 100644 --- a/share/palettes/Makefile.am +++ b/share/palettes/Makefile.am @@ -1,4 +1,3 @@ -SUBDIRS = MLP palettesdir = $(datadir)/inkscape/palettes diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 17b229352..2ffff153c 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -47,7 +47,7 @@ #include "live_effects/lpe-extrude.h" #include "live_effects/lpe-powerstroke.h" #include "live_effects/lpe-clone-original.h" -#include "live_effects/lpe-attach-path.h" +//#include "live_effects/lpe-attach-path.h" #include "live_effects/lpe-fill-between-strokes.h" #include "live_effects/lpe-fill-between-many.h" #include "live_effects/lpe-ellipse_5pts.h" @@ -130,7 +130,7 @@ const Util::EnumData LPETypeData[] = { {POWERSTROKE, N_("Power stroke"), "powerstroke"}, {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, /* Ponyscape */ - {ATTACH_PATH, N_("Attach path"), "attach_path"}, +// {ATTACH_PATH, N_("Attach path"), "attach_path"}, {FILL_BETWEEN_STROKES, N_("Fill between strokes"), "fill_between_strokes"}, {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, @@ -258,9 +258,9 @@ Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj) case CLONE_ORIGINAL: neweffect = static_cast ( new LPECloneOriginal(lpeobj) ); break; - case ATTACH_PATH: + /*case ATTACH_PATH: neweffect = static_cast ( new LPEAttachPath(lpeobj) ); - break; + break;*/ case FILL_BETWEEN_STROKES: neweffect = static_cast ( new LPEFillBetweenStrokes(lpeobj) ); break; diff --git a/src/live_effects/lpe-fill-between-many.cpp b/src/live_effects/lpe-fill-between-many.cpp index 00cc1fed5..7cf354044 100644 --- a/src/live_effects/lpe-fill-between-many.cpp +++ b/src/live_effects/lpe-fill-between-many.cpp @@ -4,7 +4,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include #include "live_effects/lpe-fill-between-many.h" @@ -16,6 +15,8 @@ #include "sp-text.h" #include "2geom/bezier-curve.h" +#include + namespace Inkscape { namespace LivePathEffect { diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp index 97c0a1b8a..93e645783 100644 --- a/src/live_effects/lpe-jointype.cpp +++ b/src/live_effects/lpe-jointype.cpp @@ -12,6 +12,9 @@ #include +#include "live_effects/parameter/enum.h" +#include "live_effects/pathoutlineprovider.h" + #include "sp-shape.h" #include "style.h" #include "xml/repr.h" @@ -20,11 +23,9 @@ #include "desktop-style.h" #include "svg/css-ostringstream.h" #include "display/curve.h" -#include "live_effects/parameter/enum.h" #include <2geom/path.h> #include <2geom/svg-elliptical-arc.h> -#include "live_effects/pathoutlineprovider.h" #include "lpe-jointype.h" diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp index 29e4c409c..ed47db28d 100644 --- a/src/live_effects/parameter/originalpatharray.cpp +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -4,6 +4,14 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include "live_effects/parameter/originalpatharray.h" #include @@ -89,9 +97,11 @@ OriginalPathArrayParam::OriginalPathArrayParam( const Glib::ustring& label, _toggle_renderer->signal_toggled().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_reverse_toggled)); col->add_attribute(_toggle_renderer->property_active(), _model->_colReverse); + //quick little hack -- new versions of gtk did not give the item enough space + _scroller.property_height_request() = 120; _scroller.add(_tree); _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); - _scroller.set_shadow_type(Gtk::SHADOW_IN); + //_scroller.set_shadow_type(Gtk::SHADOW_IN); oncanvas_editable = true; diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp index ac0000b1a..7fa837689 100644 --- a/src/live_effects/parameter/powerstrokepointarray.cpp +++ b/src/live_effects/parameter/powerstrokepointarray.cpp @@ -4,8 +4,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - #include "ui/dialog/lpe-powerstroke-properties.h" #include "live_effects/parameter/powerstrokepointarray.h" @@ -22,6 +20,8 @@ #include "desktop.h" #include "live_effects/lpeobject.h" +#include + namespace Inkscape { namespace LivePathEffect { @@ -145,7 +145,7 @@ public: virtual Geom::Point knot_get() const; virtual void knot_click(guint state); - /** Checks whether the index falls within the size of the parameter's vector / + // Checks whether the index falls within the size of the parameter's vector bool valid_index(unsigned int index) const { return (_pparam->_vector.size() > index); }; diff --git a/src/live_effects/parameter/transformedpoint.cpp b/src/live_effects/parameter/transformedpoint.cpp index f5b01e267..0d03432c3 100644 --- a/src/live_effects/parameter/transformedpoint.cpp +++ b/src/live_effects/parameter/transformedpoint.cpp @@ -4,8 +4,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - #include "ui/widget/registered-widget.h" #include "live_effects/parameter/transformedpoint.h" #include "sp-lpe-item.h" @@ -17,6 +15,8 @@ #include "desktop.h" #include "verbs.h" +#include + namespace Inkscape { namespace LivePathEffect { diff --git a/src/sp-gradient-fns.h b/src/sp-gradient-fns.h deleted file mode 100644 index e57877256..000000000 --- a/src/sp-gradient-fns.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef SEEN_SP_GRADIENT_FNS_H -#define SEEN_SP_GRADIENT_FNS_H - -/** \file - * Macros and fn declarations related to gradients. - */ - -#include -#include -#include <2geom/forward.h> -#include "sp-gradient-spread.h" -#include "sp-gradient-units.h" - -class SPGradient; -class SPMeshGradient; - -SPGradientSpread sp_gradient_get_spread (SPGradient *gradient); - -/* Gradient repr methods */ -void sp_gradient_repr_write_vector(SPGradient *gr); -void sp_gradient_repr_clear_vector(SPGradient *gr); - -void sp_meshgradient_repr_write(SPMeshGradient *mg); - -cairo_pattern_t *sp_gradient_create_preview_pattern(SPGradient *gradient, double width); - -/** Transforms to/from gradient position space in given environment */ -Geom::Affine sp_gradient_get_g2d_matrix(SPGradient const *gr, Geom::Affine const &ctm, - Geom::Rect const &bbox); -Geom::Affine sp_gradient_get_gs2d_matrix(SPGradient const *gr, Geom::Affine const &ctm, - Geom::Rect const &bbox); -void sp_gradient_set_gs2d_matrix(SPGradient *gr, Geom::Affine const &ctm, Geom::Rect const &bbox, - Geom::Affine const &gs2d); - - -#endif /* !SEEN_SP_GRADIENT_FNS_H */ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/sp-tag-use-reference.cpp b/src/sp-tag-use-reference.cpp deleted file mode 100644 index 8e48c0285..000000000 --- a/src/sp-tag-use-reference.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* - * The reference corresponding to href of element. - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information. - */ - -#include -#include -#include - -#include "enums.h" -#include "sp-tag-use-reference.h" - -#include "display/curve.h" -#include "livarot/Path.h" -#include "preferences.h" -#include "sp-shape.h" -#include "sp-text.h" -#include "uri.h" - - - -bool SPTagUseReference::_acceptObject(SPObject * const obj) const -{ - if (SP_IS_ITEM(obj)) { - SPObject * const owner = getOwner(); - // Refuse references to us or to an ancestor. - for ( SPObject *iter = owner ; iter ; iter = iter->parent ) { - if ( iter == obj ) { - return false; - } - } - return true; - } else { - return false; - } -} - - -static void sp_usepath_href_changed(SPObject *old_ref, SPObject *ref, SPTagUsePath *offset); -static void sp_usepath_delete_self(SPObject *deleted, SPTagUsePath *offset); - -SPTagUsePath::SPTagUsePath(SPObject* i_owner):SPTagUseReference(i_owner) -{ - owner=i_owner; - originalPath = NULL; - sourceDirty=false; - sourceHref = NULL; - sourceRepr = NULL; - sourceObject = NULL; - _changed_connection = changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_usepath_href_changed), this)); // listening to myself, this should be virtual instead - - user_unlink = NULL; -} - -SPTagUsePath::~SPTagUsePath(void) -{ - delete originalPath; - originalPath = NULL; - - _changed_connection.disconnect(); // to do before unlinking - - quit_listening(); - unlink(); -} - -void -SPTagUsePath::link(char *to) -{ - if ( to == NULL ) { - quit_listening(); - unlink(); - } else { - if ( !sourceHref || ( strcmp(to, sourceHref) != 0 ) ) { - g_free(sourceHref); - sourceHref = g_strdup(to); - try { - attach(Inkscape::URI(to)); - } catch (Inkscape::BadURIException &e) { - /* TODO: Proper error handling as per - * http://www.w3.org/TR/SVG11/implnote.html#ErrorProcessing. - */ - g_warning("%s", e.what()); - detach(); - } - } - } -} - -void -SPTagUsePath::unlink(void) -{ - g_free(sourceHref); - sourceHref = NULL; - detach(); -} - -void -SPTagUsePath::start_listening(SPObject* to) -{ - if ( to == NULL ) { - return; - } - sourceObject = to; - sourceRepr = to->getRepr(); - _delete_connection = to->connectDelete(sigc::bind(sigc::ptr_fun(&sp_usepath_delete_self), this)); -} - -void -SPTagUsePath::quit_listening(void) -{ - if ( sourceObject == NULL ) { - return; - } - _delete_connection.disconnect(); - sourceRepr = NULL; - sourceObject = NULL; -} - -static void -sp_usepath_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPTagUsePath *offset) -{ - offset->quit_listening(); - SPItem *refobj = offset->getObject(); - if ( refobj ) { - offset->start_listening(refobj); - } -} - -static void -sp_usepath_delete_self(SPObject */*deleted*/, SPTagUsePath *offset) -{ - offset->owner->deleteObject(); -} - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use-reference.h b/src/sp-tag-use-reference.h deleted file mode 100644 index 039d2fd7d..000000000 --- a/src/sp-tag-use-reference.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef SEEN_SP_TAG_USE_REFERENCE_H -#define SEEN_SP_TAG_USE_REFERENCE_H - -/* - * The reference corresponding to href of element. - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information. - */ - -#include "sp-object.h" -#include "sp-item.h" -#include -#include -#include - -class Path; - -namespace Inkscape { -namespace XML { - struct Node; -} -} - - -class SPTagUseReference : public Inkscape::URIReference { -public: - SPTagUseReference(SPObject *owner) : URIReference(owner) {} - - SPItem *getObject() const { - return static_cast(URIReference::getObject()); - } - -protected: - virtual bool _acceptObject(SPObject * const obj) const; - -}; - - -class SPTagUsePath : public SPTagUseReference { -public: - Path *originalPath; - bool sourceDirty; - - SPObject *owner; - gchar *sourceHref; - Inkscape::XML::Node *sourceRepr; - SPObject *sourceObject; - - sigc::connection _delete_connection; - sigc::connection _changed_connection; - - SPTagUsePath(SPObject* i_owner); - ~SPTagUsePath(void); - - void link(char* to); - void unlink(void); - void start_listening(SPObject* to); - void quit_listening(void); - void refresh_source(void); - - void (*user_unlink) (SPObject *user); -}; - -#endif /* !SEEN_SP_USE_REFERENCE_H */ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.cpp b/src/sp-tag-use.cpp deleted file mode 100644 index 4c5171bbb..000000000 --- a/src/sp-tag-use.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* - * SVG implementation - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include - -#include -#include "display/drawing-group.h" -#include "attributes.h" -#include "document.h" -#include "sp-object-repr.h" -#include "uri.h" -#include "xml/repr.h" -#include "preferences.h" -#include "style.h" -#include "sp-symbol.h" -#include "sp-tag-use.h" -#include "sp-tag-use-reference.h" - -/* fixme: */ - -static void sp_tag_use_class_init(SPTagUseClass *classname); -static void sp_tag_use_init(SPTagUse *use); -static void sp_tag_use_finalize(GObject *obj); - -static void sp_tag_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); -static void sp_tag_use_release(SPObject *object); -static void sp_tag_use_set(SPObject *object, unsigned key, gchar const *value); -static Inkscape::XML::Node *sp_tag_use_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static void sp_tag_use_update(SPObject *object, SPCtx *ctx, guint flags); - -static void sp_tag_use_href_changed(SPObject *old_ref, SPObject *ref, SPTagUse *use); - -static SPObjectClass *parent_class; - - -GType -sp_tag_use_get_type(void) -{ - static GType use_type = 0; - if (!use_type) { - GTypeInfo use_info = { - sizeof(SPTagUseClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_tag_use_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(SPTagUse), - 16, /* n_preallocs */ - (GInstanceInitFunc) sp_tag_use_init, - NULL, /* value_table */ - }; - use_type = g_type_register_static(SP_TYPE_OBJECT, "SPTagUse", &use_info, (GTypeFlags)0); - } - return use_type; -} - -static void -sp_tag_use_class_init(SPTagUseClass *classname) -{ - GObjectClass *gobject_class = (GObjectClass *) classname; - SPObjectClass *sp_object_class = (SPObjectClass *) classname; - - parent_class = (SPObjectClass*)g_type_class_peek_parent(classname); - - gobject_class->finalize = sp_tag_use_finalize; - - sp_object_class->build = sp_tag_use_build; - sp_object_class->release = sp_tag_use_release; - sp_object_class->set = sp_tag_use_set; - sp_object_class->write = sp_tag_use_write; - sp_object_class->update = sp_tag_use_update; -} - -static void -sp_tag_use_init(SPTagUse *use) -{ - use->href = NULL; - - new (&use->_changed_connection) sigc::connection(); - - use->ref = new SPTagUseReference(use); - - use->_changed_connection = use->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_tag_use_href_changed), use)); -} - -static void -sp_tag_use_finalize(GObject *obj) -{ - SPTagUse *use = reinterpret_cast(obj); - - if (use->child) { - use->detach(use->child); - use->child = NULL; - } - - use->ref->detach(); - delete use->ref; - use->ref = 0; - - use->_changed_connection.~connection(); - -} - -static void -sp_tag_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ - if (((SPObjectClass *) parent_class)->build) { - (* ((SPObjectClass *) parent_class)->build)(object, document, repr); - } - - object->readAttr( "xlink:href" ); - - // We don't need to create child here: - // reading xlink:href will attach ref, and that will cause the changed signal to be emitted, - // which will call sp_tag_use_href_changed, and that will take care of the child -} - -static void -sp_tag_use_release(SPObject *object) -{ - SPTagUse *use = SP_TAG_USE(object); - - if (use->child) { - object->detach(use->child); - use->child = NULL; - } - - use->_changed_connection.disconnect(); - - g_free(use->href); - use->href = NULL; - - use->ref->detach(); - - if (((SPObjectClass *) parent_class)->release) { - ((SPObjectClass *) parent_class)->release(object); - } -} - -static void -sp_tag_use_set(SPObject *object, unsigned key, gchar const *value) -{ - SPTagUse *use = SP_TAG_USE(object); - - switch (key) { - case SP_ATTR_XLINK_HREF: { - if ( value && use->href && ( strcmp(value, use->href) == 0 ) ) { - /* No change, do nothing. */ - } else { - g_free(use->href); - use->href = NULL; - if (value) { - // First, set the href field, because sp_tag_use_href_changed will need it. - use->href = g_strdup(value); - - // Now do the attaching, which emits the changed signal. - try { - use->ref->attach(Inkscape::URI(value)); - } catch (Inkscape::BadURIException &e) { - g_warning("%s", e.what()); - use->ref->detach(); - } - } else { - use->ref->detach(); - } - } - break; - } - - default: - if (((SPObjectClass *) parent_class)->set) { - ((SPObjectClass *) parent_class)->set(object, key, value); - } - break; - } -} - -static Inkscape::XML::Node * -sp_tag_use_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) -{ - SPTagUse *use = SP_TAG_USE(object); - - if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { - repr = xml_doc->createElement("inkscape:tagref"); - } - - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); - } - - if (use->ref->getURI()) { - gchar *uri_string = use->ref->getURI()->toString(); - repr->setAttribute("xlink:href", uri_string); - g_free(uri_string); - } - - return repr; -} - -/** - * Returns the ultimate original of a SPTagUse (i.e. the first object in the chain of its originals - * which is not an SPTagUse). If no original is found, NULL is returned (it is the responsibility - * of the caller to make sure that this is handled correctly). - * - * Note that the returned is the clone object, i.e. the child of an SPTagUse (of the argument one for - * the trivial case) and not the "true original". - */ -SPItem * -sp_tag_use_root(SPTagUse *use) -{ - SPObject *orig = use->child; - while (orig && SP_IS_TAG_USE(orig)) { - orig = SP_TAG_USE(orig)->child; - } - if (!orig || !SP_IS_ITEM(orig)) - return NULL; - return SP_ITEM(orig); -} - -static void -sp_tag_use_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPTagUse *use) -{ - if (use->href) { - SPItem *refobj = use->ref->getObject(); - if (refobj) { - Inkscape::XML::Node *childrepr = refobj->getRepr(); - GType type = sp_repr_type_lookup(childrepr); - g_return_if_fail(type > G_TYPE_NONE); - if (g_type_is_a(type, SP_TYPE_ITEM)) { - use->child = (SPObject*) g_object_new(type, 0); - use->attach(use->child, use->lastChild()); - sp_object_unref(use->child, use); - (use->child)->invoke_build(use->document, childrepr, TRUE); - - } - } - } -} - -static void -sp_tag_use_update(SPObject *object, SPCtx *ctx, unsigned flags) -{ - if (((SPObjectClass *) (parent_class))->update) - ((SPObjectClass *) (parent_class))->update(object, ctx, flags); -} - -SPItem *sp_tag_use_get_original(SPTagUse *use) -{ - SPItem *ref = NULL; - if (use){ - if (use->ref){ - ref = use->ref->getObject(); - } - } - return ref; -} - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.h b/src/sp-tag-use.h deleted file mode 100644 index 6e068fc21..000000000 --- a/src/sp-tag-use.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __SP_TAG_USE_H__ -#define __SP_TAG_USE_H__ - -/* - * SVG implementation - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#include -#include -#include "svg/svg-length.h" -#include "sp-object.h" - - -#define SP_TYPE_TAG_USE (sp_tag_use_get_type ()) -#define SP_TAG_USE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_TAG_USE, SPTagUse)) -#define SP_TAG_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_TAG_USE, SPTagUseClass)) -#define SP_IS_TAG_USE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_TAG_USE)) -#define SP_IS_TAG_USE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_TAG_USE)) - -class SPTagUse; -class SPTagUseClass; -class SPTagUseReference; - -struct SPTagUse : public SPObject { - // item built from the original's repr (the visible clone) - // relative to the SPUse itself, it is treated as a child, similar to a grouped item relative to its group - SPObject *child; - - gchar *href; - - // the reference to the original object - SPTagUseReference *ref; - sigc::connection _changed_connection; -}; - -struct SPTagUseClass { - SPObjectClass parent_class; -}; - -GType sp_tag_use_get_type (void); - -SPItem *sp_tag_use_unlink (SPTagUse *use); -SPItem *sp_tag_use_get_original (SPTagUse *use); - -SPItem *sp_tag_use_root(SPTagUse *use); -#endif diff --git a/src/sp-tag.cpp b/src/sp-tag.cpp deleted file mode 100644 index eef55d628..000000000 --- a/src/sp-tag.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/** \file - * SVG implementation - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "attributes.h" -#include "sp-tag.h" -#include "xml/repr.h" -#include - -#define DEBUG_TAG -#ifdef DEBUG_TAG -# define debug(f, a...) { g_print("%s(%d) %s:", \ - __FILE__,__LINE__,__FUNCTION__); \ - g_print(f, ## a); \ - g_print("\n"); \ - } -#else -# define debug(f, a...) /**/ -#endif - -/* Tag base class */ - -static void sp_tag_class_init(SPTagClass *klass); -static void sp_tag_init(SPTag *tag); - -static void sp_tag_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); -static void sp_tag_release(SPObject *object); -static void sp_tag_set(SPObject *object, unsigned int key, gchar const *value); -static void sp_tag_update(SPObject *object, SPCtx *ctx, guint flags); -static Inkscape::XML::Node *sp_tag_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); - -static SPObjectClass *tag_parent_class; - -GType -sp_tag_get_type() -{ - static GType tag_type = 0; - - if (!tag_type) { - GTypeInfo tag_info = { - sizeof(SPTagClass), - NULL, NULL, - (GClassInitFunc) sp_tag_class_init, - NULL, NULL, - sizeof(SPTag), - 16, - (GInstanceInitFunc) sp_tag_init, - NULL, /* value_table */ - }; - tag_type = g_type_register_static(SP_TYPE_OBJECT, "SPTag", &tag_info, (GTypeFlags)0); - } - return tag_type; -} - -static void -sp_tag_class_init(SPTagClass *klass) -{ - //GObjectClass *gobject_class = (GObjectClass *)klass; - SPObjectClass *sp_object_class = (SPObjectClass *)klass; - - tag_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); - - sp_object_class->build = sp_tag_build; - sp_object_class->release = sp_tag_release; - sp_object_class->write = sp_tag_write; - sp_object_class->set = sp_tag_set; - sp_object_class->update = sp_tag_update; -} - -static void -sp_tag_init(SPTag *tag) -{ -} - -/* - * Move this SPItem into or after another SPItem in the doc - * \param target - the SPItem to move into or after - * \param intoafter - move to after the target (false), move inside (sublayer) of the target (true) - */ -void SPTag::moveTo(SPObject *target, gboolean intoafter) { - - Inkscape::XML::Node *target_ref = ( target ? target->getRepr() : NULL ); - Inkscape::XML::Node *our_ref = getRepr(); - gboolean first = FALSE; - - if (target_ref == our_ref) { - // Move to ourself ignore - return; - } - - if (!target_ref) { - // Assume move to the "first" in the top node, find the top node - target_ref = our_ref; - while (target_ref->parent() != target_ref->root()) { - target_ref = target_ref->parent(); - } - first = TRUE; - } - - if (intoafter) { - // Move this inside of the target at the end - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else if (target_ref->parent() != our_ref->parent()) { - // Change in parent, need to remove and add - our_ref->parent()->removeChild(our_ref); - target_ref->parent()->addChild(our_ref, target_ref); - } else if (!first) { - // Same parent, just move - our_ref->parent()->changeOrder(our_ref, target_ref); - } -} - -/** - * Reads the Inkscape::XML::Node, and initializes SPTag variables. For this to get called, - * our name must be associated with a repr via "sp_object_type_register". Best done through - * sp-object-repr.cpp's repr_name_entries array. - */ -static void -sp_tag_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ - object->readAttr( "inkscape:expanded" ); - - if (((SPObjectClass *) tag_parent_class)->build) { - ((SPObjectClass *) tag_parent_class)->build(object, document, repr); - } -} - -/** - * Drops any allocated memory. - */ -static void -sp_tag_release(SPObject *object) -{ - /* deal with our children and our selves here */ - - if (((SPObjectClass *) tag_parent_class)->release) - ((SPObjectClass *) tag_parent_class)->release(object); -} - -/** - * Sets a specific value in the SPTag. - */ -static void -sp_tag_set(SPObject *object, unsigned int key, gchar const *value) -{ - SPTag *tag = SP_TAG(object); - - switch (key) - { - case SP_ATTR_INKSCAPE_EXPANDED: - if ( value && !strcmp(value, "true") ) { - tag->setExpanded(true); - } - break; - default: - if (((SPObjectClass *) tag_parent_class)->set) { - ((SPObjectClass *) tag_parent_class)->set(object, key, value); - } - break; - } -} - -void SPTag::setExpanded(bool isexpanded) { - if ( _expanded != isexpanded ){ - _expanded = isexpanded; - } -} - -/** - * Receives update notifications. - */ -static void -sp_tag_update(SPObject *object, SPCtx *ctx, guint flags) -{ - //SPTag *tag = SP_TAG(object); - - if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | - SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { - - /* do something to trigger redisplay, updates? */ - - } - - if (((SPObjectClass *) tag_parent_class)->update) { - ((SPObjectClass *) tag_parent_class)->update(object, ctx, flags); - } -} - -/** - * Writes its settings to an incoming repr object, if any. - */ -static Inkscape::XML::Node * -sp_tag_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) -{ - SPTag *tag = SP_TAG(object); - - if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { - repr = doc->createElement("inkscape:tag"); - } - - // Inkscape-only object, not copied during an "plain SVG" dump: - if (flags & SP_OBJECT_WRITE_EXT) { - - if (tag->_expanded) { - repr->setAttribute("inkscape:expanded", "true"); - } else { - repr->setAttribute("inkscape:expanded", NULL); - } - } - - if (((SPObjectClass *) tag_parent_class)->write) { - ((SPObjectClass *) tag_parent_class)->write(object, doc, repr, flags); - } - - return repr; -} - - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/sp-tag.h b/src/sp-tag.h deleted file mode 100644 index c5eec785a..000000000 --- a/src/sp-tag.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef SP_TAG_H_SEEN -#define SP_TAG_H_SEEN - -/** \file - * SVG implementation - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#include "sp-object.h" - -/* Skeleton base class */ - -#define SP_TYPE_TAG (sp_tag_get_type()) -#define SP_TAG(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_TAG, SPTag)) -#define SP_IS_TAG(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_TAG)) - -class SPTag; -class SPTagClass; - -class SPTag : public SPObject { -public: - bool _expanded; - - bool expanded() const { return _expanded; } - void setExpanded(bool isexpanded); - - void moveTo(SPObject *target, gboolean intoafter); - -}; - -struct SPTagClass { - SPObjectClass parent_class; -}; - -GType sp_tag_get_type(); - - -#endif /* !SP_SKELETON_H_SEEN */ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index 6eece0c17..a1951ec48 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -12,7 +12,6 @@ */ #include -#include #include #include #include @@ -40,6 +39,7 @@ #include "color.h" // for SP_RGBA32_U_COMPOSE +#include namespace Inkscape { namespace UI { diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp index 1fddbf007..ddf41e0c8 100644 --- a/src/ui/dialog/dialog-manager.cpp +++ b/src/ui/dialog/dialog-manager.cpp @@ -111,7 +111,7 @@ DialogManager::DialogManager() { registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); - //registerFactory("TagsPanel", &create); +// registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); @@ -147,7 +147,7 @@ DialogManager::DialogManager() { registerFactory("InkscapePreferences", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); - //registerFactory("TagsPanel", &create); +// registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); diff --git a/src/ui/dialog/lpe-powerstroke-properties.cpp b/src/ui/dialog/lpe-powerstroke-properties.cpp index cef6f494e..c34351511 100644 --- a/src/ui/dialog/lpe-powerstroke-properties.cpp +++ b/src/ui/dialog/lpe-powerstroke-properties.cpp @@ -13,6 +13,14 @@ * Released under GNU GPL. Read the file 'COPYING' for more information */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include "lpe-powerstroke-properties.h" #include #include diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index c3889db46..34885a971 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -43,7 +43,6 @@ #include "path-prefix.h" #include "preferences.h" #include "sp-item.h" -#include "sp-gradient-fns.h" #include "sp-gradient.h" #include "sp-gradient-vector.h" #include "style.h" diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp deleted file mode 100644 index 116f9eb0b..000000000 --- a/src/ui/dialog/tags.cpp +++ /dev/null @@ -1,1182 +0,0 @@ -/* - * A simple panel for tags - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "tags.h" -#include -#include -#include -#include - -#include - -#include "desktop.h" -#include "desktop-style.h" -#include "document.h" -#include "document-undo.h" -#include "helper/action.h" -#include "inkscape.h" -#include "layer-fns.h" -#include "layer-manager.h" -#include "preferences.h" -#include "sp-item.h" -#include "sp-object.h" -#include "sp-shape.h" -#include "svg/css-ostringstream.h" -#include "ui/icon-names.h" -#include "ui/widget/layertypeicon.h" -#include "ui/widget/addtoicon.h" -#include "verbs.h" -#include "widgets/icon.h" -#include "xml/node.h" -#include "xml/node-observer.h" -#include "xml/repr.h" -#include "sp-root.h" -//#include "event-context.h" -#include "selection.h" -#include "dialogs/dialog-events.h" -#include "widgets/sp-color-notebook.h" -#include "style.h" -#include "filter-chemistry.h" -#include "filters/blend.h" -#include "filters/gaussian-blur.h" -#include "sp-clippath.h" -#include "sp-mask.h" -#include "sp-tag.h" -#include "sp-defs.h" -#include "sp-tag-use.h" -#include "sp-tag-use-reference.h" - -//#define DUMP_LAYERS 1 - -namespace Inkscape { -namespace UI { -namespace Dialog { - -using Inkscape::XML::Node; - -TagsPanel& TagsPanel::getInstance() -{ - return *new TagsPanel(); -} - -enum { - COL_ADD = 1 -}; - -enum { - BUTTON_NEW = 0, - BUTTON_TOP, - BUTTON_BOTTOM, - BUTTON_UP, - BUTTON_DOWN, - BUTTON_DELETE, - DRAGNDROP -}; - -class TagsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { -public: - ObjectWatcher(TagsPanel* pnl, SPObject* obj, Inkscape::XML::Node * repr) : - _pnl(pnl), - _obj(obj), - _repr(repr), - _labelAttr(g_quark_from_string("inkscape:label")) - {} - - ObjectWatcher(TagsPanel* pnl, SPObject* obj) : - _pnl(pnl), - _obj(obj), - _repr(obj->getRepr()), - _labelAttr(g_quark_from_string("inkscape:label")) - {} - - virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) - { - if ( _pnl && _obj ) { - _pnl->_objectsChanged( _obj ); - } - } - virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) - { - if ( _pnl && _obj ) { - _pnl->_objectsChanged( _obj ); - } - } - virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) - { - if ( _pnl && _obj ) { - _pnl->_objectsChanged( _obj ); - } - } - virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} - virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { - if ( _pnl && _obj ) { - if ( name == _labelAttr ) { - _pnl->_updateObject( _obj); - } - } - } - - TagsPanel* _pnl; - SPObject* _obj; - Inkscape::XML::Node* _repr; - GQuark _labelAttr; -}; - -class TagsPanel::InternalUIBounce -{ -public: - int _actionCode; -}; - -void TagsPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ) -{ - bool set = false; - - if ( iconName ) { - GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); - gtk_widget_show( child ); - btn.add( *manage(Glib::wrap(child)) ); - btn.set_relief(Gtk::RELIEF_NONE); - set = true; - } - - if ( desktop ) { - Verb *verb = Verb::get( code ); - if ( verb ) { - SPAction *action = verb->get_action(desktop); - if ( !set && action && action->image ) { - GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, action->image ); - gtk_widget_show( child ); - btn.add( *manage(Glib::wrap(child)) ); - set = true; - } - } - } - - btn.set_tooltip_text (tooltip); -} - - -Gtk::MenuItem& TagsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) -{ - GtkWidget* iconWidget = 0; - const char* label = 0; - - if ( iconName ) { - iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); - } - - if ( desktop ) { - Verb *verb = Verb::get( code ); - if ( verb ) { - SPAction *action = verb->get_action(desktop); - if ( !iconWidget && action && action->image ) { - iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); - } - - if ( action ) { - label = action->name; - } - } - } - - if ( !label && fallback ) { - label = fallback; - } - - Gtk::Widget* wrapped = 0; - if ( iconWidget ) { - wrapped = manage(Glib::wrap(iconWidget)); - wrapped->show(); - } - - - Gtk::MenuItem* item = 0; - - if (wrapped) { - item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); - } else { - item = Gtk::manage(new Gtk::MenuItem(label, true)); - } - - item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &TagsPanel::_takeAction), id)); - _popupMenu.append(*item); - - return *item; -} - -void TagsPanel::_fireAction( unsigned int code ) -{ - if ( _desktop ) { - Verb *verb = Verb::get( code ); - if ( verb ) { - SPAction *action = verb->get_action(_desktop); - if ( action ) { - sp_action_perform( action, NULL ); - } - } - } -} - -void TagsPanel::_takeAction( int val ) -{ - if ( !_pending ) { - _pending = new InternalUIBounce(); - _pending->_actionCode = val; - Glib::signal_timeout().connect( sigc::mem_fun(*this, &TagsPanel::_executeAction), 0 ); - } -} - -bool TagsPanel::_executeAction() -{ - // Make sure selected layer hasn't changed since the action was triggered - if ( _pending) - { - int val = _pending->_actionCode; -// SPObject* target = _pending->_target; - - switch ( val ) { - case BUTTON_NEW: - { - _fireAction( SP_VERB_TAG_NEW ); - } - break; - case BUTTON_TOP: - { - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_TO_TOP ); - } - else - { - _fireAction( SP_VERB_SELECTION_TO_FRONT); - } - } - break; - case BUTTON_BOTTOM: - { - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_TO_BOTTOM ); - } - else - { - _fireAction( SP_VERB_SELECTION_TO_BACK); - } - } - break; - case BUTTON_UP: - { - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_RAISE ); - } - else - { - _fireAction( SP_VERB_SELECTION_RAISE ); - } - } - break; - case BUTTON_DOWN: - { - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_LOWER ); - } - else - { - _fireAction( SP_VERB_SELECTION_LOWER ); - } - } - break; - case BUTTON_DELETE: - { - std::vector todelete; - _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); - for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { - SPObject * obj = *iter; - if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { - obj->parent->getRepr()->removeChild(obj->getRepr()); - } - } - DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); - } - break; - case DRAGNDROP: - { - _doTreeMove( ); - } - break; - } - - delete _pending; - _pending = 0; - } - - return false; -} - - -class TagsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord -{ -public: - - ModelColumns() - { - add(_colParentObject); - add(_colObject); - add(_colLabel); - add(_colAddRemove); - add(_colAllowAddRemove); - } - virtual ~ModelColumns() {} - - Gtk::TreeModelColumn _colParentObject; - Gtk::TreeModelColumn _colObject; - Gtk::TreeModelColumn _colLabel; - Gtk::TreeModelColumn _colAddRemove; - Gtk::TreeModelColumn _colAllowAddRemove; -}; - -void TagsPanel::_checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete) -{ - Gtk::TreeRow row = *iter; - SPObject * obj = row[_model->_colObject]; - if (obj && obj->parent) { - todelete->push_back(obj); - } -} - -void TagsPanel::_updateObject( SPObject *obj ) { - _store->foreach( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_checkForUpdated), obj) ); -} - -bool TagsPanel::_checkForUpdated(const Gtk::TreePath &/*path*/, const Gtk::TreeIter& iter, SPObject* obj) -{ - Gtk::TreeModel::Row row = *iter; - if ( obj == row[_model->_colObject] ) - { - /* - * We get notified of layer update here (from layer->setLabel()) before layer->label() is set - * with the correct value (sp-object bug?). So use the inkscape:label attribute instead which - * has the correct value (bug #168351) - */ - //row[_model->_colLabel] = layer->label() ? layer->label() : layer->getId(); - gchar const *label; - SPTagUse * use = SP_IS_TAG_USE(obj) ? SP_TAG_USE(obj) : 0; - if (use && use->ref->isAttached()) { - label = use->ref->getObject()->getAttribute("inkscape:label"); - } else { - label = obj->getAttribute("inkscape:label"); - } - row[_model->_colLabel] = label ? label : obj->getId(); - row[_model->_colAddRemove] = SP_IS_TAG(obj); - } - - return false; -} - -void TagsPanel::_objectsSelected( Selection *sel ) { - - _selectedConnection.block(); - _tree.get_selection()->unselect_all(); - for (const GSList * iter = sel->list(); iter != NULL; iter = iter->next) - { - SPObject *obj = reinterpret_cast(iter->data); - _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); - } - _selectedConnection.unblock(); - _checkTreeSelection(); -} - -bool TagsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj) -{ - Gtk::TreeModel::Row row = *iter; - SPObject * it = row[_model->_colObject]; - if ( it && SP_IS_TAG_USE(it) && SP_TAG_USE(it)->ref->getObject() == obj ) - { - Glib::RefPtr select = _tree.get_selection(); - - select->select(iter); - } - return false; -} - -void TagsPanel::_objectsChanged(SPObject* root) -{ - while (!_objectWatchers.empty()) - { - TagsPanel::ObjectWatcher *w = _objectWatchers.back(); - w->_repr->removeObserver(*w); - _objectWatchers.pop_back(); - delete w; - } - - if (_desktop) { - SPDocument* document = _desktop->doc(); - SPDefs* root = document->getDefs(); - if ( root ) { - _selectedConnection.block(); - _store->clear(); - _addObject( document, root, 0 ); - _selectedConnection.unblock(); - _objectsSelected(_desktop->selection); - _checkTreeSelection(); - } - } -} - -void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ) -{ - if ( _desktop && obj ) { - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG(child)) - { - Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); - Gtk::TreeModel::Row row = *iter; - row[_model->_colObject] = child; - row[_model->_colParentObject] = NULL; - row[_model->_colLabel] = child->label() ? child->label() : child->getId(); - row[_model->_colAddRemove] = true; - row[_model->_colAllowAddRemove] = true; - - _tree.expand_to_path( _store->get_path(iter) ); - - TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child); - child->getRepr()->addObserver(*w); - _objectWatchers.push_back(w); - _addObject( doc, child, &row ); - } - } - if (SP_IS_TAG(obj) && obj->children) - { - Gtk::TreeModel::iterator iteritems = parentRow ? _store->append(parentRow->children()) : _store->prepend(); - Gtk::TreeModel::Row rowitems = *iteritems; - rowitems[_model->_colObject] = NULL; - rowitems[_model->_colParentObject] = obj; - rowitems[_model->_colLabel] = _("Items"); - rowitems[_model->_colAddRemove] = false; - rowitems[_model->_colAllowAddRemove] = false; - - _tree.expand_to_path( _store->get_path(iteritems) ); - - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG_USE(child)) - { - SPItem *item = SP_TAG_USE(child)->ref->getObject(); - Gtk::TreeModel::iterator iter = _store->prepend(rowitems->children()); - Gtk::TreeModel::Row row = *iter; - row[_model->_colObject] = child; - row[_model->_colParentObject] = NULL; - row[_model->_colLabel] = item ? (item->label() ? item->label() : item->getId()) : SP_TAG_USE(child)->href; - row[_model->_colAddRemove] = false; - row[_model->_colAllowAddRemove] = true; - - if (SP_TAG(obj)->expanded()) { - _tree.expand_to_path( _store->get_path(iter) ); - } - - if (item) { - TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child, item->getRepr()); - item->getRepr()->addObserver(*w); - _objectWatchers.push_back(w); - } - } - } - } - } -} - -void TagsPanel::_select_tag( SPTag * tag ) -{ - for (SPObject * child = tag->children; child != NULL; child = child->next) - { - if (SP_IS_TAG(child)) { - _select_tag(SP_TAG(child)); - } else if (SP_IS_TAG_USE(child)) { - SPObject * obj = SP_TAG_USE(child)->ref->getObject(); - if (obj) { - if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(obj->parent); - _desktop->selection->add(obj); - } - } - } -} - -void TagsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter ) -{ - if (iter) { - Gtk::TreeModel::Row row = *iter; - SPObject *obj = row[_model->_colObject]; - if (obj) { - if (SP_IS_TAG(obj)) { - _select_tag(SP_TAG(obj)); - } else if (SP_IS_TAG_USE(obj)) { - SPObject * item = SP_TAG_USE(obj)->ref->getObject(); - if (item) { - if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); - _desktop->selection->add(item); - } - } - } - } -} - -void TagsPanel::_pushTreeSelectionToCurrent() -{ - _selectionChangedConnection.block(); - // TODO hunt down the possible API abuse in getting NULL - if ( _desktop && _desktop->currentRoot() ) { - _desktop->selection->clear(); - _tree.get_selection()->selected_foreach_iter( sigc::mem_fun(*this, &TagsPanel::_selected_row_callback)); - } - _selectionChangedConnection.unblock(); - - _checkTreeSelection(); -} - -void TagsPanel::_checkTreeSelection() -{ - bool sensitive = _tree.get_selection()->count_selected_rows() > 0; - bool sensitiveNonTop = true; - bool sensitiveNonBottom = true; -// if ( _tree.get_selection()->count_selected_rows() > 0 ) { -// sensitive = true; -// -// SPObject* inTree = _selectedLayer(); -// if ( inTree ) { -// -// sensitiveNonTop = (Inkscape::Nex(inTree->parent, inTree) != 0); -// sensitiveNonBottom = (Inkscape::previous_layer(inTree->parent, inTree) != 0); -// -// } -// } - - - for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { - (*it)->set_sensitive( sensitive ); - } - for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { - (*it)->set_sensitive( sensitiveNonTop ); - } - for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { - (*it)->set_sensitive( sensitiveNonBottom ); - } -} - -bool TagsPanel::_handleKeyEvent(GdkEventKey *event) -{ - - switch (get_group0_keyval(event)) { - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - case GDK_KEY_F2: { - Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); - if (iter && !_text_renderer->property_editable()) { - Gtk::TreeRow row = *iter; - SPObject * obj = row[_model->_colObject]; - if (obj && SP_IS_TAG(obj)) { - Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); - // Edit the layer label - _text_renderer->property_editable() = true; - _tree.set_cursor(*path, *_name_column, true); - grab_focus(); - return true; - } - } - } - case GDK_KEY_Delete: { - std::vector todelete; - _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); - if (!todelete.empty()) { - for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { - SPObject * obj = *iter; - if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { - obj->parent->getRepr()->removeChild(obj->getRepr()); - } - } - DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); - } - return true; - } - break; - } - return false; -} - -bool TagsPanel::_handleButtonEvent(GdkEventButton* event) -{ - static unsigned doubleclick = 0; - - if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { - // TODO - fix to a better is-popup function - Gtk::TreeModel::Path path; - int x = static_cast(event->x); - int y = static_cast(event->y); - if ( _tree.get_path_at_pos( x, y, path ) ) { - _checkTreeSelection(); - _popupMenu.popup(event->button, event->time); - if (_tree.get_selection()->is_selected(path)) { - return true; - } - } - } - - if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { - // Alt left click on the visible/lock columns - eat this event to keep row selection - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* col = 0; - int x = static_cast(event->x); - int y = static_cast(event->y); - int x2 = 0; - int y2 = 0; - if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { - if (col == _tree.get_column(COL_ADD-1)) { - down_at_add = true; - return true; - } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { - _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_noSelection)); - _defer_target = path; - } else { - down_at_add = false; - } - } else { - down_at_add = false; - } - } - - if ( event->type == GDK_BUTTON_RELEASE) { - _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction)); - } - - // TODO - ImageToggler doesn't seem to handle Shift/Alt clicks - so we deal with them here. - if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { - - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* col = 0; - int x = static_cast(event->x); - int y = static_cast(event->y); - int x2 = 0; - int y2 = 0; - if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { - if (_defer_target) { - if (_defer_target == path && !(event->x == 0 && event->y == 0)) - { - _tree.set_cursor(path, *col, false); - } - _defer_target = Gtk::TreeModel::Path(); - } else { - Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; - - SPObject* obj = row[_model->_colObject]; - - if (obj) { - if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { - if (SP_IS_TAG(obj)) { - bool wasadded = false; - for (const GSList * iter = _desktop->selection->itemList(); iter != NULL; iter = iter->next) - { - SPObject *newobj = reinterpret_cast(iter->data); - bool addchild = true; - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { - addchild = false; - } - } - if (addchild) { - Inkscape::XML::Node *clone = _document->getReprDoc()->createElement("inkscape:tagref"); - clone->setAttribute("xlink:href", g_strdup_printf("#%s", newobj->getRepr()->attribute("id")), false); - obj->appendChild(clone); - wasadded = true; - } - } - if (wasadded) { - DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Add selection to tag")); - } - } else { - std::vector todelete; - _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); - if (!todelete.empty()) { - for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { - SPObject * tobj = *iter; - if (tobj && tobj->parent && tobj->getRepr() && tobj->parent->getRepr()) { - tobj->parent->getRepr()->removeChild(tobj->getRepr()); - } - } - } else if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { - obj->parent->getRepr()->removeChild(obj->getRepr()); - } - DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from tags")); - } - } - } - } - } - } - - - if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { - doubleclick = 1; - } - - if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { - doubleclick = 0; - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* col = 0; - int x = static_cast(event->x); - int y = static_cast(event->y); - int x2 = 0; - int y2 = 0; - if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { - Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; - - SPObject* obj = row[_model->_colObject]; - if (obj && (SP_IS_TAG(obj) || (SP_IS_TAG_USE(obj) && SP_TAG_USE(obj)->ref->getObject()))) { - // Double click on the Layer name, enable editing - _text_renderer->property_editable() = true; - _tree.set_cursor (path, *_name_column, true); - grab_focus(); - } - } - } - - return false; -} - -void TagsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) -{ - Gtk::TreeModel::Row row = *iter; - SPObject* obj = row[_model->_colObject]; - SPTag* item = ( obj && SP_IS_TAG(obj) ) ? SP_TAG(obj) : 0; - if (item) - { - _dnd_source.push_back(item); - } -} - -/* - * Drap and drop within the tree - * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer - */ -bool TagsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) -{ - int cell_x = 0, cell_y = 0; - Gtk::TreeModel::Path target_path; - Gtk::TreeView::Column *target_column; - - _dnd_into = true; - _dnd_target = _document->getDefs(); - _dnd_source.clear(); - _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &TagsPanel::_storeDragSource)); - - if (_dnd_source.empty()) { - return true; - } - - if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { - // Are we before, inside or after the drop layer - Gdk::Rectangle rect; - _tree.get_background_area (target_path, *target_column, rect); - int cell_height = rect.get_height(); - _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); - if (cell_y > (int)(cell_height * 2/3)) { - Gtk::TreeModel::Path next_path = target_path; - next_path.next(); - if (_store->iter_is_valid(_store->get_iter(next_path))) { - target_path = next_path; - } else { - // Dragging to the "end" - Gtk::TreeModel::Path up_path = target_path; - up_path.up(); - if (_store->iter_is_valid(_store->get_iter(up_path))) { - // Drop into parent - target_path = up_path; - _dnd_into = true; - } else { - // Drop into the top level - _dnd_target = _document->getDefs(); - _dnd_into = true; - } - } - } - Gtk::TreeModel::iterator iter = _store->get_iter(target_path); - if (_store->iter_is_valid(iter)) { - Gtk::TreeModel::Row row = *iter; - SPObject *obj = row[_model->_colObject]; - SPObject *pobj = row[_model->_colParentObject]; - if (obj) { - if (SP_IS_TAG(obj)) { - _dnd_target = SP_TAG(obj); - } else if (SP_IS_TAG(obj->parent)) { - _dnd_target = SP_TAG(obj->parent); - _dnd_into = true; - } - } else if (pobj && SP_IS_TAG(pobj)) { - _dnd_target = SP_TAG(pobj); - _dnd_into = true; - } else { - return true; - } - } - } - - _takeAction(DRAGNDROP); - - return false; -} - -/* - * Move a layer in response to a drag & drop action - */ -void TagsPanel::_doTreeMove( ) -{ - if (_dnd_target) { - for (std::vector::iterator iter = _dnd_source.begin(); iter != _dnd_source.end(); ++iter) - { - SPTag *src = *iter; - if (src != _dnd_target) { - src->moveTo(_dnd_target, _dnd_into); - } - } - _desktop->selection->clear(); - while (!_dnd_source.empty()) - { - SPTag *src = _dnd_source.back(); - _select_tag(src); - _dnd_source.pop_back(); - } - DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_TAGS, - _("Moved tags")); - } -} - - -void TagsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) -{ - Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; - - _renameObject(row, new_text); - _text_renderer->property_editable() = false; -} - -void TagsPanel::_handleEditingCancelled() -{ - _text_renderer->property_editable() = false; -} - -void TagsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) -{ - if ( row && _desktop) { - SPObject* obj = row[_model->_colObject]; - if ( obj ) { - if (SP_IS_TAG(obj)) { - gchar const* oldLabel = obj->label(); - if ( !name.empty() && (!oldLabel || name != oldLabel) ) { - obj->setLabel(name.c_str()); - DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, - _("Rename object")); - } - } else if (SP_IS_TAG_USE(obj) && (obj = SP_TAG_USE(obj)->ref->getObject())) { - gchar const* oldLabel = obj->label(); - if ( !name.empty() && (!oldLabel || name != oldLabel) ) { - obj->setLabel(name.c_str()); - DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, - _("Rename object")); - } - } - } - } -} - -bool TagsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) -{ - return false; -} - -bool TagsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) -{ - bool val = true; - if ( !currentlySelected && _toggleEvent ) - { - GdkEvent* event = gtk_get_current_event(); - if ( event ) { - // (keep these checks separate, so we know when to call gdk_event_free() - if ( event->type == GDK_BUTTON_PRESS ) { - GdkEventButton const* target = reinterpret_cast(_toggleEvent); - GdkEventButton const* evtb = reinterpret_cast(event); - - if ( (evtb->window == target->window) - && (evtb->send_event == target->send_event) - && (evtb->time == target->time) - && (evtb->state == target->state) - ) - { - // Ooooh! It's a magic one - val = false; - } - } - gdk_event_free(event); - } - } - return val; -} - -void TagsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) -{ - Gtk::TreeModel::Row row = *iter; - - SPObject* obj = row[_model->_colParentObject]; - if (obj && SP_IS_TAG(obj)) - { - SP_TAG(obj)->setExpanded(isexpanded); - obj->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); - } -} - -/** - * Constructor - */ -TagsPanel::TagsPanel() : - UI::Widget::Panel("", "/dialogs/tags", SP_VERB_DIALOG_TAGS), - _rootWatcher(0), - deskTrack(), - _desktop(0), - _document(0), - _model(0), - _pending(0), - _toggleEvent(0), - _defer_target(), - desktopChangeConn() -{ - //Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - - ModelColumns *zoop = new ModelColumns(); - _model = zoop; - - _store = Gtk::TreeStore::create( *zoop ); - - _tree.set_model( _store ); - _tree.set_headers_visible(false); - _tree.set_reorderable(true); - _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); - - Inkscape::UI::Widget::AddToIcon * addRenderer = manage( new Inkscape::UI::Widget::AddToIcon()); - int addColNum = _tree.append_column("type", *addRenderer) - 1; - Gtk::TreeViewColumn *col = _tree.get_column(addColNum); - if ( col ) { - col->add_attribute( addRenderer->property_active(), _model->_colAddRemove ); - col->add_attribute( addRenderer->property_visible(), _model->_colAllowAddRemove ); - } - - _text_renderer = manage(new Gtk::CellRendererText()); - int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; - _name_column = _tree.get_column(nameColNum); - _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); - - _tree.set_expander_column( *_tree.get_column(nameColNum) ); - - _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); - _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &TagsPanel::_pushTreeSelectionToCurrent) ); - _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction) ); - - _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &TagsPanel::_handleDragDrop), false); - _collapsedConnection = _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), false)); - _expandedConnection = _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), true)); - - _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &TagsPanel::_handleEdited) ); - _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &TagsPanel::_handleEditingCancelled) ); - - _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); - _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); - _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleKeyEvent), false ); - - _scroller.add( _tree ); - _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); - _scroller.set_shadow_type(Gtk::SHADOW_IN); - Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 - Gtk::Requisition sreq_natural; - _scroller.get_preferred_size(sreq_natural, sreq); -#else - sreq = _scroller.size_request(); -#endif - int minHeight = 70; - if (sreq.height < minHeight) { - // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar - _scroller.set_size_request(sreq.width, minHeight); - } - - _layersPage.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); - - _layersPage.pack_end(_buttonsRow, Gtk::PACK_SHRINK); - - _getContents()->pack_start(_layersPage, Gtk::PACK_EXPAND_WIDGET); - - SPDesktop* targetDesktop = getDesktop(); - - Gtk::Button* btn = manage( new Gtk::Button() ); - _styleButton( *btn, targetDesktop, SP_VERB_TAG_NEW, GTK_STOCK_ADD, _("Add a new tag") ); - btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_NEW) ); - _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); - -// btn = manage( new Gtk::Button("Dup") ); -// btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &LayersPanel::_takeAction), (int)BUTTON_DUPLICATE) ); -// _buttonsRow.add( *btn ); - - btn = manage( new Gtk::Button() ); - _styleButton( *btn, targetDesktop, SP_VERB_LAYER_DELETE, GTK_STOCK_REMOVE, _("Remove Item/Tag") ); - btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_DELETE) ); - _watching.push_back( btn ); - _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); - - _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); - _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); - - // ------------------------------------------------------- - { - _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_TAG_NEW, 0, "New", (int)BUTTON_NEW ) ); - - _popupMenu.show_all_children(); - } - // ------------------------------------------------------- - - - - for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { - (*it)->set_sensitive( false ); - } - for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { - (*it)->set_sensitive( false ); - } - for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { - (*it)->set_sensitive( false ); - } - - setDesktop( targetDesktop ); - - show_all_children(); - - // restorePanelPrefs(); - - // Connect this up last - desktopChangeConn = deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &TagsPanel::setDesktop) ); - deskTrack.connect(GTK_WIDGET(gobj())); -} - -TagsPanel::~TagsPanel() -{ - - setDesktop(NULL); - - if ( _model ) - { - delete _model; - _model = 0; - } - - if (_pending) { - delete _pending; - _pending = 0; - } - - if ( _toggleEvent ) - { - gdk_event_free( _toggleEvent ); - _toggleEvent = 0; - } - - desktopChangeConn.disconnect(); - deskTrack.disconnect(); -} - -void TagsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) -{ - while (!_objectWatchers.empty()) - { - TagsPanel::ObjectWatcher *w = _objectWatchers.back(); - w->_repr->removeObserver(*w); - _objectWatchers.pop_back(); - delete w; - } - - if (_rootWatcher) - { - _rootWatcher->_repr->removeObserver(*_rootWatcher); - delete _rootWatcher; - _rootWatcher = NULL; - } - - _document = document; - - if (document && document->getDefs() && document->getDefs()->getRepr()) - { - _rootWatcher = new TagsPanel::ObjectWatcher(this, document->getDefs()); - document->getDefs()->getRepr()->addObserver(*_rootWatcher); - _objectsChanged(document->getDefs()); - } -} - -void TagsPanel::setDesktop( SPDesktop* desktop ) -{ - Panel::setDesktop(desktop); - - if ( desktop != _desktop ) { - _documentChangedConnection.disconnect(); - _selectionChangedConnection.disconnect(); - if ( _desktop ) { - _desktop = 0; - } - - _desktop = Panel::getDesktop(); - if ( _desktop ) { - //setLabel( _desktop->doc()->name ); - _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &TagsPanel::setDocument)); - _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &TagsPanel::_objectsSelected)); - - setDocument(_desktop, _desktop->doc()); - } - } -/* - GSList const *layers = _desktop->doc()->getResourceList( "layer" ); - g_message( "layers list starts at %p", layers ); - for ( GSList const *iter=layers ; iter ; iter = iter->next ) { - SPObject *layer=static_cast(iter->data); - g_message(" {%s} [%s]", layer->id, layer->label() ); - } -*/ - deskTrack.setBase(desktop); -} - - - - - -} //namespace Dialogs -} //namespace UI -} //namespace Inkscape - - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/tags.h b/src/ui/dialog/tags.h deleted file mode 100644 index d35dfba01..000000000 --- a/src/ui/dialog/tags.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * A simple dialog for tags UI. - * - * Authors: - * Theodore Janeczko - * - * Copyright (C) Theodore Janeczko 2012 - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifndef SEEN_TAGS_PANEL_H -#define SEEN_TAGS_PANEL_H - -#include -#include -#include -#include -#include -#include "ui/widget/spinbutton.h" -#include "ui/widget/panel.h" -#include "ui/widget/object-composite-settings.h" -#include "desktop-tracker.h" -#include "ui/widget/style-subject.h" -#include "selection.h" -#include "ui/widget/filter-effect-chooser.h" - -class SPObject; -class SPTag; -struct SPColorSelector; - -namespace Inkscape { - -namespace UI { -namespace Dialog { - - -/** - * A panel that displays layers. - */ -class TagsPanel : public UI::Widget::Panel -{ -public: - TagsPanel(); - virtual ~TagsPanel(); - - //virtual void setOrientation( Gtk::AnchorType how ); - - static TagsPanel& getInstance(); - - void setDesktop( SPDesktop* desktop ); - void setDocument( SPDesktop* desktop, SPDocument* document); - -protected: - //virtual void _handleAction( int setId, int itemId ); - friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); -private: - class ModelColumns; - class InternalUIBounce; - class ObjectWatcher; - - TagsPanel(TagsPanel const &); // no copy - TagsPanel &operator=(TagsPanel const &); // no assign - - void _styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ); - void _fireAction( unsigned int code ); - Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); - - bool _handleButtonEvent(GdkEventButton *event); - bool _handleKeyEvent(GdkEventKey *event); - - void _storeDragSource(const Gtk::TreeModel::iterator& iter); - bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); - void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); - void _handleEditingCancelled(); - - void _doTreeMove(); - void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); - - void _pushTreeSelectionToCurrent(); - void _selected_row_callback( const Gtk::TreeModel::iterator& iter ); - void _select_tag( SPTag * tag ); - - void _checkTreeSelection(); - - void _takeAction( int val ); - bool _executeAction(); - - void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); - - bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); - bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); - - void _updateObject(SPObject *obj); - bool _checkForUpdated(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj); - - void _objectsSelected(Selection *sel); - bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPObject* layer); - - void _objectsChanged(SPObject *root); - void _addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ); - - void _checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete); - -// std::vector groupConnections; - TagsPanel::ObjectWatcher* _rootWatcher; - std::vector _objectWatchers; - - // Hooked to the layer manager: - sigc::connection _documentChangedConnection; - sigc::connection _selectionChangedConnection; - - sigc::connection _changedConnection; - sigc::connection _addedConnection; - sigc::connection _removedConnection; - - // Internal - sigc::connection _selectedConnection; - sigc::connection _expandedConnection; - sigc::connection _collapsedConnection; - - DesktopTracker deskTrack; - SPDesktop* _desktop; - SPDocument* _document; - ModelColumns* _model; - InternalUIBounce* _pending; - gboolean _dnd_into; - std::vector _dnd_source; - SPObject* _dnd_target; - - GdkEvent* _toggleEvent; - bool down_at_add; - - Gtk::TreeModel::Path _defer_target; - - Glib::RefPtr _store; - std::vector _watching; - std::vector _watchingNonTop; - std::vector _watchingNonBottom; - - Gtk::TreeView _tree; - Gtk::CellRendererText *_text_renderer; - Gtk::TreeView::Column *_name_column; -#if WITH_GTKMM_3_0 - Gtk::Box _buttonsRow; - Gtk::Box _buttonsPrimary; - Gtk::Box _buttonsSecondary; -#else - Gtk::HBox _buttonsRow; - Gtk::HBox _buttonsPrimary; - Gtk::HBox _buttonsSecondary; -#endif - Gtk::ScrolledWindow _scroller; - Gtk::Menu _popupMenu; - Inkscape::UI::Widget::SpinButton _spinBtn; - Gtk::VBox _layersPage; - - sigc::connection desktopChangeConn; - -}; - - - -} //namespace Dialogs -} //namespace UI -} //namespace Inkscape - - - -#endif // SEEN_OBJECTS_PANEL_H - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/addtoicon.h b/src/ui/widget/addtoicon.h index aa8b4148e..9c134d231 100644 --- a/src/ui/widget/addtoicon.h +++ b/src/ui/widget/addtoicon.h @@ -13,9 +13,9 @@ #include "config.h" #endif -#include #include #include +#include namespace Inkscape { namespace UI { diff --git a/src/ui/widget/clipmaskicon.h b/src/ui/widget/clipmaskicon.h index f1c1e7628..eca852a83 100644 --- a/src/ui/widget/clipmaskicon.h +++ b/src/ui/widget/clipmaskicon.h @@ -13,9 +13,9 @@ #include "config.h" #endif -#include #include #include +#include namespace Inkscape { namespace UI { diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp index bf93fa960..2afdc02a6 100644 --- a/src/ui/widget/highlight-picker.cpp +++ b/src/ui/widget/highlight-picker.cpp @@ -7,7 +7,14 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include "display/cairo-utils.h" #include @@ -16,6 +23,7 @@ #include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" +#include namespace Inkscape { namespace UI { diff --git a/src/ui/widget/highlight-picker.h b/src/ui/widget/highlight-picker.h index 2d7dbc14e..c5fe4c02c 100644 --- a/src/ui/widget/highlight-picker.h +++ b/src/ui/widget/highlight-picker.h @@ -13,9 +13,9 @@ #include "config.h" #endif -#include #include #include +#include namespace Inkscape { namespace UI { diff --git a/src/ui/widget/insertordericon.cpp b/src/ui/widget/insertordericon.cpp index 9002a99c2..2f06225bc 100644 --- a/src/ui/widget/insertordericon.cpp +++ b/src/ui/widget/insertordericon.cpp @@ -7,6 +7,13 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif #include "ui/widget/insertordericon.h" diff --git a/src/ui/widget/layertypeicon.h b/src/ui/widget/layertypeicon.h index 4ad3f16fb..6c71ce361 100644 --- a/src/ui/widget/layertypeicon.h +++ b/src/ui/widget/layertypeicon.h @@ -13,9 +13,9 @@ #include "config.h" #endif -#include #include #include +#include namespace Inkscape { namespace UI { diff --git a/src/verbs.cpp b/src/verbs.cpp index 9c0908e93..26e5ce531 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -2043,9 +2043,9 @@ void DialogVerb::perform(SPAction *action, void *data) case SP_VERB_DIALOG_OBJECTS: dt->_dlg_mgr->showDialog("ObjectsPanel"); break; - case SP_VERB_DIALOG_TAGS: + /*case SP_VERB_DIALOG_TAGS: dt->_dlg_mgr->showDialog("TagsPanel"); - break; + break;*/ //in a moment my dear case SP_VERB_DIALOG_LIVE_PATH_EFFECT: dt->_dlg_mgr->showDialog("LivePathEffect"); break; @@ -2866,8 +2866,8 @@ Verb *Verb::_base_verbs[] = { N_("View Layers"), INKSCAPE_ICON("dialog-layers")), new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), N_("View Objects"), INKSCAPE_ICON("dialog-layers")), - new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogObjects", N_("Ta_gs..."), - N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")), + /*new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogObjects", N_("Ta_gs..."), + N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")),*/ new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), N_("Manage, edit, and apply path effects"), NULL), new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."), diff --git a/src/verbs.h b/src/verbs.h index b8a0b1fd5..1533bbd50 100644 --- a/src/verbs.h +++ b/src/verbs.h @@ -290,7 +290,7 @@ enum { SP_VERB_DIALOG_EXTENSIONEDITOR, SP_VERB_DIALOG_LAYERS, SP_VERB_DIALOG_OBJECTS, - SP_VERB_DIALOG_TAGS, +// SP_VERB_DIALOG_TAGS, SP_VERB_DIALOG_LIVE_PATH_EFFECT, SP_VERB_DIALOG_FILTER_EFFECTS, SP_VERB_DIALOG_SVG_FONTS, -- cgit v1.2.3 From fd36e8d406b5ca3bfdc575a949351c6ae4a45c57 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 8 Mar 2014 20:52:27 -0500 Subject: Remove all trace of the Tags dialog Fixed Attach Path and Fill Between Many LPEs Enabled Gradient Meshes (bzr r13090.1.21) --- configure.ac | 2 +- src/live_effects/effect.cpp | 8 ++++---- src/live_effects/lpe-attach-path.cpp | 4 ++-- src/live_effects/lpe-attach-path.h | 2 +- src/menus-skeleton.h | 1 - src/ui/dialog/swatches.cpp | 1 + 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/configure.ac b/configure.ac index 0d32691f8..e97a0f20e 100644 --- a/configure.ac +++ b/configure.ac @@ -101,7 +101,7 @@ if test "$GCC" = "yes"; then fi # Uncomment for SVG2 stuff - # CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE $CPPFLAGS" + CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE $CPPFLAGS" #### # C-specific flags... diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 2ffff153c..17b229352 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -47,7 +47,7 @@ #include "live_effects/lpe-extrude.h" #include "live_effects/lpe-powerstroke.h" #include "live_effects/lpe-clone-original.h" -//#include "live_effects/lpe-attach-path.h" +#include "live_effects/lpe-attach-path.h" #include "live_effects/lpe-fill-between-strokes.h" #include "live_effects/lpe-fill-between-many.h" #include "live_effects/lpe-ellipse_5pts.h" @@ -130,7 +130,7 @@ const Util::EnumData LPETypeData[] = { {POWERSTROKE, N_("Power stroke"), "powerstroke"}, {CLONE_ORIGINAL, N_("Clone original path"), "clone_original"}, /* Ponyscape */ -// {ATTACH_PATH, N_("Attach path"), "attach_path"}, + {ATTACH_PATH, N_("Attach path"), "attach_path"}, {FILL_BETWEEN_STROKES, N_("Fill between strokes"), "fill_between_strokes"}, {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, @@ -258,9 +258,9 @@ Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj) case CLONE_ORIGINAL: neweffect = static_cast ( new LPECloneOriginal(lpeobj) ); break; - /*case ATTACH_PATH: + case ATTACH_PATH: neweffect = static_cast ( new LPEAttachPath(lpeobj) ); - break;*/ + break; case FILL_BETWEEN_STROKES: neweffect = static_cast ( new LPEFillBetweenStrokes(lpeobj) ); break; diff --git a/src/live_effects/lpe-attach-path.cpp b/src/live_effects/lpe-attach-path.cpp index b3d5ed9b7..0cceb1cb7 100644 --- a/src/live_effects/lpe-attach-path.cpp +++ b/src/live_effects/lpe-attach-path.cpp @@ -62,9 +62,9 @@ void LPEAttachPath::resetDefaults(SPItem const * item) curve_end_previous_origin = end_path_curve_end.getOrigin(); } -void LPEAttachPath::doBeforeEffect(const SPLPEItem *lpeitem) +void LPEAttachPath::doBeforeEffect(SPLPEItem const *lpeitem) { - lpe_effect = lpeitem; + lpe_effect = const_cast (lpeitem); } void LPEAttachPath::doEffect (SPCurve * curve) diff --git a/src/live_effects/lpe-attach-path.h b/src/live_effects/lpe-attach-path.h index 3dda189d6..390282f90 100644 --- a/src/live_effects/lpe-attach-path.h +++ b/src/live_effects/lpe-attach-path.h @@ -45,7 +45,7 @@ private: ScalarParam end_path_position; TransformedPointParam end_path_curve_start; VectorParam end_path_curve_end; - const SPLPEItem * lpe_effect; + SPLPEItem * lpe_effect; }; }; //namespace LivePathEffect diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h index 422609390..f1a88cd2d 100644 --- a/src/menus-skeleton.h +++ b/src/menus-skeleton.h @@ -180,7 +180,6 @@ static char const menus_skeleton[] = " \n" " \n" " \n" -" \n" " \n" " \n" " \n" diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 34885a971..2a8471b55 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -6,6 +6,7 @@ * Jon A. Cruz * John Bintz * Abhishek Sharma + * Theodore Janezcko * * Copyright (C) 2005 Jon A. Cruz * Copyright (C) 2008 John Bintz -- cgit v1.2.3 From 13c192e2fa564c0a743e13e30b1cf6de9b1a39a6 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 12 Mar 2014 08:56:04 -0400 Subject: Reverted swatches Removed a toy effect (not ready yet) Fixed a bug with Livarot General cleanup (bzr r13090.1.23) --- configure.ac | 2 +- share/palettes/Makefile.am | 1 - share/palettes/README | 9 +- share/palettes/Tango-Palette.gpl | 2 + share/palettes/swatches.svg | 26593 --------------------- src/display/drawing-item.cpp | 5 +- src/live_effects/Makefile_insert | 4 +- src/live_effects/effect-enum.h | 2 +- src/live_effects/effect.cpp | 10 +- src/live_effects/lpe-jointype.h | 43 - src/live_effects/parameter/originalpatharray.cpp | 7 +- src/live_effects/pathoutlineprovider.h | 766 - src/path-chemistry.cpp | 8 + src/splivarot.cpp | 28 +- src/ui/dialog/color-item.cpp | 862 +- src/ui/dialog/color-item.h | 108 +- src/ui/dialog/object-properties.cpp | 1 + src/ui/dialog/objects.cpp | 227 +- src/ui/dialog/swatches.cpp | 2944 +-- src/ui/dialog/swatches.h | 153 +- src/widgets/desktop-widget.cpp | 2 +- 21 files changed, 1881 insertions(+), 29896 deletions(-) delete mode 100644 share/palettes/swatches.svg delete mode 100755 src/live_effects/lpe-jointype.h delete mode 100755 src/live_effects/pathoutlineprovider.h diff --git a/configure.ac b/configure.ac index e97a0f20e..4bb234155 100644 --- a/configure.ac +++ b/configure.ac @@ -101,7 +101,7 @@ if test "$GCC" = "yes"; then fi # Uncomment for SVG2 stuff - CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE $CPPFLAGS" + #CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE $CPPFLAGS" #### # C-specific flags... diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am index de11f67be..b25b35a06 100644 --- a/share/palettes/Makefile.am +++ b/share/palettes/Makefile.am @@ -17,7 +17,6 @@ palettes_DATA = \ Reds.gpl \ Royal.gpl \ svg.gpl \ - swatches.svg \ Tango-Palette.gpl \ Topographic.gpl \ Ubuntu.gpl \ diff --git a/share/palettes/README b/share/palettes/README index 8b04470b7..b6e7fd759 100644 --- a/share/palettes/README +++ b/share/palettes/README @@ -1,4 +1,11 @@ This is the directory with the Inkscape color palettes. They are in Gimp format (.gpl). Within Inkscape, they can be accessed by a drop-down menu in the Swatches -dialog (Ctrl+Shift+W). \ No newline at end of file +dialog (Ctrl+Shift+W). + +Internationalization + +This file is internationalized the same way as share/filters/filters/svg +The i18n.py script called from the makefile will extract strings from the *.svg +into a *.svg.h file. Intltool is then able to extracts these strings just like +from normal .h files. diff --git a/share/palettes/Tango-Palette.gpl b/share/palettes/Tango-Palette.gpl index 22dc46676..7e626737b 100644 --- a/share/palettes/Tango-Palette.gpl +++ b/share/palettes/Tango-Palette.gpl @@ -23,9 +23,11 @@ Columns: 3 239 41 41 Scarlet Red 1 204 0 0 Scarlet Red 2 164 0 0 Scarlet Red 3 +255 255 255 Snowy White 238 238 236 Aluminium 1 211 215 207 Aluminium 2 186 189 182 Aluminium 3 136 138 133 Aluminium 4 85 87 83 Aluminium 5 46 52 54 Aluminium 6 + 0 0 0 Jet Black diff --git a/share/palettes/swatches.svg b/share/palettes/swatches.svg deleted file mode 100644 index 3a13ffb6a..000000000 --- a/share/palettes/swatches.svg +++ /dev/null @@ -1,26593 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/display/drawing-item.cpp b/src/display/drawing-item.cpp index 13e7b61eb..6c7f99d42 100644 --- a/src/display/drawing-item.cpp +++ b/src/display/drawing-item.cpp @@ -808,9 +808,10 @@ DrawingItem::pick(Geom::Point const &p, double delta, unsigned flags) { // Sometimes there's no BBOX in state, reason unknown (bug 992817) // I made this not an assert to remove the warning + // This warning clutters the console output, so commented out if (!(_state & STATE_BBOX) || !(_state & STATE_PICK)) { - g_warning("Invalid state when picking: STATE_BBOX = %d, STATE_PICK = %d", - _state & STATE_BBOX, _state & STATE_PICK); + /*g_warning("Invalid state when picking: STATE_BBOX = %d, STATE_PICK = %d", + _state & STATE_BBOX, _state & STATE_PICK);*/ return NULL; } // ignore invisible and insensitive items unless sticky diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert index 76d7b418f..35a85b4aa 100644 --- a/src/live_effects/Makefile_insert +++ b/src/live_effects/Makefile_insert @@ -92,6 +92,4 @@ ink_common_sources += \ live_effects/lpe-fill-between-many.cpp \ live_effects/lpe-fill-between-many.h \ live_effects/lpe-ellipse_5pts.cpp \ - live_effects/lpe-ellipse_5pts.h \ - live_effects/lpe-jointype.cpp \ - live_effects/lpe-jointype.h + live_effects/lpe-ellipse_5pts.h diff --git a/src/live_effects/effect-enum.h b/src/live_effects/effect-enum.h index 46bc56a81..9c76875e9 100644 --- a/src/live_effects/effect-enum.h +++ b/src/live_effects/effect-enum.h @@ -55,7 +55,7 @@ enum EffectType { FILL_BETWEEN_MANY, ELLIPSE_5PTS, BOUNDING_BOX, - JOIN_TYPE, +// JOIN_TYPE, INVALID_LPE // This must be last (I made it such that it is not needed anymore I think..., Don't trust on it being last. - johan) }; diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 17b229352..eac0f79f4 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#define LPE_ENABLE_TEST_EFFECTS +//#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects #ifdef HAVE_CONFIG_H # include "config.h" @@ -52,7 +52,7 @@ #include "live_effects/lpe-fill-between-many.h" #include "live_effects/lpe-ellipse_5pts.h" #include "live_effects/lpe-bounding-box.h" -#include "live_effects/lpe-jointype.h" +//#include "live_effects/lpe-jointype.h" #include "xml/node-event-vector.h" #include "sp-object.h" @@ -109,7 +109,7 @@ const Util::EnumData LPETypeData[] = { {RECURSIVE_SKELETON, N_("Recursive skeleton"), "recursive_skeleton"}, {TANGENT_TO_CURVE, N_("Tangent to curve"), "tangent_to_curve"}, {TEXT_LABEL, N_("Text label"), "text_label"}, - {JOIN_TYPE, N_("Join type"), "join_type"}, +// {JOIN_TYPE, N_("Join type"), "join_type"}, #endif /* 0.46 */ {BEND_PATH, N_("Bend"), "bend_path"}, @@ -273,9 +273,9 @@ Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj) case BOUNDING_BOX: neweffect = static_cast ( new LPEBoundingBox(lpeobj) ); break; - case JOIN_TYPE: + /*case JOIN_TYPE: neweffect = static_cast ( new LPEJoinType(lpeobj) ); - break; + break;*/ default: g_warning("LivePathEffect::Effect::New called with invalid patheffect type (%d)", lpenr); neweffect = NULL; diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h deleted file mode 100755 index db113c66a..000000000 --- a/src/live_effects/lpe-jointype.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Authors: - * Liam P White - * - * Copyright (C) 2014 Authors - * - * Released under GNU GPL v2, read the file COPYING for more information - */ -#ifndef INKSCAPE_LPE_JOINTYPE_H -#define INKSCAPE_LPE_JOINTYPE_H - -#include "live_effects/effect.h" -#include "live_effects/parameter/parameter.h" -#include "live_effects/parameter/point.h" -#include "live_effects/parameter/enum.h" - -namespace Inkscape { -namespace LivePathEffect { - -class LPEJoinType : public Effect { -public: - LPEJoinType(LivePathEffectObject *lpeobject); - virtual ~LPEJoinType(); - - virtual void doOnApply(SPLPEItem const* lpeitem); - virtual void doOnRemove(SPLPEItem const* lpeitem); - virtual std::vector doEffect_path (std::vector const & path_in); - -private: - LPEJoinType(const LPEJoinType&); - LPEJoinType& operator=(const LPEJoinType&); - - ScalarParam line_width; - EnumParam linecap_type; - EnumParam linejoin_type; - ScalarParam miter_limit; - BoolParam attempt_force_join; - bool was_initialized; -}; - -} //namespace LivePathEffect -} //namespace Inkscape - -#endif diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp index ed47db28d..514c9e23e 100644 --- a/src/live_effects/parameter/originalpatharray.cpp +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include @@ -31,7 +32,6 @@ #include "uri.h" #include "display/curve.h" -#include #include <2geom/coord.h> #include <2geom/point.h> #include "sp-shape.h" @@ -97,8 +97,9 @@ OriginalPathArrayParam::OriginalPathArrayParam( const Glib::ustring& label, _toggle_renderer->signal_toggled().connect(sigc::mem_fun(*this, &OriginalPathArrayParam::on_reverse_toggled)); col->add_attribute(_toggle_renderer->property_active(), _model->_colReverse); - //quick little hack -- new versions of gtk did not give the item enough space - _scroller.property_height_request() = 120; + //quick little hack -- newer versions of gtk gave the item zero space allotment + _scroller.set_size_request(-1, 120); + _scroller.add(_tree); _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); //_scroller.set_shadow_type(Gtk::SHADOW_IN); diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h deleted file mode 100755 index 8aa2e38ad..000000000 --- a/src/live_effects/pathoutlineprovider.h +++ /dev/null @@ -1,766 +0,0 @@ -#pragma once - -#include <2geom/path.h> -#include <2geom/circle.h> -#include <2geom/sbasis-to-bezier.h> -#include <2geom/shape.h> -#include <2geom/transforms.h> -#include <2geom/path-sink.h> - -#include -#include - -enum LineJoinType { - LINEJOIN_STRAIGHT, - LINEJOIN_ROUND, - LINEJOIN_POINTY, - LINEJOIN_REFLECTED, - LINEJOIN_EXTRAPOLATED -}; - -namespace Geom -{ - /** - * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." - From MathWorld--A Wolfram Web Resource. - http://mathworld.wolfram.com/Circle-CircleIntersection.html - * - * @return 0 if no intersection - * @return 1 if one circle is contained in the other - * @return 2 if intersections are found (they are written to p0 and p1) - */ - static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, - Point & p0, Point & p1) - { - Point X0 = circle0.center(); - double r0 = circle0.ray(); - Point X1 = circle1.center(); - double r1 = circle1.ray(); - - /* dx and dy are the vertical and horizontal distances between - * the circle centers. - */ - Point D = X1 - X0; - - /* Determine the straight-line distance between the centers. */ - double d = L2(D); - - /* Check for solvability. */ - if (d > (r0 + r1)) - { - /* no solution. circles do not intersect. */ - return 0; - } - if (d <= fabs(r0 - r1)) - { - /* no solution. one circle is contained in the other */ - return 1; - } - - /* 'point 2' is the point where the line through the circle - * intersection points crosses the line between the circle - * centers. - */ - - /* Determine the distance from point 0 to point 2. */ - double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; - - /* Determine the coordinates of point 2. */ - Point p2 = X0 + D * (a/d); - - /* Determine the distance from point 2 to either of the - * intersection points. - */ - double h = std::sqrt((r0*r0) - (a*a)); - - /* Now determine the offsets of the intersection points from - * point 2. - */ - Point r = (h/d)*rot90(D); - - /* Determine the absolute intersection points. */ - p0 = p2 + r; - p1 = p2 - r; - - return 2; - } - /** - * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. - * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). - */ - static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) - { - D2 dM=derivative(curve); - if ( are_near(L2sq(dM(t)),0.) ) { - dM=derivative(dM); - } - if ( are_near(L2sq(dM(t)),0.) ) { // try second time - dM=derivative(dM); - } - Piecewise > unitv = unitVector(dM,tol); - Piecewise dMlength = dot(Piecewise >(dM),unitv); - Piecewise k = cross(derivative(unitv),unitv); - k = divide(k,dMlength,tol,3); - double curv = k(t); // note that this value is signed - - Geom::Point normal = unitTangentAt(curve, t).cw(); - double radius = 1/curv; - Geom::Point center = curve(t) + radius*normal; - return Geom::Circle(center, fabs(radius)); - } - - static std::vector split_at_cusps(const Geom::Path& in) - { - Geom::PathVector out = Geom::PathVector(); - Geom::Path temp = Geom::Path(); - - for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) - { - temp = Geom::Path(); - temp.append(in[path_descr]); - out.push_back(temp); - } - - return out; - } - - static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) - { - std::vector temp; - sbasis_to_bezier(temp, sbasis_in, 4); - return Geom::CubicBezier( temp ); - } - - static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, - Geom::Point const & origin_b, Geom::Point const & vector_b) - { - Geom::Coord denom = cross(vector_b, vector_a); - if (!Geom::are_near(denom,0.)){ - Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; - return origin_a + t * vector_a; - } - return boost::none; - } -} - -namespace Outline -{ - - typedef Geom::D2 D2SB; - typedef Geom::Piecewise PWD2; - - static void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve*cbc2, Geom::Point endPt, double miter_limit) -{ - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - if (cross.empty()) - { - Geom::Path pth; - pth.append(*cbc1); - - Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); - - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - - Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); - Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); - - Geom::Point points[2]; - int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); - if (solutions == 2) - { - Geom::Point sol(0,0); - if ( dot(tang2,points[0]-endPt) > 0 ) - { - // points[0] is bad, choose points[1] - sol = points[1]; - } - else if ( dot(tang2,points[1]-endPt) > 0 ) { // points[0] could be good, now check points[1] - // points[1] is bad, choose points[0] - sol = points[0]; - } - else - { - // both points are good, choose nearest - sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? - points[0] : points[1]; - } - Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); - Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); - - if (arc0) - { - path_builder.append (arc0->toSBasis()); - delete arc0; - arc0 = NULL; - } - - if (arc1) - { - path_builder.append (arc1->toSBasis()); - delete arc1; - arc1 = NULL; - } - } - else - { - path_builder.appendNew (endPt); - } - } - else - { - path_builder.appendNew (endPt); - } -} - static Geom::Path half_outline_extrp(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) - { - Geom::PathVector pv = split_at_cusps(path_in); - unsigned m; - Path path_outline = Path(); - Path path_tangent = Path(); - - Geom::Point initialPoint; - Geom::Point endPoint; - - Geom::Path path_builder = Geom::Path(); - Geom::PathVector * pathvec; - - //load the first portion in before the loop starts - { - path_outline = Path(); - path_outline.LoadPath(pv[0], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - //now half of first cusp has been loaded - - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - //instead of array accessing twice, dereferencing used for clarity - initialPoint = (*pathvec)[0].initialPoint(); - - path_builder.start(initialPoint); - path_builder.append( (*pathvec)[0] ); - - path_outline = Path(); - path_outline.LoadPath(pv[1], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - - path_builder.append( (*pathvec)[0] ); - - //always set pointers null after deleting - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - for (m = 2; m < pv.size(); m++) - { - path_outline = Path(); - path_outline.LoadPath(pv[m], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - path_builder.append( (*pathvec)[0] ); - - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - return path_builder; - } - - //Create a reflected outline join. - //Note: it is generally recommended to let half_outline do this for you! - //path_builder: the path to append the curves to - //cbc1: the curve before the join - //cbc2: the curve after the join - //endPt: the point to end at - //miter_limit: the miter parameter - static void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit) - { - //the most important work for the reflected join is done here - - //determine where we are in the path. If we're on the inside, ignore - //and just lineTo. On the outside, we'll do a little reflection magic :) - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - if (cross.empty()) - { - //probably on the outside of the corner - Geom::Path pth; - pth.append(*cbc1); - - Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); - - //reflect curves along the bevel - D2SB newcurve1 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang1) , - cbc1->finalPoint() ); - - Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); - - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - D2SB newcurve2 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang2) , - cbc2->initialPoint() ); - Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); - - cross = Geom::crossings(bzr1, bzr2); - if ( cross.empty() ) - { - //std::cout << "Oops, no crossings!" << std::endl; - //curves didn't cross; default to miter - /*boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) - { - path_builder.appendNew (*p); - }*/ - //bevel - path_builder.appendNew( endPt ); - } - else - { - //join - std::pair sub1 = bzr1.subdivide(cross[0].ta); - std::pair sub2 = bzr2.subdivide(cross[0].tb); - - //@TODO joins have a strange tendency to cross themselves twice. Check this. - - //sections commented out are for general stability - path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); - path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); - } - } - else // cross.empty() - { - //probably on the inside of the corner - path_builder.appendNew ( endPt ); - } - } - - /** @brief Converts a path to one half of an outline. - * path_in: The input path to use. (To create the other side use path_in.reverse() ) - * line_width: the line width to use (usually you want to divide this by 2) - * linecap_type: (not used here) the cap to apply. Passed to libvarot. - * miter_limit: the miter parameter - */ - static Geom::Path half_outline(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) - { - Geom::PathVector pv = split_at_cusps(path_in); - unsigned m; - Path path_outline = Path(); - Path path_tangent = Path(); - //needed for closing the path - Geom::Point initialPoint; - Geom::Point endPoint; - - //some issues prevented me from using a PathBuilder here - //it seems like PathBuilder::peek() gave me a null reference exception - //and I was unable to get a stack trace on Windows, so had to switch to Linux - //to see what the hell was wrong. :( - //I wasted five hours opening it in IDAPro, VS2012, and GDB Windows - - /*Program received signal SIGSEGV, Segmentation fault. - 0x00000000006539ac in get_curves (this=0x0) - at /usr/include/c++/4.6/bits/locale_facets.h:1077 - 1077 { return __c; } - */ - - Geom::Path path_builder = Geom::Path(); - Geom::PathVector * pathvec; - - //load the first portion in before the loop starts - { - path_outline = Path(); - path_outline.LoadPath(pv[0], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - //now half of first cusp has been loaded - - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - //instead of array accessing twice, dereferencing used for clarity - initialPoint = (*pathvec)[0].initialPoint(); - - path_builder.start(initialPoint); - path_builder.append( (*pathvec)[0] ); - - path_outline = Path(); - path_outline.LoadPath(pv[1], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - - path_builder.append( (*pathvec)[0] ); - - //always set pointers null after deleting - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - for (m = 2; m < pv.size(); m++) - { - path_outline = Path(); - path_outline.LoadPath(pv[m], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - path_builder.append( (*pathvec)[0] ); - - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - return path_builder; - } - - static Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim) - { - Path p = Path(); - Path outlinepath = Path(); - for (unsigned i = 0; i < path_in.size(); i++) - { - p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); - } - - Geom::PathVector path_out; - for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) - { - if (path_in[lmnop].size() > 1) - { - Geom::Path p_init; - Geom::Path p_rev; - Geom::PathBuilder pb = Geom::PathBuilder(); - - if ( !path_in[lmnop].closed() ) - { - p_init = Outline::half_outline( path_in[lmnop], -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline( path_in[lmnop].reverse(), -line_width, butt, - miter_lim ); - - pb.moveTo(p_init.initialPoint() ); - pb.append(p_init); - - //cap - if (butt == butt_straight) { - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } - - pb.append(p_rev); - - if (butt == butt_straight) { - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); - //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); - - pb.lineTo(p_init.initialPoint() ); - } - } - else - { - //final join - //refer to half_outline for documentation - Geom::Path p_almost = path_in[lmnop]; - p_almost.appendNew ( path_in[lmnop].initialPoint() ); - p_init = Outline::half_outline( p_almost, -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline( p_almost.reverse(), -line_width, butt, - miter_lim ); - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - - //this is a kludge, because I can't find how to make this work properly - bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), - path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == - (path_in[lmnop] [path_in[lmnop].size()].length())); - - p_almost = p_init; - if (lastIsLinear) - { - p_almost.erase_last(); p_almost.erase_last(); - } - - //outside test - Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); - Geom::Curve* cbc2 = p_almost[0].duplicate(); - - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //this is the outside path - - //reuse the old one - p_init = p_almost; - Outline::reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside, carry on :-) - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - - p_almost = p_rev; - if (lastIsLinear) - { - p_almost.erase(p_almost.begin() ); - p_almost.erase(p_almost.begin() ); - } - - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - - cbc1 = p_almost[p_almost.size() - 1].duplicate(); - cbc2 = p_almost[0].duplicate(); - - cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //outside path - - p_init = p_almost; - reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - //pb.closePath(); - pb.flush(); - Geom::PathVector pv_np = pb.peek(); - //hack - for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) - { - path_out.push_back( pv_np[abcd] ); - } - } - else - { - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - p.Outline(&outlinepath, line_width / 2, join, butt, miter_lim); - std::vector *pv_p = outlinepath.MakePathVector(); - //hack - path_out.push_back( (*pv_p)[0].reverse() ); - delete pv_p; - } - } - return path_out; - } - static Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim) - { - Path p = Path(); - Path outlinepath = Path(); - for (unsigned i = 0; i < path_in.size(); i++) - { - p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); - } - - Geom::PathVector path_out; - for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) - { - if (path_in[lmnop].size() > 1) - { - Geom::Path p_init; - Geom::Path p_rev; - Geom::PathBuilder pb = Geom::PathBuilder(); - - if ( !path_in[lmnop].closed() ) - { - p_init = Outline::half_outline_extrp( path_in[lmnop], -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline_extrp( path_in[lmnop].reverse(), -line_width, butt, - miter_lim ); - - pb.moveTo(p_init.initialPoint() ); - pb.append(p_init); - - //cap - if (butt == butt_straight) { - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } - - pb.append(p_rev); - - if (butt == butt_straight) { - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); - //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); - - pb.lineTo(p_init.initialPoint() ); - } - } - else - { - //final join - //refer to half_outline for documentation - Geom::Path p_almost = path_in[lmnop]; - p_almost.appendNew ( path_in[lmnop].initialPoint() ); - p_init = Outline::half_outline_extrp( p_almost, -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline_extrp( p_almost.reverse(), -line_width, butt, - miter_lim ); - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - - //this is a kludge, because I can't find how to make this work properly - bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), - path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == - (path_in[lmnop] [path_in[lmnop].size()].length())); - - p_almost = p_init; - if (lastIsLinear) - { - p_almost.erase_last(); p_almost.erase_last(); - } - - //outside test - Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); - Geom::Curve* cbc2 = p_almost[0].duplicate(); - - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //this is the outside path - - //reuse the old one - p_init = p_almost; - Outline::extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside, carry on :-) - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - - p_almost = p_rev; - if (lastIsLinear) - { - p_almost.erase(p_almost.begin() ); - p_almost.erase(p_almost.begin() ); - } - - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - - cbc1 = p_almost[p_almost.size() - 1].duplicate(); - cbc2 = p_almost[0].duplicate(); - - cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //outside path - - p_init = p_almost; - extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - //pb.closePath(); - pb.flush(); - Geom::PathVector pv_np = pb.peek(); - //hack - for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) - { - path_out.push_back( pv_np[abcd] ); - } - } - else - { - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - p.Outline(&outlinepath, line_width / 2, join_pointy, butt, miter_lim); - std::vector *pv_p = outlinepath.MakePathVector(); - //hack - path_out.push_back( (*pv_p)[0].reverse() ); - delete pv_p; - } - } - return path_out; - } - - -} // namespace Outline - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 5f478435d..456af3731 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -22,6 +22,7 @@ #include "xml/repr.h" #include "svg/svg.h" #include "display/curve.h" +#include "color.h" #include #include #include "sp-path.h" @@ -438,6 +439,10 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec gchar *title = item->title(); // remember description gchar *desc = item->desc(); + // remember highlight color + guint32 highlight_color = 0; + if (item->isHighlightSet()) + highlight_color = item->highlight_color(); // It's going to resurrect, so we delete without notifying listeners. item->deleteObject(false); @@ -455,6 +460,9 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec newObj->setDesc(desc); g_free(desc); } + if (highlight_color && newObj) { + SP_ITEM(newObj)->setHighlightColor( highlight_color ); + } // move to the saved position repr->setPosition(pos > 0 ? pos : 0); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 5c7b389ff..1eab73b62 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -1339,6 +1339,10 @@ sp_selected_path_outline(SPDesktop *desktop) gchar *title = item->title(); // remember description gchar *desc = item->desc(); + // remember highlight color + guint32 highlight_color = 0; + if (item->isHighlightSet()) + highlight_color = item->highlight_color(); if (res->descr_cmd.size() > 1) { // if there's 0 or 1 node left, drop this path altogether @@ -1381,6 +1385,9 @@ sp_selected_path_outline(SPDesktop *desktop) if (desc) { newitem->setDesc(desc); } + if (highlight_color && newitem) { + newitem->setHighlightColor( highlight_color ); + } SPShape *shape = SP_SHAPE(item); @@ -1456,13 +1463,23 @@ sp_selected_path_outline(SPDesktop *desktop) g_repr, xml_doc, doc ); } } + //bug 1290573: completely destroy the old object first to prevent + //an ID clash, which has issues on undo + curve->unref(); + selection->remove(item); + item->deleteObject(false); selection->add(g_repr); Inkscape::GC::release(g_repr); - - } else { + } else + { + //bug 1290573: completely destroy the old object first to prevent + //an ID clash, which has issues on undo + curve->unref(); + selection->remove(item); + item->deleteObject(false); // add the new repr to the parent parent->appendChild(repr); @@ -1481,6 +1498,9 @@ sp_selected_path_outline(SPDesktop *desktop) if (desc) { newitem->setDesc(desc); } + if (highlight_color && newitem) { + newitem->setHighlightColor( highlight_color ); + } selection->add(repr); @@ -1488,10 +1508,6 @@ sp_selected_path_outline(SPDesktop *desktop) Inkscape::GC::release(repr); - curve->unref(); - selection->remove(item); - item->deleteObject(false); - } if (title) { g_free(title); diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index a1951ec48..bab7e18e1 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -11,8 +11,18 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include +#include #include #include @@ -35,216 +45,766 @@ #include "xml/repr.h" #include "verbs.h" #include "widgets/gradient-vector.h" -#include "sp-paint-server.h" #include "color.h" // for SP_RGBA32_U_COMPOSE -#include namespace Inkscape { namespace UI { namespace Dialogs { +static std::vector mimeStrings; +static std::map mimeToInt; + -bool ColorItem::on_enter_notify_event(GdkEventCrossing* event) +#if ENABLE_MAGIC_COLORS +// TODO remove this soon: +extern std::vector possible; +#endif // ENABLE_MAGIC_COLORS + + +#if ENABLE_MAGIC_COLORS +static bool bruteForce( SPDocument* document, Inkscape::XML::Node* node, Glib::ustring const& match, int r, int g, int b ) { - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if ( desktop ) { - gchar* msg = g_strdup_printf(_("Color: %s; Click to set fill, Shift+click to set stroke"),def); - desktop->tipsMessageContext()->set(Inkscape::INFORMATION_MESSAGE, msg); - g_free(msg); + bool changed = false; + + if ( node ) { + gchar const * val = node->attribute("inkscape:x-fill-tag"); + if ( val && (match == val) ) { + SPObject *obj = document->getObjectByRepr( node ); + + gchar c[64] = {0}; + sp_svg_write_color( c, sizeof(c), SP_RGBA32_U_COMPOSE( r, g, b, 0xff ) ); + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_set_property( css, "fill", c ); + + sp_desktop_apply_css_recursive( obj, css, true ); + static_cast(obj)->updateRepr(); + + changed = true; + } + + val = node->attribute("inkscape:x-stroke-tag"); + if ( val && (match == val) ) { + SPObject *obj = document->getObjectByRepr( node ); + + gchar c[64] = {0}; + sp_svg_write_color( c, sizeof(c), SP_RGBA32_U_COMPOSE( r, g, b, 0xff ) ); + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_set_property( css, "stroke", c ); + + sp_desktop_apply_css_recursive( (SPItem*)obj, css, true ); + ((SPItem*)obj)->updateRepr(); + + changed = true; + } + + Inkscape::XML::Node* first = node->firstChild(); + changed |= bruteForce( document, first, match, r, g, b ); + + changed |= bruteForce( document, node->next(), match, r, g, b ); } - return Gtk::Widget::on_enter_notify_event(event); + + return changed; +} +#endif // ENABLE_MAGIC_COLORS + +static void handleClick( GtkWidget* /*widget*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + item->buttonClicked(false); + } +} + +static void handleSecondaryClick( GtkWidget* /*widget*/, gint /*arg1*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + item->buttonClicked(true); + } +} + +static gboolean handleEnterNotify( GtkWidget* /*widget*/, GdkEventCrossing* /*event*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if ( desktop ) { + gchar* msg = g_strdup_printf(_("Color: %s; Click to set fill, Shift+click to set stroke"), + item->def.descr.c_str()); + desktop->tipsMessageContext()->set(Inkscape::INFORMATION_MESSAGE, msg); + g_free(msg); + } + } + return FALSE; +} + +static gboolean handleLeaveNotify( GtkWidget* /*widget*/, GdkEventCrossing* /*event*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if ( desktop ) { + desktop->tipsMessageContext()->clear(); + } + } + return FALSE; } -bool ColorItem::on_leave_notify_event(GdkEventCrossing* event) +static void dieDieDie( GObject *obj, gpointer user_data ) { - SPDesktop *desktop = SP_ACTIVE_DESKTOP; - if ( desktop ) { - desktop->tipsMessageContext()->clear(); + g_message("die die die %p %p", obj, user_data ); +} + +static bool getBlock( std::string& dst, guchar ch, std::string const & str ) +{ + bool good = false; + std::string::size_type pos = str.find(ch); + if ( pos != std::string::npos ) + { + std::string::size_type pos2 = str.find( '(', pos ); + if ( pos2 != std::string::npos ) { + std::string::size_type endPos = str.find( ')', pos2 ); + if ( endPos != std::string::npos ) { + dst = str.substr( pos2 + 1, (endPos - pos2 - 1) ); + good = true; + } + } } - return Gtk::Widget::on_leave_notify_event(event); + return good; } -void ColorItem::selection_modified(Selection* selection, guint flags) +static bool popVal( guint64& numVal, std::string& str ) { - selection_changed(selection); + bool good = false; + std::string::size_type endPos = str.find(','); + if ( endPos == std::string::npos ) { + endPos = str.length(); + } + + if ( endPos != std::string::npos && endPos > 0 ) { + std::string xxx = str.substr( 0, endPos ); + const gchar* ptr = xxx.c_str(); + gchar* endPtr = 0; + numVal = g_ascii_strtoull( ptr, &endPtr, 10 ); + if ( (numVal == G_MAXUINT64) && (ERANGE == errno) ) { + // overflow + } else if ( (numVal == 0) && (endPtr == ptr) ) { + // failed conversion + } else { + good = true; + str.erase( 0, endPos + 1 ); + } + } + + return good; } -void ColorItem::selection_changed(Selection* selection) +// TODO resolve this more cleanly: +extern gboolean colorItemHandleButtonPress( GtkWidget* /*widget*/, GdkEventButton* event, gpointer user_data); + +static void colorItemDragBegin( GtkWidget */*widget*/, GdkDragContext* dc, gpointer data ) { - SPItem* item = selection->singleItem(); - SPPaintServer* grad; - if (item && - ( - (item->style->fill.isPaintserver() && - SP_IS_GRADIENT( (grad = item->style->getFillPaintServer()) ) - && SP_GRADIENT(grad)->getVector() == gradient) || - - (item->style->stroke.isPaintserver() && - SP_IS_GRADIENT( (grad = item->style->getStrokePaintServer()) ) && - SP_GRADIENT(grad)->getVector() == gradient) - ) - ) + ColorItem* item = reinterpret_cast(data); + if ( item ) { - if (!_isSelected) { - _isSelected = true; - queue_draw(); + using Inkscape::IO::Resource::get_path; + using Inkscape::IO::Resource::ICONS; + using Inkscape::IO::Resource::SYSTEM; + int width = 32; + int height = 24; + + if (item->def.getType() != ege::PaintDef::RGB){ + GError *error = NULL; + gsize bytesRead = 0; + gsize bytesWritten = 0; + gchar *localFilename = g_filename_from_utf8( get_path(SYSTEM, ICONS, "remove-color.png"), + -1, + &bytesRead, + &bytesWritten, + &error); + GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file_at_scale(localFilename, width, height, FALSE, &error); + g_free(localFilename); + gtk_drag_set_icon_pixbuf( dc, pixbuf, 0, 0 ); + } else { + GdkPixbuf* pixbuf = 0; + if ( item->getGradient() ){ + cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); + cairo_pattern_t *gradient = sp_gradient_create_preview_pattern(item->getGradient(), width); + cairo_t *ct = cairo_create(s); + cairo_set_source(ct, gradient); + cairo_paint(ct); + cairo_destroy(ct); + cairo_pattern_destroy(gradient); + cairo_surface_flush(s); + + pixbuf = ink_pixbuf_create_from_cairo_surface(s); + } else { + Glib::RefPtr thumb = Gdk::Pixbuf::create( Gdk::COLORSPACE_RGB, false, 8, width, height ); + guint32 fillWith = (0xff000000 & (item->def.getR() << 24)) + | (0x00ff0000 & (item->def.getG() << 16)) + | (0x0000ff00 & (item->def.getB() << 8)); + thumb->fill( fillWith ); + pixbuf = thumb->gobj(); + g_object_ref(G_OBJECT(pixbuf)); + } + gtk_drag_set_icon_pixbuf( dc, pixbuf, 0, 0 ); } - } else if (_isSelected) { - _isSelected = false; - queue_draw(); } + +} + +//"drag-drop" +// gboolean dragDropColorData( GtkWidget *widget, +// GdkDragContext *drag_context, +// gint x, +// gint y, +// guint time, +// gpointer user_data) +// { +// // TODO finish + +// return TRUE; +// } + + +SwatchPage::SwatchPage() + : _prefWidth(0) +{ } -ColorItem::ColorItem( SPGradient* grad, const gchar* name, SPDesktop* desktop ) : - Glib::ObjectBase("coloritem"), - Gtk::Widget(), - def( name ), - gradient(grad), - _isSelected(false) +SwatchPage::~SwatchPage() { - set_has_window(true); - add_events(Gdk::BUTTON_PRESS_MASK); - add_events(Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); - sel_connection = desktop->selection->connectChanged(sigc::mem_fun(*this, &ColorItem::selection_changed)); - mod_connection = desktop->selection->connectModified(sigc::mem_fun(*this, &ColorItem::selection_modified)); - selection_changed(desktop->selection); } -void ColorItem::on_size_request(Gtk::Requisition* requisition) + +ColorItem::ColorItem(ege::PaintDef::ColorType type) : + def(type), + _isFill(false), + _isStroke(false), + _isLive(false), + _linkIsTone(false), + _linkPercent(0), + _linkGray(0), + _linkSrc(0), + _grad(0), + _pattern(0) { - requisition->height = 20; - requisition->width = 20; } -void ColorItem::on_size_allocate(Gtk::Allocation& allocation) +ColorItem::ColorItem( unsigned int r, unsigned int g, unsigned int b, Glib::ustring& name ) : + def( r, g, b, name ), + _isFill(false), + _isStroke(false), + _isLive(false), + _linkIsTone(false), + _linkPercent(0), + _linkGray(0), + _linkSrc(0), + _grad(0), + _pattern(0) { - set_allocation(allocation); - if (m_refGdkWindow) - { - m_refGdkWindow->move_resize( allocation.get_x(), allocation.get_y(), allocation.get_width(), allocation.get_height() ); +} + +ColorItem::~ColorItem() +{ + if (_pattern != NULL) { + cairo_pattern_destroy(_pattern); + } +} + +ColorItem::ColorItem(ColorItem const &other) : + Inkscape::UI::Previewable() +{ + if ( this != &other ) { + *this = other; + } +} + +ColorItem &ColorItem::operator=(ColorItem const &other) +{ + if ( this != &other ) { + def = other.def; + + // TODO - correct linkage + _linkSrc = other._linkSrc; + g_message("Erk!"); + } + return *this; +} + +void ColorItem::setState( bool fill, bool stroke ) +{ + if ( (_isFill != fill) || (_isStroke != stroke) ) { + _isFill = fill; + _isStroke = stroke; + + for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { + Gtk::Widget* widget = *it; + if ( IS_EEK_PREVIEW(widget->gobj()) ) { + EekPreview * preview = EEK_PREVIEW(widget->gobj()); + + int val = eek_preview_get_linked( preview ); + val &= ~(PREVIEW_FILL | PREVIEW_STROKE); + if ( _isFill ) { + val |= PREVIEW_FILL; + } + if ( _isStroke ) { + val |= PREVIEW_STROKE; + } + eek_preview_set_linked( preview, static_cast(val) ); + } + } + } +} + +void ColorItem::setGradient(SPGradient *grad) +{ + if (_grad != grad) { + _grad = grad; + // TODO regen and push to listeners } + + setName( gr_prepare_label(_grad) ); } -void ColorItem::on_map() +void ColorItem::setName(const Glib::ustring name) { - Gtk::Widget::on_map(); + //def.descr = name; + + for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { + Gtk::Widget* widget = *it; + if ( IS_EEK_PREVIEW(widget->gobj()) ) { + gtk_widget_set_tooltip_text(GTK_WIDGET(widget->gobj()), name.c_str()); + } + else if ( GTK_IS_LABEL(widget->gobj()) ) { + gtk_label_set_text(GTK_LABEL(widget->gobj()), name.c_str()); + } + } } -void ColorItem::on_unmap() +void ColorItem::setPattern(cairo_pattern_t *pattern) { - Gtk::Widget::on_unmap(); + if (pattern) { + cairo_pattern_reference(pattern); + } + if (_pattern) { + cairo_pattern_destroy(_pattern); + } + _pattern = pattern; + + _updatePreviews(); } -void ColorItem::on_realize() +void ColorItem::_dragGetColorData( GtkWidget */*widget*/, + GdkDragContext */*drag_context*/, + GtkSelectionData *data, + guint info, + guint /*time*/, + gpointer user_data) +{ + ColorItem* item = reinterpret_cast(user_data); + std::string key; + if ( info < mimeStrings.size() ) { + key = mimeStrings[info]; + } else { + g_warning("ERROR: unknown value (%d)", info); + } + + if ( !key.empty() ) { + char* tmp = 0; + int len = 0; + int format = 0; + item->def.getMIMEData(key, tmp, len, format); + if ( tmp ) { + GdkAtom dataAtom = gdk_atom_intern( key.c_str(), FALSE ); + gtk_selection_data_set( data, dataAtom, format, (guchar*)tmp, len ); + delete[] tmp; + } + } +} + +void ColorItem::_dropDataIn( GtkWidget */*widget*/, + GdkDragContext */*drag_context*/, + gint /*x*/, gint /*y*/, + GtkSelectionData */*data*/, + guint /*info*/, + guint /*event_time*/, + gpointer /*user_data*/) { - set_realized(); - ensure_style(); - - if(!m_refGdkWindow) - { - //Create the GdkWindow: - - GdkWindowAttr attributes; - memset(&attributes, 0, sizeof(attributes)); - - Gtk::Allocation allocation = get_allocation(); - - //Set initial position and size of the Gdk::Window: - attributes.x = allocation.get_x(); - attributes.y = allocation.get_y(); - attributes.width = allocation.get_width(); - attributes.height = allocation.get_height(); - - attributes.event_mask = get_events () | Gdk::EXPOSURE_MASK; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - - m_refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, - GDK_WA_X | GDK_WA_Y); - set_window(m_refGdkWindow); - - //Attach this widget's style to its Gdk::Window. - style_attach(); - - //make the widget receive expose events - m_refGdkWindow->set_user_data(gobj()); - } } -void ColorItem::on_unrealize() +void ColorItem::_colorDefChanged(void* data) { - m_refGdkWindow.reset(); - - Gtk::Widget::on_unrealize(); + ColorItem* item = reinterpret_cast(data); + if ( item ) { + item->_updatePreviews(); + } } -bool ColorItem::on_expose_event(GdkEventExpose* event) +void ColorItem::_updatePreviews() { - if(m_refGdkWindow) + for ( std::vector::iterator it = _previews.begin(); it != _previews.end(); ++it ) { + Gtk::Widget* widget = *it; + if ( IS_EEK_PREVIEW(widget->gobj()) ) { + EekPreview * preview = EEK_PREVIEW(widget->gobj()); + + _regenPreview(preview); + + widget->queue_draw(); + } + } + + for ( std::vector::iterator it = _listeners.begin(); it != _listeners.end(); ++it ) { + guint r = def.getR(); + guint g = def.getG(); + guint b = def.getB(); + + if ( (*it)->_linkIsTone ) { + r = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * r) ) / 100; + g = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * g) ) / 100; + b = ( ((*it)->_linkPercent * (*it)->_linkGray) + ((100 - (*it)->_linkPercent) * b) ) / 100; + } else { + r = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * r) ) / 100; + g = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * g) ) / 100; + b = ( ((*it)->_linkPercent * 255) + ((100 - (*it)->_linkPercent) * b) ) / 100; + } + + (*it)->def.setRGB( r, g, b ); + } + + +#if ENABLE_MAGIC_COLORS + // Look for objects using this color { - Cairo::RefPtr cr = m_refGdkWindow->create_cairo_context(); - if(event) + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if ( desktop ) { + SPDocument* document = sp_desktop_document( desktop ); + Inkscape::XML::Node *rroot = document->getReprRoot(); + if ( rroot ) { + + // Find where this thing came from + Glib::ustring paletteName; + bool found = false; + int index = 0; + for ( std::vector::iterator it2 = possible.begin(); it2 != possible.end() && !found; ++it2 ) { + SwatchPage* curr = *it2; + index = 0; + for ( boost::ptr_vector::iterator zz = curr->_colors.begin(); zz != curr->_colors.end(); ++zz ) { + if ( this == &*zz ) { + found = true; + paletteName = curr->_name; + break; + } else { + index++; + } + } + } + + if ( !paletteName.empty() ) { + gchar* str = g_strdup_printf("%d|", index); + paletteName.insert( 0, str ); + g_free(str); + str = 0; + + if ( bruteForce( document, rroot, paletteName, def.getR(), def.getG(), def.getB() ) ) { + SPDocumentUndo::done( document , SP_VERB_DIALOG_SWATCHES, + _("Change color definition")); + } + } + } + } + } +#endif // ENABLE_MAGIC_COLORS + +} + +void ColorItem::_regenPreview(EekPreview * preview) +{ + if ( def.getType() != ege::PaintDef::RGB ) { + using Inkscape::IO::Resource::get_path; + using Inkscape::IO::Resource::ICONS; + using Inkscape::IO::Resource::SYSTEM; + GError *error = NULL; + gsize bytesRead = 0; + gsize bytesWritten = 0; + gchar *localFilename = g_filename_from_utf8( get_path(SYSTEM, ICONS, "remove-color.png"), + -1, + &bytesRead, + &bytesWritten, + &error); + GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file(localFilename, &error); + if (!pixbuf) { + g_warning("Null pixbuf for %p [%s]", localFilename, localFilename ); + } + g_free(localFilename); + + eek_preview_set_pixbuf( preview, pixbuf ); + } + else if ( !_pattern ){ + eek_preview_set_color( preview, + (def.getR() << 8) | def.getR(), + (def.getG() << 8) | def.getG(), + (def.getB() << 8) | def.getB() ); + } else { + // These correspond to PREVIEW_PIXBUF_WIDTH and VBLOCK from swatches.cpp + // TODO: the pattern to draw should be in the widget that draws the preview, + // so the preview can be scalable + int w = 128; + int h = 16; + + cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h); + cairo_t *ct = cairo_create(s); + cairo_set_source(ct, _pattern); + cairo_paint(ct); + cairo_destroy(ct); + cairo_surface_flush(s); + + GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s); + eek_preview_set_pixbuf( preview, pixbuf ); + } + + eek_preview_set_linked( preview, (LinkType)((_linkSrc ? PREVIEW_LINK_IN:0) + | (_listeners.empty() ? 0:PREVIEW_LINK_OUT) + | (_isLive ? PREVIEW_LINK_OTHER:0)) ); +} + +Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewSize size, guint ratio, guint border) +{ + Gtk::Widget* widget = 0; + if ( style == PREVIEW_STYLE_BLURB) { + Gtk::Label *lbl = new Gtk::Label(def.descr); + lbl->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + widget = lbl; + } else { + GtkWidget* eekWidget = eek_preview_new(); + EekPreview * preview = EEK_PREVIEW(eekWidget); + Gtk::Widget* newBlot = Glib::wrap(eekWidget); + _regenPreview(preview); + + eek_preview_set_details( preview, + (::ViewType)view, + (::PreviewSize)size, + ratio, + border ); + + def.addCallback( _colorDefChanged, this ); + eek_preview_set_focus_on_click(preview, FALSE); + newBlot->set_tooltip_text(def.descr); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "clicked", + G_CALLBACK(handleClick), + this); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "alt-clicked", + G_CALLBACK(handleSecondaryClick), + this); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "button-press-event", + G_CALLBACK(colorItemHandleButtonPress), + this); + { - // clip to the area that needs to be re-exposed so we don't draw any - // more than we need to. - cr->rectangle(event->area.x, event->area.y, event->area.width, event->area.height); - cr->clip(); + std::vector listing = def.getMIMETypes(); + int entryCount = listing.size(); + GtkTargetEntry* entries = new GtkTargetEntry[entryCount]; + GtkTargetEntry* curr = entries; + for ( std::vector::iterator it = listing.begin(); it != listing.end(); ++it ) { + curr->target = g_strdup(it->c_str()); + curr->flags = 0; + if ( mimeToInt.find(*it) == mimeToInt.end() ){ + // these next lines are order-dependent: + mimeToInt[*it] = mimeStrings.size(); + mimeStrings.push_back(*it); + } + curr->info = mimeToInt[curr->target]; + curr++; + } + gtk_drag_source_set( GTK_WIDGET(newBlot->gobj()), + GDK_BUTTON1_MASK, + entries, entryCount, + GdkDragAction(GDK_ACTION_MOVE | GDK_ACTION_COPY) ); + for ( int i = 0; i < entryCount; i++ ) { + g_free(entries[i].target); + } + delete[] entries; } - if (gradient) { - cairo_pattern_t *check = ink_cairo_pattern_create_checkerboard(); - - Cairo::RefPtr checkpat(new Cairo::Pattern(check)); - - cr->set_source(checkpat); - cr->paint(); - - cairo_pattern_t *g = sp_gradient_create_preview_pattern(gradient, get_allocation().get_width()); - Cairo::RefPtr gpat(new Cairo::Pattern(g)); - cr->set_source(gpat); - cr->paint(); - gpat.clear(); - cairo_pattern_destroy(g); - - checkpat.clear(); - - cairo_pattern_destroy(check); - - if (_isSelected) { - cr->set_source_rgb(0, 0, 0); - cr->set_line_width(3); - cr->move_to(0, get_allocation().get_height()); - cr->line_to(0,0); - cr->line_to(get_allocation().get_width(), 0); - cr->stroke(); - cr->move_to(get_allocation().get_width(), 0); - cr->set_source_rgb(1, 1, 1); - cr->line_to(get_allocation().get_width(), get_allocation().get_height()); - cr->line_to(0, get_allocation().get_height()); - //cr->rectangle(0, 0, get_allocation().get_width(), get_allocation().get_height()); - cr->stroke(); + g_signal_connect( G_OBJECT(newBlot->gobj()), + "drag-data-get", + G_CALLBACK(ColorItem::_dragGetColorData), + this); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "drag-begin", + G_CALLBACK(colorItemDragBegin), + this ); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "enter-notify-event", + G_CALLBACK(handleEnterNotify), + this); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "leave-notify-event", + G_CALLBACK(handleLeaveNotify), + this); + + g_signal_connect( G_OBJECT(newBlot->gobj()), + "destroy", + G_CALLBACK(dieDieDie), + this); + + + widget = newBlot; + } + + _previews.push_back( widget ); + + return widget; +} + +void ColorItem::buttonClicked(bool secondary) +{ + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if (desktop) { + char const * attrName = secondary ? "stroke" : "fill"; + + SPCSSAttr *css = sp_repr_css_attr_new(); + Glib::ustring descr; + switch (def.getType()) { + case ege::PaintDef::CLEAR: { + // TODO actually make this clear + sp_repr_css_set_property( css, attrName, "none" ); + descr = secondary? _("Remove stroke color") : _("Remove fill color"); + break; + } + case ege::PaintDef::NONE: { + sp_repr_css_set_property( css, attrName, "none" ); + descr = secondary? _("Set stroke color to none") : _("Set fill color to none"); + break; + } +//mark + case ege::PaintDef::RGB: { + Glib::ustring colorspec; + if ( _grad ){ + colorspec = "url(#"; + colorspec += _grad->getId(); + colorspec += ")"; + } else { + gchar c[64]; + guint32 rgba = (def.getR() << 24) | (def.getG() << 16) | (def.getB() << 8) | 0xff; + sp_svg_write_color(c, sizeof(c), rgba); + colorspec = c; + } +//end mark + sp_repr_css_set_property( css, attrName, colorspec.c_str() ); + descr = secondary? _("Set stroke color from swatch") : _("Set fill color from swatch"); + break; } - } else { - cr->set_source_rgb(1, 1, 1); - cr->paint(); - cr->set_source_rgb(1, 0, 0); - cr->set_line_width(3); - cr->move_to(0,0); - cr->line_to(get_allocation().get_width(), get_allocation().get_height()); - cr->move_to(get_allocation().get_width(), 0); - cr->line_to(0, get_allocation().get_height()); - cr->stroke(); } + sp_desktop_set_style(desktop, css); + sp_repr_css_attr_unref(css); + + DocumentUndo::done( sp_desktop_document(desktop), SP_VERB_DIALOG_SWATCHES, descr.c_str() ); } - return true; } -ColorItem::~ColorItem() +void ColorItem::_wireMagicColors( SwatchPage *colorSet ) +{ + if ( colorSet ) + { + for ( boost::ptr_vector::iterator it = colorSet->_colors.begin(); it != colorSet->_colors.end(); ++it ) + { + std::string::size_type pos = it->def.descr.find("*{"); + if ( pos != std::string::npos ) + { + std::string subby = it->def.descr.substr( pos + 2 ); + std::string::size_type endPos = subby.find("}*"); + if ( endPos != std::string::npos ) + { + subby.erase( endPos ); + //g_message("FOUND MAGIC at '%s'", (*it)->def.descr.c_str()); + //g_message(" '%s'", subby.c_str()); + + if ( subby.find('E') != std::string::npos ) + { + it->def.setEditable( true ); + } + + if ( subby.find('L') != std::string::npos ) + { + it->_isLive = true; + } + + std::string part; + // Tint. index + 1 more val. + if ( getBlock( part, 'T', subby ) ) { + guint64 colorIndex = 0; + if ( popVal( colorIndex, part ) ) { + guint64 percent = 0; + if ( popVal( percent, part ) ) { + it->_linkTint( colorSet->_colors[colorIndex], percent ); + } + } + } + + // Shade/tone. index + 1 or 2 more val. + if ( getBlock( part, 'S', subby ) ) { + guint64 colorIndex = 0; + if ( popVal( colorIndex, part ) ) { + guint64 percent = 0; + if ( popVal( percent, part ) ) { + guint64 grayLevel = 0; + if ( !popVal( grayLevel, part ) ) { + grayLevel = 0; + } + it->_linkTone( colorSet->_colors[colorIndex], percent, grayLevel ); + } + } + } + + } + } + } + } +} + + +void ColorItem::_linkTint( ColorItem& other, int percent ) +{ + if ( !_linkSrc ) + { + other._listeners.push_back(this); + _linkIsTone = false; + _linkPercent = percent; + if ( _linkPercent > 100 ) + _linkPercent = 100; + if ( _linkPercent < 0 ) + _linkPercent = 0; + _linkGray = 0; + _linkSrc = &other; + + ColorItem::_colorDefChanged(&other); + } +} + +void ColorItem::_linkTone( ColorItem& other, int percent, int grayLevel ) { - sel_connection.disconnect(); - mod_connection.disconnect(); + if ( !_linkSrc ) + { + other._listeners.push_back(this); + _linkIsTone = true; + _linkPercent = percent; + if ( _linkPercent > 100 ) + _linkPercent = 100; + if ( _linkPercent < 0 ) + _linkPercent = 0; + _linkGray = grayLevel; + _linkSrc = &other; + + ColorItem::_colorDefChanged(&other); + } } } // namespace Dialogs diff --git a/src/ui/dialog/color-item.h b/src/ui/dialog/color-item.h index 5d97d8803..3a0b33193 100644 --- a/src/ui/dialog/color-item.h +++ b/src/ui/dialog/color-item.h @@ -15,11 +15,7 @@ #include #include "widgets/ege-paint-def.h" -#include "widgets/eek-preview.h" -#include -#include -#include "desktop.h" -#include "selection.h" +#include "ui/previewable.h" class SPGradient; @@ -27,43 +23,89 @@ namespace Inkscape { namespace UI { namespace Dialogs { +class ColorItem; + +class SwatchPage +{ +public: + SwatchPage(); + ~SwatchPage(); + + Glib::ustring _name; + int _prefWidth; + boost::ptr_vector _colors; +}; + /** * The color swatch you see on screen as a clickable box. */ -class ColorItem : public Gtk::Widget +class ColorItem : public Inkscape::UI::Previewable { + friend void _loadPaletteFile( gchar const *filename ); public: - ColorItem( SPGradient * grad, const gchar* name, SPDesktop* desktop ); + ColorItem( ege::PaintDef::ColorType type ); + ColorItem( unsigned int r, unsigned int g, unsigned int b, + Glib::ustring& name ); virtual ~ColorItem(); - - SPGradient * getGradient() { return gradient; } - -protected: - - const gchar* def; - SPGradient * gradient; - virtual bool on_enter_notify_event(GdkEventCrossing* event); - virtual bool on_leave_notify_event(GdkEventCrossing* event); - - virtual void on_size_request(Gtk::Requisition* requisition); - virtual void on_size_allocate(Gtk::Allocation& allocation); - virtual void on_map(); - virtual void on_unmap(); - virtual void on_realize(); - virtual void on_unrealize(); - virtual bool on_expose_event(GdkEventExpose* event); - - Glib::RefPtr m_refGdkWindow; - - + ColorItem(ColorItem const &other); + virtual ColorItem &operator=(ColorItem const &other); + virtual Gtk::Widget* getPreview(PreviewStyle style, + ViewType view, + ::PreviewSize size, + guint ratio, + guint border); + void buttonClicked(bool secondary = false); + + void setGradient(SPGradient *grad); + SPGradient * getGradient() const { return _grad; } + void setPattern(cairo_pattern_t *pattern); + void setName(const Glib::ustring name); + + void setState( bool fill, bool stroke ); + bool isFill() { return _isFill; } + bool isStroke() { return _isStroke; } + + ege::PaintDef def; + private: - void selection_changed(Selection* selection); - void selection_modified(Selection* selection, guint flags); - sigc::connection sel_connection; - sigc::connection mod_connection; - bool _isSelected; + static void _dropDataIn( GtkWidget *widget, + GdkDragContext *drag_context, + gint x, gint y, + GtkSelectionData *data, + guint info, + guint event_time, + gpointer user_data); + + static void _dragGetColorData( GtkWidget *widget, + GdkDragContext *drag_context, + GtkSelectionData *data, + guint info, + guint time, + gpointer user_data); + + static void _wireMagicColors( SwatchPage *colorSet ); + static void _colorDefChanged(void* data); + + void _updatePreviews(); + void _regenPreview(EekPreview * preview); + + void _linkTint( ColorItem& other, int percent ); + void _linkTone( ColorItem& other, int percent, int grayLevel ); + + std::vector _previews; + + bool _isFill; + bool _isStroke; + bool _isLive; + bool _linkIsTone; + int _linkPercent; + int _linkGray; + ColorItem* _linkSrc; + SPGradient* _grad; + cairo_pattern_t *_pattern; + std::vector _listeners; }; } // namespace Dialogs diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index 82b2cf6b1..8f36cba43 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -467,6 +467,7 @@ void ObjectProperties::label_changed(void) blocked = true; /* Retrieve the label widget for the object's id */ + //bug 1290573: getId() crashes after undo (cannot create string from NULL ptr) gchar *id = g_strdup(EntryID.get_text().c_str()); g_strcanon (id, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.:", '_'); if (!strcmp (id, item->getId())) { diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index ebfa16f02..2095546fb 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -3,6 +3,7 @@ * * Authors: * Theodore Janeczko + * Tweaked by Liam P White for use in Inkscape * * Copyright (C) Theodore Janeczko 2012 * @@ -17,20 +18,31 @@ #include #include #include +#include #include #include "desktop.h" #include "desktop-style.h" +#include "dialogs/dialog-events.h" #include "document.h" #include "document-undo.h" +#include "filter-chemistry.h" +#include "filters/blend.h" +#include "filters/gaussian-blur.h" #include "helper/action.h" #include "inkscape.h" +#include "layer-manager.h" #include "preferences.h" +#include "selection.h" +#include "sp-clippath.h" +#include "sp-mask.h" #include "sp-item.h" #include "sp-object.h" +#include "sp-root.h" #include "sp-shape.h" -#include "svg/css-ostringstream.h" +#include "style.h" +#include "tools-switch.h" #include "ui/icon-names.h" #include "ui/widget/imagetoggler.h" #include "ui/widget/layertypeicon.h" @@ -38,29 +50,16 @@ #include "ui/widget/clipmaskicon.h" #include "ui/widget/highlight-picker.h" #include "ui/tools/node-tool.h" +#include "ui/tools/tool-base.h" #include "verbs.h" +#include "widgets/sp-color-notebook.h" #include "widgets/icon.h" #include "xml/node.h" #include "xml/node-observer.h" #include "xml/repr.h" -#include "sp-root.h" -//#include "event-context.h" -#include "selection.h" -#include "dialogs/dialog-events.h" -#include "widgets/sp-color-notebook.h" -#include "style.h" -#include "filter-chemistry.h" -#include "filters/blend.h" -#include "filters/gaussian-blur.h" -#include "sp-clippath.h" -#include "sp-mask.h" -#include "layer-manager.h" -#include "tools-switch.h" //#define DUMP_LAYERS 1 -guint get_group0_keyval(GdkEventKey *event); - namespace Inkscape { namespace UI { namespace Dialog { @@ -82,7 +81,7 @@ enum { COL_VISIBLE = 1, COL_LOCKED, COL_TYPE, - COL_INSERTORDER, +// COL_INSERTORDER, COL_CLIPMASK, COL_HIGHLIGHT }; @@ -106,8 +105,8 @@ enum { BUTTON_LOCK_ALL, BUTTON_UNLOCK_ALL, BUTTON_SETCLIP, - BUTTON_CLIPGROUP, - BUTTON_SETINVCLIP, +// BUTTON_CLIPGROUP, +// BUTTON_SETINVCLIP, BUTTON_UNSETCLIP, BUTTON_SETMASK, BUTTON_UNSETMASK, @@ -214,7 +213,7 @@ public: add(_colType); add(_colHighlight); add(_colClipMask); - add(_colInsertOrder); + //add(_colInsertOrder); } virtual ~ModelColumns() {} @@ -225,7 +224,7 @@ public: Gtk::TreeModelColumn _colType; Gtk::TreeModelColumn _colHighlight; Gtk::TreeModelColumn _colClipMask; - Gtk::TreeModelColumn _colInsertOrder; + //Gtk::TreeModelColumn _colInsertOrder; }; /** @@ -352,13 +351,19 @@ void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); Gtk::TreeModel::Row row = *iter; row[_model->_colObject] = item; - row[_model->_colLabel] = item->label() ? item->label() : item->getId(); + //this seems to crash on convert stroke to path then undo (probably no ID?) + try { + row[_model->_colLabel] = item->label() ? item->label() : item->getId(); + } catch (...) { + row[_model->_colLabel] = Glib::ustring("getId_failure"); + g_critical("item->getId() failed, using \"getId_failure\""); + } row[_model->_colVisible] = !item->isHidden(); row[_model->_colLocked] = !item->isSensitive(); row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; row[_model->_colHighlight] = item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00; row[_model->_colClipMask] = item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0); - row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; + //row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; //If our parent object is a group and it's expanded, expand the tree if (SP_IS_GROUP(obj) && SP_GROUP(obj)->expanded()) @@ -388,7 +393,10 @@ void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) */ void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { //Find the object in the tree store and update it + + //mark _store->foreach_iter( sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_checkForUpdated), obj) ); + //end mark if (recurse) { for (SPObject * iter = obj->children; iter != NULL; iter = iter->next) @@ -419,7 +427,7 @@ bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj) row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0; row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0; row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0; - row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; + //row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0; return true; } @@ -685,7 +693,9 @@ void ObjectsPanel::_setLockedIter( const Gtk::TreeModel::iterator& iter, const b bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event) { - switch (get_group0_keyval(event)) { + bool empty = _desktop->selection->isEmpty(); + + switch (Inkscape::UI::Tools::get_group0_keyval(event)) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: case GDK_KEY_F2: @@ -702,68 +712,33 @@ bool ObjectsPanel::_handleKeyEvent(GdkEventKey *event) } break; case GDK_Home: - { //Move item(s) to top of containing group/layer - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_TO_TOP ); - } - else - { - _fireAction( SP_VERB_SELECTION_TO_FRONT ); - } - return true; - } + _fireAction( empty ? SP_VERB_LAYER_TO_TOP : SP_VERB_SELECTION_TO_FRONT ); + break; case GDK_End: - { //Move item(s) to bottom of containing group/layer - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_TO_BOTTOM ); - } - else - { - _fireAction( SP_VERB_SELECTION_TO_BACK ); - } - return true; - } + _fireAction( empty ? SP_VERB_LAYER_TO_BOTTOM : SP_VERB_SELECTION_TO_BACK ); + break; case GDK_KEY_Page_Up: { //Move item(s) up in containing group/layer - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_RAISE ); - } - else - { - if (event->state & GDK_SHIFT_MASK) { - _fireAction( SP_VERB_LAYER_MOVE_TO_NEXT ); - } else { - _fireAction( SP_VERB_SELECTION_RAISE ); - } - } - return true; + int ch = event->state & GDK_SHIFT_MASK ? SP_VERB_LAYER_MOVE_TO_NEXT : SP_VERB_SELECTION_RAISE; + _fireAction( empty ? SP_VERB_LAYER_RAISE : ch ); + break; } case GDK_KEY_Page_Down: { //Move item(s) down in containing group/layer - if (_desktop->selection->isEmpty()) - { - _fireAction( SP_VERB_LAYER_LOWER ); - } - else - { - if (event->state & GDK_SHIFT_MASK) { - _fireAction( SP_VERB_LAYER_MOVE_TO_PREV ); - } else { - _fireAction( SP_VERB_SELECTION_LOWER ); - } - } - return true; + int ch = event->state & GDK_SHIFT_MASK ? SP_VERB_LAYER_MOVE_TO_PREV : SP_VERB_SELECTION_LOWER; + _fireAction( empty ? SP_VERB_LAYER_LOWER : ch ); + break; } + //TODO: Handle Ctrl-A, etc. + default: + return false; } - return false; + return true; } /** @@ -809,7 +784,7 @@ bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) return true; } else if (col == _tree.get_column(COL_LOCKED-1) || col == _tree.get_column(COL_TYPE-1) || - col == _tree.get_column(COL_INSERTORDER - 1) || + //col == _tree.get_column(COL_INSERTORDER - 1) || col == _tree.get_column(COL_HIGHLIGHT-1)) { //Click on an icon column, eat this event to keep row selection return true; @@ -926,7 +901,7 @@ bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, newValue? _("Layer to group") : _("Group to layer")); } - } else if (col == _tree.get_column(COL_INSERTORDER - 1)) { + } /*else if (col == _tree.get_column(COL_INSERTORDER - 1)) { if (SP_IS_GROUP(item)) { //Toggle the current item's insert order @@ -938,7 +913,7 @@ bool ObjectsPanel::_handleButtonEvent(GdkEventButton* event) DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_OBJECTS, newValue? _("Set insert mode bottom") : _("Set insert mode top")); } - } else if (col == _tree.get_column(COL_HIGHLIGHT - 1)) { + }*/ else if (col == _tree.get_column(COL_HIGHLIGHT - 1)) { //Clear the highlight targets _highlight_target.clear(); if (_tree.get_selection()->is_selected(path)) @@ -1474,7 +1449,7 @@ void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject * cp) target->setHighlightColor(rgba); target->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); } - DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_OBJECTS, _("Set object highlight color")); + DocumentUndo::maybeDone(SP_ACTIVE_DOCUMENT, "highlight", SP_VERB_DIALOG_OBJECTS, _("Set object highlight color")); } /** @@ -1689,13 +1664,13 @@ ObjectsPanel::ObjectsPanel() : col->add_attribute( typeRenderer->property_active(), _model->_colType ); } - //Insert order - Inkscape::UI::Widget::InsertOrderIcon * insertRenderer = Gtk::manage( new Inkscape::UI::Widget::InsertOrderIcon()); + //Insert order (LiamW: unused) + /*Inkscape::UI::Widget::InsertOrderIcon * insertRenderer = Gtk::manage( new Inkscape::UI::Widget::InsertOrderIcon()); int insertColNum = _tree.append_column("type", *insertRenderer) - 1; col = _tree.get_column(insertColNum); if ( col ) { col->add_attribute( insertRenderer->property_active(), _model->_colInsertOrder ); - } + }*/ //Clip/mask Inkscape::UI::Widget::ClipMaskIcon * clipRenderer = Gtk::manage( new Inkscape::UI::Widget::ClipMaskIcon()); @@ -1807,43 +1782,102 @@ ObjectsPanel::ObjectsPanel() : SPDesktop* targetDesktop = getDesktop(); //Set up the button row + + + //Add object/layer Gtk::Button* btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_ADD, _("New Layer") ); + btn->set_tooltip_text(_("Add layer...")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("list-add"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + Gtk::Image *image_add = Gtk::manage(new Gtk::Image()); + image_add->set_from_icon_name(INKSCAPE_ICON("list-add"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_add); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_NEW) ); _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + + //Remove object btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_REMOVE, _("Remove") ); + btn->set_tooltip_text(_("Remove object")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("list-remove"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + Gtk::Image *image_remove = Gtk::manage(new Gtk::Image()); + image_remove->set_from_icon_name(INKSCAPE_ICON("list-remove"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_remove); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DELETE) ); _watching.push_back( btn ); _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + //Move to bottom btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_GOTO_BOTTOM, _("Move To Bottom") ); + btn->set_tooltip_text(_("Move To Bottom")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("go-bottom"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + image_remove = Gtk::manage(new Gtk::Image()); + image_remove->set_from_icon_name(INKSCAPE_ICON("go-bottom"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_remove); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_BOTTOM) ); _watchingNonBottom.push_back( btn ); _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); - + + //Move down btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_GO_DOWN, _("Move Down") ); + btn->set_tooltip_text(_("Move Down")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("go-down"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + image_remove = Gtk::manage(new Gtk::Image()); + image_remove->set_from_icon_name(INKSCAPE_ICON("go-down"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_remove); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_DOWN) ); _watchingNonBottom.push_back( btn ); _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + //Move up btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_GO_UP, _("Move Up") ); + btn->set_tooltip_text(_("Move Up")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("go-up"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + image_remove = Gtk::manage(new Gtk::Image()); + image_remove->set_from_icon_name(INKSCAPE_ICON("go-up"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_remove); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_UP) ); _watchingNonTop.push_back( btn ); _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); + //Move to top btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_GOTO_TOP, _("Move To Top") ); + btn->set_tooltip_text(_("Move To Top")); +#if GTK_CHECK_VERSION(3,10,0) + btn->set_image_from_icon_name(INKSCAPE_ICON("go-top"), Gtk::ICON_SIZE_SMALL_TOOLBAR); +#else + image_remove = Gtk::manage(new Gtk::Image()); + image_remove->set_from_icon_name(INKSCAPE_ICON("go-top"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image(*image_remove); +#endif + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_TOP) ); _watchingNonTop.push_back( btn ); _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); - btn = Gtk::manage( new Gtk::Button() ); - _styleButton( *btn, GTK_STOCK_UNINDENT, _("Collapse All") ); + //Collapse all + btn = Gtk::manage( new Gtk::Button(Gtk::Stock::UNINDENT) ); + btn->set_tooltip_text(_("Collapse All")); + btn->set_relief(Gtk::RELIEF_NONE); btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_takeAction), (int)BUTTON_COLLAPSE_ALL) ); _watchingNonBottom.push_back( btn ); _buttonsPrimary.pack_end(*btn, Gtk::PACK_SHRINK); @@ -2042,15 +2076,6 @@ void ObjectsPanel::setDesktop( SPDesktop* desktop ) //should be okay to put these here because they are never referenced anywhere else using namespace Inkscape::UI::Tools; -guint get_group0_keyval(GdkEventKey *event) { - guint keyval = 0; - gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( - gdk_display_get_default()), event->hardware_keycode, - (GdkModifierType) event->state, 0 /*event->key.group*/, &keyval, - NULL, NULL, NULL); - return keyval; -} - void SPItem::setHighlightColor(guint32 const color) { g_free(_highlightColor); @@ -2065,7 +2090,7 @@ void SPItem::setHighlightColor(guint32 const color) NodeTool *tool = 0; if (SP_ACTIVE_DESKTOP ) { - ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; + Inkscape::UI::Tools::ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; if (INK_IS_NODE_TOOL(ec)) { tool = static_cast(ec); tools_switch(tool->desktop, TOOLS_NODES); @@ -2079,7 +2104,7 @@ void SPItem::unsetHighlightColor() _highlightColor = NULL; NodeTool *tool = 0; if (SP_ACTIVE_DESKTOP ) { - ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; + Inkscape::UI::Tools::ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; if (INK_IS_NODE_TOOL(ec)) { tool = static_cast(ec); tools_switch(tool->desktop, TOOLS_NODES); diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 2a8471b55..807618b4d 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -6,7 +6,6 @@ * Jon A. Cruz * John Bintz * Abhishek Sharma - * Theodore Janezcko * * Copyright (C) 2005 Jon A. Cruz * Copyright (C) 2008 John Bintz @@ -21,7 +20,6 @@ #include "swatches.h" #include -#include #include #include @@ -47,6 +45,7 @@ #include "sp-gradient.h" #include "sp-gradient-vector.h" #include "style.h" +#include "ui/previewholder.h" #include "widgets/desktop-widget.h" #include "widgets/gradient-vector.h" #include "widgets/eek-preview.h" @@ -57,2305 +56,1130 @@ #include "verbs.h" #include "gradient-chemistry.h" #include "helper/action.h" -#include "xml/node-observer.h" -#include "xml/repr.h" -#include "sp-pattern.h" -#include "icon-size.h" -#include "widgets/icon.h" -#include "filedialog.h" -#include "sp-stop.h" -#include "svg/svg-color.h" -#include "sp-radial-gradient.h" -#include "color-rgba.h" -#include "ui/tools/tool-base.h" -#include "svg/css-ostringstream.h" -#include -#ifdef WIN32 -#include -#endif - -//lazy! -void sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill); +#include "helper/action-context.h" namespace Inkscape { namespace UI { namespace Dialogs { -#define SWATCHES_FILE_NAME "swatches.svg" - -static char* trim( char* str ) { - char* ret = str; - while ( *str && (*str == ' ' || *str == '\t') ) { - str++; - } - ret = str; - while ( *str ) { - str++; - } - str--; - while ( str > ret && (( *str == ' ' || *str == '\t' ) || *str == '\r' || *str == '\n') ) { - *str-- = 0; - } - return ret; -} - -static void skipWhitespace( char*& str ) { - while ( *str == ' ' || *str == '\t' ) { - str++; - } -} - -static bool parseNum( char*& str, int& val ) { - val = 0; - while ( '0' <= *str && *str <= '9' ) { - val = val * 10 + (*str - '0'); - str++; - } - bool retval = !(*str == 0 || *str == ' ' || *str == '\t' || *str == '\r' || *str == '\n'); - return retval; -} - -static char * SwatchFile; -static SPDocument * SwatchDocument; -static unsigned int page_suffix; - -static void loadPalletFile() -{ - if (!SwatchDocument) { - SwatchFile=g_build_filename(INKSCAPE_PALETTESDIR, _("swatches.svg"), NULL); - SwatchDocument=SPDocument::createNewDoc (SwatchFile, TRUE); - if (!SwatchDocument) { - SwatchDocument = SPDocument::createNewDoc(NULL, TRUE, true); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } - } -} - -static void addStop( Inkscape::XML::Node *parent, Glib::ustring const &color, gfloat opacity, gchar const *offset ) -{ -#ifdef SP_GR_VERBOSE - g_message("addStop(%p, %s, %d, %s)", parent, color.c_str(), opacity, offset); -#endif - Inkscape::XML::Node *stop = parent->document()->createElement("svg:stop"); - { - gchar *tmp = g_strdup_printf( "stop-color:%s;stop-opacity:%f;", color.c_str(), opacity < 0.0 ? 0.0 : (opacity > 1.0 ? 1.0 : opacity) ); - stop->setAttribute( "style", tmp ); - g_free(tmp); - } - - stop->setAttribute( "offset", offset ); - - parent->appendChild(stop); - Inkscape::GC::release(stop); -} - -static SPGroup* importGPL(SPDocument* doc, const gchar* full) -{ - SPGroup* ret = NULL; - if ( !Inkscape::IO::file_test( full, G_FILE_TEST_IS_DIR ) ) { - - /*Load the pallet file here*/ - char block[1024]; - FILE *f = Inkscape::IO::fopen_utf8name( full, "r" ); - if ( f ) { - char* result = fgets( block, sizeof(block), f ); - if ( result ) { - if ( strncmp( "GIMP Palette", block, 12 ) == 0 ) { - bool inHeader = true; - bool hasErr = false; - - Inkscape::XML::Node * page = doc->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (doc->getObjectById(id)); - - page->setAttribute("id", id); - - do { - result = fgets( block, sizeof(block), f ); - block[sizeof(block) - 1] = 0; - if ( result ) { - if ( block[0] == '#' ) { - // ignore comment - } else { - char *ptr = block; - // very simple check for header versus entry - while ( *ptr == ' ' || *ptr == '\t' ) { - ptr++; - } - if ( (*ptr == 0) || (*ptr == '\r') || (*ptr == '\n') ) { - // blank line. skip it. - } else if ( '0' <= *ptr && *ptr <= '9' ) { - // should be an entry link - inHeader = false; - ptr = block; - Glib::ustring name(""); - skipWhitespace(ptr); - if ( *ptr ) { - int r = 0; - int g = 0; - int b = 0; - hasErr = parseNum(ptr, r); - if ( !hasErr ) { - skipWhitespace(ptr); - hasErr = parseNum(ptr, g); - } - if ( !hasErr ) { - skipWhitespace(ptr); - hasErr = parseNum(ptr, b); - } - if ( !hasErr && *ptr ) { - char* n = trim(ptr); - if (n != NULL) { - name = g_dpgettext2(NULL, "Palette", n); - } - } - if ( !hasErr ) { - // Add the entry now - - Inkscape::XML::Node *grad = doc->getReprDoc()->createElement("svg:linearGradient"); - grad->setAttribute("inkscape:label", name.c_str()); - grad->setAttribute( "osb:paint", "solid", 0 ); - SPColor color((float)r / 255, (float)g / 255, (float)b / 255); - addStop(grad, color.toString(), 1, "0"); - page->appendChild(grad); - Inkscape::GC::release(grad); - } - } else { - hasErr = true; - } - } else { - if ( !inHeader ) { - // Hmmm... probably bad. Not quite the format we want? - hasErr = true; - } else { - char* sep = strchr(result, ':'); - if ( sep ) { - *sep = 0; - char* val = trim(sep + 1); - char* name = trim(result); - if ( *name ) { - if ( strcmp( "Name", name ) == 0 ) - { - page->setAttribute("inkscape:label", val); - } - } else { - // error - hasErr = true; - } - } else { - // error - hasErr = true; - } - } - } - } - } - } while ( result && !hasErr ); - if ( !hasErr ) { - doc->getDefs()->appendChild(page); - Inkscape::GC::release(page); - SPObject* obj = doc->getObjectByRepr(page); - if (SP_IS_GROUP(obj)) { - ret = SP_GROUP(obj); - } - #if ENABLE_MAGIC_COLORS - ColorItem::_wireMagicColors( onceMore ); - #endif // ENABLE_MAGIC_COLORS - } else { - delete page; - } - } - } - - fclose(f); - } - /* end loading the pallet file*/ - } - return ret; -} - -SwatchesPanel& SwatchesPanel::getInstance() -{ - return *new SwatchesPanel(); -} - -class SwatchesPanel::StopWatcher : public Inkscape::XML::NodeObserver { -public: - StopWatcher(SwatchesPanel* pnl, SPStop* obj) : - _pnl(pnl), - _obj(obj), - _repr(obj->getRepr()) - { - _repr->addObserver(*this); - } - - ~StopWatcher() { - _repr->removeObserver(*this); - } - - virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ){} - virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ){} - virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ){} - virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} - - virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { - if (_pnl && _obj) { - _pnl->_defsChanged( ); - } - } +#define VBLOCK 16 +#define PREVIEW_PIXBUF_WIDTH 128 - SwatchesPanel* _pnl; - SPStop* _obj; - Inkscape::XML::Node* _repr; -}; +void _loadPaletteFile( gchar const *filename, gboolean user=FALSE ); -class SwatchesPanel::GradientWatcher : public Inkscape::XML::NodeObserver { -public: - GradientWatcher(SwatchesPanel* pnl, SPGradient* obj) : - _pnl(pnl), - _obj(obj), - _repr(obj->getRepr()), - _labelAttr(g_quark_from_string("inkscape:label")), - _swatchAttr(g_quark_from_string("osb:paint")) - { - _repr->addObserver(*this); - } - - ~GradientWatcher() { - _repr->removeObserver(*this); - } - - virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ) - { - if ( _pnl && _obj && _obj->isSwatch()) { - _pnl->_defsChanged( ); - } - } - virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*prev*/ ) - { - if ( _pnl && _obj && _obj->isSwatch() ) { - _pnl->_defsChanged( ); - } - } - virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &/*child*/, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ) - { - if ( _pnl && _obj && _obj->isSwatch() ) { - _pnl->_defsChanged( ); - } - } - virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} - virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { - if (_pnl && _obj && ((_obj->isSwatch() && name == _labelAttr) || name == _swatchAttr)) { - _pnl->_defsChanged( ); - } - } - - SwatchesPanel* _pnl; - SPGradient* _obj; - Inkscape::XML::Node* _repr; - GQuark _labelAttr; - GQuark _swatchAttr; -}; - -class SwatchesPanel::SwatchWatcher : public Inkscape::XML::NodeObserver { -public: - SwatchWatcher(SwatchesPanel* pnl, SPObject* obj, bool builtIn) : - _pnl(pnl), - _obj(obj), - _builtIn(builtIn), - _repr(obj->getRepr()), - _labelAttr(g_quark_from_string("inkscape:label")), - _swatchAttr(g_quark_from_string("osb:paint")) - { - _repr->addObserver(*this); - } - - ~SwatchWatcher() { - _repr->removeObserver(*this); - } - - virtual void notifyChildAdded( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*prev*/ ) - { - if ( _pnl && _obj) { - SPObject *childobj = _builtIn ? SwatchDocument->getObjectByRepr(&child) : (_pnl->_currentDocument ? _pnl->_currentDocument->getObjectByRepr(&child) : 0); - if (childobj && ((SP_IS_GRADIENT(childobj) && SP_GRADIENT(childobj)->hasStops()) || SP_IS_GROUP(childobj))) { - if (_builtIn) { - _pnl->_swatchesChanged( ); - } else { - _pnl->_defsChanged( ); - } - } - } - } - virtual void notifyChildRemoved( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*prev*/ ) - { - if ( _pnl && _obj) { - if (_builtIn) { - _pnl->_swatchesChanged( ); - } else { - _pnl->_defsChanged( ); - } - } - } - virtual void notifyChildOrderChanged( Inkscape::XML::Node &/*node*/, Inkscape::XML::Node &child, Inkscape::XML::Node */*old_prev*/, Inkscape::XML::Node */*new_prev*/ ) - { - if ( _pnl && _obj) { - SPObject *childobj = _builtIn ? SwatchDocument->getObjectByRepr(&child) : (_pnl->_currentDocument ? _pnl->_currentDocument->getObjectByRepr(&child) : 0); - if (childobj && ((SP_IS_GRADIENT(childobj) && SP_GRADIENT(childobj)->hasStops()) || SP_IS_GROUP(childobj))) { - if (_builtIn) { - _pnl->_swatchesChanged( ); - } else { - _pnl->_defsChanged( ); - } - } - } - } - virtual void notifyContentChanged( Inkscape::XML::Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} - virtual void notifyAttributeChanged( Inkscape::XML::Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { - if (_pnl && _obj && name == _labelAttr) { - if (_builtIn) { - _pnl->_swatchesChanged( ); - } else { - _pnl->_defsChanged( ); - } - } - } +std::list userSwatchPages; +std::list systemSwatchPages; +static std::map docPalettes; +static std::vector docTrackings; +static std::map docPerPanel; - SwatchesPanel* _pnl; - SPObject* _obj; - bool _builtIn; - Inkscape::XML::Node* _repr; - GQuark _labelAttr; - GQuark _swatchAttr; -}; -class SwatchesPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord +class SwatchesPanelHook : public SwatchesPanel { public: - - ModelColumns() - { - add(_colObject); - add(_colLabel); - } - virtual ~ModelColumns() {} - - Gtk::TreeModelColumn _colObject; - Gtk::TreeModelColumn _colLabel; + static void convertGradient( GtkMenuItem *menuitem, gpointer userData ); + static void deleteGradient( GtkMenuItem *menuitem, gpointer userData ); }; -class SwatchesPanel::ModelColumnsDoc : public Gtk::TreeModel::ColumnRecord -{ -public: - - ModelColumnsDoc() - { - add(_colObject); - add(_colLabel); - add(_colPixbuf); +static void handleClick( GtkWidget* /*widget*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + item->buttonClicked(false); } - virtual ~ModelColumnsDoc() {} - - Gtk::TreeModelColumn _colObject; - Gtk::TreeModelColumn _colLabel; - Gtk::TreeModelColumn > _colPixbuf; -}; +} -static void StripChildGroups(Inkscape::XML::Node * node, SPObject* addTo) -{ - for (Inkscape::XML::Node * it = node->firstChild(); it != NULL;) { - if (!strcmp(it->name(), "svg:g")) { - Inkscape::XML::Node * todel = it; - it = it->next(); - node->removeChild(todel); - } else { - it = it->next(); - } +static void handleSecondaryClick( GtkWidget* /*widget*/, gint /*arg1*/, gpointer callback_data ) { + ColorItem* item = reinterpret_cast(callback_data); + if ( item ) { + item->buttonClicked(true); } - addTo->appendChildRepr(node); } -static void BubbleChildGroups(Inkscape::XML::Node * node, SPObject* addTo) +static GtkWidget* popupMenu = 0; +static GtkWidget *popupSubHolder = 0; +static GtkWidget *popupSub = 0; +static std::vector popupItems; +static std::vector popupExtras; +static ColorItem* bounceTarget = 0; +static SwatchesPanel* bouncePanel = 0; + +static void redirClick( GtkMenuItem *menuitem, gpointer /*user_data*/ ) { - std::queue groups; - for (Inkscape::XML::Node * it = node->firstChild(); it != NULL; ) { - if (!strcmp(it->name(), "svg:g")) { - groups.push(it->duplicate(addTo->document->getReprDoc())); - Inkscape::XML::Node * todel = it; - it = it->next(); - node->removeChild(todel); - } else { - it = it->next(); - } - } - addTo->appendChildRepr(node); - while (!groups.empty()) { - Inkscape::XML::Node * it = groups.front(); - groups.pop(); - BubbleChildGroups(it, addTo); - Inkscape::GC::release(it); + if ( bounceTarget ) { + handleClick( GTK_WIDGET(menuitem), bounceTarget ); } } -void SwatchesPanel::_addSwatchButtonClicked(SPGroup* swatch, bool recurse) +static void redirSecondaryClick( GtkMenuItem *menuitem, gpointer /*user_data*/ ) { - if (_currentDocument) { - if (swatch && SP_IS_GROUP(swatch) ) { - Inkscape::XML::Node * copy = swatch->getRepr()->duplicate(_currentDocument->getReprDoc()); - if (recurse) { - BubbleChildGroups(copy, _currentDocument->getDefs()); - } else { - StripChildGroups(copy, _currentDocument->getDefs()); - } - Inkscape::GC::release(copy); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add swatches to document")); - } + if ( bounceTarget ) { + handleSecondaryClick( GTK_WIDGET(menuitem), 0, bounceTarget ); } } -void SwatchesPanel::_importButtonClicked(bool addToDoc, bool addToBI) +static void editGradientImpl( SPDesktop* desktop, SPGradient* gr ) { - if (addToDoc || addToBI) { - //# Get the current directory for finding files - static Glib::ustring open_path; - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - - if(open_path.empty()) - { - Glib::ustring attr = prefs->getString("/dialogs/open/path"); - if (!attr.empty()) open_path = attr; - } - - //# Test if the open_path directory exists - if (!Inkscape::IO::file_test(open_path.c_str(), - (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) - open_path = ""; - - #ifdef WIN32 - //# If no open path, default to our win32 documents folder - if (open_path.empty()) - { - // The path to the My Documents folder is read from the - // value "HKEY_CURRENT_USER\Software\Windows\CurrentVersion\Explorer\Shell Folders\Personal" - HKEY key = NULL; - if(RegOpenKeyExA(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", - 0, KEY_QUERY_VALUE, &key) == ERROR_SUCCESS) - { - WCHAR utf16path[_MAX_PATH]; - DWORD value_type; - DWORD data_size = sizeof(utf16path); - if(RegQueryValueExW(key, L"Personal", NULL, &value_type, - (BYTE*)utf16path, &data_size) == ERROR_SUCCESS) - { - g_assert(value_type == REG_SZ); - gchar *utf8path = g_utf16_to_utf8( - (const gunichar2*)utf16path, -1, NULL, NULL, NULL); - if(utf8path) - { - open_path = Glib::ustring(utf8path); - g_free(utf8path); + if ( gr ) { + bool shown = false; + if ( desktop && desktop->doc() ) { + Inkscape::Selection *selection = sp_desktop_selection( desktop ); + GSList const *items = selection->itemList(); + if (items) { + SPStyle *query = sp_style_new( desktop->doc() ); + int result = objects_query_fillstroke(const_cast(items), query, true); + if ( (result == QUERY_STYLE_MULTIPLE_SAME) || (result == QUERY_STYLE_SINGLE) ) { + // could be pertinent + if (query->fill.isPaintserver()) { + SPPaintServer* server = query->getFillPaintServer(); + if ( SP_IS_GRADIENT(server) ) { + SPGradient* grad = SP_GRADIENT(server); + if ( grad->isSwatch() && grad->getId() == gr->getId()) { + desktop->_dlg_mgr->showDialog("FillAndStroke"); + shown = true; + } + } } } + sp_style_unref(query); } } - #endif - - //# If no open path, default to our home directory - if (open_path.empty()) - { - open_path = g_get_home_dir(); - open_path.append(G_DIR_SEPARATOR_S); - } - Gtk::Window * parent = SP_ACTIVE_DESKTOP->getToplevel(); - //# Create a dialog - Inkscape::UI::Dialog::FileOpenDialog *openDialogInstance = - Inkscape::UI::Dialog::FileOpenDialog::create( - *parent, open_path, - Inkscape::UI::Dialog::SWATCH_TYPES, - _("Select file to open")); - - //# Show the dialog - bool const success = openDialogInstance->show(); - - //# Save the folder the user selected for later - open_path = openDialogInstance->getCurrentDirectory(); - - if (!success) - { - delete openDialogInstance; - return; - } - - //# User selected something. Get name and type - Glib::ustring fileName = openDialogInstance->getFilename(); - - //# We no longer need the file dialog object - delete it - delete openDialogInstance; - openDialogInstance = NULL; - - - if (!fileName.empty()) - { - Glib::ustring newFileName = Glib::filename_to_utf8(fileName); - - if ( newFileName.size() > 0) - fileName = newFileName; - else - g_warning( "ERROR CONVERTING OPEN FILENAME TO UTF-8" ); - - open_path = Glib::path_get_dirname (fileName); - open_path.append(G_DIR_SEPARATOR_S); - prefs->setString("/dialogs/open/path", open_path); - - SPDocument* importdoc = SPDocument::createNewDoc(fileName.c_str(), true); - Inkscape::XML::Node * page = NULL; - if (importdoc && importdoc->getDefs()) { - if (addToBI) { - page = SwatchDocument->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (SwatchDocument->getObjectById(id)); - - page->setAttribute("id", id); - gchar* name = g_path_get_basename(importdoc->getName()); - page->setAttribute("inkscape:label", name); - g_free(name); - } - - for (SPObject* it = importdoc->getDefs()->firstChild(); it != NULL; it = it->next) { - if (SP_IS_GROUP(it)) { - if (page) { - Inkscape::XML::Node * copy = it->getRepr()->duplicate(SwatchDocument->getReprDoc()); - page->appendChild(copy); - } - if (addToDoc) { - _addSwatchButtonClicked(SP_GROUP(it), false); - } - } - } - if (page) { - SwatchDocument->getDefs()->appendChildRepr(page); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } - - importdoc->doUnref(); + if (!shown) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + if (prefs->getBool("/dialogs/gradienteditor/showlegacy", false)) { + // Legacy gradient dialog + GtkWidget *dialog = sp_gradient_vector_editor_new( gr ); + gtk_widget_show( dialog ); } else { - SPGroup* g = importGPL(addToBI ? SwatchDocument : _currentDocument, fileName.c_str()); - if (addToBI) { - if (addToDoc) { - _addSwatchButtonClicked(g, false); + // Invoke the gradient tool + Inkscape::Verb *verb = Inkscape::Verb::get( SP_VERB_CONTEXT_GRADIENT ); + if ( verb ) { + SPAction *action = verb->get_action( Inkscape::ActionContext( ( Inkscape::UI::View::View * ) SP_ACTIVE_DESKTOP ) ); + if ( action ) { + sp_action_perform( action, NULL ); } - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } else { - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add swatches to document")); } } } } } -void SwatchesPanel::SetSelectedFill(SPGradient* swatch) +static void editGradient( GtkMenuItem */*menuitem*/, gpointer /*user_data*/ ) { - if (_currentDesktop && _currentDocument) { - SPItem* it = _currentDesktop->selection->singleItem(); - if (it) { - if (it->style->fill.isSet()) { - if (it->style->fill.isPaintserver()) { - SPPaintServer * server = it->style->getFillPaintServer(); - if (SP_IS_GRADIENT(server)) { - SPGradient *grad = SP_GRADIENT(server)->getVector(); - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * drepr = swatch->getRepr(); - if (repr != drepr && grad != swatch) { - while (SPStop* olds = swatch->getFirstStop()) { - olds->deleteObject(); - } - for (SPStop* news = grad->getVector()->getFirstStop(); news != NULL; news = news->getNextStop()) { - Inkscape::XML::Node* clone = news->getRepr()->duplicate(_currentDocument->getReprDoc()); - swatch->appendChildRepr(clone); - Inkscape::GC::release(clone); - } - swatch->setSwatch(); - if (!_noLink.get_active()) { - sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(swatch), SP_IS_RADIALGRADIENT(swatch) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Gradient Swatch")); - } - } - } else if (it->style->fill.isColor()) { - while (SPStop* olds = swatch->getFirstStop()) { - olds->deleteObject(); - } - addStop(swatch->getRepr(), it->style->fill.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->fill_opacity.value), "0"); - swatch->setSwatch(); - if (!_noLink.get_active()) { - SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); - sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Color Swatch")); + if ( bounceTarget ) { + SwatchesPanel* swp = bouncePanel; + SPDesktop* desktop = swp ? swp->getDesktop() : 0; + SPDocument *doc = desktop ? desktop->doc() : 0; + if (doc) { + std::string targetName(bounceTarget->def.descr); + const GSList *gradients = doc->getResourceList("gradient"); + for (const GSList *item = gradients; item; item = item->next) { + SPGradient* grad = SP_GRADIENT(item->data); + if ( targetName == grad->getId() ) { + editGradientImpl( desktop, grad ); + break; } } } } } -void SwatchesPanel::SetSelectedStroke(SPGradient* swatch) +void SwatchesPanelHook::convertGradient( GtkMenuItem * /*menuitem*/, gpointer userData ) { - if (_currentDesktop && _currentDocument) { - SPItem* it = _currentDesktop->selection->singleItem(); - if (it) { - if (it->style->stroke.isSet()) { - if (it->style->stroke.isPaintserver()) { - SPPaintServer * server = it->style->getStrokePaintServer(); - if (SP_IS_GRADIENT(server)) { - SPGradient *grad = SP_GRADIENT(server)->getVector(); - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * drepr = swatch->getRepr(); - if (repr != drepr && grad != swatch) { - while (SPStop* olds = swatch->getFirstStop()) { - olds->deleteObject(); - } - for (SPStop* news = grad->getVector()->getFirstStop(); news != NULL; news = news->getNextStop()) { - Inkscape::XML::Node* clone = news->getRepr()->duplicate(_currentDocument->getReprDoc()); - swatch->appendChildRepr(clone); - Inkscape::GC::release(clone); - } - swatch->setSwatch(); - if (!_noLink.get_active()) { - sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(swatch), SP_IS_RADIALGRADIENT(swatch) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Gradient Swatch")); - } - } - } else if (it->style->stroke.isColor()) { - while (SPStop* olds = swatch->getFirstStop()) { - olds->deleteObject(); - } - addStop(swatch->getRepr(), it->style->stroke.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->stroke_opacity.value), "0"); - swatch->setSwatch(); - if (!_noLink.get_active()) { - SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); - sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set Color Swatch")); + if ( bounceTarget ) { + SwatchesPanel* swp = bouncePanel; + SPDesktop* desktop = swp ? swp->getDesktop() : 0; + SPDocument *doc = desktop ? desktop->doc() : 0; + gint index = GPOINTER_TO_INT(userData); + if ( doc && (index >= 0) && (static_cast(index) < popupItems.size()) ) { + Glib::ustring targetName = popupItems[index]; + + const GSList *gradients = doc->getResourceList("gradient"); + for (const GSList *item = gradients; item; item = item->next) { + SPGradient* grad = SP_GRADIENT(item->data); + if ( targetName == grad->getId() ) { + grad->setSwatch(); + DocumentUndo::done(doc, SP_VERB_CONTEXT_GRADIENT, + _("Add gradient stop")); + break; } } } } } -void SwatchesPanel::MoveSwatchDown(SPGradient* swatch) +void SwatchesPanelHook::deleteGradient( GtkMenuItem */*menuitem*/, gpointer /*userData*/ ) { - if (_currentDocument && swatch) { - SPObject* next = swatch->next; - while (next && (!SP_IS_GRADIENT(next) || !(SP_GRADIENT(next)->isSwatch()))) { - next = next->next; - } - if (next) { - Inkscape::XML::Node* repr = swatch->getRepr(); - repr->parent()->changeOrder(repr, next->getRepr()); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Right")); - } + if ( bounceTarget ) { + SwatchesPanel* swp = bouncePanel; + SPDesktop* desktop = swp ? swp->getDesktop() : 0; + sp_gradient_unset_swatch(desktop, bounceTarget->def.descr); } } -void SwatchesPanel::MoveSwatchUp(SPGradient* swatch) +static SwatchesPanel* findContainingPanel( GtkWidget *widget ) { - if (_currentDocument && swatch) { - SPObject* g = NULL; - SPObject* next = swatch->parent->firstChild(); - while (next && next != swatch) { - if (SP_IS_GRADIENT(next) && SP_GRADIENT(next)->isSwatch()) { - g = next; - } - next = next->next; - } - if (g) { - g = g->getPrev(); - Inkscape::XML::Node* repr = swatch->getRepr(); - repr->parent()->changeOrder(repr, g ? g->getRepr() : NULL); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Left")); - } - } -} + SwatchesPanel *swp = 0; -void SwatchesPanel::RemoveSwatch(SPGradient* swatch) -{ - if (_currentDocument) { - if (swatch->isReferenced()) { - Inkscape::XML::Node * repr = swatch->getRepr(); - repr->parent()->removeChild(repr); - _currentDocument->getDefs()->getRepr()->appendChild(repr); - SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(false); - } else { - swatch->deleteObject(false); - } + std::map rawObjects; + for (std::map::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { + rawObjects[GTK_WIDGET(it->first->gobj())] = it->first; } -} -void SwatchesPanel::_setSelectionSwatch(SPGradient* swatch, bool isStroke) -{ - if (_currentDocument) { - if (swatch) { - if (_noLink.get_active()) { - if (swatch->isSolid()) { - ColorRGBA rgba(swatch->getFirstStop()->getEffectiveColor().toRGBA32(swatch->getFirstStop()->opacity)); - sp_desktop_set_color(_currentDesktop, rgba, false, !isStroke); - } else { - SPCSSAttr *css = sp_repr_css_attr_new(); - sp_repr_css_set_property(css, isStroke ? "stroke-opacity" : "fill-opacity", "1.0"); - - Inkscape::XML::Node * clone = swatch->getRepr()->duplicate(_currentDocument->getReprDoc()); - _currentDocument->getDefs()->appendChildRepr(clone); - SPGradient* grad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); - Inkscape::GC::release(clone); - grad->setSwatch(false); - SPGradient* normalized = sp_gradient_ensure_vector_normalized(grad); -// for (GSList const * it = _currentDesktop->selection->itemList(); it != NULL; it = it->next) { -// sp_desktop_apply_css_recursive(SP_ITEM(it->data), css, true); -// sp_item_set_gradient(SP_ITEM(it->data), normalized, SP_IS_RADIALGRADIENT(normalized) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, isStroke ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); -// } - sp_desktop_set_style(_currentDesktop, css); - sp_desktop_set_gradient(_currentDesktop, normalized, !isStroke); - sp_repr_css_attr_unref (css); - } - } else { - SPCSSAttr *css = sp_repr_css_attr_new(); - sp_repr_css_set_property(css, isStroke ? "stroke-opacity" : "fill-opacity", "1.0"); - - SPGradient* normalized = sp_gradient_ensure_vector_normalized(swatch); -// for (GSList const * it = _currentDesktop->selection->itemList(); it != NULL; it = it->next) { -// sp_desktop_apply_css_recursive(SP_ITEM(it->data), css, true); -// sp_item_set_gradient(SP_ITEM(it->data), normalized, SP_IS_RADIALGRADIENT(normalized) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, isStroke ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); -// } - sp_desktop_set_style(_currentDesktop, css); - sp_desktop_set_gradient(_currentDesktop, normalized, !isStroke); - sp_repr_css_attr_unref (css); - } - } else { - SPCSSAttr *css = sp_repr_css_attr_new (); - sp_repr_css_set_property (css, isStroke ? "stroke" : "fill", "none"); - sp_desktop_set_style(_currentDesktop, css); - } - if (isStroke) { - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set item stroke swatch")); - } else { - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Set item fill swatch")); + for (GtkWidget* curr = widget; curr && !swp; curr = gtk_widget_get_parent(curr)) { + if (rawObjects.find(curr) != rawObjects.end()) { + swp = rawObjects[curr]; } } -} - -void SwatchesPanel::_swatchClicked(GdkEventButton* event, SPGradient* swatch) -{ - if (_currentDesktop) { - if (event->button == 3) { - Gtk::Menu * menu = Gtk::manage(new Gtk::Menu()); - - Gtk::MenuItem* mi; - - Glib::ustring us = Glib::ustring::compose("%1", swatch ? (swatch->label() ? swatch->label() : swatch->getId()) : _("[None]")); - mi = Gtk::manage(new Gtk::MenuItem(swatch ? (swatch->label() ? swatch->label() : swatch->getId()) : _("[None]"))); - Gtk::Label* namelbl = dynamic_cast(mi->get_child()); - if (namelbl) { - namelbl->set_markup(us); - } - mi->show(); - mi->set_sensitive(false); - menu->append(*mi); - - Gtk::SeparatorMenuItem* sep; - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Set Fill"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setSelectionSwatch), swatch, false)); - mi->show(); - mi->set_sensitive(_currentDesktop && !_currentDesktop->selection->isEmpty()); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Set Stroke"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setSelectionSwatch), swatch, true)); - mi->show(); - mi->set_sensitive(_currentDesktop && !_currentDesktop->selection->isEmpty()); - menu->append(*mi); - - if (swatch) { - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Set to Selected Fill"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::SetSelectedFill), swatch)); - mi->show(); - mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Set to Selected Stroke"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::SetSelectedStroke), swatch)); - mi->show(); - mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); - menu->append(*mi); - - - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Move Left"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveSwatchUp), swatch)); - mi->show(); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Move Right"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveSwatchDown), swatch)); - mi->show(); - menu->append(*mi); - - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Remove"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::RemoveSwatch), swatch)); - mi->show(); - menu->append(*mi); - } - menu->popup(event->button, event->time); - } else if (!_currentDesktop->selection->isEmpty()) { - _setSelectionSwatch(swatch, event->state & GDK_SHIFT_MASK); - } - } + return swp; } -void SwatchesPanel::MoveDown(SPGroup* page) +static void removeit( GtkWidget *widget, gpointer data ) { - if (_currentDocument && page) { - SPObject* next = page->next; - while (next && !SP_IS_GROUP(next)) { - next = next->next; - } - if (next) { - Inkscape::XML::Node* repr = page->getRepr(); - repr->parent()->changeOrder(repr, next->getRepr()); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Down")); - } - } + gtk_container_remove( GTK_CONTAINER(data), widget ); } -void SwatchesPanel::MoveUp(SPGroup* page) -{ - if (_currentDocument && page) { - SPObject* g = NULL; - SPObject* next = page->parent->firstChild(); - while (next && next != page) { - if (SP_IS_GROUP(next)) { - g = next; - } - next = next->next; - } - if (g) { - g = g->getPrev(); - Inkscape::XML::Node* repr = page->getRepr(); - repr->parent()->changeOrder(repr, g ? g->getRepr() : NULL); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Move Swatch Up")); - } - } -} +/* extern'ed from colot-item.cpp */ +gboolean colorItemHandleButtonPress( GtkWidget* widget, GdkEventButton* event, gpointer user_data ); -void SwatchesPanel::Remove(SPGroup* page) +gboolean colorItemHandleButtonPress( GtkWidget* widget, GdkEventButton* event, gpointer user_data ) { - if (_currentDocument && page) { - std::vector toMove; - for(SPObject* obj = page->firstChild(); obj != NULL; obj = obj->next) { - if (SP_IS_GRADIENT(obj)) { - SPGradient* grad = SP_GRADIENT(obj); - if (grad->isReferenced()) { - toMove.push_back(grad->getRepr()); - } + gboolean handled = FALSE; + + if ( event && (event->button == 3) && (event->type == GDK_BUTTON_PRESS) ) { + SwatchesPanel* swp = findContainingPanel( widget ); + + if ( !popupMenu ) { + popupMenu = gtk_menu_new(); + GtkWidget* child = 0; + + //TRANSLATORS: An item in context menu on a colour in the swatches + child = gtk_menu_item_new_with_label(_("Set fill")); + g_signal_connect( G_OBJECT(child), + "activate", + G_CALLBACK(redirClick), + user_data); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + + //TRANSLATORS: An item in context menu on a colour in the swatches + child = gtk_menu_item_new_with_label(_("Set stroke")); + + g_signal_connect( G_OBJECT(child), + "activate", + G_CALLBACK(redirSecondaryClick), + user_data); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + + child = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + popupExtras.push_back(child); + + child = gtk_menu_item_new_with_label(_("Delete")); + g_signal_connect( G_OBJECT(child), + "activate", + G_CALLBACK(SwatchesPanelHook::deleteGradient), + user_data ); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + popupExtras.push_back(child); + gtk_widget_set_sensitive( child, FALSE ); + + child = gtk_menu_item_new_with_label(_("Edit...")); + g_signal_connect( G_OBJECT(child), + "activate", + G_CALLBACK(editGradient), + user_data ); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + popupExtras.push_back(child); + + child = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + popupExtras.push_back(child); + + child = gtk_menu_item_new_with_label(_("Convert")); + gtk_menu_shell_append(GTK_MENU_SHELL(popupMenu), child); + //popupExtras.push_back(child); + //gtk_widget_set_sensitive( child, FALSE ); + { + popupSubHolder = child; + popupSub = gtk_menu_new(); + gtk_menu_item_set_submenu( GTK_MENU_ITEM(child), popupSub ); } + + gtk_widget_show_all(popupMenu); } - while (!toMove.empty()) { - Inkscape::XML::Node * repr = toMove.back(); - toMove.pop_back(); - repr->parent()->removeChild(repr); - _currentDocument->getDefs()->getRepr()->appendChild(repr); - SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(false); - } - page->deleteObject(false); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Remove Swatch Group")); - } -} -void SwatchesPanel::AddSelectedFill(SPGroup* page) -{ - if (_currentDesktop && _currentDocument) { - SPItem* it = _currentDesktop->selection->singleItem(); - if (it) { - if (it->style->fill.isSet()) { - if (it->style->fill.isPaintserver()) { - SPPaintServer * server = it->style->getFillPaintServer(); - if (SP_IS_GRADIENT(server)) { - SPGradient *grad = SP_GRADIENT(server)->getVector(); - if (_noLink.get_active()) { - Inkscape::XML::Node * clone = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); - clone->setAttribute( "osb:paint", "gradient", 0 ); - if (page) { - page->appendChildRepr(clone); - } else { - _currentDocument->getDefs()->appendChildRepr(clone); - } - Inkscape::GC::release(clone); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); - } else if (grad->isSwatch()) { - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * clone = repr->duplicate(_currentDocument->getReprDoc()); - if (page) { - page->appendChildRepr(clone); - } else { - _currentDocument->getDefs()->appendChildRepr(clone); - } - SPGradient *newgrad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); - - sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(newgrad), SP_IS_RADIALGRADIENT(newgrad) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); - Inkscape::GC::release(clone); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); - } else { - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * drepr = page ? page->getRepr() : _currentDocument->getDefs()->getRepr(); - if (repr->parent() != drepr) { - repr->parent()->removeChild(repr); - drepr->appendChild(repr); - } - SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); - } - } - } else if (it->style->fill.isColor()) { - Inkscape::XML::Node *grad = _currentDocument->getReprDoc()->createElement("svg:linearGradient"); - grad->setAttribute( "osb:paint", "solid", 0 ); - addStop(grad, it->style->fill.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->fill_opacity.value), "0"); - if (page) { - page->appendChild(grad); - } else { - _currentDocument->getDefs()->appendChild(grad); - } - SPGradient* normalized = sp_gradient_ensure_vector_normalized(SP_GRADIENT(_currentDocument->getObjectByRepr(grad))); - Inkscape::GC::release(grad); - if (!_noLink.get_active()) { - sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_FILL); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Color Swatch")); - } + if ( user_data ) { + ColorItem* item = reinterpret_cast(user_data); + bool show = swp && (swp->getSelectedIndex() == 0); + for ( std::vector::iterator it = popupExtras.begin(); it != popupExtras.end(); ++ it) { + gtk_widget_set_sensitive(*it, show); } - } - } -} -void SwatchesPanel::AddSelectedStroke(SPGroup* page) -{ - if (_currentDesktop && _currentDocument) { - SPItem* it = _currentDesktop->selection->singleItem(); - if (it) { - if (it->style->stroke.isSet()) { - if (it->style->stroke.isPaintserver()) { - SPPaintServer * server = it->style->getStrokePaintServer(); - if (SP_IS_GRADIENT(server)) { - SPGradient *grad = SP_GRADIENT(server)->getVector(); - if (_noLink.get_active()) { - Inkscape::XML::Node * clone = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); - clone->setAttribute( "osb:paint", "gradient", 0 ); - if (page) { - page->appendChildRepr(clone); - } else { - _currentDocument->getDefs()->appendChildRepr(clone); + bounceTarget = item; + bouncePanel = swp; + popupItems.clear(); + if ( popupMenu ) { + gtk_container_foreach(GTK_CONTAINER(popupSub), removeit, popupSub); + bool processed = false; + GtkWidget *wdgt = gtk_widget_get_ancestor(widget, SP_TYPE_DESKTOP_WIDGET); + if ( wdgt ) { + SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(wdgt); + if ( dtw && dtw->desktop ) { + // Pick up all gradients with vectors + const GSList *gradients = (dtw->desktop->doc())->getResourceList("gradient"); + gint index = 0; + for (const GSList *curr = gradients; curr; curr = curr->next) { + SPGradient* grad = SP_GRADIENT(curr->data); + if ( grad->hasStops() && !grad->isSwatch() ) { + //gl = g_slist_prepend(gl, curr->data); + processed = true; + GtkWidget *child = gtk_menu_item_new_with_label(grad->getId()); + gtk_menu_shell_append(GTK_MENU_SHELL(popupSub), child); + + popupItems.push_back(grad->getId()); + g_signal_connect( G_OBJECT(child), + "activate", + G_CALLBACK(SwatchesPanelHook::convertGradient), + GINT_TO_POINTER(index) ); + index++; } - Inkscape::GC::release(clone); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); - } else if (grad->isSwatch()) { - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * clone = repr->duplicate(_currentDocument->getReprDoc()); - if (page) { - page->appendChildRepr(clone); - } else { - _currentDocument->getDefs()->appendChildRepr(clone); - } - SPGradient *newgrad = SP_GRADIENT(_currentDocument->getObjectByRepr(clone)); - - sp_item_set_gradient(it, sp_gradient_ensure_vector_normalized(newgrad), SP_IS_RADIALGRADIENT(newgrad) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); - Inkscape::GC::release(clone); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); - } else { - Inkscape::XML::Node * repr = grad->getRepr(); - Inkscape::XML::Node * drepr = page ? page->getRepr() : _currentDocument->getDefs()->getRepr(); - if (repr->parent() != drepr) { - repr->parent()->removeChild(repr); - drepr->appendChild(repr); - } - SP_GRADIENT(_currentDocument->getObjectByRepr(repr))->setSwatch(); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Gradient Swatch")); } + + gtk_widget_show_all(popupSub); } - } else if (it->style->stroke.isColor()) { - Inkscape::XML::Node *grad = _currentDocument->getReprDoc()->createElement("svg:linearGradient"); - grad->setAttribute( "osb:paint", "solid", 0 ); - addStop(grad, it->style->stroke.value.color.toString(), SP_SCALE24_TO_FLOAT(it->style->stroke_opacity.value), "0"); - if (page) { - page->appendChild(grad); - } else { - _currentDocument->getDefs()->appendChild(grad); - } - SPGradient* normalized = sp_gradient_ensure_vector_normalized(SP_GRADIENT(_currentDocument->getObjectByRepr(grad))); - Inkscape::GC::release(grad); - if (!_noLink.get_active()) { - sp_item_set_gradient(it, normalized, SP_GRADIENT_TYPE_LINEAR, Inkscape::FOR_STROKE); - } - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Add Color Swatch")); } + gtk_widget_set_sensitive( popupSubHolder, processed ); + + gtk_menu_popup(GTK_MENU(popupMenu), NULL, NULL, NULL, NULL, event->button, event->time); + handled = TRUE; } } } -} -void SwatchesPanel::_addBIButtonClicked(GdkEventButton* event) -{ - if (popUpImportMenu) { - popUpImportMenu->popup(event->button, event->time); - } + return handled; } -void SwatchesPanel::NewGroupBI() -{ - if (_currentDocument) { - Inkscape::XML::Node * page = SwatchDocument->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (SwatchDocument->getObjectById(id)); - - page->setAttribute("id", id); - - SwatchDocument->getDefs()->appendChild(page); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } -} -void SwatchesPanel::NewGroup() -{ - if (_currentDocument) { - Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (_currentDocument->getObjectById(id)); - - page->setAttribute("id", id); - - _currentDocument->getDefs()->appendChild(page); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("New Swatch Group")); +static char* trim( char* str ) { + char* ret = str; + while ( *str && (*str == ' ' || *str == '\t') ) { + str++; } -} - -void SwatchesPanel::SaveAs() -{ - if (_currentDocument) { - Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (_currentDocument->getObjectById(id)); - - page->setAttribute("id", id); - - std::vector toMove; - for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { - if (SP_IS_GRADIENT(it)) { - SPGradient* grad = SP_GRADIENT(it); - if (grad->isSwatch()) { - toMove.push_back(grad->getRepr()); - } - } - } - while (!toMove.empty()) { - Inkscape::XML::Node* repr = toMove.back(); - toMove.pop_back(); - repr->parent()->removeChild(repr); - page->appendChild(repr); - } - _currentDocument->getDefs()->appendChild(page); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Save Swatch Group")); + ret = str; + while ( *str ) { + str++; } -} - -void SwatchesPanel::Duplicate(SPGroup* oldpage) -{ - if (_currentDocument) { - Inkscape::XML::Node * page = _currentDocument->getReprDoc()->createElement("svg:g"); - gchar *id=NULL; - do { - g_free(id); - id = g_strdup_printf("page%d", page_suffix++); - } while (_currentDocument->getObjectById(id)); - - page->setAttribute("id", id); - if (oldpage->label()) page->setAttribute("inkscape:label", oldpage->label()); - - for (SPObject *it = oldpage->firstChild(); it != NULL; it = it->next) { - if (SP_IS_GRADIENT(it)) { - SPGradient* grad = SP_GRADIENT(it); - if (grad->isSwatch()) { - Inkscape::XML::Node * copy = grad->getRepr()->duplicate(_currentDocument->getReprDoc()); - page->appendChild(copy); - Inkscape::GC::release(copy); - } - } - } - _currentDocument->getDefs()->appendChild(page); - DocumentUndo::done(_currentDocument, SP_VERB_DIALOG_SWATCHES, _("Duplicate Swatch Group")); + str--; + while ( str > ret && (( *str == ' ' || *str == '\t' ) || *str == '\r' || *str == '\n') ) { + *str-- = 0; } + return ret; } -void SwatchesPanel::_lblClick(GdkEventButton* event, SPGroup* page) -{ - Gtk::Menu * menu = Gtk::manage(new Gtk::Menu()); - - Gtk::MenuItem* mi; - Glib::ustring us = Glib::ustring::compose("%1", page ? (page->label() ? page->label() : page->getId()) : _("[Base]")); - mi = Gtk::manage(new Gtk::MenuItem(page ? (page->label() ? page->label() : page->getId()) : _("[Base]"))); - Gtk::Label* namelbl = dynamic_cast(mi->get_child()); - if (namelbl) { - namelbl->set_markup(us); - } - mi->show(); - mi->set_sensitive(false); - menu->append(*mi); - - Gtk::SeparatorMenuItem* sep; - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Add Selected Fill"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::AddSelectedFill), page)); - mi->show(); - mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Add Selected Stroke"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::AddSelectedStroke), page)); - mi->show(); - mi->set_sensitive(_currentDesktop && _currentDesktop->selection->singleItem()); - menu->append(*mi); - - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - if (page) { - - mi = Gtk::manage(new Gtk::MenuItem(_("Move Up"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveUp), page)); - mi->show(); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Move Down"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::MoveDown), page)); - mi->show(); - menu->append(*mi); - - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Duplicate"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::Duplicate), page)); - mi->show(); - menu->append(*mi); - - sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - menu->append(*sep); - - mi = Gtk::manage(new Gtk::MenuItem(_("Remove"))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::Remove), page)); - mi->show(); - menu->append(*mi); - } else { - mi = Gtk::manage(new Gtk::MenuItem(_("Create New Group"))); - mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NewGroup)); - mi->show(); - menu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Save As New Group"))); - mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::SaveAs)); - mi->show(); - menu->append(*mi); +static void skipWhitespace( char*& str ) { + while ( *str == ' ' || *str == '\t' ) { + str++; } - - menu->popup(event->button, event->time); } -void SwatchesPanel::_defsChanged() -{ - if (_storeDoc) { - _storeDoc->clear(); - } - - while (!docWatchers.empty()) { - Inkscape::XML::NodeObserver* w = docWatchers.back(); - docWatchers.pop_back(); - delete w; - } - - std::vector tableChildren = _insideTable.get_children(); - for (std::vector::iterator c = tableChildren.begin(); c != tableChildren.end(); ++c) { - _insideTable.remove(**c); +static bool parseNum( char*& str, int& val ) { + val = 0; + while ( '0' <= *str && *str <= '9' ) { + val = val * 10 + (*str - '0'); + str++; } - - if (_currentDocument) { - Gtk::EventBox* eb; - Gtk::Label* lbl; - if (_showlabels) { - eb = Gtk::manage(new Gtk::EventBox()); - eb->add_events(Gdk::BUTTON_PRESS_MASK); - eb->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_lblClick), NULL)); - - lbl = Gtk::manage(new Gtk::Label(_("[Base]"))); - eb->add(*lbl); - _insideTable.attach( *eb, 0, 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ , 5, 0); - } - - ColorItem* item = Gtk::manage(new ColorItem(NULL, _("[None]"), _currentDesktop)); - item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), NULL)); - item->set_tooltip_text(_("[None]")); - _insideTable.attach( *item, _showlabels ? 1 : 0, _showlabels ? 2 : 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); - - unsigned int i = 1; - for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { - if (SP_IS_GRADIENT(it)) { - SPGradient* grad = SP_GRADIENT(it); - if (grad->hasStops()) { - - GradientWatcher* w = new GradientWatcher(this, grad); - docWatchers.push_back(w); - - if (grad->isSwatch()) { - - for (SPStop* s = grad->getFirstStop(); s != NULL; s = s->getNextStop()) { - StopWatcher* sw = new StopWatcher(this, s); - docWatchers.push_back(sw); - } + bool retval = !(*str == 0 || *str == ' ' || *str == '\t' || *str == '\r' || *str == '\n'); + return retval; +} - if (_storeDoc) { - Gtk::TreeModel::iterator iter = _storeDoc->append(); - Gtk::TreeModel::Row row = *iter; - row[_modelDoc->_colObject] = grad; - row[_modelDoc->_colLabel] = grad->label() ? grad->label() : grad->getId(); - GdkPixbuf* pixb = sp_gradient_to_pixbuf (grad, 64, 18); - row[_modelDoc->_colPixbuf] = Glib::wrap(pixb); - } - item = Gtk::manage(new ColorItem(grad, it->label() ? it->label() : it->getId(), _currentDesktop)); - item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); - item->set_tooltip_text(it->label() ? it->label() : it->getId()); - if (_showlabels) { - _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); +void _loadPaletteFile( gchar const *filename, gboolean user/*=FALSE*/ ) +{ + char block[1024]; + FILE *f = Inkscape::IO::fopen_utf8name( filename, "r" ); + if ( f ) { + char* result = fgets( block, sizeof(block), f ); + if ( result ) { + if ( strncmp( "GIMP Palette", block, 12 ) == 0 ) { + bool inHeader = true; + bool hasErr = false; + + SwatchPage *onceMore = new SwatchPage(); + + do { + result = fgets( block, sizeof(block), f ); + block[sizeof(block) - 1] = 0; + if ( result ) { + if ( block[0] == '#' ) { + // ignore comment } else { - _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); - } - - i++; - } - } - } - } - - for (SPObject *it = _currentDocument->getDefs()->firstChild(); it != NULL; it = it->next) { - if (SP_IS_GROUP(it)) { - SwatchWatcher* w = new SwatchWatcher(this, it, false); - docWatchers.push_back(w); - - if (_showlabels) { - i += 20 - (i % 20); - eb = Gtk::manage(new Gtk::EventBox()); - eb->add_events(Gdk::BUTTON_PRESS_MASK); - eb->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_lblClick), SP_GROUP(it))); - lbl = Gtk::manage(new Gtk::Label(it->label() ? it->label() : it->getId())); - eb->add(*lbl); - _insideTable.attach( *eb, 0, 1, i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ , 5, 0); - } - - Gtk::TreeModel::iterator rowiter; - - if (_storeDoc) { - rowiter = _storeDoc->append(); - Gtk::TreeModel::Row row = *rowiter; - row[_modelDoc->_colObject] = it; - row[_modelDoc->_colLabel] = it->label() ? it->label() : it->getId(); - } - - for (SPObject *cit = it->firstChild(); cit != NULL; cit = cit->next) { - if (SP_IS_GRADIENT(cit)) { - SPGradient* grad = SP_GRADIENT(cit); - - if (grad->hasStops()) { - - GradientWatcher* w = new GradientWatcher(this, grad); - docWatchers.push_back(w); - - if (grad->isSwatch()) { - - for (SPStop* s = grad->getFirstStop(); s != NULL; s = s->getNextStop()) { - StopWatcher* sw = new StopWatcher(this, s); - docWatchers.push_back(sw); - } - - if (_storeDoc && rowiter) { - Gtk::TreeModel::iterator iter = _storeDoc->append(rowiter->children()); - Gtk::TreeModel::Row row = *iter; - row[_modelDoc->_colObject] = grad; - row[_modelDoc->_colLabel] = grad->label() ? grad->label() : grad->getId(); - GdkPixbuf* pixb = sp_gradient_to_pixbuf (grad, 64, 18); - row[_modelDoc->_colPixbuf] = Glib::wrap(pixb); - - _editDoc.expand_to_path(_storeDoc->get_path(iter)); + char *ptr = block; + // very simple check for header versus entry + while ( *ptr == ' ' || *ptr == '\t' ) { + ptr++; + } + if ( (*ptr == 0) || (*ptr == '\r') || (*ptr == '\n') ) { + // blank line. skip it. + } else if ( '0' <= *ptr && *ptr <= '9' ) { + // should be an entry link + inHeader = false; + ptr = block; + Glib::ustring name(""); + skipWhitespace(ptr); + if ( *ptr ) { + int r = 0; + int g = 0; + int b = 0; + hasErr = parseNum(ptr, r); + if ( !hasErr ) { + skipWhitespace(ptr); + hasErr = parseNum(ptr, g); + } + if ( !hasErr ) { + skipWhitespace(ptr); + hasErr = parseNum(ptr, b); + } + if ( !hasErr && *ptr ) { + char* n = trim(ptr); + if (n != NULL) { + name = g_dpgettext2(NULL, "Palette", n); + } + } + if ( !hasErr ) { + // Add the entry now + Glib::ustring nameStr(name); + ColorItem* item = new ColorItem( r, g, b, nameStr ); + onceMore->_colors.push_back(item); + } + } else { + hasErr = true; } - - item = Gtk::manage(new ColorItem(grad, cit->label() ? cit->label() : cit->getId(), _currentDesktop)); - item->signal_button_press_event().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_swatchClicked), grad)); - item->set_tooltip_text(cit->label() ? cit->label() : cit->getId()); - if (_showlabels) { - _insideTable.attach( *item, 1 + (i % 20), 2 + (i % 20), i / 20, i / 20 + 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); + } else { + if ( !inHeader ) { + // Hmmm... probably bad. Not quite the format we want? + hasErr = true; } else { - _insideTable.attach( *item, i, i + 1, 0, 1, Gtk::FILL/*|Gtk::EXPAND*/, Gtk::FILL/*|Gtk::EXPAND*/ ); + char* sep = strchr(result, ':'); + if ( sep ) { + *sep = 0; + char* val = trim(sep + 1); + char* name = trim(result); + if ( *name ) { + if ( strcmp( "Name", name ) == 0 ) + { + onceMore->_name = val; + } + else if ( strcmp( "Columns", name ) == 0 ) + { + gchar* endPtr = 0; + guint64 numVal = g_ascii_strtoull( val, &endPtr, 10 ); + if ( (numVal == G_MAXUINT64) && (ERANGE == errno) ) { + // overflow + } else if ( (numVal == 0) && (endPtr == val) ) { + // failed conversion + } else { + onceMore->_prefWidth = numVal; + } + } + } else { + // error + hasErr = true; + } + } else { + // error + hasErr = true; + } } - i++; } } } + } while ( result && !hasErr ); + if ( !hasErr ) { + if (user) + userSwatchPages.push_back(onceMore); + else + systemSwatchPages.push_back(onceMore); +#if ENABLE_MAGIC_COLORS + ColorItem::_wireMagicColors( onceMore ); +#endif // ENABLE_MAGIC_COLORS + } else { + delete onceMore; } } } - } - //_scroller.resize(1,1); - _insideTable.resize(1,1); - _scroller.show_all_children(); - _scroller.queue_draw(); - -} -Gtk::MenuItem* SwatchesPanel::_addSwatchGroup(SPGroup* group, Gtk::TreeModel::Row* parentRow) -{ - Gtk::MenuItem* mi = manage(new Gtk::MenuItem(group->label() ? group->label() : group->getId(),1)); - Gtk::Menu* m = NULL; - - Gtk::TreeModel::Row* r; - if (_store) { - Gtk::TreeModel::iterator iter = parentRow ? _store->append(parentRow->children()) : _store->append(); - Gtk::TreeModel::Row row = *iter; - row[_model->_colObject] = group; - row[_model->_colLabel] = group->label() ? group->label() : group->getId(); - - if (SP_IS_GROUP(group->parent) && SP_GROUP(group->parent)->expanded()) { - _editBI.expand_to_path(_store->get_path(iter)); - } - r = &row; - } else { - r = NULL; - } - - bool hasswatches = false; - for (SPObject * obj = group->firstChild(); obj != NULL; obj = obj->next) - { - if (SP_IS_GROUP(obj)) { - if (!m) { - m = manage(new Gtk::Menu()); - m->show_all(); - mi->set_submenu(*m); - - Gtk::MenuItem* basemi = manage(new Gtk::MenuItem(_("[All]"))); - basemi->show(); - Gtk::Label* namelbl = dynamic_cast(basemi->get_child()); - if (namelbl) { - namelbl->set_markup(_("[All]")); - } - basemi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, true)); - m->append(*basemi); - - Gtk::SeparatorMenuItem* sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - m->append(*sep); - } - SwatchWatcher* w = new SwatchWatcher(this, obj, true); - rootWatchers.push_back(w); - m->append(*_addSwatchGroup(SP_GROUP(obj), r)); - } else if (SP_IS_GRADIENT(obj)) { - hasswatches = true; - } + fclose(f); } - if (!m) { - mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, false)); - } else if (hasswatches) { - Glib::ustring us = Glib::ustring::compose("%1", group->label() ? group->label() : group->getId()); - Gtk::MenuItem* basemi = manage(new Gtk::MenuItem(group->label() ? group->label() : group->getId())); - basemi->show(); - Gtk::Label* namelbl = dynamic_cast(basemi->get_child()); - if (namelbl) { - namelbl->set_markup(us); - } - basemi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_addSwatchButtonClicked), group, false)); - m->prepend(*basemi); - } - mi->show(); - return mi; } -void SwatchesPanel::_swatchesChanged() -{ - while (!rootWatchers.empty()) { - Inkscape::XML::NodeObserver* w = rootWatchers.back(); - rootWatchers.pop_back(); - delete w; - } +static bool +compare_swatch_names(SwatchPage const *a, SwatchPage const *b) { - std::vector menuChildren = popUpMenu->get_children(); - for (std::vector::iterator c = menuChildren.begin(); c != menuChildren.end(); ++c) { - popUpMenu->remove(**c); - } - - if (_store) { - _store->clear(); - } - - Gtk::MenuItem* mi; - - for (SPObject * obj = SwatchDocument->getDefs()->firstChild(); obj != NULL; obj = obj->next) - { - if (SP_IS_GROUP(obj)) { - SwatchWatcher* w = new SwatchWatcher(this, obj, true); - rootWatchers.push_back(w); - popUpMenu->append(*_addSwatchGroup(SP_GROUP(obj), NULL)); - - } - } - Gtk::SeparatorMenuItem* sep = manage(new Gtk::SeparatorMenuItem()); - sep->show(); - popUpMenu->append(*sep); - - mi = manage(new Gtk::MenuItem(_("New Swatch Group..."),1)); - mi->signal_activate().connect(sigc::mem_fun(*this, &SwatchesPanel::NewGroup)); - mi->show(); - popUpMenu->append(*mi); - - mi = manage(new Gtk::MenuItem(_("Add Swatch File..."),1)); - mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), true, false)); - mi->show(); - popUpMenu->append(*mi); - - mi = manage(new Gtk::MenuItem(_("Import Swatch File..."),1)); - mi->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), true, true)); - mi->show(); - popUpMenu->append(*mi); + return g_utf8_collate(a->_name.c_str(), b->_name.c_str()) < 0; } -void SwatchesPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback ) +static void loadEmUp() { - bool set = false; - - if ( iconName ) { - GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); - gtk_widget_show( child ); - btn.add( *manage(Glib::wrap(child)) ); - btn.set_relief(Gtk::RELIEF_NONE); - set = true; - } - - if ( desktop ) { - Verb *verb = Verb::get( code ); - if ( verb ) { - SPAction *action = verb->get_action(desktop); - if ( !set && action && action->image ) { - GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, action->image ); - gtk_widget_show( child ); - btn.add( *manage(Glib::wrap(child)) ); - set = true; + static bool beenHere = false; + gboolean userPalete = true; + if ( !beenHere ) { + beenHere = true; + + std::list sources; + sources.push_back( profile_path("palettes") ); + sources.push_back( g_strdup(INKSCAPE_PALETTESDIR) ); + sources.push_back( g_strdup(CREATE_PALETTESDIR) ); + + // Use this loop to iterate through a list of possible document locations. + while (!sources.empty()) { + gchar *dirname = sources.front(); + if ( Inkscape::IO::file_test( dirname, G_FILE_TEST_EXISTS ) + && Inkscape::IO::file_test( dirname, G_FILE_TEST_IS_DIR )) { + GError *err = 0; + GDir *directory = g_dir_open(dirname, 0, &err); + if (!directory) { + gchar *safeDir = Inkscape::IO::sanitizeString(dirname); + g_warning(_("Palettes directory (%s) is unavailable."), safeDir); + g_free(safeDir); + } else { + gchar *filename = 0; + while ((filename = (gchar *)g_dir_read_name(directory)) != NULL) { + gchar* lower = g_ascii_strdown( filename, -1 ); +// if ( g_str_has_suffix(lower, ".gpl") ) { + if ( !g_str_has_suffix(lower, "~") ) { + gchar* full = g_build_filename(dirname, filename, NULL); + if ( !Inkscape::IO::file_test( full, G_FILE_TEST_IS_DIR ) ) { + _loadPaletteFile(full, userPalete); + } + g_free(full); + } +// } + g_free(lower); + } + g_dir_close(directory); + } } + + // toss the dirname + g_free(dirname); + sources.pop_front(); + userPalete = false; } } - - btn.set_tooltip_text (fallback); - if ( !set ) { - btn.set_label( fallback ); - } -} + // Sort the list of swatches by name, grouped by user/system + userSwatchPages.sort(compare_swatch_names); + systemSwatchPages.sort(compare_swatch_names); -void SwatchesPanel::_addButtonClicked(GdkEventButton* event) { - if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3 || event->button == 1) ) { - if (popUpMenu) { - popUpMenu->popup(event->button, event->time); - } - } } -void SwatchesPanel::NoLinkToggled() { - static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - Glib::ustring nolink = Glib::ustring::compose("%1/nolink", _prefs_path); - prefs->setBool(nolink, _noLink.get_active()); -} -bool SwatchesPanel::_handleButtonEvent(GdkEventButton *event) -{ - static unsigned doubleclick = 0; - if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { - doubleclick = 1; - } - if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { - doubleclick = 0; - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* col = 0; - int x = static_cast(event->x); - int y = static_cast(event->y); - int x2 = 0; - int y2 = 0; - if ( _editBI.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_columnBI) { - // Double click on the Layer name, enable editing - _text_rendererBI->property_editable() = true; - _editBI.set_cursor (path, *_name_columnBI, true); - grab_focus(); - } - } - - return false; +SwatchesPanel& SwatchesPanel::getInstance() +{ + return *new SwatchesPanel(); } -bool SwatchesPanel::_handleKeyEvent(GdkEventKey *event) + +/** + * Constructor + */ +SwatchesPanel::SwatchesPanel(gchar const* prefsPath) : + Inkscape::UI::Widget::Panel("", prefsPath, SP_VERB_DIALOG_SWATCHES, "", true), + _holder(0), + _clear(0), + _remove(0), + _currentIndex(0), + _currentDesktop(0), + _currentDocument(0) { - switch (Inkscape::UI::Tools::get_group0_keyval(event)) { - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - case GDK_KEY_F2: { - Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); - if (iter && !_text_rendererBI->property_editable()) { - Gtk::TreeRow row = *iter; - SPObject * obj = row[_model->_colObject]; - if (obj) { - Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); - // Edit the layer label - _text_rendererBI->property_editable() = true; - _editBI.set_cursor(*path, *_name_columnBI, true); - grab_focus(); - return true; + Gtk::RadioMenuItem* hotItem = 0; + _holder = new PreviewHolder(); + _clear = new ColorItem( ege::PaintDef::CLEAR ); + _remove = new ColorItem( ege::PaintDef::NONE ); + if (docPalettes.empty()) { + SwatchPage *docPalette = new SwatchPage(); + + docPalette->_name = "Auto"; + docPalettes[0] = docPalette; + } + + loadEmUp(); + if ( !systemSwatchPages.empty() ) { + SwatchPage* first = 0; + int index = 0; + Glib::ustring targetName; + if ( !_prefs_path.empty() ) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + targetName = prefs->getString(_prefs_path + "/palette"); + if (!targetName.empty()) { + if (targetName == "Auto") { + first = docPalettes[0]; + } else { + //index++; + std::vector pages = _getSwatchSets(); + for ( std::vector::iterator iter = pages.begin(); iter != pages.end(); ++iter ) { + if ( (*iter)->_name == targetName ) { + first = *iter; + break; + } + index++; + } } } } - case GDK_KEY_Delete: { - - Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); - if (iter) { - Gtk::TreeRow row = *iter; - SPObject * obj = row[_model->_colObject]; - if (obj) { - obj->deleteObject(false); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } + + if ( !first ) { + first = docPalettes[0]; + _currentIndex = 0; + } else { + _currentIndex = index; + } + + _rebuild(); + + Gtk::RadioMenuItem::Group groupOne; + + int i = 0; + std::vector swatchSets = _getSwatchSets(); + for ( std::vector::iterator it = swatchSets.begin(); it != swatchSets.end(); ++it) { + SwatchPage* curr = *it; + Gtk::RadioMenuItem* single = manage(new Gtk::RadioMenuItem(groupOne, curr->_name)); + if ( curr == first ) { + hotItem = single; } - return true; + _regItem( single, 3, i ); + + i++; } - break; } - return false; -} -void SwatchesPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) -{ - Gtk::TreeModel::iterator iter = _editBI.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; + if (Glib::ustring(prefsPath) == "/dialogs/swatches") { + Gtk::Requisition sreq; +#if WITH_GTKMM_3_0 + Gtk::Requisition sreq_natural; + get_preferred_size(sreq_natural, sreq); +#else + sreq = size_request(); +#endif + int minHeight = 60; + if (sreq.height < minHeight) { + set_size_request(70, minHeight); + } + } - _renameObject(row, new_text); - _text_rendererBI->property_editable() = false; -} + _getContents()->pack_start(*_holder, Gtk::PACK_EXPAND_WIDGET); + _setTargetFillable(_holder); -void SwatchesPanel::_handleEditingCancelled() -{ - _text_rendererBI->property_editable() = false; -} + show_all_children(); -void SwatchesPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) -{ - if ( row && SwatchDocument) { - SPObject* obj = row[_model->_colObject]; - if ( obj ) { - gchar const* oldLabel = obj->label(); - if ( !name.empty() && (!oldLabel || name != oldLabel) ) { - obj->setLabel(name.c_str()); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); - } - } + restorePanelPrefs(); + if ( hotItem ) { + hotItem->set_active(); } } -void SwatchesPanel::_setCollapsed(SPGroup * group) +SwatchesPanel::~SwatchesPanel() { - group->setExpanded(false); - group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); - for (SPObject *iter = group->children; iter != NULL; iter = iter->next) - { - if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); + _trackDocument( this, 0 ); + + _documentConnection.disconnect(); + _selChanged.disconnect(); + + if ( _clear ) { + delete _clear; + } + if ( _remove ) { + delete _remove; + } + if ( _holder ) { + delete _holder; } } -void SwatchesPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) +void SwatchesPanel::setOrientation(SPAnchorType how) { - Gtk::TreeModel::Row row = *iter; + // Must call the parent class or bad things might happen + Inkscape::UI::Widget::Panel::setOrientation( how ); - SPObject* obj = row[_model->_colObject]; - if (obj && SP_IS_GROUP(obj)) + if ( _holder ) { - if (isexpanded) - { - SP_GROUP(obj)->setExpanded(isexpanded); - obj->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); - } - else - { - _setCollapsed(SP_GROUP(obj)); - } + _holder->setOrientation(SP_ANCHOR_SOUTH); } - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } -void SwatchesPanel::_deleteButtonClicked() +void SwatchesPanel::setDesktop( SPDesktop* desktop ) { - Gtk::TreeModel::iterator iter = _editBI.get_selection()->get_selected(); - if (iter) { - Gtk::TreeModel::Row row = *iter; - SPObject* obj = row[_model->_colObject]; - if (obj) { - obj->deleteObject(false); - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); + if ( desktop != _currentDesktop ) { + if ( _currentDesktop ) { + _documentConnection.disconnect(); + _selChanged.disconnect(); } - } -} -bool SwatchesPanel::_handleButtonEventDoc(GdkEventButton* event) -{ - static unsigned doubleclick = 0; - - if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { - // TODO - fix to a better is-popup function - Gtk::TreeModel::Path path; - int x = static_cast(event->x); - int y = static_cast(event->y); - if ( _editDoc.get_path_at_pos( x, y, path ) ) { - Gtk::TreeModel::Children::iterator iter = _editDoc.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; - - SPObject* obj = row[_modelDoc->_colObject]; - if (SP_IS_GRADIENT(obj)) { - _swatchClicked(event, SP_GRADIENT(obj)); - } else if (SP_IS_GROUP(obj)) { - _lblClick(event, SP_GROUP(obj)); - } else { - _lblClick(event, NULL); - } - } else { - _lblClick(event, NULL); - } - } - - if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { - doubleclick = 1; - } + _currentDesktop = desktop; - if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { - doubleclick = 0; - Gtk::TreeModel::Path path; - Gtk::TreeViewColumn* col = 0; - int x = static_cast(event->x); - int y = static_cast(event->y); - int x2 = 0; - int y2 = 0; - if ( _editDoc.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_columnDoc) { - // Double click on the Layer name, enable editing - _text_rendererDoc->property_editable() = true; - _editDoc.set_cursor (path, *_name_columnDoc, true); - grab_focus(); + if ( desktop ) { + _currentDesktop->selection->connectChanged( + sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); + + _currentDesktop->selection->connectModified( + sigc::hide(sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection)))); + + _currentDesktop->connectToolSubselectionChanged( + sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); + + sigc::bound_mem_functor1 first = sigc::mem_fun(*this, &SwatchesPanel::_setDocument); + sigc::slot base2 = first; + sigc::slot slot2 = sigc::hide<0>( base2 ); + _documentConnection = desktop->connectDocumentReplaced( slot2 ); + + _setDocument( desktop->doc() ); + } else { + _setDocument(0); } } - - return false; } -void SwatchesPanel::_deleteButtonClickedDoc() + +class DocTrack { - Gtk::TreeModel::iterator iter = _editDoc.get_selection()->get_selected(); - if (iter) { - Gtk::TreeRow row = *iter; - SPObject * obj = row[_modelDoc->_colObject]; - if (SP_IS_GRADIENT(obj)) { - RemoveSwatch(SP_GRADIENT(obj)); - } else if (SP_IS_GROUP(obj)) { - Remove(SP_GROUP(obj)); +public: + DocTrack(SPDocument *doc, sigc::connection &gradientRsrcChanged, sigc::connection &defsChanged, sigc::connection &defsModified) : + doc(doc->doRef()), + updatePending(false), + lastGradientUpdate(0.0), + gradientRsrcChanged(gradientRsrcChanged), + defsChanged(defsChanged), + defsModified(defsModified) + { + if ( !timer ) { + timer = new Glib::Timer(); + refreshTimer = Glib::signal_timeout().connect( sigc::ptr_fun(handleTimerCB), 33 ); } + timerRefCount++; } -} -bool SwatchesPanel::_handleKeyEventDoc(GdkEventKey *event) -{ - switch (Inkscape::UI::Tools::get_group0_keyval(event)) { - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - case GDK_KEY_F2: { - Gtk::TreeModel::iterator iter = _editDoc.get_selection()->get_selected(); - if (iter && !_text_rendererDoc->property_editable()) { - Gtk::TreeRow row = *iter; - SPObject * obj = row[_modelDoc->_colObject]; - if (obj) { - Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); - // Edit the layer label - _text_rendererDoc->property_editable() = true; - _editDoc.set_cursor(*path, *_name_columnDoc, true); - grab_focus(); - return true; - } + ~DocTrack() + { + timerRefCount--; + if ( timerRefCount <= 0 ) { + refreshTimer.disconnect(); + timerRefCount = 0; + if ( timer ) { + timer->stop(); + delete timer; + timer = 0; } } - case GDK_KEY_Delete: { - - _deleteButtonClickedDoc(); - return true; + if (doc) { + gradientRsrcChanged.disconnect(); + defsChanged.disconnect(); + defsModified.disconnect(); + doc->doUnref(); + doc = NULL; } - break; } - return false; -} -void SwatchesPanel::_renameObjectDoc(Gtk::TreeModel::Row row, const Glib::ustring& name) -{ - if ( row && SwatchDocument) { - SPObject* obj = row[_modelDoc->_colObject]; - if ( obj ) { - gchar const* oldLabel = obj->label(); - if ( !name.empty() && (!oldLabel || name != oldLabel) ) { - obj->setLabel(name.c_str()); - } - } - } -} + static bool handleTimerCB(); -void SwatchesPanel::_handleEditedDoc(const Glib::ustring& path, const Glib::ustring& new_text) -{ - Gtk::TreeModel::iterator iter = _editDoc.get_model()->get_iter(path); - Gtk::TreeModel::Row row = *iter; + /** + * Checks if update should be queued or executed immediately. + * + * @return true if the update was queued and should not be immediately executed. + */ + static bool queueUpdateIfNeeded(SPDocument *doc); - _renameObjectDoc(row, new_text); - _text_rendererDoc->property_editable() = false; -} + static Glib::Timer *timer; + static int timerRefCount; + static sigc::connection refreshTimer; -void SwatchesPanel::_handleEditingCancelledDoc() -{ - _text_rendererDoc->property_editable() = false; -} + SPDocument *doc; + bool updatePending; + double lastGradientUpdate; + sigc::connection gradientRsrcChanged; + sigc::connection defsChanged; + sigc::connection defsModified; -/* - * Drap and drop within the tree - * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer - */ -bool SwatchesPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) +private: + DocTrack(DocTrack const &); // no copy + DocTrack &operator=(DocTrack const &); // no assign +}; + +Glib::Timer *DocTrack::timer = 0; +int DocTrack::timerRefCount = 0; +sigc::connection DocTrack::refreshTimer; + +static const double DOC_UPDATE_THREASHOLD = 0.090; + +bool DocTrack::handleTimerCB() { - int cell_x = 0, cell_y = 0; - Gtk::TreeModel::Path target_path; - Gtk::TreeView::Column *target_column; - - bool _dnd_top = false; - _dnd_into = false; - _dnd_target = SwatchDocument->getDefs()->lastChild(); - Gtk::TreeModel::iterator itersel = _editBI.get_selection()->get_selected(); - if (!itersel) { - return true; - } - Gtk::TreeModel::Row rowsel = *itersel; - _dnd_source = rowsel[_model->_colObject]; + double now = timer->elapsed(); - if (!_dnd_source) { - return true; - } - - if (_editBI.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { - // Are we before, inside or after the drop layer - Gdk::Rectangle rect; - _editBI.get_background_area (target_path, *target_column, rect); - int cell_height = rect.get_height(); - _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); - if (cell_y < (int)(cell_height * 1/3)) { - Gtk::TreeModel::Path next_path = target_path; - if (next_path.prev()) { - target_path = next_path; - } else { - // Dragging to the "end" - Gtk::TreeModel::Path up_path = target_path; - up_path.up(); - if (_store->iter_is_valid(_store->get_iter(up_path))) { - // Drop into parent - target_path = up_path; - _dnd_into = true; - } else { - _dnd_top = true; - // Drop into the top level - _dnd_target = NULL; - } - } - } - if (!_dnd_top) { - Gtk::TreeModel::iterator iter = _store->get_iter(target_path); - if (_store->iter_is_valid(iter)) { - Gtk::TreeModel::Row row = *iter; - SPObject *obj = row[_model->_colObject]; - if (obj) { - _dnd_target = obj; - } - } + std::vector needCallback; + for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it) { + DocTrack *track = *it; + if ( track->updatePending && ( (now - track->lastGradientUpdate) >= DOC_UPDATE_THREASHOLD) ) { + needCallback.push_back(track); } } - - if (_dnd_source != _dnd_target) { - - Inkscape::XML::Node *target_ref = _dnd_target ? _dnd_target->getRepr() : NULL; - Inkscape::XML::Node *our_ref = _dnd_source->getRepr(); - - if (target_ref != our_ref) { - if (!target_ref) { - target_ref = SwatchDocument->getDefs()->getRepr(); - if (target_ref != our_ref->parent()) { - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else { - our_ref->parent()->changeOrder(our_ref, NULL); - } - } else if (_dnd_into) { - // Move this inside of the target at the end - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else if (target_ref->parent() != our_ref->parent()) { - // Change in parent, need to remove and add - our_ref->parent()->removeChild(our_ref); - target_ref->parent()->addChild(our_ref, target_ref); - } else { - // Same parent, just move - our_ref->parent()->changeOrder(our_ref, target_ref); - } + + for (std::vector::iterator it = needCallback.begin(); it != needCallback.end(); ++it) { + DocTrack *track = *it; + if ( std::find(docTrackings.begin(), docTrackings.end(), track) != docTrackings.end() ) { // Just in case one gets deleted while we are looping + // Note: calling handleDefsModified will call queueUpdateIfNeeded and thus update the time and flag. + SwatchesPanel::handleDefsModified(track->doc); } - sp_repr_save_file(SwatchDocument->getReprDoc(), SwatchFile, SP_SVG_NS_URI); } return true; } -/* - * Drap and drop within the tree - * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer - */ -bool SwatchesPanel::_handleDragDropDoc(const Glib::RefPtr& context, int x, int y, guint time) +bool DocTrack::queueUpdateIfNeeded( SPDocument *doc ) { - int cell_x = 0, cell_y = 0; - Gtk::TreeModel::Path target_path; - Gtk::TreeView::Column *target_column; - - bool _dnd_top = false; - _dnd_into = false; - _dnd_target = _currentDocument->getDefs()->lastChild(); - Gtk::TreeModel::iterator itersel = _editDoc.get_selection()->get_selected(); - if (!itersel) { - return true; - } - Gtk::TreeModel::Row rowsel = *itersel; - _dnd_source = rowsel[_modelDoc->_colObject]; - - if (!_dnd_source) { - return true; - } - - if (_editDoc.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { - // Are we before, inside or after the drop layer - Gdk::Rectangle rect; - _editDoc.get_background_area (target_path, *target_column, rect); - int cell_height = rect.get_height(); - _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); - if (cell_y < (int)(cell_height * 1/3)) { - Gtk::TreeModel::Path next_path = target_path; - if (next_path.prev()) { - target_path = next_path; + bool deferProcessing = false; + for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it) { + DocTrack *track = *it; + if ( track->doc == doc ) { + double now = timer->elapsed(); + double elapsed = now - track->lastGradientUpdate; + + if ( elapsed < DOC_UPDATE_THREASHOLD ) { + deferProcessing = true; + track->updatePending = true; } else { - // Dragging to the "end" - Gtk::TreeModel::Path up_path = target_path; - up_path.up(); - if (_storeDoc->iter_is_valid(_storeDoc->get_iter(up_path))) { - // Drop into parent - target_path = up_path; - _dnd_into = true; - } else { - _dnd_top = true; - // Drop into the top level - _dnd_target = NULL; - } + track->lastGradientUpdate = now; + track->updatePending = false; } + + break; } - if (!_dnd_top) { - Gtk::TreeModel::iterator iter = _storeDoc->get_iter(target_path); - if (_storeDoc->iter_is_valid(iter)) { - Gtk::TreeModel::Row row = *iter; - SPObject *obj = row[_modelDoc->_colObject]; - if (obj) { - _dnd_target = obj; - if (SP_IS_GRADIENT(obj)) { - _dnd_into = false; - if (SP_IS_GROUP(_dnd_source)) { - _dnd_target = obj->parent; - } - } else if (SP_IS_GROUP(_dnd_source)) { - _dnd_into = false; + } + return deferProcessing; +} + +void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document ) +{ + SPDocument *oldDoc = NULL; + if (docPerPanel.find(panel) != docPerPanel.end()) { + oldDoc = docPerPanel[panel]; + if (!oldDoc) { + docPerPanel.erase(panel); // Should not be needed, but clean up just in case. + } + } + if (oldDoc != document) { + if (oldDoc) { + docPerPanel[panel] = NULL; + bool found = false; + for (std::map::iterator it = docPerPanel.begin(); (it != docPerPanel.end()) && !found; ++it) { + found = (it->second == document); + } + if (!found) { + for (std::vector::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it){ + if ((*it)->doc == oldDoc) { + delete *it; + docTrackings.erase(it); + break; } } } } - } - - if (_dnd_source != _dnd_target) { - - Inkscape::XML::Node *target_ref = _dnd_target ? _dnd_target->getRepr() : NULL; - Inkscape::XML::Node *our_ref = _dnd_source->getRepr(); - - if (target_ref != our_ref) { - if (!target_ref) { - target_ref = _currentDocument->getDefs()->getRepr(); - if (target_ref != our_ref->parent()) { - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else { - our_ref->parent()->changeOrder(our_ref, NULL); + + if (document) { + bool found = false; + for (std::map::iterator it = docPerPanel.begin(); (it != docPerPanel.end()) && !found; ++it) { + found = (it->second == document); + } + docPerPanel[panel] = document; + if (!found) { + sigc::connection conn1 = document->connectResourcesChanged( "gradient", sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleGradientsChange), document) ); + sigc::connection conn2 = document->getDefs()->connectRelease( sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document)) ); + sigc::connection conn3 = document->getDefs()->connectModified( sigc::hide(sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document))) ); + + DocTrack *dt = new DocTrack(document, conn1, conn2, conn3); + docTrackings.push_back(dt); + + if (docPalettes.find(document) == docPalettes.end()) { + SwatchPage *docPalette = new SwatchPage(); + docPalette->_name = "Auto"; + docPalettes[document] = docPalette; } - } else if (_dnd_into) { - // Move this inside of the target at the end - our_ref->parent()->removeChild(our_ref); - target_ref->addChild(our_ref, NULL); - } else if (target_ref->parent() != our_ref->parent()) { - // Change in parent, need to remove and add - our_ref->parent()->removeChild(our_ref); - target_ref->parent()->addChild(our_ref, target_ref); - } else { - // Same parent, just move - our_ref->parent()->changeOrder(our_ref, target_ref); } } - DocumentUndo::done( _currentDocument , SP_VERB_DIALOG_SWATCHES, - _("Moved Swatches")); } - - return true; } +void SwatchesPanel::_setDocument( SPDocument *document ) +{ + if ( document != _currentDocument ) { + _trackDocument(this, document); + _currentDocument = document; + handleGradientsChange( document ); + } +} -/** - * Constructor - */ -SwatchesPanel::SwatchesPanel(gchar const* prefsPath, bool showLabels) : - Inkscape::UI::Widget::Panel("", prefsPath, SP_VERB_DIALOG_SWATCHES, ""), - _scroller(), - _insideTable(1, 1), - _insideV(), - _insideH(), - _buttonsRow(), - _outsideV(), - _noLink(_("Don't Link")), - _showlabels(showLabels), - _store(0), - _scrollerBI(), - _editBI(), - _buttonsRowBI(), - _editBIV(), - _storeDoc(0), - _scrollerDoc(), - _editDoc(), - _buttonsRowDoc(), - _editDocV(), - _notebook(), - rootWatcher(0), - docWatcher(0), - _currentDesktop(0), - _currentDocument(0) +static void recalcSwatchContents(SPDocument* doc, + boost::ptr_vector &tmpColors, + std::map &previewMappings, + std::map &gradMappings) { - _insideH.pack_start(_insideTable, Gtk::PACK_SHRINK); - if (_showlabels) { - _insideV.pack_start(_insideH, Gtk::PACK_SHRINK); - _scroller.add(_insideV); - } else { - _scroller.property_height_request() = 20; - _scroller.add(_insideH); + std::vector newList; + + const GSList *gradients = doc->getResourceList("gradient"); + for (const GSList *item = gradients; item; item = item->next) { + SPGradient* grad = SP_GRADIENT(item->data); + if ( grad->isSwatch() ) { + newList.push_back(SP_GRADIENT(item->data)); + } } - - popUpMenu = manage( new Gtk::Menu() ); - popUpMenu->show_all_children(); - - Gtk::Button* btn = manage( new Gtk::Button() ); - _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Add Swatch") ); - btn->signal_button_press_event().connect_notify( sigc::mem_fun(*this, &SwatchesPanel::_addButtonClicked) ); - _buttonsRow.pack_start(*btn, Gtk::PACK_SHRINK); - -// btn = manage( new Gtk::Button() ); -// _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_DISCONNECT, C_("Unlink", "New") ); -// _buttonsRow.pack_end(*btn, Gtk::PACK_SHRINK); - - static Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - Glib::ustring nolink = Glib::ustring::compose("%1/nolink", prefsPath); - _noLink.set_tooltip_text(_("Don't link swatches")); - _noLink.set_active(prefs->getBool(nolink, false)); - _noLink.signal_toggled().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NoLinkToggled)); - _buttonsRow.pack_end(_noLink, Gtk::PACK_SHRINK); - - _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); - _scroller.set_shadow_type(Gtk::SHADOW_NONE); - - if (_showlabels) { - _outsideV.pack_end(_buttonsRow, Gtk::PACK_SHRINK); - _outsideV.pack_end(_scroller, Gtk::PACK_EXPAND_WIDGET); - - _notebook.append_page(_outsideV, "Use"); - + + if ( !newList.empty() ) { + std::reverse(newList.begin(), newList.end()); + for ( std::vector::iterator it = newList.begin(); it != newList.end(); ++it ) { - ModelColumnsDoc *zoop = new ModelColumnsDoc(); - _modelDoc = zoop; + SPGradient* grad = *it; - _storeDoc = Gtk::TreeStore::create( *zoop ); + cairo_surface_t *preview = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, + PREVIEW_PIXBUF_WIDTH, VBLOCK); + cairo_t *ct = cairo_create(preview); - _editDoc.set_model( _storeDoc ); - _editDoc.set_headers_visible(false); - _editDoc.set_reorderable(true); - _editDoc.enable_model_drag_dest (Gdk::ACTION_MOVE); + Glib::ustring name( grad->getId() ); + ColorItem* item = new ColorItem( 0, 0, 0, name ); - Gtk::Button* btn = manage( new Gtk::Button() ); - _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Import Swatch") ); - btn->signal_button_press_event().connect_notify( sigc::mem_fun(*this, &SwatchesPanel::_addButtonClicked)); - _buttonsRowDoc.pack_start(*btn, Gtk::PACK_SHRINK); + cairo_pattern_t *check = ink_cairo_pattern_create_checkerboard(); + cairo_pattern_t *gradient = sp_gradient_create_preview_pattern(grad, PREVIEW_PIXBUF_WIDTH); + cairo_set_source(ct, check); + cairo_paint(ct); + cairo_set_source(ct, gradient); + cairo_paint(ct); - btn = manage( new Gtk::Button() ); - _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_DELETE, GTK_STOCK_DELETE, _("Delete Swatch") ); - btn->signal_button_press_event().connect_notify( sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_deleteButtonClickedDoc))); - _buttonsRowDoc.pack_start(*btn, Gtk::PACK_SHRINK); + cairo_destroy(ct); + cairo_pattern_destroy(gradient); + cairo_pattern_destroy(check); - _pixbuf_rendererDoc = manage(new Gtk::CellRendererPixbuf()); - int pixbufColNum = _editDoc.append_column("Pixbuf", *_pixbuf_rendererDoc) - 1; - _pixbuf_columnDoc = _editDoc.get_column(pixbufColNum); - _pixbuf_columnDoc->add_attribute(_pixbuf_rendererDoc->property_pixbuf(), _modelDoc->_colPixbuf); - - _text_rendererDoc = manage(new Gtk::CellRendererText()); - int nameColNum = _editDoc.append_column("Name", *_text_rendererDoc) - 1; - _name_columnDoc = _editDoc.get_column(nameColNum); - _name_columnDoc->add_attribute(_text_rendererDoc->property_text(), _modelDoc->_colLabel); + cairo_pattern_t *prevpat = cairo_pattern_create_for_surface(preview); + cairo_surface_destroy(preview); - _text_rendererDoc->signal_edited().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditedDoc) ); - _text_rendererDoc->signal_editing_canceled().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditingCancelledDoc) ); + previewMappings[item] = prevpat; + + tmpColors.push_back(item); + gradMappings[item] = grad; + } + } +} - _editDoc.set_expander_column( *_editDoc.get_column(nameColNum) ); +void SwatchesPanel::handleGradientsChange(SPDocument *document) +{ + SwatchPage *docPalette = (docPalettes.find(document) != docPalettes.end()) ? docPalettes[document] : 0; + if (docPalette) { + boost::ptr_vector tmpColors; + std::map tmpPrevs; + std::map tmpGrads; + recalcSwatchContents(document, tmpColors, tmpPrevs, tmpGrads); - _editDoc.signal_button_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEventDoc), false ); - _editDoc.signal_button_release_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEventDoc), false ); - _editDoc.signal_key_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleKeyEventDoc), false ); + for (std::map::iterator it = tmpPrevs.begin(); it != tmpPrevs.end(); ++it) { + it->first->setPattern(it->second); + cairo_pattern_destroy(it->second); + } - _editDoc.signal_drag_drop().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleDragDropDoc), false); + for (std::map::iterator it = tmpGrads.begin(); it != tmpGrads.end(); ++it) { + it->first->setGradient(it->second); + } - _scrollerDoc.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); - _scrollerDoc.set_shadow_type(Gtk::SHADOW_IN); - _scrollerDoc.add(_editDoc); + docPalette->_colors.swap(tmpColors); - _editDocV.pack_start(_scrollerDoc, Gtk::PACK_EXPAND_WIDGET); - _editDocV.pack_end(_buttonsRowDoc, Gtk::PACK_SHRINK); + // Figure out which SwatchesPanel instances are affected and update them. - _notebook.append_page(_editDocV, "Edit"); - } - - { - popUpImportMenu = Gtk::manage(new Gtk::Menu()); - - Gtk::MenuItem* mi = Gtk::manage(new Gtk::MenuItem(_("New Swatch Group..."))); - mi->signal_activate().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::NewGroupBI)); - mi->show(); - popUpImportMenu->append(*mi); - - mi = Gtk::manage(new Gtk::MenuItem(_("Import Swatch File..."))); - mi->signal_activate().connect_notify(sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_importButtonClicked), false, true)); - mi->show(); - popUpImportMenu->append(*mi); - - ModelColumns *zoop = new ModelColumns(); - _model = zoop; - - _store = Gtk::TreeStore::create( *zoop ); - - _editBI.set_model( _store ); - _editBI.set_headers_visible(false); - _editBI.set_reorderable(true); - _editBI.enable_model_drag_dest (Gdk::ACTION_MOVE); - - Gtk::Button* btn = manage( new Gtk::Button() ); - _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_NEW, GTK_STOCK_ADD, _("Import Swatch") ); - btn->signal_button_press_event().connect_notify(sigc::mem_fun(*this, &SwatchesPanel::_addBIButtonClicked)); - _buttonsRowBI.pack_start(*btn, Gtk::PACK_SHRINK); - - btn = manage( new Gtk::Button() ); - _styleButton( *btn, SP_ACTIVE_DESKTOP, SP_VERB_LAYER_DELETE, GTK_STOCK_DELETE, _("Delete Swatch") ); - btn->signal_button_press_event().connect_notify( sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_deleteButtonClicked))); - _buttonsRowBI.pack_start(*btn, Gtk::PACK_SHRINK); - - _text_rendererBI = manage(new Gtk::CellRendererText()); - int nameColNum = _editBI.append_column("Name", *_text_rendererBI) - 1; - _name_columnBI = _editBI.get_column(nameColNum); - _name_columnBI->add_attribute(_text_rendererBI->property_text(), _model->_colLabel); - - _text_rendererBI->signal_edited().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEdited) ); - _text_rendererBI->signal_editing_canceled().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleEditingCancelled) ); - - _editBI.set_expander_column( *_editBI.get_column(nameColNum) ); - - _editBI.signal_button_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEvent), false ); - _editBI.signal_button_release_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleButtonEvent), false ); - _editBI.signal_key_press_event().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleKeyEvent), false ); - - _editBI.signal_drag_drop().connect( sigc::mem_fun(*this, &SwatchesPanel::_handleDragDrop), false); - _editBI.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setExpanded), false)); - _editBI.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &SwatchesPanel::_setExpanded), true)); - - _scrollerBI.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); - _scrollerBI.set_shadow_type(Gtk::SHADOW_IN); - _scrollerBI.add(_editBI); - - _editBIV.pack_start(_scrollerBI, Gtk::PACK_EXPAND_WIDGET); - _editBIV.pack_end(_buttonsRowBI, Gtk::PACK_SHRINK); - - _notebook.append_page(_editBIV, "Edit Built-In"); + for (std::map::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) { + if (it->second == document) { + SwatchesPanel* swp = it->first; + std::vector pages = swp->_getSwatchSets(); + SwatchPage* curr = pages[swp->_currentIndex]; + if (curr == docPalette) { + swp->_rebuild(); + } + } } - - _getContents()->pack_end(_notebook, Gtk::PACK_EXPAND_WIDGET); - } else { - //_outsideV.pack_end(_scroller, Gtk::PACK_SHRINK); - _buttonsRow.pack_end(_scroller, Gtk::PACK_EXPAND_WIDGET); - //_getContents()->pack_end(_outsideV, Gtk::PACK_SHRINK); - _getContents()->pack_end(_buttonsRow, Gtk::PACK_SHRINK); } - - loadPalletFile(); - - rootWatcher = new SwatchWatcher(this, SwatchDocument->getDefs(), true); - SwatchDocument->getDefs()->getRepr()->addObserver(*rootWatcher); - _swatchesChanged(); - _insideTable.resize(1,1); } -SwatchesPanel::~SwatchesPanel() +void SwatchesPanel::handleDefsModified(SPDocument *document) { - if (rootWatcher) { - rootWatcher->_repr->removeObserver(*rootWatcher); - delete rootWatcher; + SwatchPage *docPalette = (docPalettes.find(document) != docPalettes.end()) ? docPalettes[document] : 0; + if (docPalette && !DocTrack::queueUpdateIfNeeded(document) ) { + boost::ptr_vector tmpColors; + std::map tmpPrevs; + std::map tmpGrads; + recalcSwatchContents(document, tmpColors, tmpPrevs, tmpGrads); + + if ( tmpColors.size() != docPalette->_colors.size() ) { + handleGradientsChange(document); + } else { + int cap = std::min(docPalette->_colors.size(), tmpColors.size()); + for (int i = 0; i < cap; i++) { + ColorItem *newColor = &tmpColors[i]; + ColorItem *oldColor = &docPalette->_colors[i]; + if ( (newColor->def.getType() != oldColor->def.getType()) || + (newColor->def.getR() != oldColor->def.getR()) || + (newColor->def.getG() != oldColor->def.getG()) || + (newColor->def.getB() != oldColor->def.getB()) ) { + oldColor->def.setRGB(newColor->def.getR(), newColor->def.getG(), newColor->def.getB()); + } + if (tmpGrads.find(newColor) != tmpGrads.end()) { + oldColor->setGradient(tmpGrads[newColor]); + } + if ( tmpPrevs.find(newColor) != tmpPrevs.end() ) { + oldColor->setPattern(tmpPrevs[newColor]); + } + } + } + + for (std::map::iterator it = tmpPrevs.begin(); it != tmpPrevs.end(); ++it) { + cairo_pattern_destroy(it->second); + } } - - if (docWatcher) { - docWatcher->_repr->removeObserver(*docWatcher); - delete docWatcher; +} + + +std::vector SwatchesPanel::_getSwatchSets() const +{ + std::vector tmp; + if (docPalettes.find(_currentDocument) != docPalettes.end()) { + tmp.push_back(docPalettes[_currentDocument]); } - _documentConnection.disconnect(); - _selChanged.disconnect(); + tmp.insert(tmp.end(), userSwatchPages.begin(), userSwatchPages.end()); + tmp.insert(tmp.end(), systemSwatchPages.begin(), systemSwatchPages.end()); + + return tmp; } -void SwatchesPanel::setDesktop( SPDesktop* desktop ) +void SwatchesPanel::_updateFromSelection() { - Inkscape::UI::Widget::Panel::setDesktop(desktop); - if ( desktop != _currentDesktop ) { - if ( _currentDesktop ) { - _documentConnection.disconnect(); - _selChanged.disconnect(); + SwatchPage *docPalette = (docPalettes.find(_currentDocument) != docPalettes.end()) ? docPalettes[_currentDocument] : 0; + if ( docPalette ) { + Glib::ustring fillId; + Glib::ustring strokeId; + + SPStyle *tmpStyle = sp_style_new( sp_desktop_document(_currentDesktop) ); + int result = sp_desktop_query_style( _currentDesktop, tmpStyle, QUERY_STYLE_PROPERTY_FILL ); + switch (result) { + case QUERY_STYLE_SINGLE: + case QUERY_STYLE_MULTIPLE_AVERAGED: + case QUERY_STYLE_MULTIPLE_SAME: + { + if (tmpStyle->fill.set && tmpStyle->fill.isPaintserver()) { + SPPaintServer* server = tmpStyle->getFillPaintServer(); + if ( SP_IS_GRADIENT(server) ) { + SPGradient* target = 0; + SPGradient* grad = SP_GRADIENT(server); + + if ( grad->isSwatch() ) { + target = grad; + } else if ( grad->ref ) { + SPGradient *tmp = grad->ref->getObject(); + if ( tmp && tmp->isSwatch() ) { + target = tmp; + } + } + if ( target ) { + //XML Tree being used directly here while it shouldn't be + gchar const* id = target->getRepr()->attribute("id"); + if ( id ) { + fillId = id; + } + } + } + } + break; + } } - _currentDesktop = desktop; + result = sp_desktop_query_style( _currentDesktop, tmpStyle, QUERY_STYLE_PROPERTY_STROKE ); + switch (result) { + case QUERY_STYLE_SINGLE: + case QUERY_STYLE_MULTIPLE_AVERAGED: + case QUERY_STYLE_MULTIPLE_SAME: + { + if (tmpStyle->stroke.set && tmpStyle->stroke.isPaintserver()) { + SPPaintServer* server = tmpStyle->getStrokePaintServer(); + if ( SP_IS_GRADIENT(server) ) { + SPGradient* target = 0; + SPGradient* grad = SP_GRADIENT(server); + if ( grad->isSwatch() ) { + target = grad; + } else if ( grad->ref ) { + SPGradient *tmp = grad->ref->getObject(); + if ( tmp && tmp->isSwatch() ) { + target = tmp; + } + } + if ( target ) { + //XML Tree being used directly here while it shouldn't be + gchar const* id = target->getRepr()->attribute("id"); + if ( id ) { + strokeId = id; + } + } + } + } + break; + } + } + sp_style_unref(tmpStyle); - if ( desktop ) { - //_currentDesktop->selection->connectChanged(sigc::hide(sigc::mem_fun(*this, &SwatchesPanel::_updateFromSelection))); + for ( boost::ptr_vector::iterator it = docPalette->_colors.begin(); it != docPalette->_colors.end(); ++it ) { + ColorItem* item = &*it; + bool isFill = (fillId == item->def.descr); + bool isStroke = (strokeId == item->def.descr); + item->setState( isFill, isStroke ); + } + } +} - _documentConnection = desktop->connectDocumentReplaced(sigc::mem_fun(*this, &SwatchesPanel::_setDocument)); +void SwatchesPanel::_handleAction( int setId, int itemId ) +{ + switch( setId ) { + case 3: + { + std::vector pages = _getSwatchSets(); + if ( itemId >= 0 && itemId < static_cast(pages.size()) ) { + _currentIndex = itemId; - _setDocument( desktop, desktop->doc() ); - } else { - _setDocument(0, 0); + if ( !_prefs_path.empty() ) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setString(_prefs_path + "/palette", pages[_currentIndex]->_name); + } + + _rebuild(); + } } + break; } } -void SwatchesPanel::_setDocument( SPDesktop* desktop, SPDocument *document ) +void SwatchesPanel::_rebuild() { - if ( document != _currentDocument ) { - if (docWatcher) { - docWatcher->_repr->removeObserver(*docWatcher); - delete docWatcher; - docWatcher = NULL; - } - _currentDocument = document; - - if (_currentDocument) { - docWatcher = new SwatchWatcher(this, _currentDocument->getDefs(), false); - _currentDocument->getDefs()->getRepr()->addObserver(*docWatcher); - } - _defsChanged(); + std::vector pages = _getSwatchSets(); + SwatchPage* curr = pages[_currentIndex]; + _holder->clear(); + + if ( curr->_prefWidth > 0 ) { + _holder->setColumnPref( curr->_prefWidth ); } + _holder->freezeUpdates(); + // TODO restore once 'clear' works _holder->addPreview(_clear); + _holder->addPreview(_remove); + for ( boost::ptr_vector::iterator it = curr->_colors.begin(); it != curr->_colors.end(); ++it) { + _holder->addPreview(&*it); + } + _holder->thawUpdates(); } } //namespace Dialogs } //namespace UI } //namespace Inkscape -//really lazy! -void sp_desktop_set_gradient(SPDesktop *desktop, SPGradient* gradient, bool fill) -{ - - bool intercepted = false; - - if (gradient->isSolid()) { - ColorRGBA color(gradient->getFirstStop()->getEffectiveColor().toRGBA32(gradient->getFirstStop()->opacity)); - guint32 rgba = SP_RGBA32_F_COMPOSE(color[0], color[1], color[2], color[3]); - gchar b[64]; - sp_svg_write_color(b, sizeof(b), rgba); - SPCSSAttr *css = sp_repr_css_attr_new(); - if (fill) { - sp_repr_css_set_property(css, "fill", b); - Inkscape::CSSOStringStream osalpha; - osalpha << color[3]; - sp_repr_css_set_property(css, "fill-opacity", osalpha.str().c_str()); - } else { - sp_repr_css_set_property(css, "stroke", b); - Inkscape::CSSOStringStream osalpha; - osalpha << color[3]; - sp_repr_css_set_property(css, "stroke-opacity", osalpha.str().c_str()); - } - intercepted = desktop->_set_style_signal.emit(css); - } - - if (!intercepted) { - for (const GSList *it = desktop->selection->itemList(); it != NULL; it = it->next) { - sp_item_set_gradient(SP_ITEM(it->data), gradient, SP_IS_RADIALGRADIENT(gradient) ? SP_GRADIENT_TYPE_RADIAL : SP_GRADIENT_TYPE_LINEAR, !fill ? Inkscape::FOR_STROKE : Inkscape::FOR_FILL); - } - } -} /* Local Variables: diff --git a/src/ui/dialog/swatches.h b/src/ui/dialog/swatches.h index cb8f87962..ca4c1687d 100644 --- a/src/ui/dialog/swatches.h +++ b/src/ui/dialog/swatches.h @@ -12,161 +12,64 @@ #include "ui/widget/panel.h" #include "enums.h" -#include "sp-object.h" -#include "sp-item-group.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "sp-gradient.h" -#include "xml/node-observer.h" namespace Inkscape { namespace UI { +class PreviewHolder; + namespace Dialogs { +class ColorItem; +class SwatchPage; +class DocTrack; + /** * A panel that displays paint swatches. */ class SwatchesPanel : public Inkscape::UI::Widget::Panel { public: - SwatchesPanel(gchar const* prefsPath = "/dialogs/swatches", bool showLabels = true); + SwatchesPanel(gchar const* prefsPath = "/dialogs/swatches"); virtual ~SwatchesPanel(); - + static SwatchesPanel& getInstance(); + virtual void setOrientation(SPAnchorType how); + virtual void setDesktop( SPDesktop* desktop ); virtual SPDesktop* getDesktop() {return _currentDesktop;} + virtual int getSelectedIndex() {return _currentIndex;} // temporary + protected: + static void handleGradientsChange(SPDocument *document); + + virtual void _updateFromSelection(); + virtual void _handleAction( int setId, int itemId ); + virtual void _setDocument( SPDocument *document ); + virtual void _rebuild(); - virtual void _setDocument( SPDesktop* desktop, SPDocument *document ); + virtual std::vector _getSwatchSets() const; private: - class ModelColumns; - class ModelColumnsDoc; - - class StopWatcher; - class GradientWatcher; - class SwatchWatcher; - SwatchesPanel(SwatchesPanel const &); // no copy SwatchesPanel &operator=(SwatchesPanel const &); // no assign - - void _styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback ); - - void _setSelectionSwatch(SPGradient* swatchItem, bool isStroke); - - void NoLinkToggled(); - void NewGroup(); - void NewGroupBI(); - void _addBIButtonClicked(GdkEventButton* event); - void Duplicate(SPGroup* page); - void SaveAs(); - void AddSelectedFill(SPGroup* page); - void AddSelectedStroke(SPGroup* page); - void MoveUp(SPGroup* page); - void MoveDown(SPGroup* page); - void Remove(SPGroup* page); - - void SetSelectedFill(SPGradient* swatch); - void SetSelectedStroke(SPGradient* swatch); - void MoveSwatchUp(SPGradient* swatch); - void MoveSwatchDown(SPGradient* swatch); - void RemoveSwatch(SPGradient* swatch); - - void _lblClick(GdkEventButton* event, SPGroup* page); - void _addSwatchButtonClicked(SPGroup* swatch, bool recurse); - void _defsChanged(); - void _importButtonClicked(bool addToDoc, bool addToBI); - void _deleteButtonClicked(); - void _addButtonClicked(GdkEventButton* event); - void _swatchClicked(GdkEventButton* event, SPGradient* swatchItem); - - Gtk::MenuItem* _addSwatchGroup(SPGroup* group, Gtk::TreeModel::Row* parentRow); - void _swatchesChanged(); - - bool _handleButtonEvent(GdkEventButton *event); - bool _handleKeyEvent(GdkEventKey *event); - - void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); - void _handleEditingCancelled(); - void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); - - void _setCollapsed(SPGroup * group); - void _setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded); - - void _deleteButtonClickedDoc(); - bool _handleButtonEventDoc(GdkEventButton* event); - bool _handleKeyEventDoc(GdkEventKey *event); - - void _handleEditedDoc(const Glib::ustring& path, const Glib::ustring& new_text); - void _handleEditingCancelledDoc(); - void _renameObjectDoc(Gtk::TreeModel::Row row, const Glib::ustring& name); - - bool _handleDragDropDoc(const Glib::RefPtr& context, int x, int y, guint time); - bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); - - Gtk::Menu *popUpMenu; - Gtk::Menu *popUpImportMenu; - - Gtk::ScrolledWindow _scroller; - Gtk::Table _insideTable; - Gtk::VBox _insideV; - Gtk::HBox _insideH; - Gtk::HBox _buttonsRow; - Gtk::VBox _outsideV; - Gtk::CheckButton _noLink; - bool _showlabels; - - SwatchesPanel::ModelColumns* _model; - Glib::RefPtr _store; - - Gtk::CellRendererText *_text_rendererBI; - Gtk::TreeView::Column *_name_columnBI; - Gtk::ScrolledWindow _scrollerBI; - Gtk::TreeView _editBI; - Gtk::HBox _buttonsRowBI; - Gtk::VBox _editBIV; - - SwatchesPanel::ModelColumnsDoc* _modelDoc; - Glib::RefPtr _storeDoc; - - Gtk::CellRendererText *_text_rendererDoc; - Gtk::CellRendererPixbuf *_pixbuf_rendererDoc; - Gtk::TreeView::Column *_name_columnDoc; - Gtk::TreeView::Column *_pixbuf_columnDoc; - Gtk::ScrolledWindow _scrollerDoc; - Gtk::TreeView _editDoc; - Gtk::HBox _buttonsRowDoc; - Gtk::VBox _editDocV; - - Gtk::Notebook _notebook; - - SwatchWatcher* rootWatcher; - std::vector rootWatchers; - - std::vector docWatchers; - SwatchWatcher* docWatcher; + static void _trackDocument( SwatchesPanel *panel, SPDocument *document ); + static void handleDefsModified(SPDocument *document); + + PreviewHolder* _holder; + ColorItem* _clear; + ColorItem* _remove; + int _currentIndex; SPDesktop* _currentDesktop; SPDocument* _currentDocument; - - bool _dnd_into; - SPObject* _dnd_source; - SPObject* _dnd_target; sigc::connection _documentConnection; sigc::connection _selChanged; + + friend class DocTrack; }; } //namespace Dialogs diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 2eba8bb8c..361a54a90 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -358,7 +358,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) { using Inkscape::UI::Dialogs::SwatchesPanel; - dtw->panels = new SwatchesPanel("/embedded/swatches", false); + dtw->panels = new SwatchesPanel("/embedded/swatches" /*false*/); dtw->panels->setOrientation(SP_ANCHOR_SOUTH); #if GTK_CHECK_VERSION(3,0,0) -- cgit v1.2.3 From 95b10e0707ee0e16055d5e514e1d05c929d49b5a Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 18 Mar 2014 17:34:31 -0600 Subject: Added in new toy effect "Taper Strokes," readded a missing header file, bugfixes (bzr r13090.1.25) --- src/live_effects/Makefile_insert | 6 +- src/live_effects/effect-enum.h | 3 +- src/live_effects/effect.cpp | 13 +- src/live_effects/lpe-jointype.h | 43 ++ src/live_effects/lpe-taperstroke.cpp | 536 +++++++++++++++++++++++ src/live_effects/lpe-taperstroke.h | 73 ++++ src/live_effects/pathoutlineprovider.h | 766 +++++++++++++++++++++++++++++++++ src/ui/clipboard.cpp | 9 + 8 files changed, 1443 insertions(+), 6 deletions(-) create mode 100755 src/live_effects/lpe-jointype.h create mode 100644 src/live_effects/lpe-taperstroke.cpp create mode 100644 src/live_effects/lpe-taperstroke.h create mode 100755 src/live_effects/pathoutlineprovider.h diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert index 35a85b4aa..b19f417ae 100644 --- a/src/live_effects/Makefile_insert +++ b/src/live_effects/Makefile_insert @@ -92,4 +92,8 @@ ink_common_sources += \ live_effects/lpe-fill-between-many.cpp \ live_effects/lpe-fill-between-many.h \ live_effects/lpe-ellipse_5pts.cpp \ - live_effects/lpe-ellipse_5pts.h + live_effects/lpe-ellipse_5pts.h \ + live_effects/lpe-jointype.cpp \ + live_effects/lpe-jointype.h \ + live_effects/lpe-taperstroke.cpp \ + live_effects/lpe-taperstroke.h diff --git a/src/live_effects/effect-enum.h b/src/live_effects/effect-enum.h index 9c76875e9..c53d64699 100644 --- a/src/live_effects/effect-enum.h +++ b/src/live_effects/effect-enum.h @@ -55,7 +55,8 @@ enum EffectType { FILL_BETWEEN_MANY, ELLIPSE_5PTS, BOUNDING_BOX, -// JOIN_TYPE, + JOIN_TYPE, + TAPER_STROKE, INVALID_LPE // This must be last (I made it such that it is not needed anymore I think..., Don't trust on it being last. - johan) }; diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index eac0f79f4..d6840e5b8 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -52,7 +52,8 @@ #include "live_effects/lpe-fill-between-many.h" #include "live_effects/lpe-ellipse_5pts.h" #include "live_effects/lpe-bounding-box.h" -//#include "live_effects/lpe-jointype.h" +#include "live_effects/lpe-jointype.h" +#include "live_effects/lpe-taperstroke.h" #include "xml/node-event-vector.h" #include "sp-object.h" @@ -109,7 +110,8 @@ const Util::EnumData LPETypeData[] = { {RECURSIVE_SKELETON, N_("Recursive skeleton"), "recursive_skeleton"}, {TANGENT_TO_CURVE, N_("Tangent to curve"), "tangent_to_curve"}, {TEXT_LABEL, N_("Text label"), "text_label"}, -// {JOIN_TYPE, N_("Join type"), "join_type"}, + {JOIN_TYPE, N_("Join type"), "join_type"}, + {TAPER_STROKE, N_("Taper stroke"), "taper_stroke"}, #endif /* 0.46 */ {BEND_PATH, N_("Bend"), "bend_path"}, @@ -273,9 +275,12 @@ Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj) case BOUNDING_BOX: neweffect = static_cast ( new LPEBoundingBox(lpeobj) ); break; - /*case JOIN_TYPE: + case JOIN_TYPE: neweffect = static_cast ( new LPEJoinType(lpeobj) ); - break;*/ + break; + case TAPER_STROKE: + neweffect = static_cast ( new LPETaperStroke(lpeobj) ); + break; default: g_warning("LivePathEffect::Effect::New called with invalid patheffect type (%d)", lpenr); neweffect = NULL; diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h new file mode 100755 index 000000000..db113c66a --- /dev/null +++ b/src/live_effects/lpe-jointype.h @@ -0,0 +1,43 @@ +/* Authors: + * Liam P White + * + * Copyright (C) 2014 Authors + * + * Released under GNU GPL v2, read the file COPYING for more information + */ +#ifndef INKSCAPE_LPE_JOINTYPE_H +#define INKSCAPE_LPE_JOINTYPE_H + +#include "live_effects/effect.h" +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/point.h" +#include "live_effects/parameter/enum.h" + +namespace Inkscape { +namespace LivePathEffect { + +class LPEJoinType : public Effect { +public: + LPEJoinType(LivePathEffectObject *lpeobject); + virtual ~LPEJoinType(); + + virtual void doOnApply(SPLPEItem const* lpeitem); + virtual void doOnRemove(SPLPEItem const* lpeitem); + virtual std::vector doEffect_path (std::vector const & path_in); + +private: + LPEJoinType(const LPEJoinType&); + LPEJoinType& operator=(const LPEJoinType&); + + ScalarParam line_width; + EnumParam linecap_type; + EnumParam linejoin_type; + ScalarParam miter_limit; + BoolParam attempt_force_join; + bool was_initialized; +}; + +} //namespace LivePathEffect +} //namespace Inkscape + +#endif diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp new file mode 100644 index 000000000..e6eed3abe --- /dev/null +++ b/src/live_effects/lpe-taperstroke.cpp @@ -0,0 +1,536 @@ +/** + * @file + * Taper Stroke path effect, provided as an alternative to Power Strokes + * for otherwise constant-width paths. + * + * Authors: + * Liam P White + * + * Copyright (C) 2014 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/lpe-taperstroke.h" + +// You might need to include other 2geom files. You can add them here: +#include <2geom/path.h> +#include <2geom/shape.h> +#include "pathoutlineprovider.h" +#include "display/curve.h" +#include "svg/svg.h" + +//#include + +#include "knot-holder-entity.h" +#include "knotholder.h" + +namespace Inkscape { +namespace LivePathEffect { + +namespace TpS { + class KnotHolderEntityAttachBegin : public LPEKnotHolderEntity { + public: + KnotHolderEntityAttachBegin(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; + }; + class KnotHolderEntityAttachEnd : public LPEKnotHolderEntity { + public: + KnotHolderEntityAttachEnd(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; + }; +} // TpS + +static const Util::EnumData JoinType[] = { + {LINEJOIN_STRAIGHT, N_("Beveled"), "bevel"}, + {LINEJOIN_ROUND, N_("Rounded"), "round"}, + {LINEJOIN_REFLECTED, N_("Reflected"), "reflected"}, + {LINEJOIN_POINTY, N_("Miter"), "miter"}, + {LINEJOIN_EXTRAPOLATED, N_("Extrapolated"), "extrapolated"} +}; + +static const Util::EnumDataConverter JoinTypeConverter(JoinType, sizeof (JoinType)/sizeof(*JoinType)); + +LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : + Effect(lpeobject), + attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), + attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), + smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.2), + join_type(_("Join type"), _("Join type for non-smooth nodes"), "jointype", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), + miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 30.) +{ + /* uncomment the following line to have the original path displayed while the item is selected */ + show_orig_path = true; + _provides_knotholder_entities = true; + + attach_start.param_set_digits(3); + attach_end.param_set_digits(3); + + registerParameter( dynamic_cast(&attach_start) ); + registerParameter( dynamic_cast(&attach_end) ); + registerParameter( dynamic_cast(&smoothing) ); + registerParameter( dynamic_cast(&join_type) ); + registerParameter( dynamic_cast(&miter_limit) ); +} + +LPETaperStroke::~LPETaperStroke() +{ + +} + +unsigned curveOrder (const Geom::Curve* curve_in) +{ + using namespace Geom; + //cast it + const CubicBezier *cbc = dynamic_cast(curve_in); + if (cbc) return 3; + const QuadraticBezier * qbc = dynamic_cast(curve_in); + if (qbc) return 2; + const BezierCurveN<1U> * lbc = dynamic_cast *>(curve_in); + if (lbc) return 1; + //BezierCurveN<0> * dbc = dynamic_cast *> (curve_in); + return 0; +} + +Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_tolerance = 0.01) +{ + Geom::Path path_out = Geom::Path(); + + for (unsigned i = 0; i < path_in.size(); i++) + { + path_out.append(path_in[i]); + if (path_in.size() == 1) + break; + + //determine order of curve + int order = curveOrder(&path_in[i]); + + Geom::Point start_point; + Geom::Point cross_point = path_in[i].finalPoint(); + Geom::Point end_point; + + g_assert(path_in[i].finalPoint() == path_in[i+1].initialPoint()); + + //can you tell that the following expressions have been shaped by + //repeated compiler errors? ;) + switch (order) + { + case 3: + start_point = (dynamic_cast(&path_in[i]))->operator[] (2); + break; + case 2: + start_point = (dynamic_cast(&path_in[i]))->operator[] (1); + break; + case 1: + default: + start_point = path_in[i].initialPoint(); + } + + order = curveOrder(&path_in[i+1]); + + switch (order) + { + case 3: + end_point = (dynamic_cast(&path_in[i+1]))->operator[] (1); + break; + case 2: + end_point = (dynamic_cast(&path_in[i+1]))->operator[] (1); + break; + case 1: + default: + end_point = path_in[i+1].finalPoint(); + } + if (!are_collinear(start_point, cross_point, end_point, smooth_tolerance)) + break; + } + return path_out; +} + +Geom::Curve * subdivide_at(const Geom::Curve* curve_in, Geom::Coord time, bool first) +{ + //the only reason for this function is the lack of a subdivide function in the Curve class. + //you have to cast to Beziers to be able to use subdivide(t) + unsigned order = curveOrder(curve_in); + Geom::Curve* curve_out = curve_in->duplicate(); + switch (order) + { + //these need to be scoped because of the variable 'c' + case 3: + { + Geom::CubicBezier c = first ? (dynamic_cast (curve_out))->subdivide(time).first : + (dynamic_cast (curve_out))->subdivide(time).second; + if (curve_out) delete curve_out; + curve_out = c.duplicate(); + break; + } + case 2: + { + Geom::QuadraticBezier c = first ? (dynamic_cast(curve_out))->subdivide(time).first : + (dynamic_cast(curve_out))->subdivide(time).second; + if (curve_out) delete curve_out; + curve_out = c.duplicate(); + break; + } + case 1: + { + Geom::BezierCurveN<1> c = first ? (dynamic_cast* >(curve_out))->subdivide(time).first : + (dynamic_cast* >(curve_out))->subdivide(time).second; + if (curve_out) delete curve_out; + curve_out = c.duplicate(); + break; + } + } + return curve_out; +} + +Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double width); + +Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) +{ + //there is a pretty good chance that people will try to drag the knots + //on top of each other, so block it + + unsigned size = path_in[0].size(); + if (size == return_at_first_cusp(path_in[0]).size()) { + //check to see if the knots were dragged over each other + //if so, reset the end offset + if ( attach_start >= (size - attach_end) ) { + attach_end.param_set_value( size - attach_start ); + } + } + + //don't ever let it be zero + if (attach_start <= 0) { + attach_start.param_set_value( 0.0001 ); + } + if (attach_end <= 0) { + attach_end.param_set_value( 0.0001 ); + } + + /*if (size != return_at_first_cusp(path_in[0]).size()) { //will get to this in a bit + //check to see if either knot was dragged past their allowed amount + volatile unsigned size_p_start = (unsigned)attach_start; + volatile unsigned size_p_end = (unsigned)attach_end; + + //maximum allowed value in either direction is return_at_first_cusp(path_in[0]).size + volatile unsigned allowed_p_start = return_at_first_cusp(path_in[0]).size(); + volatile unsigned allowed_p_end = return_at_first_cusp(path_in[0].reverse()).size(); + + if (size_p_start > allowed_p_start) { + attach_start.param_set_value(allowed_p_start - 0.0001); + } else if (size_p_end > allowed_p_end) { + attach_end.param_set_value(allowed_p_end - 0.0001); + } + }*/ + + //Path::operator () means get point at time t + start_attach_point = return_at_first_cusp(path_in[0])(attach_start); + end_attach_point = return_at_first_cusp(path_in[0].reverse())(attach_end); + Geom::PathVector pathv_out; + + pathv_out = doEffect_simplePath(path_in); + + + //now for the fun stuff. Right? RIGHT? + + //decide on case + + //first case: taper on both sides + if (true/*pathv_out[0].length() != 0.001 && pathv_out[2].length() != 0.001*/) { + Geom::PathVector real_pathv; + + //Construct the pattern + + Geom::PathVector pat_vec = sp_svg_read_pathv("M 1,0 1,1 C 0.5,1 0,0.5 0,0.5 0,0.5 0.5,0 1,0 Z"); + + Geom::Piecewise > pwd2; + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], 40)); + + real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0]); + + Geom::PathVector sht_path; + sht_path.push_back(pathv_out[1]); + sht_path = Outline::outlinePath_extr(sht_path, 40, LINEJOIN_STRAIGHT, butt_straight, 30); + + real_pathv.push_back(sht_path[0]); + + pat_vec = sp_svg_read_pathv("M 0,0 0,1 C 0.5,1 1,0.5 1,0.5 1,0.5 0.5,0 0,0 Z"); + + pwd2 = Geom::Piecewise > (); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], 40)); + real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0].reverse()); + + //clever union + //Geom::Shape shape1 = Geom::sanitize(Geom::PathVector(1, real_pathv[0])); + //Geom::Shape shape2 = Geom::sanitize(Geom::PathVector(1, real_pathv[1])); + //Geom::Shape shape3 = Geom::boolop(shape1, shape2, Geom::BOOLOP_UNION); + + //shape2 = Geom::sanitize(Geom::PathVector(1, real_pathv[2])); + //shape1 = Geom::boolop(shape3, shape2, Geom::BOOLOP_UNION); + + //real_pathv = Geom::desanitize(shape1); + return real_pathv; + } + + return pathv_out; +} + +//in all cases, this should return a PathVector with three elements. +Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & path_in) +{ + unsigned size = path_in[0].size(); + + //do subdivision and get out + unsigned loc = (unsigned)attach_start; + Geom::Curve * curve_start = path_in[0] [loc].duplicate(); + + std::vector pathv_out; + Geom::Path path_out = Geom::Path(); + + Geom::Path trimmed_start = Geom::Path(); + Geom::Path trimmed_end = Geom::Path(); + + for (unsigned i = 0; i < loc; i++) { + trimmed_start.append(path_in[0] [i]); + } + + #define OVERLAP 0.001 + + trimmed_start.append(*subdivide_at(curve_start, (attach_start - loc) + OVERLAP, true)); + curve_start = subdivide_at(curve_start, attach_start - loc, false); + + //special case: path is one segment long + //special case: what if the two knots occupy the same segment? + if ((size == 1) || ( size - unsigned(attach_end) - 1 == loc )) + { + Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_start); + //it is just a dumb segment + //we have to do some shifting here because the value changed when we reduced the length + //of the previous segment. + trimmed_end.append(*subdivide_at(curve_start, t - OVERLAP, false)); + for (unsigned j = (size - attach_end) + 1; j < size; j++) { + trimmed_end.append(path_in[0] [j]); + } + + curve_start = subdivide_at(curve_start, t, true); + path_out.append(*curve_start); + pathv_out.push_back(trimmed_start); + pathv_out.push_back(path_out); + pathv_out.push_back(trimmed_end); + return pathv_out; + } + + pathv_out.push_back(trimmed_start); + + //append almost all of the rest of the path, ignore the curves that the knot is past (we'll get to it in a minute) + path_out.append(*curve_start); + + for (unsigned k = loc + 1; k < (size - unsigned(attach_end)) - 1; k++) { + path_out.append(path_in[0] [k]); + } + + //deal with the last segment in a very similar fashion to the first + loc = size - attach_end; + + Geom::Curve * curve_end = path_in[0] [loc].duplicate(); + + Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_end); + + trimmed_end.append(*subdivide_at(curve_end, t - OVERLAP, false)); + curve_end = subdivide_at(curve_end, t, true); + + for (unsigned j = (size - attach_end) + 1; j < size; j++) { + trimmed_end.append(path_in[0] [j]); + } + + path_out.append(*curve_end); + pathv_out.push_back(path_out); + + pathv_out.push_back(trimmed_end); + + if (curve_end) delete curve_end; + if (curve_start) delete curve_start; + return pathv_out; +} + + +//most of the below code is verbatim from Pattern Along Path. However, it needed a little +//tweaking to get it to work right in this case. +Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double prop_scale) +{ + using namespace Geom; + + // Don't allow empty path parameter: + if ( pattern.empty() ) { + return pwd2_in; + } + +/* Much credit should go to jfb and mgsloan of lib2geom development for the code below! */ + Piecewise > output; + std::vector > > pre_output; + + D2 > patternd2 = make_cuts_independent(pattern.toPwSb()); + Piecewise x0 = Piecewise(patternd2[0]); + Piecewise y0 = Piecewise(patternd2[1]); + OptInterval pattBndsX = bounds_exact(x0); + OptInterval pattBndsY = bounds_exact(y0); + if (pattBndsX && pattBndsY) { + x0 -= pattBndsX->min(); + y0 -= pattBndsY->middle(); + + double xspace = 0; + double noffset = 0; + double toffset = 0; + /*if (prop_units.get_value() && pattBndsY){ + xspace *= pattBndsX->extent(); + noffset *= pattBndsY->extent(); + toffset *= pattBndsX->extent(); + }*/ + + //Prevent more than 90% overlap... + if (xspace < -pattBndsX->extent()*.9) { + xspace = -pattBndsX->extent()*.9; + } + + y0+=noffset; + + std::vector > > paths_in; + paths_in = split_at_discontinuities(pwd2_in); + + for (unsigned idx = 0; idx < paths_in.size(); idx++){ + Geom::Piecewise > path_i = paths_in[idx]; + Piecewise x = x0; + Piecewise y = y0; + Piecewise > uskeleton = arc_length_parametrization(path_i,2,.1); + uskeleton = remove_short_cuts(uskeleton,.01); + Piecewise > n = rot90(derivative(uskeleton)); + n = force_continuity(remove_short_cuts(n,.1)); + + int nbCopies = 0; + double scaling = 1; + nbCopies = 1; + scaling = (uskeleton.domain().extent() - toffset)/pattBndsX->extent(); + + double pattWidth = pattBndsX->extent() * scaling; + + if (scaling != 1.0) { + x*=scaling; + } + if ( false ) { + y*=(scaling*prop_scale); + } else { + if (prop_scale != 1.0) y *= prop_scale; + } + x += toffset; + + double offs = 0; + for (int i=0; i > output_piece = compose(uskeleton,x+offs)+y*compose(n,x+offs); + std::vector > > splited_output_piece = split_at_discontinuities(output_piece); + pre_output.insert(pre_output.end(), splited_output_piece.begin(), splited_output_piece.end() ); + }else{ + output.concat(compose(uskeleton,x+offs)+y*compose(n,x+offs)); + } + offs+=pattWidth; + } + } + /*if (false){ + pre_output = fuse_nearby_ends(pre_output, fuse_tolerance); + for (unsigned i=0; icreate( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("Start point of the taper"), SP_KNOT_SHAPE_CIRCLE ); + knotholder->add(e); + } + { + KnotHolderEntity *e = new TpS::KnotHolderEntityAttachEnd(this); + e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("End point of the taper"), SP_KNOT_SHAPE_CIRCLE ); + knotholder->add(e); + } +} + +namespace TpS { + void KnotHolderEntityAttachBegin::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) + { + using namespace Geom; + + LPETaperStroke* lpe = dynamic_cast(_effect); + + Geom::Point const s = snap_knot_position(p, state); + + SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + Geom::PathVector pathv = curve->get_pathvector(); + Piecewise > pwd2; + Geom::Path p_in = return_at_first_cusp(pathv[0]); + pwd2.concat(p_in.toPwSb()); + + double t0 = nearest_point(s, pwd2); + lpe->attach_start.param_set_value(t0); + + // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. + sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); + } + void KnotHolderEntityAttachEnd::knot_set(Geom::Point const &p, Geom::Point const& /*origin*/, guint state) + { + using namespace Geom; + + LPETaperStroke* lpe = dynamic_cast(_effect); + + Geom::Point const s = snap_knot_position(p, state); + + SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + Geom::PathVector pathv = curve->get_pathvector(); + Piecewise > pwd2; + Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); + pwd2.concat(p_in.toPwSb()); + + double t0 = nearest_point(s, pwd2); + lpe->attach_end.param_set_value(t0); + + // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. + sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); + } + Geom::Point KnotHolderEntityAttachBegin::knot_get() const + { + LPETaperStroke const * lpe = dynamic_cast (_effect); + return lpe->start_attach_point; + } + Geom::Point KnotHolderEntityAttachEnd::knot_get() const + { + LPETaperStroke const * lpe = dynamic_cast (_effect); + return lpe->end_attach_point; + } +} + + +/* ######################## */ + +} //namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/live_effects/lpe-taperstroke.h b/src/live_effects/lpe-taperstroke.h new file mode 100644 index 000000000..f2fe03533 --- /dev/null +++ b/src/live_effects/lpe-taperstroke.h @@ -0,0 +1,73 @@ +/** @file + * @brief Taper Stroke path effect (meant as a replacement for using Power Strokes for tapering) + */ +/* Authors: + * Liam P White + * Copyright (C) 2014 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef INKSCAPE_LPE_SKELETON_H +#define INKSCAPE_LPE_SKELETON_H + +#include "live_effects/effect.h" +#include "live_effects/parameter/parameter.h" +#include "live_effects/parameter/enum.h" +#include "live_effects/parameter/vector.h" + +namespace Inkscape { +namespace LivePathEffect { + +namespace TpS { + // we need a separate namespace to avoid clashes with other LPEs + class KnotHolderEntityAttachBegin; + class KnotHolderEntityAttachEnd; +} + +class LPETaperStroke : public Effect { +public: + LPETaperStroke(LivePathEffectObject *lpeobject); + virtual ~LPETaperStroke(); + + virtual Geom::PathVector doEffect_path (Geom::PathVector const& path_in); + Geom::PathVector doEffect_simplePath(Geom::PathVector const& path_in); + + virtual void addKnotHolderEntities(KnotHolder * knotholder, SPDesktop * desktop, SPItem * item); + + friend class TpS::KnotHolderEntityAttachBegin; + friend class TpS::KnotHolderEntityAttachEnd; +private: + ScalarParam attach_start; + ScalarParam attach_end; + ScalarParam smoothing; + EnumParam join_type; + ScalarParam miter_limit; + + Geom::Point start_attach_point; + Geom::Point end_attach_point; + + LPETaperStroke(const LPETaperStroke&); + LPETaperStroke& operator=(const LPETaperStroke&); +}; + +} //namespace LivePathEffect +} //namespace Inkscape + +//because Windoze is stupid +# ifdef WIN32 +# include "lpe-taperstroke.cpp" +# endif + +#endif + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h new file mode 100755 index 000000000..8aa2e38ad --- /dev/null +++ b/src/live_effects/pathoutlineprovider.h @@ -0,0 +1,766 @@ +#pragma once + +#include <2geom/path.h> +#include <2geom/circle.h> +#include <2geom/sbasis-to-bezier.h> +#include <2geom/shape.h> +#include <2geom/transforms.h> +#include <2geom/path-sink.h> + +#include +#include + +enum LineJoinType { + LINEJOIN_STRAIGHT, + LINEJOIN_ROUND, + LINEJOIN_POINTY, + LINEJOIN_REFLECTED, + LINEJOIN_EXTRAPOLATED +}; + +namespace Geom +{ + /** + * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." + From MathWorld--A Wolfram Web Resource. + http://mathworld.wolfram.com/Circle-CircleIntersection.html + * + * @return 0 if no intersection + * @return 1 if one circle is contained in the other + * @return 2 if intersections are found (they are written to p0 and p1) + */ + static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, + Point & p0, Point & p1) + { + Point X0 = circle0.center(); + double r0 = circle0.ray(); + Point X1 = circle1.center(); + double r1 = circle1.ray(); + + /* dx and dy are the vertical and horizontal distances between + * the circle centers. + */ + Point D = X1 - X0; + + /* Determine the straight-line distance between the centers. */ + double d = L2(D); + + /* Check for solvability. */ + if (d > (r0 + r1)) + { + /* no solution. circles do not intersect. */ + return 0; + } + if (d <= fabs(r0 - r1)) + { + /* no solution. one circle is contained in the other */ + return 1; + } + + /* 'point 2' is the point where the line through the circle + * intersection points crosses the line between the circle + * centers. + */ + + /* Determine the distance from point 0 to point 2. */ + double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; + + /* Determine the coordinates of point 2. */ + Point p2 = X0 + D * (a/d); + + /* Determine the distance from point 2 to either of the + * intersection points. + */ + double h = std::sqrt((r0*r0) - (a*a)); + + /* Now determine the offsets of the intersection points from + * point 2. + */ + Point r = (h/d)*rot90(D); + + /* Determine the absolute intersection points. */ + p0 = p2 + r; + p1 = p2 - r; + + return 2; + } + /** + * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. + * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). + */ + static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) + { + D2 dM=derivative(curve); + if ( are_near(L2sq(dM(t)),0.) ) { + dM=derivative(dM); + } + if ( are_near(L2sq(dM(t)),0.) ) { // try second time + dM=derivative(dM); + } + Piecewise > unitv = unitVector(dM,tol); + Piecewise dMlength = dot(Piecewise >(dM),unitv); + Piecewise k = cross(derivative(unitv),unitv); + k = divide(k,dMlength,tol,3); + double curv = k(t); // note that this value is signed + + Geom::Point normal = unitTangentAt(curve, t).cw(); + double radius = 1/curv; + Geom::Point center = curve(t) + radius*normal; + return Geom::Circle(center, fabs(radius)); + } + + static std::vector split_at_cusps(const Geom::Path& in) + { + Geom::PathVector out = Geom::PathVector(); + Geom::Path temp = Geom::Path(); + + for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) + { + temp = Geom::Path(); + temp.append(in[path_descr]); + out.push_back(temp); + } + + return out; + } + + static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) + { + std::vector temp; + sbasis_to_bezier(temp, sbasis_in, 4); + return Geom::CubicBezier( temp ); + } + + static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, + Geom::Point const & origin_b, Geom::Point const & vector_b) + { + Geom::Coord denom = cross(vector_b, vector_a); + if (!Geom::are_near(denom,0.)){ + Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; + return origin_a + t * vector_a; + } + return boost::none; + } +} + +namespace Outline +{ + + typedef Geom::D2 D2SB; + typedef Geom::Piecewise PWD2; + + static void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve*cbc2, Geom::Point endPt, double miter_limit) +{ + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + Geom::Path pth; + pth.append(*cbc1); + + Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + + Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); + Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); + + Geom::Point points[2]; + int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); + if (solutions == 2) + { + Geom::Point sol(0,0); + if ( dot(tang2,points[0]-endPt) > 0 ) + { + // points[0] is bad, choose points[1] + sol = points[1]; + } + else if ( dot(tang2,points[1]-endPt) > 0 ) { // points[0] could be good, now check points[1] + // points[1] is bad, choose points[0] + sol = points[0]; + } + else + { + // both points are good, choose nearest + sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? + points[0] : points[1]; + } + Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); + Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); + + if (arc0) + { + path_builder.append (arc0->toSBasis()); + delete arc0; + arc0 = NULL; + } + + if (arc1) + { + path_builder.append (arc1->toSBasis()); + delete arc1; + arc1 = NULL; + } + } + else + { + path_builder.appendNew (endPt); + } + } + else + { + path_builder.appendNew (endPt); + } +} + static Geom::Path half_outline_extrp(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + + Geom::Point initialPoint; + Geom::Point endPoint; + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + //Create a reflected outline join. + //Note: it is generally recommended to let half_outline do this for you! + //path_builder: the path to append the curves to + //cbc1: the curve before the join + //cbc2: the curve after the join + //endPt: the point to end at + //miter_limit: the miter parameter + static void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit) + { + //the most important work for the reflected join is done here + + //determine where we are in the path. If we're on the inside, ignore + //and just lineTo. On the outside, we'll do a little reflection magic :) + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + //probably on the outside of the corner + Geom::Path pth; + pth.append(*cbc1); + + Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + //reflect curves along the bevel + D2SB newcurve1 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang1) , + cbc1->finalPoint() ); + + Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + D2SB newcurve2 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang2) , + cbc2->initialPoint() ); + Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); + + cross = Geom::crossings(bzr1, bzr2); + if ( cross.empty() ) + { + //std::cout << "Oops, no crossings!" << std::endl; + //curves didn't cross; default to miter + /*boost::optional p = intersection_point (cbc1->finalPoint(), tang1, + cbc2->initialPoint(), tang2); + if (p) + { + path_builder.appendNew (*p); + }*/ + //bevel + path_builder.appendNew( endPt ); + } + else + { + //join + std::pair sub1 = bzr1.subdivide(cross[0].ta); + std::pair sub2 = bzr2.subdivide(cross[0].tb); + + //@TODO joins have a strange tendency to cross themselves twice. Check this. + + //sections commented out are for general stability + path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); + path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); + } + } + else // cross.empty() + { + //probably on the inside of the corner + path_builder.appendNew ( endPt ); + } + } + + /** @brief Converts a path to one half of an outline. + * path_in: The input path to use. (To create the other side use path_in.reverse() ) + * line_width: the line width to use (usually you want to divide this by 2) + * linecap_type: (not used here) the cap to apply. Passed to libvarot. + * miter_limit: the miter parameter + */ + static Geom::Path half_outline(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + //needed for closing the path + Geom::Point initialPoint; + Geom::Point endPoint; + + //some issues prevented me from using a PathBuilder here + //it seems like PathBuilder::peek() gave me a null reference exception + //and I was unable to get a stack trace on Windows, so had to switch to Linux + //to see what the hell was wrong. :( + //I wasted five hours opening it in IDAPro, VS2012, and GDB Windows + + /*Program received signal SIGSEGV, Segmentation fault. + 0x00000000006539ac in get_curves (this=0x0) + at /usr/include/c++/4.6/bits/locale_facets.h:1077 + 1077 { return __c; } + */ + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + static Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + static Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline_extrp( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline_extrp( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join_pointy, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + + +} // namespace Outline + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 8e2502545..2dabf1884 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -601,6 +601,12 @@ Glib::ustring ClipboardManagerImpl::getPathParameter(SPDesktop* desktop) */ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) { + //https://bugs.launchpad.net/inkscape/+bug/1293979 + //basically, when we do a depth-first search, we're stopping + //at the first object to be or . + //but that could then return the id of the object's + //clip path or mask, not the original path! + SPDocument *tempdoc = _retrieveClipboard(); // any target will do here if ( tempdoc == NULL ) { _userWarn(desktop, _("Nothing on the clipboard.")); @@ -608,6 +614,9 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) } Inkscape::XML::Node *root = tempdoc->getReprRoot(); + //1293979: strip out the defs of the document + root->removeChild(tempdoc->getDefs()->getRepr()); + Inkscape::XML::Node *repr = sp_repr_lookup_name(root, "svg:path", -1); // unlimited search depth if ( repr == NULL ) { repr = sp_repr_lookup_name(root, "svg:text", -1); -- cgit v1.2.3 From ba99347e1308e6d183aaaf6e8d5f65cce4f4b74b Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 18 Mar 2014 21:00:36 -0600 Subject: Fix a compiler error on Windows (bzr r13090.1.27) --- src/live_effects/effect.cpp | 2 +- src/live_effects/lpe-taperstroke.cpp | 26 ++++++++++++++------------ src/live_effects/lpe-taperstroke.h | 6 +----- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index d6840e5b8..337fe631f 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -//#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects +#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects #ifdef HAVE_CONFIG_H # include "config.h" diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index e6eed3abe..2cdc09376 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -55,6 +55,7 @@ static const Util::EnumDataConverter JoinTypeConverter(JoinType, sizeo LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : Effect(lpeobject), + line_width(_("Stroke width"), _("The (non-tapered) width of the path"), "stroke_width", &wr, this, 3), attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.2), @@ -67,7 +68,9 @@ LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : attach_start.param_set_digits(3); attach_end.param_set_digits(3); - + + + registerParameter( dynamic_cast(&line_width) ); registerParameter( dynamic_cast(&attach_start) ); registerParameter( dynamic_cast(&attach_end) ); registerParameter( dynamic_cast(&smoothing) ); @@ -235,31 +238,30 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //now for the fun stuff. Right? RIGHT? - //decide on case - - //first case: taper on both sides - if (true/*pathv_out[0].length() != 0.001 && pathv_out[2].length() != 0.001*/) { + if (true) { Geom::PathVector real_pathv; - //Construct the pattern - - Geom::PathVector pat_vec = sp_svg_read_pathv("M 1,0 1,1 C 0.5,1 0,0.5 0,0.5 0,0.5 0.5,0 1,0 Z"); + //Construct the pattern (pat_str stands for pattern string) + char* pat_str = new char[200]; + sprintf(pat_str, "M 1,0 1,1 C %5.5f,1 0,0.5 0,0.5 0,0.5 %5.5f,0 1,0 Z", (double)smoothing, (double)smoothing); + Geom::PathVector pat_vec = sp_svg_read_pathv(pat_str); Geom::Piecewise > pwd2; - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], 40)); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], line_width)); real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0]); Geom::PathVector sht_path; sht_path.push_back(pathv_out[1]); - sht_path = Outline::outlinePath_extr(sht_path, 40, LINEJOIN_STRAIGHT, butt_straight, 30); + sht_path = Outline::outlinePath_extr(sht_path, line_width, LINEJOIN_STRAIGHT, butt_straight, miter_limit); real_pathv.push_back(sht_path[0]); - pat_vec = sp_svg_read_pathv("M 0,0 0,1 C 0.5,1 1,0.5 1,0.5 1,0.5 0.5,0 0,0 Z"); + sprintf(pat_str, "M 0,0 0,1 C %5.5f,1 1,0.5 1,0.5 1,0.5 %5.5f,0 0,0 Z", (double)smoothing, (double)smoothing); + pat_vec = sp_svg_read_pathv(pat_str); pwd2 = Geom::Piecewise > (); - pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], 40)); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], line_width)); real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0].reverse()); //clever union diff --git a/src/live_effects/lpe-taperstroke.h b/src/live_effects/lpe-taperstroke.h index f2fe03533..7cb8bc85e 100644 --- a/src/live_effects/lpe-taperstroke.h +++ b/src/live_effects/lpe-taperstroke.h @@ -38,6 +38,7 @@ public: friend class TpS::KnotHolderEntityAttachBegin; friend class TpS::KnotHolderEntityAttachEnd; private: + ScalarParam line_width; ScalarParam attach_start; ScalarParam attach_end; ScalarParam smoothing; @@ -54,11 +55,6 @@ private: } //namespace LivePathEffect } //namespace Inkscape -//because Windoze is stupid -# ifdef WIN32 -# include "lpe-taperstroke.cpp" -# endif - #endif /* -- cgit v1.2.3 From 9a04c985ec628dc749a8a82d94bcf47d482a4f63 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 20 Mar 2014 17:09:57 -0400 Subject: Fix a linker error ("static") (hopefully) Resolve compiler errors with GTK3+ (bzr r13090.1.28) --- po/inkscape.pot | 35080 +++++++++++++++++++++++++++++ src/live_effects/Makefile_insert | 1 + src/live_effects/effect.cpp | 2 +- src/live_effects/lpe-taperstroke.cpp | 162 +- src/live_effects/lpe-taperstroke.h | 9 +- src/live_effects/pathoutlineprovider.cpp | 840 + src/live_effects/pathoutlineprovider.h | 791 +- src/ui/dialog/objects.cpp | 3 +- 8 files changed, 36079 insertions(+), 809 deletions(-) create mode 100644 po/inkscape.pot create mode 100755 src/live_effects/pathoutlineprovider.cpp mode change 100755 => 100644 src/live_effects/pathoutlineprovider.h diff --git a/po/inkscape.pot b/po/inkscape.pot new file mode 100644 index 000000000..e797b9d13 --- /dev/null +++ b/po/inkscape.pot @@ -0,0 +1,35080 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#: ../share/filters/filters.svg.h:1 +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2014-03-04 13:58+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: ../inkscape.desktop.in.h:1 +msgid "Inkscape" +msgstr "" + +#: ../inkscape.desktop.in.h:2 +msgid "Vector Graphics Editor" +msgstr "" + +#: ../inkscape.desktop.in.h:3 +msgid "Inkscape Vector Graphics Editor" +msgstr "" + +#: ../inkscape.desktop.in.h:4 +msgid "Create and edit Scalable Vector Graphics images" +msgstr "" + +#: ../inkscape.desktop.in.h:5 +msgid "New Drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smart Jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/bevels.h:63 +#: ../src/extension/internal/filter/bevels.h:144 +#: ../src/extension/internal/filter/bevels.h:228 +msgid "Bevels" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as Matte jelly but with more controls" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Metal Casting" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smooth drop-like bevel with metallic finish" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Apparition" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/blurs.h:63 +#: ../src/extension/internal/filter/blurs.h:132 +#: ../src/extension/internal/filter/blurs.h:201 +#: ../src/extension/internal/filter/blurs.h:267 +#: ../src/extension/internal/filter/blurs.h:351 +msgid "Blurs" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Edges are partly feathered out" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Jigsaw Piece" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Low, sharp bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rubber Stamp" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/overlays.h:80 +msgid "Overlays" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Random whiteouts inside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ink Bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Protrusions" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Inky splotches underneath the object" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fire" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Edges of object are on fire" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bloom" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft, cushion-like bevel with matte highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ridged Border" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ridged border with inner bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ripple" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/distort.h:96 +#: ../src/extension/internal/filter/distort.h:205 +msgid "Distort" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Horizontal rippling of edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Speckle" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fill object with sparse translucent specks" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Oil Slick" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rainbow-colored semitransparent oily splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Frost" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Flake-like white splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Leopard Fur" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Materials" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Leopard spots (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Zebra" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Irregular vertical dark stripes (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Airy, fluffy, sparse white clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/bitmap/sharpen.cpp:38 +msgid "Sharpen" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/image.h:62 +msgid "Image Effects" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharpen edges and boundaries within the object, force=0.15" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharpen More" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharpen edges and boundaries within the object, force=0.3" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Oil painting" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/paint.h:113 +#: ../src/extension/internal/filter/paint.h:244 +#: ../src/extension/internal/filter/paint.h:363 +#: ../src/extension/internal/filter/paint.h:507 +#: ../src/extension/internal/filter/paint.h:602 +#: ../src/extension/internal/filter/paint.h:725 +#: ../src/extension/internal/filter/paint.h:877 +#: ../src/extension/internal/filter/paint.h:981 +msgid "Image Paint and Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Simulate oil painting style" +msgstr "" + +#. Pencil +#: ../share/filters/filters.svg.h:1 +#: ../src/ui/dialog/inkscape-preferences.cpp:415 +msgid "Pencil" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Detect color edges and retrace them in grayscale" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blueprint" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Detect color edges and retrace them in blue" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Age" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Imitate aged photograph" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Organic" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Textures" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bulging, knotty, slick 3D surface" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Barbed Wire" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gray bevelled wires with drop shadows" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Swiss Cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Random inner-bevel holes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blue Cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Marble-like bluish speckles" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Button" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft bevel, slightly depressed middle" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Inset" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/shadows.h:81 +msgid "Shadows and Glows" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Shadowy outer bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dripping" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Random paint streaks downwards" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Jam Spread" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glossy clumpy jam spread" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pixel Smear" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Van Gogh painting effect for bitmaps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cracked Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Under a cracked glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bubbly Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/bumps.h:142 +#: ../src/extension/internal/filter/bumps.h:362 +msgid "Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Flexible bubbles effect with some displacement" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glowing Bubble" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ridges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bubble effect with refraction and glow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Neon" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Neon light effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Molten Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Melting parts of object together, with a glossy bevel and a glow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pressed Steel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pressed metal with a rolled edge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Matte Bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft, pastel-colored, blurry bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thin Membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thin like a soap membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Matte Ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft pastel ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glowing Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glowing metal texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Leaves" +msgstr "" + +#: ../share/filters/filters.svg.h:1 ../share/extensions/pathscatter.inx.h:1 +msgid "Scatter" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Leaves on the ground in Fall, or living foliage" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/paint.h:339 +msgid "Translucent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Illuminated translucent plastic or glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Iridescent Beeswax" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Waxy texture which keeps its iridescence through color fill change" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Eroded Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Eroded metal texture with ridges, grooves, holes and bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cracked Lava" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "A volcanic texture, a little like leather" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bark" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bark texture, vertical; use with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Lizard Skin" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Stylized reptile skin texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Stone Wall" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Stone wall texture to use with not too saturated colors" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Silk Carpet" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Silk carpet texture, horizontal stripes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Refractive Gel A" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gel effect with light refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Refractive Gel B" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gel effect with strong refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Metallized Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Metallized effect with a soft lighting, slightly translucent at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dragee" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gel Ridge with a pearlescent look" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Raised Border" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Strongly raised border around a flat surface" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Metallized Ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gel Ridge metallized at its top" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fat Oil" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fat oil with some adjustable turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Black Hole" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/morphology.h:76 +#: ../src/extension/internal/filter/morphology.h:203 +#: ../src/filter-enums.cpp:31 +msgid "Morphology" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Creates a black light inside and outside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cubes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Scattered cubes; adjust the Morphology primitive to vary size" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Peel Off" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Peeling painting on a wall" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gold Splatter" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Splattered cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gold Paste" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fat pasted cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Crumpled Plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Crumpled matte plastic, with melted edge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Enamel Jewelry" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Slightly cracked enameled texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rough Paper" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Aquarelle paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rough and Glossy" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Crumpled glossy paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "In and Out" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Inner colorized shadow, outer black shadow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Air Spray" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Convert to small scattered particles with some thickness" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Warm Inside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blurred colorized contour, filled inside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cool Outside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blurred colorized contour, empty inside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Electronic Microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Bevel, crude light, discoloration and glow like in electronic microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Checkered tartan pattern" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Shaken Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorizable filling with flow inside like transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft Focus Lens" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glowing image content without blurring it" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Stained Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Illuminated stained glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dark Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Illuminated glass effect with light coming from beneath" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "HSL Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as HSL Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bubbly Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as Bubbly Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Torn Edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Displace the outside of shapes and pictures without altering their content" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Roughen Inside" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Roughen all inside shapes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Evanescent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Blur the contents of objects, preserving the outline and adding progressive " +"transparency at edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chalk and Sponge" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Low turbulence gives sponge look and high turbulence chalk" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "People" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorized blotches, like a crowd of people" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Scotland" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorized mountain tops out of the fog" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cutout Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "In and out glow with a possible offset and colorizable flood" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dark Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Emboss effect : 3D relief where white is replaced by black" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bubbly Bumps Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blotting Paper" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Inkblot on blotting paper" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Wax Print" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Wax print on tissue texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Watercolor" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cloudy watercolor effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Felt" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Felt like texture with color turbulence and slightly darker at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ink Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Ink paint on paper with some turbulent color shift" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tinted Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smooth rainbow colors melted along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Melted Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smooth rainbow colors slightly melted along the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Flex Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bright, polished uneven metal casting, colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Wavy Tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tartan pattern with a wavy displacement and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D Marble" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D warped marble texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D Wood" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D warped, fibered wood texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D Mother of Pearl" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "3D warped, iridescent pearly shell texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tiger Fur" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tiger fur pattern with folds and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Black Light" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/bitmap/colorize.cpp:52 +#: ../src/extension/internal/filter/bumps.h:101 +#: ../src/extension/internal/filter/bumps.h:321 +#: ../src/extension/internal/filter/bumps.h:328 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:164 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:262 +#: ../src/extension/internal/filter/color.h:340 +#: ../src/extension/internal/filter/color.h:347 +#: ../src/extension/internal/filter/color.h:437 +#: ../src/extension/internal/filter/color.h:532 +#: ../src/extension/internal/filter/color.h:654 +#: ../src/extension/internal/filter/color.h:751 +#: ../src/extension/internal/filter/color.h:830 +#: ../src/extension/internal/filter/color.h:921 +#: ../src/extension/internal/filter/color.h:1049 +#: ../src/extension/internal/filter/color.h:1119 +#: ../src/extension/internal/filter/color.h:1212 +#: ../src/extension/internal/filter/color.h:1324 +#: ../src/extension/internal/filter/color.h:1429 +#: ../src/extension/internal/filter/color.h:1505 +#: ../src/extension/internal/filter/color.h:1609 +#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/morphology.h:194 +#: ../src/extension/internal/filter/overlays.h:73 +#: ../src/extension/internal/filter/paint.h:99 +#: ../src/extension/internal/filter/paint.h:713 +#: ../src/extension/internal/filter/paint.h:717 +#: ../src/extension/internal/filter/shadows.h:73 +#: ../src/extension/internal/filter/transparency.h:345 +#: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:832 +#: ../src/ui/dialog/clonetiler.cpp:983 +#: ../src/ui/dialog/document-properties.cpp:154 +#: ../share/extensions/color_blackandwhite.inx.h:2 +#: ../share/extensions/color_brighter.inx.h:2 +#: ../share/extensions/color_custom.inx.h:15 +#: ../share/extensions/color_darker.inx.h:2 +#: ../share/extensions/color_desaturate.inx.h:2 +#: ../share/extensions/color_grayscale.inx.h:2 +#: ../share/extensions/color_HSL_adjust.inx.h:20 +#: ../share/extensions/color_lesshue.inx.h:2 +#: ../share/extensions/color_lesslight.inx.h:2 +#: ../share/extensions/color_lesssaturation.inx.h:2 +#: ../share/extensions/color_morehue.inx.h:2 +#: ../share/extensions/color_morelight.inx.h:2 +#: ../share/extensions/color_moresaturation.inx.h:2 +#: ../share/extensions/color_negative.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:8 +#: ../share/extensions/color_removeblue.inx.h:2 +#: ../share/extensions/color_removegreen.inx.h:2 +#: ../share/extensions/color_removered.inx.h:2 +#: ../share/extensions/color_replace.inx.h:6 +#: ../share/extensions/color_rgbbarrel.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:19 +msgid "Color" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Light areas turn to black" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Film Grain" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a small scale graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Plaster Color" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colored plaster emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Velvet Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives Smooth Bumps velvet like" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics Cream" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Non realistic 3D shaders" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics shader with creamy waves transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chewing Gum" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Creates colorizable blotches which smoothly flow over the edges of the lines " +"at their crossings" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dark And Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Darkens the edge with an inner blur and adds a flexible glow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Warped Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smooth rainbow colors warped along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rough and Dilate" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Create a turbulent contour around" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Old Postcard" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Slightly posterize and draw edges like on old printed postcards" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dots Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a pointillist HSL sensitive transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Canvas Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a canvas like HSL sensitive transparency." +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Smear Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Paint objects with a transparent turbulence which turns around color edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thick Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thick painting effect with turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Burst" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Burst balloon texture crumpled and with holes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Embossed Leather" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Combine a HSL edges detection bump with a leathery or woody and colorizable " +"texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Carnaval" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "White splotches evocating carnaval masks" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Plastify" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"HSL edges detection bump with a wavy reflective surface effect and variable " +"crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Plaster" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Combine a HSL edges detection bump with a matte and crumpled surface effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rough Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a turbulent transparency which displaces pixels at the same time" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gouache" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Partly opaque water color effect with bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Alpha Engraving" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a transparent engraving effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Alpha Draw Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a transparent fluid drawing effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Liquid Drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a fluid and wavy expressionist drawing effect to images" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Marbled Ink" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Marbled transparency effect which conforms to image detected edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thick Acrylic" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thick acrylic paint texture with high texture depth" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Alpha Engraving B" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Gives a controllable roughness engraving effect to bitmaps and materials" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Lapping" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Something like a water noise" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Monochrome Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/transparency.h:70 +#: ../src/extension/internal/filter/transparency.h:141 +#: ../src/extension/internal/filter/transparency.h:215 +#: ../src/extension/internal/filter/transparency.h:288 +#: ../src/extension/internal/filter/transparency.h:350 +msgid "Fill and Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Convert to a colorizable transparent positive or negative" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Saturation Map" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Creates an approximative semi-transparent and colorizable image of the " +"saturation levels" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Riddled" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Riddle the surface and add bump to images" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Wrinkled Varnish" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Thick glossy and translucent paint texture with high depth" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Canvas Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Canvas texture with an HSL sensitive height map" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Canvas Bumps Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Canvas Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Same as Canvas Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bright Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bright metallic effect for any color" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Deep Colors Plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Transparent plastic with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Melted Jelly Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Matte bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Melted Jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Glossy bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Combined Lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/bevels.h:231 +msgid "Basic specular bevel to use for building textures" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tinfoil" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Metallic foil effect combining two lighting types and variable crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Soft Colors" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a colorizable edges glow inside objects and pictures" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Relief Print" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bumps effect with a bevel, color flood and complex lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Growing Cells" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Random rounded living cells like fill" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fluorescence" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Oversaturate colors which can be fluorescent in real world" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pixellize" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pixel tools" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Reduce or remove antialiasing around shapes" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Basic Diffuse Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Matte emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Basic Specular Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Specular emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Basic Two Lights Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Two types of lighting emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Linen Canvas" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Painting canvas emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Plasticine" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Matte modeling paste emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Rough Canvas Painting" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Paper Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Paper like emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Jelly Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Convert pictures to thick jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blend Opposites" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blend an image with its hue opposite" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Hue to White" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fades hue progressively to white" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/bitmap/swirl.cpp:37 +msgid "Swirl" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Paint objects with a transparent turbulence which wraps around color edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Pointillism" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Gives a turbulent pointillist HSL sensitive transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Silhouette Marbled" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Basic noise transparency texture" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Fill Background" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a colorizable opaque background" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Flatten Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a white opaque background" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blur Double" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "" +"Overlays two copies with different blur amounts and modifiable blend and " +"composite" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Image Drawing Basic" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Enhance and redraw color edges in 1 bit black and white" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Poster Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Enhance and redraw edges around posterized areas" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cross Noise Poster" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Overlay with a small scale screen like noise" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cross Noise Poster B" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a small scale screen like noise locally" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Poster Color Fun" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Poster Rough" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds roughness to one of the two channels of the Poster paint filter" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Alpha Monochrome Cracked" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Basic noise fill texture; adjust color in Flood" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Alpha Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorize Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cross Noise B" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a small scale crossy graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cross Noise" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Adds a small scale screen like graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Duotone Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Light Eraser Cracked" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Poster Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Tartan Smart" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Highly configurable checkered tartan pattern" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Light Contour" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Uses vertical specular light to draw lines" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorizable filling with liquid transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Aluminium" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Aluminium effect with sharp brushed reflections" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics cartoon drawing effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics Draft" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Draft painted cartoon shading with a glassy look" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Comics Fading" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cartoon paint style with some fading at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Brushed Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Satiny metal surface effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Opaline" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Contouring version of smooth shader" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chrome" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bright chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Deep Chrome" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Dark chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Emboss Shader" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Combination of satiny and emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharp Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chrome effect with darkened edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Brush Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chrome Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Embossed chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Contour Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Satiny and embossed contour effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharp Deco" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Unrealistic reflections with sharp edges" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Deep Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Deep and dark metal shading" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Aluminium Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Satiny aluminium effect with embossing" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Refractive Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Double reflection through glass with some refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Frosted Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Satiny glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Bump Engraving" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Carving emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Chromolitho Alternate" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Old chromolithographic effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Convoluted Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Convoluted emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Emergence" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Cut out, add inner shadow and colorize some parts of an image" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Litho" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Create a two colors lithographic effect" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Paint Channels" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Colorize separately the three color channels" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Posterized Light Eraser" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Create a semi transparent posterized image" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Trichrome" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Like Duochrome but with three colors" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Simulate CMY" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Contouring table" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Blurred multiple contours for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Posterized Blur" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Converts blurred contour to posterized steps" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Contouring discrete" +msgstr "" + +#: ../share/filters/filters.svg.h:1 +msgid "Sharp multiple contour for objects" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:2 +msgctxt "Palette" +msgid "Black" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:3 +#, no-c-format +msgctxt "Palette" +msgid "90% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:4 +#, no-c-format +msgctxt "Palette" +msgid "80% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:5 +#, no-c-format +msgctxt "Palette" +msgid "70% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:6 +#, no-c-format +msgctxt "Palette" +msgid "60% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:7 +#, no-c-format +msgctxt "Palette" +msgid "50% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:8 +#, no-c-format +msgctxt "Palette" +msgid "40% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:9 +#, no-c-format +msgctxt "Palette" +msgid "30% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:10 +#, no-c-format +msgctxt "Palette" +msgid "20% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:11 +#, no-c-format +msgctxt "Palette" +msgid "10% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:12 +#, no-c-format +msgctxt "Palette" +msgid "7.5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:13 +#, no-c-format +msgctxt "Palette" +msgid "5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:14 +#, no-c-format +msgctxt "Palette" +msgid "2.5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:15 +msgctxt "Palette" +msgid "White" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:16 +msgctxt "Palette" +msgid "Maroon (#800000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:17 +msgctxt "Palette" +msgid "Red (#FF0000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:18 +msgctxt "Palette" +msgid "Olive (#808000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:19 +msgctxt "Palette" +msgid "Yellow (#FFFF00)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:20 +msgctxt "Palette" +msgid "Green (#008000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:21 +msgctxt "Palette" +msgid "Lime (#00FF00)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:22 +msgctxt "Palette" +msgid "Teal (#008080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:23 +msgctxt "Palette" +msgid "Aqua (#00FFFF)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:24 +msgctxt "Palette" +msgid "Navy (#000080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:25 +msgctxt "Palette" +msgid "Blue (#0000FF)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:26 +msgctxt "Palette" +msgid "Purple (#800080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:27 +msgctxt "Palette" +msgid "Fuchsia (#FF00FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:28 +msgctxt "Palette" +msgid "black (#000000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:29 +msgctxt "Palette" +msgid "dimgray (#696969)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:30 +msgctxt "Palette" +msgid "gray (#808080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:31 +msgctxt "Palette" +msgid "darkgray (#A9A9A9)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:32 +msgctxt "Palette" +msgid "silver (#C0C0C0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:33 +msgctxt "Palette" +msgid "lightgray (#D3D3D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:34 +msgctxt "Palette" +msgid "gainsboro (#DCDCDC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:35 +msgctxt "Palette" +msgid "whitesmoke (#F5F5F5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:36 +msgctxt "Palette" +msgid "white (#FFFFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:37 +msgctxt "Palette" +msgid "rosybrown (#BC8F8F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:38 +msgctxt "Palette" +msgid "indianred (#CD5C5C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:39 +msgctxt "Palette" +msgid "brown (#A52A2A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:40 +msgctxt "Palette" +msgid "firebrick (#B22222)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:41 +msgctxt "Palette" +msgid "lightcoral (#F08080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:42 +msgctxt "Palette" +msgid "maroon (#800000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:43 +msgctxt "Palette" +msgid "darkred (#8B0000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:44 +msgctxt "Palette" +msgid "red (#FF0000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:45 +msgctxt "Palette" +msgid "snow (#FFFAFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:46 +msgctxt "Palette" +msgid "mistyrose (#FFE4E1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:47 +msgctxt "Palette" +msgid "salmon (#FA8072)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:48 +msgctxt "Palette" +msgid "tomato (#FF6347)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:49 +msgctxt "Palette" +msgid "darksalmon (#E9967A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:50 +msgctxt "Palette" +msgid "coral (#FF7F50)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:51 +msgctxt "Palette" +msgid "orangered (#FF4500)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:52 +msgctxt "Palette" +msgid "lightsalmon (#FFA07A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:53 +msgctxt "Palette" +msgid "sienna (#A0522D)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:54 +msgctxt "Palette" +msgid "seashell (#FFF5EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:55 +msgctxt "Palette" +msgid "chocolate (#D2691E)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:56 +msgctxt "Palette" +msgid "saddlebrown (#8B4513)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:57 +msgctxt "Palette" +msgid "sandybrown (#F4A460)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:58 +msgctxt "Palette" +msgid "peachpuff (#FFDAB9)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:59 +msgctxt "Palette" +msgid "peru (#CD853F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:60 +msgctxt "Palette" +msgid "linen (#FAF0E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:61 +msgctxt "Palette" +msgid "bisque (#FFE4C4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:62 +msgctxt "Palette" +msgid "darkorange (#FF8C00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:63 +msgctxt "Palette" +msgid "burlywood (#DEB887)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:64 +msgctxt "Palette" +msgid "tan (#D2B48C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:65 +msgctxt "Palette" +msgid "antiquewhite (#FAEBD7)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:66 +msgctxt "Palette" +msgid "navajowhite (#FFDEAD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:67 +msgctxt "Palette" +msgid "blanchedalmond (#FFEBCD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:68 +msgctxt "Palette" +msgid "papayawhip (#FFEFD5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:69 +msgctxt "Palette" +msgid "moccasin (#FFE4B5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:70 +msgctxt "Palette" +msgid "orange (#FFA500)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:71 +msgctxt "Palette" +msgid "wheat (#F5DEB3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:72 +msgctxt "Palette" +msgid "oldlace (#FDF5E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:73 +msgctxt "Palette" +msgid "floralwhite (#FFFAF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:74 +msgctxt "Palette" +msgid "darkgoldenrod (#B8860B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:75 +msgctxt "Palette" +msgid "goldenrod (#DAA520)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:76 +msgctxt "Palette" +msgid "cornsilk (#FFF8DC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:77 +msgctxt "Palette" +msgid "gold (#FFD700)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:78 +msgctxt "Palette" +msgid "khaki (#F0E68C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:79 +msgctxt "Palette" +msgid "lemonchiffon (#FFFACD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:80 +msgctxt "Palette" +msgid "palegoldenrod (#EEE8AA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:81 +msgctxt "Palette" +msgid "darkkhaki (#BDB76B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:82 +msgctxt "Palette" +msgid "beige (#F5F5DC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:83 +msgctxt "Palette" +msgid "lightgoldenrodyellow (#FAFAD2)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:84 +msgctxt "Palette" +msgid "olive (#808000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:85 +msgctxt "Palette" +msgid "yellow (#FFFF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:86 +msgctxt "Palette" +msgid "lightyellow (#FFFFE0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:87 +msgctxt "Palette" +msgid "ivory (#FFFFF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:88 +msgctxt "Palette" +msgid "olivedrab (#6B8E23)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:89 +msgctxt "Palette" +msgid "yellowgreen (#9ACD32)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:90 +msgctxt "Palette" +msgid "darkolivegreen (#556B2F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:91 +msgctxt "Palette" +msgid "greenyellow (#ADFF2F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:92 +msgctxt "Palette" +msgid "chartreuse (#7FFF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:93 +msgctxt "Palette" +msgid "lawngreen (#7CFC00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:94 +msgctxt "Palette" +msgid "darkseagreen (#8FBC8F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:95 +msgctxt "Palette" +msgid "forestgreen (#228B22)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:96 +msgctxt "Palette" +msgid "limegreen (#32CD32)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:97 +msgctxt "Palette" +msgid "lightgreen (#90EE90)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:98 +msgctxt "Palette" +msgid "palegreen (#98FB98)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:99 +msgctxt "Palette" +msgid "darkgreen (#006400)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:100 +msgctxt "Palette" +msgid "green (#008000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:101 +msgctxt "Palette" +msgid "lime (#00FF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:102 +msgctxt "Palette" +msgid "honeydew (#F0FFF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:103 +msgctxt "Palette" +msgid "seagreen (#2E8B57)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:104 +msgctxt "Palette" +msgid "mediumseagreen (#3CB371)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:105 +msgctxt "Palette" +msgid "springgreen (#00FF7F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:106 +msgctxt "Palette" +msgid "mintcream (#F5FFFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:107 +msgctxt "Palette" +msgid "mediumspringgreen (#00FA9A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:108 +msgctxt "Palette" +msgid "mediumaquamarine (#66CDAA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:109 +msgctxt "Palette" +msgid "aquamarine (#7FFFD4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:110 +msgctxt "Palette" +msgid "turquoise (#40E0D0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:111 +msgctxt "Palette" +msgid "lightseagreen (#20B2AA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:112 +msgctxt "Palette" +msgid "mediumturquoise (#48D1CC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:113 +msgctxt "Palette" +msgid "darkslategray (#2F4F4F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:114 +msgctxt "Palette" +msgid "paleturquoise (#AFEEEE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:115 +msgctxt "Palette" +msgid "teal (#008080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:116 +msgctxt "Palette" +msgid "darkcyan (#008B8B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:117 +msgctxt "Palette" +msgid "cyan (#00FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:118 +msgctxt "Palette" +msgid "lightcyan (#E0FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:119 +msgctxt "Palette" +msgid "azure (#F0FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:120 +msgctxt "Palette" +msgid "darkturquoise (#00CED1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:121 +msgctxt "Palette" +msgid "cadetblue (#5F9EA0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:122 +msgctxt "Palette" +msgid "powderblue (#B0E0E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:123 +msgctxt "Palette" +msgid "lightblue (#ADD8E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:124 +msgctxt "Palette" +msgid "deepskyblue (#00BFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:125 +msgctxt "Palette" +msgid "skyblue (#87CEEB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:126 +msgctxt "Palette" +msgid "lightskyblue (#87CEFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:127 +msgctxt "Palette" +msgid "steelblue (#4682B4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:128 +msgctxt "Palette" +msgid "aliceblue (#F0F8FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:129 +msgctxt "Palette" +msgid "dodgerblue (#1E90FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:130 +msgctxt "Palette" +msgid "slategray (#708090)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:131 +msgctxt "Palette" +msgid "lightslategray (#778899)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:132 +msgctxt "Palette" +msgid "lightsteelblue (#B0C4DE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:133 +msgctxt "Palette" +msgid "cornflowerblue (#6495ED)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:134 +msgctxt "Palette" +msgid "royalblue (#4169E1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:135 +msgctxt "Palette" +msgid "midnightblue (#191970)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:136 +msgctxt "Palette" +msgid "lavender (#E6E6FA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:137 +msgctxt "Palette" +msgid "navy (#000080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:138 +msgctxt "Palette" +msgid "darkblue (#00008B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:139 +msgctxt "Palette" +msgid "mediumblue (#0000CD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:140 +msgctxt "Palette" +msgid "blue (#0000FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:141 +msgctxt "Palette" +msgid "ghostwhite (#F8F8FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:142 +msgctxt "Palette" +msgid "slateblue (#6A5ACD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:143 +msgctxt "Palette" +msgid "darkslateblue (#483D8B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:144 +msgctxt "Palette" +msgid "mediumslateblue (#7B68EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:145 +msgctxt "Palette" +msgid "mediumpurple (#9370DB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:146 +msgctxt "Palette" +msgid "blueviolet (#8A2BE2)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:147 +msgctxt "Palette" +msgid "indigo (#4B0082)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:148 +msgctxt "Palette" +msgid "darkorchid (#9932CC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:149 +msgctxt "Palette" +msgid "darkviolet (#9400D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:150 +msgctxt "Palette" +msgid "mediumorchid (#BA55D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:151 +msgctxt "Palette" +msgid "thistle (#D8BFD8)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:152 +msgctxt "Palette" +msgid "plum (#DDA0DD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:153 +msgctxt "Palette" +msgid "violet (#EE82EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:154 +msgctxt "Palette" +msgid "purple (#800080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:155 +msgctxt "Palette" +msgid "darkmagenta (#8B008B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:156 +msgctxt "Palette" +msgid "magenta (#FF00FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:157 +msgctxt "Palette" +msgid "orchid (#DA70D6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:158 +msgctxt "Palette" +msgid "mediumvioletred (#C71585)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:159 +msgctxt "Palette" +msgid "deeppink (#FF1493)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:160 +msgctxt "Palette" +msgid "hotpink (#FF69B4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:161 +msgctxt "Palette" +msgid "lavenderblush (#FFF0F5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:162 +msgctxt "Palette" +msgid "palevioletred (#DB7093)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:163 +msgctxt "Palette" +msgid "crimson (#DC143C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:164 +msgctxt "Palette" +msgid "pink (#FFC0CB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:165 +msgctxt "Palette" +msgid "lightpink (#FFB6C1)" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:166 +msgctxt "Palette" +msgid "Butter 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:167 +msgctxt "Palette" +msgid "Butter 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:168 +msgctxt "Palette" +msgid "Butter 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:169 +msgctxt "Palette" +msgid "Chameleon 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:170 +msgctxt "Palette" +msgid "Chameleon 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:171 +msgctxt "Palette" +msgid "Chameleon 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:172 +msgctxt "Palette" +msgid "Orange 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:173 +msgctxt "Palette" +msgid "Orange 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:174 +msgctxt "Palette" +msgid "Orange 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:175 +msgctxt "Palette" +msgid "Sky Blue 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:176 +msgctxt "Palette" +msgid "Sky Blue 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:177 +msgctxt "Palette" +msgid "Sky Blue 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:178 +msgctxt "Palette" +msgid "Plum 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:179 +msgctxt "Palette" +msgid "Plum 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:180 +msgctxt "Palette" +msgid "Plum 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:181 +msgctxt "Palette" +msgid "Chocolate 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:182 +msgctxt "Palette" +msgid "Chocolate 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:183 +msgctxt "Palette" +msgid "Chocolate 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:184 +msgctxt "Palette" +msgid "Scarlet Red 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:185 +msgctxt "Palette" +msgid "Scarlet Red 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:186 +msgctxt "Palette" +msgid "Scarlet Red 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:187 +msgctxt "Palette" +msgid "Snowy White" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:188 +msgctxt "Palette" +msgid "Aluminium 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:189 +msgctxt "Palette" +msgid "Aluminium 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:190 +msgctxt "Palette" +msgid "Aluminium 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:191 +msgctxt "Palette" +msgid "Aluminium 4" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:192 +msgctxt "Palette" +msgid "Aluminium 5" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:193 +msgctxt "Palette" +msgid "Aluminium 6" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:194 +msgctxt "Palette" +msgid "Jet Black" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:64" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Packed circles" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Camouflage" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Ermine" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Sand (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Cloth (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Old paint (bitmap)" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:2 +msgctxt "Symbol" +msgid "AIGA Symbol Signs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 +msgctxt "Symbol" +msgid "Telephone" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 +msgctxt "Symbol" +msgid "Mail" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 +msgctxt "Symbol" +msgid "Currency Exchange" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 +msgctxt "Symbol" +msgid "Currency Exchange - Euro" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 +msgctxt "Symbol" +msgid "Cashier" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 +msgctxt "Symbol" +msgid "First Aid" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 +msgctxt "Symbol" +msgid "Lost and Found" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 +msgctxt "Symbol" +msgid "Coat Check" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 +msgctxt "Symbol" +msgid "Baggage Lockers" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 +msgctxt "Symbol" +msgid "Escalator" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 +msgctxt "Symbol" +msgid "Escalator Down" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 +msgctxt "Symbol" +msgid "Escalator Up" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 +msgctxt "Symbol" +msgid "Stairs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 +msgctxt "Symbol" +msgid "Stairs Down" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 +msgctxt "Symbol" +msgid "Stairs Up" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 +msgctxt "Symbol" +msgid "Elevator" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 +msgctxt "Symbol" +msgid "Toilets - Men" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 +msgctxt "Symbol" +msgid "Toilets - Women" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 +msgctxt "Symbol" +msgid "Toilets" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 +#: ../share/symbols/symbols.h:217 +msgctxt "Symbol" +msgid "Nursery" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 +msgctxt "Symbol" +msgid "Drinking Fountain" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 +msgctxt "Symbol" +msgid "Waiting Room" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 +#: ../share/symbols/symbols.h:298 +msgctxt "Symbol" +msgid "Information" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 +msgctxt "Symbol" +msgid "Hotel Information" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 +msgctxt "Symbol" +msgid "Air Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 +#: ../share/symbols/symbols.h:308 +msgctxt "Symbol" +msgid "Heliport" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 +#: ../share/symbols/symbols.h:304 +msgctxt "Symbol" +msgid "Taxi" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 +msgctxt "Symbol" +msgid "Bus" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 +msgctxt "Symbol" +msgid "Ground Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 +msgctxt "Symbol" +msgid "Rail Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 +msgctxt "Symbol" +msgid "Water Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 +#: ../share/symbols/symbols.h:306 +msgctxt "Symbol" +msgid "Car Rental" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 +#: ../share/symbols/symbols.h:218 +msgctxt "Symbol" +msgid "Restaurant" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 +msgctxt "Symbol" +msgid "Coffeeshop" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 +msgctxt "Symbol" +msgid "Bar" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 +msgctxt "Symbol" +msgid "Shops" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 +msgctxt "Symbol" +msgid "Barber Shop - Beauty Salon" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 +msgctxt "Symbol" +msgid "Barber Shop" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 +msgctxt "Symbol" +msgid "Beauty Salon" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 +msgctxt "Symbol" +msgid "Ticket Purchase" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 +msgctxt "Symbol" +msgid "Baggage Check In" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 +msgctxt "Symbol" +msgid "Baggage Claim" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 +msgctxt "Symbol" +msgid "Customs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 +msgctxt "Symbol" +msgid "Immigration" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 +msgctxt "Symbol" +msgid "Departing Flights" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 +msgctxt "Symbol" +msgid "Arriving Flights" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 +msgctxt "Symbol" +msgid "Smoking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 +msgctxt "Symbol" +msgid "No Smoking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:99 ../share/symbols/symbols.h:100 +#: ../share/symbols/symbols.h:315 +msgctxt "Symbol" +msgid "Parking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 +msgctxt "Symbol" +msgid "No Parking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 +msgctxt "Symbol" +msgid "No Dogs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 +msgctxt "Symbol" +msgid "No Entry" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 +#: ../share/symbols/symbols.h:208 +msgctxt "Symbol" +msgid "Exit" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 +msgctxt "Symbol" +msgid "Fire Extinguisher" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 +msgctxt "Symbol" +msgid "Right Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 +msgctxt "Symbol" +msgid "Forward and Right Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 +msgctxt "Symbol" +msgid "Up Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 +msgctxt "Symbol" +msgid "Forward and Left Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 +msgctxt "Symbol" +msgid "Left Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 +msgctxt "Symbol" +msgid "Left and Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 +msgctxt "Symbol" +msgid "Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 +msgctxt "Symbol" +msgid "Right and Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible - 1996" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 +msgctxt "Symbol" +msgid "New Wheelchair Accessible" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:133 +msgctxt "Symbol" +msgid "Word Balloons" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:134 +msgctxt "Symbol" +msgid "Thought Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:135 +msgctxt "Symbol" +msgid "Dream Speaking" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:136 +msgctxt "Symbol" +msgid "Flow Chart Shapes" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:137 +msgctxt "Symbol" +msgid "Process" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:138 +msgctxt "Symbol" +msgid "Predefined Process" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:139 +msgctxt "Symbol" +msgid "Alternate Process" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:140 +msgctxt "Symbol" +msgid "Extract" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:141 +msgctxt "Symbol" +msgid "Manual Input" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:142 +msgctxt "Symbol" +msgid "Merge" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:143 +msgctxt "Symbol" +msgid "Delay" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:144 +msgctxt "Symbol" +msgid "Data I/O" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:145 +msgctxt "Symbol" +msgid "Internal Storage" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:146 +msgctxt "Symbol" +msgid "Card" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:147 +msgctxt "Symbol" +msgid "Document" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:148 +msgctxt "Symbol" +msgid "Direct Access Storage" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:149 +msgctxt "Symbol" +msgid "Stored Data" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:150 +msgctxt "Symbol" +msgid "Magnetic Disk (Database)" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:151 +msgctxt "Symbol" +msgid "Punched Tape" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:152 +msgctxt "Symbol" +msgid "Terminator" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:153 +msgctxt "Symbol" +msgid "Thick Arrow" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:154 +msgctxt "Symbol" +msgid "Transfer" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:155 +msgctxt "Symbol" +msgid "Decision" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:156 +msgctxt "Symbol" +msgid "Flow Arrow" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:157 +msgctxt "Symbol" +msgid "Circle Arrow" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:158 +msgctxt "Symbol" +msgid "Off-Page Connector" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:159 +msgctxt "Symbol" +msgid "Connector" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:160 +msgctxt "Symbol" +msgid "Logical Or" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:161 +msgctxt "Symbol" +msgid "Logical And" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:162 +msgctxt "Symbol" +msgid "Manual Operation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:163 +msgctxt "Symbol" +msgid "Preparation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:164 +msgctxt "Symbol" +msgid "Display" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:165 +msgctxt "Symbol" +msgid "Sort" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:166 +msgctxt "Symbol" +msgid "Collate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:167 +msgctxt "Symbol" +msgid "Logic Symbols" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:168 +msgctxt "Symbol" +msgid "Xnor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:169 +msgctxt "Symbol" +msgid "Xor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:170 +msgctxt "Symbol" +msgid "Nor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:171 +msgctxt "Symbol" +msgid "Or Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:172 +msgctxt "Symbol" +msgid "Nand Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:173 +msgctxt "Symbol" +msgid "And Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:174 +msgctxt "Symbol" +msgid "Buffer" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:175 +msgctxt "Symbol" +msgid "Not Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:176 +msgctxt "Symbol" +msgid "Buffer Small" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:177 +msgctxt "Symbol" +msgid "Not Gate Small" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:178 +msgctxt "Symbol" +msgid "Map Symbols" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:179 +msgctxt "Symbol" +msgid "Bed and Breakfast" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:180 +msgctxt "Symbol" +msgid "Youth Hostel" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:181 +msgctxt "Symbol" +msgid "Shelter" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:182 +msgctxt "Symbol" +msgid "Motel" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:183 +msgctxt "Symbol" +msgid "Hotel" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:184 +msgctxt "Symbol" +msgid "Hostel" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:185 +msgctxt "Symbol" +msgid "Chalet" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:186 +msgctxt "Symbol" +msgid "Caravan Park" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:187 +msgctxt "Symbol" +msgid "Camping" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:188 +msgctxt "Symbol" +msgid "Alpine Hut" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:189 +msgctxt "Symbol" +msgid "Bench or Park" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:190 +msgctxt "Symbol" +msgid "Playground" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:191 +msgctxt "Symbol" +msgid "Fountain" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:192 +msgctxt "Symbol" +msgid "Library" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:193 +msgctxt "Symbol" +msgid "Town Hall" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:194 +msgctxt "Symbol" +msgid "Court" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:195 +msgctxt "Symbol" +msgid "Fire Station / House" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:196 +msgctxt "Symbol" +msgid "Police Station" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:197 +msgctxt "Symbol" +msgid "Prison" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:198 +msgctxt "Symbol" +msgid "Post Office" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:199 +msgctxt "Symbol" +msgid "Public Building" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:200 +msgctxt "Symbol" +msgid "Recycling" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:201 +msgctxt "Symbol" +msgid "Survey Point" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:202 +msgctxt "Symbol" +msgid "Toll Booth" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:203 +msgctxt "Symbol" +msgid "Lift Gate" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:204 +msgctxt "Symbol" +msgid "Steps" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:205 +msgctxt "Symbol" +msgid "Stile" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:206 +msgctxt "Symbol" +msgid "Kissing Gate" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:207 +msgctxt "Symbol" +msgid "Gate" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:209 +msgctxt "Symbol" +msgid "Entrance" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:210 +msgctxt "Symbol" +msgid "Cycle Barrier" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:211 +msgctxt "Symbol" +msgid "Cattle Grid" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:212 +msgctxt "Symbol" +msgid "Bollard" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:213 +msgctxt "Symbol" +msgid "University" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:214 +msgctxt "Symbol" +msgid "High/Secondary School" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:215 +msgctxt "Symbol" +msgid "School" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:216 +msgctxt "Symbol" +msgid "Kindergatten" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:219 +msgctxt "Symbol" +msgid "Pub" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:220 +msgctxt "Symbol" +msgid "Deserts/Cakes Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:221 +msgctxt "Symbol" +msgid "Fast Food" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:222 +msgctxt "Symbol" +msgid "Public Tap/Water" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:223 +msgctxt "Symbol" +msgid "Cafe" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:224 +msgctxt "Symbol" +msgid "Beer Garden" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:225 +msgctxt "Symbol" +msgid "Wine Bar" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:226 +msgctxt "Symbol" +msgid "Opticians/Eye Doctors" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:227 +msgctxt "Symbol" +msgid "Dentist" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:228 +msgctxt "Symbol" +msgid "Veterinarian" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:229 +msgctxt "Symbol" +msgid "Drugs Dispensary" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:230 +msgctxt "Symbol" +msgid "Pharmacy" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:231 +msgctxt "Symbol" +msgid "Accident & Emergency" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:232 +msgctxt "Symbol" +msgid "Hospital" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:233 +msgctxt "Symbol" +msgid "Doctors" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:234 +msgctxt "Symbol" +msgid "Scrub Land" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:235 +msgctxt "Symbol" +msgid "Swamp" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:236 +msgctxt "Symbol" +msgid "Hills" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:237 +msgctxt "Symbol" +msgid "Grass Land" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:238 +msgctxt "Symbol" +msgid "Deciduous Forest" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:239 +msgctxt "Symbol" +msgid "Mixed Forest" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:240 +msgctxt "Symbol" +msgid "Coniferous Forest" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:241 +msgctxt "Symbol" +msgid "Church or Place of Worship" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:242 +msgctxt "Symbol" +msgid "Bank" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:243 +msgctxt "Symbol" +msgid "Power Lines" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:244 +msgctxt "Symbol" +msgid "Watch Tower" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:245 +msgctxt "Symbol" +msgid "Transmitter" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:246 +msgctxt "Symbol" +msgid "Village" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:247 +msgctxt "Symbol" +msgid "Town" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:248 +msgctxt "Symbol" +msgid "Hamlet" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:249 +msgctxt "Symbol" +msgid "City" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:250 +msgctxt "Symbol" +msgid "Peak" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:251 +msgctxt "Symbol" +msgid "Mountain Pass" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:252 +msgctxt "Symbol" +msgid "Mine" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:253 +msgctxt "Symbol" +msgid "Military Complex" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:254 +msgctxt "Symbol" +msgid "Embassy" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:255 +msgctxt "Symbol" +msgid "Toy Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:256 +msgctxt "Symbol" +msgid "Supermarket" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:257 +msgctxt "Symbol" +msgid "Jewlers" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:258 +msgctxt "Symbol" +msgid "Hairdressers" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:259 +msgctxt "Symbol" +msgid "Greengrocer" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:260 +msgctxt "Symbol" +msgid "Gift Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:261 +msgctxt "Symbol" +msgid "Garden Center" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:262 +msgctxt "Symbol" +msgid "Florist" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:263 +msgctxt "Symbol" +msgid "Fish Monger" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:264 +msgctxt "Symbol" +msgid "Real Estate" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:265 +msgctxt "Symbol" +msgid "Hardware / DIY" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:266 +msgctxt "Symbol" +msgid "Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:267 +msgctxt "Symbol" +msgid "Confectioner" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:268 +msgctxt "Symbol" +msgid "Computer Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:269 +msgctxt "Symbol" +msgid "Clothing" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:270 +msgctxt "Symbol" +msgid "Mechanic" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:271 +msgctxt "Symbol" +msgid "Car Dealer" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:272 +msgctxt "Symbol" +msgid "Butcher" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:273 +msgctxt "Symbol" +msgid "Meat Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:274 +msgctxt "Symbol" +msgid "Bicycle Shop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:275 +msgctxt "Symbol" +msgid "Baker" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:276 +msgctxt "Symbol" +msgid "Off License / Liquor Store" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:277 +msgctxt "Symbol" +msgid "Wind Surfing" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:278 +msgctxt "Symbol" +msgid "Tennis" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:279 +msgctxt "Symbol" +msgid "Outdoor Pool" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:280 +msgctxt "Symbol" +msgid "Indoor Pool" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:281 +msgctxt "Symbol" +msgid "Skiing" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:282 +msgctxt "Symbol" +msgid "Sailing" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:283 +msgctxt "Symbol" +msgid "Leisure Center" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:284 +msgctxt "Symbol" +msgid "Ice Skating" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:285 +msgctxt "Symbol" +msgid "Equine Sports" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:286 +msgctxt "Symbol" +msgid "Rock Climbing" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:287 +msgctxt "Symbol" +msgid "Gym" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:288 +msgctxt "Symbol" +msgid "Golf" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:289 +msgctxt "Symbol" +msgid "Diving" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:290 +msgctxt "Symbol" +msgid "Archery" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:291 +msgctxt "Symbol" +msgid "Zoo" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:292 +msgctxt "Symbol" +msgid "Wreck" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:293 +msgctxt "Symbol" +msgid "Water Wheel" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:294 +msgctxt "Symbol" +msgid "Point of Interest" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:295 +msgctxt "Symbol" +msgid "Theater" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:296 +msgctxt "Symbol" +msgid "Park / Picnic Area" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:297 +msgctxt "Symbol" +msgid "Monument" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:299 +msgctxt "Symbol" +msgid "Beach" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:300 +msgctxt "Symbol" +msgid "Battle Location" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:301 +msgctxt "Symbol" +msgid "Archaeology / Ruins" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:302 +msgctxt "Symbol" +msgid "Walking" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:303 +msgctxt "Symbol" +msgid "Train" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:305 +msgctxt "Symbol" +msgid "Underground Rail" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:307 +msgctxt "Symbol" +msgid "Bike Rental" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:309 +msgctxt "Symbol" +msgid "Carpool" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:310 +msgctxt "Symbol" +msgid "Flood Gate" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:311 +msgctxt "Symbol" +msgid "Shipping" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:312 +msgctxt "Symbol" +msgid "Disabled Parking" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:313 +msgctxt "Symbol" +msgid "Paid Parking" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:314 +msgctxt "Symbol" +msgid "Bike Parking" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:316 +msgctxt "Symbol" +msgid "Marina" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:317 +msgctxt "Symbol" +msgid "Fuel Station" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:318 +msgctxt "Symbol" +msgid "Bus Stop" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:319 +msgctxt "Symbol" +msgid "Bus Station" +msgstr "" + +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:320 +msgctxt "Symbol" +msgid "Airport" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "A4 Landscape Page" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty A4 landscape sheet" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "A4 paper sheet empty landscape" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "A4 Page" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty A4 sheet" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "A4 paper sheet empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Black Opaque" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty black page" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "black opaque empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "White Opaque" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty white page" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "white opaque empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Business Card 85x54mm" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty business card template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "business card empty 85x54" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Business Card 90x50mm" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "business card empty 90x50" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD Cover 300dpi" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty CD box cover." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD cover disc disk 300dpi box" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD Label 120x120 " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Simple CD Label template with disc's pattern." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD label 120x120 disc disk" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD Cover Regular 300dpi " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD covers." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD cover regular 300dpi" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD Cover Slim 300dpi " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD slim covers." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD cover slim 300dpi" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD Cover Superslim 300dpi " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD superslim covers." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD cover superslim 300dpi" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD Cover Ultraslim 300dpi " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD ultraslim covers." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "DVD cover ultraslim 300dpi" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Desktop 1024x768" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty desktop size sheet" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "desktop 1024x768 wallpaper" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Desktop 1600x1200" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "desktop 1600x1200 wallpaper" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Desktop 640x480" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "desktop 640x480 wallpaper" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Desktop 800x600" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "desktop 800x600 wallpaper" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Fontforge Glyph" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "font fontforge glyph 1000x1000" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Icon 16x16" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Small 16x16 icon template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "icon 16x16 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Icon 32x32" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "32x32 icon template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "icon 32x32 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Icon 48x48" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "48x48 icon template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "icon 48x48 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Icon 64x64" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "64x64 icon template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "icon 64x64 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Letter Landscape" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Standard letter landscape sheet - 792x612" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "letter landscape 792x612 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Letter" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Standard letter sheet - 612x792" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "letter 612x792 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "No Borders" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty sheet with no borders" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "no borders empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "No Layers" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty sheet with no layers" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "no layers empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Video HDTV 1920x1080" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "HDTV video template for 1920x1080 resolution." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "HDTV video empty 1920x1080" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Video NTSC 720x486" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "NTSC video template for 720x486 resolution." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "NTSC video empty 720x486" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Video PAL 728x576" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "PAL video template for 728x576 resolution." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "PAL video empty 728x576" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Web Banner 468x60" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty 468x60 web banner template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "web banner 468x60 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Web Banner 728x90" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty 728x90 web banner template." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "web banner 728x90 empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTeX Beamer" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTeX beamer template with helping grid." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTex LaTeX latex grid beamer" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Typography Canvas" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty typography canvas with helping guidelines." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "guidelines typography canvas" +msgstr "" + +#. 3D box +#: ../src/box3d.cpp:259 ../src/box3d.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 +msgid "3D Box" +msgstr "" + +#: ../src/color-profile.cpp:854 +#, c-format +msgid "Color profiles directory (%s) is unavailable." +msgstr "" + +#: ../src/color-profile.cpp:913 ../src/color-profile.cpp:930 +msgid "(invalid UTF-8 string)" +msgstr "" + +#: ../src/color-profile.cpp:915 ../src/filter-enums.cpp:119 +#: ../src/live_effects/lpe-ruler.cpp:32 +#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:332 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:1830 +#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 +#: ../src/ui/dialog/input.cpp:1571 ../src/ui/dialog/input.cpp:1625 +#: ../src/verbs.cpp:2352 ../src/widgets/gradient-toolbar.cpp:1114 +#: ../src/widgets/pencil-toolbar.cpp:163 +#: ../src/widgets/stroke-marker-selector.cpp:388 +#: ../share/extensions/gcodetools_area.inx.h:48 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +#: ../share/extensions/grid_polar.inx.h:4 ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/scour.inx.h:18 +msgid "None" +msgstr "" + +#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 +msgid "Current layer is hidden. Unhide it to be able to draw on it." +msgstr "" + +#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 +msgid "Current layer is locked. Unlock it to be able to draw on it." +msgstr "" + +#: ../src/desktop.cpp:875 +msgid "No previous zoom." +msgstr "" + +#: ../src/desktop.cpp:896 +msgid "No next zoom." +msgstr "" + +#: ../src/desktop-events.cpp:225 +msgid "Create guide" +msgstr "" + +#: ../src/desktop-events.cpp:470 +msgid "Move guide" +msgstr "" + +#: ../src/desktop-events.cpp:477 ../src/desktop-events.cpp:536 +#: ../src/ui/dialog/guides.cpp:144 +msgid "Delete guide" +msgstr "" + +#: ../src/desktop-events.cpp:516 +#, c-format +msgid "Guideline: %s" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 +msgid "Grid _units:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +msgid "_Origin X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:735 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +msgid "X coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +msgid "O_rigin Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Y coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 +msgid "Spacing _Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:323 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Base length of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +#: ../src/widgets/box3d-toolbar.cpp:299 +msgid "Angle X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +msgid "Angle of x-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/widgets/box3d-toolbar.cpp:378 +msgid "Angle Z:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:768 +msgid "Angle of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Minor grid line _color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:719 +msgid "Minor grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Color of the minor grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +msgid "Ma_jor grid line color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 +msgid "Major grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 +msgid "Color of the major (highlighted) grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "_Major grid line every:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:63 +msgid "Rectangular grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:64 +msgid "Axonometric grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:275 +msgid "Create new grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:341 +msgid "_Enabled" +msgstr "" + +#: ../src/display/canvas-grid.cpp:342 +msgid "" +"Determines whether to snap to this grid or not. Can be 'on' for invisible " +"grids." +msgstr "" + +#: ../src/display/canvas-grid.cpp:346 +msgid "Snap to visible _grid lines only" +msgstr "" + +#: ../src/display/canvas-grid.cpp:347 +msgid "" +"When zoomed out, not all grid lines will be displayed. Only the visible ones " +"will be snapped to" +msgstr "" + +#: ../src/display/canvas-grid.cpp:351 +msgid "_Visible" +msgstr "" + +#: ../src/display/canvas-grid.cpp:352 +msgid "" +"Determines whether the grid is displayed or not. Objects are still snapped " +"to invisible grids." +msgstr "" + +#: ../src/display/canvas-grid.cpp:699 +msgid "Spacing _X:" +msgstr "" + +#: ../src/display/canvas-grid.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +msgid "Distance between vertical grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:742 +msgid "Distance between horizontal grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:732 +msgid "_Show dots instead of lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:733 +msgid "If set, displays dots at gridpoints instead of gridlines" +msgstr "" + +#. TRANSLATORS: undefined target for snapping +#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 +#: ../src/display/snap-indicator.cpp:179 ../src/display/snap-indicator.cpp:182 +msgid "UNDEFINED" +msgstr "" + +#: ../src/display/snap-indicator.cpp:78 +msgid "grid line" +msgstr "" + +#: ../src/display/snap-indicator.cpp:81 +msgid "grid intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:84 +msgid "grid line (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:87 +msgid "guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:90 +msgid "guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:93 +msgid "guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:96 +msgid "guide (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:99 +msgid "grid-guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:102 +msgid "cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:105 +msgid "smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:108 +msgid "path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:111 +msgid "path (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:114 +msgid "path (tangential)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:117 +msgid "path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:120 +msgid "guide-path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:123 +msgid "clip-path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:126 +msgid "mask-path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:129 +msgid "bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:132 +msgid "bounding box side" +msgstr "" + +#: ../src/display/snap-indicator.cpp:135 +msgid "page border" +msgstr "" + +#: ../src/display/snap-indicator.cpp:138 +msgid "line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:141 +msgid "object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:144 +msgid "object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:147 +msgid "bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:150 +msgid "bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:153 +msgid "page corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:156 +msgid "quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:160 +msgid "corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:163 +msgid "text anchor" +msgstr "" + +#: ../src/display/snap-indicator.cpp:166 +msgid "text baseline" +msgstr "" + +#: ../src/display/snap-indicator.cpp:169 +msgid "constrained angle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:172 +msgid "constraint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:185 +msgid "Bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:188 +msgid "Bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:191 +msgid "Bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:194 ../src/ui/tool/node.cpp:1315 +msgid "Smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:197 ../src/ui/tool/node.cpp:1314 +msgid "Cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:200 +msgid "Line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:203 +msgid "Object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:206 +msgid "Object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:210 +msgid "Handle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:213 +msgid "Path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:216 +msgid "Guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:219 +msgid "Guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:222 +msgid "Convex hull corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:225 +msgid "Quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:229 +msgid "Corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:232 +msgid "Text anchor" +msgstr "" + +#: ../src/display/snap-indicator.cpp:235 +msgid "Multiple of grid spacing" +msgstr "" + +#: ../src/display/snap-indicator.cpp:266 +msgid " to " +msgstr "" + +#: ../src/document.cpp:542 +#, c-format +msgid "New document %d" +msgstr "" + +#: ../src/document.cpp:547 +#, c-format +msgid "Memory document %d" +msgstr "" + +#: ../src/document.cpp:576 +msgid "Memory document %1" +msgstr "" + +#: ../src/document.cpp:788 +#, c-format +msgid "Unnamed document %d" +msgstr "" + +#: ../src/event-log.cpp:37 +msgid "[Unchanged]" +msgstr "" + +#. Edit +#: ../src/event-log.cpp:275 ../src/event-log.cpp:278 ../src/verbs.cpp:2390 +msgid "_Undo" +msgstr "" + +#: ../src/event-log.cpp:285 ../src/event-log.cpp:289 ../src/verbs.cpp:2392 +msgid "_Redo" +msgstr "" + +#: ../src/extension/dependency.cpp:235 +msgid "Dependency:" +msgstr "" + +#: ../src/extension/dependency.cpp:236 +msgid " type: " +msgstr "" + +#: ../src/extension/dependency.cpp:237 +msgid " location: " +msgstr "" + +#: ../src/extension/dependency.cpp:238 +msgid " string: " +msgstr "" + +#: ../src/extension/dependency.cpp:241 +msgid " description: " +msgstr "" + +#: ../src/extension/effect.cpp:41 +msgid " (No preferences)" +msgstr "" + +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2163 +msgid "Extensions" +msgstr "" + +#. This is some filler text, needs to change before relase +#: ../src/extension/error-file.cpp:52 +msgid "" +"One or more extensions failed to load\n" +"\n" +"The failed extensions have been skipped. Inkscape will continue to run " +"normally but those extensions will be unavailable. For details to " +"troubleshoot this problem, please refer to the error log located at: " +msgstr "" + +#: ../src/extension/error-file.cpp:66 +msgid "Show dialog on startup" +msgstr "" + +#: ../src/extension/execution-env.cpp:144 +#, c-format +msgid "'%s' working, please wait..." +msgstr "" + +#. static int i = 0; +#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; +#: ../src/extension/extension.cpp:263 +msgid "" +" This is caused by an improper .inx file for this extension. An improper ." +"inx file could have been caused by a faulty installation of Inkscape." +msgstr "" + +#: ../src/extension/extension.cpp:266 +msgid "an ID was not defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:270 +msgid "there was no name defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:274 +msgid "the XML description of it got lost." +msgstr "" + +#: ../src/extension/extension.cpp:278 +msgid "no implementation was defined for the extension." +msgstr "" + +#. std::cout << "Failed: " << *(_deps[i]) << std::endl; +#: ../src/extension/extension.cpp:285 +msgid "a dependency was not met." +msgstr "" + +#: ../src/extension/extension.cpp:305 +msgid "Extension \"" +msgstr "" + +#: ../src/extension/extension.cpp:305 +msgid "\" failed to load because " +msgstr "" + +#: ../src/extension/extension.cpp:654 +#, c-format +msgid "Could not create extension error log file '%s'" +msgstr "" + +#: ../src/extension/extension.cpp:762 +#: ../share/extensions/webslicer_create_rect.inx.h:2 +msgid "Name:" +msgstr "" + +#: ../src/extension/extension.cpp:763 +msgid "ID:" +msgstr "" + +#: ../src/extension/extension.cpp:764 +msgid "State:" +msgstr "" + +#: ../src/extension/extension.cpp:764 +msgid "Loaded" +msgstr "" + +#: ../src/extension/extension.cpp:764 +msgid "Unloaded" +msgstr "" + +#: ../src/extension/extension.cpp:764 +msgid "Deactivated" +msgstr "" + +#: ../src/extension/extension.cpp:804 +msgid "" +"Currently there is no help available for this Extension. Please look on the " +"Inkscape website or ask on the mailing lists if you have questions regarding " +"this extension." +msgstr "" + +#: ../src/extension/implementation/script.cpp:1037 +msgid "" +"Inkscape has received additional data from the script executed. The script " +"did not return an error, but this may indicate the results will not be as " +"expected." +msgstr "" + +#: ../src/extension/init.cpp:296 +msgid "Null external module directory name. Modules will not be loaded." +msgstr "" + +#: ../src/extension/init.cpp:310 +#: ../src/extension/internal/filter/filter-file.cpp:59 +#, c-format +msgid "" +"Modules directory (%s) is unavailable. External modules in that directory " +"will not be loaded." +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 +msgid "Adaptive Threshold" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 +#: ../src/extension/internal/bitmap/raise.cpp:42 +#: ../src/extension/internal/bitmap/sample.cpp:41 +#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/ui/dialog/object-attributes.cpp:68 +#: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/foldablebox.inx.h:2 +msgid "Width:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 +#: ../src/extension/internal/bitmap/raise.cpp:43 +#: ../src/extension/internal/bitmap/sample.cpp:42 +#: ../src/ui/dialog/object-attributes.cpp:69 +#: ../src/ui/dialog/object-attributes.cpp:78 +#: ../share/extensions/foldablebox.inx.h:3 +msgid "Height:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 +#: ../share/extensions/printing_marks.inx.h:12 +msgid "Offset:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 +#: ../src/extension/internal/bitmap/addNoise.cpp:58 +#: ../src/extension/internal/bitmap/blur.cpp:45 +#: ../src/extension/internal/bitmap/channel.cpp:64 +#: ../src/extension/internal/bitmap/charcoal.cpp:45 +#: ../src/extension/internal/bitmap/colorize.cpp:56 +#: ../src/extension/internal/bitmap/contrast.cpp:46 +#: ../src/extension/internal/bitmap/crop.cpp:75 +#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 +#: ../src/extension/internal/bitmap/despeckle.cpp:41 +#: ../src/extension/internal/bitmap/edge.cpp:43 +#: ../src/extension/internal/bitmap/emboss.cpp:45 +#: ../src/extension/internal/bitmap/enhance.cpp:40 +#: ../src/extension/internal/bitmap/equalize.cpp:40 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 +#: ../src/extension/internal/bitmap/implode.cpp:43 +#: ../src/extension/internal/bitmap/levelChannel.cpp:71 +#: ../src/extension/internal/bitmap/level.cpp:49 +#: ../src/extension/internal/bitmap/medianFilter.cpp:43 +#: ../src/extension/internal/bitmap/modulate.cpp:48 +#: ../src/extension/internal/bitmap/negate.cpp:41 +#: ../src/extension/internal/bitmap/normalize.cpp:41 +#: ../src/extension/internal/bitmap/oilPaint.cpp:43 +#: ../src/extension/internal/bitmap/opacity.cpp:44 +#: ../src/extension/internal/bitmap/raise.cpp:48 +#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 +#: ../src/extension/internal/bitmap/sample.cpp:46 +#: ../src/extension/internal/bitmap/shade.cpp:48 +#: ../src/extension/internal/bitmap/sharpen.cpp:45 +#: ../src/extension/internal/bitmap/solarize.cpp:45 +#: ../src/extension/internal/bitmap/spread.cpp:43 +#: ../src/extension/internal/bitmap/swirl.cpp:43 +#: ../src/extension/internal/bitmap/threshold.cpp:44 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 +#: ../src/extension/internal/bitmap/wave.cpp:45 +msgid "Raster" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 +msgid "Apply adaptive thresholding to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:45 +msgid "Add Noise" +msgstr "" + +#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); +#: ../src/extension/internal/bitmap/addNoise.cpp:47 +#: ../src/extension/internal/filter/color.h:426 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/distort.h:69 +#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/object-attributes.cpp:49 +#: ../share/extensions/jessyInk_effects.inx.h:5 +#: ../share/extensions/jessyInk_export.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:5 +#: ../share/extensions/webslicer_create_rect.inx.h:14 +msgid "Type:" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:48 +msgid "Uniform Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:49 +msgid "Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:50 +msgid "Multiplicative Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:51 +msgid "Impulse Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:52 +msgid "Laplacian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:53 +msgid "Poisson Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:60 +msgid "Add random noise to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:38 +#: ../src/extension/internal/filter/blurs.h:54 +#: ../src/extension/internal/filter/paint.h:710 +#: ../src/extension/internal/filter/transparency.h:343 +msgid "Blur" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:40 +#: ../src/extension/internal/bitmap/charcoal.cpp:40 +#: ../src/extension/internal/bitmap/edge.cpp:39 +#: ../src/extension/internal/bitmap/emboss.cpp:40 +#: ../src/extension/internal/bitmap/medianFilter.cpp:39 +#: ../src/extension/internal/bitmap/oilPaint.cpp:39 +#: ../src/extension/internal/bitmap/sharpen.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +msgid "Radius:" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:41 +#: ../src/extension/internal/bitmap/charcoal.cpp:41 +#: ../src/extension/internal/bitmap/emboss.cpp:41 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 +#: ../src/extension/internal/bitmap/sharpen.cpp:41 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 +msgid "Sigma:" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:47 +msgid "Blur selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:48 +msgid "Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:50 +msgid "Layer:" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:51 +#: ../src/extension/internal/bitmap/levelChannel.cpp:55 +msgid "Red Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:52 +#: ../src/extension/internal/bitmap/levelChannel.cpp:56 +msgid "Green Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:53 +#: ../src/extension/internal/bitmap/levelChannel.cpp:57 +msgid "Blue Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:54 +#: ../src/extension/internal/bitmap/levelChannel.cpp:58 +msgid "Cyan Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:55 +#: ../src/extension/internal/bitmap/levelChannel.cpp:59 +msgid "Magenta Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:56 +#: ../src/extension/internal/bitmap/levelChannel.cpp:60 +msgid "Yellow Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:57 +#: ../src/extension/internal/bitmap/levelChannel.cpp:61 +msgid "Black Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:58 +#: ../src/extension/internal/bitmap/levelChannel.cpp:62 +msgid "Opacity Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:59 +#: ../src/extension/internal/bitmap/levelChannel.cpp:63 +msgid "Matte Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:66 +msgid "Extract specific channel from image" +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:38 +msgid "Charcoal" +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:47 +msgid "Apply charcoal stylization to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/colorize.cpp:50 +#: ../src/extension/internal/filter/color.h:317 +msgid "Colorize" +msgstr "" + +#: ../src/extension/internal/bitmap/colorize.cpp:58 +msgid "Colorize selected bitmap(s) with specified color, using given opacity" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:40 +#: ../src/extension/internal/filter/color.h:1114 +msgid "Contrast" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:42 +msgid "Adjust:" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:48 +msgid "Increase or decrease contrast in bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:66 +#: ../src/extension/internal/filter/bumps.h:86 +#: ../src/extension/internal/filter/bumps.h:315 +msgid "Crop" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:68 +msgid "Top (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:69 +msgid "Bottom (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:70 +msgid "Left (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:71 +msgid "Right (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:77 +msgid "Crop selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 +msgid "Cycle Colormap" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 +#: ../src/extension/internal/bitmap/spread.cpp:39 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount:" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 +msgid "Cycle colormap(s) of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:36 +msgid "Despeckle" +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:43 +msgid "Reduce speckle noise of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:37 +msgid "Edge" +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:45 +msgid "Highlight edges of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/emboss.cpp:38 +msgid "Emboss" +msgstr "" + +#: ../src/extension/internal/bitmap/emboss.cpp:47 +msgid "Emboss selected bitmap(s); highlight edges with 3D effect" +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:35 +msgid "Enhance" +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:42 +msgid "Enhance selected bitmap(s); minimize noise" +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:35 +msgid "Equalize" +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:42 +msgid "Equalize selected bitmap(s); histogram equalization" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 +#: ../src/filter-enums.cpp:28 +msgid "Gaussian Blur" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 +#: ../src/extension/internal/bitmap/implode.cpp:39 +#: ../src/extension/internal/bitmap/solarize.cpp:41 +msgid "Factor:" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 +msgid "Gaussian blur selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:37 +msgid "Implode" +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:45 +msgid "Implode selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:52 +msgid "Level (with Channel)" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:54 +#: ../src/extension/internal/filter/color.h:636 +msgid "Channel:" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:65 +#: ../src/extension/internal/bitmap/level.cpp:43 +msgid "Black Point:" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:66 +#: ../src/extension/internal/bitmap/level.cpp:44 +msgid "White Point:" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:67 +#: ../src/extension/internal/bitmap/level.cpp:45 +msgid "Gamma Correction:" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:73 +msgid "" +"Level the specified channel of selected bitmap(s) by scaling values falling " +"between the given ranges to the full color range" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:41 +#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/image.h:56 +#: ../src/extension/internal/filter/morphology.h:66 +#: ../src/extension/internal/filter/paint.h:345 +msgid "Level" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:51 +msgid "" +"Level selected bitmap(s) by scaling values falling between the given ranges " +"to the full color range" +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:37 +msgid "Median" +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:45 +msgid "" +"Replace each pixel component with the median color in a circular neighborhood" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:40 +msgid "HSB Adjust" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:42 +msgid "Hue:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:43 +msgid "Saturation:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:44 +msgid "Brightness:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:50 +msgid "" +"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:36 +msgid "Negate" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:43 +msgid "Negate (take inverse) selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:36 +msgid "Normalize" +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:43 +msgid "" +"Normalize selected bitmap(s), expanding color range to the full possible " +"range of color" +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:37 +msgid "Oil Paint" +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:45 +msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:38 +#: ../src/extension/internal/filter/blurs.h:333 +#: ../src/extension/internal/filter/transparency.h:279 +#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 +#: ../src/widgets/tweak-toolbar.cpp:334 +#: ../share/extensions/interp_att_g.inx.h:16 +msgid "Opacity" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:40 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 +#: ../src/widgets/dropper-toolbar.cpp:83 +msgid "Opacity:" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:46 +msgid "Modify opacity channel(s) of selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:40 +msgid "Raise" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:44 +msgid "Raised" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:50 +msgid "" +"Alter lightness the edges of selected bitmap(s) to create a raised appearance" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 +msgid "Reduce Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../share/extensions/jessyInk_effects.inx.h:3 +#: ../share/extensions/jessyInk_view.inx.h:3 +#: ../share/extensions/lindenmayer.inx.h:5 +msgid "Order:" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 +msgid "" +"Reduce noise in selected bitmap(s) using a noise peak elimination filter" +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:39 +msgid "Resample" +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:48 +msgid "" +"Alter the resolution of selected image by resizing it to the given pixel size" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:40 +msgid "Shade" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:42 +msgid "Azimuth:" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:43 +msgid "Elevation:" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:44 +msgid "Colored Shading" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:50 +msgid "Shade selected bitmap(s) simulating distant light source" +msgstr "" + +#: ../src/extension/internal/bitmap/sharpen.cpp:47 +msgid "Sharpen selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/solarize.cpp:39 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1498 +msgid "Solarize" +msgstr "" + +#: ../src/extension/internal/bitmap/solarize.cpp:47 +msgid "Solarize selected bitmap(s), like overexposing photographic film" +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:37 +msgid "Dither" +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:45 +msgid "" +"Randomly scatter pixels in selected bitmap(s), within the given radius of " +"the original position" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:39 +msgid "Degrees:" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:45 +msgid "Swirl selected bitmap(s) around center point" +msgstr "" + +#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html +#: ../src/extension/internal/bitmap/threshold.cpp:38 +msgid "Threshold" +msgstr "" + +#: ../src/extension/internal/bitmap/threshold.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 +#: ../src/widgets/paintbucket-toolbar.cpp:146 +msgid "Threshold:" +msgstr "" + +#: ../src/extension/internal/bitmap/threshold.cpp:46 +msgid "Threshold selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 +msgid "Unsharp Mask" +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 +msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:38 +msgid "Wave" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:40 +msgid "Amplitude:" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:41 +msgid "Wavelength:" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:47 +msgid "Alter selected bitmap(s) along sine wave" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:136 +msgid "Inset/Outset Halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:138 +msgid "Width in px of the halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of steps:" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of inset/outset copies of the object to make" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:143 +#: ../share/extensions/extrude.inx.h:5 +#: ../share/extensions/generate_voronoi.inx.h:9 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 +#: ../share/extensions/pathalongpath.inx.h:18 +#: ../share/extensions/pathscatter.inx.h:20 +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Generate from Path" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:327 +#: ../share/extensions/ps_input.inx.h:3 +msgid "PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:329 +#: ../src/extension/internal/cairo-ps-out.cpp:368 +msgid "Restrict to PS level:" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:330 +#: ../src/extension/internal/cairo-ps-out.cpp:369 +msgid "PostScript level 3" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:331 +#: ../src/extension/internal/cairo-ps-out.cpp:370 +msgid "PostScript level 2" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:333 +#: ../src/extension/internal/cairo-ps-out.cpp:372 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +#: ../src/extension/internal/emf-inout.cpp:3524 +#: ../src/extension/internal/wmf-inout.cpp:3128 +msgid "Convert texts to paths" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:334 +msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:335 +#: ../src/extension/internal/cairo-ps-out.cpp:374 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 +msgid "Rasterize filter effects" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:336 +#: ../src/extension/internal/cairo-ps-out.cpp:375 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +msgid "Resolution for rasterization (dpi):" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:337 +#: ../src/extension/internal/cairo-ps-out.cpp:376 +msgid "Output page size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:377 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Use document's page size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:378 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +msgid "Use exported object's size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +msgid "Bleed/margin (mm):" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:342 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +msgid "Limit export to the object with ID:" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:346 +#: ../share/extensions/ps_input.inx.h:2 +msgid "PostScript (*.ps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:347 +msgid "PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:366 +#: ../share/extensions/eps_input.inx.h:3 +msgid "Encapsulated PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:373 +msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:380 +msgid "Bleed/margin (mm)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:385 +#: ../share/extensions/eps_input.inx.h:2 +msgid "Encapsulated PostScript (*.eps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:386 +msgid "Encapsulated PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 +msgid "Restrict to PDF version:" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 +msgid "PDF 1.5" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 +msgid "PDF 1.4" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +msgid "Output page size:" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:102 +#: ../src/extension/internal/pdf-input-cairo.cpp:74 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 +#: ../src/extension/internal/vsd-input.cpp:101 +msgid "Select page:" +msgstr "" + +#. Display total number of pages +#: ../src/extension/internal/cdr-input.cpp:114 +#: ../src/extension/internal/pdf-input-cairo.cpp:92 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 +#: ../src/extension/internal/vsd-input.cpp:113 +#, c-format +msgid "out of %i" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:145 +#: ../src/extension/internal/vsd-input.cpp:144 +msgid "Page Selector" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:274 +msgid "Corel DRAW Input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:279 +msgid "Corel DRAW 7-X4 files (*.cdr)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:280 +msgid "Open files saved in Corel DRAW 7-X4" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:287 +msgid "Corel DRAW templates input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:292 +msgid "Corel DRAW 7-13 template files (*.cdt)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:293 +msgid "Open files saved in Corel DRAW 7-13" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:300 +msgid "Corel DRAW Compressed Exchange files input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:305 +msgid "Corel DRAW Compressed Exchange files (*.ccx)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:306 +msgid "Open compressed exchange files saved in Corel DRAW" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:313 +msgid "Corel DRAW Presentation Exchange files input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:318 +msgid "Corel DRAW Presentation Exchange files (*.cmx)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:319 +msgid "Open presentation exchange files saved in Corel DRAW" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3508 +msgid "EMF Input" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3513 +msgid "Enhanced Metafiles (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3514 +msgid "Enhanced Metafiles" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3522 +msgid "EMF Output" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3525 +#: ../src/extension/internal/wmf-inout.cpp:3129 +msgid "Map Unicode to Symbol font" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3526 +#: ../src/extension/internal/wmf-inout.cpp:3130 +msgid "Map Unicode to Wingdings" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3527 +#: ../src/extension/internal/wmf-inout.cpp:3131 +msgid "Map Unicode to Zapf Dingbats" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3528 +#: ../src/extension/internal/wmf-inout.cpp:3132 +msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3529 +#: ../src/extension/internal/wmf-inout.cpp:3133 +msgid "Compensate for PPT font bug" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3530 +#: ../src/extension/internal/wmf-inout.cpp:3134 +msgid "Convert dashed/dotted lines to single lines" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3531 +#: ../src/extension/internal/wmf-inout.cpp:3135 +msgid "Convert gradients to colored polygon series" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3532 +msgid "Use native rectangular linear gradients" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3533 +msgid "Map all fill patterns to standard EMF hatches" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3534 +msgid "Ignore image rotations" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3538 +msgid "Enhanced Metafile (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3539 +msgid "Enhanced Metafile" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:53 +msgid "Diffuse Light" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:55 +#: ../src/extension/internal/filter/bevels.h:135 +#: ../src/extension/internal/filter/bevels.h:219 +#: ../src/extension/internal/filter/paint.h:89 +#: ../src/extension/internal/filter/paint.h:340 +msgid "Smoothness" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:56 +#: ../src/extension/internal/filter/bevels.h:137 +#: ../src/extension/internal/filter/bevels.h:221 +msgid "Elevation (°)" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:57 +#: ../src/extension/internal/filter/bevels.h:138 +#: ../src/extension/internal/filter/bevels.h:222 +msgid "Azimuth (°)" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:58 +#: ../src/extension/internal/filter/bevels.h:139 +#: ../src/extension/internal/filter/bevels.h:223 +msgid "Lighting color" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:62 +#: ../src/extension/internal/filter/bevels.h:143 +#: ../src/extension/internal/filter/bevels.h:227 +#: ../src/extension/internal/filter/blurs.h:62 +#: ../src/extension/internal/filter/blurs.h:131 +#: ../src/extension/internal/filter/blurs.h:200 +#: ../src/extension/internal/filter/blurs.h:266 +#: ../src/extension/internal/filter/blurs.h:350 +#: ../src/extension/internal/filter/bumps.h:141 +#: ../src/extension/internal/filter/bumps.h:361 +#: ../src/extension/internal/filter/color.h:81 +#: ../src/extension/internal/filter/color.h:170 +#: ../src/extension/internal/filter/color.h:261 +#: ../src/extension/internal/filter/color.h:346 +#: ../src/extension/internal/filter/color.h:436 +#: ../src/extension/internal/filter/color.h:531 +#: ../src/extension/internal/filter/color.h:653 +#: ../src/extension/internal/filter/color.h:750 +#: ../src/extension/internal/filter/color.h:829 +#: ../src/extension/internal/filter/color.h:920 +#: ../src/extension/internal/filter/color.h:1048 +#: ../src/extension/internal/filter/color.h:1118 +#: ../src/extension/internal/filter/color.h:1211 +#: ../src/extension/internal/filter/color.h:1323 +#: ../src/extension/internal/filter/color.h:1428 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/distort.h:95 +#: ../src/extension/internal/filter/distort.h:204 +#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter-file.cpp:151 +#: ../src/extension/internal/filter/image.h:61 +#: ../src/extension/internal/filter/morphology.h:75 +#: ../src/extension/internal/filter/morphology.h:202 +#: ../src/extension/internal/filter/overlays.h:79 +#: ../src/extension/internal/filter/paint.h:112 +#: ../src/extension/internal/filter/paint.h:243 +#: ../src/extension/internal/filter/paint.h:362 +#: ../src/extension/internal/filter/paint.h:506 +#: ../src/extension/internal/filter/paint.h:601 +#: ../src/extension/internal/filter/paint.h:724 +#: ../src/extension/internal/filter/paint.h:876 +#: ../src/extension/internal/filter/paint.h:980 +#: ../src/extension/internal/filter/protrusions.h:54 +#: ../src/extension/internal/filter/shadows.h:80 +#: ../src/extension/internal/filter/textures.h:90 +#: ../src/extension/internal/filter/transparency.h:69 +#: ../src/extension/internal/filter/transparency.h:140 +#: ../src/extension/internal/filter/transparency.h:214 +#: ../src/extension/internal/filter/transparency.h:287 +#: ../src/extension/internal/filter/transparency.h:349 +msgid "Filters" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:66 +msgid "Basic diffuse bevel to use for building textures" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:133 +msgid "Matte Jelly" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:136 +#: ../src/extension/internal/filter/bevels.h:220 +#: ../src/extension/internal/filter/blurs.h:187 +#: ../src/extension/internal/filter/color.h:74 +msgid "Brightness" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:147 +msgid "Bulging, matte jelly covering" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:217 +msgid "Specular Light" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:56 +#: ../src/extension/internal/filter/blurs.h:189 +#: ../src/extension/internal/filter/blurs.h:329 +#: ../src/extension/internal/filter/distort.h:73 +msgid "Horizontal blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:57 +#: ../src/extension/internal/filter/blurs.h:190 +#: ../src/extension/internal/filter/blurs.h:330 +#: ../src/extension/internal/filter/distort.h:74 +msgid "Vertical blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:58 +msgid "Blur content only" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:66 +msgid "Simple vertical and horizontal blur effect" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:125 +msgid "Clean Edges" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:127 +#: ../src/extension/internal/filter/blurs.h:262 +#: ../src/extension/internal/filter/paint.h:237 +#: ../src/extension/internal/filter/paint.h:336 +#: ../src/extension/internal/filter/paint.h:341 +msgid "Strength" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:135 +msgid "" +"Removes or decreases glows and jaggeries around objects edges after applying " +"some filters" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:185 +msgid "Cross Blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:188 +msgid "Fading" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:191 +#: ../src/extension/internal/filter/textures.h:74 +msgid "Blend:" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:192 +#: ../src/extension/internal/filter/blurs.h:339 +#: ../src/extension/internal/filter/bumps.h:131 +#: ../src/extension/internal/filter/bumps.h:337 +#: ../src/extension/internal/filter/bumps.h:344 +#: ../src/extension/internal/filter/color.h:329 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:1423 +#: ../src/extension/internal/filter/color.h:1596 +#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/paint.h:705 +#: ../src/extension/internal/filter/transparency.h:63 +#: ../src/filter-enums.cpp:54 +msgid "Darken" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:193 +#: ../src/extension/internal/filter/blurs.h:340 +#: ../src/extension/internal/filter/bumps.h:132 +#: ../src/extension/internal/filter/bumps.h:335 +#: ../src/extension/internal/filter/bumps.h:342 +#: ../src/extension/internal/filter/color.h:327 +#: ../src/extension/internal/filter/color.h:332 +#: ../src/extension/internal/filter/color.h:647 +#: ../src/extension/internal/filter/color.h:1415 +#: ../src/extension/internal/filter/color.h:1420 +#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/paint.h:703 +#: ../src/extension/internal/filter/transparency.h:62 +#: ../src/filter-enums.cpp:53 ../src/ui/dialog/input.cpp:382 +msgid "Screen" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:194 +#: ../src/extension/internal/filter/blurs.h:341 +#: ../src/extension/internal/filter/bumps.h:133 +#: ../src/extension/internal/filter/bumps.h:338 +#: ../src/extension/internal/filter/bumps.h:345 +#: ../src/extension/internal/filter/color.h:325 +#: ../src/extension/internal/filter/color.h:333 +#: ../src/extension/internal/filter/color.h:645 +#: ../src/extension/internal/filter/color.h:1414 +#: ../src/extension/internal/filter/color.h:1421 +#: ../src/extension/internal/filter/color.h:1595 +#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/paint.h:701 +#: ../src/extension/internal/filter/transparency.h:60 +#: ../src/filter-enums.cpp:52 +msgid "Multiply" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:195 +#: ../src/extension/internal/filter/blurs.h:342 +#: ../src/extension/internal/filter/bumps.h:134 +#: ../src/extension/internal/filter/bumps.h:339 +#: ../src/extension/internal/filter/bumps.h:346 +#: ../src/extension/internal/filter/color.h:328 +#: ../src/extension/internal/filter/color.h:335 +#: ../src/extension/internal/filter/color.h:1422 +#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/paint.h:704 +#: ../src/extension/internal/filter/transparency.h:64 +#: ../src/filter-enums.cpp:55 +msgid "Lighten" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:204 +msgid "Combine vertical and horizontal blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:260 +msgid "Feather" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:270 +msgid "Blurred mask on the edge without altering the contents" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:325 +msgid "Out of Focus" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:331 +#: ../src/extension/internal/filter/distort.h:75 +#: ../src/extension/internal/filter/morphology.h:67 +#: ../src/extension/internal/filter/paint.h:235 +#: ../src/extension/internal/filter/paint.h:342 +#: ../src/extension/internal/filter/paint.h:346 +msgid "Dilatation" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:332 +#: ../src/extension/internal/filter/distort.h:76 +#: ../src/extension/internal/filter/morphology.h:68 +#: ../src/extension/internal/filter/paint.h:98 +#: ../src/extension/internal/filter/paint.h:236 +#: ../src/extension/internal/filter/paint.h:343 +#: ../src/extension/internal/filter/paint.h:347 +#: ../src/extension/internal/filter/transparency.h:208 +#: ../src/extension/internal/filter/transparency.h:282 +msgid "Erosion" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:336 +#: ../src/extension/internal/filter/color.h:1205 +#: ../src/extension/internal/filter/color.h:1317 +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Background color" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:337 +#: ../src/extension/internal/filter/bumps.h:129 +msgid "Blend type:" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:338 +#: ../src/extension/internal/filter/bumps.h:130 +#: ../src/extension/internal/filter/bumps.h:336 +#: ../src/extension/internal/filter/bumps.h:343 +#: ../src/extension/internal/filter/color.h:326 +#: ../src/extension/internal/filter/color.h:334 +#: ../src/extension/internal/filter/color.h:646 +#: ../src/extension/internal/filter/color.h:1413 +#: ../src/extension/internal/filter/color.h:1419 +#: ../src/extension/internal/filter/color.h:1586 +#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/distort.h:78 +#: ../src/extension/internal/filter/paint.h:702 +#: ../src/extension/internal/filter/textures.h:77 +#: ../src/extension/internal/filter/transparency.h:61 +#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:642 +msgid "Normal" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:344 +msgid "Blend to background" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:354 +msgid "Blur eroded by white or transparency" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:80 +msgid "Bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:84 +#: ../src/extension/internal/filter/bumps.h:313 +msgid "Image simplification" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:85 +#: ../src/extension/internal/filter/bumps.h:314 +msgid "Bump simplification" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:87 +#: ../src/extension/internal/filter/bumps.h:316 +msgid "Bump source" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:88 +#: ../src/extension/internal/filter/bumps.h:317 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:637 +#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/transparency.h:132 +#: ../src/filter-enums.cpp:125 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/widgets/sp-color-icc-selector.cpp:355 +#: ../src/widgets/sp-color-scales.cpp:429 +#: ../src/widgets/sp-color-scales.cpp:430 +msgid "Red" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:89 +#: ../src/extension/internal/filter/bumps.h:318 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:638 +#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/transparency.h:133 +#: ../src/filter-enums.cpp:126 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/widgets/sp-color-icc-selector.cpp:356 +#: ../src/widgets/sp-color-scales.cpp:432 +#: ../src/widgets/sp-color-scales.cpp:433 +msgid "Green" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:90 +#: ../src/extension/internal/filter/bumps.h:319 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:639 +#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/transparency.h:134 +#: ../src/filter-enums.cpp:127 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/widgets/sp-color-icc-selector.cpp:357 +#: ../src/widgets/sp-color-scales.cpp:435 +#: ../src/widgets/sp-color-scales.cpp:436 +msgid "Blue" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:91 +msgid "Bump from background" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:94 +msgid "Lighting type:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:95 +msgid "Specular" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:96 +msgid "Diffuse" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:98 +#: ../src/extension/internal/filter/bumps.h:329 ../src/libgdl/gdl-dock.c:199 +#: ../src/libgdl/gdl-dock-placeholder.c:175 +#: ../src/widgets/rect-toolbar.cpp:331 +#: ../share/extensions/interp_att_g.inx.h:11 +msgid "Height" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:99 +#: ../src/extension/internal/filter/bumps.h:330 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:824 +#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/paint.h:86 +#: ../src/extension/internal/filter/paint.h:592 +#: ../src/extension/internal/filter/paint.h:707 +#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/widgets/sp-color-icc-selector.cpp:366 +#: ../src/widgets/sp-color-scales.cpp:461 +#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:318 +#: ../share/extensions/color_randomize.inx.h:5 +msgid "Lightness" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:100 +#: ../src/extension/internal/filter/bumps.h:331 +msgid "Precision" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:103 +msgid "Light source" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:104 +msgid "Light source:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:105 +msgid "Distant" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:106 +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Point" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:107 +msgid "Spot" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:109 +msgid "Distant light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:110 +#: ../src/extension/internal/filter/bumps.h:332 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Azimuth" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:111 +#: ../src/extension/internal/filter/bumps.h:333 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Elevation" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:112 +msgid "Point light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:113 +#: ../src/extension/internal/filter/bumps.h:117 +msgid "X location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:114 +#: ../src/extension/internal/filter/bumps.h:118 +msgid "Y location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:115 +#: ../src/extension/internal/filter/bumps.h:119 +msgid "Z location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:116 +msgid "Spot light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:120 +msgid "X target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:121 +msgid "Y target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:122 +msgid "Z target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:123 +msgid "Specular exponent" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:124 +msgid "Cone angle" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:127 +msgid "Image color" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:128 +msgid "Color bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:145 +msgid "All purposes bump filter" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:309 +msgid "Wax Bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:320 +msgid "Background:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:322 +#: ../src/extension/internal/filter/transparency.h:57 +#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:517 +msgid "Image" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:323 +msgid "Blurred image" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:325 +msgid "Background opacity" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:327 +#: ../src/extension/internal/filter/color.h:1040 +msgid "Lighting" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:334 +msgid "Lighting blend:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:341 +msgid "Highlight blend:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:350 +msgid "Bump color" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:351 +msgid "Revert bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:352 +msgid "Transparency type:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:353 +#: ../src/extension/internal/filter/morphology.h:176 +#: ../src/filter-enums.cpp:88 +msgid "Atop" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:354 +#: ../src/extension/internal/filter/distort.h:70 +#: ../src/extension/internal/filter/morphology.h:174 +#: ../src/filter-enums.cpp:86 +msgid "In" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:365 +msgid "Turns an image to jelly" +msgstr "" + +#: ../src/extension/internal/filter/color.h:72 +msgid "Brilliance" +msgstr "" + +#: ../src/extension/internal/filter/color.h:75 +#: ../src/extension/internal/filter/color.h:1417 +msgid "Over-saturation" +msgstr "" + +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/overlays.h:70 +#: ../src/extension/internal/filter/paint.h:85 +#: ../src/extension/internal/filter/paint.h:502 +#: ../src/extension/internal/filter/transparency.h:136 +#: ../src/extension/internal/filter/transparency.h:210 +msgid "Inverted" +msgstr "" + +#: ../src/extension/internal/filter/color.h:85 +msgid "Brightness filter" +msgstr "" + +#: ../src/extension/internal/filter/color.h:152 +msgid "Channel Painting" +msgstr "" + +#: ../src/extension/internal/filter/color.h:156 +#: ../src/extension/internal/filter/color.h:257 +#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/widgets/sp-color-icc-selector.cpp:362 +#: ../src/widgets/sp-color-icc-selector.cpp:367 +#: ../src/widgets/sp-color-scales.cpp:458 +#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:302 +#: ../share/extensions/color_randomize.inx.h:4 +msgid "Saturation" +msgstr "" + +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/transparency.h:135 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:199 +msgid "Alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:174 +msgid "Replace RGB by any color" +msgstr "" + +#: ../src/extension/internal/filter/color.h:254 +msgid "Color Shift" +msgstr "" + +#: ../src/extension/internal/filter/color.h:256 +msgid "Shift (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Rotate and desaturate hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:321 +msgid "Harsh light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:322 +msgid "Normal light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:323 +msgid "Duotone" +msgstr "" + +#: ../src/extension/internal/filter/color.h:324 +#: ../src/extension/internal/filter/color.h:1412 +msgid "Blend 1:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:331 +#: ../src/extension/internal/filter/color.h:1418 +msgid "Blend 2:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:350 +msgid "Blend image or object with a flood color" +msgstr "" + +#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:22 +msgid "Component Transfer" +msgstr "" + +#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:107 +msgid "Identity" +msgstr "" + +#: ../src/extension/internal/filter/color.h:428 +#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:108 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 +msgid "Table" +msgstr "" + +#: ../src/extension/internal/filter/color.h:429 +#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:109 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 +msgid "Discrete" +msgstr "" + +#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:110 +#: ../src/live_effects/lpe-powerstroke.cpp:188 +msgid "Linear" +msgstr "" + +#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:111 +msgid "Gamma" +msgstr "" + +#: ../src/extension/internal/filter/color.h:440 +msgid "Basic component transfer structure" +msgstr "" + +#: ../src/extension/internal/filter/color.h:509 +msgid "Duochrome" +msgstr "" + +#: ../src/extension/internal/filter/color.h:513 +msgid "Fluorescence level" +msgstr "" + +#: ../src/extension/internal/filter/color.h:514 +msgid "Swap:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:515 +msgid "No swap" +msgstr "" + +#: ../src/extension/internal/filter/color.h:516 +msgid "Color and alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:517 +msgid "Color only" +msgstr "" + +#: ../src/extension/internal/filter/color.h:518 +msgid "Alpha only" +msgstr "" + +#: ../src/extension/internal/filter/color.h:522 +msgid "Color 1" +msgstr "" + +#: ../src/extension/internal/filter/color.h:525 +msgid "Color 2" +msgstr "" + +#: ../src/extension/internal/filter/color.h:535 +msgid "Convert luminance values to a duochrome palette" +msgstr "" + +#: ../src/extension/internal/filter/color.h:634 +msgid "Extract Channel" +msgstr "" + +#: ../src/extension/internal/filter/color.h:640 +#: ../src/widgets/sp-color-icc-selector.cpp:369 +#: ../src/widgets/sp-color-icc-selector.cpp:374 +#: ../src/widgets/sp-color-scales.cpp:483 +#: ../src/widgets/sp-color-scales.cpp:484 +msgid "Cyan" +msgstr "" + +#: ../src/extension/internal/filter/color.h:641 +#: ../src/widgets/sp-color-icc-selector.cpp:370 +#: ../src/widgets/sp-color-icc-selector.cpp:375 +#: ../src/widgets/sp-color-scales.cpp:486 +#: ../src/widgets/sp-color-scales.cpp:487 +msgid "Magenta" +msgstr "" + +#: ../src/extension/internal/filter/color.h:642 +#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:376 +#: ../src/widgets/sp-color-scales.cpp:489 +#: ../src/widgets/sp-color-scales.cpp:490 +msgid "Yellow" +msgstr "" + +#: ../src/extension/internal/filter/color.h:644 +msgid "Background blend mode:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:649 +msgid "Channel to alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:657 +msgid "Extract color channel as a transparent image" +msgstr "" + +#: ../src/extension/internal/filter/color.h:740 +msgid "Fade to Black or White" +msgstr "" + +#: ../src/extension/internal/filter/color.h:743 +msgid "Fade to:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:744 +#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/widgets/sp-color-icc-selector.cpp:372 +#: ../src/widgets/sp-color-scales.cpp:492 +#: ../src/widgets/sp-color-scales.cpp:493 +msgid "Black" +msgstr "" + +#: ../src/extension/internal/filter/color.h:745 +#: ../src/ui/widget/selected-style.cpp:253 +msgid "White" +msgstr "" + +#: ../src/extension/internal/filter/color.h:754 +msgid "Fade to black or white" +msgstr "" + +#: ../src/extension/internal/filter/color.h:819 +msgid "Greyscale" +msgstr "" + +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/paint.h:83 +#: ../src/extension/internal/filter/paint.h:239 +msgid "Transparent" +msgstr "" + +#: ../src/extension/internal/filter/color.h:833 +msgid "Customize greyscale components" +msgstr "" + +#: ../src/extension/internal/filter/color.h:905 +#: ../src/ui/widget/selected-style.cpp:249 +msgid "Invert" +msgstr "" + +#: ../src/extension/internal/filter/color.h:907 +msgid "Invert channels:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:908 +msgid "No inversion" +msgstr "" + +#: ../src/extension/internal/filter/color.h:909 +msgid "Red and blue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:910 +msgid "Red and green" +msgstr "" + +#: ../src/extension/internal/filter/color.h:911 +msgid "Green and blue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:913 +msgid "Light transparency" +msgstr "" + +#: ../src/extension/internal/filter/color.h:914 +msgid "Invert hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:915 +msgid "Invert lightness" +msgstr "" + +#: ../src/extension/internal/filter/color.h:916 +msgid "Invert transparency" +msgstr "" + +#: ../src/extension/internal/filter/color.h:924 +msgid "Manage hue, lightness and transparency inversions" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1042 +msgid "Lights" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1043 +msgid "Shadows" +msgstr "" + +#. initialise your parameters here: +#: ../src/extension/internal/filter/color.h:1044 +#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:32 +#: ../src/live_effects/effect.cpp:97 ../src/live_effects/lpe-offset.cpp:31 +#: ../src/live_effects/lpe-parallel.cpp:50 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 +#: ../src/widgets/gradient-toolbar.cpp:1158 +msgid "Offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1052 +msgid "Modify lights and shadows separately" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1111 +msgid "Lightness-Contrast" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1122 +msgid "Modify lightness and contrast separately" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1190 +msgid "Nudge RGB" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1194 +msgid "Red offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1195 +#: ../src/extension/internal/filter/color.h:1198 +#: ../src/extension/internal/filter/color.h:1201 +#: ../src/extension/internal/filter/color.h:1307 +#: ../src/extension/internal/filter/color.h:1310 +#: ../src/extension/internal/filter/color.h:1313 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 +msgid "X" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1196 +#: ../src/extension/internal/filter/color.h:1199 +#: ../src/extension/internal/filter/color.h:1202 +#: ../src/extension/internal/filter/color.h:1308 +#: ../src/extension/internal/filter/color.h:1311 +#: ../src/extension/internal/filter/color.h:1314 +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1197 +msgid "Green offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1200 +msgid "Blue offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1215 +msgid "" +"Nudge RGB channels separately and blend them to different types of " +"backgrounds" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1302 +msgid "Nudge CMY" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1306 +msgid "Cyan offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1309 +msgid "Magenta offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1312 +msgid "Yellow offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1327 +msgid "" +"Nudge CMY channels separately and blend them to different types of " +"backgrounds" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1408 +msgid "Quadritone fantasy" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1410 +msgid "Hue distribution (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1411 +#: ../share/extensions/svgcalendar.inx.h:19 +msgid "Colors" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1432 +msgid "Replace hue by two colors" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1496 +msgid "Hue rotation (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1499 +msgid "Moonarize" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1508 +msgid "Classic photographic solarization effect" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1581 +msgid "Tritone" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1587 +msgid "Enhance hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1588 +msgid "Phosphorescence" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1589 +msgid "Colored nights" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1590 +msgid "Hue to background" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1592 +msgid "Global blend:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1598 +msgid "Glow" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1599 +msgid "Glow blend:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1604 +msgid "Local light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1605 +msgid "Global light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1608 +msgid "Hue distribution (°):" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1619 +msgid "" +"Create a custom tritone palette with additional glow, blend modes and hue " +"moving" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:67 +msgid "Felt Feather" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:71 +#: ../src/extension/internal/filter/morphology.h:175 +#: ../src/filter-enums.cpp:87 +msgid "Out" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:77 +#: ../src/extension/internal/filter/textures.h:75 +#: ../src/ui/widget/selected-style.cpp:131 +#: ../src/ui/widget/style-swatch.cpp:128 +msgid "Stroke:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:79 +#: ../src/extension/internal/filter/textures.h:76 +msgid "Wide" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:80 +#: ../src/extension/internal/filter/textures.h:78 +msgid "Narrow" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:81 +msgid "No fill" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:83 +msgid "Turbulence:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:84 +#: ../src/extension/internal/filter/distort.h:193 +#: ../src/extension/internal/filter/overlays.h:61 +#: ../src/extension/internal/filter/paint.h:692 +msgid "Fractal noise" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:85 +#: ../src/extension/internal/filter/distort.h:194 +#: ../src/extension/internal/filter/overlays.h:62 +#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:35 +#: ../src/filter-enums.cpp:142 +msgid "Turbulence" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:87 +#: ../src/extension/internal/filter/distort.h:196 +#: ../src/extension/internal/filter/paint.h:93 +#: ../src/extension/internal/filter/paint.h:695 +msgid "Horizontal frequency" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:88 +#: ../src/extension/internal/filter/distort.h:197 +#: ../src/extension/internal/filter/paint.h:94 +#: ../src/extension/internal/filter/paint.h:696 +msgid "Vertical frequency" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:89 +#: ../src/extension/internal/filter/distort.h:198 +#: ../src/extension/internal/filter/paint.h:95 +#: ../src/extension/internal/filter/paint.h:697 +msgid "Complexity" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:90 +#: ../src/extension/internal/filter/distort.h:199 +#: ../src/extension/internal/filter/paint.h:96 +#: ../src/extension/internal/filter/paint.h:698 +msgid "Variation" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:91 +#: ../src/extension/internal/filter/distort.h:200 +msgid "Intensity" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:99 +msgid "Blur and displace edges of shapes and pictures" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:190 +msgid "Roughen" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:192 +#: ../src/extension/internal/filter/overlays.h:60 +#: ../src/extension/internal/filter/paint.h:691 +#: ../src/extension/internal/filter/textures.h:64 +msgid "Turbulence type:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:208 +msgid "Small-scale roughening to edges and content" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:34 +msgid "Bundled" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:35 +msgid "Personal" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:47 +msgid "Null external module directory name. Filters will not be loaded." +msgstr "" + +#: ../src/extension/internal/filter/image.h:49 +msgid "Edge Detect" +msgstr "" + +#: ../src/extension/internal/filter/image.h:51 +msgid "Detect:" +msgstr "" + +#: ../src/extension/internal/filter/image.h:52 +#: ../src/ui/dialog/template-load-tab.cpp:105 +#: ../src/ui/dialog/template-load-tab.cpp:142 +msgid "All" +msgstr "" + +#: ../src/extension/internal/filter/image.h:53 +msgid "Vertical lines" +msgstr "" + +#: ../src/extension/internal/filter/image.h:54 +msgid "Horizontal lines" +msgstr "" + +#: ../src/extension/internal/filter/image.h:57 +msgid "Invert colors" +msgstr "" + +#: ../src/extension/internal/filter/image.h:65 +msgid "Detect color edges in object" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:58 +msgid "Cross-smooth" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:61 +#: ../src/extension/internal/filter/shadows.h:66 +msgid "Inner" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:62 +#: ../src/extension/internal/filter/shadows.h:65 +msgid "Outer" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:63 +msgid "Open" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:65 +#: ../src/libgdl/gdl-dock.c:191 ../src/libgdl/gdl-dock-placeholder.c:167 +#: ../src/widgets/rect-toolbar.cpp:314 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/interp_att_g.inx.h:10 +msgid "Width" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:69 +#: ../src/extension/internal/filter/morphology.h:190 +msgid "Antialiasing" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:70 +msgid "Blur content" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:79 +msgid "Smooth edges and angles of shapes" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:166 +msgid "Outline" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:170 +msgid "Fill image" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:171 +msgid "Hide image" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:172 +msgid "Composite type:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:173 +#: ../src/filter-enums.cpp:85 +msgid "Over" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:177 +#: ../src/filter-enums.cpp:89 +msgid "XOR" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:179 +#: ../src/ui/dialog/layer-properties.cpp:185 +msgid "Position:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:180 +msgid "Inside" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:181 +msgid "Outside" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:182 +msgid "Overlayed" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:184 +msgid "Width 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:185 +msgid "Dilatation 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:186 +msgid "Erosion 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:187 +msgid "Width 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:188 +msgid "Dilatation 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:189 +msgid "Erosion 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:191 +msgid "Smooth" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:195 +msgid "Fill opacity:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:196 +msgid "Stroke opacity:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:206 +msgid "Adds a colorizable outline" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:56 +msgid "Noise Fill" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:59 +#: ../src/extension/internal/filter/paint.h:690 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 +#: ../src/ui/dialog/tracedialog.cpp:747 +#: ../share/extensions/color_custom.inx.h:2 +#: ../share/extensions/color_HSL_adjust.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:2 +#: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 +#: ../share/extensions/dxf_outlines.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:29 +#: ../share/extensions/gcodetools_engraving.inx.h:7 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:22 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/generate_voronoi.inx.h:2 +#: ../share/extensions/gimp_xcf.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:2 +#: ../share/extensions/jessyInk_uninstall.inx.h:2 +#: ../share/extensions/lorem_ipsum.inx.h:2 +#: ../share/extensions/pathalongpath.inx.h:2 +#: ../share/extensions/pathscatter.inx.h:2 +#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 +#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 +#: ../share/extensions/web-set-att.inx.h:2 +#: ../share/extensions/webslicer_create_group.inx.h:2 +#: ../share/extensions/webslicer_export.inx.h:2 +#: ../share/extensions/web-transmit-att.inx.h:2 +msgid "Options" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:64 +msgid "Horizontal frequency:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:65 +msgid "Vertical frequency:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:66 +#: ../src/extension/internal/filter/textures.h:69 +msgid "Complexity:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:67 +#: ../src/extension/internal/filter/textures.h:70 +msgid "Variation:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:68 +msgid "Dilatation:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:69 +msgid "Erosion:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:72 +msgid "Noise color" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:83 +msgid "Basic noise fill and transparency texture" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:71 +msgid "Chromolitho" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:75 +#: ../share/extensions/jessyInk_keyBindings.inx.h:16 +msgid "Drawing mode" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:76 +msgid "Drawing blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:84 +msgid "Dented" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:88 +#: ../src/extension/internal/filter/paint.h:699 +msgid "Noise reduction" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:91 +msgid "Grain" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:92 +msgid "Grain mode" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:97 +#: ../src/extension/internal/filter/transparency.h:207 +#: ../src/extension/internal/filter/transparency.h:281 +msgid "Expansion" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:100 +msgid "Grain blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:116 +msgid "Chromo effect with customizable edge drawing and graininess" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:232 +msgid "Cross Engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:234 +#: ../src/extension/internal/filter/paint.h:337 +msgid "Clean-up" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:238 +#: ../share/extensions/measure.inx.h:11 +msgid "Length" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:247 +msgid "Convert image to an engraving made of vertical and horizontal lines" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:331 +#: ../src/ui/dialog/align-and-distribute.cpp:1004 +#: ../src/widgets/desktop-widget.cpp:1993 +msgid "Drawing" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:335 +#: ../src/extension/internal/filter/paint.h:496 +#: ../src/extension/internal/filter/paint.h:590 +#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2207 +msgid "Simplify" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:338 +#: ../src/extension/internal/filter/paint.h:709 +msgid "Erase" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:344 +msgid "Melt" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:350 +#: ../src/extension/internal/filter/paint.h:712 +msgid "Fill color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:351 +#: ../src/extension/internal/filter/paint.h:714 +msgid "Image on fill" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:354 +msgid "Stroke color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:355 +msgid "Image on stroke" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:366 +msgid "Convert images to duochrome drawings" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:494 +msgid "Electrize" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:497 +#: ../src/extension/internal/filter/paint.h:852 +msgid "Effect type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:501 +#: ../src/extension/internal/filter/paint.h:860 +#: ../src/extension/internal/filter/paint.h:975 +msgid "Levels" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:510 +msgid "Electro solarization effects" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:584 +msgid "Neon Draw" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:586 +msgid "Line type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:587 +msgid "Smoothed" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:588 +msgid "Contrasted" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:591 +msgid "Line width" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:593 +#: ../src/extension/internal/filter/paint.h:861 +#: ../src/ui/widget/filter-effect-chooser.cpp:25 +msgid "Blend mode:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:605 +msgid "Posterize and draw smooth lines around color shapes" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:687 +msgid "Point Engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:700 +msgid "Noise blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:708 +msgid "Grain lightness" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:716 +msgid "Points color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:718 +msgid "Image on points" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:728 +msgid "Convert image to a transparent point engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:850 +msgid "Poster Paint" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:856 +msgid "Transfer type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:857 +msgid "Poster" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:858 +msgid "Painting" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:868 +msgid "Simplify (primary)" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:869 +msgid "Simplify (secondary)" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:870 +msgid "Pre-saturation" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:871 +msgid "Post-saturation" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:872 +msgid "Simulate antialiasing" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:880 +msgid "Poster and painting effects" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:973 +msgid "Posterize Basic" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:984 +msgid "Simple posterizing effect" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:48 +msgid "Snow crest" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:50 +msgid "Drift Size" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:58 +msgid "Snow has fallen on object" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:57 +msgid "Drop Shadow" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:61 +msgid "Blur radius (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:62 +msgid "Horizontal offset (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:63 +msgid "Vertical offset (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:64 +msgid "Shadow type:" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:67 +msgid "Outer cutout" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:68 +msgid "Inner cutout" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:69 +msgid "Shadow only" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:72 +msgid "Blur color" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:74 +msgid "Use object's color" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:84 +msgid "Colorizable Drop shadow" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:62 +msgid "Ink Blot" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:68 +msgid "Frequency:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:71 +msgid "Horizontal inlay:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:72 +msgid "Vertical inlay:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:73 +msgid "Displacement:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:79 +msgid "Overlapping" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:80 +msgid "External" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:81 +#: ../share/extensions/markers_strokepaint.inx.h:8 +msgid "Custom" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:83 +msgid "Custom stroke options" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:84 +msgid "k1:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:85 +msgid "k2:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:86 +msgid "k3:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:94 +msgid "Inkblot on tissue or rough paper" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:53 +#: ../src/filter-enums.cpp:20 +msgid "Blend" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 +msgid "Source:" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:56 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1605 +msgid "Background" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:59 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 +#: ../src/widgets/pencil-toolbar.cpp:135 ../src/widgets/spray-toolbar.cpp:186 +#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 +#: ../share/extensions/triangle.inx.h:8 +msgid "Mode:" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:73 +msgid "Blend objects with background images or with themselves" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:130 +msgid "Channel Transparency" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:144 +msgid "Replace RGB with transparency" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:205 +msgid "Light Eraser" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:209 +#: ../src/extension/internal/filter/transparency.h:283 +msgid "Global opacity" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:218 +msgid "Make the lightest parts of the object progressively transparent" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:291 +msgid "Set opacity and strength of opacity boundaries" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:341 +msgid "Silhouette" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:344 +msgid "Cutout" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:353 +msgid "Repaint anything visible monochrome" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:184 +#, c-format +msgid "%s bitmap image import" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +msgid "Image Import Type:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +msgid "" +"Embed results in stand-alone, larger SVG files. Link references a file " +"outside this SVG document and all files must be moved together." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:192 +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +msgid "Embed" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:193 ../src/sp-anchor.cpp:119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +msgid "Link" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +msgid "Image DPI:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +msgid "" +"Take information from file or use default bitmap import resolution as " +"defined in the preferences." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:197 +msgid "From file" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:198 +msgid "Default import resolution" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +msgid "Image Rendering Mode:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +msgid "" +"When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " +"not work in all browsers.)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1452 +msgid "None (auto)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1452 +msgid "Smooth (optimizeQuality)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1452 +msgid "Blocky (optimizeSpeed)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +msgid "Hide the dialog next time and always apply the same actions." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +msgid "Don't ask again" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:272 +msgid "GIMP Gradients" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:277 +msgid "GIMP Gradient (*.ggr)" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:278 +msgid "Gradients used in GIMP" +msgstr "" + +#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:117 +msgid "Grid" +msgstr "" + +#: ../src/extension/internal/grid.cpp:214 +msgid "Line Width:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:215 +msgid "Horizontal Spacing:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:216 +msgid "Vertical Spacing:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:217 +msgid "Horizontal Offset:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:218 +msgid "Vertical Offset:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:222 +#: ../share/extensions/draw_from_triangle.inx.h:58 +#: ../share/extensions/eqtexsvg.inx.h:4 +#: ../share/extensions/foldablebox.inx.h:9 +#: ../share/extensions/funcplot.inx.h:38 +#: ../share/extensions/grid_cartesian.inx.h:23 +#: ../share/extensions/grid_isometric.inx.h:11 +#: ../share/extensions/grid_polar.inx.h:22 +#: ../share/extensions/guides_creator.inx.h:19 +#: ../share/extensions/hershey.inx.h:52 +#: ../share/extensions/layout_nup.inx.h:35 +#: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/param_curves.inx.h:30 +#: ../share/extensions/perfectboundcover.inx.h:19 +#: ../share/extensions/polyhedron_3d.inx.h:56 +#: ../share/extensions/printing_marks.inx.h:20 +#: ../share/extensions/render_alphabetsoup.inx.h:5 +#: ../share/extensions/render_barcode_datamatrix.inx.h:5 +#: ../share/extensions/render_barcode.inx.h:5 +#: ../share/extensions/render_barcode_qrcode.inx.h:18 +#: ../share/extensions/render_gear_rack.inx.h:5 +#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 +#: ../share/extensions/spirograph.inx.h:10 +#: ../share/extensions/svgcalendar.inx.h:38 +#: ../share/extensions/triangle.inx.h:14 +#: ../share/extensions/wireframe_sphere.inx.h:8 +msgid "Render" +msgstr "" + +#: ../src/extension/internal/grid.cpp:223 +#: ../src/ui/dialog/document-properties.cpp:152 +#: ../src/ui/dialog/inkscape-preferences.cpp:776 +#: ../src/widgets/toolbox.cpp:1825 +msgid "Grids" +msgstr "" + +#: ../src/extension/internal/grid.cpp:226 +msgid "Draw a path which is a grid" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:968 +msgid "JavaFX Output" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:973 +msgid "JavaFX (*.fx)" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:974 +msgid "JavaFX Raytracer File" +msgstr "" + +#: ../src/extension/internal/latex-pstricks.cpp:334 +msgid "LaTeX Print" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:95 +msgid "LaTeX Output" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:100 +msgid "LaTeX With PSTricks macros (*.tex)" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:101 +msgid "LaTeX PSTricks File" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2142 +msgid "OpenDocument Drawing Output" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2147 +msgid "OpenDocument drawing (*.odg)" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2148 +msgid "OpenDocument drawing file" +msgstr "" + +#. TRANSLATORS: The following are document crop settings for PDF import +#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ +#: ../src/extension/internal/pdf-input-cairo.cpp:56 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 +msgid "media box" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:57 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 +msgid "crop box" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:58 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 +msgid "trim box" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:59 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 +msgid "bleed box" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:60 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 +msgid "art box" +msgstr "" + +#. Crop settings +#: ../src/extension/internal/pdf-input-cairo.cpp:98 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 +msgid "Clip to:" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:109 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 +msgid "Page settings" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:110 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 +msgid "Precision of approximating gradient meshes:" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:111 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 +msgid "" +"Note: setting the precision too high may result in a large SVG file " +"and slow performance." +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:121 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:135 +msgid "rough" +msgstr "" + +#. Text options +#: ../src/extension/internal/pdf-input-cairo.cpp:125 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:139 +msgid "Text handling:" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:127 +#: ../src/extension/internal/pdf-input-cairo.cpp:128 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:141 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 +msgid "Import text as text" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:129 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:143 +msgid "Replace PDF fonts by closest-named installed fonts" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:132 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 +msgid "Embed images" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:134 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:148 +msgid "Import settings" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:242 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:256 +msgid "PDF Import Settings" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:374 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:401 +msgctxt "PDF input precision" +msgid "rough" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:375 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:402 +msgctxt "PDF input precision" +msgid "medium" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:376 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:403 +msgctxt "PDF input precision" +msgid "fine" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:377 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:404 +msgctxt "PDF input precision" +msgid "very fine" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:655 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:768 +msgid "PDF Input" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:660 +msgid "Adobe PDF via poppler-cairo (*.pdf)" +msgstr "" + +#: ../src/extension/internal/pdf-input-cairo.cpp:661 +msgid "PDF Document" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:773 +msgid "Adobe PDF (*.pdf)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:774 +msgid "Adobe Portable Document Format" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:781 +msgid "AI Input" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:786 +msgid "Adobe Illustrator 9.0 and above (*.ai)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:787 +msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:715 +msgid "PovRay Output" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:720 +msgid "PovRay (*.pov) (paths and shapes only)" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:721 +msgid "PovRay Raytracer File" +msgstr "" + +#: ../src/extension/internal/svg.cpp:89 +msgid "SVG Input" +msgstr "" + +#: ../src/extension/internal/svg.cpp:94 +msgid "Scalable Vector Graphic (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:95 +msgid "Inkscape native file format and W3C standard" +msgstr "" + +#: ../src/extension/internal/svg.cpp:103 +msgid "SVG Output Inkscape" +msgstr "" + +#: ../src/extension/internal/svg.cpp:108 +msgid "Inkscape SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:109 +msgid "SVG format with Inkscape extensions" +msgstr "" + +#: ../src/extension/internal/svg.cpp:117 +msgid "SVG Output" +msgstr "" + +#: ../src/extension/internal/svg.cpp:122 +msgid "Plain SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:123 +msgid "Scalable Vector Graphics format as defined by the W3C" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:46 +msgid "SVGZ Input" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 +msgid "Compressed Inkscape SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:53 +msgid "SVG file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 +msgid "SVGZ Output" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:67 +msgid "Inkscape's native file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:80 +msgid "Compressed plain SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:81 +msgid "Scalable Vector Graphics format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:274 +msgid "VSD Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:279 +msgid "Microsoft Visio Diagram (*.vsd)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:280 +msgid "File format used by Microsoft Visio 6 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:287 +msgid "VDX Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:292 +msgid "Microsoft Visio XML Diagram (*.vdx)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:293 +msgid "File format used by Microsoft Visio 2010 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:300 +msgid "VSDM Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:305 +msgid "Microsoft Visio 2013 drawing (*.vsdm)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:306 +#: ../src/extension/internal/vsd-input.cpp:319 +msgid "File format used by Microsoft Visio 2013 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:313 +msgid "VSDX Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:318 +msgid "Microsoft Visio 2013 drawing (*.vsdx)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3112 +msgid "WMF Input" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3117 +msgid "Windows Metafiles (*.wmf)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3118 +msgid "Windows Metafiles" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3126 +msgid "WMF Output" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3136 +msgid "Map all fill patterns to standard WMF hatches" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3140 +#: ../share/extensions/wmf_input.inx.h:2 +#: ../share/extensions/wmf_output.inx.h:2 +msgid "Windows Metafile (*.wmf)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3141 +msgid "Windows Metafile" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:129 +msgid "WPG Input" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:134 +msgid "WordPerfect Graphics (*.wpg)" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:135 +msgid "Vector graphics format used by Corel WordPerfect" +msgstr "" + +#: ../src/extension/prefdialog.cpp:269 +msgid "Live preview" +msgstr "" + +#: ../src/extension/prefdialog.cpp:269 +msgid "Is the effect previewed live on canvas?" +msgstr "" + +#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +msgid "Format autodetect failed. The file is being opened as SVG." +msgstr "" + +#: ../src/file.cpp:181 +msgid "default.svg" +msgstr "" + +#: ../src/file.cpp:320 +msgid "Broken links have been changed to point to existing files." +msgstr "" + +#: ../src/file.cpp:331 ../src/file.cpp:1247 +#, c-format +msgid "Failed to load the requested file %s" +msgstr "" + +#: ../src/file.cpp:357 +msgid "Document not saved yet. Cannot revert." +msgstr "" + +#: ../src/file.cpp:363 +msgid "Changes will be lost! Are you sure you want to reload document %1?" +msgstr "" + +#: ../src/file.cpp:389 +msgid "Document reverted." +msgstr "" + +#: ../src/file.cpp:391 +msgid "Document not reverted." +msgstr "" + +#: ../src/file.cpp:541 +msgid "Select file to open" +msgstr "" + +#: ../src/file.cpp:623 +msgid "Clean up document" +msgstr "" + +#: ../src/file.cpp:630 +#, c-format +msgid "Removed %i unused definition in <defs>." +msgid_plural "Removed %i unused definitions in <defs>." +msgstr[0] "" +msgstr[1] "" + +#: ../src/file.cpp:635 +msgid "No unused definitions in <defs>." +msgstr "" + +#: ../src/file.cpp:667 +#, c-format +msgid "" +"No Inkscape extension found to save document (%s). This may have been " +"caused by an unknown filename extension." +msgstr "" + +#: ../src/file.cpp:668 ../src/file.cpp:676 ../src/file.cpp:684 +#: ../src/file.cpp:690 ../src/file.cpp:695 +msgid "Document not saved." +msgstr "" + +#: ../src/file.cpp:675 +#, c-format +msgid "" +"File %s is write protected. Please remove write protection and try again." +msgstr "" + +#: ../src/file.cpp:683 +#, c-format +msgid "File %s could not be saved." +msgstr "" + +#: ../src/file.cpp:713 ../src/file.cpp:715 +msgid "Document saved." +msgstr "" + +#. We are saving for the first time; create a unique default filename +#: ../src/file.cpp:858 +msgid "drawing" +msgstr "" + +#: ../src/file.cpp:863 +msgid "drawing-%1" +msgstr "" + +#: ../src/file.cpp:880 +msgid "Select file to save a copy to" +msgstr "" + +#: ../src/file.cpp:882 +msgid "Select file to save to" +msgstr "" + +#: ../src/file.cpp:987 ../src/file.cpp:989 +msgid "No changes need to be saved." +msgstr "" + +#: ../src/file.cpp:1008 +msgid "Saving document..." +msgstr "" + +#: ../src/file.cpp:1244 ../src/ui/dialog/inkscape-preferences.cpp:1439 +#: ../src/ui/dialog/ocaldialogs.cpp:1244 +msgid "Import" +msgstr "" + +#: ../src/file.cpp:1294 +msgid "Select file to import" +msgstr "" + +#: ../src/file.cpp:1410 +#, c-format +msgid "drawing%s" +msgstr "" + +#: ../src/file.cpp:1432 +msgid "Select file to export to" +msgstr "" + +#: ../src/file.cpp:1685 +msgid "Import Clip Art" +msgstr "" + +#: ../src/filter-enums.cpp:21 +msgid "Color Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:23 +msgid "Composite" +msgstr "" + +#: ../src/filter-enums.cpp:24 +msgid "Convolve Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:25 +msgid "Diffuse Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:26 +msgid "Displacement Map" +msgstr "" + +#: ../src/filter-enums.cpp:27 +msgid "Flood" +msgstr "" + +#: ../src/filter-enums.cpp:30 ../share/extensions/text_merge.inx.h:1 +msgid "Merge" +msgstr "" + +#: ../src/filter-enums.cpp:33 +msgid "Specular Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:34 +msgid "Tile" +msgstr "" + +#: ../src/filter-enums.cpp:40 +msgid "Source Graphic" +msgstr "" + +#: ../src/filter-enums.cpp:41 +msgid "Source Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:42 +msgid "Background Image" +msgstr "" + +#: ../src/filter-enums.cpp:43 +msgid "Background Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:44 +msgid "Fill Paint" +msgstr "" + +#: ../src/filter-enums.cpp:45 +msgid "Stroke Paint" +msgstr "" + +#. New in Compositing and Blending Level 1 +#: ../src/filter-enums.cpp:58 +msgid "Overlay" +msgstr "" + +#: ../src/filter-enums.cpp:59 +msgid "Color Dodge" +msgstr "" + +#: ../src/filter-enums.cpp:60 +msgid "Color Burn" +msgstr "" + +#: ../src/filter-enums.cpp:61 +msgid "Hard Light" +msgstr "" + +#: ../src/filter-enums.cpp:62 +msgid "Soft Light" +msgstr "" + +#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 +msgid "Difference" +msgstr "" + +#: ../src/filter-enums.cpp:64 ../src/live_effects/lpe-boolops.cpp:28 +#: ../src/splivarot.cpp:100 +msgid "Exclusion" +msgstr "" + +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 +#: ../src/widgets/sp-color-icc-selector.cpp:361 +#: ../src/widgets/sp-color-icc-selector.cpp:365 +#: ../src/widgets/sp-color-scales.cpp:455 +#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:286 +#: ../share/extensions/color_randomize.inx.h:3 +msgid "Hue" +msgstr "" + +#: ../src/filter-enums.cpp:68 +msgid "Luminosity" +msgstr "" + +#: ../src/filter-enums.cpp:75 +msgid "Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:76 +msgid "Saturate" +msgstr "" + +#: ../src/filter-enums.cpp:77 +msgid "Hue Rotate" +msgstr "" + +#: ../src/filter-enums.cpp:78 +msgid "Luminance to Alpha" +msgstr "" + +#. File +#: ../src/filter-enums.cpp:84 ../src/verbs.cpp:2355 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:7 +msgid "Default" +msgstr "" + +#. New CSS +#: ../src/filter-enums.cpp:92 +msgid "Clear" +msgstr "" + +#: ../src/filter-enums.cpp:93 +msgid "Copy" +msgstr "" + +#: ../src/filter-enums.cpp:94 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1628 +msgid "Destination" +msgstr "" + +#: ../src/filter-enums.cpp:95 +msgid "Destination Over" +msgstr "" + +#: ../src/filter-enums.cpp:96 +msgid "Destination In" +msgstr "" + +#: ../src/filter-enums.cpp:97 +msgid "Destination Out" +msgstr "" + +#: ../src/filter-enums.cpp:98 +msgid "Destination Atop" +msgstr "" + +#: ../src/filter-enums.cpp:99 +msgid "Lighter" +msgstr "" + +#: ../src/filter-enums.cpp:101 +msgid "Arithmetic" +msgstr "" + +#: ../src/filter-enums.cpp:117 ../src/selection-chemistry.cpp:535 +msgid "Duplicate" +msgstr "" + +#: ../src/filter-enums.cpp:118 +msgid "Wrap" +msgstr "" + +#: ../src/filter-enums.cpp:134 +msgid "Erode" +msgstr "" + +#: ../src/filter-enums.cpp:135 +msgid "Dilate" +msgstr "" + +#: ../src/filter-enums.cpp:141 +msgid "Fractal Noise" +msgstr "" + +#: ../src/filter-enums.cpp:148 +msgid "Distant Light" +msgstr "" + +#: ../src/filter-enums.cpp:149 +msgid "Point Light" +msgstr "" + +#: ../src/filter-enums.cpp:150 +msgid "Spot Light" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1568 +msgid "Invert gradient colors" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1594 +msgid "Reverse gradient" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1608 ../src/widgets/gradient-selector.cpp:245 +msgid "Delete swatch" +msgstr "" + +#: ../src/gradient-drag.cpp:96 ../src/ui/tools/gradient-tool.cpp:100 +msgid "Linear gradient start" +msgstr "" + +#. POINT_LG_BEGIN +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:101 +msgid "Linear gradient end" +msgstr "" + +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:102 +msgid "Linear gradient mid stop" +msgstr "" + +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:103 +msgid "Radial gradient center" +msgstr "" + +#: ../src/gradient-drag.cpp:100 ../src/gradient-drag.cpp:101 +#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +msgid "Radial gradient radius" +msgstr "" + +#: ../src/gradient-drag.cpp:102 ../src/ui/tools/gradient-tool.cpp:106 +msgid "Radial gradient focus" +msgstr "" + +#. POINT_RG_FOCUS +#: ../src/gradient-drag.cpp:103 ../src/gradient-drag.cpp:104 +#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +msgid "Radial gradient mid stop" +msgstr "" + +#: ../src/gradient-drag.cpp:105 ../src/ui/tools/mesh-tool.cpp:103 +msgid "Mesh gradient corner" +msgstr "" + +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:104 +msgid "Mesh gradient handle" +msgstr "" + +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:105 +msgid "Mesh gradient tensor" +msgstr "" + +#: ../src/gradient-drag.cpp:566 +msgid "Added patch row or column" +msgstr "" + +#: ../src/gradient-drag.cpp:794 +msgid "Merge gradient handles" +msgstr "" + +#: ../src/gradient-drag.cpp:1103 +msgid "Move gradient handle" +msgstr "" + +#: ../src/gradient-drag.cpp:1162 ../src/widgets/gradient-vector.cpp:847 +msgid "Delete gradient stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1425 +#, c-format +msgid "" +"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" +"+Alt to delete stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1429 ../src/gradient-drag.cpp:1436 +msgid " (stroke)" +msgstr "" + +#: ../src/gradient-drag.cpp:1433 +#, c-format +msgid "" +"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " +"preserve angle, with Ctrl+Shift to scale around center" +msgstr "" + +#: ../src/gradient-drag.cpp:1441 +msgid "" +"Radial gradient center and focus; drag with Shift to " +"separate focus" +msgstr "" + +#: ../src/gradient-drag.cpp:1444 +#, c-format +msgid "" +"Gradient point shared by %d gradient; drag with Shift to " +"separate" +msgid_plural "" +"Gradient point shared by %d gradients; drag with Shift to " +"separate" +msgstr[0] "" +msgstr[1] "" + +#: ../src/gradient-drag.cpp:2372 +msgid "Move gradient handle(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:2408 +msgid "Move gradient mid stop(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:2697 +msgid "Delete gradient stop(s)" +msgstr "" + +#: ../src/inkscape.cpp:341 +msgid "Autosave failed! Cannot create directory %1." +msgstr "" + +#: ../src/inkscape.cpp:350 +msgid "Autosave failed! Cannot open directory %1." +msgstr "" + +#: ../src/inkscape.cpp:366 +msgid "Autosaving documents..." +msgstr "" + +#: ../src/inkscape.cpp:439 +msgid "Autosave failed! Could not find inkscape extension to save document." +msgstr "" + +#: ../src/inkscape.cpp:442 ../src/inkscape.cpp:449 +#, c-format +msgid "Autosave failed! File %s could not be saved." +msgstr "" + +#: ../src/inkscape.cpp:464 +msgid "Autosave complete." +msgstr "" + +#: ../src/inkscape.cpp:712 +msgid "Untitled document" +msgstr "" + +#. Show nice dialog box +#: ../src/inkscape.cpp:744 +msgid "Inkscape encountered an internal error and will close now.\n" +msgstr "" + +#: ../src/inkscape.cpp:745 +msgid "" +"Automatic backups of unsaved documents were done to the following " +"locations:\n" +msgstr "" + +#: ../src/inkscape.cpp:746 +msgid "Automatic backup of the following documents failed:\n" +msgstr "" + +#: ../src/interface.cpp:751 +msgctxt "Interface setup" +msgid "Default" +msgstr "" + +#: ../src/interface.cpp:751 +msgid "Default interface setup" +msgstr "" + +#: ../src/interface.cpp:752 +msgctxt "Interface setup" +msgid "Custom" +msgstr "" + +#: ../src/interface.cpp:752 +msgid "Setup for custom task" +msgstr "" + +#: ../src/interface.cpp:753 +msgctxt "Interface setup" +msgid "Wide" +msgstr "" + +#: ../src/interface.cpp:753 +msgid "Setup for widescreen work" +msgstr "" + +#: ../src/interface.cpp:865 +#, c-format +msgid "Verb \"%s\" Unknown" +msgstr "" + +#: ../src/interface.cpp:904 +msgid "Open _Recent" +msgstr "" + +#: ../src/interface.cpp:1012 ../src/interface.cpp:1098 +#: ../src/interface.cpp:1201 ../src/ui/widget/selected-style.cpp:528 +msgid "Drop color" +msgstr "" + +#: ../src/interface.cpp:1051 ../src/interface.cpp:1161 +msgid "Drop color on gradient" +msgstr "" + +#: ../src/interface.cpp:1214 +msgid "Could not parse SVG data" +msgstr "" + +#: ../src/interface.cpp:1253 +msgid "Drop SVG" +msgstr "" + +#: ../src/interface.cpp:1266 +msgid "Drop Symbol" +msgstr "" + +#: ../src/interface.cpp:1297 +msgid "Drop bitmap image" +msgstr "" + +#: ../src/interface.cpp:1389 +#, c-format +msgid "" +"A file named \"%s\" already exists. Do " +"you want to replace it?\n" +"\n" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" + +#: ../src/interface.cpp:1395 ../src/ui/dialog/export.cpp:1298 +#: ../src/widgets/desktop-widget.cpp:1122 +#: ../src/widgets/desktop-widget.cpp:1184 +msgid "_Cancel" +msgstr "" + +#: ../src/interface.cpp:1396 ../share/extensions/web-set-att.inx.h:21 +#: ../share/extensions/web-transmit-att.inx.h:19 +msgid "Replace" +msgstr "" + +#: ../src/interface.cpp:1467 +msgid "Go to parent" +msgstr "" + +#. TRANSLATORS: #%1 is the id of the group e.g. , not a number. +#: ../src/interface.cpp:1508 +msgid "Enter group #%1" +msgstr "" + +#. Item dialog +#: ../src/interface.cpp:1644 ../src/verbs.cpp:2853 +msgid "_Object Properties..." +msgstr "" + +#: ../src/interface.cpp:1653 +msgid "_Select This" +msgstr "" + +#: ../src/interface.cpp:1664 +msgid "Select Same" +msgstr "" + +#. Select same fill and stroke +#: ../src/interface.cpp:1674 +msgid "Fill and Stroke" +msgstr "" + +#. Select same fill color +#: ../src/interface.cpp:1681 +msgid "Fill Color" +msgstr "" + +#. Select same stroke color +#: ../src/interface.cpp:1688 +msgid "Stroke Color" +msgstr "" + +#. Select same stroke style +#: ../src/interface.cpp:1695 +msgid "Stroke Style" +msgstr "" + +#. Select same stroke style +#: ../src/interface.cpp:1702 +msgid "Object type" +msgstr "" + +#. Move to layer +#: ../src/interface.cpp:1709 +msgid "_Move to layer ..." +msgstr "" + +#. Create link +#: ../src/interface.cpp:1719 +msgid "Create _Link" +msgstr "" + +#. Set mask +#: ../src/interface.cpp:1742 +msgid "Set Mask" +msgstr "" + +#. Release mask +#: ../src/interface.cpp:1753 +msgid "Release Mask" +msgstr "" + +#. Set Clip +#: ../src/interface.cpp:1764 +msgid "Set Cl_ip" +msgstr "" + +#. Release Clip +#: ../src/interface.cpp:1775 +msgid "Release C_lip" +msgstr "" + +#. Group +#: ../src/interface.cpp:1786 ../src/verbs.cpp:2490 +msgid "_Group" +msgstr "" + +#: ../src/interface.cpp:1857 +msgid "Create link" +msgstr "" + +#. Ungroup +#: ../src/interface.cpp:1888 ../src/verbs.cpp:2492 +msgid "_Ungroup" +msgstr "" + +#. Link dialog +#: ../src/interface.cpp:1913 +msgid "Link _Properties..." +msgstr "" + +#. Select item +#: ../src/interface.cpp:1919 +msgid "_Follow Link" +msgstr "" + +#. Reset transformations +#: ../src/interface.cpp:1925 +msgid "_Remove Link" +msgstr "" + +#: ../src/interface.cpp:1956 +msgid "Remove link" +msgstr "" + +#. Image properties +#: ../src/interface.cpp:1967 +msgid "Image _Properties..." +msgstr "" + +#. Edit externally +#: ../src/interface.cpp:1973 +msgid "Edit Externally..." +msgstr "" + +#. Trace Bitmap +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/interface.cpp:1982 ../src/verbs.cpp:2553 +msgid "_Trace Bitmap..." +msgstr "" + +#. Trace Pixel Art +#: ../src/interface.cpp:1991 +msgid "Trace Pixel Art" +msgstr "" + +#: ../src/interface.cpp:2001 +msgctxt "Context menu" +msgid "Embed Image" +msgstr "" + +#: ../src/interface.cpp:2012 +msgctxt "Context menu" +msgid "Extract Image..." +msgstr "" + +#. Item dialog +#. Fill and Stroke dialog +#: ../src/interface.cpp:2157 ../src/interface.cpp:2177 ../src/verbs.cpp:2816 +msgid "_Fill and Stroke..." +msgstr "" + +#. Edit Text dialog +#: ../src/interface.cpp:2183 ../src/verbs.cpp:2835 +msgid "_Text and Font..." +msgstr "" + +#. Spellcheck dialog +#: ../src/interface.cpp:2189 ../src/verbs.cpp:2843 +msgid "Check Spellin_g..." +msgstr "" + +#: ../src/knot.cpp:443 +msgid "Node or handle drag canceled." +msgstr "" + +#: ../src/knotholder.cpp:160 +msgid "Change handle" +msgstr "" + +#: ../src/knotholder.cpp:239 +msgid "Move handle" +msgstr "" + +#. TRANSLATORS: This refers to the pattern that's inside the object +#: ../src/knotholder.cpp:260 +msgid "Move the pattern fill inside the object" +msgstr "" + +#: ../src/knotholder.cpp:264 +msgid "Scale the pattern fill; uniformly if with Ctrl" +msgstr "" + +#: ../src/knotholder.cpp:268 +msgid "Rotate the pattern fill; with Ctrl to snap angle" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:105 +msgid "Master" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:106 +msgid "GdlDockMaster object which the dockbar widget is attached to" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:113 +msgid "Dockbar style" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:114 +msgid "Dockbar style to show items on it" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:674 +msgid "Floating" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:177 +msgid "Whether the dock is floating in its own window" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:184 ../src/libgdl/gdl-dock-master.c:141 +msgid "Default title" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:185 +msgid "Default title for the newly created floating docks" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:192 +msgid "Width for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:200 +msgid "Height for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:207 +msgid "Float X" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:208 +msgid "X coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:215 +msgid "Float Y" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:216 +msgid "Y coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:478 +#, c-format +msgid "Dock #%d" +msgstr "" + +#. Name +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 +#: ../src/widgets/text-toolbar.cpp:1408 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "Orientation" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:299 +msgid "Orientation of the docking item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:314 +msgid "Resizable" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:315 +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:322 +msgid "Item behavior" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:323 +msgid "" +"General behavior for the dock item (i.e. whether it can float, if it's " +"locked, etc.)" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 +msgid "Locked" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:332 +msgid "" +"If set, the dock item cannot be dragged around and it doesn't show a grip" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:340 +msgid "Preferred width" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:341 +msgid "Preferred width for the dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:347 +msgid "Preferred height" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:348 +msgid "Preferred height for the dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:716 +#, c-format +msgid "" +"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " +"some other compound dock object." +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:723 +#, c-format +msgid "" +"Attempting to add a widget with type %s to a %s, but it can only contain one " +"widget at a time; it already contains a widget of type %s" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:1471 ../src/libgdl/gdl-dock-item.c:1521 +#, c-format +msgid "Unsupported docking strategy %s in dock object of type %s" +msgstr "" + +#. UnLock menuitem +#: ../src/libgdl/gdl-dock-item.c:1629 +msgid "UnLock" +msgstr "" + +#. Hide menuitem. +#: ../src/libgdl/gdl-dock-item.c:1636 +msgid "Hide" +msgstr "" + +#. Lock menuitem +#: ../src/libgdl/gdl-dock-item.c:1641 +msgid "Lock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:1904 +#, c-format +msgid "Attempt to bind an unbound item %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:399 +msgid "Iconify this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:401 +msgid "Close this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:721 +#: ../src/libgdl/gdl-dock-tablabel.c:125 +msgid "Controlling dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:722 +msgid "Dockitem which 'owns' this grip" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:142 +msgid "Default title for newly created floating docks" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:149 +msgid "" +"If is set to 1, all the dock items bound to the master are locked; if it's " +"0, all are unlocked; -1 indicates inconsistency among the items" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 +msgid "Switcher Style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 +msgid "Switcher buttons style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:783 +#, c-format +msgid "" +"master %p: unable to add object %p[%s] to the hash. There already is an " +"item with that name (%p)." +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:955 +#, c-format +msgid "" +"The new dock controller %p is automatic. Only manual dock objects should be " +"named controller." +msgstr "" + +#: ../src/libgdl/gdl-dock-notebook.c:132 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 +#: ../src/ui/dialog/document-properties.cpp:150 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 +#: ../src/widgets/desktop-widget.cpp:1989 +#: ../share/extensions/voronoi2svg.inx.h:9 +msgid "Page" +msgstr "" + +#: ../src/libgdl/gdl-dock-notebook.c:133 +msgid "The index of the current page" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1495 +#: ../src/ui/widget/page-sizer.cpp:258 +#: ../src/widgets/gradient-selector.cpp:158 +#: ../src/widgets/sp-xmlview-attr-list.cpp:54 +msgid "Name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:126 +msgid "Unique name for identifying the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:133 +msgid "Long name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:134 +msgid "Human readable name for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:140 +msgid "Stock Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:141 +msgid "Stock icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:147 +msgid "Pixbuf Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:148 +msgid "Pixbuf icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:153 +msgid "Dock master" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:154 +msgid "Dock master this dock object is bound to" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:463 +#, c-format +msgid "" +"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " +"hasn't implemented this method" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:602 +#, c-format +msgid "" +"Dock operation requested in a non-bound object %p. The application might " +"crash" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:609 +#, c-format +msgid "Cannot dock %p to %p because they belong to different masters" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:651 +#, c-format +msgid "" +"Attempt to bind to %p an already bound dock object %p (current master: %p)" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +msgid "Position" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:131 +msgid "Position of the divider in pixels" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:141 +msgid "Sticky" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:142 +msgid "" +"Whether the placeholder will stick to its host or move up the hierarchy when " +"the host is redocked" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:149 +msgid "Host" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:150 +msgid "The dock object this placeholder is attached to" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:157 +msgid "Next placement" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:158 +msgid "" +"The position an item will be docked to our host if a request is made to dock " +"to us" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:168 +msgid "Width for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:176 +msgid "Height for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:182 +msgid "Floating Toplevel" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:183 +msgid "Whether the placeholder is standing in for a floating toplevel dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:189 +msgid "X Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:190 +msgid "X coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:196 +msgid "Y Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:197 +msgid "Y coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:499 +msgid "Attempt to dock a dock object to an unbound placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:611 +#, c-format +msgid "Got a detach signal from an object (%p) who is not our host %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:636 +#, c-format +msgid "" +"Something weird happened while getting the child placement for %p from " +"parent %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-tablabel.c:126 +msgid "Dockitem which 'owns' this tablabel" +msgstr "" + +#: ../src/libnrtype/FontFactory.cpp:964 +msgid "Ignoring font without family that will crash Pango" +msgstr "" + +#: ../src/live_effects/effect.cpp:86 +msgid "doEffect stack test" +msgstr "" + +#: ../src/live_effects/effect.cpp:87 +msgid "Angle bisector" +msgstr "" + +#. TRANSLATORS: boolean operations +#: ../src/live_effects/effect.cpp:89 +msgid "Boolops" +msgstr "" + +#: ../src/live_effects/effect.cpp:90 +msgid "Circle (by center and radius)" +msgstr "" + +#: ../src/live_effects/effect.cpp:91 +msgid "Circle by 3 points" +msgstr "" + +#: ../src/live_effects/effect.cpp:92 +msgid "Dynamic stroke" +msgstr "" + +#: ../src/live_effects/effect.cpp:93 ../share/extensions/extrude.inx.h:1 +msgid "Extrude" +msgstr "" + +#: ../src/live_effects/effect.cpp:94 +msgid "Lattice Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:95 +msgid "Line Segment" +msgstr "" + +#: ../src/live_effects/effect.cpp:96 +msgid "Mirror symmetry" +msgstr "" + +#: ../src/live_effects/effect.cpp:98 +msgid "Parallel" +msgstr "" + +#: ../src/live_effects/effect.cpp:99 +msgid "Path length" +msgstr "" + +#: ../src/live_effects/effect.cpp:100 +msgid "Perpendicular bisector" +msgstr "" + +#: ../src/live_effects/effect.cpp:101 +msgid "Perspective path" +msgstr "" + +#: ../src/live_effects/effect.cpp:102 +msgid "Rotate copies" +msgstr "" + +#: ../src/live_effects/effect.cpp:103 +msgid "Recursive skeleton" +msgstr "" + +#: ../src/live_effects/effect.cpp:104 +msgid "Tangent to curve" +msgstr "" + +#: ../src/live_effects/effect.cpp:105 +msgid "Text label" +msgstr "" + +#. 0.46 +#: ../src/live_effects/effect.cpp:108 +msgid "Bend" +msgstr "" + +#: ../src/live_effects/effect.cpp:109 +msgid "Gears" +msgstr "" + +#: ../src/live_effects/effect.cpp:110 +msgid "Pattern Along Path" +msgstr "" + +#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG +#: ../src/live_effects/effect.cpp:111 +msgid "Stitch Sub-Paths" +msgstr "" + +#. 0.47 +#: ../src/live_effects/effect.cpp:113 +msgid "VonKoch" +msgstr "" + +#: ../src/live_effects/effect.cpp:114 +msgid "Knot" +msgstr "" + +#: ../src/live_effects/effect.cpp:115 +msgid "Construct grid" +msgstr "" + +#: ../src/live_effects/effect.cpp:116 +msgid "Spiro spline" +msgstr "" + +#: ../src/live_effects/effect.cpp:117 +msgid "Envelope Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:118 +msgid "Interpolate Sub-Paths" +msgstr "" + +#: ../src/live_effects/effect.cpp:119 +msgid "Hatches (rough)" +msgstr "" + +#: ../src/live_effects/effect.cpp:120 +msgid "Sketch" +msgstr "" + +#: ../src/live_effects/effect.cpp:121 +msgid "Ruler" +msgstr "" + +#. 0.49 +#: ../src/live_effects/effect.cpp:123 +msgid "Power stroke" +msgstr "" + +#: ../src/live_effects/effect.cpp:124 ../src/selection-chemistry.cpp:2843 +msgid "Clone original path" +msgstr "" + +#: ../src/live_effects/effect.cpp:286 +msgid "Is visible?" +msgstr "" + +#: ../src/live_effects/effect.cpp:286 +msgid "" +"If unchecked, the effect remains applied to the object but is temporarily " +"disabled on canvas" +msgstr "" + +#: ../src/live_effects/effect.cpp:307 +msgid "No effect" +msgstr "" + +#: ../src/live_effects/effect.cpp:354 +#, c-format +msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" +msgstr "" + +#: ../src/live_effects/effect.cpp:626 +#, c-format +msgid "Editing parameter %s." +msgstr "" + +#: ../src/live_effects/effect.cpp:631 +msgid "None of the applied path effect's parameters can be edited on-canvas." +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:45 +#: ../src/live_effects/lpe-parallel.cpp:51 +#: ../src/live_effects/lpe-perp_bisector.cpp:97 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:63 +msgid "Length left:" +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:45 +#: ../src/live_effects/lpe-perp_bisector.cpp:97 +msgid "Specifies the left end of the bisector" +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:46 +#: ../src/live_effects/lpe-parallel.cpp:52 +#: ../src/live_effects/lpe-perp_bisector.cpp:98 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:64 +msgid "Length right:" +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:46 +#: ../src/live_effects/lpe-perp_bisector.cpp:98 +msgid "Specifies the right end of the bisector" +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:86 +#: ../src/live_effects/lpe-perp_bisector.cpp:159 +msgid "Adjust the \"left\" end of the bisector" +msgstr "" + +#: ../src/live_effects/lpe-angle_bisector.cpp:92 +#: ../src/live_effects/lpe-perp_bisector.cpp:165 +msgid "Adjust the \"right\" end of the bisector" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:53 +msgid "Bend path:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:53 +msgid "Path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:54 +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +#: ../src/ui/dialog/export.cpp:288 ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "_Width:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:54 +msgid "Width of the path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "W_idth in units of length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "Scale the width of the path in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "_Original path is vertical" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "Rotates the original 90 degrees, before bending it along the bend path" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:22 +msgid "Null" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:23 +msgid "Intersect" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:24 +msgid "Subtract A-B" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:25 +msgid "Identity A" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:26 +msgid "Subtract B-A" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:27 +msgid "Identity B" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:29 ../src/splivarot.cpp:70 +#: ../src/splivarot.cpp:76 +msgid "Union" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:35 +msgid "2nd path:" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:35 +msgid "Path to which the original path will be boolop'ed." +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:36 +msgid "Boolop type:" +msgstr "" + +#: ../src/live_effects/lpe-boolops.cpp:36 +msgid "Determines which kind of boolop will be performed." +msgstr "" + +#: ../src/live_effects/lpe-clone-original.cpp:18 +msgid "Linked path:" +msgstr "" + +#: ../src/live_effects/lpe-clone-original.cpp:18 +msgid "Path from which to take the original path data" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:27 +msgid "Size _X:" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:27 +msgid "The size of the grid in X direction." +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "Size _Y:" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "The size of the grid in Y direction." +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:51 +msgid "Starting:" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:51 +msgid "Angle of the first copy" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:52 +msgid "Rotation angle:" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:52 +msgid "Angle between two successive copies" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:53 +msgid "Number of copies:" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:53 +msgid "Number of copies of the original path" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:54 +msgid "Origin" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:54 +msgid "Origin of the rotation" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:135 +msgid "Adjust the starting angle" +msgstr "" + +#: ../src/live_effects/lpe-copy_rotate.cpp:141 +msgid "Adjust the rotation angle" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:41 +msgid "Stitch path:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:41 +msgid "The path that will be used as stitch." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "N_umber of paths:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "The number of paths that will be generated." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "Sta_rt edge variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "" +"The amount of random jitter to move the start points of the stitches inside " +"& outside the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "Sta_rt spacing variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "" +"The amount of random shifting to move the start points of the stitches back " +"& forth along the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "End ed_ge variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "" +"The amount of randomness that moves the end points of the stitches inside & " +"outside the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "End spa_cing variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "" +"The amount of random shifting to move the end points of the stitches back & " +"forth along the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "Scale _width:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "Scale the width of the stitch path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale _width relative to length" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale the width of the stitch path relative to its length" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:35 +msgid "Elliptic Pen" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:36 +msgid "Thick-Thin strokes (fast)" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:37 +msgid "Thick-Thin strokes (slow)" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:42 +msgid "Sharp" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:43 +#: ../src/live_effects/lpe-powerstroke.cpp:205 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +msgid "Round" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-dynastroke.cpp:50 +msgid "Method:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:50 +msgid "Choose pen type" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:51 +msgid "Pen width:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:51 +msgid "Maximal stroke width" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:52 +msgid "Pen roundness:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:52 +msgid "Min/Max width ratio" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:53 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:61 +#: ../src/widgets/calligraphy-toolbar.cpp:463 +#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 +msgid "Angle:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:53 +msgid "direction of thickest strokes (opposite = thinnest)" +msgstr "" + +#. modulo_pi(_("modulo pi"), _("Give forward and backward moves in one direction the same thickness "), "modulo_pi", &wr, this, false), +#: ../src/live_effects/lpe-dynastroke.cpp:55 +#: ../src/widgets/arc-toolbar.cpp:326 +msgid "Start:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:55 +msgid "Choose start capping type" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:56 +#: ../src/widgets/arc-toolbar.cpp:339 +msgid "End:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:56 +msgid "Choose end capping type" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:57 +msgid "Grow for:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:57 +msgid "Make the stroke thinner near it's start" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:58 +msgid "Fade for:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:58 +msgid "Make the stroke thinner near it's end" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:59 +msgid "Round ends" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:59 +msgid "Strokes end with a round end" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:60 +msgid "Capping:" +msgstr "" + +#: ../src/live_effects/lpe-dynastroke.cpp:60 +msgid "left capping" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:31 +msgid "Top bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:31 +msgid "Top path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:32 +msgid "Right bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:32 +msgid "Right path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Bottom bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Bottom path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Left bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Left path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "E_nable left & right paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "Enable the left and right deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "_Enable top & bottom paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "Enable the top and bottom deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-extrude.cpp:30 +msgid "Direction" +msgstr "" + +#: ../src/live_effects/lpe-extrude.cpp:30 +msgid "Defines the direction and magnitude of the extrusion" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:214 +msgid "_Teeth:" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:214 +msgid "The number of teeth" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:215 +msgid "_Phi:" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:215 +msgid "" +"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " +"contact." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Trajectory:" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Path along which intermediate steps are created." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Steps_:" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Determines the number of steps from start to end path." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:33 +msgid "E_quidistant spacing" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:33 +msgid "" +"If true, the spacing between intermediates is constant along the length of " +"the path. If false, the distance depends on the location of the nodes of the " +"trajectory path." +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-knot.cpp:350 +msgid "Fi_xed width:" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:350 +msgid "Size of hidden region of lower string" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:351 +msgid "_In units of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:351 +msgid "Consider 'Interruption width' as a ratio of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:352 +msgid "St_roke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:352 +msgid "Add the stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:353 +msgid "_Crossing path stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:353 +msgid "Add crossed stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:354 +msgid "S_witcher size:" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:354 +msgid "Orientation indicator/switcher size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "Crossing Signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "Crossings signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:620 +msgid "Drag to select a crossing, click to flip it" +msgstr "" + +#. / @todo Is this the right verb? +#: ../src/live_effects/lpe-knot.cpp:658 +msgid "Change knot crossing" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-lattice.cpp:45 +msgid "Control handle 0:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:45 +msgid "Control handle 0" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:46 +msgid "Control handle 1:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:46 +msgid "Control handle 1" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:47 +msgid "Control handle 2:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:47 +msgid "Control handle 2" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:48 +msgid "Control handle 3:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:48 +msgid "Control handle 3" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:49 +msgid "Control handle 4:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:49 +msgid "Control handle 4" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:50 +msgid "Control handle 5:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:50 +msgid "Control handle 5" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:51 +msgid "Control handle 6:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:51 +msgid "Control handle 6" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:52 +msgid "Control handle 7:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:52 +msgid "Control handle 7" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:53 +msgid "Control handle 8:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:53 +msgid "Control handle 8" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:54 +msgid "Control handle 9:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:54 +msgid "Control handle 9" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:55 +msgid "Control handle 10:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:55 +msgid "Control handle 10" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:56 +msgid "Control handle 11:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:56 +msgid "Control handle 11" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:57 +msgid "Control handle 12:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:57 +msgid "Control handle 12" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:58 +msgid "Control handle 13:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:58 +msgid "Control handle 13" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:59 +msgid "Control handle 14:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:59 +msgid "Control handle 14" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:60 +msgid "Control handle 15:" +msgstr "" + +#: ../src/live_effects/lpe-lattice.cpp:60 +msgid "Control handle 15" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:25 +#: ../src/widgets/lpe-toolbar.cpp:233 +msgid "Closed" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:26 +#: ../src/widgets/lpe-toolbar.cpp:235 +msgid "Open start" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:27 +#: ../src/widgets/lpe-toolbar.cpp:237 +msgid "Open end" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:28 +#: ../src/widgets/lpe-toolbar.cpp:239 +msgid "Open both" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:34 +msgid "End type:" +msgstr "" + +#: ../src/live_effects/lpe-line_segment.cpp:34 +msgid "Determines on which side the line or line segment is infinite." +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:32 +msgid "Discard original path?" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:32 +msgid "Check this to only keep the mirrored part of the path" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:33 +msgid "Reflection line:" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:33 +msgid "Line which serves as 'mirror' for the reflection" +msgstr "" + +#: ../src/live_effects/lpe-offset.cpp:31 +msgid "Handle to control the distance of the offset from the curve" +msgstr "" + +#: ../src/live_effects/lpe-parallel.cpp:50 +msgid "Adjust the offset" +msgstr "" + +#: ../src/live_effects/lpe-parallel.cpp:51 +msgid "Specifies the left end of the parallel" +msgstr "" + +#: ../src/live_effects/lpe-parallel.cpp:52 +msgid "Specifies the right end of the parallel" +msgstr "" + +#: ../src/live_effects/lpe-parallel.cpp:102 +msgid "Adjust the \"left\" end of the parallel" +msgstr "" + +#: ../src/live_effects/lpe-parallel.cpp:108 +msgid "Adjust the \"right\" end of the parallel" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:26 +#: ../src/live_effects/lpe-sketch.cpp:58 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../share/extensions/render_alphabetsoup.inx.h:3 +msgid "Scale:" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:26 +msgid "Scaling factor" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:28 +#: ../src/live_effects/lpe-ruler.cpp:42 +#: ../share/extensions/foldablebox.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:9 +#: ../share/extensions/layout_nup.inx.h:3 +#: ../share/extensions/printing_marks.inx.h:11 +msgid "Unit:" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:28 +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 +msgid "Unit" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:29 +msgid "Display unit" +msgstr "" + +#: ../src/live_effects/lpe-path_length.cpp:29 +msgid "Print unit after path length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:50 +#: ../share/extensions/pathalongpath.inx.h:10 +msgid "Single" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:51 +#: ../share/extensions/pathalongpath.inx.h:11 +msgid "Single, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:52 +#: ../share/extensions/pathalongpath.inx.h:12 +msgid "Repeated" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:53 +#: ../share/extensions/pathalongpath.inx.h:13 +msgid "Repeated, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +msgid "Pattern source:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +msgid "Path to put along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +msgid "Pattern copies:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +msgid "How many pattern copies to place along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +msgid "Width of the pattern" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:63 +msgid "Wid_th in units of length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:64 +msgid "Scale the width of the pattern in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:66 +msgid "Spa_cing:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:68 +#, no-c-format +msgid "" +"Space between copies of the pattern. Negative values allowed, but are " +"limited to -90% of pattern width." +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:70 +msgid "No_rmal offset:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:71 +msgid "Tan_gential offset:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:72 +msgid "Offsets in _unit of pattern size" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:73 +msgid "" +"Spacing, tangential and normal offset are expressed as a ratio of width/" +"height" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "Pattern is _vertical" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "Rotate pattern 90 deg before applying" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "_Fuse nearby ends:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "Fuse ends closer than this number. 0 means don't fuse." +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-perspective_path.cpp:47 +msgid "Scale x" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:47 +msgid "Scale factor in x direction" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:48 +msgid "Scale y" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:48 +msgid "Scale factor in y direction" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:49 +msgid "Offset x" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:49 +msgid "Offset in x direction" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:50 +msgid "Offset y" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:50 +msgid "Offset in y direction" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:51 +msgid "Uses XY plane?" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:51 +msgid "" +"If true, put the path on the left side of an imaginary box, otherwise on the " +"right side" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:145 +msgid "Adjust the origin" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:189 +msgid "CubicBezierFit" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:190 +msgid "CubicBezierJohan" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:191 +msgid "SpiroInterpolator" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:203 +msgid "Butt" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:204 +msgid "Square" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:206 +msgid "Peak" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:207 +msgid "Zero width" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:220 +msgid "Beveled" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:221 +#: ../src/widgets/star-toolbar.cpp:534 +msgid "Rounded" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:222 +msgid "Extrapolated" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:223 +msgid "Miter" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:224 +#: ../src/widgets/pencil-toolbar.cpp:111 +msgid "Spiro" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:226 +msgid "Extrapolated arc" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:233 +msgid "Offset points" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:234 +msgid "Sort points" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:234 +msgid "Sort offset points according to their time value along the curve" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:235 +msgid "Interpolator type:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:235 +msgid "" +"Determines which kind of interpolator will be used to interpolate between " +"stroke width along the path" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:236 +#: ../share/extensions/fractalize.inx.h:3 +msgid "Smoothness:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:236 +msgid "" +"Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " +"interpolation, 1 = smooth" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:237 +msgid "Start cap:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:237 +msgid "Determines the shape of the path's start" +msgstr "" + +#. Join type +#. TRANSLATORS: The line join style specifies the shape to be used at the +#. corners of paths. It can be "miter", "round" or "bevel". +#: ../src/live_effects/lpe-powerstroke.cpp:238 +#: ../src/widgets/stroke-style.cpp:226 +msgid "Join:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:238 +msgid "Determines the shape of the path's corners" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:239 +msgid "Miter limit:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:239 +#: ../src/widgets/stroke-style.cpp:277 +msgid "Maximum length of the miter (in units of stroke width)" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:240 +msgid "End cap:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:240 +msgid "Determines the shape of the path's end" +msgstr "" + +#: ../src/live_effects/lpe-recursiveskeleton.cpp:30 +msgid "Iterations:" +msgstr "" + +#: ../src/live_effects/lpe-recursiveskeleton.cpp:30 +msgid "recursivity" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Frequency randomness:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Variation of distance between hatches, in %." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth of distance between hatches." +msgstr "" + +#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! +#: ../src/live_effects/lpe-rough-hatches.cpp:228 +msgid "Half-turns smoothness: 1st side, in:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:228 +msgid "" +"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " +"0=sharp, 1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "1st side, out:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "" +"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "2nd side, in:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "" +"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "2nd side, out:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "" +"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "Magnitude jitter: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +msgid "Randomly moves 'top' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "Parallelism jitter: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "" +"Add direction randomness by moving 'bottom' half-turns tangentially to the " +"boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +msgid "" +"Add direction randomness by randomly moving 'top' half-turns tangentially to " +"the boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "Variance: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "Randomness of 'bottom' half-turns smoothness" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "Randomness of 'top' half-turns smoothness" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Generate thick/thin path" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Simulate a stroke of varying width" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Bend hatches" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Add a global bend to the hatches (slower)" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Thickness: at 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Width at 'bottom' half-turns" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "At 2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "Width at 'top' half-turns" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +msgid "From 2nd to 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +msgid "Width from 'top' to 'bottom'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "From 1st to 2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "Width from 'bottom' to 'top'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Hatches width and dir" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Defines hatches frequency and direction" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "Global bending" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "" +"Relative position to a reference point defines global bending direction and " +"amount" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 +#: ../share/extensions/text_extract.inx.h:8 +#: ../share/extensions/text_merge.inx.h:8 +msgid "Left" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 +#: ../share/extensions/text_extract.inx.h:10 +#: ../share/extensions/text_merge.inx.h:10 +msgid "Right" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 +msgid "Both" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:326 +msgid "Start" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:339 +msgid "End" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "_Mark distance:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "Distance between successive ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Ma_jor length:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Length of major ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Mino_r length:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Length of minor ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Major steps_:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Draw a major mark every ... steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks _by:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks by this many steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Mark direction:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Direction of marks (when viewing along the path from start to end)" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "_Offset:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "Offset of first mark" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Border marks:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Choose whether to draw marks at the beginning and end of the path" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-skeleton.cpp:37 +msgid "Float parameter" +msgstr "" + +#: ../src/live_effects/lpe-skeleton.cpp:37 +msgid "just a real number like 1.4!" +msgstr "" + +#. initialise your parameters here: +#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Strokes:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Draw that many approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:39 +msgid "Max stroke length:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:40 +msgid "Maximum length of approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:41 +msgid "Stroke length variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:42 +msgid "Random variation of stroke length (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:43 +msgid "Max. overlap:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:44 +msgid "How much successive strokes should overlap (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:45 +msgid "Overlap variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:46 +msgid "Random variation of overlap (relative to maximum overlap)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:47 +msgid "Max. end tolerance:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:48 +msgid "" +"Maximum distance between ends of original and approximating paths (relative " +"to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:49 +msgid "Average offset:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:50 +msgid "Average distance each stroke is away from the original path" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:51 +msgid "Max. tremble:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:52 +msgid "Maximum tremble magnitude" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:53 +msgid "Tremble frequency:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:54 +msgid "Average number of tremble periods in a stroke" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:56 +msgid "Construction lines:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:57 +msgid "How many construction lines (tangents) to draw" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:59 +msgid "" +"Scale factor relating curvature and length of construction lines (try " +"5*offset)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:60 +msgid "Max. length:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:60 +msgid "Maximum length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "Length variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "Random variation of the length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "Placement randomness:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "0: evenly distributed construction lines, 1: purely random placement" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "k_min:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "min curvature" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "k_max:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "max curvature" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:61 +msgid "Additional angle between tangent and curve" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:62 +msgid "Location along curve:" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:62 +msgid "" +"Location of the point of attachment along the curve (between 0.0 and number-" +"of-segments)" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:63 +msgid "Specifies the left end of the tangent" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:64 +msgid "Specifies the right end of the tangent" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:105 +msgid "Adjust the point of attachment of the tangent" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:111 +msgid "Adjust the \"left\" end of the tangent" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:117 +msgid "Adjust the \"right\" end of the tangent" +msgstr "" + +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:22 +msgid "Stack step:" +msgstr "" + +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:23 +msgid "Point param:" +msgstr "" + +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:24 +msgid "Path param:" +msgstr "" + +#: ../src/live_effects/lpe-text_label.cpp:23 +msgid "Label:" +msgstr "" + +#: ../src/live_effects/lpe-text_label.cpp:23 +msgid "Text label attached to the path" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "N_r of generations:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Depth of the recursion --- keep low!!" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "Generating path:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "Path whose segments define the iterated transforms" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "_Use uniform transforms only" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "" +"2 consecutive segments are used to reverse/preserve orientation only " +"(otherwise, they define a general transform)." +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:50 +msgid "Dra_w all generations" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:50 +msgid "If unchecked, draw only the last generation" +msgstr "" + +#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) +#: ../src/live_effects/lpe-vonkoch.cpp:52 +msgid "Reference segment:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:52 +msgid "The reference segment. Defaults to the horizontal midline of the bbox." +msgstr "" + +#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), +#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), +#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. +#: ../src/live_effects/lpe-vonkoch.cpp:56 +msgid "_Max complexity:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:56 +msgid "Disable effect if the output is too complex" +msgstr "" + +#: ../src/live_effects/parameter/bool.cpp:67 +msgid "Change bool parameter" +msgstr "" + +#: ../src/live_effects/parameter/enum.h:47 +msgid "Change enumeration parameter" +msgstr "" + +#: ../src/live_effects/parameter/originalpath.cpp:71 +#: ../src/live_effects/parameter/path.cpp:195 +msgid "Link to path" +msgstr "" + +#: ../src/live_effects/parameter/originalpath.cpp:83 +msgid "Select original" +msgstr "" + +#: ../src/live_effects/parameter/parameter.cpp:141 +msgid "Change scalar parameter" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:165 +msgid "Edit on-canvas" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:175 +msgid "Copy path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:185 +msgid "Paste path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:438 +msgid "Paste path parameter" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:470 +msgid "Link path parameter to path" +msgstr "" + +#: ../src/live_effects/parameter/point.cpp:89 +msgid "Change point parameter" +msgstr "" + +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:226 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:238 +msgid "" +"Stroke width control point: drag to alter the stroke width. Ctrl" +"+click adds a control point, Ctrl+Alt+click deletes it." +msgstr "" + +#: ../src/live_effects/parameter/random.cpp:134 +msgid "Change random parameter" +msgstr "" + +#: ../src/live_effects/parameter/text.cpp:100 +msgid "Change text parameter" +msgstr "" + +#: ../src/live_effects/parameter/unit.cpp:80 +msgid "Change unit parameter" +msgstr "" + +#: ../src/live_effects/parameter/vector.cpp:99 +msgid "Change vector parameter" +msgstr "" + +#: ../src/main-cmdlineact.cpp:50 +#, c-format +msgid "Unable to find verb ID '%s' specified on the command line.\n" +msgstr "" + +#: ../src/main-cmdlineact.cpp:61 +#, c-format +msgid "Unable to find node ID: '%s'\n" +msgstr "" + +#: ../src/main.cpp:295 +msgid "Print the Inkscape version number" +msgstr "" + +#: ../src/main.cpp:300 +msgid "Do not use X server (only process files from console)" +msgstr "" + +#: ../src/main.cpp:305 +msgid "Try to use X server (even if $DISPLAY is not set)" +msgstr "" + +#: ../src/main.cpp:310 +msgid "Open specified document(s) (option string may be excluded)" +msgstr "" + +#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 +#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 +#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 +msgid "FILENAME" +msgstr "" + +#: ../src/main.cpp:315 +msgid "Print document(s) to specified output file (use '| program' for pipe)" +msgstr "" + +#: ../src/main.cpp:320 +msgid "Export document to a PNG file" +msgstr "" + +#: ../src/main.cpp:325 +msgid "" +"Resolution for exporting to bitmap and for rasterization of filters in PS/" +"EPS/PDF (default 90)" +msgstr "" + +#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:34 +msgid "DPI" +msgstr "" + +#: ../src/main.cpp:330 +msgid "" +"Exported area in SVG user units (default is the page; 0,0 is lower-left " +"corner)" +msgstr "" + +#: ../src/main.cpp:331 +msgid "x0:y0:x1:y1" +msgstr "" + +#: ../src/main.cpp:335 +msgid "Exported area is the entire drawing (not page)" +msgstr "" + +#: ../src/main.cpp:340 +msgid "Exported area is the entire page" +msgstr "" + +#: ../src/main.cpp:345 +msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" +msgstr "" + +#: ../src/main.cpp:346 ../src/main.cpp:388 +msgid "VALUE" +msgstr "" + +#: ../src/main.cpp:350 +msgid "" +"Snap the bitmap export area outwards to the nearest integer values (in SVG " +"user units)" +msgstr "" + +#: ../src/main.cpp:355 +msgid "The width of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:356 +msgid "WIDTH" +msgstr "" + +#: ../src/main.cpp:360 +msgid "The height of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:361 +msgid "HEIGHT" +msgstr "" + +#: ../src/main.cpp:365 +msgid "The ID of the object to export" +msgstr "" + +#: ../src/main.cpp:366 ../src/main.cpp:479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 +msgid "ID" +msgstr "" + +#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". +#. See "man inkscape" for details. +#: ../src/main.cpp:372 +msgid "" +"Export just the object with export-id, hide all others (only with export-id)" +msgstr "" + +#: ../src/main.cpp:377 +msgid "Use stored filename and DPI hints when exporting (only with export-id)" +msgstr "" + +#: ../src/main.cpp:382 +msgid "Background color of exported bitmap (any SVG-supported color string)" +msgstr "" + +#: ../src/main.cpp:383 +msgid "COLOR" +msgstr "" + +#: ../src/main.cpp:387 +msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" +msgstr "" + +#: ../src/main.cpp:392 +msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" +msgstr "" + +#: ../src/main.cpp:397 +msgid "Export document to a PS file" +msgstr "" + +#: ../src/main.cpp:402 +msgid "Export document to an EPS file" +msgstr "" + +#: ../src/main.cpp:407 +msgid "" +"Choose the PostScript Level used to export. Possible choices are 2 (the " +"default) and 3" +msgstr "" + +#: ../src/main.cpp:409 +msgid "PS Level" +msgstr "" + +#: ../src/main.cpp:413 +msgid "Export document to a PDF file" +msgstr "" + +#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:419 +msgid "" +"Export PDF to given version. (hint: make sure to input the exact string " +"found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" +msgstr "" + +#: ../src/main.cpp:420 +msgid "PDF_VERSION" +msgstr "" + +#: ../src/main.cpp:424 +msgid "" +"Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is " +"exported, putting the text on top of the PDF/PS/EPS file. Include the result " +"in LaTeX like: \\input{latexfile.tex}" +msgstr "" + +#: ../src/main.cpp:429 +msgid "Export document to an Enhanced Metafile (EMF) File" +msgstr "" + +#: ../src/main.cpp:434 +msgid "Export document to a Windows Metafile (WMF) File" +msgstr "" + +#: ../src/main.cpp:439 +msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" +msgstr "" + +#: ../src/main.cpp:444 +msgid "" +"Render filtered objects without filters, instead of rasterizing (PS, EPS, " +"PDF)" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:450 +msgid "" +"Query the X coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:456 +msgid "" +"Query the Y coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:462 +msgid "" +"Query the width of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:468 +msgid "" +"Query the height of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" + +#: ../src/main.cpp:473 +msgid "List id,x,y,w,h for all objects" +msgstr "" + +#: ../src/main.cpp:478 +msgid "The ID of the object whose dimensions are queried" +msgstr "" + +#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory +#: ../src/main.cpp:484 +msgid "Print out the extension directory and exit" +msgstr "" + +#: ../src/main.cpp:489 +msgid "Remove unused definitions from the defs section(s) of the document" +msgstr "" + +#: ../src/main.cpp:495 +msgid "Enter a listening loop for D-Bus messages in console mode" +msgstr "" + +#: ../src/main.cpp:500 +msgid "" +"Specify the D-Bus bus name to listen for messages on (default is org." +"inkscape)" +msgstr "" + +#: ../src/main.cpp:501 +msgid "BUS-NAME" +msgstr "" + +#: ../src/main.cpp:506 +msgid "List the IDs of all the verbs in Inkscape" +msgstr "" + +#: ../src/main.cpp:511 +msgid "Verb to call when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:512 +msgid "VERB-ID" +msgstr "" + +#: ../src/main.cpp:516 +msgid "Object ID to select when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:517 +msgid "OBJECT-ID" +msgstr "" + +#: ../src/main.cpp:521 +msgid "Start Inkscape in interactive shell mode." +msgstr "" + +#: ../src/main.cpp:871 ../src/main.cpp:1270 +msgid "" +"[OPTIONS...] [FILE...]\n" +"\n" +"Available options:" +msgstr "" + +#. ## Add a menu for clear() +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +msgid "_File" +msgstr "" + +#: ../src/menus-skeleton.h:17 +msgid "_New" +msgstr "" + +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2638 ../src/verbs.cpp:2644 +msgid "_Edit" +msgstr "" + +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2402 +msgid "Paste Si_ze" +msgstr "" + +#: ../src/menus-skeleton.h:65 +msgid "Clo_ne" +msgstr "" + +#: ../src/menus-skeleton.h:79 +msgid "Select Sa_me" +msgstr "" + +#: ../src/menus-skeleton.h:97 +msgid "_View" +msgstr "" + +#: ../src/menus-skeleton.h:98 +msgid "_Zoom" +msgstr "" + +#: ../src/menus-skeleton.h:114 +msgid "_Display mode" +msgstr "" + +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:123 +msgid "_Color display mode" +msgstr "" + +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:137 +msgid "Sh_ow/Hide" +msgstr "" + +#. Not quite ready to be in the menus. +#. " \n" +#: ../src/menus-skeleton.h:157 +msgid "_Layer" +msgstr "" + +#: ../src/menus-skeleton.h:181 +msgid "_Object" +msgstr "" + +#: ../src/menus-skeleton.h:189 +msgid "Cli_p" +msgstr "" + +#: ../src/menus-skeleton.h:193 +msgid "Mas_k" +msgstr "" + +#: ../src/menus-skeleton.h:197 +msgid "Patter_n" +msgstr "" + +#: ../src/menus-skeleton.h:221 +msgid "_Path" +msgstr "" + +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/text-edit.cpp:72 +msgid "_Text" +msgstr "" + +#: ../src/menus-skeleton.h:267 +msgid "Filter_s" +msgstr "" + +#: ../src/menus-skeleton.h:273 +msgid "Exte_nsions" +msgstr "" + +#: ../src/menus-skeleton.h:279 +msgid "_Help" +msgstr "" + +#: ../src/menus-skeleton.h:283 +msgid "Tutorials" +msgstr "" + +#: ../src/object-edit.cpp:439 +msgid "" +"Adjust the horizontal rounding radius; with Ctrl to make the " +"vertical radius the same" +msgstr "" + +#: ../src/object-edit.cpp:444 +msgid "" +"Adjust the vertical rounding radius; with Ctrl to make the " +"horizontal radius the same" +msgstr "" + +#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 +msgid "" +"Adjust the width and height of the rectangle; with Ctrl to " +"lock ratio or stretch in one dimension only" +msgstr "" + +#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 +#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 +msgid "" +"Resize box in X/Y direction; with Shift along the Z axis; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" + +#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 +#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 +msgid "" +"Resize box along the Z axis; with Shift in X/Y direction; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" + +#: ../src/object-edit.cpp:721 +msgid "Move the box in perspective" +msgstr "" + +#: ../src/object-edit.cpp:948 +msgid "Adjust ellipse width, with Ctrl to make circle" +msgstr "" + +#: ../src/object-edit.cpp:952 +msgid "Adjust ellipse height, with Ctrl to make circle" +msgstr "" + +#: ../src/object-edit.cpp:956 +msgid "" +"Position the start point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/object-edit.cpp:961 +msgid "" +"Position the end point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/object-edit.cpp:1101 +msgid "" +"Adjust the tip radius of the star or polygon; with Shift to " +"round; with Alt to randomize" +msgstr "" + +#: ../src/object-edit.cpp:1109 +msgid "" +"Adjust the base radius of the star; with Ctrl to keep star " +"rays radial (no skew); with Shift to round; with Alt to " +"randomize" +msgstr "" + +#: ../src/object-edit.cpp:1299 +msgid "" +"Roll/unroll the spiral from inside; with Ctrl to snap angle; " +"with Alt to converge/diverge" +msgstr "" + +#: ../src/object-edit.cpp:1303 +msgid "" +"Roll/unroll the spiral from outside; with Ctrl to snap angle; " +"with Shift to scale/rotate; with Alt to lock radius" +msgstr "" + +#: ../src/object-edit.cpp:1348 +msgid "Adjust the offset distance" +msgstr "" + +#: ../src/object-edit.cpp:1384 +msgid "Drag to resize the flowed text frame" +msgstr "" + +#: ../src/path-chemistry.cpp:53 +msgid "Select object(s) to combine." +msgstr "" + +#: ../src/path-chemistry.cpp:57 +msgid "Combining paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:175 +msgid "Combine" +msgstr "" + +#: ../src/path-chemistry.cpp:182 +msgid "No path(s) to combine in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:194 +msgid "Select path(s) to break apart." +msgstr "" + +#: ../src/path-chemistry.cpp:198 +msgid "Breaking apart paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:289 +msgid "Break apart" +msgstr "" + +#: ../src/path-chemistry.cpp:291 +msgid "No path(s) to break apart in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:301 +msgid "Select object(s) to convert to path." +msgstr "" + +#: ../src/path-chemistry.cpp:307 +msgid "Converting objects to paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:329 +msgid "Object to path" +msgstr "" + +#: ../src/path-chemistry.cpp:331 +msgid "No objects to convert to path in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:608 +msgid "Select path(s) to reverse." +msgstr "" + +#: ../src/path-chemistry.cpp:617 +msgid "Reversing paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:652 +msgid "Reverse path" +msgstr "" + +#: ../src/path-chemistry.cpp:654 +msgid "No paths to reverse in the selection." +msgstr "" + +#: ../src/persp3d.cpp:293 +msgid "Toggle vanishing point" +msgstr "" + +#: ../src/persp3d.cpp:304 +msgid "Toggle multiple vanishing points" +msgstr "" + +#: ../src/preferences.cpp:134 +msgid "" +"Inkscape will run with default settings, and new settings will not be saved. " +msgstr "" + +#. the creation failed +#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:149 +#, c-format +msgid "Cannot create profile directory %s." +msgstr "" + +#. The profile dir is not actually a directory +#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:167 +#, c-format +msgid "%s is not a valid directory." +msgstr "" + +#. The write failed. +#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), +#. Glib::filename_to_utf8(_prefs_filename)), not_saved); +#: ../src/preferences.cpp:178 +#, c-format +msgid "Failed to create the preferences file %s." +msgstr "" + +#: ../src/preferences.cpp:214 +#, c-format +msgid "The preferences file %s is not a regular file." +msgstr "" + +#: ../src/preferences.cpp:224 +#, c-format +msgid "The preferences file %s could not be read." +msgstr "" + +#: ../src/preferences.cpp:235 +#, c-format +msgid "The preferences file %s is not a valid XML document." +msgstr "" + +#: ../src/preferences.cpp:244 +#, c-format +msgid "The file %s is not a valid Inkscape preferences file." +msgstr "" + +#: ../src/preferences-skeleton.h:101 +msgid "Dip pen" +msgstr "" + +#: ../src/preferences-skeleton.h:102 +msgid "Marker" +msgstr "" + +#: ../src/preferences-skeleton.h:103 +msgid "Brush" +msgstr "" + +#: ../src/preferences-skeleton.h:104 +msgid "Wiggly" +msgstr "" + +#: ../src/preferences-skeleton.h:105 +msgid "Splotchy" +msgstr "" + +#: ../src/preferences-skeleton.h:106 +msgid "Tracing" +msgstr "" + +#: ../src/rdf.cpp:175 +msgid "CC Attribution" +msgstr "" + +#: ../src/rdf.cpp:180 +msgid "CC Attribution-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:185 +msgid "CC Attribution-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:190 +msgid "CC Attribution-NonCommercial" +msgstr "" + +#: ../src/rdf.cpp:195 +msgid "CC Attribution-NonCommercial-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:200 +msgid "CC Attribution-NonCommercial-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:205 +msgid "CC0 Public Domain Dedication" +msgstr "" + +#: ../src/rdf.cpp:210 +msgid "FreeArt" +msgstr "" + +#: ../src/rdf.cpp:215 +msgid "Open Font License" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute +#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +msgid "Title:" +msgstr "" + +#: ../src/rdf.cpp:236 +msgid "A name given to the resource" +msgstr "" + +#: ../src/rdf.cpp:238 +msgid "Date:" +msgstr "" + +#: ../src/rdf.cpp:239 +msgid "" +"A point or period of time associated with an event in the lifecycle of the " +"resource" +msgstr "" + +#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 +msgid "Format:" +msgstr "" + +#: ../src/rdf.cpp:242 +msgid "The file format, physical medium, or dimensions of the resource" +msgstr "" + +#: ../src/rdf.cpp:245 +msgid "The nature or genre of the resource" +msgstr "" + +#: ../src/rdf.cpp:248 +msgid "Creator:" +msgstr "" + +#: ../src/rdf.cpp:249 +msgid "An entity primarily responsible for making the resource" +msgstr "" + +#: ../src/rdf.cpp:251 +msgid "Rights:" +msgstr "" + +#: ../src/rdf.cpp:252 +msgid "Information about rights held in and over the resource" +msgstr "" + +#: ../src/rdf.cpp:254 +msgid "Publisher:" +msgstr "" + +#: ../src/rdf.cpp:255 +msgid "An entity responsible for making the resource available" +msgstr "" + +#: ../src/rdf.cpp:258 +msgid "Identifier:" +msgstr "" + +#: ../src/rdf.cpp:259 +msgid "An unambiguous reference to the resource within a given context" +msgstr "" + +#: ../src/rdf.cpp:262 +msgid "A related resource from which the described resource is derived" +msgstr "" + +#: ../src/rdf.cpp:264 +msgid "Relation:" +msgstr "" + +#: ../src/rdf.cpp:265 +msgid "A related resource" +msgstr "" + +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1850 +msgid "Language:" +msgstr "" + +#: ../src/rdf.cpp:268 +msgid "A language of the resource" +msgstr "" + +#: ../src/rdf.cpp:270 +msgid "Keywords:" +msgstr "" + +#: ../src/rdf.cpp:271 +msgid "The topic of the resource" +msgstr "" + +#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. +#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ +#: ../src/rdf.cpp:275 +msgid "Coverage:" +msgstr "" + +#: ../src/rdf.cpp:276 +msgid "" +"The spatial or temporal topic of the resource, the spatial applicability of " +"the resource, or the jurisdiction under which the resource is relevant" +msgstr "" + +#: ../src/rdf.cpp:279 +msgid "Description:" +msgstr "" + +#: ../src/rdf.cpp:280 +msgid "An account of the resource" +msgstr "" + +#. FIXME: need to handle 1 agent per line of input +#: ../src/rdf.cpp:284 +msgid "Contributors:" +msgstr "" + +#: ../src/rdf.cpp:285 +msgid "An entity responsible for making contributions to the resource" +msgstr "" + +#. TRANSLATORS: URL to a page that defines the license for the document +#: ../src/rdf.cpp:289 +msgid "URI:" +msgstr "" + +#. TRANSLATORS: this is where you put a URL to a page that defines the license +#: ../src/rdf.cpp:291 +msgid "URI to this document's license's namespace definition" +msgstr "" + +#. TRANSLATORS: fragment of XML representing the license of the document +#: ../src/rdf.cpp:295 +msgid "Fragment:" +msgstr "" + +#: ../src/rdf.cpp:296 +msgid "XML fragment for the RDF 'License' section" +msgstr "" + +#: ../src/resource-manager.cpp:332 +msgid "Fixup broken links" +msgstr "" + +#: ../src/selection-chemistry.cpp:396 +msgid "Delete text" +msgstr "" + +#: ../src/selection-chemistry.cpp:404 +msgid "Nothing was deleted." +msgstr "" + +#: ../src/selection-chemistry.cpp:423 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 +#: ../src/ui/dialog/swatches.cpp:278 ../src/ui/tools/text-tool.cpp:986 +#: ../src/widgets/eraser-toolbar.cpp:93 +#: ../src/widgets/gradient-toolbar.cpp:1180 +#: ../src/widgets/gradient-toolbar.cpp:1194 +#: ../src/widgets/gradient-toolbar.cpp:1208 +#: ../src/widgets/node-toolbar.cpp:401 +msgid "Delete" +msgstr "" + +#: ../src/selection-chemistry.cpp:451 +msgid "Select object(s) to duplicate." +msgstr "" + +#: ../src/selection-chemistry.cpp:560 +msgid "Delete all" +msgstr "" + +#: ../src/selection-chemistry.cpp:750 +msgid "Select some objects to group." +msgstr "" + +#: ../src/selection-chemistry.cpp:765 ../src/sp-item-group.cpp:331 +msgid "Group" +msgstr "" + +#: ../src/selection-chemistry.cpp:788 +msgid "Select a group to ungroup." +msgstr "" + +#: ../src/selection-chemistry.cpp:803 +msgid "No groups to ungroup in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:861 ../src/sp-item-group.cpp:564 +msgid "Ungroup" +msgstr "" + +#: ../src/selection-chemistry.cpp:942 +msgid "Select object(s) to raise." +msgstr "" + +#: ../src/selection-chemistry.cpp:948 ../src/selection-chemistry.cpp:1004 +#: ../src/selection-chemistry.cpp:1032 ../src/selection-chemistry.cpp:1093 +msgid "" +"You cannot raise/lower objects from different groups or layers." +msgstr "" + +#. TRANSLATORS: "Raise" means "to raise an object" in the undo history +#: ../src/selection-chemistry.cpp:988 +msgctxt "Undo action" +msgid "Raise" +msgstr "" + +#: ../src/selection-chemistry.cpp:996 +msgid "Select object(s) to raise to top." +msgstr "" + +#: ../src/selection-chemistry.cpp:1019 +msgid "Raise to top" +msgstr "" + +#: ../src/selection-chemistry.cpp:1026 +msgid "Select object(s) to lower." +msgstr "" + +#. TRANSLATORS: "Lower" means "to lower an object" in the undo history +#: ../src/selection-chemistry.cpp:1077 +msgctxt "Undo action" +msgid "Lower" +msgstr "" + +#: ../src/selection-chemistry.cpp:1085 +msgid "Select object(s) to lower to bottom." +msgstr "" + +#: ../src/selection-chemistry.cpp:1120 +msgid "Lower to bottom" +msgstr "" + +#: ../src/selection-chemistry.cpp:1130 +msgid "Nothing to undo." +msgstr "" + +#: ../src/selection-chemistry.cpp:1141 +msgid "Nothing to redo." +msgstr "" + +#: ../src/selection-chemistry.cpp:1208 +msgid "Paste" +msgstr "" + +#: ../src/selection-chemistry.cpp:1216 +msgid "Paste style" +msgstr "" + +#: ../src/selection-chemistry.cpp:1226 +msgid "Paste live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:1248 +msgid "Select object(s) to remove live path effects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1260 +msgid "Remove live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:1271 +msgid "Select object(s) to remove filters from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1281 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +msgid "Remove filter" +msgstr "" + +#: ../src/selection-chemistry.cpp:1290 +msgid "Paste size" +msgstr "" + +#: ../src/selection-chemistry.cpp:1299 +msgid "Paste size separately" +msgstr "" + +#: ../src/selection-chemistry.cpp:1309 +msgid "Select object(s) to move to the layer above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1335 +msgid "Raise to next layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1342 +msgid "No more layers above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1354 +msgid "Select object(s) to move to the layer below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1380 +msgid "Lower to previous layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1387 +msgid "No more layers below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1399 +msgid "Select object(s) to move." +msgstr "" + +#: ../src/selection-chemistry.cpp:1416 ../src/verbs.cpp:2581 +msgid "Move selection to layer" +msgstr "" + +#. An SVG element cannot have a transform. We could change 'x' and 'y' in response +#. to a translation... but leave that for another day. +#: ../src/selection-chemistry.cpp:1503 ../src/seltrans.cpp:387 +msgid "Cannot transform an embedded SVG." +msgstr "" + +#: ../src/selection-chemistry.cpp:1647 +msgid "Remove transform" +msgstr "" + +#: ../src/selection-chemistry.cpp:1750 +msgid "Rotate 90° CCW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1750 +msgid "Rotate 90° CW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1771 ../src/seltrans.cpp:474 +#: ../src/ui/dialog/transformation.cpp:894 +msgid "Rotate" +msgstr "" + +#: ../src/selection-chemistry.cpp:2150 +msgid "Rotate by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2180 ../src/seltrans.cpp:471 +#: ../src/ui/dialog/transformation.cpp:869 +#: ../share/extensions/interp_att_g.inx.h:12 +msgid "Scale" +msgstr "" + +#: ../src/selection-chemistry.cpp:2205 +msgid "Scale by whole factor" +msgstr "" + +#: ../src/selection-chemistry.cpp:2220 +msgid "Move vertically" +msgstr "" + +#: ../src/selection-chemistry.cpp:2223 +msgid "Move horizontally" +msgstr "" + +#: ../src/selection-chemistry.cpp:2226 ../src/selection-chemistry.cpp:2252 +#: ../src/seltrans.cpp:468 ../src/ui/dialog/transformation.cpp:807 +msgid "Move" +msgstr "" + +#: ../src/selection-chemistry.cpp:2246 +msgid "Move vertically by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2249 +msgid "Move horizontally by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2381 +msgid "The selection has no applied path effect." +msgstr "" + +#: ../src/selection-chemistry.cpp:2550 ../src/ui/dialog/clonetiler.cpp:2218 +msgid "Select an object to clone." +msgstr "" + +#: ../src/selection-chemistry.cpp:2586 +msgctxt "Action" +msgid "Clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2602 +msgid "Select clones to relink." +msgstr "" + +#: ../src/selection-chemistry.cpp:2609 +msgid "Copy an object to clipboard to relink clones to." +msgstr "" + +#: ../src/selection-chemistry.cpp:2633 +msgid "No clones to relink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2636 +msgid "Relink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2650 +msgid "Select clones to unlink." +msgstr "" + +#: ../src/selection-chemistry.cpp:2704 +msgid "No clones to unlink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2708 +msgid "Unlink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2721 +msgid "" +"Select a clone to go to its original. Select a linked offset " +"to go to its source. Select a text on path to go to the path. Select " +"a flowed text to go to its frame." +msgstr "" + +#: ../src/selection-chemistry.cpp:2754 +msgid "" +"Cannot find the object to select (orphaned clone, offset, textpath, " +"flowed text?)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2760 +msgid "" +"The object you're trying to select is not visible (it is in <" +"defs>)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2805 +msgid "Select one path to clone." +msgstr "" + +#: ../src/selection-chemistry.cpp:2809 +msgid "Select one path to clone." +msgstr "" + +#: ../src/selection-chemistry.cpp:2865 +msgid "Select object(s) to convert to marker." +msgstr "" + +#: ../src/selection-chemistry.cpp:2932 +msgid "Objects to marker" +msgstr "" + +#: ../src/selection-chemistry.cpp:2956 +msgid "Select object(s) to convert to guides." +msgstr "" + +#: ../src/selection-chemistry.cpp:2979 +msgid "Objects to guides" +msgstr "" + +#: ../src/selection-chemistry.cpp:3015 +msgid "Select objects to convert to symbol." +msgstr "" + +#: ../src/selection-chemistry.cpp:3121 +msgid "Group to symbol" +msgstr "" + +#: ../src/selection-chemistry.cpp:3140 +msgid "Select a symbol to extract objects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3149 +msgid "Select only one symbol in Symbol dialog to convert to group." +msgstr "" + +#: ../src/selection-chemistry.cpp:3207 +msgid "Group from symbol" +msgstr "" + +#: ../src/selection-chemistry.cpp:3225 +msgid "Select object(s) to convert to pattern." +msgstr "" + +#: ../src/selection-chemistry.cpp:3315 +msgid "Objects to pattern" +msgstr "" + +#: ../src/selection-chemistry.cpp:3331 +msgid "Select an object with pattern fill to extract objects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3386 +msgid "No pattern fills in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:3389 +msgid "Pattern to objects" +msgstr "" + +#: ../src/selection-chemistry.cpp:3480 +msgid "Select object(s) to make a bitmap copy." +msgstr "" + +#: ../src/selection-chemistry.cpp:3484 +msgid "Rendering bitmap..." +msgstr "" + +#: ../src/selection-chemistry.cpp:3663 +msgid "Create bitmap" +msgstr "" + +#: ../src/selection-chemistry.cpp:3695 +msgid "Select object(s) to create clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3698 +msgid "Select mask object and object(s) to apply clippath or mask to." +msgstr "" + +#: ../src/selection-chemistry.cpp:3881 +msgid "Set clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:3883 +msgid "Set mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:3898 +msgid "Select object(s) to remove clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:4009 +msgid "Release clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:4011 +msgid "Release mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:4030 +msgid "Select object(s) to fit canvas to." +msgstr "" + +#. Fit Page +#: ../src/selection-chemistry.cpp:4050 ../src/verbs.cpp:2909 +msgid "Fit Page to Selection" +msgstr "" + +#: ../src/selection-chemistry.cpp:4079 ../src/verbs.cpp:2911 +msgid "Fit Page to Drawing" +msgstr "" + +#: ../src/selection-chemistry.cpp:4100 ../src/verbs.cpp:2913 +msgid "Fit Page to Selection or Drawing" +msgstr "" + +#: ../src/selection-describer.cpp:113 +msgid "root" +msgstr "" + +#: ../src/selection-describer.cpp:115 ../src/widgets/ege-paint-def.cpp:67 +#: ../src/widgets/ege-paint-def.cpp:91 +msgid "none" +msgstr "" + +#: ../src/selection-describer.cpp:127 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:129 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:140 +#, c-format +msgid "%s" +msgstr "" + +#: ../src/selection-describer.cpp:150 +#, c-format +msgid " in %s" +msgstr "" + +#: ../src/selection-describer.cpp:152 +msgid " hidden in definitions" +msgstr "" + +#: ../src/selection-describer.cpp:154 +#, c-format +msgid " in group %s (%s)" +msgstr "" + +#: ../src/selection-describer.cpp:156 +#, c-format +msgid " in unnamed group (%s)" +msgstr "" + +#: ../src/selection-describer.cpp:158 +#, c-format +msgid " in %i parent (%s)" +msgid_plural " in %i parents (%s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:161 +#, c-format +msgid " in %i layer" +msgid_plural " in %i layers" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:172 +msgid "Convert symbol to group to edit" +msgstr "" + +#: ../src/selection-describer.cpp:176 +msgid "Remove from symbols tray to edit symbol" +msgstr "" + +#: ../src/selection-describer.cpp:180 +msgid "Use Shift+D to look up original" +msgstr "" + +#: ../src/selection-describer.cpp:184 +msgid "Use Shift+D to look up path" +msgstr "" + +#: ../src/selection-describer.cpp:188 +msgid "Use Shift+D to look up frame" +msgstr "" + +#: ../src/selection-describer.cpp:207 +#, c-format +msgid "; %d filtered object " +msgid_plural "; %d filtered objects " +msgstr[0] "" +msgstr[1] "" + +#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:982 +msgid "Skew" +msgstr "" + +#: ../src/seltrans.cpp:489 +msgid "Set center" +msgstr "" + +#: ../src/seltrans.cpp:564 +msgid "Stamp" +msgstr "" + +#: ../src/seltrans.cpp:717 +msgid "Reset center" +msgstr "" + +#: ../src/seltrans.cpp:944 ../src/seltrans.cpp:1041 +#, c-format +msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" +msgstr "" + +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1173 +#, c-format +msgid "Skew: %0.2f°; with Ctrl to snap angle" +msgstr "" + +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1248 +#, c-format +msgid "Rotate: %0.2f°; with Ctrl to snap angle" +msgstr "" + +#: ../src/seltrans.cpp:1285 +#, c-format +msgid "Move center to %s, %s" +msgstr "" + +#: ../src/seltrans.cpp:1439 +#, c-format +msgid "" +"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " +"with Shift to disable snapping" +msgstr "" + +#: ../src/seltrans-handles.cpp:9 +msgid "" +"Squeeze or stretch selection; with Ctrl to scale uniformly; " +"with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans-handles.cpp:10 +msgid "" +"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans-handles.cpp:11 +msgid "" +"Skew selection; with Ctrl to snap angle; with Shift to " +"skew around the opposite side" +msgstr "" + +#: ../src/seltrans-handles.cpp:12 +msgid "" +"Rotate selection; with Ctrl to snap angle; with Shift " +"to rotate around the opposite corner" +msgstr "" + +#: ../src/seltrans-handles.cpp:13 +msgid "" +"Center of rotation and skewing: drag to reposition; scaling with " +"Shift also uses this center" +msgstr "" + +#: ../src/shortcuts.cpp:226 +#, c-format +msgid "Keyboard directory (%s) is unavailable." +msgstr "" + +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1295 +#: ../src/ui/dialog/export.cpp:1329 +msgid "Select a filename for exporting" +msgstr "" + +#: ../src/shortcuts.cpp:370 +msgid "Select a file to import" +msgstr "" + +#: ../src/sp-anchor.cpp:125 +#, c-format +msgid "to %s" +msgstr "" + +#: ../src/sp-anchor.cpp:129 +msgid "without URI" +msgstr "" + +#: ../src/sp-ellipse.cpp:374 +msgid "Segment" +msgstr "" + +#: ../src/sp-ellipse.cpp:376 +msgid "Arc" +msgstr "" + +#. Ellipse +#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 +#: ../src/ui/dialog/inkscape-preferences.cpp:403 +#: ../src/widgets/pencil-toolbar.cpp:166 +msgid "Ellipse" +msgstr "" + +#: ../src/sp-ellipse.cpp:383 +msgid "Circle" +msgstr "" + +#. TRANSLATORS: "Flow region" is an area where text is allowed to flow +#: ../src/sp-flowregion.cpp:193 +msgid "Flow Region" +msgstr "" + +#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the +#. * flow excluded region. flowRegionExclude in SVG 1.2: see +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. +#: ../src/sp-flowregion.cpp:343 +msgid "Flow Excluded Region" +msgstr "" + +#: ../src/sp-flowtext.cpp:289 +msgid "Flowed Text" +msgstr "" + +#: ../src/sp-flowtext.cpp:291 +msgid "Linked Flowed Text" +msgstr "" + +#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:357 +#: ../src/ui/tools/text-tool.cpp:1591 +msgid " [truncated]" +msgstr "" + +#: ../src/sp-flowtext.cpp:300 +#, c-format +msgid "(%d character%s)" +msgid_plural "(%d characters%s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-guide.cpp:301 +msgid "Create Guides Around the Page" +msgstr "" + +#: ../src/sp-guide.cpp:313 ../src/verbs.cpp:2474 +msgid "Delete All Guides" +msgstr "" + +#. Guide has probably been deleted and no longer has an attached namedview. +#: ../src/sp-guide.cpp:473 +msgid "Deleted" +msgstr "" + +#: ../src/sp-guide.cpp:482 +msgid "" +"Shift+drag to rotate, Ctrl+drag to move origin, Del to " +"delete" +msgstr "" + +#: ../src/sp-guide.cpp:486 +#, c-format +msgid "vertical, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:489 +#, c-format +msgid "horizontal, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:494 +#, c-format +msgid "at %d degrees, through (%s,%s)" +msgstr "" + +#: ../src/sp-image.cpp:525 +msgid "embedded" +msgstr "" + +#: ../src/sp-image.cpp:533 +#, c-format +msgid "[bad reference]: %s" +msgstr "" + +#: ../src/sp-image.cpp:534 +#, c-format +msgid "%d × %d: %s" +msgstr "" + +#: ../src/sp-item.cpp:942 ../src/verbs.cpp:213 +msgid "Object" +msgstr "" + +#: ../src/sp-item.cpp:959 +#, c-format +msgid "%s; clipped" +msgstr "" + +#: ../src/sp-item.cpp:965 +#, c-format +msgid "%s; masked" +msgstr "" + +#: ../src/sp-item.cpp:975 +#, c-format +msgid "%s; filtered (%s)" +msgstr "" + +#: ../src/sp-item.cpp:977 +#, c-format +msgid "%s; filtered" +msgstr "" + +#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:82 +#, c-format +msgid "of %d object" +msgstr "" + +#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:82 +#, c-format +msgid "of %d objects" +msgstr "" + +#: ../src/sp-line.cpp:126 +msgid "Line" +msgstr "" + +#: ../src/splivarot.cpp:82 +msgid "Intersection" +msgstr "" + +#: ../src/splivarot.cpp:105 +msgid "Division" +msgstr "" + +#: ../src/splivarot.cpp:110 +msgid "Cut path" +msgstr "" + +#: ../src/splivarot.cpp:333 +msgid "Select at least 2 paths to perform a boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:337 +msgid "Select at least 1 path to perform a boolean union." +msgstr "" + +#: ../src/splivarot.cpp:345 +msgid "" +"Select exactly 2 paths to perform difference, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 +msgid "" +"Unable to determine the z-order of the objects selected for " +"difference, XOR, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:407 +msgid "" +"One of the objects is not a path, cannot perform boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:1156 +msgid "Select stroked path(s) to convert stroke to path." +msgstr "" + +#: ../src/splivarot.cpp:1511 +msgid "Convert stroke to path" +msgstr "" + +#. TRANSLATORS: "to outline" means "to convert stroke to path" +#: ../src/splivarot.cpp:1514 +msgid "No stroked paths in the selection." +msgstr "" + +#: ../src/splivarot.cpp:1585 +msgid "Selected object is not a path, cannot inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1676 ../src/splivarot.cpp:1741 +msgid "Create linked offset" +msgstr "" + +#: ../src/splivarot.cpp:1677 ../src/splivarot.cpp:1742 +msgid "Create dynamic offset" +msgstr "" + +#: ../src/splivarot.cpp:1767 +msgid "Select path(s) to inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1963 +msgid "Outset path" +msgstr "" + +#: ../src/splivarot.cpp:1963 +msgid "Inset path" +msgstr "" + +#: ../src/splivarot.cpp:1965 +msgid "No paths to inset/outset in the selection." +msgstr "" + +#: ../src/splivarot.cpp:2127 +msgid "Simplifying paths (separately):" +msgstr "" + +#: ../src/splivarot.cpp:2129 +msgid "Simplifying paths:" +msgstr "" + +#: ../src/splivarot.cpp:2166 +#, c-format +msgid "%s %d of %d paths simplified..." +msgstr "" + +#: ../src/splivarot.cpp:2179 +#, c-format +msgid "%d paths simplified." +msgstr "" + +#: ../src/splivarot.cpp:2193 +msgid "Select path(s) to simplify." +msgstr "" + +#: ../src/splivarot.cpp:2209 +msgid "No paths to simplify in the selection." +msgstr "" + +#: ../src/sp-lpe-item.cpp:249 +msgid "An exception occurred during execution of the Path Effect." +msgstr "" + +#: ../src/sp-offset.cpp:344 +msgid "Linked Offset" +msgstr "" + +#: ../src/sp-offset.cpp:346 +msgid "Dynamic Offset" +msgstr "" + +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:352 +#, c-format +msgid "%s by %f pt" +msgstr "" + +#: ../src/sp-offset.cpp:353 +msgid "outset" +msgstr "" + +#: ../src/sp-offset.cpp:353 +msgid "inset" +msgstr "" + +#: ../src/sp-path.cpp:70 +msgid "Path" +msgstr "" + +#: ../src/sp-path.cpp:95 +#, c-format +msgid ", path effect: %s" +msgstr "" + +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i node%s" +msgstr "" + +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i nodes%s" +msgstr "" + +#: ../src/sp-polygon.cpp:185 +msgid "Polygon" +msgstr "" + +#: ../src/sp-polyline.cpp:131 +msgid "Polyline" +msgstr "" + +#. Rectangle +#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:393 +msgid "Rectangle" +msgstr "" + +#. Spiral +#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../share/extensions/gcodetools_area.inx.h:11 +msgid "Spiral" +msgstr "" + +#. TRANSLATORS: since turn count isn't an integer, please adjust the +#. string as needed to deal with an localized plural forms. +#: ../src/sp-spiral.cpp:236 +#, c-format +msgid "with %3f turns" +msgstr "" + +#. Star +#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:407 +#: ../src/widgets/star-toolbar.cpp:469 +msgid "Star" +msgstr "" + +#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:462 +msgid "Polygon" +msgstr "" + +#. while there will never be less than 3 vertices, we still need to +#. make calls to ngettext because the pluralization may be different +#. for various numbers >=3. The singular form is used as the index. +#: ../src/sp-star.cpp:264 +#, c-format +msgid "with %d vertex" +msgstr "" + +#: ../src/sp-star.cpp:264 +#, c-format +msgid "with %d vertices" +msgstr "" + +#: ../src/sp-switch.cpp:76 +msgid "Conditional Group" +msgstr "" + +#: ../src/sp-text.cpp:330 ../src/verbs.cpp:328 +#: ../share/extensions/lorem_ipsum.inx.h:8 +#: ../share/extensions/replace_font.inx.h:11 +#: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 +#: ../share/extensions/text_extract.inx.h:14 +#: ../share/extensions/text_flipcase.inx.h:2 +#: ../share/extensions/text_lowercase.inx.h:2 +#: ../share/extensions/text_merge.inx.h:16 +#: ../share/extensions/text_randomcase.inx.h:2 +#: ../share/extensions/text_sentencecase.inx.h:2 +#: ../share/extensions/text_titlecase.inx.h:2 +#: ../share/extensions/text_uppercase.inx.h:2 +msgid "Text" +msgstr "" + +#. TRANSLATORS: For description of font with no name. +#: ../src/sp-text.cpp:347 +msgid "<no name found>" +msgstr "" + +#: ../src/sp-text.cpp:361 +#, c-format +msgid "on path%s (%s, %s)" +msgstr "" + +#: ../src/sp-text.cpp:362 +#, c-format +msgid "%s (%s, %s)" +msgstr "" + +#: ../src/sp-tref.cpp:237 +msgid "Cloned Character Data" +msgstr "" + +#: ../src/sp-tref.cpp:253 +msgid " from " +msgstr "" + +#: ../src/sp-tref.cpp:259 ../src/sp-use.cpp:244 +msgid "[orphaned]" +msgstr "" + +#: ../src/sp-tspan.cpp:220 +msgid "Text Span" +msgstr "" + +#: ../src/sp-use.cpp:213 +msgid "Symbol" +msgstr "" + +#: ../src/sp-use.cpp:216 +msgid "Clone" +msgstr "" + +#: ../src/sp-use.cpp:222 +#, c-format +msgid "called %s" +msgstr "" + +#. TRANSLATORS: Used for statusbar description for long chains: +#. * "Clone of: Clone of: ... in Layer 1". +#: ../src/sp-use.cpp:230 +msgid "..." +msgstr "" + +#: ../src/sp-use.cpp:239 +#, c-format +msgid "of: %s" +msgstr "" + +#: ../src/text-chemistry.cpp:94 +msgid "Select a text and a path to put text on path." +msgstr "" + +#: ../src/text-chemistry.cpp:99 +msgid "" +"This text object is already put on a path. Remove it from the path " +"first. Use Shift+D to look up its path." +msgstr "" + +#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it +#: ../src/text-chemistry.cpp:105 +msgid "" +"You cannot put text on a rectangle in this version. Convert rectangle to " +"path first." +msgstr "" + +#: ../src/text-chemistry.cpp:115 +msgid "The flowed text(s) must be visible in order to be put on a path." +msgstr "" + +#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2496 +msgid "Put text on path" +msgstr "" + +#: ../src/text-chemistry.cpp:197 +msgid "Select a text on path to remove it from path." +msgstr "" + +#: ../src/text-chemistry.cpp:218 +msgid "No texts-on-paths in the selection." +msgstr "" + +#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2498 +msgid "Remove text from path" +msgstr "" + +#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +msgid "Select text(s) to remove kerns from." +msgstr "" + +#: ../src/text-chemistry.cpp:286 +msgid "Remove manual kerns" +msgstr "" + +#: ../src/text-chemistry.cpp:306 +msgid "" +"Select a text and one or more paths or shapes to flow text " +"into frame." +msgstr "" + +#: ../src/text-chemistry.cpp:376 +msgid "Flow text into shape" +msgstr "" + +#: ../src/text-chemistry.cpp:398 +msgid "Select a flowed text to unflow it." +msgstr "" + +#: ../src/text-chemistry.cpp:472 +msgid "Unflow flowed text" +msgstr "" + +#: ../src/text-chemistry.cpp:484 +msgid "Select flowed text(s) to convert." +msgstr "" + +#: ../src/text-chemistry.cpp:502 +msgid "The flowed text(s) must be visible in order to be converted." +msgstr "" + +#: ../src/text-chemistry.cpp:530 +msgid "Convert flowed text to text" +msgstr "" + +#: ../src/text-chemistry.cpp:535 +msgid "No flowed text(s) to convert in the selection." +msgstr "" + +#: ../src/text-editing.cpp:44 +msgid "You cannot edit cloned character data." +msgstr "" + +#: ../src/tools-switch.cpp:91 +msgid "" +"Click to Select and Transform objects, Drag to select many " +"objects." +msgstr "" + +#: ../src/tools-switch.cpp:92 +msgid "Modify selected path points (nodes) directly." +msgstr "" + +#: ../src/tools-switch.cpp:93 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" + +#: ../src/tools-switch.cpp:94 +msgid "" +"Drag, click or click and scroll to spray the selected " +"objects." +msgstr "" + +#: ../src/tools-switch.cpp:95 +msgid "" +"Drag to create a rectangle. Drag controls to round corners and " +"resize. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:96 +msgid "" +"Drag to create a 3D box. Drag controls to resize in " +"perspective. Click to select (with Ctrl+Alt for single faces)." +msgstr "" + +#: ../src/tools-switch.cpp:97 +msgid "" +"Drag to create an ellipse. Drag controls to make an arc or " +"segment. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:98 +msgid "" +"Drag to create a star. Drag controls to edit the star shape. " +"Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:99 +msgid "" +"Drag to create a spiral. Drag controls to edit the spiral " +"shape. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:100 +msgid "" +"Drag to create a freehand line. Shift appends to selected " +"path, Alt activates sketch mode." +msgstr "" + +#: ../src/tools-switch.cpp:101 +msgid "" +"Click or click and drag to start a path; with Shift to " +"append to selected path. Ctrl+click to create single dots (straight " +"line modes only)." +msgstr "" + +#: ../src/tools-switch.cpp:102 +msgid "" +"Drag to draw a calligraphic stroke; with Ctrl to track a guide " +"path. Arrow keys adjust width (left/right) and angle (up/down)." +msgstr "" + +#: ../src/tools-switch.cpp:103 ../src/ui/tools/text-tool.cpp:1618 +msgid "" +"Click to select or create text, drag to create flowed text; " +"then type." +msgstr "" + +#: ../src/tools-switch.cpp:104 +msgid "" +"Drag or double click to create a gradient on selected objects, " +"drag handles to adjust gradients." +msgstr "" + +#: ../src/tools-switch.cpp:105 +msgid "" +"Drag or double click to create a mesh on selected objects, " +"drag handles to adjust meshes." +msgstr "" + +#: ../src/tools-switch.cpp:106 +msgid "" +"Click or drag around an area to zoom in, Shift+click to " +"zoom out." +msgstr "" + +#: ../src/tools-switch.cpp:107 +msgid "Drag to measure the dimensions of objects." +msgstr "" + +#: ../src/tools-switch.cpp:108 ../src/ui/tools/dropper-tool.cpp:285 +msgid "" +"Click to set fill, Shift+click to set stroke; drag to " +"average color in area; with Alt to pick inverse color; Ctrl+C " +"to copy the color under mouse to clipboard" +msgstr "" + +#: ../src/tools-switch.cpp:109 +msgid "Click and drag between shapes to create a connector." +msgstr "" + +#: ../src/tools-switch.cpp:110 +msgid "" +"Click to paint a bounded area, Shift+click to union the new " +"fill with the current selection, Ctrl+click to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" + +#: ../src/tools-switch.cpp:111 +msgid "Drag to erase." +msgstr "" + +#: ../src/tools-switch.cpp:112 +msgid "Choose a subtool from the toolbar" +msgstr "" + +#: ../src/trace/potrace/inkscape-potrace.cpp:512 +#: ../src/trace/potrace/inkscape-potrace.cpp:575 +msgid "Trace: %1. %2 nodes" +msgstr "" + +#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 +#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 +#: ../src/ui/dialog/pixelartdialog.cpp:338 +#: ../src/ui/dialog/pixelartdialog.cpp:356 +msgid "Select an image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:94 +msgid "Select only one image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:112 +msgid "Select one image and one or more shapes above it" +msgstr "" + +#: ../src/trace/trace.cpp:216 +msgid "Trace: No active desktop" +msgstr "" + +#: ../src/trace/trace.cpp:313 +msgid "Invalid SIOX result" +msgstr "" + +#: ../src/trace/trace.cpp:406 +msgid "Trace: No active document" +msgstr "" + +#: ../src/trace/trace.cpp:438 +msgid "Trace: Image has no bitmap data" +msgstr "" + +#: ../src/trace/trace.cpp:445 +msgid "Trace: Starting trace..." +msgstr "" + +#. ## inform the document, so we can undo +#: ../src/trace/trace.cpp:548 +msgid "Trace bitmap" +msgstr "" + +#: ../src/trace/trace.cpp:552 +#, c-format +msgid "Trace: Done. %ld nodes created" +msgstr "" + +#. check whether something is selected +#: ../src/ui/clipboard.cpp:261 +msgid "Nothing was copied." +msgstr "" + +#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 +#: ../src/ui/clipboard.cpp:606 +msgid "Nothing on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:432 +msgid "Select object(s) to paste style to." +msgstr "" + +#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 +msgid "No style on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:485 +msgid "Select object(s) to paste size to." +msgstr "" + +#: ../src/ui/clipboard.cpp:492 +msgid "No size on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:545 +msgid "Select object(s) to paste live path effect to." +msgstr "" + +#. no_effect: +#: ../src/ui/clipboard.cpp:570 +msgid "No effect on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:617 +msgid "Clipboard does not contain a path." +msgstr "" + +#. * +#. * Constructor +#. +#: ../src/ui/dialog/aboutbox.cpp:80 +msgid "About Inkscape" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:91 +msgid "_Splash" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:95 +msgid "_Authors" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:97 +msgid "_Translators" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:99 +msgid "_License" +msgstr "" + +#. TRANSLATORS: This is the filename of the `About Inkscape' picture in +#. the `screens' directory. Thus the translation of "about.svg" should be +#. the filename of its translated version, e.g. about.zh.svg for Chinese. +#. +#. N.B. about.svg changes once per release. (We should probably rename +#. the original to about-0.40.svg etc. as soon as we have a translation. +#. If we do so, then add an item to release-checklist saying that the +#. string here should be changed.) +#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the +#. native filename encoding... and the filename passed to sp_document_new +#. should be in UTF-*8.. +#: ../src/ui/dialog/aboutbox.cpp:166 +msgid "about.svg" +msgstr "" + +#. TRANSLATORS: Put here your name (and other national contributors') +#. one per line in the form of: name surname (email). Use \n for newline. +#: ../src/ui/dialog/aboutbox.cpp:416 +msgid "translator-credits" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:171 +#: ../src/ui/dialog/align-and-distribute.cpp:852 +msgid "Align" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:341 +#: ../src/ui/dialog/align-and-distribute.cpp:853 +msgid "Distribute" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:420 +msgid "Minimum horizontal gap (in px units) between bounding boxes" +msgstr "" + +#. TRANSLATORS: "H:" stands for horizontal gap +#: ../src/ui/dialog/align-and-distribute.cpp:422 +msgctxt "Gap" +msgid "_H:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:430 +msgid "Minimum vertical gap (in px units) between bounding boxes" +msgstr "" + +#. TRANSLATORS: Vertical gap +#: ../src/ui/dialog/align-and-distribute.cpp:432 +msgctxt "Gap" +msgid "_V:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:468 +#: ../src/ui/dialog/align-and-distribute.cpp:855 +#: ../src/widgets/connector-toolbar.cpp:408 +msgid "Remove overlaps" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:499 +#: ../src/widgets/connector-toolbar.cpp:237 +msgid "Arrange connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:592 +msgid "Exchange Positions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:626 +msgid "Unclump" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:698 +msgid "Randomize positions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:801 +msgid "Distribute text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:824 +msgid "Align text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:854 +msgid "Rearrange" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:856 +#: ../src/widgets/toolbox.cpp:1727 +msgid "Nodes" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:870 +msgid "Relative to: " +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:871 +msgid "_Treat selection as group: " +msgstr "" + +#. Align +#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2942 +msgid "Align right edges of objects to the left edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2944 +msgid "Align left edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2946 +msgid "Center on vertical axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2948 +msgid "Align right sides" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2950 +msgid "Align left edges of objects to the right edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2952 +msgid "Align bottom edges of objects to the top edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2954 +msgid "Align top edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2956 +msgid "Center on horizontal axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2958 +msgid "Align bottom edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2960 +msgid "Align top edges of objects to the bottom edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:909 +msgid "Align baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:912 +msgid "Align baselines of texts" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:917 +msgid "Make horizontal gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:921 +msgid "Distribute left edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:924 +msgid "Distribute centers equidistantly horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:927 +msgid "Distribute right edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:931 +msgid "Make vertical gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:935 +msgid "Distribute top edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:938 +msgid "Distribute centers equidistantly vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:941 +msgid "Distribute bottom edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:946 +msgid "Distribute baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:949 +msgid "Distribute baselines of texts vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/widgets/connector-toolbar.cpp:370 +msgid "Nicely arrange selected connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:958 +msgid "Exchange positions of selected objects - selection order" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:961 +msgid "Exchange positions of selected objects - stacking order" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:964 +msgid "Exchange positions of selected objects - clockwise rotate" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:969 +msgid "Randomize centers in both dimensions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:972 +msgid "Unclump objects: try to equalize edge-to-edge distances" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:977 +msgid "" +"Move objects as little as possible so that their bounding boxes do not " +"overlap" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:985 +msgid "Align selected nodes to a common horizontal line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:988 +msgid "Align selected nodes to a common vertical line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:991 +msgid "Distribute selected nodes horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:994 +msgid "Distribute selected nodes vertically" +msgstr "" + +#. Rest of the widgetry +#: ../src/ui/dialog/align-and-distribute.cpp:999 +msgid "Last selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1000 +msgid "First selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1001 +msgid "Biggest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1002 +msgid "Smallest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1005 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1555 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:1997 +#: ../share/extensions/printing_marks.inx.h:18 +msgid "Selection" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 +msgid "Edit profile" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 +msgid "Profile name:" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 +msgid "Save" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 +msgid "Add profile" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:112 +msgid "_Symmetry" +msgstr "" + +#. TRANSLATORS: "translation" means "shift" / "displacement" here. +#: ../src/ui/dialog/clonetiler.cpp:124 +msgid "P1: simple translation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:125 +msgid "P2: 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:126 +msgid "PM: reflection" +msgstr "" + +#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. +#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html +#: ../src/ui/dialog/clonetiler.cpp:129 +msgid "PG: glide reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:130 +msgid "CM: reflection + glide reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:131 +msgid "PMM: reflection + reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:132 +msgid "PMG: reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:133 +msgid "PGG: glide reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:134 +msgid "CMM: reflection + reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:135 +msgid "P4: 90° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:136 +msgid "P4M: 90° rotation + 45° reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:137 +msgid "P4G: 90° rotation + 90° reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:138 +msgid "P3: 120° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:139 +msgid "P31M: reflection + 120° rotation, dense" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:140 +msgid "P3M1: reflection + 120° rotation, sparse" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:141 +msgid "P6: 60° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:142 +msgid "P6M: reflection + 60° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:162 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:180 +msgid "S_hift" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount +#: ../src/ui/dialog/clonetiler.cpp:190 +#, no-c-format +msgid "Shift X:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:198 +#, no-c-format +msgid "Horizontal shift per row (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:206 +#, no-c-format +msgid "Horizontal shift per column (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:212 +msgid "Randomize the horizontal shift by this percentage" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount +#: ../src/ui/dialog/clonetiler.cpp:222 +#, no-c-format +msgid "Shift Y:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:230 +#, no-c-format +msgid "Vertical shift per row (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:238 +#, no-c-format +msgid "Vertical shift per column (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:245 +msgid "Randomize the vertical shift by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 +msgid "Exponent:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:260 +msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:267 +msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#. TRANSLATORS: "Alternate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 +#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 +#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 +msgid "Alternate:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:281 +msgid "Alternate the sign of shifts for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:286 +msgid "Alternate the sign of shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 +#: ../src/ui/dialog/clonetiler.cpp:533 +msgid "Cumulate:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:299 +msgid "Cumulate the shifts for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:304 +msgid "Cumulate the shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:311 +msgid "Exclude tile:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:317 +msgid "Exclude tile height in shift" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:322 +msgid "Exclude tile width in shift" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:331 +msgid "Sc_ale" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:339 +msgid "Scale X:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:347 +#, no-c-format +msgid "Horizontal scale per row (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:355 +#, no-c-format +msgid "Horizontal scale per column (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:361 +msgid "Randomize the horizontal scale by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:369 +msgid "Scale Y:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:377 +#, no-c-format +msgid "Vertical scale per row (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:385 +#, no-c-format +msgid "Vertical scale per column (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:391 +msgid "Randomize the vertical scale by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:405 +msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:411 +msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:419 +msgid "Base:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 +msgid "" +"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:445 +msgid "Alternate the sign of scales for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:450 +msgid "Alternate the sign of scales for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:463 +msgid "Cumulate the scales for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:468 +msgid "Cumulate the scales for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:477 +msgid "_Rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:485 +msgid "Angle:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:493 +#, no-c-format +msgid "Rotate tiles by this angle for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:501 +#, no-c-format +msgid "Rotate tiles by this angle for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:507 +msgid "Randomize the rotation angle by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:521 +msgid "Alternate the rotation direction for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:526 +msgid "Alternate the rotation direction for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:539 +msgid "Cumulate the rotation for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:544 +msgid "Cumulate the rotation for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:553 +msgid "_Blur & opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:562 +msgid "Blur:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:568 +msgid "Blur tiles by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:574 +msgid "Blur tiles by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:580 +msgid "Randomize the tile blur by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:594 +msgid "Alternate the sign of blur change for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:599 +msgid "Alternate the sign of blur change for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:608 +msgid "Opacity:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:614 +msgid "Decrease tile opacity by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:620 +msgid "Decrease tile opacity by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:626 +msgid "Randomize the tile opacity by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:640 +msgid "Alternate the sign of opacity change for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:645 +msgid "Alternate the sign of opacity change for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:653 +msgid "Co_lor" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:663 +msgid "Initial color: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "Initial color of tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "" +"Initial color for clones (works only if the original has unset fill or " +"stroke)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:682 +msgid "H:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:688 +msgid "Change the tile hue by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:694 +msgid "Change the tile hue by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:700 +msgid "Randomize the tile hue by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:709 +msgid "S:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:715 +msgid "Change the color saturation by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:721 +msgid "Change the color saturation by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:727 +msgid "Randomize the color saturation by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:735 +msgid "L:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:741 +msgid "Change the color lightness by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:747 +msgid "Change the color lightness by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:753 +msgid "Randomize the color lightness by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:767 +msgid "Alternate the sign of color changes for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:772 +msgid "Alternate the sign of color changes for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:780 +msgid "_Trace" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:792 +msgid "Trace the drawing under the tiles" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:796 +msgid "" +"For each clone, pick a value from the drawing in that clone's location and " +"apply it to the clone" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:815 +msgid "1. Pick from the drawing:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:833 +msgid "Pick the visible color and opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:841 +msgid "Pick the total accumulated opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:848 +msgid "R" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:849 +msgid "Pick the Red component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:856 +msgid "G" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:857 +msgid "Pick the Green component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:864 +msgid "B" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:865 +msgid "Pick the Blue component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:872 +msgctxt "Clonetiler color hue" +msgid "H" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:873 +msgid "Pick the hue of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:880 +msgctxt "Clonetiler color saturation" +msgid "S" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:881 +msgid "Pick the saturation of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:888 +msgctxt "Clonetiler color lightness" +msgid "L" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:889 +msgid "Pick the lightness of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:899 +msgid "2. Tweak the picked value:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:916 +msgid "Gamma-correct:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:920 +msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:927 +msgid "Randomize:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:931 +msgid "Randomize the picked value by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:938 +msgid "Invert:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:942 +msgid "Invert the picked value" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:948 +msgid "3. Apply the value to the clones':" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:963 +msgid "Presence" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:966 +msgid "" +"Each clone is created with the probability determined by the picked value in " +"that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:973 +msgid "Size" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:976 +msgid "Each clone's size is determined by the picked value in that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:986 +msgid "" +"Each clone is painted by the picked color (the original must have unset fill " +"or stroke)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:996 +msgid "Each clone's opacity is determined by the picked value in that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1044 +msgid "How many rows in the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1074 +msgid "How many columns in the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1119 +msgid "Width of the rectangle to be filled" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1152 +msgid "Height of the rectangle to be filled" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1169 +msgid "Rows, columns: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1170 +msgid "Create the specified number of rows and columns" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1179 +msgid "Width, height: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1180 +msgid "Fill the specified width and height with the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1201 +msgid "Use saved size and position of the tile" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1204 +msgid "" +"Pretend that the size and position of the tile are the same as the last time " +"you tiled it (if any), instead of using the current size" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1238 +msgid " _Create " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1240 +msgid "Create and tile the clones of the selection" +msgstr "" + +#. TRANSLATORS: if a group of objects are "clumped" together, then they +#. are unevenly spread in the given amount of space - as shown in the +#. diagrams on the left in the following screenshot: +#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png +#. So unclumping is the process of spreading a number of objects out more evenly. +#: ../src/ui/dialog/clonetiler.cpp:1260 +msgid " _Unclump " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1261 +msgid "Spread out clones to reduce clumping; can be applied repeatedly" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1267 +msgid " Re_move " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1268 +msgid "Remove existing tiled clones of the selected object (siblings only)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1284 +msgid " R_eset " +msgstr "" + +#. TRANSLATORS: "change" is a noun here +#: ../src/ui/dialog/clonetiler.cpp:1286 +msgid "" +"Reset all shifts, scales, rotates, opacity and color changes in the dialog " +"to zero" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1359 +msgid "Nothing selected." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1365 +msgid "More than one object selected." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1372 +#, c-format +msgid "Object has %d tiled clones." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1377 +msgid "Object has no tiled clones." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2097 +msgid "Select one object whose tiled clones to unclump." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2119 +msgid "Unclump tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2148 +msgid "Select one object whose tiled clones to remove." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2171 +msgid "Delete tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2224 +msgid "" +"If you want to clone several objects, group them and clone the " +"group." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2233 +msgid "Creating tiled clones..." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2638 +msgid "Create tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2871 +msgid "Per row:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2889 +msgid "Per column:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2897 +msgid "Randomize:" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:131 +#, c-format +msgid "" +"Color: %s; Click to set fill, Shift+click to set stroke" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:509 +msgid "Change color definition" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove stroke color" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove fill color" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set stroke color to none" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set fill color to none" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set stroke color from swatch" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set fill color from swatch" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:73 +msgid "Messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +msgid "_Clear" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +msgid "Capture log messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:95 +msgid "Release log messages" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:88 +#: ../src/ui/dialog/document-properties.cpp:156 +msgid "Metadata" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:89 +#: ../src/ui/dialog/document-properties.cpp:157 +msgid "License" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:1002 +msgid "Dublin Core Entities" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:168 +#: ../src/ui/dialog/document-properties.cpp:1064 +msgid "License" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "Show page _border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "If set, rectangular page border is shown" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "Border on _top of drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "If set, border is always on top of the drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "_Show border shadow" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "If set, page border shows a shadow on its right and lower side" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Back_ground color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "" +"Color of the page background. Note: transparency setting ignored while " +"editing but used when exporting to bitmap." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Border _color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Page border color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Color of the page border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:114 +msgid "Default _units:" +msgstr "" + +#. --------------------------------------------------------------- +#. General snap options +#: ../src/ui/dialog/document-properties.cpp:118 +msgid "Show _guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:118 +msgid "Show or hide guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "Guide co_lor:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "Guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "Color of guidelines" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:120 +msgid "_Highlight color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:120 +msgid "Highlighted guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:120 +msgid "Color of a guideline when it is under mouse" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Snap _distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Snap only when _closer than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:127 +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "Always snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Snapping distance, in screen pixels, for snapping to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Always snap to objects, regardless of their distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:124 +msgid "" +"If set, objects only snap to another object when it's within the range " +"specified below" +msgstr "" + +#. Options for snapping to grids +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "Snap d_istance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "Snap only when c_loser than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:128 +msgid "Snapping distance, in screen pixels, for snapping to grid" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:128 +msgid "Always snap to grids, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:129 +msgid "" +"If set, objects only snap to a grid line when it's within the range " +"specified below" +msgstr "" + +#. Options for snapping to guides +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "Snap dist_ance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "Snap only when close_r than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:133 +msgid "Snapping distance, in screen pixels, for snapping to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:133 +msgid "Always snap to guides, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:134 +msgid "" +"If set, objects only snap to a guide when it's within the range specified " +"below" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "Snap to clip paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "When snapping to paths, then also try snapping to clip paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:138 +msgid "Snap to mask paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:138 +msgid "When snapping to paths, then also try snapping to mask paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:139 +msgid "Snap perpendicularly" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:139 +msgid "" +"When snapping to paths or guides, then also try snapping perpendicularly" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:140 +msgid "Snap tangentially" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:140 +msgid "When snapping to paths or guides, then also try snapping tangentially" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:143 +msgctxt "Grid" +msgid "_New" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:143 +msgid "Create new grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:144 +msgctxt "Grid" +msgid "_Remove" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:144 +msgid "Remove selected grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:151 +#: ../src/widgets/toolbox.cpp:1834 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:153 ../src/verbs.cpp:2748 +msgid "Snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:155 +msgid "Scripting" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:318 +msgid "General" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:320 +msgid "Color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:322 +msgid "Border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:324 +msgid "Page Size" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:357 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:375 +msgid "Snap to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:377 +msgid "Snap to grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:379 +msgid "Snap to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:381 +msgid "Miscellaneous" +msgstr "" + +#. TODO check if this next line was sometimes needed. It being there caused an assertion. +#. Inkscape::GC::release(defsRepr); +#. inform the document, so we can undo +#. Color Management +#: ../src/ui/dialog/document-properties.cpp:494 ../src/verbs.cpp:2925 +msgid "Link Color Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:595 +msgid "Remove linked color profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:608 +msgid "Linked Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:610 +msgid "Available Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:612 +msgid "Link Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:621 +msgid "Unlink Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:705 +msgid "Profile Name" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:741 +msgid "External scripts" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:742 +msgid "Embedded scripts" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:747 +msgid "External script files:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:749 +msgid "Add the current file name or browse for a file" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:758 +#: ../src/ui/dialog/document-properties.cpp:847 +#: ../src/ui/widget/selected-style.cpp:339 +msgid "Remove" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:828 +msgid "Filename" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:836 +msgid "Embedded script files:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:838 +msgid "New" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:917 +msgid "Script id" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:923 +msgid "Content:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1040 +msgid "_Save as default" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1041 +msgid "Save this metadata as the default metadata" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1042 +msgid "Use _default" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1043 +msgid "Use the previously saved default metadata here" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1116 +msgid "Add external script..." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1155 +msgid "Select a script to load" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1183 +msgid "Add embedded script..." +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1214 +msgid "Remove external script" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1248 +msgid "Remove embedded script" +msgstr "" + +#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1348 +msgid "Edit embedded script" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1431 +msgid "Creation" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1432 +msgid "Defined grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1675 +msgid "Remove grid" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1754 +msgid "Changed document unit" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2800 +msgid "_Page" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2804 +msgid "_Drawing" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2806 +msgid "_Selection" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 +msgid "_Custom" +msgstr "" + +#: ../src/ui/dialog/export.cpp:168 ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +#: ../share/extensions/render_gears.inx.h:6 +msgid "Units:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:170 +msgid "_Export As..." +msgstr "" + +#: ../src/ui/dialog/export.cpp:173 +msgid "B_atch export all selected objects" +msgstr "" + +#: ../src/ui/dialog/export.cpp:173 +msgid "" +"Export each selected object into its own PNG file, using export hints if any " +"(caution, overwrites without asking!)" +msgstr "" + +#: ../src/ui/dialog/export.cpp:175 +msgid "Hide a_ll except selected" +msgstr "" + +#: ../src/ui/dialog/export.cpp:175 +msgid "In the exported image, hide all objects except those that are selected" +msgstr "" + +#: ../src/ui/dialog/export.cpp:176 +msgid "Close when complete" +msgstr "" + +#: ../src/ui/dialog/export.cpp:176 +msgid "Once the export completes, close this dialog" +msgstr "" + +#: ../src/ui/dialog/export.cpp:178 +msgid "_Export" +msgstr "" + +#: ../src/ui/dialog/export.cpp:196 +msgid "Export area" +msgstr "" + +#: ../src/ui/dialog/export.cpp:235 +msgid "_x0:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:239 +msgid "x_1:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:243 +msgid "Wid_th:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:247 +msgid "_y0:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:251 +msgid "y_1:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:255 +msgid "Hei_ght:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:270 +msgid "Image size" +msgstr "" + +#: ../src/ui/dialog/export.cpp:288 ../src/ui/dialog/export.cpp:299 +msgid "pixels at" +msgstr "" + +#: ../src/ui/dialog/export.cpp:294 +msgid "dp_i" +msgstr "" + +#: ../src/ui/dialog/export.cpp:299 ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "_Height:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:307 +#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 +msgid "dpi" +msgstr "" + +#: ../src/ui/dialog/export.cpp:315 +msgid "_Filename" +msgstr "" + +#: ../src/ui/dialog/export.cpp:357 +msgid "Export the bitmap file with these settings" +msgstr "" + +#: ../src/ui/dialog/export.cpp:608 +#, c-format +msgid "B_atch export %d selected object" +msgid_plural "B_atch export %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/dialog/export.cpp:924 +msgid "Export in progress" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1014 +msgid "No items selected." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1018 ../src/ui/dialog/export.cpp:1020 +msgid "Exporting %1 files" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1060 ../src/ui/dialog/export.cpp:1062 +#, c-format +msgid "Exporting file %s..." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1071 ../src/ui/dialog/export.cpp:1162 +#, c-format +msgid "Could not export to filename %s.\n" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1074 +#, c-format +msgid "Could not export to filename %s." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1089 +#, c-format +msgid "Successfully exported %d files from %d selected items." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1100 +msgid "You have to enter a filename." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1101 +msgid "You have to enter a filename" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1115 +msgid "The chosen area to be exported is invalid." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1116 +msgid "The chosen area to be exported is invalid" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1131 +#, c-format +msgid "Directory %s does not exist or is not a directory.\n" +msgstr "" + +#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image +#: ../src/ui/dialog/export.cpp:1145 ../src/ui/dialog/export.cpp:1147 +msgid "Exporting %1 (%2 x %3)" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1173 +#, c-format +msgid "Drawing exported to %s." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1177 +msgid "Export aborted." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1299 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2361 ../src/widgets/desktop-widget.cpp:1123 +msgid "_Save" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:81 +msgid "Information" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 +#: ../src/verbs.cpp:309 ../share/extensions/color_custom.inx.h:7 +#: ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/dots.inx.h:7 +#: ../share/extensions/draw_from_triangle.inx.h:35 +#: ../share/extensions/dxf_input.inx.h:10 +#: ../share/extensions/dxf_outlines.inx.h:24 +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:53 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/generate_voronoi.inx.h:5 +#: ../share/extensions/gimp_xcf.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/jessyInk_autoTexts.inx.h:8 +#: ../share/extensions/jessyInk_effects.inx.h:13 +#: ../share/extensions/jessyInk_export.inx.h:7 +#: ../share/extensions/jessyInk_install.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:44 +#: ../share/extensions/jessyInk_masterSlide.inx.h:5 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 +#: ../share/extensions/jessyInk_summary.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:12 +#: ../share/extensions/jessyInk_uninstall.inx.h:10 +#: ../share/extensions/jessyInk_video.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:7 +#: ../share/extensions/layout_nup.inx.h:24 +#: ../share/extensions/lindenmayer.inx.h:13 +#: ../share/extensions/lorem_ipsum.inx.h:6 +#: ../share/extensions/measure.inx.h:15 +#: ../share/extensions/pathalongpath.inx.h:16 +#: ../share/extensions/pathscatter.inx.h:18 +#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/web-set-att.inx.h:25 +#: ../share/extensions/webslicer_create_group.inx.h:11 +#: ../share/extensions/webslicer_export.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:23 +msgid "Help" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:83 +msgid "Parameters" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:398 +msgid "No preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:504 +msgid "too large for preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:594 +msgid "Enable preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:751 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:764 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:768 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:779 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:795 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:810 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:289 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:420 +msgid "All Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:776 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:792 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:807 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:290 +msgid "All Inkscape Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:813 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:291 +msgid "All Images" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:786 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:802 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:816 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:292 +msgid "All Vectors" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:789 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:805 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:819 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:293 +msgid "All Bitmaps" +msgstr "" + +#. ###### File options +#. ###### Do we want the .xxx extension automatically added? +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1048 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1616 +msgid "Append filename extension automatically" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1226 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1480 +msgid "Guess from extension" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 +msgid "Left edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1502 +msgid "Top edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1503 +msgid "Right edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1504 +msgid "Bottom edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 +msgid "Source width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1506 +msgid "Source height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1507 +msgid "Destination width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1508 +msgid "Destination height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1509 +msgid "Resolution (dots per inch)" +msgstr "" + +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1547 +msgid "Document" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1559 +msgctxt "Export dialog" +msgid "Custom" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1579 +msgid "Source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1599 +msgid "Cairo" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1602 +msgid "Antialias" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:421 +msgid "All Executable Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:613 +msgid "Show Preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:751 +msgid "No file selected" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:62 +msgid "_Fill" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:63 +msgid "Stroke _paint" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:64 +msgid "Stroke st_yle" +msgstr "" + +#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor +#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +msgid "" +"This matrix determines a linear transform on color space. Each line affects " +"one of the color components. Each column determines how much of each color " +"component from the input is passed to the output. The last column does not " +"depend on input colors, so can be used to adjust a constant component value." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +msgid "Image File" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +msgid "Selected SVG Element" +msgstr "" + +#. TODO: any image, not just svg +#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +msgid "Select an image to be used as feImage input" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +msgid "This SVG filter effect does not require any parameters." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +msgid "This SVG filter effect is not yet implemented in Inkscape." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +msgid "Slope" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +msgid "Intercept" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +msgid "Amplitude" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +msgid "Exponent" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +msgid "New transfer function type" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +msgid "Light Source:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Direction angle for the light source on the XY plane, in degrees" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Direction angle for the light source on the YZ plane, in degrees" +msgstr "" + +#. default x: +#. default y: +#. default z: +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +msgid "Location:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "X coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Y coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Z coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Points At" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Specular Exponent" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Exponent value controlling the focus for the light source" +msgstr "" + +#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +msgid "Cone Angle" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +msgid "" +"This is the angle between the spot light axis (i.e. the axis between the " +"light source and the point to which it is pointing at) and the spot light " +"cone. No light is projected outside this cone." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +msgid "New light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +msgid "_Duplicate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +msgid "_Filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +msgid "R_ename" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +msgid "Rename filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +msgid "Apply filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +msgid "filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +msgid "Add filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +msgid "Duplicate filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +msgid "_Effect" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +msgid "Connections" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +msgid "Remove filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +msgid "Remove merge node" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +msgid "Reorder filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +msgid "Add Effect:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +msgid "No effect selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +msgid "No filter selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +msgid "Effect parameters" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +msgid "Filter General Settings" +msgstr "" + +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Coordinates:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "X coordinate of the left corners of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Y coordinate of the upper corners of filter effects region" +msgstr "" + +#. default width: +#. default height: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Dimensions:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Width of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Height of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +msgid "" +"Indicates the type of matrix operation. The keyword 'matrix' indicates that " +"a full 5x4 matrix of values will be provided. The other keywords represent " +"convenience shortcuts to allow commonly used color operations to be " +"performed without specifying a complete matrix." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +msgid "Value(s):" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +msgid "R:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 +#: ../src/widgets/sp-color-icc-selector.cpp:359 +msgid "G:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +msgid "B:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +msgid "A:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +msgid "Operator:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +msgid "K1:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +msgid "" +"If the arithmetic operation is chosen, each result pixel is computed using " +"the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " +"values of the first and second inputs respectively." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +msgid "K2:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +msgid "K3:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +msgid "K4:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "Size:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "width of the convolve matrix" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "height of the convolve matrix" +msgstr "" + +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/object-attributes.cpp:48 +msgid "Target:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +msgid "" +"X coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +msgid "" +"Y coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" + +#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +msgid "Kernel:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +msgid "" +"This matrix describes the convolve operation that is applied to the input " +"image in order to calculate the pixel colors at the output. Different " +"arrangements of values in this matrix result in various possible visual " +"effects. An identity matrix would lead to a motion blur effect (parallel to " +"the matrix diagonal) while a matrix filled with a constant non-zero value " +"would lead to a common blur effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +msgid "Divisor:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +msgid "" +"After applying the kernelMatrix to the input image to yield a number, that " +"number is divided by divisor to yield the final destination color value. A " +"divisor that is the sum of all the matrix values tends to have an evening " +"effect on the overall color intensity of the result." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +msgid "Bias:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +msgid "" +"This value is added to each component. This is useful to define a constant " +"value as the zero response of the filter." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +msgid "Edge Mode:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +msgid "" +"Determines how to extend the input image as necessary with color values so " +"that the matrix operations can be applied when the kernel is positioned at " +"or near the edge of the input image." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +msgid "Preserve Alpha" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +msgid "If set, the alpha channel won't be altered by this filter primitive." +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +msgid "Diffuse Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Defines the color of the light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +msgid "Surface Scale:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +msgid "" +"This value amplifies the heights of the bump map defined by the input alpha " +"channel" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "Constant:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "This constant affects the Phong lighting model." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +msgid "Kernel Unit Length:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +msgid "This defines the intensity of the displacement effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "X displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "Color component that controls the displacement in the X direction" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Y displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Color component that controls the displacement in the Y direction" +msgstr "" + +#. default: black +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "Flood Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "The whole filter region will be filled with this color." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "Standard Deviation:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "The standard deviation for the blur operation." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +msgid "" +"Erode: performs \"thinning\" of input image.\n" +"Dilate: performs \"fattenning\" of input image." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +msgid "Source of Image:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "Delta X:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "This is how far the input image gets shifted to the right" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "Delta Y:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "This is how far the input image gets shifted downwards" +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Specular Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../share/extensions/interp.inx.h:2 +msgid "Exponent:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +msgid "Exponent for specular term, larger is more \"shiny\"." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +msgid "" +"Indicates whether the filter primitive should perform a noise or turbulence " +"function." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +msgid "Base Frequency:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +msgid "Octaves:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "Seed:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "The starting number for the pseudo random number generator." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +msgid "Add filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +msgid "" +"The feBlend filter primitive provides 4 image blending modes: screen, " +"multiply, darken and lighten." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +msgid "" +"The feColorMatrix filter primitive applies a matrix transformation to " +"color of each rendered pixel. This allows for effects like turning object to " +"grayscale, modifying color saturation and changing color hue." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 +msgid "" +"The feComponentTransfer filter primitive manipulates the input's " +"color components (red, green, blue, and alpha) according to particular " +"transfer functions, allowing operations like brightness and contrast " +"adjustment, color balance, and thresholding." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +msgid "" +"The feComposite filter primitive composites two images using one of " +"the Porter-Duff blending modes or the arithmetic mode described in SVG " +"standard. Porter-Duff blending modes are essentially logical operations " +"between the corresponding pixel values of the images." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +msgid "" +"The feConvolveMatrix lets you specify a Convolution to be applied on " +"the image. Common effects created using convolution matrices are blur, " +"sharpening, embossing and edge detection. Note that while gaussian blur can " +"be created using this filter primitive, the special gaussian blur primitive " +"is faster and resolution-independent." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +msgid "" +"The feDisplacementMap filter primitive displaces the pixels in the " +"first input using the second input as a displacement map, that shows from " +"how far the pixel should come from. Classical examples are whirl and pinch " +"effects." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +msgid "" +"The feFlood filter primitive fills the region with a given color and " +"opacity. It is usually used as an input to other filters to apply color to " +"a graphic." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 +msgid "" +"The feGaussianBlur filter primitive uniformly blurs its input. It is " +"commonly used together with feOffset to create a drop shadow effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 +msgid "" +"The feImage filter primitive fills the region with an external image " +"or another part of the document." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 +msgid "" +"The feMerge filter primitive composites several temporary images " +"inside the filter primitive to a single image. It uses normal alpha " +"compositing for this. This is equivalent to using several feBlend primitives " +"in 'normal' mode or several feComposite primitives in 'over' mode." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +msgid "" +"The feMorphology filter primitive provides erode and dilate effects. " +"For single-color objects erode makes the object thinner and dilate makes it " +"thicker." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 +msgid "" +"The feOffset filter primitive offsets the image by an user-defined " +"amount. For example, this is useful for drop shadows, where the shadow is in " +"a slightly different position than the actual object." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives " +"create \"embossed\" shadings. The input's alpha channel is used to provide " +"depth information: higher opacity areas are raised toward the viewer and " +"lower opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +msgid "" +"The feTile filter primitive tiles a region with its input graphic" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +msgid "" +"The feTurbulence filter primitive renders Perlin noise. This kind of " +"noise is useful in simulating several nature phenomena like clouds, fire and " +"smoke and in generating complex textures like marble or granite." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 +msgid "Duplicate filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +msgid "Set filter primitive attribute" +msgstr "" + +#: ../src/ui/dialog/find.cpp:71 +msgid "F_ind:" +msgstr "" + +#: ../src/ui/dialog/find.cpp:71 +msgid "Find objects by their content or properties (exact or partial match)" +msgstr "" + +#: ../src/ui/dialog/find.cpp:72 +msgid "R_eplace:" +msgstr "" + +#: ../src/ui/dialog/find.cpp:72 +msgid "Replace match with this value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:74 +msgid "_All" +msgstr "" + +#: ../src/ui/dialog/find.cpp:74 +msgid "Search in all layers" +msgstr "" + +#: ../src/ui/dialog/find.cpp:75 +msgid "Current _layer" +msgstr "" + +#: ../src/ui/dialog/find.cpp:75 +msgid "Limit search to the current layer" +msgstr "" + +#: ../src/ui/dialog/find.cpp:76 +msgid "Sele_ction" +msgstr "" + +#: ../src/ui/dialog/find.cpp:76 +msgid "Limit search to the current selection" +msgstr "" + +#: ../src/ui/dialog/find.cpp:77 +msgid "Search in text objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:78 +msgid "_Properties" +msgstr "" + +#: ../src/ui/dialog/find.cpp:78 +msgid "Search in object properties, styles, attributes and IDs" +msgstr "" + +#: ../src/ui/dialog/find.cpp:80 +msgid "Search in" +msgstr "" + +#: ../src/ui/dialog/find.cpp:81 +msgid "Scope" +msgstr "" + +#: ../src/ui/dialog/find.cpp:83 +msgid "Case sensiti_ve" +msgstr "" + +#: ../src/ui/dialog/find.cpp:83 +msgid "Match upper/lower case" +msgstr "" + +#: ../src/ui/dialog/find.cpp:84 +msgid "E_xact match" +msgstr "" + +#: ../src/ui/dialog/find.cpp:84 +msgid "Match whole objects only" +msgstr "" + +#: ../src/ui/dialog/find.cpp:85 +msgid "Include _hidden" +msgstr "" + +#: ../src/ui/dialog/find.cpp:85 +msgid "Include hidden objects in search" +msgstr "" + +#: ../src/ui/dialog/find.cpp:86 +msgid "Include loc_ked" +msgstr "" + +#: ../src/ui/dialog/find.cpp:86 +msgid "Include locked objects in search" +msgstr "" + +#: ../src/ui/dialog/find.cpp:88 +msgid "General" +msgstr "" + +#: ../src/ui/dialog/find.cpp:90 +msgid "_ID" +msgstr "" + +#: ../src/ui/dialog/find.cpp:90 +msgid "Search id name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:91 +msgid "Attribute _name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:91 +msgid "Search attribute name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:92 +msgid "Attri_bute value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:92 +msgid "Search attribute value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:93 +msgid "_Style" +msgstr "" + +#: ../src/ui/dialog/find.cpp:93 +msgid "Search style" +msgstr "" + +#: ../src/ui/dialog/find.cpp:94 +msgid "F_ont" +msgstr "" + +#: ../src/ui/dialog/find.cpp:94 +msgid "Search fonts" +msgstr "" + +#: ../src/ui/dialog/find.cpp:95 +msgid "Properties" +msgstr "" + +#: ../src/ui/dialog/find.cpp:97 +msgid "All types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:97 +msgid "Search all object types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:98 +msgid "Rectangles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:98 +msgid "Search rectangles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:99 +msgid "Ellipses" +msgstr "" + +#: ../src/ui/dialog/find.cpp:99 +msgid "Search ellipses, arcs, circles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:100 +msgid "Stars" +msgstr "" + +#: ../src/ui/dialog/find.cpp:100 +msgid "Search stars and polygons" +msgstr "" + +#: ../src/ui/dialog/find.cpp:101 +msgid "Spirals" +msgstr "" + +#: ../src/ui/dialog/find.cpp:101 +msgid "Search spirals" +msgstr "" + +#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1735 +msgid "Paths" +msgstr "" + +#: ../src/ui/dialog/find.cpp:102 +msgid "Search paths, lines, polylines" +msgstr "" + +#: ../src/ui/dialog/find.cpp:103 +msgid "Texts" +msgstr "" + +#: ../src/ui/dialog/find.cpp:103 +msgid "Search text objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:104 +msgid "Groups" +msgstr "" + +#: ../src/ui/dialog/find.cpp:104 +msgid "Search groups" +msgstr "" + +#. TRANSLATORS: "Clones" is a noun indicating type of object to find +#: ../src/ui/dialog/find.cpp:107 +msgctxt "Find dialog" +msgid "Clones" +msgstr "" + +#: ../src/ui/dialog/find.cpp:107 +msgid "Search clones" +msgstr "" + +#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 +#: ../share/extensions/extractimage.inx.h:5 +msgid "Images" +msgstr "" + +#: ../src/ui/dialog/find.cpp:109 +msgid "Search images" +msgstr "" + +#: ../src/ui/dialog/find.cpp:110 +msgid "Offsets" +msgstr "" + +#: ../src/ui/dialog/find.cpp:110 +msgid "Search offset objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:111 +msgid "Object types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:114 +msgid "_Find" +msgstr "" + +#: ../src/ui/dialog/find.cpp:114 +msgid "Select all objects matching the selection criteria" +msgstr "" + +#: ../src/ui/dialog/find.cpp:115 +msgid "_Replace All" +msgstr "" + +#: ../src/ui/dialog/find.cpp:115 +msgid "Replace all matches" +msgstr "" + +#: ../src/ui/dialog/find.cpp:775 +msgid "Nothing to replace" +msgstr "" + +#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed +#: ../src/ui/dialog/find.cpp:816 +#, c-format +msgid "%d object found (out of %d), %s match." +msgid_plural "%d objects found (out of %d), %s match." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/dialog/find.cpp:819 +msgid "exact" +msgstr "" + +#: ../src/ui/dialog/find.cpp:819 +msgid "partial" +msgstr "" + +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:822 +msgid "%1 match replaced" +msgid_plural "%1 matches replaced" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:826 +msgid "%1 object found" +msgid_plural "%1 objects found" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/dialog/find.cpp:837 +msgid "Replace text or property" +msgstr "" + +#: ../src/ui/dialog/find.cpp:841 +msgid "Nothing found" +msgstr "" + +#: ../src/ui/dialog/find.cpp:846 +msgid "No objects found" +msgstr "" + +#: ../src/ui/dialog/find.cpp:867 +msgid "Select an object type" +msgstr "" + +#: ../src/ui/dialog/find.cpp:885 +msgid "Select a property" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:87 +msgid "" +"\n" +"Some fonts are not available and have been substituted." +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:90 +msgid "Font substitution" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:109 +msgid "Select all the affected items" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:114 +msgid "Don't show this warning again" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:255 +msgid "Font '%1' substituted with '%2'" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 +msgid "all" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:61 +msgid "common" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:62 +msgid "inherited" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 +msgid "Arabic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 +msgid "Armenian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 +msgid "Bengali" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 +msgid "Bopomofo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 +msgid "Cherokee" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 +msgid "Coptic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 +#: ../share/extensions/hershey.inx.h:22 +msgid "Cyrillic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:70 +msgid "Deseret" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 +msgid "Devanagari" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 +msgid "Ethiopic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 +msgid "Georgian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:74 +msgid "Gothic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:75 +msgid "Greek" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 +msgid "Gujarati" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 +msgid "Gurmukhi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:78 +msgid "Han" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:79 +msgid "Hangul" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 +msgid "Hebrew" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 +msgid "Hiragana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 +msgid "Kannada" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 +msgid "Katakana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 +msgid "Khmer" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 +msgid "Lao" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:86 +msgid "Latin" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 +msgid "Malayalam" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 +msgid "Mongolian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 +msgid "Myanmar" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 +msgid "Ogham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:91 +msgid "Old Italic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 +msgid "Oriya" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 +msgid "Runic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 +msgid "Sinhala" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 +msgid "Syriac" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 +msgid "Tamil" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 +msgid "Telugu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 +msgid "Thaana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 +msgid "Thai" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 +msgid "Tibetan" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:101 +msgid "Canadian Aboriginal" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:102 +msgid "Yi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 +msgid "Tagalog" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 +msgid "Hanunoo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 +msgid "Buhid" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 +msgid "Tagbanwa" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:107 +msgid "Braille" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:108 +msgid "Cypriot" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 +msgid "Limbu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:110 +msgid "Osmanya" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:111 +msgid "Shavian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:112 +msgid "Linear B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 +msgid "Tai Le" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:114 +msgid "Ugaritic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 +msgid "New Tai Lue" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 +msgid "Buginese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 +msgid "Glagolitic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 +msgid "Tifinagh" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 +msgid "Syloti Nagri" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:120 +msgid "Old Persian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:121 +msgid "Kharoshthi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:122 +msgid "unassigned" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 +msgid "Balinese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:124 +msgid "Cuneiform" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:125 +msgid "Phoenician" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 +msgid "Phags-pa" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:127 +msgid "N'Ko" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 +msgid "Kayah Li" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 +msgid "Lepcha" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 +msgid "Rejang" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 +msgid "Sundanese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 +msgid "Saurashtra" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 +msgid "Cham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 +msgid "Ol Chiki" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 +msgid "Vai" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:136 +msgid "Carian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:137 +msgid "Lycian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:138 +msgid "Lydian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:153 +msgid "Basic Latin" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:154 +msgid "Latin-1 Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:155 +msgid "Latin Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:156 +msgid "Latin Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:157 +msgid "IPA Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:158 +msgid "Spacing Modifier Letters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:159 +msgid "Combining Diacritical Marks" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:160 +msgid "Greek and Coptic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:162 +msgid "Cyrillic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:167 +msgid "Arabic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:169 +msgid "NKo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:170 +msgid "Samaritan" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:186 +msgid "Hangul Jamo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:188 +msgid "Ethiopic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:190 +msgid "Unified Canadian Aboriginal Syllabics" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:199 +msgid "Unified Canadian Aboriginal Syllabics Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:203 +msgid "Khmer Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:205 +msgid "Tai Tham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:210 +msgid "Vedic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:211 +msgid "Phonetic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:212 +msgid "Phonetic Extensions Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:213 +msgid "Combining Diacritical Marks Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:214 +msgid "Latin Extended Additional" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:215 +msgid "Greek Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:216 +msgid "General Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:217 +msgid "Superscripts and Subscripts" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:218 +msgid "Currency Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:219 +msgid "Combining Diacritical Marks for Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:220 +msgid "Letterlike Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:221 +msgid "Number Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:222 +msgid "Arrows" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:223 +msgid "Mathematical Operators" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:224 +msgid "Miscellaneous Technical" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:225 +msgid "Control Pictures" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:226 +msgid "Optical Character Recognition" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:227 +msgid "Enclosed Alphanumerics" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:228 +msgid "Box Drawing" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:229 +msgid "Block Elements" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:230 +msgid "Geometric Shapes" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:231 +msgid "Miscellaneous Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:232 +msgid "Dingbats" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:233 +msgid "Miscellaneous Mathematical Symbols-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:234 +msgid "Supplemental Arrows-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:235 +msgid "Braille Patterns" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:236 +msgid "Supplemental Arrows-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:237 +msgid "Miscellaneous Mathematical Symbols-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:238 +msgid "Supplemental Mathematical Operators" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:239 +msgid "Miscellaneous Symbols and Arrows" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:241 +msgid "Latin Extended-C" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:243 +msgid "Georgian Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:245 +msgid "Ethiopic Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:246 +msgid "Cyrillic Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:247 +msgid "Supplemental Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:248 +msgid "CJK Radicals Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:249 +msgid "Kangxi Radicals" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:250 +msgid "Ideographic Description Characters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:251 +msgid "CJK Symbols and Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:255 +msgid "Hangul Compatibility Jamo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:256 +msgid "Kanbun" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:257 +msgid "Bopomofo Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:258 +msgid "CJK Strokes" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:259 +msgid "Katakana Phonetic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:260 +msgid "Enclosed CJK Letters and Months" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:261 +msgid "CJK Compatibility" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:262 +msgid "CJK Unified Ideographs Extension A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:263 +msgid "Yijing Hexagram Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:264 +msgid "CJK Unified Ideographs" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:265 +msgid "Yi Syllables" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:266 +msgid "Yi Radicals" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:267 +msgid "Lisu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:269 +msgid "Cyrillic Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:270 +msgid "Bamum" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:271 +msgid "Modifier Tone Letters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:272 +msgid "Latin Extended-D" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:274 +msgid "Common Indic Number Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:277 +msgid "Devanagari Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:280 +msgid "Hangul Jamo Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:281 +msgid "Javanese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:283 +msgid "Myanmar Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:284 +msgid "Tai Viet" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:285 +msgid "Meetei Mayek" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:286 +msgid "Hangul Syllables" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:287 +msgid "Hangul Jamo Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:288 +msgid "High Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:289 +msgid "High Private Use Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:290 +msgid "Low Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:291 +msgid "Private Use Area" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:292 +msgid "CJK Compatibility Ideographs" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:293 +msgid "Alphabetic Presentation Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:294 +msgid "Arabic Presentation Forms-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:295 +msgid "Variation Selectors" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:296 +msgid "Vertical Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:297 +msgid "Combining Half Marks" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:298 +msgid "CJK Compatibility Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:299 +msgid "Small Form Variants" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:300 +msgid "Arabic Presentation Forms-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:301 +msgid "Halfwidth and Fullwidth Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:302 +msgid "Specials" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:377 +msgid "Script: " +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:414 +msgid "Range: " +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:497 +msgid "Append" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:618 +msgid "Append text" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Rela_tive change" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Move and/or rotate the guide relative to current settings" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:48 +msgctxt "Guides" +msgid "_X:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:49 +msgctxt "Guides" +msgid "_Y:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:64 +msgid "_Label:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:50 +msgid "Optionally give this guideline a name" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:51 +msgid "_Angle:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:131 +msgid "Set guide properties" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:170 +msgid "Guideline" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:323 +#, c-format +msgid "Guideline ID: %s" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:329 +#, c-format +msgid "Current: %s" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:159 +#, c-format +msgid "%d x %d" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:171 +msgid "Magnified:" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:240 +msgid "Actual Size:" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:245 +msgctxt "Icon preview window" +msgid "Sele_ction" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:247 +msgid "Selection only or whole document" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:181 +msgid "Show selection cue" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:182 +msgid "" +"Whether selected objects display a selection cue (the same as in selector)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:188 +msgid "Enable gradient editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:189 +msgid "Whether selected objects display gradient editing controls" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:194 +msgid "Conversion to guides uses edges instead of bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:195 +msgid "" +"Converting an object to guides places these along the object's true edges " +"(imitating the object's shape), not along the bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:202 +msgid "Ctrl+click _dot size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:202 +msgid "times current stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +msgid "Size of dots created with Ctrl+click (relative to current stroke width)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:218 +msgid "No objects selected to take the style from." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:227 +msgid "" +"More than one object selected. Cannot take style from multiple " +"objects." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:260 +msgid "Style of new objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:262 +msgid "Last used style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:264 +msgid "Apply the style you last set on an object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:269 +msgid "This tool's own style:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:273 +msgid "" +"Each tool may store its own style to apply to the newly created objects. Use " +"the button below to set it." +msgstr "" + +#. style swatch +#: ../src/ui/dialog/inkscape-preferences.cpp:277 +msgid "Take from selection" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:282 +msgid "This tool's style of new objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:289 +msgid "Remember the style of the (first) selected object as this tool's style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:294 +msgid "Tools" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:297 +msgid "Bounding box to use" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:298 +msgid "Visual bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:300 +msgid "This bounding box includes stroke width, markers, filter margins, etc." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:301 +msgid "Geometric bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:303 +msgid "This bounding box includes only the bare path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:305 +msgid "Conversion to guides" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:306 +msgid "Keep objects after conversion to guides" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:308 +msgid "" +"When converting an object to guides, don't delete the object after the " +"conversion" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:309 +msgid "Treat groups as a single object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:311 +msgid "" +"Treat groups as a single object during conversion to guides rather than " +"converting each child separately" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:313 +msgid "Average all sketches" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:314 +msgid "Width is in absolute units" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:315 +msgid "Select new path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:316 +msgid "Don't attach connectors to text objects" +msgstr "" + +#. Selector +#: ../src/ui/dialog/inkscape-preferences.cpp:319 +msgid "Selector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:324 +msgid "When transforming, show" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:325 +msgid "Objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:327 +msgid "Show the actual objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:328 +msgid "Box outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:330 +msgid "Show only a box outline of the objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:331 +msgid "Per-object selection cue" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:334 +msgid "No per-object selection indication" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:335 +msgid "Mark" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:337 +msgid "Each selected object has a diamond mark in the top left corner" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:338 +msgid "Box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:340 +msgid "Each selected object displays its bounding box" +msgstr "" + +#. Node +#: ../src/ui/dialog/inkscape-preferences.cpp:343 +msgid "Node" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:346 +msgid "Path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:347 +msgid "Path outline color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:348 +msgid "Selects the color used for showing the path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:349 +msgid "Always show outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:350 +msgid "Show outlines for all paths, not only invisible paths" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:351 +msgid "Update outline when dragging nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:352 +msgid "" +"Update the outline when dragging or transforming nodes; if this is off, the " +"outline will only update when completing a drag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:353 +msgid "Update paths when dragging nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:354 +msgid "" +"Update paths when dragging or transforming nodes; if this is off, paths will " +"only be updated when completing a drag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:355 +msgid "Show path direction on outlines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:356 +msgid "" +"Visualize the direction of selected paths by drawing small arrows in the " +"middle of each outline segment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:357 +msgid "Show temporary path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:358 +msgid "When hovering over a path, briefly flash its outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:359 +msgid "Show temporary outline for selected paths" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:360 +msgid "Show temporary outline even when a path is selected for editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:362 +msgid "_Flash time:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:362 +msgid "" +"Specifies how long the path outline will be visible after a mouse-over (in " +"milliseconds); specify 0 to have the outline shown until mouse leaves the " +"path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:363 +msgid "Editing preferences" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:364 +msgid "Show transform handles for single nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:365 +msgid "Show transform handles even when only a single node is selected" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:366 +msgid "Deleting nodes preserves shape" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:367 +msgid "" +"Move handles next to deleted nodes to resemble original shape; hold Ctrl to " +"get the other behavior" +msgstr "" + +#. Tweak +#: ../src/ui/dialog/inkscape-preferences.cpp:370 +msgid "Tweak" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:371 +msgid "Object paint style" +msgstr "" + +#. Zoom +#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/widgets/desktop-widget.cpp:631 +msgid "Zoom" +msgstr "" + +#. Measure +#: ../src/ui/dialog/inkscape-preferences.cpp:381 ../src/verbs.cpp:2682 +msgctxt "ContextVerb" +msgid "Measure" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:383 +msgid "Ignore first and last points" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:384 +msgid "" +"The start and end of the measurement tool's control line will not be " +"considered for calculating lengths. Only lengths between actual curve " +"intersections will be displayed." +msgstr "" + +#. Shapes +#: ../src/ui/dialog/inkscape-preferences.cpp:387 +msgid "Shapes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:419 +msgid "Sketch mode" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:421 +msgid "" +"If on, the sketch result will be the normal average of all sketches made, " +"instead of averaging the old result with the new sketch" +msgstr "" + +#. Pen +#: ../src/ui/dialog/inkscape-preferences.cpp:424 +#: ../src/ui/dialog/input.cpp:1485 +msgid "Pen" +msgstr "" + +#. Calligraphy +#: ../src/ui/dialog/inkscape-preferences.cpp:430 +msgid "Calligraphy" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:434 +msgid "" +"If on, pen width is in absolute units (px) independent of zoom; otherwise " +"pen width depends on zoom so that it looks the same at any zoom" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:436 +msgid "" +"If on, each newly created object will be selected (deselecting previous " +"selection)" +msgstr "" + +#. Text +#: ../src/ui/dialog/inkscape-preferences.cpp:439 ../src/verbs.cpp:2674 +msgctxt "ContextVerb" +msgid "Text" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:444 +msgid "Show font samples in the drop-down list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:445 +msgid "" +"Show font samples alongside font names in the drop-down list in Text bar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:447 +msgid "Show font substitution warning dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:448 +msgid "" +"Show font substitution warning dialog when requested fonts are not available " +"on the system" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Pixel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Pica" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Millimeter" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Centimeter" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Inch" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Em square" +msgstr "" + +#. , _("Ex square"), _("Percent") +#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT +#: ../src/ui/dialog/inkscape-preferences.cpp:454 +msgid "Text units" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:456 +msgid "Text size unit type:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:457 +msgid "Set the type of unit used in the text toolbar and text dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:458 +msgid "Always output text size in pixels (px)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:459 +msgid "" +"Always convert the text size units above into pixels (px) before saving to " +"file" +msgstr "" + +#. Spray +#: ../src/ui/dialog/inkscape-preferences.cpp:464 +msgid "Spray" +msgstr "" + +#. Eraser +#: ../src/ui/dialog/inkscape-preferences.cpp:469 +msgid "Eraser" +msgstr "" + +#. Paint Bucket +#: ../src/ui/dialog/inkscape-preferences.cpp:473 +msgid "Paint Bucket" +msgstr "" + +#. Gradient +#: ../src/ui/dialog/inkscape-preferences.cpp:478 +#: ../src/widgets/gradient-selector.cpp:152 +#: ../src/widgets/gradient-selector.cpp:320 +msgid "Gradient" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:480 +msgid "Prevent sharing of gradient definitions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:482 +msgid "" +"When on, shared gradient definitions are automatically forked on change; " +"uncheck to allow sharing of gradient definitions so that editing one object " +"may affect other objects using the same gradient" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:483 +msgid "Use legacy Gradient Editor" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:485 +msgid "" +"When on, the Gradient Edit button in the Fill & Stroke dialog will show the " +"legacy Gradient Editor dialog, when off the Gradient Tool will be used" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:488 +msgid "Linear gradient _angle:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:489 +msgid "" +"Default angle of new linear gradients in degrees (clockwise from horizontal)" +msgstr "" + +#. Dropper +#: ../src/ui/dialog/inkscape-preferences.cpp:493 +msgid "Dropper" +msgstr "" + +#. Connector +#: ../src/ui/dialog/inkscape-preferences.cpp:498 +msgid "Connector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:501 +msgid "If on, connector attachment points will not be shown for text objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:511 +msgid "Interface" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "System default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Albanian (sq)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Amharic (am)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Arabic (ar)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Armenian (hy)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Azerbaijani (az)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Basque (eu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Belarusian (be)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bulgarian (bg)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bengali (bn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bengali/Bangladesh (bn_BD)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Breton (br)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Catalan (ca)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Valencian Catalan (ca@valencia)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Chinese/China (zh_CN)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Chinese/Taiwan (zh_TW)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Croatian (hr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Czech (cs)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Danish (da)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Dutch (nl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Dzongkha (dz)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "German (de)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Greek (el)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "English (en)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "English/Australia (en_AU)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "English/Canada (en_CA)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "English/Great Britain (en_GB)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Pig Latin (en_US@piglatin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Esperanto (eo)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Estonian (et)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Farsi (fa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Finnish (fi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "French (fr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Irish (ga)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Galician (gl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Hebrew (he)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Hungarian (hu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Indonesian (id)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Italian (it)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Japanese (ja)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Khmer (km)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Kinyarwanda (rw)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Korean (ko)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Lithuanian (lt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Latvian (lv)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Macedonian (mk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Mongolian (mn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Nepali (ne)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Norwegian BokmĂĄl (nb)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Norwegian Nynorsk (nn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Panjabi (pa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Polish (pl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Portuguese (pt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Portuguese/Brazil (pt_BR)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Romanian (ro)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Russian (ru)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Serbian (sr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Serbian in Latin script (sr@latin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Slovak (sk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Slovenian (sl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Spanish (es)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Spanish/Mexico (es_MX)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Swedish (sv)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Telugu (te_IN)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Thai (th)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Turkish (tr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Ukrainian (uk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Vietnamese (vi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:557 +msgid "Language (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:558 +msgid "Set the language for menus and number formats" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Large" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Small" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +msgid "Smaller" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:565 +msgid "Toolbox icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:566 +msgid "Set the size for the tool icons (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:569 +msgid "Control bar icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:570 +msgid "" +"Set the size for the icons in tools' control bars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:573 +msgid "Secondary toolbar icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:574 +msgid "" +"Set the size for the icons in secondary toolbars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:577 +msgid "Work-around color sliders not drawing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:579 +msgid "" +"When on, will attempt to work around bugs in certain GTK themes drawing " +"color sliders" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:584 +msgid "Clear list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:587 +msgid "Maximum documents in Open _Recent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:588 +msgid "" +"Set the maximum length of the Open Recent list in the File menu, or clear " +"the list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:591 +msgid "_Zoom correction factor (in %):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:592 +msgid "" +"Adjust the slider until the length of the ruler on your screen matches its " +"real length. This information is used when zooming to 1:1, 1:2, etc., to " +"display objects in their true sizes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:595 +msgid "Enable dynamic relayout for incomplete sections" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:597 +msgid "" +"When on, will allow dynamic layout of components that are not completely " +"finished being refactored" +msgstr "" + +#. show infobox +#: ../src/ui/dialog/inkscape-preferences.cpp:600 +msgid "Show filter primitives infobox (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:602 +msgid "" +"Show icons and descriptions for the filter primitives available at the " +"filter effects dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Icons only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Text only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Icons and text" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:610 +msgid "Dockbar style (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:611 +msgid "" +"Selects whether the vertical bars on the dockbar will show text labels, " +"icons, or both" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:618 +msgid "Switcher style (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:619 +msgid "" +"Selects whether the dockbar switcher will show text labels, icons, or both" +msgstr "" + +#. Windows +#: ../src/ui/dialog/inkscape-preferences.cpp:623 +msgid "Save and restore window geometry for each document" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +msgid "Remember and use last window's geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:625 +msgid "Don't save window geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:627 +msgid "Save and restore dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:628 +#: ../src/ui/dialog/inkscape-preferences.cpp:664 +msgid "Don't save dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:630 +#: ../src/ui/dialog/inkscape-preferences.cpp:672 +msgid "Dockable" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:634 +msgid "Native open/save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:635 +msgid "GTK open/save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:637 +msgid "Dialogs are hidden in taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:638 +msgid "Save and restore documents viewport" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:639 +msgid "Zoom when window is resized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:640 +msgid "Show close button on dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:643 +msgid "Aggressive" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Maximized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:650 +msgid "Default window size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:651 +msgid "Set the default window size" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:654 +msgid "Saving window geometry (size and position)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:656 +msgid "Let the window manager determine placement of all windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:658 +msgid "" +"Remember and use the last window's geometry (saves geometry to user " +"preferences)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:660 +msgid "" +"Save and restore window geometry for each document (saves geometry in the " +"document)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:662 +msgid "Saving dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:666 +msgid "" +"Save and restore dialogs status (the last open windows dialogs are saved " +"when it closes)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:670 +msgid "Dialog behavior (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:676 +msgid "Desktop integration" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:678 +msgid "Use Windows like open and save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:680 +msgid "Use GTK open and save dialogs " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:684 +msgid "Dialogs on top:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:687 +msgid "Dialogs are treated as regular windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:689 +msgid "Dialogs stay on top of document windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:691 +msgid "Same as Normal but may work better with some window managers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:694 +msgid "Dialog Transparency" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:696 +msgid "_Opacity when focused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +msgid "Opacity when _unfocused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:700 +msgid "_Time of opacity change animation:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:703 +msgid "Miscellaneous" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:706 +msgid "Whether dialog windows are to be hidden in the window manager taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:709 +msgid "" +"Zoom drawing when document window is resized, to keep the same area visible " +"(this is the default which can be changed in any window using the button " +"above the right scrollbar)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:711 +msgid "" +"Save documents viewport (zoom and panning position). Useful to turn off when " +"sharing version controlled files." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:713 +msgid "Whether dialog windows have a close button (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:714 +msgid "Windows" +msgstr "" + +#. Grids +#: ../src/ui/dialog/inkscape-preferences.cpp:717 +msgid "Line color when zooming out" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:720 +msgid "The gridlines will be shown in minor grid line color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:722 +msgid "The gridlines will be shown in major grid line color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +msgid "Default grid settings" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/ui/dialog/inkscape-preferences.cpp:755 +msgid "Grid units:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:735 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +msgid "Origin X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Origin Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +msgid "Spacing X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:742 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Spacing Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:744 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +msgid "Minor grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +msgid "Color used for normal grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:746 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Major grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Color used for major (highlighted) grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:774 +msgid "Major grid line every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:750 +msgid "Show dots instead of lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:751 +msgid "If set, display dots at gridpoints instead of gridlines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:832 +msgid "Input/Output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:835 +msgid "Use current directory for \"Save As ...\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:837 +msgid "" +"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " +"always open in the directory where the currently open document is; when it's " +"off, each will open in the directory where you last saved a file using it" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:839 +msgid "Add label comments to printing output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:841 +msgid "" +"When on, a comment will be added to the raw print output, marking the " +"rendered output for an object with its label" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:843 +msgid "Add default metadata to new documents" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:845 +msgid "" +"Add default metadata to new documents. Default metadata can be set from " +"Document Properties->Metadata." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:849 +msgid "_Grab sensitivity:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:849 +msgid "pixels (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:850 +msgid "" +"How close on the screen you need to be to an object to be able to grab it " +"with mouse (in screen pixels)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +msgid "_Click/drag threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +msgid "pixels" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:853 +msgid "" +"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:856 +msgid "_Handle size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:857 +msgid "Set the relative size of node handles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:859 +msgid "Use pressure-sensitive tablet (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:861 +msgid "" +"Use the capabilities of a tablet or other pressure-sensitive device. Disable " +"this only if you have problems with the tablet (you can still use it as a " +"mouse)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:863 +msgid "Switch tool based on tablet device (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:865 +msgid "" +"Change tool as different devices are used on the tablet (pen, eraser, mouse)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:866 +msgid "Input devices" +msgstr "" + +#. SVG output options +#: ../src/ui/dialog/inkscape-preferences.cpp:869 +msgid "Use named colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:870 +msgid "" +"If set, write the CSS name of the color when available (e.g. 'red' or " +"'magenta') instead of the numeric value" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:872 +msgid "XML formatting" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:874 +msgid "Inline attributes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:875 +msgid "Put attributes on the same line as the element tag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:878 +msgid "_Indent, spaces:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:878 +msgid "" +"The number of spaces to use for indenting nested elements; set to 0 for no " +"indentation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:880 +msgid "Path data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Absolute" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Relative" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +msgid "Optimized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:887 +msgid "Path string format:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:887 +msgid "" +"Path data should be written: only with absolute coordinates, only with " +"relative coordinates, or optimized for string length (mixed absolute and " +"relative coordinates)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:889 +msgid "Force repeat commands" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:890 +msgid "" +"Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " +"of 'L 1,2 3,4')" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:892 +msgid "Numbers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:895 +msgid "_Numeric precision:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:895 +msgid "Significant figures of the values written to the SVG file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "Minimum _exponent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "" +"The smallest number written to SVG is 10 to the power of this exponent; " +"anything smaller is written as zero" +msgstr "" + +#. Code to add controls for attribute checking options +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:903 +msgid "Improper Attributes Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:905 +#: ../src/ui/dialog/inkscape-preferences.cpp:913 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 +msgid "Print warnings" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:906 +msgid "" +"Print warning if invalid or non-useful attributes found. Database files " +"located in inkscape_data_dir/attributes." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:907 +msgid "Remove attributes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +msgid "Delete invalid or non-useful attributes from element tag" +msgstr "" + +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:911 +msgid "Inappropriate Style Properties Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:914 +msgid "" +"Print warning if inappropriate style properties found (i.e. 'font-family' " +"set on a ). Database files located in inkscape_data_dir/attributes." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:915 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 +msgid "Remove style properties" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:916 +msgid "Delete inappropriate style properties" +msgstr "" + +#. Add default or inherited style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:919 +msgid "Non-useful Style Properties Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:922 +msgid "" +"Print warning if redundant style properties found (i.e. if a property has " +"the default value and a different value is not inherited or if value is the " +"same as would be inherited). Database files located in inkscape_data_dir/" +"attributes." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:924 +msgid "Delete redundant style properties" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:926 +msgid "Check Attributes and Style Properties on" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:928 +msgid "Reading" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:929 +msgid "" +"Check attributes and style properties on reading in SVG files (including " +"those internal to Inkscape which will slow down startup)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:930 +msgid "Editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:931 +msgid "" +"Check attributes and style properties while editing SVG files (may slow down " +"Inkscape, mostly useful for debugging)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:932 +msgid "Writing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:933 +msgid "Check attributes and style properties on writing out SVG files" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:935 +msgid "SVG output" +msgstr "" + +#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Perceptual" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Relative Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Absolute Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:945 +msgid "(Note: Color management has been disabled in this build)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:949 +msgid "Display adjustment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:959 +#, c-format +msgid "" +"The ICC profile to use to calibrate display output.\n" +"Searched directories:%s" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:960 +msgid "Display profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:965 +msgid "Retrieve profile from display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:968 +msgid "Retrieve profiles from those attached to displays via XICC" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:970 +msgid "Retrieve profiles from those attached to displays" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:975 +msgid "Display rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:976 +msgid "The rendering intent to use to calibrate display output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:978 +msgid "Proofing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:980 +msgid "Simulate output on screen" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:982 +msgid "Simulates output of target device" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:984 +msgid "Mark out of gamut colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:986 +msgid "Highlights colors that are out of gamut for the target device" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:998 +msgid "Out of gamut warning color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:999 +msgid "Selects the color used for out of gamut warning" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 +msgid "Device profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +msgid "The ICC profile to use to simulate device output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +msgid "Device rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1006 +msgid "The rendering intent to use to calibrate device output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +msgid "Black point compensation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +msgid "Enables black point compensation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +msgid "Preserve black" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1019 +msgid "(LittleCMS 1.15 or later required)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 +msgid "Preserve K channel in CMYK -> CMYK transforms" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/widgets/sp-color-icc-selector.cpp:474 +#: ../src/widgets/sp-color-icc-selector.cpp:766 +msgid "" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +msgid "Color management" +msgstr "" + +#. Autosave options +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +msgid "Enable autosave (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1084 +msgid "" +"Automatically save the current document(s) at a given interval, thus " +"minimizing loss in case of a crash" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +msgctxt "Filesystem" +msgid "Autosave _directory:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +msgid "" +"The directory where autosaves will be written. This should be an absolute " +"path (starts with / on UNIX or a drive letter such as C: on Windows). " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +msgid "_Interval (in minutes):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +msgid "Interval (in minutes) at which document will be autosaved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 +msgid "_Maximum number of autosaves:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 +msgid "" +"Maximum number of autosaved files; use this to limit the storage space used" +msgstr "" + +#. When changing the interval or enabling/disabling the autosave function, +#. * update our running configuration +#. * +#. * FIXME! +#. * the inkscape_autosave_init should be called AFTER the values have been changed +#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere +#. +#. +#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. +#. ----------- +#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +msgid "Autosave" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 +msgid "Open Clip Art Library _Server Name:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1114 +msgid "" +"The server name of the Open Clip Art Library webdav server; it's used by the " +"Import and Export to OCAL function" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +msgid "Open Clip Art Library _Username:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1117 +msgid "The username used to log into Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +msgid "Open Clip Art Library _Password:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +msgid "The password used to log into Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +msgid "Open Clip Art" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +msgid "Behavior" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +msgid "_Simplification threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 +msgid "" +"How strong is the Node tool's Simplify command by default. If you invoke " +"this command several times in quick succession, it will act more and more " +"aggressively; invoking it again after a pause restores the default threshold." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1133 +msgid "Color stock markers the same color as object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1134 +msgid "Color custom markers the same color as object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1135 +#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +msgid "Update marker color when object color changes" +msgstr "" + +#. Selecting options +#: ../src/ui/dialog/inkscape-preferences.cpp:1138 +msgid "Select in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1139 +msgid "Select only within current layer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1140 +msgid "Select in current layer and sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1141 +msgid "Ignore hidden objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +msgid "Ignore locked objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1143 +msgid "Deselect upon layer change" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +msgid "" +"Uncheck this to be able to keep the current objects selected when the " +"current layer changes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 +msgid "Ctrl+A, Tab, Shift+Tab" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 +msgid "Make keyboard selection commands work on objects in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1152 +msgid "Make keyboard selection commands work on objects in current layer only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1154 +msgid "" +"Make keyboard selection commands work on objects in current layer and all " +"its sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1156 +msgid "" +"Uncheck this to be able to select objects that are hidden (either by " +"themselves or by being in a hidden layer)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +msgid "" +"Uncheck this to be able to select objects that are locked (either by " +"themselves or by being in a locked layer)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1160 +msgid "Wrap when cycling objects in z-order" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +msgid "Alt+Scroll Wheel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 +msgid "Wrap around at start and end when cycling objects in z-order" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 +msgid "Selecting" +msgstr "" + +#. Transforms options +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/widgets/select-toolbar.cpp:570 +msgid "Scale stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +msgid "Scale rounded corners in rectangles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1171 +msgid "Transform gradients" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 +msgid "Transform patterns" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +msgid "Preserved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/widgets/select-toolbar.cpp:571 +msgid "When scaling objects, scale the stroke width by the same proportion" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1179 +#: ../src/widgets/select-toolbar.cpp:582 +msgid "When scaling rectangles, scale the radii of rounded corners" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/widgets/select-toolbar.cpp:593 +msgid "Move gradients (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/widgets/select-toolbar.cpp:604 +msgid "Move patterns (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 +msgid "Store transformation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 +msgid "" +"If possible, apply transformation to objects without adding a transform= " +"attribute" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +msgid "Always store transformation as a transform= attribute on objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 +msgid "Transforms" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +msgid "Mouse _wheel scrolls by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +msgid "" +"One mouse wheel notch scrolls by this distance in screen pixels " +"(horizontally with Shift)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 +msgid "Ctrl+arrows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +msgid "Sc_roll by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +msgid "_Acceleration:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +msgid "" +"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " +"acceleration)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1203 +msgid "Autoscrolling" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +msgid "_Speed:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +msgid "" +"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " +"autoscroll off)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 +msgid "_Threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +msgid "" +"How far (in screen pixels) you need to be from the canvas edge to trigger " +"autoscroll; positive is outside the canvas, negative is within the canvas" +msgstr "" + +#. +#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); +#. _page_scrolling.add_line( false, "", _scroll_space, "", +#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); +#. +#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +msgid "Mouse wheel zooms by default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +msgid "" +"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " +"off, it zooms with Ctrl and scrolls without Ctrl" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 +msgid "Scrolling" +msgstr "" + +#. Snapping options +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 +msgid "Enable snap indicator" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 +msgid "After snapping, a symbol is drawn at the point that has snapped" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +msgid "_Delay (in ms):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 +msgid "" +"Postpone snapping as long as the mouse is moving, and then wait an " +"additional fraction of a second. This additional delay is specified here. " +"When set to zero or to a very small number, snapping will be immediate." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 +msgid "Only snap the node closest to the pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1231 +msgid "" +"Only try to snap the node that is initially closest to the mouse pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +msgid "_Weight factor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +msgid "" +"When multiple snap solutions are found, then Inkscape can either prefer the " +"closest transformation (when set to 0), or prefer the node that was " +"initially the closest to the pointer (when set to 1)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +msgid "Snap the mouse pointer when dragging a constrained knot" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +msgid "" +"When dragging a knot along a constraint line, then snap the position of the " +"mouse pointer instead of snapping the projection of the knot onto the " +"constraint line" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +msgid "Snapping" +msgstr "" + +#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 +msgid "_Arrow keys move by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1247 +msgid "" +"Pressing an arrow key moves selected object(s) or node(s) by this distance" +msgstr "" + +#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +msgid "> and < _scale by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 +msgid "Pressing > or < scales selection up or down by this increment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +msgid "_Inset/Outset by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +msgid "Inset and Outset commands displace the path by this distance" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +msgid "Compass-like display of angles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +msgid "" +"When on, angles are displayed with 0 at north, 0 to 360 range, positive " +"clockwise; otherwise with 0 at east, -180 to 180 range, positive " +"counterclockwise" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +msgid "_Rotation snaps every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +msgid "degrees" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +msgid "" +"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " +"[ or ] rotates by this amount" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 +msgid "Relative snapping of guideline angles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +msgid "" +"When on, the snap angles when rotating a guideline will be relative to the " +"original angle" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +msgid "_Zoom in/out by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +msgid "%" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1270 +msgid "" +"Zoom tool click, +/- keys, and middle click zoom in and out by this " +"multiplier" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1271 +msgid "Steps" +msgstr "" + +#. Clones options +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +msgid "Move in parallel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1276 +msgid "Stay unmoved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +msgid "Move according to transform" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1280 +msgid "Are unlinked" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1282 +msgid "Are deleted" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +msgid "Moving original: clones and linked offsets" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +msgid "Clones are translated by the same vector as their original" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 +msgid "Clones preserve their positions when their original is moved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 +msgid "" +"Each clone moves according to the value of its transform= attribute; for " +"example, a rotated clone will move in a different direction than its original" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1292 +msgid "Deleting original: clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +msgid "Orphaned clones are converted to regular objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +msgid "Orphaned clones are deleted along with their original" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 +msgid "Duplicating original+clones/linked offset" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1300 +msgid "Relink duplicated clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1302 +msgid "" +"When duplicating a selection containing both a clone and its original " +"(possibly in groups), relink the duplicated clone to the duplicated original " +"instead of the old original" +msgstr "" + +#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "Clones" +msgstr "" + +#. Clip paths and masks options +#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +msgid "When applying, use the topmost selected object as clippath/mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1310 +msgid "" +"Uncheck this to use the bottom selected object as the clipping path or mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +msgid "Remove clippath/mask object after applying" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +msgid "" +"After applying, remove the object used as the clipping path or mask from the " +"drawing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1315 +msgid "Before applying" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +msgid "Do not group clipped/masked objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +msgid "Put every clipped/masked object in its own group" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +msgid "Put all clipped/masked objects into one group" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +msgid "Apply clippath/mask to every object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +msgid "Apply clippath/mask to groups containing single object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +msgid "Apply clippath/mask to group containing all objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 +msgid "After releasing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 +msgid "Ungroup automatically created groups" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1334 +msgid "Ungroup groups created when setting clip/mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 +msgid "Clippaths and masks" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +msgid "Stroke Style Markers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1341 +#: ../src/ui/dialog/inkscape-preferences.cpp:1343 +msgid "" +"Stroke color same as object, fill color either object fill color or marker " +"fill color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +#: ../share/extensions/hershey.inx.h:27 +msgid "Markers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +msgid "Document cleanup" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1351 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +msgid "Remove unused swatches when doing a document cleanup" +msgstr "" + +#. tooltip +#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +msgid "Cleanup" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 +msgid "Number of _Threads:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 +#: ../src/ui/dialog/inkscape-preferences.cpp:1889 +msgid "(requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +msgid "Configure number of processors/threads to use when rendering filters" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +msgid "Rendering _cache size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +msgctxt "mebibyte (2^20 bytes) abbreviation" +msgid "MiB" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +msgid "" +"Set the amount of memory per document which can be used to store rendered " +"parts of the drawing for later reuse; set to zero to disable caching" +msgstr "" + +#. blur quality +#. filter quality +#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 +msgid "Best quality (slowest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +msgid "Better quality (slower)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 +msgid "Average quality" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1376 +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +msgid "Lower quality (faster)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 +msgid "Lowest quality (fastest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 +msgid "Gaussian blur quality for display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +msgid "" +"Best quality, but display may be very slow at high zooms (bitmap export " +"always uses best quality)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +msgid "Better quality, but slower display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 +msgid "Average quality, acceptable display speed" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1389 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +msgid "Lower quality (some artifacts), but display is faster" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 +#: ../src/ui/dialog/inkscape-preferences.cpp:1415 +msgid "Lowest quality (considerable artifacts), but display is fastest" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +msgid "Filter effects quality for display" +msgstr "" + +#. build custom preferences tab +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/print.cpp:224 +msgid "Rendering" +msgstr "" + +#. Note: /options/bitmapoversample removed with Cairo renderer +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 ../src/verbs.cpp:156 +#: ../src/widgets/calligraphy-toolbar.cpp:626 +msgid "Edit" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1424 +msgid "Automatically reload bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1426 +msgid "Automatically reload linked images when file is changed on disk" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +msgid "_Bitmap editor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1430 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/print_win32_vector.inx.h:2 +msgid "Export" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +msgid "Default export _resolution:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 +msgid "Default bitmap resolution (in dots per inch) in the Export dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 +#: ../src/ui/dialog/xml-tree.cpp:909 +msgid "Create" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +msgid "Resolution for Create Bitmap _Copy:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1437 +msgid "Resolution used by the Create Bitmap Copy command" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +msgid "Ask about linking and scaling when importing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +msgid "Pop-up linking and scaling dialog when importing bitmap image." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +msgid "Bitmap link:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +msgid "Bitmap scale (image-rendering):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 +msgid "Default _import resolution:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1461 +msgid "Default bitmap resolution (in dots per inch) for bitmap import" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1462 +msgid "Override file resolution" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1464 +msgid "Use default bitmap resolution in favor of information from file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1466 +msgid "Bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1478 +msgid "" +"Select a file of predefined shortcuts to use. Any customized shortcuts you " +"create will be added seperately to " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1481 +msgid "Shortcut file:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1484 +#: ../src/ui/dialog/template-load-tab.cpp:48 +msgid "Search:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1496 +msgid "Shortcut" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1497 +#: ../src/ui/widget/page-sizer.cpp:260 +msgid "Description" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1552 +#: ../src/ui/dialog/pixelartdialog.cpp:268 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 +#: ../src/ui/dialog/tracedialog.cpp:813 +#: ../src/ui/widget/preferences-widget.cpp:749 +msgid "Reset" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1552 +msgid "" +"Remove all your customized keyboard shortcuts, and revert to the shortcuts " +"in the shortcut file listed above" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1556 +msgid "Import ..." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1556 +msgid "Import custom keyboard shortcuts from a file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1559 +msgid "Export ..." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1559 +msgid "Export custom keyboard shortcuts to a file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1569 +msgid "Keyboard Shortcuts" +msgstr "" + +#. Find this group in the tree +#: ../src/ui/dialog/inkscape-preferences.cpp:1732 +msgid "Misc" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1851 +msgid "Set the main spell check language" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1854 +msgid "Second language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1855 +msgid "" +"Set the second spell check language; checking will only stop on words " +"unknown in ALL chosen languages" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1858 +msgid "Third language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1859 +msgid "" +"Set the third spell check language; checking will only stop on words unknown " +"in ALL chosen languages" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1861 +msgid "Ignore words with digits" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1863 +msgid "Ignore words containing digits, such as \"R2D2\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1865 +msgid "Ignore words in ALL CAPITALS" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1867 +msgid "Ignore words in all capitals, such as \"IUPAC\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1869 +msgid "Spellcheck" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1889 +msgid "Latency _skew:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1890 +msgid "" +"Factor by which the event clock is skewed from the actual time (0.9766 on " +"some systems)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1892 +msgid "Pre-render named icons" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1894 +msgid "" +"When on, named icons will be rendered before displaying the ui. This is for " +"working around bugs in GTK+ named icon notification" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1902 +msgid "System info" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1906 +msgid "User config: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1906 +msgid "Location of users configuration" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1910 +msgid "User preferences: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1910 +msgid "Location of the users preferences file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +msgid "User extensions: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +msgid "Location of the users extensions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +msgid "User cache: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +msgid "Location of users cache" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "Temporary files: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "Location of the temporary files used for autosave" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +msgid "Inkscape data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +msgid "Location of Inkscape data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Inkscape extensions: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Location of the Inkscape extensions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1943 +msgid "System data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1943 +msgid "Locations of system data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 +msgid "Icon theme: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 +msgid "Locations of icon themes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1969 +msgid "System" +msgstr "" + +#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 +#: ../src/ui/dialog/input.cpp:1641 +msgid "Disabled" +msgstr "" + +#: ../src/ui/dialog/input.cpp:361 +msgctxt "Input device" +msgid "Screen" +msgstr "" + +#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 +msgid "Window" +msgstr "" + +#: ../src/ui/dialog/input.cpp:618 +msgid "Test Area" +msgstr "" + +#: ../src/ui/dialog/input.cpp:619 +msgid "Axis" +msgstr "" + +#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 +msgid "Configuration" +msgstr "" + +#: ../src/ui/dialog/input.cpp:709 +msgid "Hardware" +msgstr "" + +#: ../src/ui/dialog/input.cpp:732 +msgid "Link:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:758 +msgid "Axes count:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:788 +msgid "axis:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:812 +msgid "Button count:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1010 +msgid "Tablet" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1931 +msgid "pad" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1081 +msgid "_Use pressure-sensitive tablet (requires restart)" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1086 +msgid "Axes" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1087 +msgid "Keys" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1170 +msgid "" +"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " +"or to a single (usually focused) 'Window'" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 +#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 +msgid "Pressure" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +msgid "X tilt" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y tilt" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +#: ../src/widgets/sp-color-wheel-selector.cpp:59 +msgid "Wheel" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:55 +msgid "Layer name:" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:136 +msgid "Add layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:176 +msgid "Above current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:180 +msgid "Below current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:183 +msgid "As sublayer of current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:352 +msgid "Rename Layer" +msgstr "" + +#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" +#: ../src/ui/dialog/layer-properties.cpp:354 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 +#: ../src/verbs.cpp:2292 +msgid "Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:355 +msgid "_Rename" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +msgid "Rename layer" +msgstr "" + +#. TRANSLATORS: This means "The layer has been renamed" +#: ../src/ui/dialog/layer-properties.cpp:370 +msgid "Renamed layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:374 +msgid "Add Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:380 +msgid "_Add" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:404 +msgid "New layer created." +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:408 +msgid "Move to Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/transformation.cpp:114 +msgid "_Move" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Unhide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Hide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Lock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Unlock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1401 +msgid "Toggle layer solo" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1425 +msgid "Lock other layers" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:721 +msgid "Moved layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:884 +msgctxt "Layers" +msgid "New" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:889 +msgctxt "Layers" +msgid "Bot" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:895 +msgctxt "Layers" +msgid "Dn" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:901 +msgctxt "Layers" +msgid "Up" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:907 +msgctxt "Layers" +msgid "Top" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-add.cpp:32 +msgid "Add Path Effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +msgid "Add path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +msgid "Delete current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +msgid "Raise the current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +msgid "Lower the current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:313 +msgid "Unknown effect is applied" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 +msgid "Click button to add an effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:329 +msgid "Click add button to convert clone" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:334 +#: ../src/ui/dialog/livepatheffect-editor.cpp:338 +#: ../src/ui/dialog/livepatheffect-editor.cpp:346 +msgid "Select a path or shape" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:342 +msgid "Only one item can be selected" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:374 +msgid "Unknown effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:450 +msgid "Create and apply path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:485 +msgid "Create and apply Clone original path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:505 +msgid "Remove path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:522 +msgid "Move path effect up" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:538 +msgid "Move path effect down" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +msgid "Activate path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +msgid "Deactivate path effect" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:96 +msgid "Heap" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:97 +msgid "In Use" +msgstr "" + +#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. +#. More typical usage is to call this memory "free" rather than "slack". +#: ../src/ui/dialog/memory.cpp:100 +msgid "Slack" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:101 +msgid "Total" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 +#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 +msgid "Unknown" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:167 +msgid "Combined" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:209 +msgid "Recalculate" +msgstr "" + +#: ../src/ui/dialog/messages.cpp:47 +msgid "Clear log messages" +msgstr "" + +#: ../src/ui/dialog/messages.cpp:81 +msgid "Ready." +msgstr "" + +#: ../src/ui/dialog/messages.cpp:174 +msgid "Log capture started." +msgstr "" + +#: ../src/ui/dialog/messages.cpp:203 +msgid "Log capture stopped." +msgstr "" + +#: ../src/ui/dialog/new-from-template.cpp:24 +msgid "Create from template" +msgstr "" + +#: ../src/ui/dialog/new-from-template.cpp:26 +msgid "New From Template" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:47 +msgid "Href:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute +#. Identifies the type of the related resource with an absolute URI +#: ../src/ui/dialog/object-attributes.cpp:52 +msgid "Role:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute +#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. +#: ../src/ui/dialog/object-attributes.cpp:55 +msgid "Arcrole:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:58 +#: ../share/extensions/polyhedron_3d.inx.h:47 +msgid "Show:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute +#: ../src/ui/dialog/object-attributes.cpp:60 +msgid "Actuate:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:65 +msgid "URL:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:66 +#: ../src/ui/dialog/object-attributes.cpp:75 ../src/ui/dialog/tile.cpp:618 +#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +msgid "X:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:67 +#: ../src/ui/dialog/object-attributes.cpp:76 ../src/ui/dialog/tile.cpp:619 +#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +msgid "Y:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:70 +msgid "Image Rendering:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:63 +#: ../src/ui/dialog/object-properties.cpp:398 +#: ../src/ui/dialog/object-properties.cpp:473 +#: ../src/ui/dialog/object-properties.cpp:480 +msgid "_ID:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:65 +msgid "_Title:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:66 +msgid "_Image Rendering:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:67 +msgid "_Description:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:75 +msgid "_Hide" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:76 +msgid "L_ock" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:77 ../src/verbs.cpp:2636 +#: ../src/verbs.cpp:2642 +msgid "_Set" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:78 +msgid "_Interactivity" +msgstr "" + +#. Create the entry box for the object id +#: ../src/ui/dialog/object-properties.cpp:156 +msgid "" +"The id= attribute (only letters, digits, and the characters .-_: allowed)" +msgstr "" + +#. Create the entry box for the object label +#: ../src/ui/dialog/object-properties.cpp:189 +msgid "A freeform label for the object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:272 +msgid "" +"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" +"\t'auto' no preference;\n" +"\t'optimizeQuality' smooth;\n" +"\t'optimizeSpeed' blocky.\n" +"Note that this behaviour is not defined in the SVG 1.1 specification and not " +"all browsers follow this interpretation." +msgstr "" + +#. Hide +#: ../src/ui/dialog/object-properties.cpp:293 +msgid "Check to make the object invisible" +msgstr "" + +#. Lock +#. TRANSLATORS: "Lock" is a verb here +#: ../src/ui/dialog/object-properties.cpp:309 +msgid "Check to make the object insensitive (not selectable by mouse)" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:385 +#: ../src/ui/dialog/object-properties.cpp:390 +msgid "Ref" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:475 +msgid "Id invalid! " +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:477 +msgid "Id exists! " +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:483 +msgid "Set object ID" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:497 +msgid "Set object label" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:503 +msgid "Set object title" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:511 +msgid "Set object description" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:555 +msgid "Lock object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:555 +msgid "Unlock object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:572 +msgid "Hide object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:572 +msgid "Unhide object" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:715 +msgid "Clipart found" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:764 +msgid "Downloading image..." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:912 +msgid "Could not download image" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:922 +msgid "Clipart downloaded successfully" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:936 +msgid "Could not download thumbnail file" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1011 +msgid "No description" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1079 +msgid "Searching clipart..." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 +msgid "Could not connect to the Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1145 +msgid "Could not parse search results" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1177 +msgid "No clipart named %1 was found." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1179 +msgid "" +"Please make sure all keywords are spelled correctly, or try again with " +"different keywords." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1231 +msgid "Search" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1243 +msgid "Close" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:162 +msgid "_Curves (multiplier):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:165 +msgid "Favors connections that are part of a long curve" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:176 +msgid "_Islands (weight):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:179 +msgid "Avoid single disconnected pixels" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:181 +msgid "A constant vote value" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:191 +msgid "Sparse pixels (window _radius):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:200 +msgid "The radius of the window analyzed" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:201 +msgid "Sparse pixels (_multiplier):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:212 +msgid "Favors connections that are part of foreground color" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:218 +msgid "The heuristic computed vote will be multiplied by this value" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:231 +msgid "Heuristics" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:238 +msgid "_Voronoi diagram" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:239 +msgid "Output composed of straight lines" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:245 +msgid "Convert to _B-spline curves" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:246 +msgid "Preserve staircasing artifacts" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:253 +msgid "_Smooth curves" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:254 +msgid "The Kopf-Lischinski algorithm" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:261 +msgid "Output" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:269 +#: ../src/ui/dialog/tracedialog.cpp:814 +msgid "Reset all settings to defaults" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:274 +#: ../src/ui/dialog/tracedialog.cpp:819 +msgid "Abort a trace in progress" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:278 +#: ../src/ui/dialog/tracedialog.cpp:823 +msgid "Execute the trace" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:362 +msgid "Trace pixel art" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:376 +msgid "" +"Image looks too big. Process may take a while and it is wise to save your " +"document before continuing.\n" +"\n" +"Continue the procedure (without saving)?" +msgstr "" + +#: ../src/ui/dialog/print.cpp:104 +msgid "Could not open temporary PNG for bitmap printing" +msgstr "" + +#: ../src/ui/dialog/print.cpp:147 +msgid "Could not set up Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:151 +msgid "Failed to set CairoRenderContext" +msgstr "" + +#. set up dialog title, based on document name +#: ../src/ui/dialog/print.cpp:189 +msgid "SVG Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:190 +msgid "Print" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:73 +msgid "_Accept" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:74 +msgid "_Ignore once" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:75 +msgid "_Ignore" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:76 +msgid "A_dd" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:78 +msgid "_Stop" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:79 +msgid "_Start" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:109 +msgid "Suggestions:" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:124 +msgid "Accept the chosen suggestion" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:125 +msgid "Ignore this word only once" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:126 +msgid "Ignore this word in this session" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:127 +msgid "Add this word to the chosen dictionary" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:141 +msgid "Stop the check" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:142 +msgid "Start the check" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:460 +#, c-format +msgid "Finished, %d words added to dictionary" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:462 +msgid "Finished, nothing suspicious found" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:578 +#, c-format +msgid "Not in dictionary (%s): %s" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:725 +msgid "Checking..." +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:794 +msgid "Fix spelling" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 +msgid "Set SVG Font attribute" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 +msgid "Adjust kerning value" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 +msgid "Family Name:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 +msgid "Set width:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 +msgid "glyph" +msgstr "" + +#. SPGlyph* glyph = +#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 +msgid "Add glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 +msgid "Select a path to define the curves of a glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 +msgid "The selected object does not have a path description." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 +msgid "No glyph selected in the SVGFonts dialog." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 +msgid "Set glyph curves" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 +msgid "Reset missing-glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 +msgid "Edit glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 +msgid "Set glyph unicode" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 +msgid "Remove font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 +msgid "Remove glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 +msgid "Remove kerning pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 +msgid "Missing Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 +msgid "From selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 +msgid "Glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 +msgid "Matching string" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 +msgid "Add Glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 +msgid "Get curves from selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 +msgid "Add kerning pair" +msgstr "" + +#. Kerning Setup: +#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 +msgid "Kerning Setup" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 +msgid "1st Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 +msgid "2nd Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 +msgid "Add pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 +msgid "First Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 +msgid "Second Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 +msgid "Kerning value:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 +msgid "Set font family" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 +msgid "font" +msgstr "" + +#. select_font(font); +#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 +msgid "Add font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:70 +msgid "_Font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 +msgid "_Global Settings" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 +msgid "_Glyphs" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 +msgid "_Kerning" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 +msgid "Sample Text" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 +msgid "Preview Text:" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:203 ../src/ui/tools/gradient-tool.cpp:367 +#: ../src/ui/tools/gradient-tool.cpp:465 +#: ../src/widgets/gradient-vector.cpp:814 +msgid "Add gradient stop" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:258 +msgid "Set fill" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:266 +msgid "Set stroke" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:287 +msgid "Edit..." +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:299 +msgid "Convert" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:543 +#, c-format +msgid "Palettes directory (%s) is unavailable." +msgstr "" + +#. ******************* Symbol Sets ************************ +#: ../src/ui/dialog/symbols.cpp:127 +msgid "Symbol set: " +msgstr "" + +#. Fill in later +#: ../src/ui/dialog/symbols.cpp:136 ../src/ui/dialog/symbols.cpp:137 +msgid "Current Document" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:204 +msgid "Add Symbol from the current document." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:213 +msgid "Remove Symbol from the current document." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:226 +msgid "Make Icons bigger by zooming in." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:235 +msgid "Make Icons smaller by zooming out." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:244 +msgid "Toggle 'fit' symbols in icon space." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:576 +msgid "Unnamed Symbols" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:36 +msgid "More info" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:38 +msgid "no template selected" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:119 +msgid "Path: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:122 +msgid "Description: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:124 +msgid "Keywords: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:131 +msgid "By: " +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:73 +msgid "Set as _default" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:87 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "" + +#. Align buttons +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1336 +#: ../src/widgets/text-toolbar.cpp:1337 +msgid "Align left" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1344 +#: ../src/widgets/text-toolbar.cpp:1345 +msgid "Align center" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1352 +#: ../src/widgets/text-toolbar.cpp:1353 +msgid "Align right" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1361 +msgid "Justify (only flowed text)" +msgstr "" + +#. Direction buttons +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1396 +msgid "Horizontal text" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:110 ../src/widgets/text-toolbar.cpp:1403 +msgid "Vertical text" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 +msgid "Spacing between lines (percent of font size)" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:147 +msgid "Text path offset" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:588 ../src/ui/dialog/text-edit.cpp:662 +#: ../src/ui/tools/text-tool.cpp:1479 +msgid "Set text style" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:349 +msgid "Arrange in a grid" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:618 +msgid "Horizontal spacing between columns." +msgstr "" + +#: ../src/ui/dialog/tile.cpp:619 +msgid "Vertical spacing between rows." +msgstr "" + +#: ../src/ui/dialog/tile.cpp:666 +msgid "_Rows:" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:675 +msgid "Number of rows" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:679 +msgid "Equal _height" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:690 +msgid "If not set, each row has the height of the tallest object in it" +msgstr "" + +#. #### Radio buttons to control vertical alignment #### +#. #### Radio buttons to control horizontal alignment #### +#: ../src/ui/dialog/tile.cpp:696 ../src/ui/dialog/tile.cpp:768 +msgid "Align:" +msgstr "" + +#. #### Number of columns #### +#: ../src/ui/dialog/tile.cpp:738 +msgid "_Columns:" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:747 +msgid "Number of columns" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:751 +msgid "Equal _width" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:761 +msgid "If not set, each column has the width of the widest object in it" +msgstr "" + +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/tile.cpp:807 +msgid "_Fit into selection box" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:814 +msgid "_Set spacing:" +msgstr "" + +#. ## The OK button +#: ../src/ui/dialog/tile.cpp:876 +msgctxt "Rows and columns dialog" +msgid "_Arrange" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:878 +msgid "Arrange selected objects" +msgstr "" + +#. #### begin left panel +#. ### begin notebook +#. ## begin mode page +#. # begin single scan +#. brightness +#: ../src/ui/dialog/tracedialog.cpp:508 +msgid "_Brightness cutoff" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:512 +msgid "Trace by a given brightness level" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:519 +msgid "Brightness cutoff for black/white" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:529 +msgid "Single scan: creates a path" +msgstr "" + +#. canny edge detection +#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method +#: ../src/ui/dialog/tracedialog.cpp:534 +msgid "_Edge detection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:538 +msgid "Trace with optimal edge detection by J. Canny's algorithm" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:556 +msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:559 +msgid "T_hreshold:" +msgstr "" + +#. quantization +#. TRANSLATORS: Color Quantization: the process of reducing the number +#. of colors in an image by selecting an optimized set of representative +#. colors and then re-applying this reduced set to the original image. +#: ../src/ui/dialog/tracedialog.cpp:571 +msgid "Color _quantization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:575 +msgid "Trace along the boundaries of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:583 +msgid "The number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:586 +msgid "_Colors:" +msgstr "" + +#. swap black and white +#: ../src/ui/dialog/tracedialog.cpp:594 +msgid "_Invert image" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:599 +msgid "Invert black and white regions" +msgstr "" + +#. # end single scan +#. # begin multiple scan +#: ../src/ui/dialog/tracedialog.cpp:609 +msgid "B_rightness steps" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:613 +msgid "Trace the given number of brightness levels" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:621 +msgid "Sc_ans:" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:625 +msgid "The desired number of scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:630 +msgid "Co_lors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:634 +msgid "Trace the given number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:639 +msgid "_Grays" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:643 +msgid "Same as Colors, but the result is converted to grayscale" +msgstr "" + +#. TRANSLATORS: "Smooth" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:649 +msgid "S_mooth" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:653 +msgid "Apply Gaussian blur to the bitmap before tracing" +msgstr "" + +#. TRANSLATORS: "Stack" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:657 +msgid "Stac_k scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:661 +msgid "" +"Stack scans on top of one another (no gaps) instead of tiling (usually with " +"gaps)" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:665 +msgid "Remo_ve background" +msgstr "" + +#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan +#: ../src/ui/dialog/tracedialog.cpp:670 +msgid "Remove bottom (background) layer when done" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:675 +msgid "Multiple scans: creates a group of paths" +msgstr "" + +#. # end multiple scan +#. ## end mode page +#: ../src/ui/dialog/tracedialog.cpp:684 +msgid "_Mode" +msgstr "" + +#. ## begin option page +#. # potrace parameters +#: ../src/ui/dialog/tracedialog.cpp:690 +msgid "Suppress _speckles" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:692 +msgid "Ignore small spots (speckles) in the bitmap" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:700 +msgid "Speckles of up to this many pixels will be suppressed" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:703 +msgid "S_ize:" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:708 +msgid "Smooth _corners" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:710 +msgid "Smooth out sharp corners of the trace" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:719 +msgid "Increase this to smooth corners more" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:726 +msgid "Optimize p_aths" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:729 +msgid "Try to optimize paths by joining adjacent Bezier curve segments" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:737 +msgid "" +"Increase this to reduce the number of nodes in the trace by more aggressive " +"optimization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:739 +msgid "To_lerance:" +msgstr "" + +#. ## end option page +#: ../src/ui/dialog/tracedialog.cpp:753 +msgid "O_ptions" +msgstr "" + +#. ### credits +#: ../src/ui/dialog/tracedialog.cpp:757 +msgid "" +"Inkscape bitmap tracing\n" +"is based on Potrace,\n" +"created by Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:760 +msgid "Credits" +msgstr "" + +#. #### begin right panel +#. ## SIOX +#: ../src/ui/dialog/tracedialog.cpp:774 +msgid "SIOX _foreground selection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:777 +msgid "Cover the area you want to select as the foreground" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:782 +msgid "Live Preview" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:788 +msgid "_Update" +msgstr "" + +#. I guess it's correct to call the "intermediate bitmap" a preview of the trace +#: ../src/ui/dialog/tracedialog.cpp:796 +msgid "" +"Preview the intermediate bitmap with the current settings, without actual " +"tracing" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:800 +msgid "Preview" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:86 +msgid "_Horizontal:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:76 +msgid "Horizontal displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:88 +msgid "_Vertical:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:78 +msgid "Vertical displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:80 +msgid "Horizontal size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:82 +msgid "Vertical size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:84 +msgid "A_ngle:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:1104 +msgid "Rotation angle (positive = counterclockwise)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:86 +msgid "" +"Horizontal skew angle (positive = counterclockwise), or absolute " +"displacement, or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:88 +msgid "" +"Vertical skew angle (positive = counterclockwise), or absolute displacement, " +"or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:91 +msgid "Transformation matrix element A" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:92 +msgid "Transformation matrix element B" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:93 +msgid "Transformation matrix element C" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:94 +msgid "Transformation matrix element D" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:95 +msgid "Transformation matrix element E" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:96 +msgid "Transformation matrix element F" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:101 +msgid "Rela_tive move" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:101 +msgid "" +"Add the specified relative displacement to the current position; otherwise, " +"edit the current absolute position directly" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:102 +msgid "_Scale proportionally" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:102 +msgid "Preserve the width/height ratio of the scaled objects" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:103 +msgid "Apply to each _object separately" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:103 +msgid "" +"Apply the scale/rotate/skew to each selected object separately; otherwise, " +"transform the selection as a whole" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:104 +msgid "Edit c_urrent matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:104 +msgid "" +"Edit the current transform= matrix; otherwise, post-multiply transform= by " +"this matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:117 +msgid "_Scale" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:120 +msgid "_Rotate" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:123 +msgid "Ske_w" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:126 +msgid "Matri_x" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:150 +msgid "Reset the values on the current tab to defaults" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:157 +msgid "Apply transformation to selection" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:332 +msgid "Rotate in a counterclockwise direction" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:338 +msgid "Rotate in a clockwise direction" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:908 +#: ../src/ui/dialog/transformation.cpp:919 +#: ../src/ui/dialog/transformation.cpp:933 +#: ../src/ui/dialog/transformation.cpp:952 +#: ../src/ui/dialog/transformation.cpp:963 +#: ../src/ui/dialog/transformation.cpp:973 +#: ../src/ui/dialog/transformation.cpp:997 +msgid "Transform matrix is singular, not used." +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:1012 +msgid "Edit transformation matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:1111 +msgid "Rotation angle (positive = clockwise)" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:123 +msgid "New element node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:129 +msgid "New text node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:143 +msgid "nodeAsInXMLdialogTooltip|Delete node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:135 +#: ../src/ui/dialog/xml-tree.cpp:974 +msgid "Duplicate node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:188 +#: ../src/ui/dialog/xml-tree.cpp:1010 +msgid "Delete attribute" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:87 +msgid "Set" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:118 +msgid "Drag to reorder nodes" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:149 ../src/ui/dialog/xml-tree.cpp:150 +#: ../src/ui/dialog/xml-tree.cpp:1131 +msgid "Unindent node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 +#: ../src/ui/dialog/xml-tree.cpp:1109 +msgid "Indent node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:159 ../src/ui/dialog/xml-tree.cpp:160 +#: ../src/ui/dialog/xml-tree.cpp:1060 +msgid "Raise node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:164 ../src/ui/dialog/xml-tree.cpp:165 +#: ../src/ui/dialog/xml-tree.cpp:1078 +msgid "Lower node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:205 +msgid "Attribute name" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:220 +msgid "Attribute value" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:308 +msgid "Click to select nodes, drag to rearrange." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:319 +msgid "Click attribute to edit." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:323 +#, c-format +msgid "" +"Attribute %s selected. Press Ctrl+Enter when done editing to " +"commit changes." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:563 +msgid "Drag XML subtree" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:865 +msgid "New element node..." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:903 +msgid "Cancel" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:940 +msgid "Create new element node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:956 +msgid "Create new text node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:991 +msgid "nodeAsInXMLinHistoryDialog|Delete node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:1034 +msgid "Change attribute" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:100 +msgid "Drag curve" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:157 +msgid "Add node" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:167 +msgctxt "Path segment tip" +msgid "Shift: click to toggle segment selection" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:171 +msgctxt "Path segment tip" +msgid "Ctrl+Alt: click to insert a node" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:175 +msgctxt "Path segment tip" +msgid "" +"Linear segment: drag to convert to a Bezier segment, doubleclick to " +"insert node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:179 +msgctxt "Path segment tip" +msgid "" +"Bezier segment: drag to shape the segment, doubleclick to insert " +"node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:315 +msgid "Retract handles" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:270 +msgid "Change node type" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:323 +msgid "Straighten segments" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:325 +msgid "Make segments curves" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:333 +msgid "Add nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:339 +msgid "Add extremum nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:346 +msgid "Duplicate nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:409 +#: ../src/widgets/node-toolbar.cpp:408 +msgid "Join nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:416 +#: ../src/widgets/node-toolbar.cpp:419 +msgid "Break nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:423 +msgid "Delete nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:757 +msgid "Move nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:760 +msgid "Move nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:764 +msgid "Move nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:768 +#: ../src/ui/tool/multi-path-manipulator.cpp:771 +msgid "Rotate nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:775 +#: ../src/ui/tool/multi-path-manipulator.cpp:781 +msgid "Scale nodes uniformly" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:778 +msgid "Scale nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:785 +msgid "Scale nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:789 +msgid "Scale nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:793 +msgid "Skew nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:797 +msgid "Skew nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:801 +msgid "Flip nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:804 +msgid "Flip nodes vertically" +msgstr "" + +#: ../src/ui/tool/node.cpp:245 +msgid "Cusp node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:246 +msgid "Smooth node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:247 +msgid "Symmetric node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:248 +msgid "Auto-smooth node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:432 +msgctxt "Path handle tip" +msgid "more: Shift, Ctrl, Alt" +msgstr "" + +#: ../src/ui/tool/node.cpp:434 +msgctxt "Path handle tip" +msgid "more: Ctrl, Alt" +msgstr "" + +#: ../src/ui/tool/node.cpp:440 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " +"increments while rotating both handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:445 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" +msgstr "" + +#: ../src/ui/tool/node.cpp:451 +msgctxt "Path handle tip" +msgid "Shift+Alt: preserve handle length and rotate both handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:454 +msgctxt "Path handle tip" +msgid "Alt: preserve handle length while dragging" +msgstr "" + +#: ../src/ui/tool/node.cpp:461 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " +"handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:465 +#, c-format +msgctxt "Path handle tip" +msgid "Ctrl: snap rotation angle to %g° increments, click to retract" +msgstr "" + +#: ../src/ui/tool/node.cpp:470 +msgctxt "Path hande tip" +msgid "Shift: rotate both handles by the same angle" +msgstr "" + +#: ../src/ui/tool/node.cpp:477 +#, c-format +msgctxt "Path handle tip" +msgid "Auto node handle: drag to convert to smooth node (%s)" +msgstr "" + +#: ../src/ui/tool/node.cpp:480 +#, c-format +msgctxt "Path handle tip" +msgid "%s: drag to shape the segment (%s)" +msgstr "" + +#: ../src/ui/tool/node.cpp:500 +#, c-format +msgctxt "Path handle tip" +msgid "Move handle by %s, %s; angle %.2f°, length %s" +msgstr "" + +#: ../src/ui/tool/node.cpp:1266 +msgctxt "Path node tip" +msgid "Shift: drag out a handle, click to toggle selection" +msgstr "" + +#: ../src/ui/tool/node.cpp:1268 +msgctxt "Path node tip" +msgid "Shift: click to toggle selection" +msgstr "" + +#: ../src/ui/tool/node.cpp:1273 +msgctxt "Path node tip" +msgid "Ctrl+Alt: move along handle lines, click to delete node" +msgstr "" + +#: ../src/ui/tool/node.cpp:1276 +msgctxt "Path node tip" +msgid "Ctrl: move along axes, click to change node type" +msgstr "" + +#: ../src/ui/tool/node.cpp:1280 +msgctxt "Path node tip" +msgid "Alt: sculpt nodes" +msgstr "" + +#: ../src/ui/tool/node.cpp:1288 +#, c-format +msgctxt "Path node tip" +msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1291 +#, c-format +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to toggle scale/rotation handles " +"(more: Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1294 +#, c-format +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to select only this node (more: " +"Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1305 +#, c-format +msgctxt "Path node tip" +msgid "Move node by %s, %s" +msgstr "" + +#: ../src/ui/tool/node.cpp:1316 +msgid "Symmetric node" +msgstr "" + +#: ../src/ui/tool/node.cpp:1317 +msgid "Auto-smooth node" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:821 +msgid "Scale handle" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:845 +msgid "Rotate handle" +msgstr "" + +#. We need to call MPM's method because it could have been our last node +#: ../src/ui/tool/path-manipulator.cpp:1384 +#: ../src/widgets/node-toolbar.cpp:397 +msgid "Delete node" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1392 +msgid "Cycle node type" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1407 +msgid "Drag handle" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1416 +msgid "Retract handle" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:252 +msgid "" +"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +msgid "Shift: draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:422 +#, c-format +msgid "" +"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " +"to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:424 +#, c-format +msgid "" +"Ellipse: %s × %s; with Ctrl to make square or integer-" +"ratio ellipse; with Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:447 +msgid "Create ellipse" +msgstr "" + +#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 +#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 +#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +msgid "Change perspective (angle of PLs)" +msgstr "" + +#. status text +#: ../src/ui/tools/box3d-tool.cpp:583 +msgid "3D Box; with Shift to extrude along the Z axis" +msgstr "" + +#: ../src/ui/tools/box3d-tool.cpp:609 +msgid "Create 3D box" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:536 +msgid "" +"Guide path selected; start drawing along the guide with Ctrl" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:538 +msgid "Select a guide path to track with Ctrl" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking: connection to guide path lost!" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking a guide path" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:676 +msgid "Drawing a calligraphic stroke" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:977 +msgid "Draw calligraphic stroke" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:503 +msgid "Creating new connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:752 +msgid "Connector endpoint drag cancelled." +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:796 +msgid "Reroute connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:951 +msgid "Create connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:969 +msgid "Finishing connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1205 +msgid "Connector endpoint: drag to reroute or connect to new shapes" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1345 +msgid "Select at least one non-connector object." +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1350 +#: ../src/widgets/connector-toolbar.cpp:311 +msgid "Make connectors avoid selected objects" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1351 +#: ../src/widgets/connector-toolbar.cpp:321 +msgid "Make connectors ignore selected objects" +msgstr "" + +#. alpha of color under cursor, to show in the statusbar +#. locale-sensitive printf is OK, since this goes to the UI, not into SVG +#: ../src/ui/tools/dropper-tool.cpp:281 +#, c-format +msgid " alpha %.3g" +msgstr "" + +#. where the color is picked, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:283 +#, c-format +msgid ", averaged with radius %d" +msgstr "" + +#: ../src/ui/tools/dropper-tool.cpp:283 +msgid " under cursor" +msgstr "" + +#. message, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:285 +msgid "Release mouse to set color." +msgstr "" + +#: ../src/ui/tools/dropper-tool.cpp:333 +msgid "Set picked color" +msgstr "" + +#: ../src/ui/tools/eraser-tool.cpp:436 +msgid "Drawing an eraser stroke" +msgstr "" + +#: ../src/ui/tools/eraser-tool.cpp:769 +msgid "Draw eraser stroke" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:192 +msgid "Visible Colors" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:210 +msgctxt "Flood autogap" +msgid "None" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:211 +msgctxt "Flood autogap" +msgid "Small" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:212 +msgctxt "Flood autogap" +msgid "Medium" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:213 +msgctxt "Flood autogap" +msgid "Large" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:435 +msgid "Too much inset, the result is empty." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:476 +#, c-format +msgid "" +"Area filled, path with %d node created and unioned with selection." +msgid_plural "" +"Area filled, path with %d nodes created and unioned with selection." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/flood-tool.cpp:482 +#, c-format +msgid "Area filled, path with %d node created." +msgid_plural "Area filled, path with %d nodes created." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +msgid "Area is not bounded, cannot fill." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1065 +msgid "" +"Only the visible part of the bounded area was filled. If you want to " +"fill all of the area, undo, zoom out, and fill again." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +msgid "Fill bounded area" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1099 +msgid "Set style on object" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1159 +msgid "Draw over areas to add to fill, hold Alt for touch fill" +msgstr "" + +#. We hit green anchor, closing Green-Blue-Red +#: ../src/ui/tools/freehand-base.cpp:490 +msgid "Path is closed." +msgstr "" + +#. We hit bot start and end of single curve, closing paths +#: ../src/ui/tools/freehand-base.cpp:505 +msgid "Closing path." +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:607 +msgid "Draw path" +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:764 +msgid "Creating single dot" +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:765 +msgid "Create single dot" +msgstr "" + +#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#, c-format +msgid "%s selected" +msgstr "" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#, c-format +msgid " out of %d gradient handle" +msgid_plural " out of %d gradient handles" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 +#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 +#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#, c-format +msgid " on %d selected object" +msgid_plural " on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#, c-format +msgid "" +"One handle merging %d stop (drag with Shift to separate) selected" +msgid_plural "" +"One handle merging %d stops (drag with Shift to separate) selected" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) +#: ../src/ui/tools/gradient-tool.cpp:148 +#, c-format +msgid "%d gradient handle selected out of %d" +msgid_plural "%d gradient handles selected out of %d" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/gradient-tool.cpp:155 +#, c-format +msgid "No gradient handles selected out of %d on %d selected object" +msgid_plural "" +"No gradient handles selected out of %d on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/gradient-tool.cpp:440 +msgid "Simplify gradient" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:516 +msgid "Create default gradient" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:575 ../src/ui/tools/mesh-tool.cpp:570 +msgid "Draw around handles to select them" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:698 +msgid "Ctrl: snap gradient angle" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:699 +msgid "Shift: draw gradient around the starting point" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:953 ../src/ui/tools/mesh-tool.cpp:993 +#, c-format +msgid "Gradient for %d object; with Ctrl to snap angle" +msgid_plural "Gradient for %d objects; with Ctrl to snap angle" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/gradient-tool.cpp:957 ../src/ui/tools/mesh-tool.cpp:997 +msgid "Select objects on which to create gradient." +msgstr "" + +#: ../src/ui/tools/lpe-tool.cpp:207 +msgid "Choose a construction tool from the toolbar." +msgstr "" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 +#, c-format +msgid " out of %d mesh handle" +msgid_plural " out of %d mesh handles" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/mesh-tool.cpp:150 +#, c-format +msgid "%d mesh handle selected out of %d" +msgid_plural "%d mesh handles selected out of %d" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/mesh-tool.cpp:157 +#, c-format +msgid "No mesh handles selected out of %d on %d selected object" +msgid_plural "No mesh handles selected out of %d on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/mesh-tool.cpp:321 +msgid "Split mesh row/column" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:407 +msgid "Toggled mesh path type." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:411 +msgid "Approximated arc for mesh side." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:415 +msgid "Toggled mesh tensors." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:419 +msgid "Smoothed mesh corner color." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:423 +msgid "Picked mesh corner color." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:498 +msgid "Create default mesh" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:718 +msgid "FIXMECtrl: snap mesh angle" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:719 +msgid "FIXMEShift: draw mesh around the starting point" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:554 +msgctxt "Node tool tip" +msgid "" +"Shift: drag to add nodes to the selection, click to toggle object " +"selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:558 +msgctxt "Node tool tip" +msgid "Shift: drag to add nodes to the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:570 +#, c-format +msgid "%u of %u node selected." +msgid_plural "%u of %u nodes selected." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/node-tool.cpp:576 +#, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:582 +#, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click clear the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:591 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to edit only this object" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:594 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to clear the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:599 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit, click to edit this object (more: Shift)" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:602 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:206 ../src/ui/tools/pen-tool.cpp:409 +msgid "Continuing selected path" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:214 ../src/ui/tools/pen-tool.cpp:419 +msgid "Creating new path" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:217 ../src/ui/tools/pen-tool.cpp:421 +msgid "Appending to selected path" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:320 +msgid "Release here to close and finish the path." +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:326 +msgid "Drawing a freehand path" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:331 +msgid "Drag to continue the path from this point." +msgstr "" + +#. Write curves to object +#: ../src/ui/tools/pencil-tool.cpp:421 +msgid "Finishing freehand" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:475 ../src/ui/tools/pen-tool.cpp:186 +msgid "Drawing cancelled" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:523 +msgid "" +"Sketch mode: holding Alt interpolates between sketched paths. " +"Release Alt to finalize." +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:549 +msgid "Finishing freehand sketch" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:580 +msgid "Click or click and drag to close and finish the path." +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:590 +msgid "" +"Click or click and drag to continue the path from this point." +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1178 +#, c-format +msgid "" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1179 +#, c-format +msgid "" +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1195 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1217 +#, c-format +msgid "" +"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1218 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle, with Shift to move this handle only" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:1262 +msgid "Drawing finished" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:288 +msgid "" +"Ctrl: make square or integer-ratio rect, lock a rounded corner " +"circular" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:449 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:452 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " +"Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:454 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " +"Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:458 +#, c-format +msgid "" +"Rectangle: %s × %s; with Ctrl to make square or integer-" +"ratio rectangle; with Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:481 +msgid "Create rectangle" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:169 +msgid "Click selection to toggle scale/rotation handles" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:170 +msgid "" +"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " +"or drag around objects to select." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:223 +msgid "Move canceled." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:231 +msgid "Selection canceled." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:642 +msgid "" +"Draw over objects to select them; release Alt to switch to " +"rubberband selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:644 +msgid "" +"Drag around objects to select them; press Alt to switch to " +"touch selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:932 +msgid "Ctrl: click to select in groups; drag to move hor/vert" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:933 +msgid "Shift: click to toggle select; drag for rubberband selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:934 +msgid "" +"Alt: click to select under; scroll mouse-wheel to cycle-select; drag " +"to move selected or select by touch" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:1142 +msgid "Selected object is not a group. Cannot enter." +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:259 +msgid "Ctrl: snap angle" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:261 +msgid "Alt: lock spiral radius" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:400 +#, c-format +msgid "" +"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:421 +msgid "Create spiral" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 +#, c-format +msgid "%i object selected" +msgid_plural "%i objects selected" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 +msgid "Nothing selected" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:199 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray copies of the initial " +"selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:202 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray clones of the initial " +"selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:205 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray in a single path of the " +"initial selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:656 +msgid "Nothing selected! Select objects to spray." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:731 ../src/widgets/spray-toolbar.cpp:166 +msgid "Spray with copies" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:735 ../src/widgets/spray-toolbar.cpp:173 +msgid "Spray with clones" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:739 +msgid "Spray in single path" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:271 +msgid "Ctrl: snap angle; keep rays radial" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:417 +#, c-format +msgid "" +"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:418 +#, c-format +msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:446 +msgid "Create star" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:384 +msgid "Click to edit the text, drag to select part of the text." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:386 +msgid "" +"Click to edit the flowed text, drag to select part of the text." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:440 +msgid "Create text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:465 +msgid "Non-printable character" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:480 +msgid "Insert Unicode character" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:515 +#, c-format +msgid "Unicode (Enter to finish): %s: %s" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:517 ../src/ui/tools/text-tool.cpp:824 +msgid "Unicode (Enter to finish): " +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:600 +#, c-format +msgid "Flowed text frame: %s × %s" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:658 +msgid "Type text; Enter to start new line." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:669 +msgid "Flowed text is created." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:671 +msgid "Create flowed text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:673 +msgid "" +"The frame is too small for the current font size. Flowed text not " +"created." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:809 +msgid "No-break space" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:811 +msgid "Insert no-break space" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:848 +msgid "Make bold" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:866 +msgid "Make italic" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:905 +msgid "New line" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:947 +msgid "Backspace" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1003 +msgid "Kern to the left" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1028 +msgid "Kern to the right" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1053 +msgid "Kern up" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1078 +msgid "Kern down" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1154 +msgid "Rotate counterclockwise" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1175 +msgid "Rotate clockwise" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1192 +msgid "Contract line spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1199 +msgid "Contract letter spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1217 +msgid "Expand line spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1224 +msgid "Expand letter spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1354 +msgid "Paste text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1608 +#, c-format +msgid "" +"Type or edit flowed text (%d character%s); Enter to start new " +"paragraph." +msgid_plural "" +"Type or edit flowed text (%d characters%s); Enter to start new " +"paragraph." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/text-tool.cpp:1610 +#, c-format +msgid "Type or edit text (%d character%s); Enter to start new line." +msgid_plural "" +"Type or edit text (%d characters%s); Enter to start new line." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/text-tool.cpp:1720 +msgid "Type text" +msgstr "" + +#: ../src/ui/tools/tool-base.cpp:695 +msgid "Space+mouse move to pan canvas" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:174 +#, c-format +msgid "%s. Drag to move." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:178 +#, c-format +msgid "%s. Drag or click to move in; with Shift to move out." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:186 +#, c-format +msgid "%s. Drag or click to move randomly." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:190 +#, c-format +msgid "%s. Drag or click to scale down; with Shift to scale up." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:198 +#, c-format +msgid "" +"%s. Drag or click to rotate clockwise; with Shift, " +"counterclockwise." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:206 +#, c-format +msgid "%s. Drag or click to duplicate; with Shift, delete." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:214 +#, c-format +msgid "%s. Drag to push paths." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:218 +#, c-format +msgid "%s. Drag or click to inset paths; with Shift to outset." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:226 +#, c-format +msgid "%s. Drag or click to attract paths; with Shift to repel." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:234 +#, c-format +msgid "%s. Drag or click to roughen paths." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:238 +#, c-format +msgid "%s. Drag or click to paint objects with color." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:242 +#, c-format +msgid "%s. Drag or click to randomize colors." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:246 +#, c-format +msgid "" +"%s. Drag or click to increase blur; with Shift to decrease." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1193 +msgid "Nothing selected! Select objects to tweak." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1227 +msgid "Move tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1231 +msgid "Move in/out tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1235 +msgid "Move jitter tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1239 +msgid "Scale tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1243 +msgid "Rotate tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1247 +msgid "Duplicate/delete tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1251 +msgid "Push path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1255 +msgid "Shrink/grow path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1259 +msgid "Attract/repel path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1263 +msgid "Roughen path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1267 +msgid "Color paint tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1271 +msgid "Color jitter tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1275 +msgid "Blur tweak" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:195 +msgctxt "Transform handle tip" +msgid "Shift+Ctrl: scale uniformly about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:197 +msgctxt "Transform handle tip" +msgid "Ctrl: scale uniformly" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:202 +msgctxt "Transform handle tip" +msgid "" +"Shift+Alt: scale using an integer ratio about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:204 +msgctxt "Transform handle tip" +msgid "Shift: scale from the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:207 +msgctxt "Transform handle tip" +msgid "Alt: scale using an integer ratio" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:209 +msgctxt "Transform handle tip" +msgid "Scale handle: drag to scale the selection" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:214 +#, c-format +msgctxt "Transform handle tip" +msgid "Scale by %.2f%% x %.2f%%" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:438 +#, c-format +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " +"increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:441 +msgctxt "Transform handle tip" +msgid "Shift: rotate around the opposite corner" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:445 +#, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap angle to %f° increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:447 +msgctxt "Transform handle tip" +msgid "" +"Rotation handle: drag to rotate the selection around the rotation " +"center" +msgstr "" + +#. event +#: ../src/ui/tool/transform-handle-set.cpp:452 +#, c-format +msgctxt "Transform handle tip" +msgid "Rotate by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:578 +#, c-format +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: skew about the rotation center with snapping to %f° " +"increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:581 +msgctxt "Transform handle tip" +msgid "Shift: skew about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:585 +#, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap skew angle to %f° increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:588 +msgctxt "Transform handle tip" +msgid "" +"Skew handle: drag to skew (shear) selection about the opposite handle" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:594 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew horizontally by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:597 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew vertically by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:656 +msgctxt "Transform handle tip" +msgid "Rotation center: drag to change the origin of transforms" +msgstr "" + +#: ../src/ui/widget/filter-effect-chooser.cpp:27 +msgid "Blur (%)" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:118 +msgid "Toggle current layer visibility" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:139 +msgid "Lock or unlock current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:142 +msgid "Current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:583 +msgid "(root)" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:40 +msgid "Proprietary" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:43 +msgid "MetadataLicence|Other" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:67 +#: ../src/ui/widget/selected-style.cpp:1095 +#: ../src/ui/widget/selected-style.cpp:1096 +msgid "Opacity (%)" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:180 +msgid "Change blur" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:220 +#: ../src/ui/widget/selected-style.cpp:927 +#: ../src/ui/widget/selected-style.cpp:1221 +msgid "Change opacity" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:235 +msgid "U_nits:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "Width of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "Height of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "T_op margin:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "Top margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:239 +msgid "L_eft:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:239 +#: ../share/extensions/guides_creator.inx.h:17 +msgid "Left margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:240 +msgid "Ri_ght:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:240 +#: ../share/extensions/guides_creator.inx.h:18 +msgid "Right margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Botto_m:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Bottom margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:296 +msgid "Orientation:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:299 +msgid "_Landscape" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:304 +msgid "_Portrait" +msgstr "" + +#. ## Set up custom size frame +#: ../src/ui/widget/page-sizer.cpp:322 +msgid "Custom size" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:367 +msgid "Resi_ze page to content..." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:419 +msgid "_Resize page to drawing or selection" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:420 +msgid "" +"Resize the page to fit the current selection, or the entire drawing if there " +"is no selection" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:488 +msgid "Set page size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:116 +msgid "List" +msgstr "" + +#: ../src/ui/widget/panel.cpp:139 +msgctxt "Swatches" +msgid "Size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:143 +msgctxt "Swatches height" +msgid "Tiny" +msgstr "" + +#: ../src/ui/widget/panel.cpp:144 +msgctxt "Swatches height" +msgid "Small" +msgstr "" + +#: ../src/ui/widget/panel.cpp:145 +msgctxt "Swatches height" +msgid "Medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:146 +msgctxt "Swatches height" +msgid "Large" +msgstr "" + +#: ../src/ui/widget/panel.cpp:147 +msgctxt "Swatches height" +msgid "Huge" +msgstr "" + +#: ../src/ui/widget/panel.cpp:169 +msgctxt "Swatches" +msgid "Width" +msgstr "" + +#: ../src/ui/widget/panel.cpp:173 +msgctxt "Swatches width" +msgid "Narrower" +msgstr "" + +#: ../src/ui/widget/panel.cpp:174 +msgctxt "Swatches width" +msgid "Narrow" +msgstr "" + +#: ../src/ui/widget/panel.cpp:175 +msgctxt "Swatches width" +msgid "Medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:176 +msgctxt "Swatches width" +msgid "Wide" +msgstr "" + +#: ../src/ui/widget/panel.cpp:177 +msgctxt "Swatches width" +msgid "Wider" +msgstr "" + +#: ../src/ui/widget/panel.cpp:207 +msgctxt "Swatches" +msgid "Border" +msgstr "" + +#: ../src/ui/widget/panel.cpp:211 +msgctxt "Swatches border" +msgid "None" +msgstr "" + +#: ../src/ui/widget/panel.cpp:212 +msgctxt "Swatches border" +msgid "Solid" +msgstr "" + +#: ../src/ui/widget/panel.cpp:213 +msgctxt "Swatches border" +msgid "Wide" +msgstr "" + +#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed +#: ../src/ui/widget/panel.cpp:244 +msgctxt "Swatches" +msgid "Wrap" +msgstr "" + +#: ../src/ui/widget/preferences-widget.cpp:802 +msgid "_Browse..." +msgstr "" + +#: ../src/ui/widget/preferences-widget.cpp:888 +msgid "Select a bitmap editor" +msgstr "" + +#: ../src/ui/widget/random.cpp:84 +msgid "" +"Reseed the random number generator; this creates a different sequence of " +"random numbers." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:30 +msgid "Backend" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:31 +msgid "Vector" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:32 +msgid "Bitmap" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:33 +msgid "Bitmap options" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:35 +msgid "Preferred resolution of rendering, in dots per inch." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:43 +msgid "" +"Render using Cairo vector operations. The resulting image is usually " +"smaller in file size and can be arbitrarily scaled, but some filter effects " +"will not be correctly rendered." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:48 +msgid "" +"Render everything as bitmap. The resulting image is usually larger in file " +"size and cannot be arbitrarily scaled without quality loss, but all objects " +"will be rendered exactly as displayed." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:130 +#: ../src/ui/widget/style-swatch.cpp:127 +msgid "Fill:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:132 +msgid "O:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:177 +msgid "N/A" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:180 +#: ../src/ui/widget/selected-style.cpp:1088 +#: ../src/ui/widget/selected-style.cpp:1089 +#: ../src/widgets/gradient-toolbar.cpp:162 +msgid "Nothing selected" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:182 +#: ../src/ui/widget/style-swatch.cpp:320 +msgctxt "Fill and stroke" +msgid "None" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:185 +#: ../src/ui/widget/style-swatch.cpp:322 +msgctxt "Fill and stroke" +msgid "No fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:185 +#: ../src/ui/widget/style-swatch.cpp:322 +msgctxt "Fill and stroke" +msgid "No stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:187 +#: ../src/ui/widget/style-swatch.cpp:301 ../src/widgets/paint-selector.cpp:242 +msgid "Pattern" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:303 +msgid "Pattern fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:303 +msgid "Pattern stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:192 +msgid "L" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:295 +msgid "Linear gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:295 +msgid "Linear gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:202 +msgid "R" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/style-swatch.cpp:299 +msgid "Radial gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/style-swatch.cpp:299 +msgid "Radial gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:212 +msgid "Different" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:215 +msgid "Different fills" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:215 +msgid "Different strokes" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:217 +#: ../src/ui/widget/style-swatch.cpp:325 +msgid "Unset" +msgstr "" + +#. TRANSLATORS COMMENT: unset is a verb here +#: ../src/ui/widget/selected-style.cpp:220 +#: ../src/ui/widget/selected-style.cpp:278 +#: ../src/ui/widget/selected-style.cpp:559 +#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +msgid "Unset fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:220 +#: ../src/ui/widget/selected-style.cpp:278 +#: ../src/ui/widget/selected-style.cpp:575 +#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +msgid "Unset stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:223 +msgid "Flat color fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:223 +msgid "Flat color stroke" +msgstr "" + +#. TRANSLATOR COMMENT: A means "Averaged" +#: ../src/ui/widget/selected-style.cpp:226 +msgid "a" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:229 +msgid "Fill is averaged over selected objects" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:229 +msgid "Stroke is averaged over selected objects" +msgstr "" + +#. TRANSLATOR COMMENT: M means "Multiple" +#: ../src/ui/widget/selected-style.cpp:232 +msgid "m" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:235 +msgid "Multiple selected objects have the same fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:235 +msgid "Multiple selected objects have the same stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:237 +msgid "Edit fill..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:237 +msgid "Edit stroke..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:241 +msgid "Last set color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:245 +msgid "Last selected color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:261 +msgid "Copy color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:265 +msgid "Paste color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:269 +#: ../src/ui/widget/selected-style.cpp:852 +msgid "Swap fill and stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:273 +#: ../src/ui/widget/selected-style.cpp:584 +#: ../src/ui/widget/selected-style.cpp:593 +msgid "Make fill opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:273 +msgid "Make stroke opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:282 +#: ../src/ui/widget/selected-style.cpp:541 ../src/widgets/fill-style.cpp:510 +msgid "Remove fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:282 +#: ../src/ui/widget/selected-style.cpp:550 ../src/widgets/fill-style.cpp:510 +msgid "Remove stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:605 +msgid "Apply last set color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:617 +msgid "Apply last set color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:628 +msgid "Apply last selected color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:639 +msgid "Apply last selected color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:665 +msgid "Invert fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:689 +msgid "Invert stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:701 +msgid "White fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:713 +msgid "White stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:725 +msgid "Black fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:737 +msgid "Black stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:780 +msgid "Paste fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:798 +msgid "Paste stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:954 +msgid "Change stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1049 +msgid ", drag to adjust" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1134 +#, c-format +msgid "Stroke width: %.5g%s%s" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1138 +msgid " (averaged)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1166 +msgid "0 (transparent)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1190 +msgid "100% (opaque)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1362 +msgid "Adjust alpha" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1364 +#, c-format +msgid "" +"Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1368 +msgid "Adjust saturation" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1370 +#, c-format +msgid "" +"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " +"Ctrl to adjust lightness, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1374 +msgid "Adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1376 +#, c-format +msgid "" +"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " +"Shift to adjust saturation, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1380 +msgid "Adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1382 +#, c-format +msgid "" +"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " +"to adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1500 +#: ../src/ui/widget/selected-style.cpp:1514 +msgid "Adjust stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1501 +#, c-format +msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" +msgstr "" + +#. TRANSLATORS: "Link" means to _link_ two sliders together +#: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 +msgctxt "Sliders" +msgid "Link" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:293 +msgid "L Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:297 +msgid "R Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:313 +#, c-format +msgid "Fill: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:315 +#, c-format +msgid "Stroke: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:347 +#, c-format +msgid "Stroke width: %.5g%s" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:363 +#, c-format +msgid "O: %2.0f" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:368 +#, c-format +msgid "Opacity: %2.1f %%" +msgstr "" + +#: ../src/vanishing-point.cpp:132 +msgid "Split vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:177 +msgid "Merge vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:243 +msgid "3D box: Move vanishing point" +msgstr "" + +#: ../src/vanishing-point.cpp:326 +#, c-format +msgid "Finite vanishing point shared by %d box" +msgid_plural "" +"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#. This won't make sense any more when infinite VPs are not shown on the canvas, +#. but currently we update the status message anyway +#: ../src/vanishing-point.cpp:333 +#, c-format +msgid "Infinite vanishing point shared by %d box" +msgid_plural "" +"Infinite vanishing point shared by %d boxes; drag with " +"Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/vanishing-point.cpp:341 +#, c-format +msgid "" +"shared by %d box; drag with Shift to separate selected box(es)" +msgid_plural "" +"shared by %d boxes; drag with Shift to separate selected box" +"(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/verbs.cpp:137 +msgid "File" +msgstr "" + +#: ../src/verbs.cpp:232 +msgid "Context" +msgstr "" + +#: ../src/verbs.cpp:251 ../src/verbs.cpp:2226 +#: ../share/extensions/jessyInk_view.inx.h:1 +#: ../share/extensions/polyhedron_3d.inx.h:26 +msgid "View" +msgstr "" + +#: ../src/verbs.cpp:271 +msgid "Dialog" +msgstr "" + +#: ../src/verbs.cpp:1227 +msgid "Switch to next layer" +msgstr "" + +#: ../src/verbs.cpp:1228 +msgid "Switched to next layer." +msgstr "" + +#: ../src/verbs.cpp:1230 +msgid "Cannot go past last layer." +msgstr "" + +#: ../src/verbs.cpp:1239 +msgid "Switch to previous layer" +msgstr "" + +#: ../src/verbs.cpp:1240 +msgid "Switched to previous layer." +msgstr "" + +#: ../src/verbs.cpp:1242 +msgid "Cannot go before first layer." +msgstr "" + +#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1392 +#: ../src/verbs.cpp:1398 ../src/verbs.cpp:1422 ../src/verbs.cpp:1437 +msgid "No current layer." +msgstr "" + +#: ../src/verbs.cpp:1292 ../src/verbs.cpp:1296 +#, c-format +msgid "Raised layer %s." +msgstr "" + +#: ../src/verbs.cpp:1293 +msgid "Layer to top" +msgstr "" + +#: ../src/verbs.cpp:1297 +msgid "Raise layer" +msgstr "" + +#: ../src/verbs.cpp:1300 ../src/verbs.cpp:1304 +#, c-format +msgid "Lowered layer %s." +msgstr "" + +#: ../src/verbs.cpp:1301 +msgid "Layer to bottom" +msgstr "" + +#: ../src/verbs.cpp:1305 +msgid "Lower layer" +msgstr "" + +#: ../src/verbs.cpp:1314 +msgid "Cannot move layer any further." +msgstr "" + +#: ../src/verbs.cpp:1328 ../src/verbs.cpp:1347 +#, c-format +msgid "%s copy" +msgstr "" + +#: ../src/verbs.cpp:1355 +msgid "Duplicate layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been duplicated." +#: ../src/verbs.cpp:1358 +msgid "Duplicated layer." +msgstr "" + +#: ../src/verbs.cpp:1387 +msgid "Delete layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been deleted." +#: ../src/verbs.cpp:1390 +msgid "Deleted layer." +msgstr "" + +#: ../src/verbs.cpp:1407 +msgid "Show all layers" +msgstr "" + +#: ../src/verbs.cpp:1412 +msgid "Hide all layers" +msgstr "" + +#: ../src/verbs.cpp:1417 +msgid "Lock all layers" +msgstr "" + +#: ../src/verbs.cpp:1431 +msgid "Unlock all layers" +msgstr "" + +#: ../src/verbs.cpp:1515 +msgid "Flip horizontally" +msgstr "" + +#: ../src/verbs.cpp:1520 +msgid "Flip vertically" +msgstr "" + +#. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, +#. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language +#. code); otherwise leave as "tutorial-basic.svg". +#: ../src/verbs.cpp:2108 +msgid "tutorial-basic.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2112 +msgid "tutorial-shapes.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2116 +msgid "tutorial-advanced.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2120 +msgid "tutorial-tracing.svg" +msgstr "" + +#: ../src/verbs.cpp:2123 +msgid "tutorial-tracing-pixelart.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2127 +msgid "tutorial-calligraphy.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2131 +msgid "tutorial-interpolate.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2135 +msgid "tutorial-elements.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2139 +msgid "tutorial-tips.svg" +msgstr "" + +#: ../src/verbs.cpp:2325 ../src/verbs.cpp:2917 +msgid "Unlock all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2329 ../src/verbs.cpp:2919 +msgid "Unlock all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2333 ../src/verbs.cpp:2921 +msgid "Unhide all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2337 ../src/verbs.cpp:2923 +msgid "Unhide all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2352 +msgid "Does nothing" +msgstr "" + +#: ../src/verbs.cpp:2355 +msgid "Create new document from the default template" +msgstr "" + +#: ../src/verbs.cpp:2357 +msgid "_Open..." +msgstr "" + +#: ../src/verbs.cpp:2358 +msgid "Open an existing document" +msgstr "" + +#: ../src/verbs.cpp:2359 +msgid "Re_vert" +msgstr "" + +#: ../src/verbs.cpp:2360 +msgid "Revert to the last saved version of document (changes will be lost)" +msgstr "" + +#: ../src/verbs.cpp:2361 +msgid "Save document" +msgstr "" + +#: ../src/verbs.cpp:2363 +msgid "Save _As..." +msgstr "" + +#: ../src/verbs.cpp:2364 +msgid "Save document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2365 +msgid "Save a Cop_y..." +msgstr "" + +#: ../src/verbs.cpp:2366 +msgid "Save a copy of the document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2367 +msgid "_Print..." +msgstr "" + +#: ../src/verbs.cpp:2367 +msgid "Print document" +msgstr "" + +#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) +#: ../src/verbs.cpp:2370 +msgid "Clean _up document" +msgstr "" + +#: ../src/verbs.cpp:2370 +msgid "" +"Remove unused definitions (such as gradients or clipping paths) from the <" +"defs> of the document" +msgstr "" + +#: ../src/verbs.cpp:2372 +msgid "_Import..." +msgstr "" + +#: ../src/verbs.cpp:2373 +msgid "Import a bitmap or SVG image into this document" +msgstr "" + +#: ../src/verbs.cpp:2374 +msgid "_Export Bitmap..." +msgstr "" + +#: ../src/verbs.cpp:2375 +msgid "Export this document or a selection as a bitmap image" +msgstr "" + +#: ../src/verbs.cpp:2376 +msgid "Import Clip Art..." +msgstr "" + +#: ../src/verbs.cpp:2377 +msgid "Import clipart from Open Clip Art Library" +msgstr "" + +#. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), +#: ../src/verbs.cpp:2379 +msgid "N_ext Window" +msgstr "" + +#: ../src/verbs.cpp:2380 +msgid "Switch to the next document window" +msgstr "" + +#: ../src/verbs.cpp:2381 +msgid "P_revious Window" +msgstr "" + +#: ../src/verbs.cpp:2382 +msgid "Switch to the previous document window" +msgstr "" + +#: ../src/verbs.cpp:2383 +msgid "_Close" +msgstr "" + +#: ../src/verbs.cpp:2384 +msgid "Close this document window" +msgstr "" + +#: ../src/verbs.cpp:2385 +msgid "_Quit" +msgstr "" + +#: ../src/verbs.cpp:2385 +msgid "Quit Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2386 +msgid "_Templates..." +msgstr "" + +#: ../src/verbs.cpp:2387 +msgid "Create new project from template" +msgstr "" + +#: ../src/verbs.cpp:2390 +msgid "Undo last action" +msgstr "" + +#: ../src/verbs.cpp:2393 +msgid "Do again the last undone action" +msgstr "" + +#: ../src/verbs.cpp:2394 +msgid "Cu_t" +msgstr "" + +#: ../src/verbs.cpp:2395 +msgid "Cut selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2396 +msgid "_Copy" +msgstr "" + +#: ../src/verbs.cpp:2397 +msgid "Copy selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2398 +msgid "_Paste" +msgstr "" + +#: ../src/verbs.cpp:2399 +msgid "Paste objects from clipboard to mouse point, or paste text" +msgstr "" + +#: ../src/verbs.cpp:2400 +msgid "Paste _Style" +msgstr "" + +#: ../src/verbs.cpp:2401 +msgid "Apply the style of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2403 +msgid "Scale selection to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2404 +msgid "Paste _Width" +msgstr "" + +#: ../src/verbs.cpp:2405 +msgid "Scale selection horizontally to match the width of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2406 +msgid "Paste _Height" +msgstr "" + +#: ../src/verbs.cpp:2407 +msgid "Scale selection vertically to match the height of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2408 +msgid "Paste Size Separately" +msgstr "" + +#: ../src/verbs.cpp:2409 +msgid "Scale each selected object to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2410 +msgid "Paste Width Separately" +msgstr "" + +#: ../src/verbs.cpp:2411 +msgid "" +"Scale each selected object horizontally to match the width of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2412 +msgid "Paste Height Separately" +msgstr "" + +#: ../src/verbs.cpp:2413 +msgid "" +"Scale each selected object vertically to match the height of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2414 +msgid "Paste _In Place" +msgstr "" + +#: ../src/verbs.cpp:2415 +msgid "Paste objects from clipboard to the original location" +msgstr "" + +#: ../src/verbs.cpp:2416 +msgid "Paste Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2417 +msgid "Apply the path effect of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2418 +msgid "Remove Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2419 +msgid "Remove any path effects from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2420 +msgid "_Remove Filters" +msgstr "" + +#: ../src/verbs.cpp:2421 +msgid "Remove any filters from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2422 +msgid "_Delete" +msgstr "" + +#: ../src/verbs.cpp:2423 +msgid "Delete selection" +msgstr "" + +#: ../src/verbs.cpp:2424 +msgid "Duplic_ate" +msgstr "" + +#: ../src/verbs.cpp:2425 +msgid "Duplicate selected objects" +msgstr "" + +#: ../src/verbs.cpp:2426 +msgid "Create Clo_ne" +msgstr "" + +#: ../src/verbs.cpp:2427 +msgid "Create a clone (a copy linked to the original) of selected object" +msgstr "" + +#: ../src/verbs.cpp:2428 +msgid "Unlin_k Clone" +msgstr "" + +#: ../src/verbs.cpp:2429 +msgid "" +"Cut the selected clones' links to the originals, turning them into " +"standalone objects" +msgstr "" + +#: ../src/verbs.cpp:2430 +msgid "Relink to Copied" +msgstr "" + +#: ../src/verbs.cpp:2431 +msgid "Relink the selected clones to the object currently on the clipboard" +msgstr "" + +#: ../src/verbs.cpp:2432 +msgid "Select _Original" +msgstr "" + +#: ../src/verbs.cpp:2433 +msgid "Select the object to which the selected clone is linked" +msgstr "" + +#: ../src/verbs.cpp:2434 +msgid "Clone original path (LPE)" +msgstr "" + +#: ../src/verbs.cpp:2435 +msgid "" +"Creates a new path, applies the Clone original LPE, and refers it to the " +"selected path" +msgstr "" + +#: ../src/verbs.cpp:2436 +msgid "Objects to _Marker" +msgstr "" + +#: ../src/verbs.cpp:2437 +msgid "Convert selection to a line marker" +msgstr "" + +#: ../src/verbs.cpp:2438 +msgid "Objects to Gu_ides" +msgstr "" + +#: ../src/verbs.cpp:2439 +msgid "" +"Convert selected objects to a collection of guidelines aligned with their " +"edges" +msgstr "" + +#: ../src/verbs.cpp:2440 +msgid "Objects to Patter_n" +msgstr "" + +#: ../src/verbs.cpp:2441 +msgid "Convert selection to a rectangle with tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2442 +msgid "Pattern to _Objects" +msgstr "" + +#: ../src/verbs.cpp:2443 +msgid "Extract objects from a tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2444 +msgid "Group to Symbol" +msgstr "" + +#: ../src/verbs.cpp:2445 +msgid "Convert group to a symbol" +msgstr "" + +#: ../src/verbs.cpp:2446 +msgid "Symbol to Group" +msgstr "" + +#: ../src/verbs.cpp:2447 +msgid "Extract group from a symbol" +msgstr "" + +#: ../src/verbs.cpp:2448 +msgid "Clea_r All" +msgstr "" + +#: ../src/verbs.cpp:2449 +msgid "Delete all objects from document" +msgstr "" + +#: ../src/verbs.cpp:2450 +msgid "Select Al_l" +msgstr "" + +#: ../src/verbs.cpp:2451 +msgid "Select all objects or all nodes" +msgstr "" + +#: ../src/verbs.cpp:2452 +msgid "Select All in All La_yers" +msgstr "" + +#: ../src/verbs.cpp:2453 +msgid "Select all objects in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2454 +msgid "Fill _and Stroke" +msgstr "" + +#: ../src/verbs.cpp:2455 +msgid "" +"Select all objects with the same fill and stroke as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2456 +msgid "_Fill Color" +msgstr "" + +#: ../src/verbs.cpp:2457 +msgid "Select all objects with the same fill as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2458 +msgid "_Stroke Color" +msgstr "" + +#: ../src/verbs.cpp:2459 +msgid "Select all objects with the same stroke as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2460 +msgid "Stroke St_yle" +msgstr "" + +#: ../src/verbs.cpp:2461 +msgid "" +"Select all objects with the same stroke style (width, dash, markers) as the " +"selected objects" +msgstr "" + +#: ../src/verbs.cpp:2462 +msgid "_Object Type" +msgstr "" + +#: ../src/verbs.cpp:2463 +msgid "" +"Select all objects with the same object type (rect, arc, text, path, bitmap " +"etc) as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2464 +msgid "In_vert Selection" +msgstr "" + +#: ../src/verbs.cpp:2465 +msgid "Invert selection (unselect what is selected and select everything else)" +msgstr "" + +#: ../src/verbs.cpp:2466 +msgid "Invert in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2467 +msgid "Invert selection in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2468 +msgid "Select Next" +msgstr "" + +#: ../src/verbs.cpp:2469 +msgid "Select next object or node" +msgstr "" + +#: ../src/verbs.cpp:2470 +msgid "Select Previous" +msgstr "" + +#: ../src/verbs.cpp:2471 +msgid "Select previous object or node" +msgstr "" + +#: ../src/verbs.cpp:2472 +msgid "D_eselect" +msgstr "" + +#: ../src/verbs.cpp:2473 +msgid "Deselect any selected objects or nodes" +msgstr "" + +#: ../src/verbs.cpp:2475 +msgid "Delete all the guides in the document" +msgstr "" + +#: ../src/verbs.cpp:2476 +msgid "Create _Guides Around the Page" +msgstr "" + +#: ../src/verbs.cpp:2477 +msgid "Create four guides aligned with the page borders" +msgstr "" + +#: ../src/verbs.cpp:2478 +msgid "Next path effect parameter" +msgstr "" + +#: ../src/verbs.cpp:2479 +msgid "Show next editable path effect parameter" +msgstr "" + +#. Selection +#: ../src/verbs.cpp:2482 +msgid "Raise to _Top" +msgstr "" + +#: ../src/verbs.cpp:2483 +msgid "Raise selection to top" +msgstr "" + +#: ../src/verbs.cpp:2484 +msgid "Lower to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2485 +msgid "Lower selection to bottom" +msgstr "" + +#: ../src/verbs.cpp:2486 +msgid "_Raise" +msgstr "" + +#: ../src/verbs.cpp:2487 +msgid "Raise selection one step" +msgstr "" + +#: ../src/verbs.cpp:2488 +msgid "_Lower" +msgstr "" + +#: ../src/verbs.cpp:2489 +msgid "Lower selection one step" +msgstr "" + +#: ../src/verbs.cpp:2491 +msgid "Group selected objects" +msgstr "" + +#: ../src/verbs.cpp:2493 +msgid "Ungroup selected groups" +msgstr "" + +#: ../src/verbs.cpp:2495 +msgid "_Put on Path" +msgstr "" + +#: ../src/verbs.cpp:2497 +msgid "_Remove from Path" +msgstr "" + +#: ../src/verbs.cpp:2499 +msgid "Remove Manual _Kerns" +msgstr "" + +#. TRANSLATORS: "glyph": An image used in the visual representation of characters; +#. roughly speaking, how a character looks. A font is a set of glyphs. +#: ../src/verbs.cpp:2502 +msgid "Remove all manual kerns and glyph rotations from a text object" +msgstr "" + +#: ../src/verbs.cpp:2504 +msgid "_Union" +msgstr "" + +#: ../src/verbs.cpp:2505 +msgid "Create union of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2506 +msgid "_Intersection" +msgstr "" + +#: ../src/verbs.cpp:2507 +msgid "Create intersection of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2508 +msgid "_Difference" +msgstr "" + +#: ../src/verbs.cpp:2509 +msgid "Create difference of selected paths (bottom minus top)" +msgstr "" + +#: ../src/verbs.cpp:2510 +msgid "E_xclusion" +msgstr "" + +#: ../src/verbs.cpp:2511 +msgid "" +"Create exclusive OR of selected paths (those parts that belong to only one " +"path)" +msgstr "" + +#: ../src/verbs.cpp:2512 +msgid "Di_vision" +msgstr "" + +#: ../src/verbs.cpp:2513 +msgid "Cut the bottom path into pieces" +msgstr "" + +#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the +#. Advanced tutorial for more info +#: ../src/verbs.cpp:2516 +msgid "Cut _Path" +msgstr "" + +#: ../src/verbs.cpp:2517 +msgid "Cut the bottom path's stroke into pieces, removing fill" +msgstr "" + +#. TRANSLATORS: "outset": expand a shape by offsetting the object's path, +#. i.e. by displacing it perpendicular to the path in each point. +#. See also the Advanced Tutorial for explanation. +#: ../src/verbs.cpp:2521 +msgid "Outs_et" +msgstr "" + +#: ../src/verbs.cpp:2522 +msgid "Outset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2524 +msgid "O_utset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2525 +msgid "Outset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2527 +msgid "O_utset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2528 +msgid "Outset selected paths by 10 px" +msgstr "" + +#. TRANSLATORS: "inset": contract a shape by offsetting the object's path, +#. i.e. by displacing it perpendicular to the path in each point. +#. See also the Advanced Tutorial for explanation. +#: ../src/verbs.cpp:2532 +msgid "I_nset" +msgstr "" + +#: ../src/verbs.cpp:2533 +msgid "Inset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2535 +msgid "I_nset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2536 +msgid "Inset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2538 +msgid "I_nset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2539 +msgid "Inset selected paths by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2541 +msgid "D_ynamic Offset" +msgstr "" + +#: ../src/verbs.cpp:2541 +msgid "Create a dynamic offset object" +msgstr "" + +#: ../src/verbs.cpp:2543 +msgid "_Linked Offset" +msgstr "" + +#: ../src/verbs.cpp:2544 +msgid "Create a dynamic offset object linked to the original path" +msgstr "" + +#: ../src/verbs.cpp:2546 +msgid "_Stroke to Path" +msgstr "" + +#: ../src/verbs.cpp:2547 +msgid "Convert selected object's stroke to paths" +msgstr "" + +#: ../src/verbs.cpp:2548 +msgid "Si_mplify" +msgstr "" + +#: ../src/verbs.cpp:2549 +msgid "Simplify selected paths (remove extra nodes)" +msgstr "" + +#: ../src/verbs.cpp:2550 +msgid "_Reverse" +msgstr "" + +#: ../src/verbs.cpp:2551 +msgid "Reverse the direction of selected paths (useful for flipping markers)" +msgstr "" + +#: ../src/verbs.cpp:2554 +msgid "Create one or more paths from a bitmap by tracing it" +msgstr "" + +#: ../src/verbs.cpp:2555 +msgid "Trace Pixel Art..." +msgstr "" + +#: ../src/verbs.cpp:2556 +msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" +msgstr "" + +#: ../src/verbs.cpp:2557 +msgid "Make a _Bitmap Copy" +msgstr "" + +#: ../src/verbs.cpp:2558 +msgid "Export selection to a bitmap and insert it into document" +msgstr "" + +#: ../src/verbs.cpp:2559 +msgid "_Combine" +msgstr "" + +#: ../src/verbs.cpp:2560 +msgid "Combine several paths into one" +msgstr "" + +#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the +#. Advanced tutorial for more info +#: ../src/verbs.cpp:2563 +msgid "Break _Apart" +msgstr "" + +#: ../src/verbs.cpp:2564 +msgid "Break selected paths into subpaths" +msgstr "" + +#: ../src/verbs.cpp:2565 +msgid "Ro_ws and Columns..." +msgstr "" + +#: ../src/verbs.cpp:2566 +msgid "Arrange selected objects in a table" +msgstr "" + +#. Layer +#: ../src/verbs.cpp:2568 +msgid "_Add Layer..." +msgstr "" + +#: ../src/verbs.cpp:2569 +msgid "Create a new layer" +msgstr "" + +#: ../src/verbs.cpp:2570 +msgid "Re_name Layer..." +msgstr "" + +#: ../src/verbs.cpp:2571 +msgid "Rename the current layer" +msgstr "" + +#: ../src/verbs.cpp:2572 +msgid "Switch to Layer Abov_e" +msgstr "" + +#: ../src/verbs.cpp:2573 +msgid "Switch to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2574 +msgid "Switch to Layer Belo_w" +msgstr "" + +#: ../src/verbs.cpp:2575 +msgid "Switch to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2576 +msgid "Move Selection to Layer Abo_ve" +msgstr "" + +#: ../src/verbs.cpp:2577 +msgid "Move selection to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2578 +msgid "Move Selection to Layer Bel_ow" +msgstr "" + +#: ../src/verbs.cpp:2579 +msgid "Move selection to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2580 +msgid "Move Selection to Layer..." +msgstr "" + +#: ../src/verbs.cpp:2582 +msgid "Layer to _Top" +msgstr "" + +#: ../src/verbs.cpp:2583 +msgid "Raise the current layer to the top" +msgstr "" + +#: ../src/verbs.cpp:2584 +msgid "Layer to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2585 +msgid "Lower the current layer to the bottom" +msgstr "" + +#: ../src/verbs.cpp:2586 +msgid "_Raise Layer" +msgstr "" + +#: ../src/verbs.cpp:2587 +msgid "Raise the current layer" +msgstr "" + +#: ../src/verbs.cpp:2588 +msgid "_Lower Layer" +msgstr "" + +#: ../src/verbs.cpp:2589 +msgid "Lower the current layer" +msgstr "" + +#: ../src/verbs.cpp:2590 +msgid "D_uplicate Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2591 +msgid "Duplicate an existing layer" +msgstr "" + +#: ../src/verbs.cpp:2592 +msgid "_Delete Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2593 +msgid "Delete the current layer" +msgstr "" + +#: ../src/verbs.cpp:2594 +msgid "_Show/hide other layers" +msgstr "" + +#: ../src/verbs.cpp:2595 +msgid "Solo the current layer" +msgstr "" + +#: ../src/verbs.cpp:2596 +msgid "_Show all layers" +msgstr "" + +#: ../src/verbs.cpp:2597 +msgid "Show all the layers" +msgstr "" + +#: ../src/verbs.cpp:2598 +msgid "_Hide all layers" +msgstr "" + +#: ../src/verbs.cpp:2599 +msgid "Hide all the layers" +msgstr "" + +#: ../src/verbs.cpp:2600 +msgid "_Lock all layers" +msgstr "" + +#: ../src/verbs.cpp:2601 +msgid "Lock all the layers" +msgstr "" + +#: ../src/verbs.cpp:2602 +msgid "Lock/Unlock _other layers" +msgstr "" + +#: ../src/verbs.cpp:2603 +msgid "Lock all the other layers" +msgstr "" + +#: ../src/verbs.cpp:2604 +msgid "_Unlock all layers" +msgstr "" + +#: ../src/verbs.cpp:2605 +msgid "Unlock all the layers" +msgstr "" + +#: ../src/verbs.cpp:2606 +msgid "_Lock/Unlock Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2607 +msgid "Toggle lock on current layer" +msgstr "" + +#: ../src/verbs.cpp:2608 +msgid "_Show/hide Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2609 +msgid "Toggle visibility of current layer" +msgstr "" + +#. Object +#: ../src/verbs.cpp:2612 +msgid "Rotate _90° CW" +msgstr "" + +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2615 +msgid "Rotate selection 90° clockwise" +msgstr "" + +#: ../src/verbs.cpp:2616 +msgid "Rotate 9_0° CCW" +msgstr "" + +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2619 +msgid "Rotate selection 90° counter-clockwise" +msgstr "" + +#: ../src/verbs.cpp:2620 +msgid "Remove _Transformations" +msgstr "" + +#: ../src/verbs.cpp:2621 +msgid "Remove transformations from object" +msgstr "" + +#: ../src/verbs.cpp:2622 +msgid "_Object to Path" +msgstr "" + +#: ../src/verbs.cpp:2623 +msgid "Convert selected object to path" +msgstr "" + +#: ../src/verbs.cpp:2624 +msgid "_Flow into Frame" +msgstr "" + +#: ../src/verbs.cpp:2625 +msgid "" +"Put text into a frame (path or shape), creating a flowed text linked to the " +"frame object" +msgstr "" + +#: ../src/verbs.cpp:2626 +msgid "_Unflow" +msgstr "" + +#: ../src/verbs.cpp:2627 +msgid "Remove text from frame (creates a single-line text object)" +msgstr "" + +#: ../src/verbs.cpp:2628 +msgid "_Convert to Text" +msgstr "" + +#: ../src/verbs.cpp:2629 +msgid "Convert flowed text to regular text object (preserves appearance)" +msgstr "" + +#: ../src/verbs.cpp:2631 +msgid "Flip _Horizontal" +msgstr "" + +#: ../src/verbs.cpp:2631 +msgid "Flip selected objects horizontally" +msgstr "" + +#: ../src/verbs.cpp:2634 +msgid "Flip _Vertical" +msgstr "" + +#: ../src/verbs.cpp:2634 +msgid "Flip selected objects vertically" +msgstr "" + +#: ../src/verbs.cpp:2637 +msgid "Apply mask to selection (using the topmost object as mask)" +msgstr "" + +#: ../src/verbs.cpp:2639 +msgid "Edit mask" +msgstr "" + +#: ../src/verbs.cpp:2640 ../src/verbs.cpp:2646 +msgid "_Release" +msgstr "" + +#: ../src/verbs.cpp:2641 +msgid "Remove mask from selection" +msgstr "" + +#: ../src/verbs.cpp:2643 +msgid "" +"Apply clipping path to selection (using the topmost object as clipping path)" +msgstr "" + +#: ../src/verbs.cpp:2645 +msgid "Edit clipping path" +msgstr "" + +#: ../src/verbs.cpp:2647 +msgid "Remove clipping path from selection" +msgstr "" + +#. Tools +#: ../src/verbs.cpp:2650 +msgctxt "ContextVerb" +msgid "Select" +msgstr "" + +#: ../src/verbs.cpp:2651 +msgid "Select and transform objects" +msgstr "" + +#: ../src/verbs.cpp:2652 +msgctxt "ContextVerb" +msgid "Node Edit" +msgstr "" + +#: ../src/verbs.cpp:2653 +msgid "Edit paths by nodes" +msgstr "" + +#: ../src/verbs.cpp:2654 +msgctxt "ContextVerb" +msgid "Tweak" +msgstr "" + +#: ../src/verbs.cpp:2655 +msgid "Tweak objects by sculpting or painting" +msgstr "" + +#: ../src/verbs.cpp:2656 +msgctxt "ContextVerb" +msgid "Spray" +msgstr "" + +#: ../src/verbs.cpp:2657 +msgid "Spray objects by sculpting or painting" +msgstr "" + +#: ../src/verbs.cpp:2658 +msgctxt "ContextVerb" +msgid "Rectangle" +msgstr "" + +#: ../src/verbs.cpp:2659 +msgid "Create rectangles and squares" +msgstr "" + +#: ../src/verbs.cpp:2660 +msgctxt "ContextVerb" +msgid "3D Box" +msgstr "" + +#: ../src/verbs.cpp:2661 +msgid "Create 3D boxes" +msgstr "" + +#: ../src/verbs.cpp:2662 +msgctxt "ContextVerb" +msgid "Ellipse" +msgstr "" + +#: ../src/verbs.cpp:2663 +msgid "Create circles, ellipses, and arcs" +msgstr "" + +#: ../src/verbs.cpp:2664 +msgctxt "ContextVerb" +msgid "Star" +msgstr "" + +#: ../src/verbs.cpp:2665 +msgid "Create stars and polygons" +msgstr "" + +#: ../src/verbs.cpp:2666 +msgctxt "ContextVerb" +msgid "Spiral" +msgstr "" + +#: ../src/verbs.cpp:2667 +msgid "Create spirals" +msgstr "" + +#: ../src/verbs.cpp:2668 +msgctxt "ContextVerb" +msgid "Pencil" +msgstr "" + +#: ../src/verbs.cpp:2669 +msgid "Draw freehand lines" +msgstr "" + +#: ../src/verbs.cpp:2670 +msgctxt "ContextVerb" +msgid "Pen" +msgstr "" + +#: ../src/verbs.cpp:2671 +msgid "Draw Bezier curves and straight lines" +msgstr "" + +#: ../src/verbs.cpp:2672 +msgctxt "ContextVerb" +msgid "Calligraphy" +msgstr "" + +#: ../src/verbs.cpp:2673 +msgid "Draw calligraphic or brush strokes" +msgstr "" + +#: ../src/verbs.cpp:2675 +msgid "Create and edit text objects" +msgstr "" + +#: ../src/verbs.cpp:2676 +msgctxt "ContextVerb" +msgid "Gradient" +msgstr "" + +#: ../src/verbs.cpp:2677 +msgid "Create and edit gradients" +msgstr "" + +#: ../src/verbs.cpp:2678 +msgctxt "ContextVerb" +msgid "Mesh" +msgstr "" + +#: ../src/verbs.cpp:2679 +msgid "Create and edit meshes" +msgstr "" + +#: ../src/verbs.cpp:2680 +msgctxt "ContextVerb" +msgid "Zoom" +msgstr "" + +#: ../src/verbs.cpp:2681 +msgid "Zoom in or out" +msgstr "" + +#: ../src/verbs.cpp:2683 +msgid "Measurement tool" +msgstr "" + +#: ../src/verbs.cpp:2684 +msgctxt "ContextVerb" +msgid "Dropper" +msgstr "" + +#: ../src/verbs.cpp:2685 ../src/widgets/sp-color-notebook.cpp:411 +msgid "Pick colors from image" +msgstr "" + +#: ../src/verbs.cpp:2686 +msgctxt "ContextVerb" +msgid "Connector" +msgstr "" + +#: ../src/verbs.cpp:2687 +msgid "Create diagram connectors" +msgstr "" + +#: ../src/verbs.cpp:2688 +msgctxt "ContextVerb" +msgid "Paint Bucket" +msgstr "" + +#: ../src/verbs.cpp:2689 +msgid "Fill bounded areas" +msgstr "" + +#: ../src/verbs.cpp:2690 +msgctxt "ContextVerb" +msgid "LPE Edit" +msgstr "" + +#: ../src/verbs.cpp:2691 +msgid "Edit Path Effect parameters" +msgstr "" + +#: ../src/verbs.cpp:2692 +msgctxt "ContextVerb" +msgid "Eraser" +msgstr "" + +#: ../src/verbs.cpp:2693 +msgid "Erase existing paths" +msgstr "" + +#: ../src/verbs.cpp:2694 +msgctxt "ContextVerb" +msgid "LPE Tool" +msgstr "" + +#: ../src/verbs.cpp:2695 +msgid "Do geometric constructions" +msgstr "" + +#. Tool prefs +#: ../src/verbs.cpp:2697 +msgid "Selector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2698 +msgid "Open Preferences for the Selector tool" +msgstr "" + +#: ../src/verbs.cpp:2699 +msgid "Node Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2700 +msgid "Open Preferences for the Node tool" +msgstr "" + +#: ../src/verbs.cpp:2701 +msgid "Tweak Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2702 +msgid "Open Preferences for the Tweak tool" +msgstr "" + +#: ../src/verbs.cpp:2703 +msgid "Spray Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2704 +msgid "Open Preferences for the Spray tool" +msgstr "" + +#: ../src/verbs.cpp:2705 +msgid "Rectangle Preferences" +msgstr "" + +#: ../src/verbs.cpp:2706 +msgid "Open Preferences for the Rectangle tool" +msgstr "" + +#: ../src/verbs.cpp:2707 +msgid "3D Box Preferences" +msgstr "" + +#: ../src/verbs.cpp:2708 +msgid "Open Preferences for the 3D Box tool" +msgstr "" + +#: ../src/verbs.cpp:2709 +msgid "Ellipse Preferences" +msgstr "" + +#: ../src/verbs.cpp:2710 +msgid "Open Preferences for the Ellipse tool" +msgstr "" + +#: ../src/verbs.cpp:2711 +msgid "Star Preferences" +msgstr "" + +#: ../src/verbs.cpp:2712 +msgid "Open Preferences for the Star tool" +msgstr "" + +#: ../src/verbs.cpp:2713 +msgid "Spiral Preferences" +msgstr "" + +#: ../src/verbs.cpp:2714 +msgid "Open Preferences for the Spiral tool" +msgstr "" + +#: ../src/verbs.cpp:2715 +msgid "Pencil Preferences" +msgstr "" + +#: ../src/verbs.cpp:2716 +msgid "Open Preferences for the Pencil tool" +msgstr "" + +#: ../src/verbs.cpp:2717 +msgid "Pen Preferences" +msgstr "" + +#: ../src/verbs.cpp:2718 +msgid "Open Preferences for the Pen tool" +msgstr "" + +#: ../src/verbs.cpp:2719 +msgid "Calligraphic Preferences" +msgstr "" + +#: ../src/verbs.cpp:2720 +msgid "Open Preferences for the Calligraphy tool" +msgstr "" + +#: ../src/verbs.cpp:2721 +msgid "Text Preferences" +msgstr "" + +#: ../src/verbs.cpp:2722 +msgid "Open Preferences for the Text tool" +msgstr "" + +#: ../src/verbs.cpp:2723 +msgid "Gradient Preferences" +msgstr "" + +#: ../src/verbs.cpp:2724 +msgid "Open Preferences for the Gradient tool" +msgstr "" + +#: ../src/verbs.cpp:2725 +msgid "Mesh Preferences" +msgstr "" + +#: ../src/verbs.cpp:2726 +msgid "Open Preferences for the Mesh tool" +msgstr "" + +#: ../src/verbs.cpp:2727 +msgid "Zoom Preferences" +msgstr "" + +#: ../src/verbs.cpp:2728 +msgid "Open Preferences for the Zoom tool" +msgstr "" + +#: ../src/verbs.cpp:2729 +msgid "Measure Preferences" +msgstr "" + +#: ../src/verbs.cpp:2730 +msgid "Open Preferences for the Measure tool" +msgstr "" + +#: ../src/verbs.cpp:2731 +msgid "Dropper Preferences" +msgstr "" + +#: ../src/verbs.cpp:2732 +msgid "Open Preferences for the Dropper tool" +msgstr "" + +#: ../src/verbs.cpp:2733 +msgid "Connector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2734 +msgid "Open Preferences for the Connector tool" +msgstr "" + +#: ../src/verbs.cpp:2735 +msgid "Paint Bucket Preferences" +msgstr "" + +#: ../src/verbs.cpp:2736 +msgid "Open Preferences for the Paint Bucket tool" +msgstr "" + +#: ../src/verbs.cpp:2737 +msgid "Eraser Preferences" +msgstr "" + +#: ../src/verbs.cpp:2738 +msgid "Open Preferences for the Eraser tool" +msgstr "" + +#: ../src/verbs.cpp:2739 +msgid "LPE Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2740 +msgid "Open Preferences for the LPETool tool" +msgstr "" + +#. Zoom/View +#: ../src/verbs.cpp:2742 +msgid "Zoom In" +msgstr "" + +#: ../src/verbs.cpp:2742 +msgid "Zoom in" +msgstr "" + +#: ../src/verbs.cpp:2743 +msgid "Zoom Out" +msgstr "" + +#: ../src/verbs.cpp:2743 +msgid "Zoom out" +msgstr "" + +#: ../src/verbs.cpp:2744 +msgid "_Rulers" +msgstr "" + +#: ../src/verbs.cpp:2744 +msgid "Show or hide the canvas rulers" +msgstr "" + +#: ../src/verbs.cpp:2745 +msgid "Scroll_bars" +msgstr "" + +#: ../src/verbs.cpp:2745 +msgid "Show or hide the canvas scrollbars" +msgstr "" + +#: ../src/verbs.cpp:2746 +msgid "_Grid" +msgstr "" + +#: ../src/verbs.cpp:2746 +msgid "Show or hide the grid" +msgstr "" + +#: ../src/verbs.cpp:2747 +msgid "G_uides" +msgstr "" + +#: ../src/verbs.cpp:2747 +msgid "Show or hide guides (drag from a ruler to create a guide)" +msgstr "" + +#: ../src/verbs.cpp:2748 +msgid "Enable snapping" +msgstr "" + +#: ../src/verbs.cpp:2749 +msgid "_Commands Bar" +msgstr "" + +#: ../src/verbs.cpp:2749 +msgid "Show or hide the Commands bar (under the menu)" +msgstr "" + +#: ../src/verbs.cpp:2750 +msgid "Sn_ap Controls Bar" +msgstr "" + +#: ../src/verbs.cpp:2750 +msgid "Show or hide the snapping controls" +msgstr "" + +#: ../src/verbs.cpp:2751 +msgid "T_ool Controls Bar" +msgstr "" + +#: ../src/verbs.cpp:2751 +msgid "Show or hide the Tool Controls bar" +msgstr "" + +#: ../src/verbs.cpp:2752 +msgid "_Toolbox" +msgstr "" + +#: ../src/verbs.cpp:2752 +msgid "Show or hide the main toolbox (on the left)" +msgstr "" + +#: ../src/verbs.cpp:2753 +msgid "_Palette" +msgstr "" + +#: ../src/verbs.cpp:2753 +msgid "Show or hide the color palette" +msgstr "" + +#: ../src/verbs.cpp:2754 +msgid "_Statusbar" +msgstr "" + +#: ../src/verbs.cpp:2754 +msgid "Show or hide the statusbar (at the bottom of the window)" +msgstr "" + +#: ../src/verbs.cpp:2755 +msgid "Nex_t Zoom" +msgstr "" + +#: ../src/verbs.cpp:2755 +msgid "Next zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2757 +msgid "Pre_vious Zoom" +msgstr "" + +#: ../src/verbs.cpp:2757 +msgid "Previous zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2759 +msgid "Zoom 1:_1" +msgstr "" + +#: ../src/verbs.cpp:2759 +msgid "Zoom to 1:1" +msgstr "" + +#: ../src/verbs.cpp:2761 +msgid "Zoom 1:_2" +msgstr "" + +#: ../src/verbs.cpp:2761 +msgid "Zoom to 1:2" +msgstr "" + +#: ../src/verbs.cpp:2763 +msgid "_Zoom 2:1" +msgstr "" + +#: ../src/verbs.cpp:2763 +msgid "Zoom to 2:1" +msgstr "" + +#: ../src/verbs.cpp:2766 +msgid "_Fullscreen" +msgstr "" + +#: ../src/verbs.cpp:2766 ../src/verbs.cpp:2768 +msgid "Stretch this document window to full screen" +msgstr "" + +#: ../src/verbs.cpp:2768 +msgid "Fullscreen & Focus Mode" +msgstr "" + +#: ../src/verbs.cpp:2771 +msgid "Toggle _Focus Mode" +msgstr "" + +#: ../src/verbs.cpp:2771 +msgid "Remove excess toolbars to focus on drawing" +msgstr "" + +#: ../src/verbs.cpp:2773 +msgid "Duplic_ate Window" +msgstr "" + +#: ../src/verbs.cpp:2773 +msgid "Open a new window with the same document" +msgstr "" + +#: ../src/verbs.cpp:2775 +msgid "_New View Preview" +msgstr "" + +#: ../src/verbs.cpp:2776 +msgid "New View Preview" +msgstr "" + +#. "view_new_preview" +#: ../src/verbs.cpp:2778 ../src/verbs.cpp:2786 +msgid "_Normal" +msgstr "" + +#: ../src/verbs.cpp:2779 +msgid "Switch to normal display mode" +msgstr "" + +#: ../src/verbs.cpp:2780 +msgid "No _Filters" +msgstr "" + +#: ../src/verbs.cpp:2781 +msgid "Switch to normal display without filters" +msgstr "" + +#: ../src/verbs.cpp:2782 +msgid "_Outline" +msgstr "" + +#: ../src/verbs.cpp:2783 +msgid "Switch to outline (wireframe) display mode" +msgstr "" + +#. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), +#. N_("Switch to print colors preview mode"), NULL), +#: ../src/verbs.cpp:2784 ../src/verbs.cpp:2792 +msgid "_Toggle" +msgstr "" + +#: ../src/verbs.cpp:2785 +msgid "Toggle between normal and outline display modes" +msgstr "" + +#: ../src/verbs.cpp:2787 +msgid "Switch to normal color display mode" +msgstr "" + +#: ../src/verbs.cpp:2788 +msgid "_Grayscale" +msgstr "" + +#: ../src/verbs.cpp:2789 +msgid "Switch to grayscale display mode" +msgstr "" + +#: ../src/verbs.cpp:2793 +msgid "Toggle between normal and grayscale color display modes" +msgstr "" + +#: ../src/verbs.cpp:2795 +msgid "Color-managed view" +msgstr "" + +#: ../src/verbs.cpp:2796 +msgid "Toggle color-managed display for this document window" +msgstr "" + +#: ../src/verbs.cpp:2798 +msgid "Ico_n Preview..." +msgstr "" + +#: ../src/verbs.cpp:2799 +msgid "Open a window to preview objects at different icon resolutions" +msgstr "" + +#: ../src/verbs.cpp:2801 +msgid "Zoom to fit page in window" +msgstr "" + +#: ../src/verbs.cpp:2802 +msgid "Page _Width" +msgstr "" + +#: ../src/verbs.cpp:2803 +msgid "Zoom to fit page width in window" +msgstr "" + +#: ../src/verbs.cpp:2805 +msgid "Zoom to fit drawing in window" +msgstr "" + +#: ../src/verbs.cpp:2807 +msgid "Zoom to fit selection in window" +msgstr "" + +#. Dialogs +#: ../src/verbs.cpp:2810 +msgid "P_references..." +msgstr "" + +#: ../src/verbs.cpp:2811 +msgid "Edit global Inkscape preferences" +msgstr "" + +#: ../src/verbs.cpp:2812 +msgid "_Document Properties..." +msgstr "" + +#: ../src/verbs.cpp:2813 +msgid "Edit properties of this document (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2814 +msgid "Document _Metadata..." +msgstr "" + +#: ../src/verbs.cpp:2815 +msgid "Edit document metadata (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2817 +msgid "" +"Edit objects' colors, gradients, arrowheads, and other fill and stroke " +"properties..." +msgstr "" + +#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon +#: ../src/verbs.cpp:2819 +msgid "Gl_yphs..." +msgstr "" + +#: ../src/verbs.cpp:2820 +msgid "Select characters from a glyphs palette" +msgstr "" + +#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon +#. TRANSLATORS: "Swatches" means: color samples +#: ../src/verbs.cpp:2823 +msgid "S_watches..." +msgstr "" + +#: ../src/verbs.cpp:2824 +msgid "Select colors from a swatches palette" +msgstr "" + +#: ../src/verbs.cpp:2825 +msgid "S_ymbols..." +msgstr "" + +#: ../src/verbs.cpp:2826 +msgid "Select symbol from a symbols palette" +msgstr "" + +#: ../src/verbs.cpp:2827 +msgid "Transfor_m..." +msgstr "" + +#: ../src/verbs.cpp:2828 +msgid "Precisely control objects' transformations" +msgstr "" + +#: ../src/verbs.cpp:2829 +msgid "_Align and Distribute..." +msgstr "" + +#: ../src/verbs.cpp:2830 +msgid "Align and distribute objects" +msgstr "" + +#: ../src/verbs.cpp:2831 +msgid "_Spray options..." +msgstr "" + +#: ../src/verbs.cpp:2832 +msgid "Some options for the spray" +msgstr "" + +#: ../src/verbs.cpp:2833 +msgid "Undo _History..." +msgstr "" + +#: ../src/verbs.cpp:2834 +msgid "Undo History" +msgstr "" + +#: ../src/verbs.cpp:2836 +msgid "View and select font family, font size and other text properties" +msgstr "" + +#: ../src/verbs.cpp:2837 +msgid "_XML Editor..." +msgstr "" + +#: ../src/verbs.cpp:2838 +msgid "View and edit the XML tree of the document" +msgstr "" + +#: ../src/verbs.cpp:2839 +msgid "_Find/Replace..." +msgstr "" + +#: ../src/verbs.cpp:2840 +msgid "Find objects in document" +msgstr "" + +#: ../src/verbs.cpp:2841 +msgid "Find and _Replace Text..." +msgstr "" + +#: ../src/verbs.cpp:2842 +msgid "Find and replace text in document" +msgstr "" + +#: ../src/verbs.cpp:2844 +msgid "Check spelling of text in document" +msgstr "" + +#: ../src/verbs.cpp:2845 +msgid "_Messages..." +msgstr "" + +#: ../src/verbs.cpp:2846 +msgid "View debug messages" +msgstr "" + +#: ../src/verbs.cpp:2847 +msgid "Show/Hide D_ialogs" +msgstr "" + +#: ../src/verbs.cpp:2848 +msgid "Show or hide all open dialogs" +msgstr "" + +#: ../src/verbs.cpp:2849 +msgid "Create Tiled Clones..." +msgstr "" + +#: ../src/verbs.cpp:2850 +msgid "" +"Create multiple clones of selected object, arranging them into a pattern or " +"scattering" +msgstr "" + +#: ../src/verbs.cpp:2851 +msgid "_Object attributes..." +msgstr "" + +#: ../src/verbs.cpp:2852 +msgid "Edit the object attributes..." +msgstr "" + +#: ../src/verbs.cpp:2854 +msgid "Edit the ID, locked and visible status, and other object properties" +msgstr "" + +#: ../src/verbs.cpp:2855 +msgid "_Input Devices..." +msgstr "" + +#: ../src/verbs.cpp:2856 +msgid "Configure extended input devices, such as a graphics tablet" +msgstr "" + +#: ../src/verbs.cpp:2857 +msgid "_Extensions..." +msgstr "" + +#: ../src/verbs.cpp:2858 +msgid "Query information about extensions" +msgstr "" + +#: ../src/verbs.cpp:2859 +msgid "Layer_s..." +msgstr "" + +#: ../src/verbs.cpp:2860 +msgid "View Layers" +msgstr "" + +#: ../src/verbs.cpp:2861 +msgid "Path E_ffects ..." +msgstr "" + +#: ../src/verbs.cpp:2862 +msgid "Manage, edit, and apply path effects" +msgstr "" + +#: ../src/verbs.cpp:2863 +msgid "Filter _Editor..." +msgstr "" + +#: ../src/verbs.cpp:2864 +msgid "Manage, edit, and apply SVG filters" +msgstr "" + +#: ../src/verbs.cpp:2865 +msgid "SVG Font Editor..." +msgstr "" + +#: ../src/verbs.cpp:2866 +msgid "Edit SVG fonts" +msgstr "" + +#: ../src/verbs.cpp:2867 +msgid "Print Colors..." +msgstr "" + +#: ../src/verbs.cpp:2868 +msgid "" +"Select which color separations to render in Print Colors Preview rendermode" +msgstr "" + +#: ../src/verbs.cpp:2869 +msgid "_Export PNG Image..." +msgstr "" + +#: ../src/verbs.cpp:2870 +msgid "Export this document or a selection as a PNG image" +msgstr "" + +#. Help +#: ../src/verbs.cpp:2872 +msgid "About E_xtensions" +msgstr "" + +#: ../src/verbs.cpp:2873 +msgid "Information on Inkscape extensions" +msgstr "" + +#: ../src/verbs.cpp:2874 +msgid "About _Memory" +msgstr "" + +#: ../src/verbs.cpp:2875 +msgid "Memory usage information" +msgstr "" + +#: ../src/verbs.cpp:2876 +msgid "_About Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2877 +msgid "Inkscape version, authors, license" +msgstr "" + +#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), +#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), +#. Tutorials +#: ../src/verbs.cpp:2882 +msgid "Inkscape: _Basic" +msgstr "" + +#: ../src/verbs.cpp:2883 +msgid "Getting started with Inkscape" +msgstr "" + +#. "tutorial_basic" +#: ../src/verbs.cpp:2884 +msgid "Inkscape: _Shapes" +msgstr "" + +#: ../src/verbs.cpp:2885 +msgid "Using shape tools to create and edit shapes" +msgstr "" + +#: ../src/verbs.cpp:2886 +msgid "Inkscape: _Advanced" +msgstr "" + +#: ../src/verbs.cpp:2887 +msgid "Advanced Inkscape topics" +msgstr "" + +#. "tutorial_advanced" +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/verbs.cpp:2889 +msgid "Inkscape: T_racing" +msgstr "" + +#: ../src/verbs.cpp:2890 +msgid "Using bitmap tracing" +msgstr "" + +#. "tutorial_tracing" +#: ../src/verbs.cpp:2891 +msgid "Inkscape: Tracing Pixel Art" +msgstr "" + +#: ../src/verbs.cpp:2892 +msgid "Using Trace Pixel Art dialog" +msgstr "" + +#: ../src/verbs.cpp:2893 +msgid "Inkscape: _Calligraphy" +msgstr "" + +#: ../src/verbs.cpp:2894 +msgid "Using the Calligraphy pen tool" +msgstr "" + +#: ../src/verbs.cpp:2895 +msgid "Inkscape: _Interpolate" +msgstr "" + +#: ../src/verbs.cpp:2896 +msgid "Using the interpolate extension" +msgstr "" + +#. "tutorial_interpolate" +#: ../src/verbs.cpp:2897 +msgid "_Elements of Design" +msgstr "" + +#: ../src/verbs.cpp:2898 +msgid "Principles of design in the tutorial form" +msgstr "" + +#. "tutorial_design" +#: ../src/verbs.cpp:2899 +msgid "_Tips and Tricks" +msgstr "" + +#: ../src/verbs.cpp:2900 +msgid "Miscellaneous tips and tricks" +msgstr "" + +#. "tutorial_tips" +#. Effect -- renamed Extension +#: ../src/verbs.cpp:2903 +msgid "Previous Exte_nsion" +msgstr "" + +#: ../src/verbs.cpp:2904 +msgid "Repeat the last extension with the same settings" +msgstr "" + +#: ../src/verbs.cpp:2905 +msgid "_Previous Extension Settings..." +msgstr "" + +#: ../src/verbs.cpp:2906 +msgid "Repeat the last extension with new settings" +msgstr "" + +#: ../src/verbs.cpp:2910 +msgid "Fit the page to the current selection" +msgstr "" + +#: ../src/verbs.cpp:2912 +msgid "Fit the page to the drawing" +msgstr "" + +#: ../src/verbs.cpp:2914 +msgid "" +"Fit the page to the current selection or the drawing if there is no selection" +msgstr "" + +#. LockAndHide +#: ../src/verbs.cpp:2916 +msgid "Unlock All" +msgstr "" + +#: ../src/verbs.cpp:2918 +msgid "Unlock All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2920 +msgid "Unhide All" +msgstr "" + +#: ../src/verbs.cpp:2922 +msgid "Unhide All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2926 +msgid "Link an ICC color profile" +msgstr "" + +#: ../src/verbs.cpp:2927 +msgid "Remove Color Profile" +msgstr "" + +#: ../src/verbs.cpp:2928 +msgid "Remove a linked ICC color profile" +msgstr "" + +#: ../src/verbs.cpp:2931 +msgid "Add External Script" +msgstr "" + +#: ../src/verbs.cpp:2931 +msgid "Add an external script" +msgstr "" + +#: ../src/verbs.cpp:2933 +msgid "Add Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:2933 +msgid "Add an embedded script" +msgstr "" + +#: ../src/verbs.cpp:2935 +msgid "Edit Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:2935 +msgid "Edit an embedded script" +msgstr "" + +#: ../src/verbs.cpp:2937 +msgid "Remove External Script" +msgstr "" + +#: ../src/verbs.cpp:2937 +msgid "Remove an external script" +msgstr "" + +#: ../src/verbs.cpp:2939 +msgid "Remove Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:2939 +msgid "Remove an embedded script" +msgstr "" + +#: ../src/verbs.cpp:2961 ../src/verbs.cpp:2962 +msgid "Center on horizontal and vertical axis" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:131 +msgid "Arc: Change start/end" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:197 +msgid "Arc: Change open/closed" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:288 ../src/widgets/arc-toolbar.cpp:317 +#: ../src/widgets/rect-toolbar.cpp:258 ../src/widgets/rect-toolbar.cpp:296 +#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 +#: ../src/widgets/star-toolbar.cpp:383 ../src/widgets/star-toolbar.cpp:444 +msgid "New:" +msgstr "" + +#. FIXME: implement averaging of all parameters for multiple selected +#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); +#: ../src/widgets/arc-toolbar.cpp:291 ../src/widgets/arc-toolbar.cpp:302 +#: ../src/widgets/rect-toolbar.cpp:266 ../src/widgets/rect-toolbar.cpp:284 +#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 +#: ../src/widgets/star-toolbar.cpp:385 +msgid "Change:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:327 +msgid "The angle (in degrees) from the horizontal to the arc's start point" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:340 +msgid "The angle (in degrees) from the horizontal to the arc's end point" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:356 +msgid "Closed arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:357 +msgid "Switch to segment (closed shape with two radii)" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:363 +msgid "Open Arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:364 +msgid "Switch to arc (unclosed shape)" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:387 +msgid "Make whole" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:388 +msgid "Make the shape a whole ellipse, not arc or segment" +msgstr "" + +#. TODO: use the correct axis here, too +#: ../src/widgets/box3d-toolbar.cpp:232 +msgid "3D Box: Change perspective (angle of infinite axis)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:299 +msgid "Angle in X direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:301 +msgid "Angle of PLs in X direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:323 +msgid "State of VP in X direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:324 +msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:339 +msgid "Angle in Y direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:339 +msgid "Angle Y:" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:341 +msgid "Angle of PLs in Y direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:362 +msgid "State of VP in Y direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:363 +msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:378 +msgid "Angle in Z direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:380 +msgid "Angle of PLs in Z direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:401 +msgid "State of VP in Z direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:402 +msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#. gint preset_index = ege_select_one_action_get_active( sel ); +#: ../src/widgets/calligraphy-toolbar.cpp:218 +#: ../src/widgets/calligraphy-toolbar.cpp:262 +#: ../src/widgets/calligraphy-toolbar.cpp:267 +msgid "No preset" +msgstr "" + +#. Width +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(hairline)" +msgstr "" + +#. Mean +#. Rotation +#. Scale +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:277 +#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 +#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(broad stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 +msgid "Pen Width" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:431 +msgid "The width of the calligraphic pen (relative to the visible canvas area)" +msgstr "" + +#. Thinning +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed blows up stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight widening)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(constant width)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight thinning, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed deflates stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Stroke Thinning" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Thinning:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:448 +msgid "" +"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " +"makes them broader, 0 makes width independent of velocity)" +msgstr "" + +#. Angle +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(left edge up)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(horizontal)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(right edge up)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:463 +msgid "Pen Angle" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:464 +msgid "" +"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " +"fixation = 0)" +msgstr "" + +#. Fixation +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(perpendicular to stroke, \"brush\")" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(almost fixed, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(fixed by Angle, \"pen\")" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:482 +msgid "" +"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " +"fixed angle)" +msgstr "" + +#. Cap Rounding +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(blunt caps, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(slightly bulging)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(approximately round)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(long protruding caps)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Cap rounding" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Caps:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:499 +msgid "" +"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " +"round caps)" +msgstr "" + +#. Tremor +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(smooth line)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(slight tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(noticeable tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(maximum tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Stroke Tremor" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Tremor:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:515 +msgid "Increase to make strokes rugged and trembling" +msgstr "" + +#. Wiggle +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(no wiggle)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(slight deviation)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(wild waves and curls)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Pen Wiggle" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Wiggle:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:533 +msgid "Increase to make the pen waver and wiggle" +msgstr "" + +#. Mass +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(no inertia)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(slight smoothing, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(noticeable lagging)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(maximum inertia)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Pen Mass" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Mass:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:550 +msgid "Increase to make the pen drag behind, as if slowed by inertia" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:565 +msgid "Trace Background" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:566 +msgid "" +"Trace the lightness of the background by the width of the pen (white - " +"minimum width, black - maximum width)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:579 +msgid "Use the pressure of the input device to alter the width of the pen" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:591 +msgid "Tilt" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:592 +msgid "Use the tilt of the input device to alter the angle of the pen's nib" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:607 +msgid "Choose a preset" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:622 +msgid "Add/Edit Profile" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:623 +msgid "Add or edit calligraphic profile" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:117 +msgid "Set connector type: orthogonal" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:117 +msgid "Set connector type: polyline" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:166 +msgid "Change connector curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:217 +msgid "Change connector spacing" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:310 +msgid "Avoid" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:320 +msgid "Ignore" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:331 +msgid "Orthogonal" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:332 +msgid "Make connector orthogonal or polyline" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:346 +msgid "Connector Curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:346 +msgid "Curvature:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:347 +msgid "The amount of connectors curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:357 +msgid "Connector Spacing" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:357 +msgid "Spacing:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:358 +msgid "The amount of space left around objects by auto-routing connectors" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:369 +msgid "Graph" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:379 +msgid "Connector Length" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:379 +msgid "Length:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:380 +msgid "Ideal length for connectors when layout is applied" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:392 +msgid "Downwards" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:393 +msgid "Make connectors with end-markers (arrows) point downwards" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:409 +msgid "Do not allow overlapping shapes" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:59 +msgid "Dash pattern" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:76 +msgid "Pattern offset" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:466 +msgid "Zoom drawing if window size changes" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:665 +msgid "Cursor coordinates" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:691 +msgid "Z:" +msgstr "" + +#. display the initial welcome message in the statusbar +#: ../src/widgets/desktop-widget.cpp:734 +msgid "" +"Welcome to Inkscape! Use shape or freehand tools to create objects; " +"use selector (arrow) to move or transform them." +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:828 +msgid "grayscale" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:829 +msgid ", grayscale" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:830 +msgid "print colors preview" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:831 +msgid ", print colors preview" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:832 +msgid "outline" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:833 +msgid "no filters" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:860 +#, c-format +msgid "%s%s: %d (%s%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 +#, c-format +msgid "%s%s: %d (%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:868 +#, c-format +msgid "%s%s: %d - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:874 +#, c-format +msgid "%s%s (%s%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 +#, c-format +msgid "%s%s (%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:882 +#, c-format +msgid "%s%s - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1051 +msgid "Color-managed display is enabled in this window" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1053 +msgid "Color-managed display is disabled in this window" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1108 +#, c-format +msgid "" +"Save changes to document \"%s\" before " +"closing?\n" +"\n" +"If you close without saving, your changes will be discarded." +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1118 +#: ../src/widgets/desktop-widget.cpp:1177 +msgid "Close _without saving" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1167 +#, c-format +msgid "" +"The file \"%s\" was saved with a " +"format that may cause data loss!\n" +"\n" +"Do you want to save this file as Inkscape SVG?" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1179 +msgid "_Save as Inkscape SVG" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1389 +msgid "Note:" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:90 +msgid "Pick opacity" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:91 +msgid "" +"Pick both the color and the alpha (transparency) under cursor; otherwise, " +"pick only the visible color premultiplied by alpha" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:94 +msgid "Pick" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:103 +msgid "Assign opacity" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:104 +msgid "" +"If alpha was picked, assign it to selection as fill or stroke transparency" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:107 +msgid "Assign" +msgstr "" + +#: ../src/widgets/ege-paint-def.cpp:88 +msgid "remove" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:94 +msgid "Delete objects touched by the eraser" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:100 +msgid "Cut" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:101 +msgid "Cut out from objects" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:129 +msgid "The width of the eraser pen (relative to the visible canvas area)" +msgstr "" + +#: ../src/widgets/fill-style.cpp:362 +msgid "Change fill rule" +msgstr "" + +#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +msgid "Set fill color" +msgstr "" + +#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +msgid "Set stroke color" +msgstr "" + +#: ../src/widgets/fill-style.cpp:625 +msgid "Set gradient on fill" +msgstr "" + +#: ../src/widgets/fill-style.cpp:625 +msgid "Set gradient on stroke" +msgstr "" + +#: ../src/widgets/fill-style.cpp:685 +msgid "Set pattern on fill" +msgstr "" + +#: ../src/widgets/fill-style.cpp:686 +msgid "Set pattern on stroke" +msgstr "" + +#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:949 +#: ../src/widgets/text-toolbar.cpp:1262 +msgid "Font size" +msgstr "" + +#. Family frame +#: ../src/widgets/font-selector.cpp:148 +msgid "Font family" +msgstr "" + +#. Style frame +#: ../src/widgets/font-selector.cpp:191 +msgctxt "Font selector" +msgid "Style" +msgstr "" + +#: ../src/widgets/font-selector.cpp:242 ../share/extensions/dots.inx.h:3 +msgid "Font size:" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:214 +msgid "Create a duplicate gradient" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:230 +msgid "Edit gradient" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:306 +#: ../src/widgets/paint-selector.cpp:244 +msgid "Swatch" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:356 +msgid "Rename gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:156 +#: ../src/widgets/gradient-toolbar.cpp:169 +#: ../src/widgets/gradient-toolbar.cpp:761 +#: ../src/widgets/gradient-toolbar.cpp:1096 +msgid "No gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:175 +msgid "Multiple gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:681 +msgid "Multiple stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:779 +#: ../src/widgets/gradient-vector.cpp:629 +msgid "No stops in gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:932 +msgid "Assign gradient to object" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:954 +msgid "Set gradient repeat" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:992 +#: ../src/widgets/gradient-vector.cpp:740 +msgid "Change gradient stop offset" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1036 +msgid "linear" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1036 +msgid "Create linear gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1040 +msgid "radial" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1040 +msgid "Create radial (elliptic or circular) gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1043 +#: ../src/widgets/mesh-toolbar.cpp:211 +msgid "New:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1066 +#: ../src/widgets/mesh-toolbar.cpp:234 +msgid "fill" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1066 +#: ../src/widgets/mesh-toolbar.cpp:234 +msgid "Create gradient in the fill" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:238 +msgid "stroke" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:238 +msgid "Create gradient in the stroke" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1073 +#: ../src/widgets/mesh-toolbar.cpp:241 +msgid "on:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1098 +msgid "Select" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1098 +msgid "Choose a gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1099 +msgid "Select:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1117 +msgid "Reflected" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1120 +msgid "Direct" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1122 +msgid "Repeat" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute +#: ../src/widgets/gradient-toolbar.cpp:1124 +msgid "" +"Whether to fill with flat color beyond the ends of the gradient vector " +"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " +"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " +"directions (spreadMethod=\"reflect\")" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1129 +msgid "Repeat:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1143 +msgid "No stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1145 +msgid "Stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1145 +msgid "Select a stop for the current gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1146 +msgid "Stops:" +msgstr "" + +#. Label +#: ../src/widgets/gradient-toolbar.cpp:1158 +#: ../src/widgets/gradient-vector.cpp:926 +msgctxt "Gradient" +msgid "Offset:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1158 +msgid "Offset of selected stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1176 +#: ../src/widgets/gradient-toolbar.cpp:1177 +msgid "Insert new stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1190 +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-vector.cpp:908 +msgid "Delete stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1204 +msgid "Reverse" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1205 +msgid "Reverse the direction of the gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1219 +msgid "Link gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1220 +msgid "Link gradients to change all related gradients" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:332 +#: ../src/widgets/paint-selector.cpp:922 +#: ../src/widgets/stroke-marker-selector.cpp:154 +msgid "No document selected" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:336 +msgid "No gradients in document" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:340 +msgid "No gradient selected" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:903 +msgid "Add stop" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:906 +msgid "Add another control stop to gradient" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:911 +msgid "Delete current control stop from gradient" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:979 +msgid "Stop Color" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:1007 +msgid "Gradient editor" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:1307 +msgid "Change gradient stop color" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:298 +msgid "All inactive" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:299 +msgid "No geometric tool is active" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:332 +msgid "Show limiting bounding box" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:333 +msgid "Show bounding box (used to cut infinite lines)" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:344 +msgid "Get limiting bounding box from selection" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:345 +msgid "" +"Set limiting bounding box (used to cut infinite lines) to the bounding box " +"of current selection" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:357 +msgid "Choose a line segment type" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:373 +msgid "Display measuring info" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:374 +msgid "Display measuring info for selected items" +msgstr "" + +#. Add the units menu. +#: ../src/widgets/lpe-toolbar.cpp:384 ../src/widgets/node-toolbar.cpp:613 +#: ../src/widgets/paintbucket-toolbar.cpp:166 +#: ../src/widgets/rect-toolbar.cpp:375 ../src/widgets/select-toolbar.cpp:536 +msgid "Units" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:394 +msgid "Open LPE dialog" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:395 +msgid "Open LPE dialog (to adapt parameters numerically)" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1265 +msgid "Font Size" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:86 +msgid "Font Size:" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:87 +msgid "The font size to be used in the measurement labels" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +msgid "The units to be used for the measurements" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:204 +msgid "normal" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:204 +msgid "Create mesh gradient" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:208 +msgid "conical" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:208 +msgid "Create conical gradient" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:263 +#: ../share/extensions/guides_creator.inx.h:5 +msgid "Rows" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:263 ../share/extensions/layout_nup.inx.h:12 +msgid "Rows:" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:263 +msgid "Number of rows in new mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:279 +#: ../share/extensions/guides_creator.inx.h:4 +msgid "Columns" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:279 +msgid "Columns:" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:279 +msgid "Number of columns in new mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:293 +msgid "Edit Fill" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:294 +msgid "Edit fill mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:305 +msgid "Edit Stroke" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:306 +msgid "Edit stroke mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:521 +msgid "Show Handles" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:318 +msgid "Show side and tensor handles" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:341 +msgid "Insert node" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:342 +msgid "Insert new nodes into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:345 +msgid "Insert" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:356 +msgid "Insert node at min X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:357 +msgid "Insert new nodes at min X into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:360 +msgid "Insert min X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:366 +msgid "Insert node at max X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:367 +msgid "Insert new nodes at max X into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:370 +msgid "Insert max X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:376 +msgid "Insert node at min Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:377 +msgid "Insert new nodes at min Y into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:380 +msgid "Insert min Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:386 +msgid "Insert node at max Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:387 +msgid "Insert new nodes at max Y into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:390 +msgid "Insert max Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:398 +msgid "Delete selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:409 +msgid "Join selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:412 +msgid "Join" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:420 +msgid "Break path at selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:430 +msgid "Join with segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:431 +msgid "Join selected endnodes with a new segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:440 +msgid "Delete segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:441 +msgid "Delete segment between two non-endpoint nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:450 +msgid "Node Cusp" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:451 +msgid "Make selected nodes corner" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:460 +msgid "Node Smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:461 +msgid "Make selected nodes smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:470 +msgid "Node Symmetric" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:471 +msgid "Make selected nodes symmetric" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:480 +msgid "Node Auto" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:481 +msgid "Make selected nodes auto-smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:490 +msgid "Node Line" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:491 +msgid "Make selected segments lines" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:500 +msgid "Node Curve" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:501 +msgid "Make selected segments curves" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:510 +msgid "Show Transform Handles" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:511 +msgid "Show transformation handles for selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:522 +msgid "Show Bezier handles of selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:532 +msgid "Show Outline" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:533 +msgid "Show path outline (without path effects)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:555 +msgid "Edit clipping paths" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:556 +msgid "Show clipping path(s) of selected object(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:566 +msgid "Edit masks" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:567 +msgid "Show mask(s) of selected object(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate:" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate:" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:133 +msgid "Fill by" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:134 +msgid "Fill by:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:146 +msgid "Fill Threshold" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:147 +msgid "" +"The maximum allowed difference between the clicked pixel and the neighboring " +"pixels to be counted in the fill" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:174 +msgid "Grow/shrink by" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:174 +msgid "Grow/shrink by:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:175 +msgid "" +"The amount to grow (positive) or shrink (negative) the created fill path" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:200 +msgid "Close gaps" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:201 +msgid "Close gaps:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:212 +#: ../src/widgets/pencil-toolbar.cpp:301 ../src/widgets/spiral-toolbar.cpp:289 +#: ../src/widgets/star-toolbar.cpp:564 +msgid "Defaults" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:213 +msgid "" +"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " +"to change defaults)" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:234 +msgid "No paint" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:236 +msgid "Flat color" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:238 +msgid "Linear gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:240 +msgid "Radial gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:246 +msgid "Unset paint (make it undefined so it can be inherited)" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty +#: ../src/widgets/paint-selector.cpp:263 +msgid "" +"Any path self-intersections or subpaths create holes in the fill (fill-rule: " +"evenodd)" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty +#: ../src/widgets/paint-selector.cpp:274 +msgid "" +"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:590 +msgid "No objects" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:601 +msgid "Multiple styles" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:612 +msgid "Paint is undefined" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:623 +msgid "No paint" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:694 +msgid "Flat color" +msgstr "" + +#. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); +#: ../src/widgets/paint-selector.cpp:758 +msgid "Linear gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:761 +msgid "Radial gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:1055 +msgid "" +"Use the Node tool to adjust position, scale, and rotation of the " +"pattern on canvas. Use Object > Pattern > Objects to Pattern to " +"create a new pattern from selection." +msgstr "" + +#: ../src/widgets/paint-selector.cpp:1068 +msgid "Pattern fill" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:1162 +msgid "Swatch fill" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:104 +msgid "Bezier" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:105 +msgid "Create regular Bezier path" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:112 +msgid "Create Spiro path" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:119 +msgid "Zigzag" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:120 +msgid "Create a sequence of straight line segments" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:126 +msgid "Paraxial" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:127 +msgid "Create a sequence of paraxial line segments" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:135 +msgid "Mode of new lines drawn by this tool" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:164 +msgid "Triangle in" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:165 +msgid "Triangle out" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:167 +msgid "From clipboard" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:192 ../src/widgets/pencil-toolbar.cpp:193 +msgid "Shape:" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:192 +msgid "Shape of new paths drawn by this tool" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:277 +msgid "(many nodes, rough)" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:277 +msgid "(few nodes, smooth)" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:280 +msgid "Smoothing:" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:280 +msgid "Smoothing: " +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:281 +msgid "How much smoothing (simplifying) is applied to the line" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:302 +msgid "" +"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:122 +msgid "Change rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:314 +msgid "W:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:314 +msgid "Width of rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:331 +msgid "H:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:331 +msgid "Height of rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:345 ../src/widgets/rect-toolbar.cpp:360 +msgid "not rounded" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Horizontal radius" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Rx:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Horizontal radius of rounded corners" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Vertical radius" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Ry:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Vertical radius of rounded corners" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:382 +msgid "Not rounded" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:383 +msgid "Make corners sharp" +msgstr "" + +#: ../src/widgets/ruler.cpp:192 +msgid "The orientation of the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:202 +msgid "Unit of the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:209 +msgid "Lower" +msgstr "" + +#: ../src/widgets/ruler.cpp:210 +msgid "Lower limit of ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:219 +msgid "Upper" +msgstr "" + +#: ../src/widgets/ruler.cpp:220 +msgid "Upper limit of ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:230 +msgid "Position of mark on the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:239 +msgid "Max Size" +msgstr "" + +#: ../src/widgets/ruler.cpp:240 +msgid "Maximum size of the ruler" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:260 +msgid "Transform by toolbar" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:339 +msgid "Now stroke width is scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:341 +msgid "Now stroke width is not scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:352 +msgid "" +"Now rounded rectangle corners are scaled when rectangles are " +"scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:354 +msgid "" +"Now rounded rectangle corners are not scaled when rectangles " +"are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:365 +msgid "" +"Now gradients are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:367 +msgid "" +"Now gradients remain fixed when objects are transformed " +"(moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:378 +msgid "" +"Now patterns are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:380 +msgid "" +"Now patterns remain fixed when objects are transformed (moved, " +"scaled, rotated, or skewed)." +msgstr "" + +#. four spinbuttons +#: ../src/widgets/select-toolbar.cpp:498 +msgctxt "Select toolbar" +msgid "X position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:498 +msgctxt "Select toolbar" +msgid "X:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:500 +msgid "Horizontal coordinate of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:504 +msgctxt "Select toolbar" +msgid "Y position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:504 +msgctxt "Select toolbar" +msgid "Y:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:506 +msgid "Vertical coordinate of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:510 +msgctxt "Select toolbar" +msgid "Width" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:510 +msgctxt "Select toolbar" +msgid "W:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:512 +msgid "Width of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:519 +msgid "Lock width and height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:520 +msgid "When locked, change both width and height by the same proportion" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:529 +msgctxt "Select toolbar" +msgid "Height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:529 +msgctxt "Select toolbar" +msgid "H:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:531 +msgid "Height of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:581 +msgid "Scale rounded corners" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:592 +msgid "Move gradients" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:603 +msgid "Move patterns" +msgstr "" + +#: ../src/widgets/sp-attribute-widget.cpp:299 +msgid "Set attribute" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:257 +msgid "CMS" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:355 +#: ../src/widgets/sp-color-scales.cpp:428 +msgid "_R:" +msgstr "" + +#. TYPE_RGB_16 +#: ../src/widgets/sp-color-icc-selector.cpp:356 +#: ../src/widgets/sp-color-scales.cpp:431 +msgid "_G:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:357 +#: ../src/widgets/sp-color-scales.cpp:434 +msgid "_B:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:359 +msgid "Gray" +msgstr "" + +#. TYPE_GRAY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:361 +#: ../src/widgets/sp-color-icc-selector.cpp:365 +#: ../src/widgets/sp-color-scales.cpp:454 +msgid "_H:" +msgstr "" + +#. TYPE_HSV_16 +#: ../src/widgets/sp-color-icc-selector.cpp:362 +#: ../src/widgets/sp-color-icc-selector.cpp:367 +#: ../src/widgets/sp-color-scales.cpp:457 +msgid "_S:" +msgstr "" + +#. TYPE_HLS_16 +#: ../src/widgets/sp-color-icc-selector.cpp:366 +#: ../src/widgets/sp-color-scales.cpp:460 +msgid "_L:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:369 +#: ../src/widgets/sp-color-icc-selector.cpp:374 +#: ../src/widgets/sp-color-scales.cpp:482 +msgid "_C:" +msgstr "" + +#. TYPE_CMYK_16 +#. TYPE_CMY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:370 +#: ../src/widgets/sp-color-icc-selector.cpp:375 +#: ../src/widgets/sp-color-scales.cpp:485 +msgid "_M:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:376 +#: ../src/widgets/sp-color-scales.cpp:488 +msgid "_Y:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:372 +#: ../src/widgets/sp-color-scales.cpp:491 +msgid "_K:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:455 +msgid "Fix" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:458 +msgid "Fix RGB fallback to match icc-color() value." +msgstr "" + +#. Label +#: ../src/widgets/sp-color-icc-selector.cpp:561 +#: ../src/widgets/sp-color-scales.cpp:437 +#: ../src/widgets/sp-color-scales.cpp:463 +#: ../src/widgets/sp-color-scales.cpp:494 +#: ../src/widgets/sp-color-wheel-selector.cpp:140 +msgid "_A:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:572 +#: ../src/widgets/sp-color-icc-selector.cpp:585 +#: ../src/widgets/sp-color-scales.cpp:438 +#: ../src/widgets/sp-color-scales.cpp:439 +#: ../src/widgets/sp-color-scales.cpp:464 +#: ../src/widgets/sp-color-scales.cpp:465 +#: ../src/widgets/sp-color-scales.cpp:495 +#: ../src/widgets/sp-color-scales.cpp:496 +#: ../src/widgets/sp-color-wheel-selector.cpp:161 +#: ../src/widgets/sp-color-wheel-selector.cpp:185 +msgid "Alpha (opacity)" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:385 +msgid "Color Managed" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:392 +msgid "Out of gamut!" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:399 +msgid "Too much ink!" +msgstr "" + +#. Create RGBA entry and color preview +#: ../src/widgets/sp-color-notebook.cpp:416 +msgid "RGBA_:" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:424 +msgid "Hexadecimal RGBA value of the color" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "RGB" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "HSL" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "CMYK" +msgstr "" + +#: ../src/widgets/sp-color-selector.cpp:64 +msgid "Unnamed" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:100 +msgid "Change spiral" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "just a curve" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "one full revolution" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of turns" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Turns:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of revolutions" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "circle" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is much denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "even" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is much denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "How much denser/sparser are outer revolutions; 1 = uniform" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts from center" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts mid-way" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts near edge" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Radius of the innermost revolution (relative to the spiral size)" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:565 +msgid "" +"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#. Width +#: ../src/widgets/spray-toolbar.cpp:113 +msgid "(narrow spray)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:113 +msgid "(broad spray)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:116 +msgid "The width of the spray area (relative to the visible canvas area)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:129 +msgid "(maximum mean)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "Focus" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "Focus:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "0 to spray a spot; increase to enlarge the ring radius" +msgstr "" + +#. Standard_deviation +#: ../src/widgets/spray-toolbar.cpp:145 +msgid "(minimum scatter)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:145 +msgid "(maximum scatter)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgctxt "Spray tool" +msgid "Scatter" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgctxt "Spray tool" +msgid "Scatter:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgid "Increase to scatter sprayed objects" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:167 +msgid "Spray copies of the initial selection" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:174 +msgid "Spray clones of the initial selection" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:180 +msgid "Spray single path" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:181 +msgid "Spray objects in a single path" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 +msgid "Mode" +msgstr "" + +#. Population +#: ../src/widgets/spray-toolbar.cpp:205 +msgid "(low population)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:205 +msgid "(high population)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:209 +msgid "Adjusts the number of items sprayed per click" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:225 +msgid "" +"Use the pressure of the input device to alter the amount of sprayed objects" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:235 +msgid "(high rotation variation)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:238 +msgid "Rotation" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:238 +msgid "Rotation:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:240 +#, no-c-format +msgid "" +"Variation of the rotation of the sprayed objects; 0% for the same rotation " +"than the original object" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:253 +msgid "(high scale variation)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:256 +msgctxt "Spray tool" +msgid "Scale" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:256 +msgctxt "Spray tool" +msgid "Scale:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:258 +#, no-c-format +msgid "" +"Variation in the scale of the sprayed objects; 0% for the same scale than " +"the original object" +msgstr "" + +#: ../src/widgets/sp-xmlview-attr-list.cpp:64 +msgid "Value" +msgstr "" + +#: ../src/widgets/sp-xmlview-content.cpp:179 +msgid "Type text in a text node" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:102 +msgid "Star: Change number of corners" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:155 +msgid "Star: Change spoke ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:200 +msgid "Make polygon" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:200 +msgid "Make star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:239 +msgid "Star: Change rounding" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:279 +msgid "Star: Change randomization" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:463 +msgid "Regular polygon (with one handle) instead of a star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:470 +msgid "Star instead of a regular polygon (with one handle)" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:491 +msgid "triangle/tri-star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:491 +msgid "square/quad-star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:491 +msgid "pentagon/five-pointed star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:491 +msgid "hexagon/six-pointed star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Corners" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Corners:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Number of corners of a polygon or star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "thin-ray star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "pentagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "hexagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "heptagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "octagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "regular polygon" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:510 +msgid "Spoke ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:510 +msgid "Spoke ratio:" +msgstr "" + +#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. +#. Base radius is the same for the closest handle. +#: ../src/widgets/star-toolbar.cpp:513 +msgid "Base radius to tip radius ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "stretched" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "twisted" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "slightly pinched" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "NOT rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "slightly rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "visibly rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "well rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 +msgid "amply rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 +msgid "blown up" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:534 +msgid "Rounded:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:534 +msgid "How much rounded are the corners (0 for sharp)" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:546 +msgid "NOT randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:546 +msgid "slightly irregular" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:546 +msgid "visibly randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:546 +msgid "strongly randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Randomized:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Scatter randomly the corners and angles" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:191 +msgid "Stroke width" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:193 +msgctxt "Stroke width" +msgid "_Width:" +msgstr "" + +#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:238 +msgid "Miter join" +msgstr "" + +#. TRANSLATORS: Round join: joining lines with a rounded corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:246 +msgid "Round join" +msgstr "" + +#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:254 +msgid "Bevel join" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:279 +msgid "Miter _limit:" +msgstr "" + +#. Cap type +#. TRANSLATORS: cap type specifies the shape for the ends of lines +#. spw_label(t, _("_Cap:"), 0, i); +#: ../src/widgets/stroke-style.cpp:295 +msgid "Cap:" +msgstr "" + +#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point +#. of the line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:306 +msgid "Butt cap" +msgstr "" + +#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the +#. line; the ends of the line are rounded +#: ../src/widgets/stroke-style.cpp:313 +msgid "Round cap" +msgstr "" + +#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the +#. line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:320 +msgid "Square cap" +msgstr "" + +#. Dash +#: ../src/widgets/stroke-style.cpp:325 +msgid "Dashes:" +msgstr "" + +#. Drop down marker selectors +#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes +#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. +#: ../src/widgets/stroke-style.cpp:351 +msgid "Markers:" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:357 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:366 +msgid "" +"Mid Markers are drawn on every node of a path or shape except the first and " +"last nodes" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:375 +msgid "End Markers are drawn on the last node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:493 +msgid "Set markers" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1022 ../src/widgets/stroke-style.cpp:1107 +msgid "Set stroke style" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1195 +msgid "Set marker color" +msgstr "" + +#: ../src/widgets/swatch-selector.cpp:137 +msgid "Change swatch color" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:161 +msgid "Text: Change font family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:225 +msgid "Text: Change font size" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:263 +msgid "Text: Change font style" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:341 +msgid "Text: Change superscript or subscript" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:486 +msgid "Text: Change alignment" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:529 +msgid "Text: Change line-height" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:578 +msgid "Text: Change word-spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:619 +msgid "Text: Change letter-spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:659 +msgid "Text: Change dx (kern)" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:693 +msgid "Text: Change dy" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:728 +msgid "Text: Change rotate" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:776 +msgid "Text: Change orientation" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1213 +msgid "Font Family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1214 +msgid "Select Font Family (Alt-X to access)" +msgstr "" + +#. Focus widget +#. Enable entry completion +#: ../src/widgets/text-toolbar.cpp:1224 +msgid "Select all text with this font-family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1228 +msgid "Font not found on system" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1287 +msgid "Font Style" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1288 +msgid "Font style" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1305 +msgid "Toggle Superscript" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1306 +msgid "Toggle superscript" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1318 +msgid "Toggle Subscript" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1319 +msgid "Toggle subscript" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1360 +msgid "Justify" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1367 +msgid "Alignment" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1368 +msgid "Text alignment" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1395 +msgid "Horizontal" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1402 +msgid "Vertical" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1409 +msgid "Text orientation" +msgstr "" + +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1432 +msgid "Smaller spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1432 ../src/widgets/text-toolbar.cpp:1463 +#: ../src/widgets/text-toolbar.cpp:1494 +msgctxt "Text tool" +msgid "Normal" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1432 +msgid "Larger spacing" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1437 +msgid "Line Height" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1438 +msgid "Line:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1439 +msgid "Spacing between lines (times font size)" +msgstr "" + +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1463 ../src/widgets/text-toolbar.cpp:1494 +msgid "Negative spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1463 ../src/widgets/text-toolbar.cpp:1494 +msgid "Positive spacing" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1468 +msgid "Word spacing" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1469 +msgid "Word:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1470 +msgid "Spacing between words (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1499 +msgid "Letter spacing" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1500 +msgid "Letter:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1501 +msgid "Spacing between letters (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1530 +msgid "Kerning" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1531 +msgid "Kern:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1532 +msgid "Horizontal kerning (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1561 +msgid "Vertical Shift" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1562 +msgid "Vert:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1563 +msgid "Vertical shift (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1592 +msgid "Letter rotation" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1593 +msgid "Rot:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1594 +msgid "Character rotation (degrees)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:182 +msgid "Color/opacity used for color tweaking" +msgstr "" + +#: ../src/widgets/toolbox.cpp:190 +msgid "Style of new stars" +msgstr "" + +#: ../src/widgets/toolbox.cpp:192 +msgid "Style of new rectangles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:194 +msgid "Style of new 3D boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:196 +msgid "Style of new ellipses" +msgstr "" + +#: ../src/widgets/toolbox.cpp:198 +msgid "Style of new spirals" +msgstr "" + +#: ../src/widgets/toolbox.cpp:200 +msgid "Style of new paths created by Pencil" +msgstr "" + +#: ../src/widgets/toolbox.cpp:202 +msgid "Style of new paths created by Pen" +msgstr "" + +#: ../src/widgets/toolbox.cpp:204 +msgid "Style of new calligraphic strokes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 +msgid "TBD" +msgstr "" + +#: ../src/widgets/toolbox.cpp:220 +msgid "Style of Paint Bucket fill objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1681 +msgid "Bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1681 +msgid "Snap bounding boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1690 +msgid "Bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1690 +msgid "Snap to edges of a bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1699 +msgid "Bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1699 +msgid "Snap bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1708 +msgid "BBox Edge Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1708 +msgid "Snap midpoints of bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1718 +msgid "BBox Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1718 +msgid "Snapping centers of bounding boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1727 +msgid "Snap nodes, paths, and handles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1735 +msgid "Snap to paths" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1744 +msgid "Path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1744 +msgid "Snap to path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1753 +msgid "To nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1753 +msgid "Snap cusp nodes, incl. rectangle corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1762 +msgid "Smooth nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1762 +msgid "Snap smooth nodes, incl. quadrant points of ellipses" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1771 +msgid "Line Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1771 +msgid "Snap midpoints of line segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1780 +msgid "Others" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1780 +msgid "Snap other points (centers, guide origins, gradient handles, etc.)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1788 +msgid "Object Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1788 +msgid "Snap centers of objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1797 +msgid "Rotation Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1797 +msgid "Snap an item's rotation center" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1806 +msgid "Text baseline" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1806 +msgid "Snap text anchors and baselines" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1816 +msgid "Page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1816 +msgid "Snap to the page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1825 +msgid "Snap to grids" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1834 +msgid "Snap guides" +msgstr "" + +#. Width +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(pinch tweak)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(broad tweak)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:128 +msgid "The width of the tweak area (relative to the visible canvas area)" +msgstr "" + +#. Force +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(minimum force)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(maximum force)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "The force of the tweak action" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:163 +msgid "Move mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:164 +msgid "Move objects in any direction" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:170 +msgid "Move in/out mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:171 +msgid "Move objects towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:177 +msgid "Move jitter mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:178 +msgid "Move objects in random directions" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:184 +msgid "Scale mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:185 +msgid "Shrink objects, with Shift enlarge" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:191 +msgid "Rotate mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:192 +msgid "Rotate objects, with Shift counterclockwise" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:198 +msgid "Duplicate/delete mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:199 +msgid "Duplicate objects, with Shift delete" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:205 +msgid "Push mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:206 +msgid "Push parts of paths in any direction" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:212 +msgid "Shrink/grow mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:213 +msgid "Shrink (inset) parts of paths; with Shift grow (outset)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:219 +msgid "Attract/repel mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:220 +msgid "Attract parts of paths towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:226 +msgid "Roughen mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:227 +msgid "Roughen parts of paths" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:233 +msgid "Color paint mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:234 +msgid "Paint the tool's color upon selected objects" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:240 +msgid "Color jitter mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:241 +msgid "Jitter the colors of selected objects" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:247 +msgid "Blur mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:248 +msgid "Blur selected objects more; with Shift, blur less" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:275 +msgid "Channels:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:287 +msgid "In color mode, act on objects' hue" +msgstr "" + +#. TRANSLATORS: "H" here stands for hue +#: ../src/widgets/tweak-toolbar.cpp:291 +msgid "H" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:303 +msgid "In color mode, act on objects' saturation" +msgstr "" + +#. TRANSLATORS: "S" here stands for Saturation +#: ../src/widgets/tweak-toolbar.cpp:307 +msgid "S" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:319 +msgid "In color mode, act on objects' lightness" +msgstr "" + +#. TRANSLATORS: "L" here stands for Lightness +#: ../src/widgets/tweak-toolbar.cpp:323 +msgid "L" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:335 +msgid "In color mode, act on objects' opacity" +msgstr "" + +#. TRANSLATORS: "O" here stands for Opacity +#: ../src/widgets/tweak-toolbar.cpp:339 +msgid "O" +msgstr "" + +#. Fidelity +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(rough, simplified)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(fine, but many nodes)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:354 +msgid "" +"Low fidelity simplifies paths; high fidelity preserves path features but may " +"generate a lot of new nodes" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:373 +msgid "Use the pressure of the input device to alter the force of tweak action" +msgstr "" + +#: ../share/extensions/convert2dashes.py:93 +msgid "" +"The selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/dimension.py:109 +msgid "Please select an object." +msgstr "" + +#: ../share/extensions/dimension.py:134 +msgid "Unable to process this object. Try changing it into a path first." +msgstr "" + +#. report to the Inkscape console using errormsg +#: ../share/extensions/draw_from_triangle.py:180 +msgid "Side Length 'a' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:181 +msgid "Side Length 'b' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:182 +msgid "Side Length 'c' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:183 +msgid "Angle 'A' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:184 +msgid "Angle 'B' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:185 +msgid "Angle 'C' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:186 +msgid "Semiperimeter (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:187 +msgid "Area (px^2): " +msgstr "" + +#: ../share/extensions/dxf_input.py:504 +#, python-format +msgid "" +"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " +"to Release 13 format using QCad." +msgstr "" + +#: ../share/extensions/dxf_outlines.py:49 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again." +msgstr "" + +#: ../share/extensions/dxf_outlines.py:300 +msgid "" +"Error: Field 'Layer match name' must be filled when using 'By name match' " +"option" +msgstr "" + +#: ../share/extensions/dxf_outlines.py:341 +#, python-format +msgid "Warning: Layer '%s' not found!" +msgstr "" + +#: ../share/extensions/embedimage.py:84 +msgid "" +"No xlink:href or sodipodi:absref attributes found, or they do not point to " +"an existing file! Unable to embed image." +msgstr "" + +#: ../share/extensions/embedimage.py:86 +#, python-format +msgid "Sorry we could not locate %s" +msgstr "" + +#: ../share/extensions/embedimage.py:111 +#, python-format +msgid "" +"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " +"or image/x-icon" +msgstr "" + +#: ../share/extensions/export_gimp_palette.py:16 +msgid "" +"The export_gpl.py module requires PyXML. Please download the latest version " +"from http://pyxml.sourceforge.net/." +msgstr "" + +#: ../share/extensions/extractimage.py:68 +#, python-format +msgid "Image extracted to: %s" +msgstr "" + +#: ../share/extensions/extractimage.py:75 +msgid "Unable to find image data." +msgstr "" + +#: ../share/extensions/extrude.py:43 +msgid "Need at least 2 paths selected" +msgstr "" + +#: ../share/extensions/funcplot.py:48 +msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" +msgstr "" + +#: ../share/extensions/funcplot.py:60 +msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" +msgstr "" + +#: ../share/extensions/funcplot.py:315 +msgid "Please select a rectangle" +msgstr "" + +#: ../share/extensions/gcodetools.py:3321 +#: ../share/extensions/gcodetools.py:4526 +#: ../share/extensions/gcodetools.py:4699 +#: ../share/extensions/gcodetools.py:6232 +#: ../share/extensions/gcodetools.py:6427 +msgid "No paths are selected! Trying to work on all available paths." +msgstr "" + +#: ../share/extensions/gcodetools.py:3324 +msgid "Noting is selected. Please select something." +msgstr "" + +#: ../share/extensions/gcodetools.py:3864 +msgid "" +"Directory does not exist! Please specify existing directory at Preferences " +"tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:3894 +#, python-format +msgid "" +"Can not write to specified file!\n" +"%s" +msgstr "" + +#: ../share/extensions/gcodetools.py:4040 +#, python-format +msgid "" +"Orientation points for '%s' layer have not been found! Please add " +"orientation points using Orientation tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4047 +#, python-format +msgid "There are more than one orientation point groups in '%s' layer" +msgstr "" + +#: ../share/extensions/gcodetools.py:4078 +#: ../share/extensions/gcodetools.py:4080 +msgid "" +"Orientation points are wrong! (if there are two orientation points they " +"should not be the same. If there are three orientation points they should " +"not be in a straight line.)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4250 +#, python-format +msgid "" +"Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " +"be corrupt!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4263 +#, python-format +msgid "" +"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " +"could be corrupt!" +msgstr "" + +#. xgettext:no-pango-format +#: ../share/extensions/gcodetools.py:4284 +msgid "" +"This extension works with Paths and Dynamic Offsets and groups of them only! " +"All other objects will be ignored!\n" +"Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" +"Solution 2: Path->Dynamic offset or Ctrl+J.\n" +"Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " +"and File->Import this file." +msgstr "" + +#: ../share/extensions/gcodetools.py:4290 +msgid "" +"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" +"+L)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4294 +msgid "" +"Warning! There are some paths in the root of the document, but not in any " +"layer! Using bottom-most layer for them." +msgstr "" + +#: ../share/extensions/gcodetools.py:4371 +#, python-format +msgid "" +"Warning! Tool's and default tool's parameter's (%s) types are not the same " +"( type('%s') != type('%s') )." +msgstr "" + +#: ../share/extensions/gcodetools.py:4374 +#, python-format +msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." +msgstr "" + +#: ../share/extensions/gcodetools.py:4388 +#, python-format +msgid "Layer '%s' contains more than one tool!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4391 +#, python-format +msgid "" +"Can not find tool for '%s' layer! Please add one with Tools library tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4553 +#: ../share/extensions/gcodetools.py:4708 +msgid "" +"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" +"+Shift+G) and Object to Path (Ctrl+Shift+C)!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4667 +msgid "" +"Noting is selected. Please select something to convert to drill point " +"(dxfpoint) or clear point sign." +msgstr "" + +#: ../share/extensions/gcodetools.py:4750 +#: ../share/extensions/gcodetools.py:4996 +msgid "This extension requires at least one selected path." +msgstr "" + +#: ../share/extensions/gcodetools.py:4756 +#: ../share/extensions/gcodetools.py:5002 +#, python-format +msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4767 +#: ../share/extensions/gcodetools.py:4956 +#: ../share/extensions/gcodetools.py:5011 +msgid "Warning: omitting non-path" +msgstr "" + +#: ../share/extensions/gcodetools.py:5511 +msgid "Please select at least one path to engrave and run again." +msgstr "" + +#: ../share/extensions/gcodetools.py:5519 +msgid "Unknown unit selected. mm assumed" +msgstr "" + +#: ../share/extensions/gcodetools.py:5540 +#, python-format +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "" + +#: ../share/extensions/gcodetools.py:5611 +#: ../share/extensions/gcodetools.py:5616 +msgid "csp_normalised_normal error. See log." +msgstr "" + +#: ../share/extensions/gcodetools.py:5804 +msgid "No need to engrave sharp angles." +msgstr "" + +#: ../share/extensions/gcodetools.py:5848 +msgid "" +"Active layer already has orientation points! Remove them or select another " +"layer!" +msgstr "" + +#: ../share/extensions/gcodetools.py:5893 +msgid "Active layer already has a tool! Remove it or select another layer!" +msgstr "" + +#: ../share/extensions/gcodetools.py:6008 +msgid "Selection is empty! Will compute whole drawing." +msgstr "" + +#: ../share/extensions/gcodetools.py:6062 +msgid "" +"Tutorials, manuals and support can be found at\n" +"English support forum:\n" +"\thttp://www.cnc-club.ru/gcodetools\n" +"and Russian support forum:\n" +"\thttp://www.cnc-club.ru/gcodetoolsru" +msgstr "" + +#: ../share/extensions/gcodetools.py:6107 +msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." +msgstr "" + +#: ../share/extensions/gcodetools.py:6110 +msgid "Lathe X and Z axis remap should be the same. Exiting..." +msgstr "" + +#: ../share/extensions/gcodetools.py:6662 +#, python-format +msgid "" +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " +"Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" +msgstr "" + +#: ../share/extensions/gcodetools.py:6668 +msgid "" +"Orientation points have not been defined! A default set of orientation " +"points has been automatically added." +msgstr "" + +#: ../share/extensions/gcodetools.py:6672 +msgid "" +"Cutting tool has not been defined! A default tool has been automatically " +"added." +msgstr "" + +#: ../share/extensions/generate_voronoi.py:35 +msgid "" +"Failed to import the subprocess module. Please report this as a bug at: " +"https://bugs.launchpad.net/inkscape." +msgstr "" + +#: ../share/extensions/generate_voronoi.py:36 +msgid "Python version is: " +msgstr "" + +#: ../share/extensions/generate_voronoi.py:94 +msgid "Please select an object" +msgstr "" + +#: ../share/extensions/gimp_xcf.py:39 +msgid "Gimp must be installed and set in your path variable." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:43 +msgid "An error occurred while processing the XCF file." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:177 +msgid "This extension requires at least one non empty layer." +msgstr "" + +#: ../share/extensions/guillotine.py:250 +msgid "The sliced bitmaps have been saved as:" +msgstr "" + +#: ../share/extensions/hpgl_decoder.py:43 +msgid "Movements" +msgstr "" + +#: ../share/extensions/hpgl_decoder.py:44 +msgid "Pen #" +msgstr "" + +#. issue error if no hpgl data found +#: ../share/extensions/hpgl_input.py:58 +msgid "No HPGL data found." +msgstr "" + +#: ../share/extensions/hpgl_input.py:66 +msgid "" +"The HPGL data contained unknown (unsupported) commands, there is a " +"possibility that the drawing is missing some content." +msgstr "" + +#. issue error if no paths found +#: ../share/extensions/hpgl_output.py:58 +msgid "" +"No paths where found. Please convert all objects you want to save into paths." +msgstr "" + +#: ../share/extensions/inkex.py:109 +#, python-format +msgid "" +"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " +"this extension. Please download and install the latest version from http://" +"cheeseshop.python.org/pypi/lxml/, or install it through your package manager " +"by a command like: sudo apt-get install python-lxml\n" +"\n" +"Technical details:\n" +"%s" +msgstr "" + +#: ../share/extensions/inkex.py:162 ../share/extensions/inkex.py:171 +#, python-format +msgid "Unable to open specified file: %s" +msgstr "" + +#: ../share/extensions/inkex.py:276 +#, python-format +msgid "No matching node for expression: %s" +msgstr "" + +#: ../share/extensions/interp_att_g.py:167 +msgid "There is no selection to interpolate" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:45 +#: ../share/extensions/jessyInk_effects.py:50 +#: ../share/extensions/jessyInk_export.py:96 +#: ../share/extensions/jessyInk_keyBindings.py:188 +#: ../share/extensions/jessyInk_masterSlide.py:46 +#: ../share/extensions/jessyInk_mouseHandler.py:48 +#: ../share/extensions/jessyInk_summary.py:64 +#: ../share/extensions/jessyInk_transitions.py:50 +#: ../share/extensions/jessyInk_video.py:49 +#: ../share/extensions/jessyInk_view.py:67 +msgid "" +"The JessyInk script is not installed in this SVG file or has a different " +"version than the JessyInk extensions. Please select \"install/update...\" " +"from the \"JessyInk\" sub-menu of the \"Extensions\" menu to install or " +"update the JessyInk script.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:48 +msgid "" +"To assign an effect, please select an object.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:54 +msgid "" +"Node with id '{0}' is not a suitable text node and was therefore ignored.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_effects.py:53 +msgid "" +"No object selected. Please select the object you want to assign an effect to " +"and then press apply.\n" +msgstr "" + +#: ../share/extensions/jessyInk_export.py:82 +msgid "Could not find Inkscape command.\n" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.py:56 +msgid "Layer not found. Removed current master slide selection.\n" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.py:58 +msgid "" +"More than one layer with this name found. Removed current master slide " +"selection.\n" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:69 +msgid "JessyInk script version {0} installed." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:71 +msgid "JessyInk script installed." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:83 +msgid "" +"\n" +"Master slide:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:89 +msgid "" +"\n" +"Slide {0!s}:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:94 +msgid "{0}Layer name: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:102 +msgid "{0}Transition in: {1} ({2!s} s)" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:104 +msgid "{0}Transition in: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:111 +msgid "{0}Transition out: {1} ({2!s} s)" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:113 +msgid "{0}Transition out: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:120 +msgid "" +"\n" +"{0}Auto-texts:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:123 +msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:168 +msgid "" +"\n" +"{0}Initial effect (order number {1}):" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:170 +msgid "" +"\n" +"{0}Effect {1!s} (order number {2}):" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:174 +msgid "{0}\tView will be set according to object \"{1}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:176 +msgid "{0}\tObject \"{1}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:179 +msgid " will appear" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:181 +msgid " will disappear" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:184 +msgid " using effect \"{0}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:187 +msgid " in {0!s} s" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:55 +msgid "Layer not found.\n" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:57 +msgid "More than one layer with this name found.\n" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:70 +msgid "Please enter a layer name.\n" +msgstr "" + +#: ../share/extensions/jessyInk_video.py:54 +#: ../share/extensions/jessyInk_video.py:59 +msgid "" +"Could not obtain the selected layer for inclusion of the video element.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_view.py:75 +msgid "More than one object selected. Please select only one object.\n" +msgstr "" + +#: ../share/extensions/jessyInk_view.py:79 +msgid "" +"No object selected. Please select the object you want to assign a view to " +"and then press apply.\n" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:83 +#, python-format +msgid "No style attribute found for id: %s" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:137 +#, python-format +msgid "unable to locate marker: %s" +msgstr "" + +#: ../share/extensions/pathalongpath.py:208 +#: ../share/extensions/pathscatter.py:228 +#: ../share/extensions/perspective.py:53 +msgid "This extension requires two selected paths." +msgstr "" + +#: ../share/extensions/pathalongpath.py:234 +msgid "" +"The total length of the pattern is too small :\n" +"Please choose a larger object or set 'Space between copies' > 0" +msgstr "" + +#: ../share/extensions/pathalongpath.py:277 +msgid "" +"The 'stretch' option requires that the pattern must have non-zero width :\n" +"Please edit the pattern width." +msgstr "" + +#: ../share/extensions/pathmodifier.py:237 +#, python-format +msgid "Please first convert objects to paths! (Got [%s].)" +msgstr "" + +#: ../share/extensions/perspective.py:45 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again. On a Debian-" +"like system this can be done with the command, sudo apt-get install python-" +"numpy." +msgstr "" + +#: ../share/extensions/perspective.py:61 +#: ../share/extensions/summersnight.py:52 +#, python-format +msgid "" +"The first selected object is of type '%s'.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/perspective.py:68 +#: ../share/extensions/summersnight.py:60 +msgid "" +"This extension requires that the second selected path be four nodes long." +msgstr "" + +#: ../share/extensions/perspective.py:94 +#: ../share/extensions/summersnight.py:93 +msgid "" +"The second selected object is a group, not a path.\n" +"Try using the procedure Object->Ungroup." +msgstr "" + +#: ../share/extensions/perspective.py:96 +#: ../share/extensions/summersnight.py:95 +msgid "" +"The second selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/perspective.py:99 +#: ../share/extensions/summersnight.py:98 +msgid "" +"The first selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#. issue error if no paths found +#: ../share/extensions/plotter.py:66 +msgid "" +"No paths where found. Please convert all objects you want to plot into paths." +msgstr "" + +#: ../share/extensions/plotter.py:128 +msgid "pySerial is not installed." +msgstr "" + +#: ../share/extensions/plotter.py:148 +msgid "" +"Could not open port. Please check that your plotter is running, connected " +"and the settings are correct." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:65 +msgid "" +"Failed to import the numpy module. This module is required by this " +"extension. Please install it and try again. On a Debian-like system this " +"can be done with the command 'sudo apt-get install python-numpy'." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:336 +msgid "No face data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:337 +msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:343 +msgid "No edge data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:344 +msgid "Try selecting \"Face Specified\" in the Model File tab.\n" +msgstr "" + +#. we cannot generate a list of faces from the edges without a lot of computation +#: ../share/extensions/polyhedron_3d.py:522 +msgid "" +"Face Data Not Found. Ensure file contains face data, and check the file is " +"imported as \"Face-Specified\" under the \"Model File\" tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:524 +msgid "Internal Error. No view type selected\n" +msgstr "" + +#: ../share/extensions/print_win32_vector.py:41 +msgid "sorry, this will run only on Windows, exiting..." +msgstr "" + +#: ../share/extensions/print_win32_vector.py:179 +msgid "Failed to open default printer" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.py:202 +msgid "Unrecognised DataMatrix size" +msgstr "" + +#. we have an invalid bit value +#: ../share/extensions/render_barcode_datamatrix.py:643 +msgid "Invalid bit value, this is a bug!" +msgstr "" + +#. abort if converting blank text +#: ../share/extensions/render_barcode_datamatrix.py:678 +msgid "Please enter an input string" +msgstr "" + +#. abort if converting blank text +#: ../share/extensions/render_barcode_qrcode.py:1054 +msgid "Please enter an input text" +msgstr "" + +#: ../share/extensions/replace_font.py:133 +msgid "" +"Couldn't find anything using that font, please ensure the spelling and " +"spacing is correct." +msgstr "" + +#: ../share/extensions/replace_font.py:140 +#: ../share/extensions/svg_and_media_zip_output.py:193 +msgid "Didn't find any fonts in this document/selection." +msgstr "" + +#: ../share/extensions/replace_font.py:143 +#: ../share/extensions/svg_and_media_zip_output.py:196 +#, python-format +msgid "Found the following font only: %s" +msgstr "" + +#: ../share/extensions/replace_font.py:145 +#: ../share/extensions/svg_and_media_zip_output.py:198 +#, python-format +msgid "" +"Found the following fonts:\n" +"%s" +msgstr "" + +#: ../share/extensions/replace_font.py:196 +msgid "There was nothing selected" +msgstr "" + +#: ../share/extensions/replace_font.py:244 +msgid "Please enter a search string in the find box." +msgstr "" + +#: ../share/extensions/replace_font.py:248 +msgid "Please enter a replacement font in the replace with box." +msgstr "" + +#: ../share/extensions/replace_font.py:253 +msgid "Please enter a replacement font in the replace all box." +msgstr "" + +#: ../share/extensions/summersnight.py:44 +msgid "" +"This extension requires two selected paths. \n" +"The second path must be exactly four nodes long." +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.py:128 +#, python-format +msgid "Could not locate file: %s" +msgstr "" + +#: ../share/extensions/svgcalendar.py:266 +#: ../share/extensions/svgcalendar.py:288 +msgid "You must select a correct system encoding." +msgstr "" + +#: ../share/extensions/uniconv-ext.py:56 +#: ../share/extensions/uniconv_output.py:122 +msgid "You need to install the UniConvertor software.\n" +msgstr "" + +#: ../share/extensions/voronoi2svg.py:215 +msgid "Please select objects!" +msgstr "" + +#: ../share/extensions/web-set-att.py:58 +#: ../share/extensions/web-transmit-att.py:54 +msgid "You must select at least two elements." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:57 +msgid "" +"You must create and select some \"Slicer rectangles\" before trying to group." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:72 +msgid "" +"You must to select some \"Slicer rectangles\" or other \"Layout groups\"." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:76 +#, python-format +msgid "Oops... The element \"%s\" is not in the Web Slicer layer" +msgstr "" + +#: ../share/extensions/webslicer_export.py:57 +msgid "You must give a directory to export the slices." +msgstr "" + +#: ../share/extensions/webslicer_export.py:69 +#, python-format +msgid "Can't create \"%s\"." +msgstr "" + +#: ../share/extensions/webslicer_export.py:70 +#, python-format +msgid "Error: %s" +msgstr "" + +#: ../share/extensions/webslicer_export.py:73 +#, python-format +msgid "The directory \"%s\" does not exists." +msgstr "" + +#: ../share/extensions/webslicer_export.py:102 +#, python-format +msgid "You have more than one element with \"%s\" html-id." +msgstr "" + +#: ../share/extensions/webslicer_export.py:332 +msgid "You must install the ImageMagick to get JPG and GIF." +msgstr "" + +#. PARAMETER PROCESSING +#. lines of longitude are odd : abort +#: ../share/extensions/wireframe_sphere.py:116 +msgid "Please enter an even number of lines of longitude." +msgstr "" + +#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 +#: ../share/extensions/addnodes.inx.h:1 +msgid "Add Nodes" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:2 +msgid "Division method:" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:3 +msgid "By max. segment length" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:4 +msgid "By number of segments" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:5 +msgid "Maximum segment length (px):" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:6 +msgid "Number of segments:" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:7 +#: ../share/extensions/convert2dashes.inx.h:2 +#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 +#: ../share/extensions/fractalize.inx.h:4 +#: ../share/extensions/interp_att_g.inx.h:29 +#: ../share/extensions/markers_strokepaint.inx.h:13 +#: ../share/extensions/perspective.inx.h:2 +#: ../share/extensions/pixelsnap.inx.h:3 +#: ../share/extensions/radiusrand.inx.h:10 +#: ../share/extensions/rubberstretch.inx.h:6 +#: ../share/extensions/straightseg.inx.h:4 +#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 +msgid "Modify Path" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:1 +msgid "AI 8.0 Input" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:2 +msgid "Adobe Illustrator 8.0 and below (*.ai)" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:3 +msgid "Open files saved with Adobe Illustrator 8.0 or older" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:1 +msgid "AI SVG Input" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:2 +msgid "Adobe Illustrator SVG (*.ai.svg)" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:3 +msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:1 +msgid "Corel DRAW Compressed Exchange files input (UC)" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:2 +msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:3 +msgid "Open compressed exchange files saved in Corel DRAW (UC)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:1 +msgid "Corel DRAW Input (UC)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:2 +msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-X4 (UC)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:1 +msgid "Corel DRAW templates input (UC)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:2 +msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-13 (UC)" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:1 +msgid "Computer Graphics Metafile files input" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:2 +msgid "Computer Graphics Metafile files (*.cgm)" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:3 +msgid "Open Computer Graphics Metafile files" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:1 +msgid "Corel DRAW Presentation Exchange files input (UC)" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:2 +msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:3 +msgid "Open presentation exchange files saved in Corel DRAW (UC)" +msgstr "" + +#: ../share/extensions/color_blackandwhite.inx.h:1 +msgid "Black and White" +msgstr "" + +#: ../share/extensions/color_brighter.inx.h:1 +msgid "Brighter" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:1 +msgctxt "Custom color extension" +msgid "Custom" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:3 +msgid "Red Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:4 +msgid "Green Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:5 +msgid "Blue Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:6 +msgid "Input (r,g,b) Color Range:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:8 +msgid "" +"Allows you to evaluate different functions for each channel.\n" +"r, g and b are the normalized values of the red, green and blue channels. " +"The resulting RGB values are automatically clamped.\n" +" \n" +"Example (half the red, swap green and blue):\n" +" Red Function: r*0.5 \n" +" Green Function: b \n" +" Blue Function: g" +msgstr "" + +#: ../share/extensions/color_darker.inx.h:1 +msgid "Darker" +msgstr "" + +#: ../share/extensions/color_desaturate.inx.h:1 +msgid "Desaturate" +msgstr "" + +#: ../share/extensions/color_grayscale.inx.h:1 +#: ../share/extensions/webslicer_create_rect.inx.h:15 +msgid "Grayscale" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:1 +msgid "HSL Adjust" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:3 +msgid "Hue (°)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:4 +msgid "Random hue" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:6 +#, no-c-format +msgid "Saturation (%)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:7 +msgid "Random saturation" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:9 +#, no-c-format +msgid "Lightness (%)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:10 +msgid "Random lightness" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:13 +#, no-c-format +msgid "" +"Adjusts hue, saturation and lightness in the HSL representation of the " +"selected objects's color.\n" +"Options:\n" +" * Hue: rotate by degrees (wraps around).\n" +" * Saturation: add/subtract % (min=-100, max=100).\n" +" * Lightness: add/subtract % (min=-100, max=100).\n" +" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" +" " +msgstr "" + +#: ../share/extensions/color_lesshue.inx.h:1 +msgid "Less Hue" +msgstr "" + +#: ../share/extensions/color_lesslight.inx.h:1 +msgid "Less Light" +msgstr "" + +#: ../share/extensions/color_lesssaturation.inx.h:1 +msgid "Less Saturation" +msgstr "" + +#: ../share/extensions/color_morehue.inx.h:1 +msgid "More Hue" +msgstr "" + +#: ../share/extensions/color_morelight.inx.h:1 +msgid "More Light" +msgstr "" + +#: ../share/extensions/color_moresaturation.inx.h:1 +msgid "More Saturation" +msgstr "" + +#: ../share/extensions/color_negative.inx.h:1 +msgid "Negative" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:1 +#: ../share/extensions/render_alphabetsoup.inx.h:4 +msgid "Randomize" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:7 +msgid "" +"Converts to HSL, randomizes hue and/or saturation and/or lightness and " +"converts it back to RGB." +msgstr "" + +#: ../share/extensions/color_removeblue.inx.h:1 +msgid "Remove Blue" +msgstr "" + +#: ../share/extensions/color_removegreen.inx.h:1 +msgid "Remove Green" +msgstr "" + +#: ../share/extensions/color_removered.inx.h:1 +msgid "Remove Red" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:1 +msgid "Replace color" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:2 +msgid "Replace color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:3 +msgid "Color to replace" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:4 +msgid "By color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:5 +msgid "New color" +msgstr "" + +#: ../share/extensions/color_rgbbarrel.inx.h:1 +msgid "RGB Barrel" +msgstr "" + +#: ../share/extensions/convert2dashes.inx.h:1 +msgid "Convert to Dashes" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:1 +msgid "DHW file input" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:2 +msgid "ACECAD Digimemo File (*.dhw)" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:3 +msgid "Open files from ACECAD Digimemo" +msgstr "" + +#: ../share/extensions/dia.inx.h:1 +msgid "Dia Input" +msgstr "" + +#: ../share/extensions/dia.inx.h:2 +msgid "" +"The dia2svg.sh script should be installed with your Inkscape distribution. " +"If you do not have it, there is likely to be something wrong with your " +"Inkscape installation." +msgstr "" + +#: ../share/extensions/dia.inx.h:3 +msgid "" +"In order to import Dia files, Dia itself must be installed. You can get Dia " +"at http://live.gnome.org/Dia" +msgstr "" + +#: ../share/extensions/dia.inx.h:4 +msgid "Dia Diagram (*.dia)" +msgstr "" + +#: ../share/extensions/dia.inx.h:5 +msgid "A diagram created with the program Dia" +msgstr "" + +#: ../share/extensions/dimension.inx.h:1 +msgid "Dimensions" +msgstr "" + +#: ../share/extensions/dimension.inx.h:2 +msgid "X Offset:" +msgstr "" + +#: ../share/extensions/dimension.inx.h:3 +msgid "Y Offset:" +msgstr "" + +#: ../share/extensions/dimension.inx.h:4 +msgid "Bounding box type :" +msgstr "" + +#: ../share/extensions/dimension.inx.h:5 +msgid "Geometric" +msgstr "" + +#: ../share/extensions/dimension.inx.h:6 +msgid "Visual" +msgstr "" + +#: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 +#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:24 +msgid "Visualize Path" +msgstr "" + +#: ../share/extensions/dots.inx.h:1 +msgid "Number Nodes" +msgstr "" + +#: ../share/extensions/dots.inx.h:4 +msgid "Dot size:" +msgstr "" + +#: ../share/extensions/dots.inx.h:5 +msgid "Starting dot number:" +msgstr "" + +#: ../share/extensions/dots.inx.h:6 +msgid "Step:" +msgstr "" + +#: ../share/extensions/dots.inx.h:8 +msgid "" +"This extension replaces the selection's nodes with numbered dots according " +"to the following options:\n" +" * Font size: size of the node number labels (20px, 12pt...).\n" +" * Dot size: diameter of the dots placed at path nodes (10px, 2mm...).\n" +" * Starting dot number: first number in the sequence, assigned to the " +"first node of the path.\n" +" * Step: numbering step between two nodes." +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:1 +msgid "Draw From Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:2 +msgid "Common Objects" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:3 +msgid "Circumcircle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:4 +msgid "Circumcentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:5 +msgid "Incircle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:6 +msgid "Incentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:7 +msgid "Contact Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:8 +msgid "Excircles" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:9 +msgid "Excentres" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:10 +msgid "Extouch Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:11 +msgid "Excentral Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:12 +msgid "Orthocentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:13 +msgid "Orthic Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:14 +msgid "Altitudes" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:15 +msgid "Angle Bisectors" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:16 +msgid "Centroid" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:17 +msgid "Nine-Point Centre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:18 +msgid "Nine-Point Circle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:19 +msgid "Symmedians" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:20 +msgid "Symmedian Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:21 +msgid "Symmedial Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:22 +msgid "Gergonne Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:23 +msgid "Nagel Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:24 +msgid "Custom Points and Options" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:25 +msgid "Custom Point Specified By:" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:26 +msgid "Point At:" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:27 +msgid "Draw Marker At This Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:28 +msgid "Draw Circle Around This Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:29 +#: ../share/extensions/wireframe_sphere.inx.h:6 +msgid "Radius (px):" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:30 +msgid "Draw Isogonal Conjugate" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:31 +msgid "Draw Isotomic Conjugate" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:32 +msgid "Report this triangle's properties" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:33 +msgid "Trilinear Coordinates" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:34 +msgid "Triangle Function" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:36 +msgid "" +"This extension draws constructions about a triangle defined by the first 3 " +"nodes of a selected path. You may select one of preset objects or create " +"your own ones.\n" +" \n" +"All units are the Inkscape's pixel unit. Angles are all in radians.\n" +"You can specify a point by trilinear coordinates or by a triangle centre " +"function.\n" +"Enter as functions of the side length or angles.\n" +"Trilinear elements should be separated by a colon: ':'.\n" +"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" +"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" +"You can also use the semi-perimeter and area of the triangle as constants. " +"Write 'area' or 'semiperim' for these.\n" +"\n" +"You can use any standard Python math function:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Also available are the inverse trigonometric functions:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"You can specify the radius of a circle around a custom point using a " +"formula, which may also contain the side lengths, angles, etc. You can also " +"plot the isogonal and isotomic conjugate of the point. Be aware that this " +"may cause a divide-by-zero error for certain points.\n" +" " +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:1 +msgid "DXF Input" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:3 +msgid "Use automatic scaling to size A4" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:4 +msgid "Or, use manual scale factor:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:5 +msgid "Manual x-axis origin (mm):" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:6 +msgid "Manual y-axis origin (mm):" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:7 +msgid "Gcodetools compatible point import" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:8 +#: ../share/extensions/render_barcode_qrcode.inx.h:16 +msgid "Character encoding:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:9 +msgid "Text Font:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:11 +msgid "" +"- AutoCAD Release 13 and newer.\n" +"- assume dxf drawing is in mm.\n" +"- assume svg drawing is in pixels, at 90 dpi.\n" +"- scale factor and origin apply only to manual scaling.\n" +"- layers are preserved only on File->Open, not Import.\n" +"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:17 +msgid "AutoCAD DXF R13 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:18 +msgid "Import AutoCAD's Document Exchange Format" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:1 +msgid "Desktop Cutting Plotter" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:3 +msgid "use ROBO-Master type of spline output" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:4 +msgid "use LWPOLYLINE type of line output" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:5 +msgid "Base unit" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:6 +msgid "Character Encoding" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:7 +msgid "Layer export selection" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:8 +msgid "Layer match name" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:9 +msgid "pt" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:10 +msgid "pc" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:11 +#: ../share/extensions/render_gears.inx.h:7 +msgid "px" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:12 +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +#: ../share/extensions/render_gears.inx.h:9 +msgid "mm" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:13 +msgid "cm" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:14 +msgid "m" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:15 +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +#: ../share/extensions/render_gears.inx.h:8 +msgid "in" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:16 +msgid "ft" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:17 +msgid "Latin 1" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:18 +msgid "CP 1250" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:19 +msgid "CP 1252" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:20 +msgid "UTF 8" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:21 +msgid "All (default)" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:22 +msgid "Visible only" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:23 +msgid "By name match" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:25 +msgid "" +"- AutoCAD Release 14 DXF format.\n" +"- The base unit parameter specifies in what unit the coordinates are output " +"(90 px = 1 in).\n" +"- Supported element types\n" +" - paths (lines and splines)\n" +" - rectangles\n" +" - clones (the crossreference to the original is lost)\n" +"- ROBO-Master spline output is a specialized spline readable only by ROBO-" +"Master and AutoDesk viewers, not Inkscape.\n" +"- LWPOLYLINE output is a multiply-connected polyline, disable it to use a " +"legacy version of the LINE output.\n" +"- You can choose to export all layers, only visible ones or by name match " +"(case insensitive and use comma ',' as separator)" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:34 +msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:1 +msgid "DXF Output" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:2 +msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:3 +msgid "AutoCAD DXF R12 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:4 +msgid "DXF file written by pstoedit" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:1 +msgid "Edge 3D" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:2 +msgid "Illumination Angle:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:3 +msgid "Shades:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:4 +msgid "Only black and white:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:5 +msgid "Stroke width:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:6 +msgid "Blur stdDeviation:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:7 +msgid "Blur width:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:8 +msgid "Blur height:" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:1 +msgid "Embed Images" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:2 +#: ../share/extensions/embedselectedimages.inx.h:2 +msgid "Embed only selected images" +msgstr "" + +#: ../share/extensions/embedselectedimages.inx.h:1 +msgid "Embed Selected Images" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:1 +msgid "Empty Page" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:2 +msgid "Page size:" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:3 +msgid "Page orientation:" +msgstr "" + +#: ../share/extensions/eps_input.inx.h:1 +msgid "EPS Input" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:1 +msgid "LaTeX" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:2 +msgid "LaTeX input: " +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:3 +msgid "Additional packages (comma-separated): " +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:1 +msgid "Export as GIMP Palette" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:2 +msgid "GIMP Palette (*.gpl)" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:3 +msgid "Exports the colors of this document as GIMP Palette" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:1 +msgid "Extract Image" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:2 +msgid "Path to save image:" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:3 +msgid "" +"* Don't type the file extension, it is appended automatically.\n" +"* A relative path (or a filename without path) is relative to the user's " +"home directory." +msgstr "" + +#: ../share/extensions/extrude.inx.h:3 +msgid "Lines" +msgstr "" + +#: ../share/extensions/extrude.inx.h:4 +msgid "Polygons" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:1 +msgid "XFIG Input" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:2 +msgid "XFIG Graphics File (*.fig)" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:3 +msgid "Open files saved with XFIG" +msgstr "" + +#: ../share/extensions/flatten.inx.h:1 +msgid "Flatten Beziers" +msgstr "" + +#: ../share/extensions/flatten.inx.h:2 +msgid "Flatness:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:1 +msgid "Foldable Box" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:4 +msgid "Depth:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:5 +msgid "Paper Thickness:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:6 +msgid "Tab Proportion:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:8 +msgid "Add Guide Lines" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:1 +msgid "Fractalize" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:2 +msgid "Subdivisions:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:1 +msgid "Function Plotter" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:2 +msgid "Range and sampling" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:3 +msgid "Start X value:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:4 +msgid "End X value:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:5 +msgid "Multiply X range by 2*pi" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:6 +msgid "Y value of rectangle's bottom:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:7 +msgid "Y value of rectangle's top:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:8 +msgid "Number of samples:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:9 +#: ../share/extensions/param_curves.inx.h:11 +msgid "Isotropic scaling" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:10 +msgid "Use polar coordinates" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:11 +#: ../share/extensions/param_curves.inx.h:12 +msgid "" +"When set, Isotropic scaling uses smallest of width/xrange or height/yrange" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:12 +#: ../share/extensions/param_curves.inx.h:13 +msgid "Use" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:13 +msgid "" +"Select a rectangle before calling the extension,\n" +"it will determine X and Y scales. If you wish to fill the area, then add x-" +"axis endpoints.\n" +"\n" +"With polar coordinates:\n" +" Start and end X values define the angle range in radians.\n" +" X scale is set so that left and right edges of rectangle are at +/-1.\n" +" Isotropic scaling is disabled.\n" +" First derivative is always determined numerically." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:21 +#: ../share/extensions/param_curves.inx.h:16 +msgid "Functions" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:22 +#: ../share/extensions/param_curves.inx.h:17 +msgid "" +"Standard Python math functions are available:\n" +"\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x).\n" +"\n" +"The constants pi and e are also available." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:31 +msgid "Function:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:32 +msgid "Calculate first derivative numerically" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:33 +msgid "First derivative:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:34 +msgid "Clip with rectangle" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:35 +#: ../share/extensions/param_curves.inx.h:28 +msgid "Remove rectangle" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:36 +#: ../share/extensions/param_curves.inx.h:29 +msgid "Draw Axes" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:37 +msgid "Add x-axis endpoints" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:1 +msgid "About" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:2 +msgid "" +"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " +"is a special format which is used in most of CNC machines. So Gcodetools " +"allows you to use Inkscape as CAM program. It can be use with a lot of " +"machine types: Mills Lathes Laser and Plasma cutters and engravers Mill " +"engravers Plotters etc. To get more info visit developers page at http://www." +"cnc-club.ru/gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:54 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +#: ../share/extensions/gcodetools_tools_library.inx.h:13 +msgid "" +"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " +"makes offset paths and engraves sharp corners using cone cutters. This plug-" +"in calculates Gcode for paths using circular interpolation or linear motion " +"when needed. Tutorials, manuals and support can be found at English support " +"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" +"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " +"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:5 +#: ../share/extensions/gcodetools_dxf_points.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 +#: ../share/extensions/gcodetools_tools_library.inx.h:14 +msgid "Gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:1 +msgid "Area" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:2 +msgid "Maximum area cutting curves:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:3 +msgid "Area width:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:4 +msgid "Area tool overlap (0..0.9):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:5 +msgid "" +"\"Create area offset\": creates several Inkscape path offsets to fill " +"original path's area up to \"Area radius\" value. Outlines start from \"1/2 D" +"\" up to \"Area width\" total width with \"D\" steps where D is taken from " +"the nearest tool definition (\"Tool diameter\" value). Only one offset will " +"be created if the \"Area width\" is equal to \"1/2 D\"." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:6 +msgid "Fill area" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:7 +msgid "Area fill angle" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:8 +msgid "Area fill shift" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:9 +msgid "Filling method" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:10 +msgid "Zig zag" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:12 +msgid "Area artifacts" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:13 +msgid "Artifact diameter:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:14 +msgid "Action:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:15 +msgid "mark with an arrow" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:16 +msgid "mark with style" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:17 +msgid "delete" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:18 +msgid "" +"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" +"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " +"colored arrows." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 +msgid "Path to Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:20 +#: ../share/extensions/gcodetools_lathe.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 +msgid "Biarc interpolation tolerance:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 +msgid "Maximum splitting depth:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 +msgid "Cutting order:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 +msgid "Depth function:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +msgid "Sort paths to reduse rapid distance" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 +msgid "Path by path" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:20 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Pass by Pass" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:21 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "" +"Biarc interpolation tolerance is the maximum distance between path and its " +"approximation. The segment will be split into two segments if the distance " +"between path's segment and its approximation exceeds biarc interpolation " +"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " +"(black), d is the depth defined by orientation points, s - surface defined " +"by orientation points." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:23 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +msgid "Scale along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:24 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +msgid "Offset along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:25 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +msgid "Select all paths if nothing is selected" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +msgid "Minimum arc radius:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Comment Gcode:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:28 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +msgid "Get additional comments from object's properties" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +msgid "Preferences" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +msgid "File:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:31 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 +msgid "Add numeric suffix to filename" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:17 +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +msgid "Directory:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 +msgid "Z safe height for G00 move over blank:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_orientation_points.inx.h:6 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +msgid "Units (mm or in):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Post-processor:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +msgid "Additional post-processor:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 +msgid "Generate log file" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:45 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 +msgid "Full path to log file:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +msgid "Parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:50 +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +#: ../share/extensions/gcodetools_engraving.inx.h:28 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Flip y axis and parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:51 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:29 +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_lathe.inx.h:44 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Round all values to 4 digits" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Fast pre-penetrate" +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for updates" +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for Gcodetools latest stable version and try to get the updates." +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:1 +msgid "DXF Points" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:2 +msgid "DXF points" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:3 +msgid "Convert selection:" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:4 +msgid "" +"Convert selected objects to drill points (as dxf_import plugin does). Also " +"you can save original shape. Only the start point of each curve will be " +"used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " +"and add or remove XML tag 'dxfpoint' with any value." +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 +msgid "set as dxfpoint and save shape" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +msgid "set as dxfpoint and draw arrow" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +msgid "clear dxfpoint sign" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:1 +msgid "Engraving" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:2 +msgid "Smooth convex corners between this value and 180 degrees:" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:3 +msgid "Maximum distance for engraving (mm/inch):" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:4 +msgid "Accuracy factor (2 low to 10 high):" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:5 +msgid "Draw additional graphics to see engraving path" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:6 +msgid "" +"This function creates path to engrave letters or any shape with sharp " +"angles. Cutter's depth as a function of radius is defined by the tool. Depth " +"may be any Python expression. For instance: cone....(45 " +"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " +"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " +"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +msgid "Graffiti" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:2 +msgid "Maximum segment length:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:3 +msgid "Minimal connector radius:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:4 +msgid "Start position (x;y):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:5 +msgid "Create preview" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:6 +msgid "Create linearization preview" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:7 +msgid "Preview's size (px):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +msgid "Preview's paint emmit (pts/s):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 +msgid "Orientation type:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 +msgid "Z surface:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_orientation_points.inx.h:5 +msgid "Z depth:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +msgid "graffiti points" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +msgid "in-out reference point" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +msgid "" +"Orientation points are used to calculate transformation (offset,scale,mirror," +"rotation in XY plane) of the path. 3-points mode only: do not put all three " +"into one line (use 2-points mode instead). You can modify Z surface, Z depth " +"values later using text tool (3rd coordinates). If there are no orientation " +"points inside current layer they are taken from the upper layer. Do not " +"ungroup orientation points! You can select them using double click to enter " +"the group or by Ctrl+Click. Now press apply to create control points " +"(independent set for each layer)." +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:1 +msgid "Lathe" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:2 +msgid "Lathe width:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:3 +msgid "Fine cut width:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:4 +msgid "Fine cut count:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:5 +msgid "Create fine cut using:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:6 +msgid "Lathe X axis remap:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:7 +msgid "Lathe Z axis remap:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:8 +msgid "Move path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:9 +msgid "Offset path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:10 +msgid "Lathe modify path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:11 +msgid "" +"This function modifies path so it will be able to be cut with the " +"rectangular cutter." +msgstr "" + +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +msgid "Orientation points" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "Prepare path for plasma" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 +msgid "Prepare path for plasma or laser cuters" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +msgid "Create in-out paths" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +msgid "In-out path length:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +msgid "In-out path max distance to reference point:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 +msgid "In-out path type:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +msgid "In-out path radius for round path:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +msgid "Replace original path" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "Do not add in-out reference points" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 +msgid "Prepare corners" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +msgid "Stepout distance for corners:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 +msgid "Maximum angle for corner (0-180 deg):" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 +msgid "Perpendicular" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 +msgid "Tangent" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 +msgid "-------------------------------------------------" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Tools library" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:2 +msgid "Tools type:" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:3 +msgid "default" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:4 +msgid "cylinder" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:5 +msgid "cone" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:6 +msgid "plasma" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:7 +msgid "tangent knife" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:8 +msgid "lathe cutter" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:9 +msgid "graffiti" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:10 +msgid "Just check tools" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:11 +msgid "" +"Selected tool type fills appropriate default values. You can change these " +"values using the Text tool later on. The topmost (z order) tool in the " +"active layer is used. If there is no tool inside the current layer it is " +"taken from the upper layer. Press Apply to create new tool." +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:1 +msgid "Voronoi Pattern" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:3 +msgid "Average size of cell (px):" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:4 +msgid "Size of Border (px):" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:6 +msgid "" +"Generate a random pattern of Voronoi cells. The pattern will be accessible " +"in the Fill and Stroke dialog. You must select an object or a group.\n" +"\n" +"If border is zero, the pattern will be discontinuous at the edges. Use a " +"positive border, preferably greater than the cell size, to produce a smooth " +"join of the pattern at the edges. Use a negative border to reduce the size " +"of the pattern and get an empty border." +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:1 +msgid "GIMP XCF" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:3 +msgid "Save Guides" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:4 +msgid "Save Grid" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:5 +msgid "Save Background" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:6 +msgid "File Resolution:" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:8 +msgid "" +"This extension exports the document to Gimp XCF format according to the " +"following options:\n" +" * Save Guides: convert all guides to Gimp guides.\n" +" * Save Grid: convert the first rectangular grid to a Gimp grid (note " +"that the default Inkscape grid is very narrow when shown in Gimp).\n" +" * Save Background: add the document background to each converted layer.\n" +" * File Resolution: XCF file resolution, in DPI.\n" +"\n" +"Each first level layer is converted to a Gimp layer. Sublayers are " +"concatenated and converted with their first level parent layer into a single " +"Gimp layer." +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:15 +msgid "GIMP XCF maintaining layers (*.xcf)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:1 +msgid "Cartesian Grid" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:2 +#: ../share/extensions/grid_isometric.inx.h:10 +msgid "Border Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:3 +msgid "X Axis" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:4 +msgid "Major X Divisions:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:5 +msgid "Major X Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:6 +msgid "Subdivisions per Major X Division:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:7 +msgid "Logarithmic X Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:8 +msgid "Subsubdivs. per X Subdivision:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:9 +msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:10 +msgid "Major X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:11 +msgid "Minor X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:12 +msgid "Subminor X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:13 +msgid "Y Axis" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:14 +msgid "Major Y Divisions:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:15 +msgid "Major Y Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:16 +msgid "Subdivisions per Major Y Division:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:17 +msgid "Logarithmic Y Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:18 +msgid "Subsubdivs. per Y Subdivision:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:19 +msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:20 +msgid "Major Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:21 +msgid "Minor Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:22 +msgid "Subminor Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:1 +msgid "Isometric Grid" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:2 +msgid "X Divisions [x2]:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:3 +msgid "Y Divisions [x2] [> 1/2 X Div]:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:4 +msgid "Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:5 +msgid "Subdivisions per Major Division:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:6 +msgid "Subsubdivs per Subdivision:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:7 +msgid "Major Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:8 +msgid "Minor Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:9 +msgid "Subminor Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:1 +msgid "Polar Grid" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:2 +msgid "Centre Dot Diameter (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:3 +msgid "Circumferential Labels:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:5 +msgid "Degrees" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:6 +msgid "Circumferential Label Size (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:7 +msgid "Circumferential Label Outset (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:8 +msgid "Circular Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:9 +msgid "Major Circular Divisions:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:10 +msgid "Major Circular Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:11 +msgid "Subdivisions per Major Circular Division:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:12 +msgid "Logarithmic Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:13 +msgid "Major Circular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:14 +msgid "Minor Circular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:15 +msgid "Angular Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:16 +msgid "Angle Divisions:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:17 +msgid "Angle Divisions at Centre:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:18 +msgid "Subdivisions per Major Angular Division:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:19 +msgid "Minor Angle Division End 'n' Divs. Before Centre:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:20 +msgid "Major Angular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:21 +msgid "Minor Angular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:1 +msgid "Guides creator" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:2 +msgid "Regular guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:3 +msgid "Guides preset" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:6 +msgid "Start from edges" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:7 +msgid "Delete existing guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:8 +msgid "Diagonal guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:9 +msgid "Upper left corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:10 +msgid "Upper right corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:11 +msgid "Lower left corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:12 +msgid "Lower right corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:13 +msgid "Margins" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:14 +msgid "Margins preset" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:15 +msgid "Header margin" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:16 +msgid "Footer margin" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:1 +msgid "Guillotine" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:2 +msgid "Directory to save images to:" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:3 +msgid "Image name (without extension):" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:4 +msgid "Ignore these settings and use export hints" +msgstr "" + +#: ../share/extensions/handles.inx.h:1 +msgid "Draw Handles" +msgstr "" + +#: ../share/extensions/hershey.inx.h:1 +msgid "Hershey Text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:2 +msgid "Render Text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:3 +#: ../share/extensions/render_alphabetsoup.inx.h:2 +#: ../share/extensions/render_barcode_datamatrix.inx.h:2 +#: ../share/extensions/render_barcode_qrcode.inx.h:3 +msgid "Text:" +msgstr "" + +#: ../share/extensions/hershey.inx.h:4 +msgid " Action: " +msgstr "" + +#: ../share/extensions/hershey.inx.h:5 +msgid " Font face: " +msgstr "" + +#: ../share/extensions/hershey.inx.h:6 +msgid "Typeset that text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:7 +msgid "Write glyph table" +msgstr "" + +#: ../share/extensions/hershey.inx.h:8 +msgid "Sans 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:9 +msgid "Sans bold" +msgstr "" + +#: ../share/extensions/hershey.inx.h:10 +msgid "Serif medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:11 +msgid "Serif medium italic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:12 +msgid "Serif bold italic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:13 +msgid "Serif bold" +msgstr "" + +#: ../share/extensions/hershey.inx.h:14 +msgid "Script 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:15 +msgid "Script 1-stroke (alt)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:16 +msgid "Script medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:17 +msgid "Gothic English" +msgstr "" + +#: ../share/extensions/hershey.inx.h:18 +msgid "Gothic German" +msgstr "" + +#: ../share/extensions/hershey.inx.h:19 +msgid "Gothic Italian" +msgstr "" + +#: ../share/extensions/hershey.inx.h:20 +msgid "Greek 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:21 +msgid "Greek medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:23 +msgid "Japanese" +msgstr "" + +#: ../share/extensions/hershey.inx.h:24 +msgid "Astrology" +msgstr "" + +#: ../share/extensions/hershey.inx.h:25 +msgid "Math (lower)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:26 +msgid "Math (upper)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:28 +msgid "Meteorology" +msgstr "" + +#: ../share/extensions/hershey.inx.h:29 +msgid "Music" +msgstr "" + +#: ../share/extensions/hershey.inx.h:30 +msgid "Symbolic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:31 +msgid "" +" \n" +"\n" +"\n" +"\n" +msgstr "" + +#: ../share/extensions/hershey.inx.h:36 +msgid "About..." +msgstr "" + +#: ../share/extensions/hershey.inx.h:37 +msgid "" +"\n" +"This extension renders a line of text using\n" +"\"Hershey\" fonts for plotters, derived from \n" +"NBS SP-424 1976-04, \"A contribution to \n" +"computer typesetting techniques: Tables of\n" +"Coordinates for Hershey's Repertory of\n" +"Occidental Type Fonts and Graphic Symbols.\"\n" +"\n" +"These are not traditional \"outline\" fonts, \n" +"but are instead \"single-stroke\" fonts, or\n" +"\"engraving\" fonts where the character is\n" +"formed by the stroke (and not the fill).\n" +"\n" +"For additional information, please visit:\n" +" www.evilmadscientist.com/go/hershey" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:1 +msgid "HPGL Input" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:2 +msgid "" +"Please note that you can only open HPGL files written by Inkscape, to open " +"other HPGL files please change their file extension to .plt, make sure you " +"have UniConverter installed and open them again." +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:3 +#: ../share/extensions/hpgl_output.inx.h:4 +#: ../share/extensions/plotter.inx.h:20 +msgid "Resolution X (dpi)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:4 +#: ../share/extensions/hpgl_output.inx.h:5 +#: ../share/extensions/plotter.inx.h:21 +msgid "" +"The amount of steps the plotter moves if it moves for 1 inch on the X axis. " +"(Default: 1016.0)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:5 +#: ../share/extensions/hpgl_output.inx.h:6 +#: ../share/extensions/plotter.inx.h:22 +msgid "Resolution Y (dpi)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:6 +#: ../share/extensions/hpgl_output.inx.h:7 +#: ../share/extensions/plotter.inx.h:23 +msgid "" +"The amount of steps the plotter moves if it moves for 1 inch on the Y axis. " +"(Default: 1016.0)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:7 +msgid "Show movements between paths" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:8 +msgid "Check this to show movements between paths. (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:9 +#: ../share/extensions/hpgl_output.inx.h:34 +msgid "HP Graphics Language file (*.hpgl)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:10 +msgid "Import an HP Graphics Language file" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:1 +msgid "HPGL Output" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:2 +msgid "" +"Please make sure that all objects you want to save are converted to paths. " +"Please use the plotter extension (Extensions menu) to plot directly over a " +"serial connection." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:3 +#: ../share/extensions/plotter.inx.h:19 +msgid "Plotter Settings " +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:8 +#: ../share/extensions/plotter.inx.h:24 +msgid "Pen number" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:9 +#: ../share/extensions/plotter.inx.h:25 +msgid "The number of the pen (tool) to use. (Standard: '1')" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:10 +#: ../share/extensions/plotter.inx.h:26 +msgid "Pen force (g)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:11 +#: ../share/extensions/plotter.inx.h:27 +msgid "" +"The amount of force pushing down the pen in grams, set to 0 to omit command. " +"Most plotters ignore this command. (Default: 0)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:12 +#: ../share/extensions/plotter.inx.h:28 +msgid "Pen speed (cm/s or mm/s)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:13 +#: ../share/extensions/plotter.inx.h:29 +msgid "" +"The speed the pen will move with in centimeters or millimeters per second " +"(depending on your plotter model), set to 0 to omit command. Most plotters " +"ignore this command. (Default: 0)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:14 +#: ../share/extensions/plotter.inx.h:30 +msgid "Rotation (Clockwise)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:15 +#: ../share/extensions/plotter.inx.h:31 +msgid "Rotation of the drawing. (Default: 0°)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:16 +#: ../share/extensions/plotter.inx.h:32 +msgid "Mirror X axis" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:17 +#: ../share/extensions/plotter.inx.h:33 +msgid "Check this to mirror the X axis. (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:18 +#: ../share/extensions/plotter.inx.h:34 +msgid "Mirror Y axis" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:19 +#: ../share/extensions/plotter.inx.h:35 +msgid "Check this to mirror the Y axis. (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:20 +#: ../share/extensions/plotter.inx.h:36 +msgid "Center zero point" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:21 +#: ../share/extensions/plotter.inx.h:37 +msgid "" +"Check this if your plotter uses a centered zero point. (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:22 +#: ../share/extensions/plotter.inx.h:38 +msgid "Plot Features " +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:23 +#: ../share/extensions/plotter.inx.h:39 +msgid "Overcut (mm)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:24 +#: ../share/extensions/plotter.inx.h:40 +msgid "" +"The distance in mm that will be cut over the starting point of the path to " +"prevent open paths, set to 0.0 to omit command. (Default: 1.00)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:41 +msgid "Tool offset (mm)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:42 +msgid "" +"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " +"command. (Default: 0.25)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:43 +msgid "Use precut" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:44 +msgid "" +"Check this to cut a small line before the real drawing starts to correctly " +"align the tool orientation. (Default: Checked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:45 +msgid "Curve flatness" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:46 +msgid "" +"Curves are divided into lines, this number controls how fine the curves will " +"be reproduced, the smaller the finer. (Default: '1.2')" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:47 +msgid "Auto align" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:48 +msgid "" +"Check this to auto align the drawing to the zero point (Plus the tool offset " +"if used). If unchecked you have to make sure that all parts of your drawing " +"are within the document border! (Default: Checked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:51 +msgid "" +"All these settings depend on the plotter you use, for more information " +"please consult the manual or homepage for your plotter." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:35 +msgid "Export an HP Graphics Language file" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:1 +msgid "Convert to html5 canvas" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:2 +msgid "HTML 5 canvas (*.html)" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:3 +msgid "HTML 5 canvas code" +msgstr "" + +#: ../share/extensions/inkscape_follow_link.inx.h:1 +msgid "Follow Link" +msgstr "" + +#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 +msgid "Ask Us a Question" +msgstr "" + +#: ../share/extensions/inkscape_help_commandline.inx.h:1 +msgid "Command Line Options" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_commandline.inx.h:3 +msgid "http://inkscape.org/doc/inkscape-man.html" +msgstr "" + +#: ../share/extensions/inkscape_help_faq.inx.h:1 +msgid "FAQ" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_faq.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" +msgstr "" + +#: ../share/extensions/inkscape_help_keys.inx.h:1 +msgid "Keys and Mouse Reference" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_keys.inx.h:3 +msgid "http://inkscape.org/doc/keys048.html" +msgstr "" + +#: ../share/extensions/inkscape_help_manual.inx.h:1 +msgid "Inkscape Manual" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_manual.inx.h:3 +msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" +msgstr "" + +#: ../share/extensions/inkscape_help_relnotes.inx.h:1 +msgid "New in This Version" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_relnotes.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49" +msgstr "" + +#: ../share/extensions/inkscape_help_reportabug.inx.h:1 +msgid "Report a Bug" +msgstr "" + +#: ../share/extensions/inkscape_help_svgspec.inx.h:1 +msgid "SVG 1.1 Specification" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:1 +msgid "Interpolate Attribute in a group" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:3 +msgid "Attribute to Interpolate:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:4 +msgid "Other Attribute:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:5 +msgid "Other Attribute type:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:6 +msgid "Apply to:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:7 +msgid "Start Value:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:8 +msgid "End Value:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:13 +msgid "Translate X" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:14 +msgid "Translate Y" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/markers_strokepaint.inx.h:9 +msgid "Fill" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:17 +msgid "Other" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:18 +msgid "" +"If you select \"Other\", you must know the SVG attributes to identify here " +"this \"other\"." +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:20 +msgid "Integer Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:21 +msgid "Float Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:22 +msgid "Tag" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:23 +#: ../share/extensions/polyhedron_3d.inx.h:33 +msgid "Style" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:24 +msgid "Transformation" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:25 +msgid "••••••••••••••••••••••••••••••••••••••••••••••••" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:26 +msgid "No Unit" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:28 +msgid "" +"This effect applies a value for any interpolatable attribute for all " +"elements inside the selected group or for all elements in a multiple " +"selection." +msgstr "" + +#: ../share/extensions/interp.inx.h:1 +msgid "Interpolate" +msgstr "" + +#: ../share/extensions/interp.inx.h:3 +msgid "Interpolation steps:" +msgstr "" + +#: ../share/extensions/interp.inx.h:4 +msgid "Interpolation method:" +msgstr "" + +#: ../share/extensions/interp.inx.h:5 +msgid "Duplicate endpaths" +msgstr "" + +#: ../share/extensions/interp.inx.h:6 +msgid "Interpolate style" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:1 +msgid "Auto-texts" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:2 +#: ../share/extensions/jessyInk_effects.inx.h:2 +#: ../share/extensions/jessyInk_export.inx.h:2 +#: ../share/extensions/jessyInk_masterSlide.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:2 +msgid "Settings" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:3 +msgid "Auto-Text:" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:4 +msgid "None (remove)" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:5 +msgid "Slide title" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:6 +msgid "Slide number" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:7 +msgid "Number of slides" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:9 +msgid "" +"This extension allows you to install, update and remove auto-texts for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:10 +#: ../share/extensions/jessyInk_effects.inx.h:15 +#: ../share/extensions/jessyInk_install.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:46 +#: ../share/extensions/jessyInk_masterSlide.inx.h:7 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:8 +#: ../share/extensions/jessyInk_summary.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:14 +#: ../share/extensions/jessyInk_uninstall.inx.h:12 +#: ../share/extensions/jessyInk_video.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:9 +msgid "JessyInk" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:1 +msgid "Effects" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:4 +msgid "Duration in seconds:" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:6 +msgid "Build-in effect" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:7 +msgid "None (default)" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:8 +#: ../share/extensions/jessyInk_transitions.inx.h:8 +msgid "Appear" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:9 +msgid "Fade in" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:10 +#: ../share/extensions/jessyInk_transitions.inx.h:10 +msgid "Pop" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:11 +msgid "Build-out effect" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:12 +msgid "Fade out" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:14 +msgid "" +"This extension allows you to install, update and remove object effects for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:1 +msgid "JessyInk zipped pdf or png output" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:4 +msgid "Resolution:" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:5 +msgid "PDF" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:6 +msgid "PNG" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:8 +msgid "" +"This extension allows you to export a JessyInk presentation once you created " +"an export layer in your browser. Please see code.google.com/p/jessyink for " +"more details." +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:9 +msgid "JessyInk zipped pdf or png output (*.zip)" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:10 +msgid "" +"Creates a zip file containing pdfs or pngs of all slides of a JessyInk " +"presentation." +msgstr "" + +#: ../share/extensions/jessyInk_install.inx.h:1 +msgid "Install/update" +msgstr "" + +#: ../share/extensions/jessyInk_install.inx.h:3 +msgid "" +"This extension allows you to install or update the JessyInk script in order " +"to turn your SVG file into a presentation. Please see code.google.com/p/" +"jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:1 +msgid "Key bindings" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:2 +msgid "Slide mode" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:3 +msgid "Back (with effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:4 +msgid "Next (with effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:5 +msgid "Back (without effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:6 +msgid "Next (without effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:7 +msgid "First slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:8 +msgid "Last slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:9 +msgid "Switch to index mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:10 +msgid "Switch to drawing mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:11 +msgid "Set duration:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:12 +msgid "Add slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:13 +msgid "Toggle progress bar:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:14 +msgid "Reset timer:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:15 +msgid "Export presentation:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:17 +msgid "Switch to slide mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:18 +msgid "Set path width to default:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:19 +msgid "Set path width to 1:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:20 +msgid "Set path width to 3:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:21 +msgid "Set path width to 5:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:22 +msgid "Set path width to 7:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:23 +msgid "Set path width to 9:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:24 +msgid "Set path color to blue:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:25 +msgid "Set path color to cyan:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:26 +msgid "Set path color to green:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:27 +msgid "Set path color to black:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:28 +msgid "Set path color to magenta:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:29 +msgid "Set path color to orange:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:30 +msgid "Set path color to red:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:31 +msgid "Set path color to white:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:32 +msgid "Set path color to yellow:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:33 +msgid "Undo last path segment:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:34 +msgid "Index mode" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:35 +msgid "Select the slide to the left:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:36 +msgid "Select the slide to the right:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:37 +msgid "Select the slide above:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:38 +msgid "Select the slide below:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:39 +msgid "Previous page:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:40 +msgid "Next page:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:41 +msgid "Decrease number of columns:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:42 +msgid "Increase number of columns:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:43 +msgid "Set number of columns to default:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:45 +msgid "" +"This extension allows you customise the key bindings JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:1 +msgid "Master slide" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:3 +msgid "Name of layer:" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:4 +msgid "If no layer name is supplied, the master slide is unset." +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:6 +msgid "" +"This extension allows you to change the master slide JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:1 +msgid "Mouse handler" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:2 +msgid "Mouse settings:" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:4 +msgid "No-click" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:5 +msgid "Dragging/zoom" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:7 +msgid "" +"This extension allows you customise the mouse handler JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_summary.inx.h:1 +msgid "Summary" +msgstr "" + +#: ../share/extensions/jessyInk_summary.inx.h:3 +msgid "" +"This extension allows you to obtain information about the JessyInk script, " +"effects and transitions contained in this SVG file. Please see code.google." +"com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:1 +msgid "Transitions" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:6 +msgid "Transition in effect" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:9 +msgid "Fade" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:11 +msgid "Transition out effect" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:13 +msgid "" +"This extension allows you to change the transition JessyInk uses for the " +"selected layer. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:1 +msgid "Uninstall/remove" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:3 +msgid "Remove script" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:4 +msgid "Remove effects" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:5 +msgid "Remove master slide assignment" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:6 +msgid "Remove transitions" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:7 +msgid "Remove auto-texts" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:8 +msgid "Remove views" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:9 +msgid "Please select the parts of JessyInk you want to uninstall/remove." +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:11 +msgid "" +"This extension allows you to uninstall the JessyInk script. Please see code." +"google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_video.inx.h:1 +msgid "Video" +msgstr "" + +#: ../share/extensions/jessyInk_video.inx.h:3 +msgid "" +"This extension puts a JessyInk video element on the current slide (layer). " +"This element allows you to integrate a video into your JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:5 +msgid "Remove view" +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:6 +msgid "Choose order number 0 to set the initial view of a slide." +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:8 +msgid "" +"This extension allows you to set, update and remove views for a JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/layers2svgfont.inx.h:1 +msgid "3 - Convert Glyph Layers to SVG Font" +msgstr "" + +#: ../share/extensions/layers2svgfont.inx.h:2 +#: ../share/extensions/new_glyph_layer.inx.h:3 +#: ../share/extensions/next_glyph_layer.inx.h:2 +#: ../share/extensions/previous_glyph_layer.inx.h:2 +#: ../share/extensions/setup_typography_canvas.inx.h:7 +#: ../share/extensions/svgfont2layers.inx.h:3 +msgid "Typography" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:1 +msgid "N-up layout" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:2 +msgid "Page dimensions" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:4 +msgid "Size X:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:5 +msgid "Size Y:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:6 +#: ../share/extensions/printing_marks.inx.h:13 +msgid "Top:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:7 +#: ../share/extensions/printing_marks.inx.h:14 +msgid "Bottom:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:8 +#: ../share/extensions/printing_marks.inx.h:15 +msgid "Left:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:9 +#: ../share/extensions/printing_marks.inx.h:16 +msgid "Right:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:10 +msgid "Page margins" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:11 +msgid "Layout dimensions" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:13 +msgid "Cols:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:14 +msgid "Auto calculate layout size" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:15 +msgid "Layout padding" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:16 +msgid "Layout margins" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:17 +#: ../share/extensions/printing_marks.inx.h:2 +msgid "Marks" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:18 +msgid "Place holder" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:19 +msgid "Cutting marks" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:20 +msgid "Padding guide" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:21 +msgid "Margin guide" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:22 +msgid "Padding box" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:23 +msgid "Margin box" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:25 +msgid "" +"\n" +"Parameters:\n" +" * Page size: width and height.\n" +" * Page margins: extra space around each page.\n" +" * Layout rows and cols.\n" +" * Layout size: width and height, auto calculated if one is 0.\n" +" * Auto calculate layout size: don't use the layout size values.\n" +" * Layout margins: white space around each part of the layout.\n" +" * Layout padding: inner padding for each part of the layout.\n" +" " +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:36 +#: ../share/extensions/perfectboundcover.inx.h:20 +#: ../share/extensions/printing_marks.inx.h:21 +#: ../share/extensions/svgcalendar.inx.h:13 +msgid "Layout" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:1 +msgid "L-system" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:2 +msgid "Axiom and rules" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:3 +msgid "Axiom:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:4 +msgid "Rules:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:6 +msgid "Step length (px):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:8 +#, no-c-format +msgid "Randomize step (%):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:9 +msgid "Left angle:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:10 +msgid "Right angle:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:12 +#, no-c-format +msgid "Randomize angle (%):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:14 +msgid "" +"\n" +"The path is generated by applying the \n" +"substitutions of Rules to the Axiom, \n" +"Order times. The following commands are \n" +"recognized in Axiom and Rules:\n" +"\n" +"Any of A,B,C,D,E,F: draw forward \n" +"\n" +"Any of G,H,I,J,K,L: move forward \n" +"\n" +"+: turn left\n" +"\n" +"-: turn right\n" +"\n" +"|: turn 180 degrees\n" +"\n" +"[: remember point\n" +"\n" +"]: return to remembered point\n" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:1 +msgid "Lorem ipsum" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:3 +msgid "Number of paragraphs:" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:4 +msgid "Sentences per paragraph:" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:5 +msgid "Paragraph length fluctuation (sentences):" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:7 +msgid "" +"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder " +"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " +"new flowed text object, the size of the page, is created in a new layer." +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:1 +msgid "Color Markers" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:2 +msgid "From object" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:3 +msgid "Marker type:" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:4 +msgid "Invert fill and stroke colors" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:5 +msgid "Assign alpha" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:6 +msgid "solid" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:7 +msgid "filled" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:10 +msgid "Assign fill color" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:11 +msgid "Stroke" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:12 +msgid "Assign stroke color" +msgstr "" + +#: ../share/extensions/measure.inx.h:1 +msgid "Measure Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:2 +msgid "Measure" +msgstr "" + +#: ../share/extensions/measure.inx.h:3 +msgid "Measurement Type: " +msgstr "" + +#: ../share/extensions/measure.inx.h:4 +msgid "Text Orientation: " +msgstr "" + +#: ../share/extensions/measure.inx.h:5 +msgid "Angle [with Fixed Angle option only] (°):" +msgstr "" + +#: ../share/extensions/measure.inx.h:6 +msgid "Font size (px):" +msgstr "" + +#: ../share/extensions/measure.inx.h:7 +msgid "Offset (px):" +msgstr "" + +#: ../share/extensions/measure.inx.h:8 +msgid "Precision:" +msgstr "" + +#: ../share/extensions/measure.inx.h:9 +msgid "Scale Factor (Drawing:Real Length) = 1:" +msgstr "" + +#: ../share/extensions/measure.inx.h:10 +msgid "Length Unit:" +msgstr "" + +#: ../share/extensions/measure.inx.h:12 +msgctxt "measure extension" +msgid "Area" +msgstr "" + +#: ../share/extensions/measure.inx.h:13 +msgctxt "measure extension" +msgid "Text On Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:14 +msgctxt "measure extension" +msgid "Fixed Angle" +msgstr "" + +#: ../share/extensions/measure.inx.h:17 +#, no-c-format +msgid "" +"This effect measures the length, or area, of the selected paths and adds it " +"as a text object with the selected units.\n" +" \n" +" * Display format can be either Text-On-Path, or stand-alone text at a " +"specified angle.\n" +" * The number of significant digits can be controlled by the Precision " +"field.\n" +" * The Offset field controls the distance from the text to the path.\n" +" * The Scale factor can be used to make measurements in scaled drawings. " +"For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " +"must be set to 250.\n" +" * When calculating area, the result should be precise for polygons and " +"Bezier curves. If a circle is used, the area may be too high by as much as " +"0.03%." +msgstr "" + +#: ../share/extensions/motion.inx.h:1 +msgid "Motion" +msgstr "" + +#: ../share/extensions/motion.inx.h:2 +msgid "Magnitude:" +msgstr "" + +#: ../share/extensions/new_glyph_layer.inx.h:1 +msgid "2 - Add Glyph Layer" +msgstr "" + +#: ../share/extensions/new_glyph_layer.inx.h:2 +msgid "Unicode character:" +msgstr "" + +#: ../share/extensions/next_glyph_layer.inx.h:1 +msgid "View Next Glyph" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:1 +msgid "Parametric Curves" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:2 +msgid "Range and Sampling" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:3 +msgid "Start t-value:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:4 +msgid "End t-value:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:5 +msgid "Multiply t-range by 2*pi" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:6 +msgid "X-value of rectangle's left:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:7 +msgid "X-value of rectangle's right:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:8 +msgid "Y-value of rectangle's bottom:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:9 +msgid "Y-value of rectangle's top:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:10 +msgid "Samples:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:14 +msgid "" +"Select a rectangle before calling the extension, it will determine X and Y " +"scales.\n" +"First derivatives are always determined numerically." +msgstr "" + +#: ../share/extensions/param_curves.inx.h:26 +msgid "X-Function:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:27 +msgid "Y-Function:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:1 +msgid "Pattern along Path" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:3 +msgid "Copies of the pattern:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:4 +msgid "Deformation type:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:5 +#: ../share/extensions/pathscatter.inx.h:5 +msgid "Space between copies:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:6 +#: ../share/extensions/pathscatter.inx.h:6 +msgid "Normal offset:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:7 +#: ../share/extensions/pathscatter.inx.h:7 +msgid "Tangential offset:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:8 +#: ../share/extensions/pathscatter.inx.h:8 +msgid "Pattern is vertical" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:9 +#: ../share/extensions/pathscatter.inx.h:10 +msgid "Duplicate the pattern before deformation" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:14 +msgid "Snake" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:15 +msgid "Ribbon" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:17 +msgid "" +"This effect scatters or bends a pattern along arbitrary \"skeleton\" paths. " +"The pattern is the topmost object in the selection. Groups of paths, shapes " +"or clones are allowed." +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:3 +msgid "Follow path orientation" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:4 +msgid "Stretch spaces to fit skeleton length" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:9 +msgid "Original pattern will be:" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:11 +msgid "If pattern is a group, pick group members" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:12 +msgid "Pick group members:" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:13 +msgid "Moved" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:14 +msgid "Copied" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:15 +msgid "Cloned" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:16 +msgid "Randomly" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:17 +msgid "Sequentially" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:19 +msgid "" +"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " +"pattern must be the topmost object in the selection. Groups of paths, " +"shapes, clones are allowed." +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:1 +msgid "Perfect-Bound Cover Template" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:2 +msgid "Book Properties" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:3 +msgid "Book Width (inches):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:4 +msgid "Book Height (inches):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:5 +msgid "Number of Pages:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:6 +msgid "Remove existing guides" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:7 +msgid "Interior Pages" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:8 +msgid "Paper Thickness Measurement:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:9 +msgid "Pages Per Inch (PPI)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:10 +msgid "Caliper (inches)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:11 +msgid "Points" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:12 +msgid "Bond Weight #" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:13 +msgid "Specify Width" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:14 +msgid "Value:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:15 +msgid "Cover" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:16 +msgid "Cover Thickness Measurement:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:17 +msgid "Bleed (in):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:18 +msgid "Note: Bond Weight # calculations are a best-guess estimate." +msgstr "" + +#: ../share/extensions/perspective.inx.h:1 +msgid "Perspective" +msgstr "" + +#: ../share/extensions/pixelsnap.inx.h:1 +msgid "PixelSnap" +msgstr "" + +#: ../share/extensions/pixelsnap.inx.h:2 +msgid "" +"Snap all paths in selection to pixels. Snaps borders to half-points and " +"fills to full points." +msgstr "" + +#: ../share/extensions/plotter.inx.h:1 +msgid "Plot" +msgstr "" + +#: ../share/extensions/plotter.inx.h:2 +msgid "" +"Please make sure that all objects you want to plot are converted to paths." +msgstr "" + +#: ../share/extensions/plotter.inx.h:3 +msgid "Connection Settings " +msgstr "" + +#: ../share/extensions/plotter.inx.h:4 +msgid "Serial port" +msgstr "" + +#: ../share/extensions/plotter.inx.h:5 +msgid "" +"The port of your serial connection, on Windows something like 'COM1', on " +"Linux something like: '/dev/ttyUSB0'. (Default: COM1)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:6 +msgid "Serial baud rate" +msgstr "" + +#: ../share/extensions/plotter.inx.h:7 +msgid "The Baud rate of your serial connection. (Default: 9600)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:8 +msgid "Flow control" +msgstr "" + +#: ../share/extensions/plotter.inx.h:9 +msgid "" +"The Software / Hardware flow control of your serial connection. (Default: " +"Software)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:10 +msgid "Command language" +msgstr "" + +#: ../share/extensions/plotter.inx.h:11 +msgid "The command language to use. (Default: HPGL)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:12 +msgid "Software (XON/XOFF)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:13 +msgid "Hardware (RTS/CTS)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 +msgid "Hardware (DSR/DTR + RTS/CTS)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:16 +msgid "" +"Using wrong settings can under certain circumstances cause Inkscape to " +"freeze. Always save your work before plotting!" +msgstr "" + +#: ../share/extensions/plotter.inx.h:17 +msgid "" +"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " +"plotter manufacturer for drivers if needed." +msgstr "" + +#: ../share/extensions/plotter.inx.h:18 +msgid "Parallel (LPT) connections are not supported." +msgstr "" + +#: ../share/extensions/plotter.inx.h:49 +msgid "Show debug information" +msgstr "" + +#: ../share/extensions/plotter.inx.h:50 +msgid "" +"Check this to get verbose information about the plot without actually " +"sending something to the plotter (A.k.a. data dump). (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:1 +msgid "AutoCAD Plot Input" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:2 +#: ../share/extensions/plt_output.inx.h:2 +msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:3 +msgid "Open HPGL plotter files" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:1 +msgid "AutoCAD Plot Output" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:3 +msgid "Save a file for plotters" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:1 +msgid "3D Polyhedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:2 +msgid "Model file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:3 +msgid "Object:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:4 +msgid "Filename:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:5 +msgid "Object Type:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:6 +msgid "Clockwise wound object" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:7 +msgid "Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:8 +msgid "Truncated Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:9 +msgid "Snub Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:10 +msgid "Cuboctahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:11 +msgid "Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:12 +msgid "Truncated Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:13 +msgid "Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:14 +msgid "Truncated Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:15 +msgid "Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:16 +msgid "Truncated Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:17 +msgid "Small Triambic Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:18 +msgid "Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:19 +msgid "Truncated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:20 +msgid "Snub Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:21 +msgid "Great Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:22 +msgid "Great Stellated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:23 +msgid "Load from file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:24 +msgid "Face-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:25 +msgid "Edge-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:27 +msgid "Rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:28 +#: ../share/extensions/spirograph.inx.h:8 +#: ../share/extensions/wireframe_sphere.inx.h:5 +msgid "Rotation (deg):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:29 +msgid "Then rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:30 +msgid "X-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:31 +msgid "Y-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:32 +msgid "Z-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:34 +msgid "Scaling factor:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:35 +msgid "Fill color, Red:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:36 +msgid "Fill color, Green:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:37 +msgid "Fill color, Blue:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:39 +#, no-c-format +msgid "Fill opacity (%):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:41 +#, no-c-format +msgid "Stroke opacity (%):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:42 +msgid "Stroke width (px):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:43 +msgid "Shading" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:44 +msgid "Light X:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:45 +msgid "Light Y:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:46 +msgid "Light Z:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:48 +msgid "Draw back-facing polygons" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:49 +msgid "Z-sort faces by:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:50 +msgid "Faces" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:51 +msgid "Edges" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:52 +msgid "Vertices" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:53 +msgid "Maximum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:54 +msgid "Minimum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:55 +msgid "Mean" +msgstr "" + +#: ../share/extensions/previous_glyph_layer.inx.h:1 +msgid "View Previous Glyph" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:1 +msgid "Printing Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:3 +msgid "Crop Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:4 +msgid "Bleed Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:5 +msgid "Registration Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:6 +msgid "Star Target" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:7 +msgid "Color Bars" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:8 +msgid "Page Information" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:9 +msgid "Positioning" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:10 +msgid "Set crop marks to:" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:17 +msgid "Canvas" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:19 +msgid "Bleed Margin" +msgstr "" + +#: ../share/extensions/print_win32_vector.inx.h:1 +msgid "Win32 Vector Print" +msgstr "" + +#: ../share/extensions/ps_input.inx.h:1 +msgid "PostScript Input" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:1 +msgid "Jitter nodes" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:3 +msgid "Maximum displacement in X (px):" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:4 +msgid "Maximum displacement in Y (px):" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:5 +msgid "Shift nodes" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:6 +msgid "Shift node handles" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:7 +msgid "Use normal distribution" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:9 +msgid "" +"This effect randomly shifts the nodes (and optionally node handles) of the " +"selected path." +msgstr "" + +#: ../share/extensions/render_alphabetsoup.inx.h:1 +msgid "Alphabet Soup" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:1 +msgid "Datamatrix" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:3 +#: ../share/extensions/render_barcode_qrcode.inx.h:4 +msgid "Size, in unit squares:" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:4 +msgid "Square Size (px):" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:6 +#: ../share/extensions/render_barcode.inx.h:6 +#: ../share/extensions/render_barcode_qrcode.inx.h:19 +msgid "Barcode" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:1 +msgid "Classic" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:2 +msgid "Barcode Type:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:3 +msgid "Barcode Data:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:4 +msgid "Bar Height:" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:1 +msgid "QR Code" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:2 +msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:5 +msgid "Auto" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:6 +msgid "" +"With \"Auto\", the size of the barcode depends on the length of the text and " +"the error correction level" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:7 +msgid "Error correction level:" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:9 +#, no-c-format +msgid "L (Approx. 7%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:11 +#, no-c-format +msgid "M (Approx. 15%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:13 +#, no-c-format +msgid "Q (Approx. 25%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:15 +#, no-c-format +msgid "H (Approx. 30%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:17 +msgid "Square size (px):" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:1 +msgid "Rack Gear" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:2 +msgid "Rack Length:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:3 +msgid "Tooth Spacing:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:4 +msgid "Contact Angle:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:6 +#: ../share/extensions/render_gears.inx.h:1 +msgid "Gear" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:2 +msgid "Number of teeth:" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:3 +msgid "Circular pitch (tooth size):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:4 +msgid "Pressure angle (degrees):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:5 +msgid "Diameter of center hole (0 for none):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:10 +msgid "Unit of measurement for both circular pitch and center diameter." +msgstr "" + +#: ../share/extensions/replace_font.inx.h:1 +msgid "Replace font" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:2 +msgid "Find and Replace font" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:3 +msgid "Find font: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:4 +msgid "Replace with: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:5 +msgid "Replace all fonts with: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:6 +msgid "List all fonts" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:7 +msgid "" +"Choose this tab if you would like to see a list of the fonts used/found." +msgstr "" + +#: ../share/extensions/replace_font.inx.h:8 +msgid "Work on:" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:9 +msgid "Entire drawing" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:10 +msgid "Selected objects only" +msgstr "" + +#: ../share/extensions/restack.inx.h:1 +msgid "Restack" +msgstr "" + +#: ../share/extensions/restack.inx.h:2 +msgid "Restack Direction:" +msgstr "" + +#: ../share/extensions/restack.inx.h:3 +msgid "Left to Right (0)" +msgstr "" + +#: ../share/extensions/restack.inx.h:4 +msgid "Bottom to Top (90)" +msgstr "" + +#: ../share/extensions/restack.inx.h:5 +msgid "Right to Left (180)" +msgstr "" + +#: ../share/extensions/restack.inx.h:6 +msgid "Top to Bottom (270)" +msgstr "" + +#: ../share/extensions/restack.inx.h:7 +msgid "Radial Outward" +msgstr "" + +#: ../share/extensions/restack.inx.h:8 +msgid "Radial Inward" +msgstr "" + +#: ../share/extensions/restack.inx.h:9 +msgid "Arbitrary Angle" +msgstr "" + +#: ../share/extensions/restack.inx.h:11 +msgid "Horizontal Point:" +msgstr "" + +#: ../share/extensions/restack.inx.h:13 +#: ../share/extensions/text_extract.inx.h:9 +#: ../share/extensions/text_merge.inx.h:9 +msgid "Middle" +msgstr "" + +#: ../share/extensions/restack.inx.h:15 +msgid "Vertical Point:" +msgstr "" + +#: ../share/extensions/restack.inx.h:16 +#: ../share/extensions/text_extract.inx.h:12 +#: ../share/extensions/text_merge.inx.h:12 +msgid "Top" +msgstr "" + +#: ../share/extensions/restack.inx.h:17 +#: ../share/extensions/text_extract.inx.h:13 +#: ../share/extensions/text_merge.inx.h:13 +msgid "Bottom" +msgstr "" + +#: ../share/extensions/restack.inx.h:18 +msgid "Arrange" +msgstr "" + +#: ../share/extensions/rtree.inx.h:1 +msgid "Random Tree" +msgstr "" + +#: ../share/extensions/rtree.inx.h:2 +msgid "Initial size:" +msgstr "" + +#: ../share/extensions/rtree.inx.h:3 +msgid "Minimum size:" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:1 +msgid "Rubber Stretch" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:3 +#, no-c-format +msgid "Strength (%):" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:5 +#, no-c-format +msgid "Curve (%):" +msgstr "" + +#: ../share/extensions/scour.inx.h:1 +msgid "Optimized SVG Output" +msgstr "" + +#: ../share/extensions/scour.inx.h:3 +msgid "Shorten color values" +msgstr "" + +#: ../share/extensions/scour.inx.h:4 +msgid "Convert CSS attributes to XML attributes" +msgstr "" + +#: ../share/extensions/scour.inx.h:5 +msgid "Group collapsing" +msgstr "" + +#: ../share/extensions/scour.inx.h:6 +msgid "Create groups for similar attributes" +msgstr "" + +#: ../share/extensions/scour.inx.h:7 +msgid "Embed rasters" +msgstr "" + +#: ../share/extensions/scour.inx.h:8 +msgid "Keep editor data" +msgstr "" + +#: ../share/extensions/scour.inx.h:9 +msgid "Remove metadata" +msgstr "" + +#: ../share/extensions/scour.inx.h:10 +msgid "Remove comments" +msgstr "" + +#: ../share/extensions/scour.inx.h:11 +msgid "Work around renderer bugs" +msgstr "" + +#: ../share/extensions/scour.inx.h:12 +msgid "Enable viewboxing" +msgstr "" + +#: ../share/extensions/scour.inx.h:13 +msgid "Remove the xml declaration" +msgstr "" + +#: ../share/extensions/scour.inx.h:14 +msgid "Number of significant digits for coords:" +msgstr "" + +#: ../share/extensions/scour.inx.h:15 +msgid "XML indentation (pretty-printing):" +msgstr "" + +#: ../share/extensions/scour.inx.h:16 +msgid "Space" +msgstr "" + +#: ../share/extensions/scour.inx.h:17 +msgid "Tab" +msgstr "" + +#: ../share/extensions/scour.inx.h:19 +msgid "Ids" +msgstr "" + +#: ../share/extensions/scour.inx.h:20 +msgid "Remove unused ID names for elements" +msgstr "" + +#: ../share/extensions/scour.inx.h:21 +msgid "Shorten IDs" +msgstr "" + +#: ../share/extensions/scour.inx.h:22 +msgid "Preserve manually created ID names not ending with digits" +msgstr "" + +#: ../share/extensions/scour.inx.h:23 +msgid "Preserve these ID names, comma-separated:" +msgstr "" + +#: ../share/extensions/scour.inx.h:24 +msgid "Preserve ID names starting with:" +msgstr "" + +#: ../share/extensions/scour.inx.h:25 +msgid "Help (Options)" +msgstr "" + +#: ../share/extensions/scour.inx.h:27 +#, no-c-format +msgid "" +"This extension optimizes the SVG file according to the following options:\n" +" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" +" * Convert CSS attributes to XML attributes: convert styles from style " +"tags and inline style=\"\" declarations into XML attributes.\n" +" * Group collapsing: removes useless g elements, promoting their contents " +"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" +" * Create groups for similar attributes: create g elements for runs of " +"elements having at least one attribute in common (e.g. fill color, stroke " +"opacity, ...).\n" +" * Embed rasters: embed raster images as base64-encoded data URLs.\n" +" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " +"elements and attributes.\n" +" * Remove metadata: remove metadata tags along with all the information " +"in them, which may include license metadata, alternate versions for non-SVG-" +"enabled browsers, etc.\n" +" * Remove comments: remove comment tags.\n" +" * Work around renderer bugs: emits slightly larger SVG data, but works " +"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " +"various applications.\n" +" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" +" * Number of significant digits for coords: all coordinates are output " +"with that number of significant digits. For example, if 3 is specified, the " +"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " +"472.\n" +" * XML indentation (pretty-printing): either None for no indentation, " +"Space to use one space per nesting level, or Tab to use one tab per nesting " +"level." +msgstr "" + +#: ../share/extensions/scour.inx.h:40 +msgid "Help (Ids)" +msgstr "" + +#: ../share/extensions/scour.inx.h:41 +msgid "" +"Ids specific options:\n" +" * Remove unused ID names for elements: remove all unreferenced ID " +"attributes.\n" +" * Shorten IDs: reduce the length of all ID attributes, assigning the " +"shortest to the most-referenced elements. For instance, #linearGradient5621, " +"referenced 100 times, can become #a.\n" +" * Preserve manually created ID names not ending with digits: usually, " +"optimised SVG output removes these, but if they're needed for referencing (e." +"g. #middledot), you may use this option.\n" +" * Preserve these ID names, comma-separated: you can use this in " +"conjunction with the other preserve options if you wish to preserve some " +"more specific ID names.\n" +" * Preserve ID names starting with: usually, optimised SVG output removes " +"all unused ID names, but if all of your preserved ID names start with the " +"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." +msgstr "" + +#: ../share/extensions/scour.inx.h:47 +msgid "Optimized SVG (*.svg)" +msgstr "" + +#: ../share/extensions/scour.inx.h:48 +msgid "Scalable Vector Graphics" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:1 +msgid "1 - Setup Typography Canvas" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:2 +msgid "Em-size:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:3 +msgid "Ascender:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:4 +msgid "Caps Height:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:5 +msgid "X-Height:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:6 +msgid "Descender:" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:1 +msgid "sK1 vector graphics files input" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:2 +#: ../share/extensions/sk1_output.inx.h:2 +msgid "sK1 vector graphics files (*.sk1)" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:3 +msgid "Open files saved in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:1 +msgid "sK1 vector graphics files output" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:3 +msgid "File format for use in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:1 +msgid "Sketch Input" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:2 +msgid "Sketch Diagram (*.sk)" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:3 +msgid "A diagram created with the program Sketch" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:1 +msgid "Spirograph" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:2 +msgid "R - Ring Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:3 +msgid "r - Gear Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:4 +msgid "d - Pen Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:5 +msgid "Gear Placement:" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:6 +msgid "Inside (Hypotrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:7 +msgid "Outside (Epitrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:9 +msgid "Quality (Default = 16):" +msgstr "" + +#: ../share/extensions/split.inx.h:1 +msgid "Split text" +msgstr "" + +#: ../share/extensions/split.inx.h:3 +msgid "Split:" +msgstr "" + +#: ../share/extensions/split.inx.h:4 +msgid "Preserve original text" +msgstr "" + +#: ../share/extensions/split.inx.h:5 +msgctxt "split" +msgid "Lines" +msgstr "" + +#: ../share/extensions/split.inx.h:6 +msgctxt "split" +msgid "Words" +msgstr "" + +#: ../share/extensions/split.inx.h:7 +msgctxt "split" +msgid "Letters" +msgstr "" + +#: ../share/extensions/split.inx.h:9 +msgid "This effect splits texts into different lines, words or letters." +msgstr "" + +#: ../share/extensions/straightseg.inx.h:1 +msgid "Straighten Segments" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:2 +msgid "Percent:" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:3 +msgid "Behavior:" +msgstr "" + +#: ../share/extensions/summersnight.inx.h:1 +msgid "Envelope" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:1 +msgid "FXG Output" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:2 +msgid "Flash XML Graphics (*.fxg)" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:3 +msgid "Adobe's XML Graphics file format" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:1 +msgid "XAML Output" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:2 ../share/extensions/xaml2svg.inx.h:2 +msgid "Microsoft XAML (*.xaml)" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:3 +msgid "Microsoft's GUI definition format" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:1 +msgid "Compressed Inkscape SVG with media export" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:2 +msgid "Image zip directory:" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:3 +msgid "Add font list" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:4 +msgid "Compressed Inkscape SVG with media (*.zip)" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:5 +msgid "" +"Inkscape's native file format compressed with Zip and including all media " +"files" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:1 +msgid "Calendar" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:3 +msgid "Year (4 digits):" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:4 +msgid "Month (0 for all):" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:5 +msgid "Fill empty day boxes with next month's days" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:6 +msgid "Show week number" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:7 +msgid "Week start day:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:8 +msgid "Weekend:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:9 +msgid "Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:10 +msgid "Monday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:11 +msgid "Saturday and Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:12 +msgid "Saturday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:14 +msgid "Automatically set size and position" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:15 +msgid "Months per line:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:16 +msgid "Month Width:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:17 +msgid "Month Margin:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:18 +msgid "The options below have no influence when the above is checked." +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:20 +msgid "Year color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:21 +msgid "Month color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:22 +msgid "Weekday name color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:23 +msgid "Day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:24 +msgid "Weekend day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:25 +msgid "Next month day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:26 +msgid "Week number color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:27 +msgid "Localization" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:28 +msgid "Month names:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:29 +msgid "Day names:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:30 +msgid "Week number column name:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:31 +msgid "Char Encoding:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:32 +msgid "You may change the names for other languages:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:33 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:34 +msgid "Sun Mon Tue Wed Thu Fri Sat" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:35 +msgid "The day names list must start from Sunday." +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:36 +msgid "Wk" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:37 +msgid "" +"Select your system encoding. More information at http://docs.python.org/" +"library/codecs.html#standard-encodings." +msgstr "" + +#: ../share/extensions/svgfont2layers.inx.h:1 +msgid "Convert SVG Font to Glyph Layers" +msgstr "" + +#: ../share/extensions/svgfont2layers.inx.h:2 +msgid "Load only the first 30 glyphs (Recommended)" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:1 +msgid "Synfig Output" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:2 +msgid "Synfig Animation (*.sif)" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:3 +msgid "Synfig Animation written using the sif-file exporter extension" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:1 +msgid "Collection of SVG files One per root layer" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:2 +msgid "Layers as Separate SVG (*.tar)" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:3 +msgid "" +"Each layer split into it's own svg file and collected as a tape archive (tar " +"file)" +msgstr "" + +#: ../share/extensions/text_braille.inx.h:1 +msgid "Convert to Braille" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:1 +msgid "Extract" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:2 +#: ../share/extensions/text_merge.inx.h:2 +msgid "Text direction:" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:3 +#: ../share/extensions/text_merge.inx.h:3 +msgid "Left to right" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:4 +#: ../share/extensions/text_merge.inx.h:4 +msgid "Bottom to top" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:5 +#: ../share/extensions/text_merge.inx.h:5 +msgid "Right to left" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:6 +#: ../share/extensions/text_merge.inx.h:6 +msgid "Top to bottom" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:7 +#: ../share/extensions/text_merge.inx.h:7 +msgid "Horizontal point:" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:11 +#: ../share/extensions/text_merge.inx.h:11 +msgid "Vertical point:" +msgstr "" + +#: ../share/extensions/text_flipcase.inx.h:1 +msgid "fLIP cASE" +msgstr "" + +#: ../share/extensions/text_flipcase.inx.h:3 +#: ../share/extensions/text_lowercase.inx.h:3 +#: ../share/extensions/text_randomcase.inx.h:3 +#: ../share/extensions/text_sentencecase.inx.h:3 +#: ../share/extensions/text_titlecase.inx.h:3 +#: ../share/extensions/text_uppercase.inx.h:3 +msgid "Change Case" +msgstr "" + +#: ../share/extensions/text_lowercase.inx.h:1 +msgid "lowercase" +msgstr "" + +#: ../share/extensions/text_merge.inx.h:14 +msgid "Flow text" +msgstr "" + +#: ../share/extensions/text_merge.inx.h:15 +msgid "Keep style" +msgstr "" + +#: ../share/extensions/text_randomcase.inx.h:1 +msgid "rANdOm CasE" +msgstr "" + +#: ../share/extensions/text_sentencecase.inx.h:1 +msgid "Sentence case" +msgstr "" + +#: ../share/extensions/text_titlecase.inx.h:1 +msgid "Title Case" +msgstr "" + +#: ../share/extensions/text_uppercase.inx.h:1 +msgid "UPPERCASE" +msgstr "" + +#: ../share/extensions/triangle.inx.h:1 +msgid "Triangle" +msgstr "" + +#: ../share/extensions/triangle.inx.h:2 +msgid "Side Length a (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:3 +msgid "Side Length b (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:4 +msgid "Side Length c (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:5 +msgid "Angle a (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:6 +msgid "Angle b (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:7 +msgid "Angle c (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:9 +msgid "From Three Sides" +msgstr "" + +#: ../share/extensions/triangle.inx.h:10 +msgid "From Sides a, b and Angle c" +msgstr "" + +#: ../share/extensions/triangle.inx.h:11 +msgid "From Sides a, b and Angle a" +msgstr "" + +#: ../share/extensions/triangle.inx.h:12 +msgid "From Side a and Angles a, b" +msgstr "" + +#: ../share/extensions/triangle.inx.h:13 +msgid "From Side c and Angles a, b" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:1 +msgid "Voronoi Diagram" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:3 +msgid "Type of diagram:" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:4 +msgid "Bounding box of the diagram:" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:5 +msgid "Show the bounding box" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:6 +msgid "Delaunay Triangulation" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:7 +msgid "Voronoi and Delaunay" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:8 +msgid "Options for Voronoi diagram" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:10 +msgid "Automatic from selected objects" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:12 +msgid "" +"Select a set of objects. Their centroids will be used as the sites of the " +"Voronoi diagram. Text objects are not handled." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:1 +msgid "Set Attributes" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:3 +msgid "Attribute to set:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:4 +msgid "When should the set be done:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:5 +msgid "Value to set:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:5 +msgid "Compatibility with previews code to this event:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:7 +msgid "Source and destination of setting:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:8 +#: ../share/extensions/web-transmit-att.inx.h:7 +msgid "on click" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:9 +#: ../share/extensions/web-transmit-att.inx.h:8 +msgid "on focus" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:10 +#: ../share/extensions/web-transmit-att.inx.h:9 +msgid "on blur" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:11 +#: ../share/extensions/web-transmit-att.inx.h:10 +msgid "on activate" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:12 +#: ../share/extensions/web-transmit-att.inx.h:11 +msgid "on mouse down" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:13 +#: ../share/extensions/web-transmit-att.inx.h:12 +msgid "on mouse up" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:14 +#: ../share/extensions/web-transmit-att.inx.h:13 +msgid "on mouse over" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:15 +#: ../share/extensions/web-transmit-att.inx.h:14 +msgid "on mouse move" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:16 +#: ../share/extensions/web-transmit-att.inx.h:15 +msgid "on mouse out" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:17 +#: ../share/extensions/web-transmit-att.inx.h:16 +msgid "on element loaded" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:18 +msgid "The list of values must have the same size as the attributes list." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:19 +#: ../share/extensions/web-transmit-att.inx.h:17 +msgid "Run it after" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:20 +#: ../share/extensions/web-transmit-att.inx.h:18 +msgid "Run it before" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:22 +#: ../share/extensions/web-transmit-att.inx.h:20 +msgid "The next parameter is useful when you select more than two elements" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:23 +msgid "All selected ones set an attribute in the last one" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:24 +msgid "The first selected sets an attribute in all others" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:26 +#: ../share/extensions/web-transmit-att.inx.h:24 +msgid "" +"This effect adds a feature visible (or usable) only on a SVG enabled web " +"browser (like Firefox)." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:27 +msgid "" +"This effect sets one or more attributes in the second selected element, when " +"a defined event occurs on the first selected element." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:28 +msgid "" +"If you want to set more than one attribute, you must separate this with a " +"space, and only with a space." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:29 +#: ../share/extensions/webslicer_create_group.inx.h:13 +#: ../share/extensions/webslicer_create_rect.inx.h:41 +#: ../share/extensions/webslicer_export.inx.h:8 +#: ../share/extensions/web-transmit-att.inx.h:27 +msgid "Web" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:1 +msgid "Set a layout group" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:3 +#: ../share/extensions/webslicer_create_rect.inx.h:18 +msgid "HTML id attribute:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:4 +#: ../share/extensions/webslicer_create_rect.inx.h:19 +msgid "HTML class attribute:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:5 +msgid "Width unit:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:6 +msgid "Height unit:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:7 +#: ../share/extensions/webslicer_create_rect.inx.h:9 +msgid "Background color:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:8 +msgid "Pixel (fixed)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:9 +msgid "Percent (relative to parent size)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:10 +msgid "Undefined (relative to non-floating content size)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:12 +msgid "" +"Layout Group is only about to help a better code generation (if you need " +"it). To use this, you must to select some \"Slicer rectangles\" first." +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:14 +msgid "Slicer" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:1 +msgid "Create a slicer rectangle" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:4 +msgid "DPI:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:5 +msgid "Force Dimension:" +msgstr "" + +#. i18n. Description duplicated in a fake value attribute in order to make it translatable +#: ../share/extensions/webslicer_create_rect.inx.h:7 +msgid "Force Dimension must be set as x" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:8 +msgid "If set, this will replace DPI." +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:10 +msgid "JPG specific options" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:11 +msgid "Quality:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:12 +msgid "" +"0 is the lowest image quality and highest compression, and 100 is the best " +"quality but least effective compression" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:13 +msgid "GIF specific options" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:16 +msgid "Palette" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:17 +msgid "Palette size:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:20 +msgid "Options for HTML export" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:21 +msgid "Layout disposition:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:22 +msgid "Positioned html block element with the image as Background" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:23 +msgid "Tiled Background (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:24 +msgid "Background — repeat horizontally (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:25 +msgid "Background — repeat vertically (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:26 +msgid "Background — no repeat (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:27 +msgid "Positioned Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:28 +msgid "Non Positioned Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:29 +msgid "Left Floated Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:30 +msgid "Right Floated Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:31 +msgid "Position anchor:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:32 +msgid "Top and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:33 +msgid "Top and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:34 +msgid "Top and right" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:35 +msgid "Middle and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:36 +msgid "Middle and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:37 +msgid "Middle and Right" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:38 +msgid "Bottom and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:39 +msgid "Bottom and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:40 +msgid "Bottom and Right" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:1 +msgid "Export layout pieces and HTML+CSS code" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:3 +msgid "Directory path to export:" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:4 +msgid "Create directory, if it does not exists" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:5 +msgid "With HTML and CSS" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:7 +msgid "" +"All sliced images, and optionally - code, will be generated as you had " +"configured and saved to one directory." +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:1 +msgid "Transmit Attributes" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:3 +msgid "Attribute to transmit:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:4 +msgid "When to transmit:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:6 +msgid "Source and destination of transmitting:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:21 +msgid "All selected ones transmit to the last one" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:22 +msgid "The first selected transmits to all others" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:25 +msgid "" +"This effect transmits one or more attributes from the first selected element " +"to the second when an event occurs." +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:26 +msgid "" +"If you want to transmit more than one attribute, you should separate this " +"with a space, and only with a space." +msgstr "" + +#: ../share/extensions/whirl.inx.h:1 +msgid "Whirl" +msgstr "" + +#: ../share/extensions/whirl.inx.h:2 +msgid "Amount of whirl:" +msgstr "" + +#: ../share/extensions/whirl.inx.h:3 +msgid "Rotation is clockwise" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:1 +msgid "Wireframe Sphere" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:2 +msgid "Lines of latitude:" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:3 +msgid "Lines of longitude:" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:4 +msgid "Tilt (deg):" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:7 +msgid "Hide lines behind the sphere" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:1 +#: ../share/extensions/wmf_output.inx.h:1 +msgid "Windows Metafile Input" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:3 +#: ../share/extensions/wmf_output.inx.h:3 +msgid "A popular graphics file format for clipart" +msgstr "" + +#: ../share/extensions/xaml2svg.inx.h:1 +msgid "XAML Input" +msgstr "" diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert index b19f417ae..ac7c33e2f 100644 --- a/src/live_effects/Makefile_insert +++ b/src/live_effects/Makefile_insert @@ -93,6 +93,7 @@ ink_common_sources += \ live_effects/lpe-fill-between-many.h \ live_effects/lpe-ellipse_5pts.cpp \ live_effects/lpe-ellipse_5pts.h \ + live_effects/pathoutlineprovider.cpp \ live_effects/lpe-jointype.cpp \ live_effects/lpe-jointype.h \ live_effects/lpe-taperstroke.cpp \ diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 337fe631f..d6840e5b8 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects +//#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects #ifdef HAVE_CONFIG_H # include "config.h" diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 2cdc09376..a862417d7 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -13,11 +13,20 @@ #include "live_effects/lpe-taperstroke.h" -// You might need to include other 2geom files. You can add them here: #include <2geom/path.h> #include <2geom/shape.h> +#include <2geom/path.h> +#include <2geom/circle.h> +#include <2geom/sbasis-to-bezier.h> #include "pathoutlineprovider.h" #include "display/curve.h" +#include "sp-shape.h" +#include "style.h" +#include "xml/repr.h" +#include "sp-paint-server.h" +#include "svg/svg-color.h" +#include "desktop-style.h" +#include "svg/css-ostringstream.h" #include "svg/svg.h" //#include @@ -58,7 +67,7 @@ LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : line_width(_("Stroke width"), _("The (non-tapered) width of the path"), "stroke_width", &wr, this, 3), attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), - smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.2), + smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.5), join_type(_("Join type"), _("Join type for non-smooth nodes"), "jointype", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 30.) { @@ -83,21 +92,93 @@ LPETaperStroke::~LPETaperStroke() } -unsigned curveOrder (const Geom::Curve* curve_in) +//from LPEPowerStroke -- sets fill if stroke color because we will +//be converting to a fill to make the new join. + +void LPETaperStroke::doOnApply(SPLPEItem const* lpeitem) { - using namespace Geom; - //cast it - const CubicBezier *cbc = dynamic_cast(curve_in); - if (cbc) return 3; - const QuadraticBezier * qbc = dynamic_cast(curve_in); - if (qbc) return 2; - const BezierCurveN<1U> * lbc = dynamic_cast *>(curve_in); - if (lbc) return 1; - //BezierCurveN<0> * dbc = dynamic_cast *> (curve_in); - return 0; + if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem* item = const_cast(lpeitem); + double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed : 1.; + + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->stroke.isSet()) { + if (lpeitem->style->stroke.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getStrokePaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "fill", str.c_str()); + } + } else if (lpeitem->style->stroke.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "fill", c); + } else { + sp_repr_css_set_property (css, "fill", "none"); + } + } else { + sp_repr_css_unset_property (css, "fill"); + } + + sp_repr_css_set_property(css, "stroke", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + + line_width.param_set_value(width); + } else { + g_warning("LPE Join Type can only be applied to paths (not groups)."); + } } -Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_tolerance = 0.01) +//from LPEPowerStroke -- sets stroke color from existing fill color + +void LPETaperStroke::doOnRemove(SPLPEItem const* lpeitem) +{ + + if (SP_IS_SHAPE(lpeitem)) { + SPLPEItem *item = const_cast(lpeitem); + + SPCSSAttr *css = sp_repr_css_attr_new (); + if (lpeitem->style->fill.isSet()) { + if (lpeitem->style->fill.isPaintserver()) { + SPPaintServer * server = lpeitem->style->getFillPaintServer(); + if (server) { + Glib::ustring str; + str += "url(#"; + str += server->getId(); + str += ")"; + sp_repr_css_set_property (css, "stroke", str.c_str()); + } + } else if (lpeitem->style->fill.isColor()) { + gchar c[64]; + sp_svg_write_color (c, sizeof(c), lpeitem->style->stroke.value.color.toRGBA32(SP_SCALE24_TO_FLOAT(lpeitem->style->stroke_opacity.value))); + sp_repr_css_set_property (css, "stroke", c); + } else { + sp_repr_css_set_property (css, "stroke", "none"); + } + } else { + sp_repr_css_unset_property (css, "stroke"); + } + + Inkscape::CSSOStringStream os; + os << fabs(line_width); + sp_repr_css_set_property (css, "stroke-width", os.str().c_str()); + + sp_repr_css_set_property(css, "fill", "none"); + + sp_desktop_apply_css_recursive(item, css, true); + sp_repr_css_attr_unref (css); + item->updateRepr(); + } +} + +//actual effect impl here + +Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_tolerance = 0.05) { Geom::Path path_out = Geom::Path(); @@ -108,7 +189,7 @@ Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_toler break; //determine order of curve - int order = curveOrder(&path_in[i]); + int order = Outline::bezierOrder(&path_in[i]); Geom::Point start_point; Geom::Point cross_point = path_in[i].finalPoint(); @@ -131,7 +212,7 @@ Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_toler start_point = path_in[i].initialPoint(); } - order = curveOrder(&path_in[i+1]); + order = Outline::bezierOrder(&path_in[i+1]); switch (order) { @@ -155,7 +236,7 @@ Geom::Curve * subdivide_at(const Geom::Curve* curve_in, Geom::Coord time, bool f { //the only reason for this function is the lack of a subdivide function in the Curve class. //you have to cast to Beziers to be able to use subdivide(t) - unsigned order = curveOrder(curve_in); + unsigned order = Outline::bezierOrder(curve_in); Geom::Curve* curve_out = curve_in->duplicate(); switch (order) { @@ -211,22 +292,25 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) if (attach_end <= 0) { attach_end.param_set_value( 0.0001 ); } + + //don't let it be integer + if (double(unsigned(attach_start)) == attach_start) { + attach_start.param_set_value(attach_start - 0.0001); + } + if (double(unsigned(attach_end)) == attach_end) { + attach_end.param_set_value(attach_end - 0.0001); + } - /*if (size != return_at_first_cusp(path_in[0]).size()) { //will get to this in a bit - //check to see if either knot was dragged past their allowed amount - volatile unsigned size_p_start = (unsigned)attach_start; - volatile unsigned size_p_end = (unsigned)attach_end; - - //maximum allowed value in either direction is return_at_first_cusp(path_in[0]).size - volatile unsigned allowed_p_start = return_at_first_cusp(path_in[0]).size(); - volatile unsigned allowed_p_end = return_at_first_cusp(path_in[0].reverse()).size(); - - if (size_p_start > allowed_p_start) { - attach_start.param_set_value(allowed_p_start - 0.0001); - } else if (size_p_end > allowed_p_end) { - attach_end.param_set_value(allowed_p_end - 0.0001); - } - }*/ + unsigned allowed_start = return_at_first_cusp(path_in[0]).size(); + + unsigned allowed_end = return_at_first_cusp(path_in[0].reverse()).size(); + + if ((unsigned)attach_start >= allowed_start) { + attach_start.param_set_value((double)allowed_start - 0.0001); + } + if ((unsigned)attach_end >= allowed_end) { + attach_end.param_set_value((double)allowed_end - 0.0001); + } //Path::operator () means get point at time t start_attach_point = return_at_first_cusp(path_in[0])(attach_start); @@ -242,8 +326,8 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) Geom::PathVector real_pathv; //Construct the pattern (pat_str stands for pattern string) - char* pat_str = new char[200]; - sprintf(pat_str, "M 1,0 1,1 C %5.5f,1 0,0.5 0,0.5 0,0.5 %5.5f,0 1,0 Z", (double)smoothing, (double)smoothing); + char pat_str[200]; + sprintf(pat_str, "M 1,0 1,1 C %5.5f,1 0,0.5 0,0.5 0,0.5 %5.5f,0 1,0 Z", 1 - (double)smoothing, 1 - (double)smoothing); Geom::PathVector pat_vec = sp_svg_read_pathv(pat_str); Geom::Piecewise > pwd2; @@ -253,12 +337,13 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) Geom::PathVector sht_path; sht_path.push_back(pathv_out[1]); - sht_path = Outline::outlinePath_extr(sht_path, line_width, LINEJOIN_STRAIGHT, butt_straight, miter_limit); + sht_path = Outline::PathVectorOutline(sht_path, line_width, butt_straight, static_cast(join_type.get_value()) , miter_limit); real_pathv.push_back(sht_path[0]); - sprintf(pat_str, "M 0,0 0,1 C %5.5f,1 1,0.5 1,0.5 1,0.5 %5.5f,0 0,0 Z", (double)smoothing, (double)smoothing); - pat_vec = sp_svg_read_pathv(pat_str); + char pat_str_1[200]; + sprintf(pat_str_1, "M 0,0 0,1 C %5.5f,1 1,0.5 1,0.5 1,0.5 %5.5f,0 0,0 Z", (double)smoothing, (double)smoothing); + pat_vec = sp_svg_read_pathv(pat_str_1); pwd2 = Geom::Piecewise > (); pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], line_width)); @@ -298,7 +383,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa trimmed_start.append(path_in[0] [i]); } - #define OVERLAP 0.001 + #define OVERLAP (0.001 / (line_width < 1 ? 1 : line_width)) trimmed_start.append(*subdivide_at(curve_start, (attach_start - loc) + OVERLAP, true)); curve_start = subdivide_at(curve_start, attach_start - loc, false); @@ -451,6 +536,7 @@ Geom::Piecewise > stretch_along(Geom::Piecewise +#include <2geom/path.h> +#include <2geom/circle.h> +#include <2geom/sbasis-to-bezier.h> +#include <2geom/shape.h> +#include <2geom/transforms.h> +#include <2geom/path-sink.h> + +namespace Geom +{ + /** + * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." + From MathWorld--A Wolfram Web Resource. + http://mathworld.wolfram.com/Circle-CircleIntersection.html + * + * @return 0 if no intersection + * @return 1 if one circle is contained in the other + * @return 2 if intersections are found (they are written to p0 and p1) + */ + static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, + Point & p0, Point & p1) + { + Point X0 = circle0.center(); + double r0 = circle0.ray(); + Point X1 = circle1.center(); + double r1 = circle1.ray(); + + /* dx and dy are the vertical and horizontal distances between + * the circle centers. + */ + Point D = X1 - X0; + + /* Determine the straight-line distance between the centers. */ + double d = L2(D); + + /* Check for solvability. */ + if (d > (r0 + r1)) + { + /* no solution. circles do not intersect. */ + return 0; + } + if (d <= fabs(r0 - r1)) + { + /* no solution. one circle is contained in the other */ + return 1; + } + + /* 'point 2' is the point where the line through the circle + * intersection points crosses the line between the circle + * centers. + */ + + /* Determine the distance from point 0 to point 2. */ + double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; + + /* Determine the coordinates of point 2. */ + Point p2 = X0 + D * (a/d); + + /* Determine the distance from point 2 to either of the + * intersection points. + */ + double h = std::sqrt((r0*r0) - (a*a)); + + /* Now determine the offsets of the intersection points from + * point 2. + */ + Point r = (h/d)*rot90(D); + + /* Determine the absolute intersection points. */ + p0 = p2 + r; + p1 = p2 - r; + + return 2; + } + /** + * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. + * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). + */ + static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) + { + D2 dM=derivative(curve); + if ( are_near(L2sq(dM(t)),0.) ) { + dM=derivative(dM); + } + if ( are_near(L2sq(dM(t)),0.) ) { // try second time + dM=derivative(dM); + } + Piecewise > unitv = unitVector(dM,tol); + Piecewise dMlength = dot(Piecewise >(dM),unitv); + Piecewise k = cross(derivative(unitv),unitv); + k = divide(k,dMlength,tol,3); + double curv = k(t); // note that this value is signed + + Geom::Point normal = unitTangentAt(curve, t).cw(); + double radius = 1/curv; + Geom::Point center = curve(t) + radius*normal; + return Geom::Circle(center, fabs(radius)); + } + + static std::vector split_at_cusps(const Geom::Path& in) + { + Geom::PathVector out = Geom::PathVector(); + Geom::Path temp = Geom::Path(); + + for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) + { + temp = Geom::Path(); + temp.append(in[path_descr]); + out.push_back(temp); + } + + return out; + } + + static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) + { + std::vector temp; + sbasis_to_bezier(temp, sbasis_in, 4); + return Geom::CubicBezier( temp ); + } + + static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, + Geom::Point const & origin_b, Geom::Point const & vector_b) + { + Geom::Coord denom = cross(vector_b, vector_a); + if (!Geom::are_near(denom,0.)){ + Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; + return origin_a + t * vector_a; + } + return boost::none; + } +} + +namespace Outline +{ + +typedef Geom::D2 D2SB; +typedef Geom::Piecewise PWD2; + +unsigned bezierOrder (const Geom::Curve* curve_in) +{ + using namespace Geom; + //cast it + const CubicBezier *cbc = dynamic_cast(curve_in); + if (cbc) return 3; + const QuadraticBezier * qbc = dynamic_cast(curve_in); + if (qbc) return 2; + const BezierCurveN<1U> * lbc = dynamic_cast *>(curve_in); + if (lbc) return 1; + return 0; +} + +//returns true if the angle formed by the curves and their handles +//is >180 clockwise, otherwise false. +bool outside_angle (const Geom::Curve* cbc1, const Geom::Curve* cbc2) +{ + Geom::Point start_point = cbc1->initialPoint(); + Geom::Point end_point = cbc2->finalPoint(); + unsigned order = bezierOrder(cbc1); + switch (order) + { + case 3: + start_point = ( dynamic_cast(cbc1) )->operator [] (2); + break; + case 2: + start_point = ( dynamic_cast(cbc1) )->operator [] (1); + break; + } + order = bezierOrder(cbc2); + switch (order) + { + case 3: + end_point = ( dynamic_cast(cbc2) )->operator [] (1); + break; + case 2: + end_point = ( dynamic_cast(cbc2) )->operator[] (1); + break; + } + return false; +} + +void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve*cbc2, Geom::Point endPt, double miter_limit) +{ + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + Geom::Path pth; + pth.append(*cbc1); + + //Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + + Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); + Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); + + Geom::Point points[2]; + int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); + if (solutions == 2) + { + Geom::Point sol(0,0); + if ( dot(tang2,points[0]-endPt) > 0 ) + { + // points[0] is bad, choose points[1] + sol = points[1]; + } + else if ( dot(tang2,points[1]-endPt) > 0 ) { // points[0] could be good, now check points[1] + // points[1] is bad, choose points[0] + sol = points[0]; + } + else + { + // both points are good, choose nearest + sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? + points[0] : points[1]; + } + Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); + Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); + + if (arc0) + { + path_builder.append (arc0->toSBasis()); + delete arc0; + arc0 = NULL; + } + + if (arc1) + { + path_builder.append (arc1->toSBasis()); + delete arc1; + arc1 = NULL; + } + } + else + { + path_builder.appendNew (endPt); + } + } + else + { + path_builder.appendNew (endPt); + } +} + Geom::Path half_outline_extrp(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + + Geom::Point initialPoint; + Geom::Point endPoint; + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + //Create a reflected outline join. + //Note: it is generally recommended to let half_outline do this for you! + //path_builder: the path to append the curves to + //cbc1: the curve before the join + //cbc2: the curve after the join + //endPt: the point to end at + //miter_limit: the miter parameter + void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit) + { + //the most important work for the reflected join is done here + + //determine where we are in the path. If we're on the inside, ignore + //and just lineTo. On the outside, we'll do a little reflection magic :) + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (cross.empty()) + { + //probably on the outside of the corner + Geom::Path pth; + pth.append(*cbc1); + + Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); + + //reflect curves along the bevel + D2SB newcurve1 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang1) , + cbc1->finalPoint() ); + + Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); + + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + D2SB newcurve2 = pth.toPwSb()[0] * + Geom::reflection ( -Geom::rot90(tang2) , + cbc2->initialPoint() ); + Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); + + cross = Geom::crossings(bzr1, bzr2); + if ( cross.empty() ) + { + //std::cout << "Oops, no crossings!" << std::endl; + //curves didn't cross; default to miter + /*boost::optional p = intersection_point (cbc1->finalPoint(), tang1, + cbc2->initialPoint(), tang2); + if (p) + { + path_builder.appendNew (*p); + }*/ + //bevel + path_builder.appendNew( endPt ); + } + else + { + //join + std::pair sub1 = bzr1.subdivide(cross[0].ta); + std::pair sub2 = bzr2.subdivide(cross[0].tb); + + //@TODO joins have a strange tendency to cross themselves twice. Check this. + + //sections commented out are for general stability + path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); + path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); + } + } + else // cross.empty() + { + //probably on the inside of the corner + path_builder.appendNew ( endPt ); + } + } + + /** @brief Converts a path to one half of an outline. + * path_in: The input path to use. (To create the other side use path_in.reverse() ) + * line_width: the line width to use (usually you want to divide this by 2) + * linecap_type: (not used here) the cap to apply. Passed to libvarot. + * miter_limit: the miter parameter + */ + Geom::Path half_outline(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) + { + Geom::PathVector pv = split_at_cusps(path_in); + unsigned m; + Path path_outline = Path(); + Path path_tangent = Path(); + //needed for closing the path + Geom::Point initialPoint; + Geom::Point endPoint; + + //some issues prevented me from using a PathBuilder here + //it seems like PathBuilder::peek() gave me a null reference exception + //and I was unable to get a stack trace on Windows, so had to switch to Linux + //to see what the hell was wrong. :( + //I wasted five hours opening it in IDAPro, VS2012, and GDB Windows + + /*Program received signal SIGSEGV, Segmentation fault. + 0x00000000006539ac in get_curves (this=0x0) + at /usr/include/c++/4.6/bits/locale_facets.h:1077 + 1077 { return __c; } + */ + + Geom::Path path_builder = Geom::Path(); + Geom::PathVector * pathvec; + + //load the first portion in before the loop starts + { + path_outline = Path(); + path_outline.LoadPath(pv[0], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + //now half of first cusp has been loaded + + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + //instead of array accessing twice, dereferencing used for clarity + initialPoint = (*pathvec)[0].initialPoint(); + + path_builder.start(initialPoint); + path_builder.append( (*pathvec)[0] ); + + path_outline = Path(); + path_outline.LoadPath(pv[1], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + path_tangent = Path(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + + path_builder.append( (*pathvec)[0] ); + + //always set pointers null after deleting + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + for (m = 2; m < pv.size(); m++) + { + path_outline = Path(); + path_outline.LoadPath(pv[m], Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); + + delete pathvec; pathvec = NULL; + pathvec = path_tangent.MakePathVector(); + + Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); + Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); + + reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); + path_builder.append( (*pathvec)[0] ); + + delete pathvec; pathvec = NULL; + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + + return path_builder; + } + + Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim) + { + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + Geom::PathVector path_out; + for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) + { + if (path_in[lmnop].size() > 1) + { + Geom::Path p_init; + Geom::Path p_rev; + Geom::PathBuilder pb = Geom::PathBuilder(); + + if ( !path_in[lmnop].closed() ) + { + p_init = Outline::half_outline_extrp( path_in[lmnop], -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( path_in[lmnop].reverse(), -line_width, butt, + miter_lim ); + + pb.moveTo(p_init.initialPoint() ); + pb.append(p_init); + + //cap + if (butt == butt_straight) { + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + pb.lineTo(p_rev.initialPoint() ); + } + + pb.append(p_rev); + + if (butt == butt_straight) { + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_round) { + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); + } else if (butt == butt_square) { + //don't know what to do + pb.lineTo(p_init.initialPoint() ); + } else if (butt == butt_pointy) { + //don't know what to do + //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); + //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); + + pb.lineTo(p_init.initialPoint() ); + } + } + else + { + //final join + //refer to half_outline for documentation + Geom::Path p_almost = path_in[lmnop]; + p_almost.appendNew ( path_in[lmnop].initialPoint() ); + p_init = Outline::half_outline_extrp( p_almost, -line_width, butt, + miter_lim ); + p_rev = Outline::half_outline_extrp( p_almost.reverse(), -line_width, butt, + miter_lim ); + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + + //this is a kludge, because I can't find how to make this work properly + bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), + path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == + (path_in[lmnop] [path_in[lmnop].size()].length())); + + p_almost = p_init; + if (lastIsLinear) + { + p_almost.erase_last(); p_almost.erase_last(); + } + + //outside test + Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); + Geom::Curve* cbc2 = p_almost[0].duplicate(); + + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //this is the outside path + + //reuse the old one + p_init = p_almost; + Outline::extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside, carry on :-) + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + + p_almost = p_rev; + if (lastIsLinear) + { + p_almost.erase(p_almost.begin() ); + p_almost.erase(p_almost.begin() ); + } + + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + + cbc1 = p_almost[p_almost.size() - 1].duplicate(); + cbc2 = p_almost[0].duplicate(); + + cross = Geom::crossings(*cbc1, *cbc2); + + if (cross.empty()) + { + //outside path + + p_init = p_almost; + extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); + pb.moveTo(p_init.initialPoint()); pb.append(p_init); + } + else + { + //inside + pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); + } + delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; + } + //pb.closePath(); + pb.flush(); + Geom::PathVector pv_np = pb.peek(); + //hack + for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) + { + path_out.push_back( pv_np[abcd] ); + } + } + else + { + p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); + p.Outline(&outlinepath, line_width / 2, join_pointy, butt, miter_lim); + std::vector *pv_p = outlinepath.MakePathVector(); + //hack + path_out.push_back( (*pv_p)[0].reverse() ); + delete pv_p; + } + } + return path_out; + } + +Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line_width, ButtType linecap_type, + join_typ linejoin_type, double miter_limit) +{ + std::vector path_out = std::vector(); + if (path_in.empty()) + { + return path_out; + } + Path p = Path(); + Path outlinepath = Path(); + for (unsigned i = 0; i < path_in.size(); i++) + { + p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); + } + + #define miter_lim fabs(line_width * miter_limit) + + //magic! + if (linejoin_type <= 2) + { + p.Outline(&outlinepath, line_width / 2, linejoin_type, + linecap_type, miter_lim); + //fix memory leak + std::vector *pv_p = outlinepath.MakePathVector(); + path_out = *pv_p; + delete pv_p; + + } else if (linejoin_type == 3) { + //reflected arc join + path_out = outlinePath(path_in, line_width, linejoin_type, + linecap_type , miter_lim); + + } else if (linejoin_type == 4) { + //extrapolated arc join + path_out = outlinePath_extr(path_in, line_width, LINEJOIN_STRAIGHT, linecap_type, miter_lim); + + } + + #undef miter_lim + return path_out; +} + +} // namespace Outline + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h old mode 100755 new mode 100644 index 8aa2e38ad..1a363c35b --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -1,766 +1,25 @@ -#pragma once - -#include <2geom/path.h> -#include <2geom/circle.h> -#include <2geom/sbasis-to-bezier.h> -#include <2geom/shape.h> -#include <2geom/transforms.h> -#include <2geom/path-sink.h> - -#include -#include - -enum LineJoinType { - LINEJOIN_STRAIGHT, - LINEJOIN_ROUND, - LINEJOIN_POINTY, - LINEJOIN_REFLECTED, - LINEJOIN_EXTRAPOLATED -}; - -namespace Geom -{ - /** - * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." - From MathWorld--A Wolfram Web Resource. - http://mathworld.wolfram.com/Circle-CircleIntersection.html - * - * @return 0 if no intersection - * @return 1 if one circle is contained in the other - * @return 2 if intersections are found (they are written to p0 and p1) - */ - static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, - Point & p0, Point & p1) - { - Point X0 = circle0.center(); - double r0 = circle0.ray(); - Point X1 = circle1.center(); - double r1 = circle1.ray(); - - /* dx and dy are the vertical and horizontal distances between - * the circle centers. - */ - Point D = X1 - X0; - - /* Determine the straight-line distance between the centers. */ - double d = L2(D); - - /* Check for solvability. */ - if (d > (r0 + r1)) - { - /* no solution. circles do not intersect. */ - return 0; - } - if (d <= fabs(r0 - r1)) - { - /* no solution. one circle is contained in the other */ - return 1; - } - - /* 'point 2' is the point where the line through the circle - * intersection points crosses the line between the circle - * centers. - */ - - /* Determine the distance from point 0 to point 2. */ - double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; - - /* Determine the coordinates of point 2. */ - Point p2 = X0 + D * (a/d); - - /* Determine the distance from point 2 to either of the - * intersection points. - */ - double h = std::sqrt((r0*r0) - (a*a)); - - /* Now determine the offsets of the intersection points from - * point 2. - */ - Point r = (h/d)*rot90(D); - - /* Determine the absolute intersection points. */ - p0 = p2 + r; - p1 = p2 - r; - - return 2; - } - /** - * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. - * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). - */ - static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) - { - D2 dM=derivative(curve); - if ( are_near(L2sq(dM(t)),0.) ) { - dM=derivative(dM); - } - if ( are_near(L2sq(dM(t)),0.) ) { // try second time - dM=derivative(dM); - } - Piecewise > unitv = unitVector(dM,tol); - Piecewise dMlength = dot(Piecewise >(dM),unitv); - Piecewise k = cross(derivative(unitv),unitv); - k = divide(k,dMlength,tol,3); - double curv = k(t); // note that this value is signed - - Geom::Point normal = unitTangentAt(curve, t).cw(); - double radius = 1/curv; - Geom::Point center = curve(t) + radius*normal; - return Geom::Circle(center, fabs(radius)); - } - - static std::vector split_at_cusps(const Geom::Path& in) - { - Geom::PathVector out = Geom::PathVector(); - Geom::Path temp = Geom::Path(); - - for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) - { - temp = Geom::Path(); - temp.append(in[path_descr]); - out.push_back(temp); - } - - return out; - } - - static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) - { - std::vector temp; - sbasis_to_bezier(temp, sbasis_in, 4); - return Geom::CubicBezier( temp ); - } - - static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, - Geom::Point const & origin_b, Geom::Point const & vector_b) - { - Geom::Coord denom = cross(vector_b, vector_a); - if (!Geom::are_near(denom,0.)){ - Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; - return origin_a + t * vector_a; - } - return boost::none; - } -} - -namespace Outline -{ - - typedef Geom::D2 D2SB; - typedef Geom::Piecewise PWD2; - - static void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve*cbc2, Geom::Point endPt, double miter_limit) -{ - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - if (cross.empty()) - { - Geom::Path pth; - pth.append(*cbc1); - - Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); - - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - - Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); - Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); - - Geom::Point points[2]; - int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); - if (solutions == 2) - { - Geom::Point sol(0,0); - if ( dot(tang2,points[0]-endPt) > 0 ) - { - // points[0] is bad, choose points[1] - sol = points[1]; - } - else if ( dot(tang2,points[1]-endPt) > 0 ) { // points[0] could be good, now check points[1] - // points[1] is bad, choose points[0] - sol = points[0]; - } - else - { - // both points are good, choose nearest - sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? - points[0] : points[1]; - } - Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); - Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); - - if (arc0) - { - path_builder.append (arc0->toSBasis()); - delete arc0; - arc0 = NULL; - } - - if (arc1) - { - path_builder.append (arc1->toSBasis()); - delete arc1; - arc1 = NULL; - } - } - else - { - path_builder.appendNew (endPt); - } - } - else - { - path_builder.appendNew (endPt); - } -} - static Geom::Path half_outline_extrp(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) - { - Geom::PathVector pv = split_at_cusps(path_in); - unsigned m; - Path path_outline = Path(); - Path path_tangent = Path(); - - Geom::Point initialPoint; - Geom::Point endPoint; - - Geom::Path path_builder = Geom::Path(); - Geom::PathVector * pathvec; - - //load the first portion in before the loop starts - { - path_outline = Path(); - path_outline.LoadPath(pv[0], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - //now half of first cusp has been loaded - - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - //instead of array accessing twice, dereferencing used for clarity - initialPoint = (*pathvec)[0].initialPoint(); - - path_builder.start(initialPoint); - path_builder.append( (*pathvec)[0] ); - - path_outline = Path(); - path_outline.LoadPath(pv[1], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - - path_builder.append( (*pathvec)[0] ); - - //always set pointers null after deleting - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - for (m = 2; m < pv.size(); m++) - { - path_outline = Path(); - path_outline.LoadPath(pv[m], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - extrapolate_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - path_builder.append( (*pathvec)[0] ); - - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - return path_builder; - } - - //Create a reflected outline join. - //Note: it is generally recommended to let half_outline do this for you! - //path_builder: the path to append the curves to - //cbc1: the curve before the join - //cbc2: the curve after the join - //endPt: the point to end at - //miter_limit: the miter parameter - static void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit) - { - //the most important work for the reflected join is done here - - //determine where we are in the path. If we're on the inside, ignore - //and just lineTo. On the outside, we'll do a little reflection magic :) - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - if (cross.empty()) - { - //probably on the outside of the corner - Geom::Path pth; - pth.append(*cbc1); - - Geom::Point tang1 = Geom::unitTangentAt(pth.toPwSb()[0], 1); - - //reflect curves along the bevel - D2SB newcurve1 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang1) , - cbc1->finalPoint() ); - - Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); - - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - D2SB newcurve2 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang2) , - cbc2->initialPoint() ); - Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); - - cross = Geom::crossings(bzr1, bzr2); - if ( cross.empty() ) - { - //std::cout << "Oops, no crossings!" << std::endl; - //curves didn't cross; default to miter - /*boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) - { - path_builder.appendNew (*p); - }*/ - //bevel - path_builder.appendNew( endPt ); - } - else - { - //join - std::pair sub1 = bzr1.subdivide(cross[0].ta); - std::pair sub2 = bzr2.subdivide(cross[0].tb); - - //@TODO joins have a strange tendency to cross themselves twice. Check this. - - //sections commented out are for general stability - path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); - path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); - } - } - else // cross.empty() - { - //probably on the inside of the corner - path_builder.appendNew ( endPt ); - } - } - - /** @brief Converts a path to one half of an outline. - * path_in: The input path to use. (To create the other side use path_in.reverse() ) - * line_width: the line width to use (usually you want to divide this by 2) - * linecap_type: (not used here) the cap to apply. Passed to libvarot. - * miter_limit: the miter parameter - */ - static Geom::Path half_outline(const Geom::Path& path_in, double line_width, ButtType linecap_type, double miter_limit) - { - Geom::PathVector pv = split_at_cusps(path_in); - unsigned m; - Path path_outline = Path(); - Path path_tangent = Path(); - //needed for closing the path - Geom::Point initialPoint; - Geom::Point endPoint; - - //some issues prevented me from using a PathBuilder here - //it seems like PathBuilder::peek() gave me a null reference exception - //and I was unable to get a stack trace on Windows, so had to switch to Linux - //to see what the hell was wrong. :( - //I wasted five hours opening it in IDAPro, VS2012, and GDB Windows - - /*Program received signal SIGSEGV, Segmentation fault. - 0x00000000006539ac in get_curves (this=0x0) - at /usr/include/c++/4.6/bits/locale_facets.h:1077 - 1077 { return __c; } - */ - - Geom::Path path_builder = Geom::Path(); - Geom::PathVector * pathvec; - - //load the first portion in before the loop starts - { - path_outline = Path(); - path_outline.LoadPath(pv[0], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - //now half of first cusp has been loaded - - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - //instead of array accessing twice, dereferencing used for clarity - initialPoint = (*pathvec)[0].initialPoint(); - - path_builder.start(initialPoint); - path_builder.append( (*pathvec)[0] ); - - path_outline = Path(); - path_outline.LoadPath(pv[1], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - path_tangent = Path(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - - path_builder.append( (*pathvec)[0] ); - - //always set pointers null after deleting - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - for (m = 2; m < pv.size(); m++) - { - path_outline = Path(); - path_outline.LoadPath(pv[m], Geom::Affine(), false, false); - path_outline.OutsideOutline(&path_tangent, line_width / 2, join_straight, linecap_type, 10); - - delete pathvec; pathvec = NULL; - pathvec = path_tangent.MakePathVector(); - - Geom::Curve *cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve *cbc2 = (*pathvec)[0][0].duplicate(); - - reflect_curves(path_builder, cbc1, cbc2, (*pathvec)[0].initialPoint(), miter_limit ); - path_builder.append( (*pathvec)[0] ); - - delete pathvec; pathvec = NULL; - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - - return path_builder; - } - - static Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim) - { - Path p = Path(); - Path outlinepath = Path(); - for (unsigned i = 0; i < path_in.size(); i++) - { - p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); - } - - Geom::PathVector path_out; - for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) - { - if (path_in[lmnop].size() > 1) - { - Geom::Path p_init; - Geom::Path p_rev; - Geom::PathBuilder pb = Geom::PathBuilder(); - - if ( !path_in[lmnop].closed() ) - { - p_init = Outline::half_outline( path_in[lmnop], -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline( path_in[lmnop].reverse(), -line_width, butt, - miter_lim ); - - pb.moveTo(p_init.initialPoint() ); - pb.append(p_init); - - //cap - if (butt == butt_straight) { - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } - - pb.append(p_rev); - - if (butt == butt_straight) { - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); - //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); - - pb.lineTo(p_init.initialPoint() ); - } - } - else - { - //final join - //refer to half_outline for documentation - Geom::Path p_almost = path_in[lmnop]; - p_almost.appendNew ( path_in[lmnop].initialPoint() ); - p_init = Outline::half_outline( p_almost, -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline( p_almost.reverse(), -line_width, butt, - miter_lim ); - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - - //this is a kludge, because I can't find how to make this work properly - bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), - path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == - (path_in[lmnop] [path_in[lmnop].size()].length())); - - p_almost = p_init; - if (lastIsLinear) - { - p_almost.erase_last(); p_almost.erase_last(); - } - - //outside test - Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); - Geom::Curve* cbc2 = p_almost[0].duplicate(); - - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //this is the outside path - - //reuse the old one - p_init = p_almost; - Outline::reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside, carry on :-) - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - - p_almost = p_rev; - if (lastIsLinear) - { - p_almost.erase(p_almost.begin() ); - p_almost.erase(p_almost.begin() ); - } - - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - - cbc1 = p_almost[p_almost.size() - 1].duplicate(); - cbc2 = p_almost[0].duplicate(); - - cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //outside path - - p_init = p_almost; - reflect_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - //pb.closePath(); - pb.flush(); - Geom::PathVector pv_np = pb.peek(); - //hack - for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) - { - path_out.push_back( pv_np[abcd] ); - } - } - else - { - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - p.Outline(&outlinepath, line_width / 2, join, butt, miter_lim); - std::vector *pv_p = outlinepath.MakePathVector(); - //hack - path_out.push_back( (*pv_p)[0].reverse() ); - delete pv_p; - } - } - return path_out; - } - static Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim) - { - Path p = Path(); - Path outlinepath = Path(); - for (unsigned i = 0; i < path_in.size(); i++) - { - p.LoadPath(path_in[i], Geom::Affine(), false, ( (i==0) ? false : true)); - } - - Geom::PathVector path_out; - for (unsigned lmnop = 0; lmnop < path_in.size(); lmnop++) - { - if (path_in[lmnop].size() > 1) - { - Geom::Path p_init; - Geom::Path p_rev; - Geom::PathBuilder pb = Geom::PathBuilder(); - - if ( !path_in[lmnop].closed() ) - { - p_init = Outline::half_outline_extrp( path_in[lmnop], -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline_extrp( path_in[lmnop].reverse(), -line_width, butt, - miter_lim ); - - pb.moveTo(p_init.initialPoint() ); - pb.append(p_init); - - //cap - if (butt == butt_straight) { - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_rev.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - pb.lineTo(p_rev.initialPoint() ); - } - - pb.append(p_rev); - - if (butt == butt_straight) { - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_round) { - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, p_init.initialPoint() ); - } else if (butt == butt_square) { - //don't know what to do - pb.lineTo(p_init.initialPoint() ); - } else if (butt == butt_pointy) { - //don't know what to do - //Geom::Point end_deriv = Geom::unitTangentAt( Geom::reverse(path_in[lmnop].toPwSb()[path_in[lmnop].size()]), 0); - //double radius = 0.5 * Geom::distance(path_in[lmnop].finalPoint(), p_rev.initialPoint()); - - pb.lineTo(p_init.initialPoint() ); - } - } - else - { - //final join - //refer to half_outline for documentation - Geom::Path p_almost = path_in[lmnop]; - p_almost.appendNew ( path_in[lmnop].initialPoint() ); - p_init = Outline::half_outline_extrp( p_almost, -line_width, butt, - miter_lim ); - p_rev = Outline::half_outline_extrp( p_almost.reverse(), -line_width, butt, - miter_lim ); - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - - //this is a kludge, because I can't find how to make this work properly - bool lastIsLinear = ( (Geom::distance(path_in[lmnop].finalPoint(), - path_in[lmnop] [path_in[lmnop].size() - 1].finalPoint())) == - (path_in[lmnop] [path_in[lmnop].size()].length())); - - p_almost = p_init; - if (lastIsLinear) - { - p_almost.erase_last(); p_almost.erase_last(); - } - - //outside test - Geom::Curve* cbc1 = p_almost[p_almost.size() - 1].duplicate(); - Geom::Curve* cbc2 = p_almost[0].duplicate(); - - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //this is the outside path - - //reuse the old one - p_init = p_almost; - Outline::extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside, carry on :-) - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - - p_almost = p_rev; - if (lastIsLinear) - { - p_almost.erase(p_almost.begin() ); - p_almost.erase(p_almost.begin() ); - } - - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - - cbc1 = p_almost[p_almost.size() - 1].duplicate(); - cbc2 = p_almost[0].duplicate(); - - cross = Geom::crossings(*cbc1, *cbc2); - - if (cross.empty()) - { - //outside path - - p_init = p_almost; - extrapolate_curves(p_init, cbc1, cbc2, p_almost.initialPoint(), miter_lim ); - pb.moveTo(p_init.initialPoint()); pb.append(p_init); - } - else - { - //inside - pb.moveTo(p_almost.initialPoint()); pb.append(p_almost); - } - delete cbc1; delete cbc2; cbc1 = cbc2 = NULL; - } - //pb.closePath(); - pb.flush(); - Geom::PathVector pv_np = pb.peek(); - //hack - for (unsigned abcd = 0; abcd < pv_np.size(); abcd++) - { - path_out.push_back( pv_np[abcd] ); - } - } - else - { - p.LoadPath(path_in[lmnop], Geom::Affine(), false, false); - p.Outline(&outlinepath, line_width / 2, join_pointy, butt, miter_lim); - std::vector *pv_p = outlinepath.MakePathVector(); - //hack - path_out.push_back( (*pv_p)[0].reverse() ); - delete pv_p; - } - } - return path_out; - } - - -} // namespace Outline - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : +#ifndef _SEEN_PATH_OUTLINE_H +#define _SEEN_PATH_OUTLINE_H + +#include +#include + +enum LineJoinType { + LINEJOIN_STRAIGHT, + LINEJOIN_ROUND, + LINEJOIN_POINTY, + LINEJOIN_REFLECTED, + LINEJOIN_EXTRAPOLATED +}; + +namespace Outline +{ + unsigned bezierOrder (const Geom::Curve* curve_in); + std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtType linecap_type, + join_typ linejoin_type, double miter_limit); + + Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim); + Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim); +} + +#endif // _SEEN_PATH_OUTLINE_H diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 338233042..85583a0e7 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -1887,8 +1887,9 @@ ObjectsPanel::ObjectsPanel() : btn = Gtk::manage( new Gtk::Button() ); btn->set_tooltip_text(_("Collapse All")); #if GTK_CHECK_VERSION(3,10,0) - btn->set_from_icon_name(INKSCAPE_ICON("gtk-unindent-ltr"), Gtk::ICON_SIZE_SMALL_TOOLBAR); + btn->set_image_from_icon_name(INKSCAPE_ICON("gtk-unindent-ltr"), Gtk::ICON_SIZE_SMALL_TOOLBAR); #else + image_remove = Gtk::manage(new Gtk::Image()); image_remove->set_from_icon_name(INKSCAPE_ICON("gtk-unindent-ltr"), Gtk::ICON_SIZE_SMALL_TOOLBAR); btn->set_image(*image_remove); #endif -- cgit v1.2.3 From 7d6a2eac770b159a51183add6917eaec36729d80 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 23 Mar 2014 17:25:49 -0400 Subject: tiny bugfix for Taper Strokes (bzr r13090.1.30) --- src/live_effects/lpe-taperstroke.cpp | 54 ++++++++++++++++++++------------ src/live_effects/pathoutlineprovider.cpp | 33 +++++++++++++++++++ src/live_effects/pathoutlineprovider.h | 1 + 3 files changed, 68 insertions(+), 20 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index a862417d7..0e709f3ac 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -324,40 +324,54 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) if (true) { Geom::PathVector real_pathv; + Geom::Path real_path; //Construct the pattern (pat_str stands for pattern string) - char pat_str[200]; - sprintf(pat_str, "M 1,0 1,1 C %5.5f,1 0,0.5 0,0.5 0,0.5 %5.5f,0 1,0 Z", 1 - (double)smoothing, 1 - (double)smoothing); - Geom::PathVector pat_vec = sp_svg_read_pathv(pat_str); + std::stringstream pat_str; + pat_str << "M 1,0 1,1 C " << 1 - (double)smoothing << ",1 0,0.5 0,0.5 0,0.5 " << 1 - double(smoothing) << ",0 1,0"; + + Geom::PathVector pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); Geom::Piecewise > pwd2; pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], line_width)); - real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0]); + Geom::Path throwaway_path = path_from_piecewise(pwd2, 0.001)[0].reverse(); + throwaway_path.erase_last(); - Geom::PathVector sht_path; - sht_path.push_back(pathv_out[1]); - sht_path = Outline::PathVectorOutline(sht_path, line_width, butt_straight, static_cast(join_type.get_value()) , miter_limit); + real_path.append(throwaway_path); //wtf - real_pathv.push_back(sht_path[0]); + throwaway_path = Outline::PathOutsideOutline(pathv_out[1], + line_width, static_cast(join_type.get_value()), miter_limit); + + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); - char pat_str_1[200]; - sprintf(pat_str_1, "M 0,0 0,1 C %5.5f,1 1,0.5 1,0.5 1,0.5 %5.5f,0 0,0 Z", (double)smoothing, (double)smoothing); - pat_vec = sp_svg_read_pathv(pat_str_1); + std::stringstream pat_str_1; + pat_str_1 << "M 0,0 0,1 C " << (double)smoothing << ",1 1,0.5 1,0.5 1,0.5 " << double(smoothing) << ",0 0,0"; + pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); pwd2 = Geom::Piecewise > (); pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], line_width)); - real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0].reverse()); - //clever union - //Geom::Shape shape1 = Geom::sanitize(Geom::PathVector(1, real_pathv[0])); - //Geom::Shape shape2 = Geom::sanitize(Geom::PathVector(1, real_pathv[1])); - //Geom::Shape shape3 = Geom::boolop(shape1, shape2, Geom::BOOLOP_UNION); + throwaway_path = Geom::Path(); + throwaway_path = path_from_piecewise(pwd2, 0.001)[0]; + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); + + throwaway_path = Geom::Path(); + throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), + line_width, static_cast(join_type.get_value()), miter_limit); + + //throwaway_path = throwaway_path.reverse(); + throwaway_path.setInitial(real_path.finalPoint()); + + real_path.append(throwaway_path); + //real_path.close(); + + real_pathv.push_back(real_path); - //shape2 = Geom::sanitize(Geom::PathVector(1, real_pathv[2])); - //shape1 = Geom::boolop(shape3, shape2, Geom::BOOLOP_UNION); + //real_pathv.push_back(path_from_piecewise(pwd2, 0.001)[0].reverse()); - //real_pathv = Geom::desanitize(shape1); return real_pathv; } @@ -383,7 +397,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa trimmed_start.append(path_in[0] [i]); } - #define OVERLAP (0.001 / (line_width < 1 ? 1 : line_width)) + #define OVERLAP 0 /*(0.001 / (line_width < 1 ? 1 : line_width))*/ trimmed_start.append(*subdivide_at(curve_start, (attach_start - loc) + OVERLAP, true)); curve_start = subdivide_at(curve_start, attach_start - loc, false); diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index e62f516c9..302756c7c 100755 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -825,6 +825,39 @@ Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line #undef miter_lim return path_out; } +Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit) +{ + + #define miter_lim fabs(line_width * miter_limit) + + Geom::Path path_out; + + if (linejoin_type <= LINEJOIN_POINTY || path_in.size() <= 1) { + + Geom::PathVector * pathvec; + + Path path_tangent = Path(); + Path path_outline = Path(); + path_outline.LoadPath(path_in, Geom::Affine(), false, false); + path_outline.OutsideOutline(&path_tangent, line_width / 2, static_cast(linejoin_type), butt_straight, miter_lim); + + pathvec = path_tangent.MakePathVector(); + path_out = pathvec[0]/* deref pointer */[0]/*actual object ref*/; + delete pathvec; + return path_out; + } + else if (linejoin_type == LINEJOIN_REFLECTED) { + //reflected half outline + Geom::PathVector pathvec; pathvec.push_back(path_in); + path_out = half_outline(path_in, line_width, butt_straight, miter_lim); + return path_out; + } + else if (linejoin_type == LINEJOIN_EXTRAPOLATED) { + path_out = half_outline_extrp(path_in, line_width, butt_straight, miter_lim); + return path_out; + } + return path_out; +} } // namespace Outline diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h index 1a363c35b..4133f47c2 100644 --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -20,6 +20,7 @@ namespace Outline Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, JoinType join, ButtType butt, double miter_lim); Geom::PathVector outlinePath_extr(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim); + Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit); } #endif // _SEEN_PATH_OUTLINE_H -- cgit v1.2.3 From f928fc556c8d7824dd920171b5de534cee4fe4ad Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 26 Mar 2014 21:32:07 -0400 Subject: Small performance and bug fixes (bzr r13090.1.33) --- src/live_effects/effect.cpp | 2 +- src/live_effects/lpe-taperstroke.cpp | 169 +++++++++++++++++++++-------------- 2 files changed, 101 insertions(+), 70 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index d6840e5b8..337fe631f 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -//#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects +#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects #ifdef HAVE_CONFIG_H # include "config.h" diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 91b8fd7bc..4ae1de923 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -232,9 +232,9 @@ Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_toler return path_out; } -Geom::Curve * subdivide_at(const Geom::Curve* curve_in, Geom::Coord time, bool first); Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double width); + Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) { Geom::Path first_cusp = return_at_first_cusp(path_in[0]); @@ -255,21 +255,21 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) } //don't ever let it be zero - if (attach_start <= 0) { + if (attach_start <= 0.00000001) { attach_start.param_set_value( 0.00000001 ); + zeroStart = true; } - if (attach_end <= 0) { + if (attach_end <= 0.00000001) { attach_end.param_set_value( 0.00000001 ); + zeroEnd = true; } //don't let it be integer if (double(unsigned(attach_start)) == attach_start) { attach_start.param_set_value(attach_start - 0.00000001); - zeroStart = true; } if (double(unsigned(attach_end)) == attach_end) { - attach_end.param_set_value(attach_end - 0.00000001); - zeroStart = true; + attach_end.param_set_value(attach_end - 0.00000001); } unsigned allowed_start = first_cusp.size(); @@ -302,14 +302,11 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) if (!zeroStart) { //Construct the pattern (pat_str stands for pattern string) (yes, this is easier, trust me) std::stringstream pat_str; - pat_str << "M 1,0 1,1 C " << 1 - (double)smoothing << ",1 0,0.5 0,0.5 0,0.5 " << 1 - double(smoothing) << ",0 1,0"; + pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; - pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); - - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], line_width)); - - throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0].reverse(); - throwaway_path.erase_last(); //wtf + pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], line_width)); + throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; real_path.append(throwaway_path); } @@ -317,8 +314,12 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) throwaway_path = Outline::PathOutsideOutline(pathv_out[1], line_width, static_cast(join_type.get_value()), miter_limit); - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); + if (!zeroStart) { + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); + } else { + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } if (!zeroEnd) { //append the ending taper @@ -336,10 +337,13 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //append the inside outline of the path (against direction) throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), line_width, static_cast(join_type.get_value()), miter_limit); - - throwaway_path.setInitial(real_path.finalPoint()); - - real_path.append(throwaway_path); + + if (!zeroEnd) { + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); + } else { + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } real_path.close(); real_pathv.push_back(real_path); @@ -355,7 +359,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa //do subdivision and get out unsigned loc = (unsigned)attach_start; Geom::Curve * curve_start = path_in[0] [loc].duplicate(); - + std::vector pathv_out; Geom::Path path_out = Geom::Path(); @@ -365,25 +369,69 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa for (unsigned i = 0; i < loc; i++) { trimmed_start.append(path_in[0] [i]); } - - - trimmed_start.append(*subdivide_at(curve_start, (attach_start - loc), true)); - curve_start = subdivide_at(curve_start, attach_start - loc, false); + + + //this is pretty annoying + //previously I wrote a function for this but it wasted a lot of time + //so I optimized it back into here. + unsigned order = Outline::bezierOrder(curve_start); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_start); + std::pair cb_pair = cb->subdivide((attach_start - loc)); + trimmed_start.append(cb_pair.first); curve_start = cb_pair.second.duplicate(); //goes out of scope + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_start); + std::pair qb_pair = qb->subdivide((attach_start - loc)); + trimmed_start.append(qb_pair.first); curve_start = qb_pair.second.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide((attach_start - loc)); + trimmed_start.append(lb_pair.first); curve_start = lb_pair.second.duplicate(); + break; + } + } //special case: path is one segment long //special case: what if the two knots occupy the same segment? if ((size == 1) || ( size - unsigned(attach_end) - 1 == loc )) { Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_start); + //it is just a dumb segment //we have to do some shifting here because the value changed when we reduced the length //of the previous segment. - trimmed_end.append(*subdivide_at(curve_start, t, false)); + + order = Outline::bezierOrder(curve_start); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_start); + std::pair cb_pair = cb->subdivide(t); + trimmed_end.append(cb_pair.second); curve_start = cb_pair.first.duplicate(); + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_start); + std::pair qb_pair = qb->subdivide(t); + trimmed_end.append(qb_pair.second); curve_start = qb_pair.first.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); + trimmed_end.append(lb_pair.second); curve_start = lb_pair.first.duplicate(); + break; + } + } + for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); } - curve_start = subdivide_at(curve_start, t, true); path_out.append(*curve_start); pathv_out.push_back(trimmed_start); pathv_out.push_back(path_out); @@ -406,9 +454,28 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa Geom::Curve * curve_end = path_in[0] [loc].duplicate(); Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_end); - - trimmed_end.append(*subdivide_at(curve_end, t, false)); - curve_end = subdivide_at(curve_end, t, true); + + order = Outline::bezierOrder(curve_end); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_end); + std::pair cb_pair = cb->subdivide(t); + trimmed_end.append(cb_pair.second); curve_end = cb_pair.first.duplicate(); + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_end); + std::pair qb_pair = qb->subdivide(t); + trimmed_end.append(qb_pair.second); curve_end = qb_pair.first.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_end); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); + trimmed_end.append(lb_pair.second); curve_end = lb_pair.first.duplicate(); + break; + } + } for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); @@ -424,44 +491,6 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa return pathv_out; } -Geom::Curve * subdivide_at(const Geom::Curve* curve_in, Geom::Coord time, bool first) -{ - //the only reason for this function is the lack of a subdivide function in the Curve class. - //you have to cast to Beziers to be able to use subdivide(t) - unsigned order = Outline::bezierOrder(curve_in); - Geom::Curve* curve_out = curve_in->duplicate(); - switch (order) - { - //these need to be scoped because of the variable 'c' - case 3: - { - Geom::CubicBezier c = first ? (dynamic_cast (curve_out))->subdivide(time).first : - (dynamic_cast (curve_out))->subdivide(time).second; - if (curve_out) delete curve_out; - curve_out = c.duplicate(); - break; - } - case 2: - { - Geom::QuadraticBezier c = first ? (dynamic_cast(curve_out))->subdivide(time).first : - (dynamic_cast(curve_out))->subdivide(time).second; - if (curve_out) delete curve_out; - curve_out = c.duplicate(); - break; - } - case 1: - { - Geom::BezierCurveN<1> c = first ? (dynamic_cast* >(curve_out))->subdivide(time).first : - (dynamic_cast* >(curve_out))->subdivide(time).second; - if (curve_out) delete curve_out; - curve_out = c.duplicate(); - break; - } - } - return curve_out; -} - - //most of the below code is verbatim from Pattern Along Path. However, it needed a little //tweaking to get it to work right in this case. @@ -587,8 +616,9 @@ namespace TpS { Piecewise > pwd2; Geom::Path p_in = return_at_first_cusp(pathv[0]); pwd2.concat(p_in.toPwSb()); + std::vector > > pwd_vec = split_at_discontinuities(pwd2); - double t0 = nearest_point(s, pwd2); + double t0 = nearest_point(s, pwd_vec[0]); lpe->attach_start.param_set_value(t0); // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. @@ -607,8 +637,9 @@ namespace TpS { Piecewise > pwd2; Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); pwd2.concat(p_in.toPwSb()); + std::vector > > pwd_vec = split_at_discontinuities(pwd2); - double t0 = nearest_point(s, pwd2); + double t0 = nearest_point(s, pwd_vec[0]); lpe->attach_end.param_set_value(t0); // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. -- cgit v1.2.3 From 8a082e274bc322596c217bbe7770904a3cb50cc2 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 29 Mar 2014 15:28:44 -0400 Subject: Fix build errors and a few small bugs (bzr r13090.1.36) --- src/live_effects/lpe-taperstroke.cpp | 4 ++-- .../parameter/powerstrokepointarray.cpp | 2 +- src/live_effects/pathoutlineprovider.cpp | 25 ++++++++++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) mode change 100644 => 100755 src/live_effects/lpe-taperstroke.cpp diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp old mode 100644 new mode 100755 index 8e6edfa2f..0e9752d31 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -279,10 +279,10 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //don't let it be integer if (double(unsigned(attach_start)) == attach_start) { - attach_start.param_set_value(attach_start - 0.00000001); + attach_start.param_set_value(attach_start - 0.00001); } if (double(unsigned(attach_end)) == attach_end) { - attach_end.param_set_value(attach_end - 0.00000001); + attach_end.param_set_value(attach_end - 0.00001); } unsigned allowed_start = first_cusp.size(); diff --git a/src/live_effects/parameter/powerstrokepointarray.cpp b/src/live_effects/parameter/powerstrokepointarray.cpp index 7fa837689..4ed8998fa 100644 --- a/src/live_effects/parameter/powerstrokepointarray.cpp +++ b/src/live_effects/parameter/powerstrokepointarray.cpp @@ -202,7 +202,7 @@ PowerStrokePointArrayParamKnotHolderEntity::knot_get() const void PowerStrokePointArrayParamKnotHolderEntity::knot_set_offset(Geom::Point offset) { _pparam->_vector.at(_index) = Geom::Point(offset.x(), offset.y() / 2); - this->parent_holder->knot_ungrabbed_handler(this->knot); + this->parent_holder->knot_ungrabbed_handler(this->knot, 0); } void diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index a5a7a044f..2a0da05b4 100755 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -220,8 +220,8 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, bool outside = false) { - - if ( outside ) { + bool lineProblem = (dynamic_cast *>(cbc1)) || (dynamic_cast *>(cbc2)); + if ( outside && !lineProblem ) { Geom::Path pth; pth.append(*cbc1); @@ -273,9 +273,26 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } path_builder.appendNew (endPt); } - } else { + } + if ( outside && lineProblem ) { + Geom::Path pth; + pth.append(*cbc1); + Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); + pth = Geom::Path(); + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + boost::optional p = intersection_point (cbc1->finalPoint(), tang1, + cbc2->initialPoint(), tang2); + if (p) + { + path_builder.appendNew (*p); + } path_builder.appendNew (endPt); - } + } + if ( !outside ) { + path_builder.appendNew (endPt); + } } void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, bool outside = false) -- cgit v1.2.3 From e667170b1473faccbeabece0cef7d24ebf15bef9 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 29 Mar 2014 20:33:36 -0400 Subject: Minor fixes (bzr r13090.1.37) --- src/live_effects/lpe-taperstroke.cpp | 4 +- src/live_effects/pathoutlineprovider.cpp | 79 +++++++++++++++++++++++++------- 2 files changed, 65 insertions(+), 18 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 0e9752d31..b4e43209d 100755 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -352,8 +352,8 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) -fabs(line_width), static_cast(join_type.get_value()), miter_limit); if (!zeroEnd) { - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); + //throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); } else { real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); } diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index 2a0da05b4..6a47285a0 100755 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -1,5 +1,5 @@ #include "pathoutlineprovider.h" - +#include "livarot/path-description.h" #include <2geom/angle.h> #include <2geom/path.h> #include <2geom/circle.h> @@ -7,6 +7,7 @@ #include <2geom/shape.h> #include <2geom/transforms.h> #include <2geom/path-sink.h> +#include namespace Geom { @@ -163,7 +164,10 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) Geom::Point end_point; //assert(cbc1.finalPoint() == cbc2.initialPoint()); + //short circuiting? if (cbc1.finalPoint() != cbc2.initialPoint()) { + printf("There was an issue when asserting that one curve's end is the start of the other. Line %d, File %s\n" + "By default we are going to say that this is an inside join, so we cannot make a line join for it.\n", __LINE__, __FILE__); return false; } switch (order) @@ -218,7 +222,8 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) return false; } -void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, bool outside = false) +void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, + double miter_limit, double line_width, bool outside = false) { bool lineProblem = (dynamic_cast *>(cbc1)) || (dynamic_cast *>(cbc2)); if ( outside && !lineProblem ) { @@ -269,7 +274,13 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve cbc2->initialPoint(), tang2); if (p) { - path_builder.appendNew (*p); + //check size of miter + Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; + Geom::Coord len = distance(*p, point_on_path); + if (len <= miter_limit) { + // miter OK + path_builder.appendNew (*p); + } } path_builder.appendNew (endPt); } @@ -286,7 +297,13 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve cbc2->initialPoint(), tang2); if (p) { - path_builder.appendNew (*p); + //check size of miter + Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; + Geom::Coord len = distance(*p, point_on_path); + if (len <= miter_limit) { + // miter OK + path_builder.appendNew (*p); + } } path_builder.appendNew (endPt); } @@ -295,7 +312,8 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } } -void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, bool outside = false) +void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, + double miter_limit, double line_width, bool outside = false) { //the most important work for the reflected join is done here @@ -332,7 +350,13 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb cbc2->initialPoint(), tang2); if (p) { - path_builder.appendNew (*p); + //check size of miter + Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; + Geom::Coord len = distance(*p, point_on_path); + if (len <= miter_limit) { + // miter OK + path_builder.appendNew (*p); + } } //bevel path_builder.appendNew( endPt ); @@ -395,10 +419,10 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); //do the reflection/extrapolation: - if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, - outside_angle ( pv[u - 1] [pv[u - 1].size()], pv[u] [0] )); } - else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, - outside_angle ( pv[u - 1] [pv[u - 1].size()], pv[u] [0] )); } + if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } + else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } } path_builder.append( (*path_vec)[0] ); @@ -420,9 +444,9 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); //do the reflection/extrapolation: - if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, + if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); } - else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, + else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); } //Now we can store it. @@ -449,10 +473,33 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, //since you've made it this far, hopefully all this is obvious :P Geom::Path with_direction; Geom::Path against_direction; - - with_direction = Outline::doAdvHalfOutline( path_in[i], -line_width, miter_lim, extrapolate ); - against_direction = Outline::doAdvHalfOutline( path_in[i].reverse(), -line_width, extrapolate ); - + if ( !path_in[i].closed() ) { + with_direction = Outline::doAdvHalfOutline( path_in[i], -line_width, miter_lim, extrapolate ); + against_direction = Outline::doAdvHalfOutline( path_in[i].reverse(), -line_width, miter_lim, extrapolate ); + } else { + //Geom::Path absolutely refuses to do what I want with these + Geom::Path newPath = path_in[i]; + newPath.close(false); + Geom::Piecewise > pwd2 = newPath.toPwSb(); + newPath = Geom::path_from_piecewise(pwd2, 0.01)[0]; + //fuk this + with_direction = Outline::doAdvHalfOutline( newPath, -line_width, miter_lim, extrapolate ); + against_direction = Outline::doAdvHalfOutline( newPath.reverse(), -line_width, miter_lim, extrapolate ); + + /*if (dynamic_cast *>(&newPath[newPath.size()])) { + //delete the 'Z' + newPath.erase_last(); + newPath.append(path_in[i][path_in[i].size() - 1]); + newPath.appendNew(newPath.initialPoint()); + newPath.erase_last(); + } else { + //delete the 'Z' + newPath.erase_last(); + newPath.append(path_in[i][path_in[i].size() - 1]); + newPath.appendNew(newPath.initialPoint()); + newPath.erase_last(); + }*/ + } Geom::PathBuilder pb; //add in the...do I really need to say this? -- cgit v1.2.3 From 355bfa5bf4d51f9d8c3fddf910a73ec7958d9a8a Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 1 Apr 2014 18:38:26 -0400 Subject: Fix bug 1219324 (bzr r13090.1.40) --- src/sp-lpe-item.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 666c79e49..6324af147 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -36,6 +36,10 @@ #include "desktop.h" #include "shape-editor.h" #include "sp-ellipse.h" +#include "tools-switch.h" +#include "ui/tools/node-tool.h" +#include "ui/tools/tool-base.h" +#include "ui/tool/multi-path-manipulator.h" #include @@ -416,6 +420,17 @@ void SPLPEItem::addPathEffect(gchar *value, bool reset) // Apply the path effect sp_lpe_item_update_patheffect(this, true, true); + + //fix bug 1219324 + Inkscape::UI::Tools::NodeTool *tool = 0; + if (SP_ACTIVE_DESKTOP ) { + Inkscape::UI::Tools::ToolBase *ec = SP_ACTIVE_DESKTOP->event_context; + if (INK_IS_NODE_TOOL(ec)) { + tool = static_cast(ec); + tools_switch(SP_ACTIVE_DESKTOP, TOOLS_LPETOOL); //mhh + tools_switch(SP_ACTIVE_DESKTOP, TOOLS_NODES); + } + } } } -- cgit v1.2.3 From f3e0966f95dc4284b1fd191fb4c187c92c24aeed Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 1 Apr 2014 20:40:15 -0400 Subject: Fix some stuff (bzr r13090.1.41) --- src/live_effects/effect.cpp | 10 +++++++++- src/live_effects/effect.h | 3 +++ src/sp-lpe-item.cpp | 13 +++++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 337fe631f..8bf210270 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -5,7 +5,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects +//#define LPE_ENABLE_TEST_EFFECTS //uncomment for toy effects #ifdef HAVE_CONFIG_H # include "config.h" @@ -365,6 +365,14 @@ Effect::doBeforeEffect (SPLPEItem const*/*lpeitem*/) //Do nothing for simple effects } +void Effect::doAfterEffect (SPLPEItem const* lpeitem) +{ +} + +void Effect::doOnRemove (SPLPEItem const* lpeitem) +{ +} + /** * Effects can have a parameter path set before they are applied by accepting a nonzero number of * mouse clicks. This method activates the pen context, which waits for the specified number of diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index 1da9b4cc9..85c930def 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -55,6 +55,9 @@ public: virtual void doOnApply (SPLPEItem const* lpeitem); virtual void doBeforeEffect (SPLPEItem const* lpeitem); + + virtual void doAfterEffect (SPLPEItem const* lpeitem); + virtual void doOnRemove (SPLPEItem const* lpeitem); void writeParamsToSVG(); diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 6324af147..71aa9545a 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -16,6 +16,9 @@ # include "config.h" #endif +//the gtk devs are really not smart about backwards compatibility +#include "ui/tool/multi-path-manipulator.h" + #include #include "live_effects/effect.h" @@ -39,7 +42,6 @@ #include "tools-switch.h" #include "ui/tools/node-tool.h" #include "ui/tools/tool-base.h" -#include "ui/tool/multi-path-manipulator.h" #include @@ -254,6 +256,9 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { } return false; } + if (!SP_IS_GROUP(this)) { + lpe->doAfterEffect(this); + } } } } @@ -447,11 +452,15 @@ void SPLPEItem::removeCurrentPathEffect(bool keep_paths) Inkscape::LivePathEffect::LPEObjectReference* lperef = this->getCurrentLPEReference(); if (!lperef) return; - + + Inkscape::LivePathEffect::Effect * lpe = this->getCurrentLPE(); + lpe->doOnRemove(this); + PathEffectList new_list = *this->path_effect_list; new_list.remove(lperef); //current lpe ref is always our 'own' pointer from the path_effect_list std::string r = patheffectlist_write_svg(new_list); + if (!r.empty()) { this->getRepr()->setAttribute("inkscape:path-effect", r.c_str()); } else { -- cgit v1.2.3 From d20b73d611b6de99e0e0697ee47a760de437ee97 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 2 Apr 2014 17:18:40 -0400 Subject: Clean up code (bzr r13090.1.42) --- src/live_effects/lpe-taperstroke.cpp | 905 ++++++++++++++++--------------- src/live_effects/lpe-taperstroke.h | 48 +- src/live_effects/pathoutlineprovider.cpp | 521 +++++++++--------- src/live_effects/pathoutlineprovider.h | 16 +- 4 files changed, 765 insertions(+), 725 deletions(-) mode change 100755 => 100644 src/live_effects/lpe-taperstroke.cpp mode change 100755 => 100644 src/live_effects/pathoutlineprovider.cpp diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp old mode 100755 new mode 100644 index b4e43209d..97ae02e3b --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -38,26 +38,27 @@ namespace Inkscape { namespace LivePathEffect { namespace TpS { - class KnotHolderEntityAttachBegin : public LPEKnotHolderEntity { - public: - KnotHolderEntityAttachBegin(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual Geom::Point knot_get() const; - }; - class KnotHolderEntityAttachEnd : public LPEKnotHolderEntity { - public: - KnotHolderEntityAttachEnd(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual Geom::Point knot_get() const; - }; + class KnotHolderEntityAttachBegin : public LPEKnotHolderEntity { + public: + KnotHolderEntityAttachBegin(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; + }; + + class KnotHolderEntityAttachEnd : public LPEKnotHolderEntity { + public: + KnotHolderEntityAttachEnd(LPETaperStroke * effect) : LPEKnotHolderEntity(effect) {} + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; + }; } // TpS static const Util::EnumData JoinType[] = { - {LINEJOIN_STRAIGHT, N_("Beveled"), "bevel"}, - {LINEJOIN_ROUND, N_("Rounded"), "round"}, - {LINEJOIN_REFLECTED, N_("Reflected"), "reflected"}, - {LINEJOIN_POINTY, N_("Miter"), "miter"}, - {LINEJOIN_EXTRAPOLATED, N_("Extrapolated"), "extrapolated"} + {LINEJOIN_STRAIGHT, N_("Beveled"), "bevel"}, + {LINEJOIN_ROUND, N_("Rounded"), "round"}, + {LINEJOIN_REFLECTED, N_("Reflected"), "reflected"}, + {LINEJOIN_POINTY, N_("Miter"), "miter"}, + {LINEJOIN_EXTRAPOLATED, N_("Extrapolated"), "extrapolated"} }; static const Util::EnumDataConverter JoinTypeConverter(JoinType, sizeof (JoinType)/sizeof(*JoinType)); @@ -65,31 +66,30 @@ static const Util::EnumDataConverter JoinTypeConverter(JoinType, sizeo LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : Effect(lpeobject), line_width(_("Stroke width"), _("The (non-tapered) width of the path"), "stroke_width", &wr, this, 3), - attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), - attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), - smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.5), - join_type(_("Join type"), _("Join type for non-smooth nodes"), "jointype", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), - miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 30.) + attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), + attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), + smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.5), + join_type(_("Join type"), _("Join type for non-smooth nodes"), "jointype", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), + miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 30.) { - /* uncomment the following line to have the original path displayed while the item is selected */ show_orig_path = true; - _provides_knotholder_entities = true; - - attach_start.param_set_digits(3); - attach_end.param_set_digits(3); - - - registerParameter( dynamic_cast(&line_width) ); - registerParameter( dynamic_cast(&attach_start) ); - registerParameter( dynamic_cast(&attach_end) ); - registerParameter( dynamic_cast(&smoothing) ); - registerParameter( dynamic_cast(&join_type) ); - registerParameter( dynamic_cast(&miter_limit) ); + _provides_knotholder_entities = true; + + attach_start.param_set_digits(3); + attach_end.param_set_digits(3); + + + registerParameter( dynamic_cast(&line_width) ); + registerParameter( dynamic_cast(&attach_start) ); + registerParameter( dynamic_cast(&attach_end) ); + registerParameter( dynamic_cast(&smoothing) ); + registerParameter( dynamic_cast(&join_type) ); + registerParameter( dynamic_cast(&miter_limit) ); } LPETaperStroke::~LPETaperStroke() { - + } //from LPEPowerStroke -- sets fill if stroke color because we will @@ -97,10 +97,10 @@ LPETaperStroke::~LPETaperStroke() void LPETaperStroke::doOnApply(SPLPEItem const* lpeitem) { - if (SP_IS_SHAPE(lpeitem)) { + if (SP_IS_SHAPE(lpeitem)) { SPLPEItem* item = const_cast(lpeitem); double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed : 1.; - + SPCSSAttr *css = sp_repr_css_attr_new (); if (lpeitem->style->stroke.isSet()) { if (lpeitem->style->stroke.isPaintserver()) { @@ -122,13 +122,13 @@ void LPETaperStroke::doOnApply(SPLPEItem const* lpeitem) } else { sp_repr_css_unset_property (css, "fill"); } - + sp_repr_css_set_property(css, "stroke", "none"); - + sp_desktop_apply_css_recursive(item, css, true); sp_repr_css_attr_unref (css); - line_width.param_set_value(width); + line_width.param_set_value(width); } else { g_warning("LPE Join Type can only be applied to paths (not groups)."); } @@ -138,8 +138,10 @@ void LPETaperStroke::doOnApply(SPLPEItem const* lpeitem) void LPETaperStroke::doOnRemove(SPLPEItem const* lpeitem) { - - if (SP_IS_SHAPE(lpeitem)) { + + if (SP_IS_SHAPE(lpeitem)) { + //TODO: make it getobjbyrepr instead of const_cast because this can cause + //undefined behavior SPLPEItem *item = const_cast(lpeitem); SPCSSAttr *css = sp_repr_css_attr_new (); @@ -164,7 +166,7 @@ void LPETaperStroke::doOnRemove(SPLPEItem const* lpeitem) sp_repr_css_unset_property (css, "stroke"); } - Inkscape::CSSOStringStream os; + Inkscape::CSSOStringStream os; os << fabs(line_width); sp_repr_css_set_property (css, "stroke-width", os.str().c_str()); @@ -173,335 +175,347 @@ void LPETaperStroke::doOnRemove(SPLPEItem const* lpeitem) sp_desktop_apply_css_recursive(item, css, true); sp_repr_css_attr_unref (css); item->updateRepr(); - } + } } //actual effect impl here Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_tolerance = 0.05) { - Geom::Path path_out = Geom::Path(); - - for (unsigned i = 0; i < path_in.size(); i++) - { - path_out.append(path_in[i]); - if (path_in.size() == 1) - break; - - //determine order of curve - int order = Outline::bezierOrder(&path_in[i]); - - Geom::Point start_point; - Geom::Point cross_point = path_in[i].finalPoint(); - Geom::Point end_point; - - g_assert(path_in[i].finalPoint() == path_in[i+1].initialPoint()); - - //can you tell that the following expressions have been shaped by - //repeated compiler errors? ;) - switch (order) - { - case 3: - start_point = (static_cast(&path_in[i]))->operator[] (2); - //major league b***f***ing - if (are_near(start_point, cross_point, 0.0000001)) { - start_point = (static_cast(&path_in[i]))->operator[] (1); - } - break; - case 2: - //this never happens - start_point = (static_cast(&path_in[i]))->operator[] (1); - break; - case 1: - default: - start_point = path_in[i].initialPoint(); - } - - order = Outline::bezierOrder(&path_in[i+1]); - - switch (order) - { - case 3: - end_point = (static_cast(&path_in[i+1]))->operator[] (1); - if (are_near(end_point, cross_point, 0.0000001)) { - end_point = (static_cast(&path_in[i+1]))->operator[] (2); - } - break; - case 2: - end_point = (static_cast(&path_in[i+1]))->operator[] (1); - break; - case 1: - default: - end_point = path_in[i+1].finalPoint(); - } - - g_assert(!are_near(start_point, cross_point, 0.0000001)); //take that motherf*ckers - g_assert(!are_near(cross_point, end_point, 0.0000001)); - g_assert(!are_near(start_point, end_point, 0.0000001)); - - if (!are_collinear(start_point, cross_point, end_point, smooth_tolerance)) - break; - } - return path_out; + Geom::Path path_out = Geom::Path(); + + for (unsigned i = 0; i < path_in.size(); i++) { + path_out.append(path_in[i]); + if (path_in.size() == 1) + break; + + //determine order of curve + int order = Outline::bezierOrder(&path_in[i]); + + Geom::Point start_point; + Geom::Point cross_point = path_in[i].finalPoint(); + Geom::Point end_point; + + g_assert(path_in[i].finalPoint() == path_in[i+1].initialPoint()); + + //can you tell that the following expressions have been shaped by + //repeated compiler errors? ;) + switch (order) { + case 3: + start_point = (static_cast(&path_in[i]))->operator[] (2); + //major league b***f***ing + if (are_near(start_point, cross_point, 0.0000001)) { + start_point = (static_cast(&path_in[i]))->operator[] (1); + } + break; + case 2: + //this never happens + start_point = (static_cast(&path_in[i]))->operator[] (1); + break; + case 1: + default: + start_point = path_in[i].initialPoint(); + } + + order = Outline::bezierOrder(&path_in[i+1]); + + switch (order) { + case 3: + end_point = (static_cast(&path_in[i+1]))->operator[] (1); + if (are_near(end_point, cross_point, 0.0000001)) { + end_point = (static_cast(&path_in[i+1]))->operator[] (2); + } + break; + case 2: + end_point = (static_cast(&path_in[i+1]))->operator[] (1); + break; + case 1: + default: + end_point = path_in[i+1].finalPoint(); + } + + //clearly it's collinear if two occupy the same point + g_assert(!are_near(start_point, cross_point, 0.0000001)); + g_assert(!are_near(cross_point, end_point, 0.0000001)); + g_assert(!are_near(start_point, end_point, 0.0000001)); + + if (!are_collinear(start_point, cross_point, end_point, smooth_tolerance)) + break; + } + return path_out; } Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double width); +//references to pointers, because magic +void subdivideCurve(Geom::Curve * curve_in, Geom::Coord t, Geom::Curve *& val_first, Geom::Curve *& val_second); Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) { - Geom::Path first_cusp = return_at_first_cusp(path_in[0]); - Geom::Path last_cusp = return_at_first_cusp(path_in[0].reverse()); - - bool zeroStart = false; - bool zeroEnd = false; - //there is a pretty good chance that people will try to drag the knots - //on top of each other, so block it - - unsigned size = path_in[0].size(); - if (size == first_cusp.size()) { - //check to see if the knots were dragged over each other - //if so, reset the end offset - if ( attach_start >= (size - attach_end) ) { - attach_end.param_set_value( size - attach_start ); - } - } - - //don't ever let it be zero - if (attach_start <= 0.00000001) { - attach_start.param_set_value( 0.00000001 ); - zeroStart = true; - } - if (attach_end <= 0.00000001) { - attach_end.param_set_value( 0.00000001 ); - zeroEnd = true; - } - - //don't let it be integer - if (double(unsigned(attach_start)) == attach_start) { - attach_start.param_set_value(attach_start - 0.00001); - } - if (double(unsigned(attach_end)) == attach_end) { - attach_end.param_set_value(attach_end - 0.00001); - } - - unsigned allowed_start = first_cusp.size(); - unsigned allowed_end = last_cusp.size(); - - //don't let the knots be farther than they are allowed to be - if ((unsigned)attach_start >= allowed_start) { - attach_start.param_set_value((double)allowed_start - 0.00000001); - } - if ((unsigned)attach_end >= allowed_end) { - attach_end.param_set_value((double)allowed_end - 0.00000001); - } - - //remember, Path::operator () means get point at time t - start_attach_point = first_cusp(attach_start); - end_attach_point = last_cusp(attach_end); - Geom::PathVector pathv_out; - - //the following function just splits it up into three pieces. - pathv_out = doEffect_simplePath(path_in); - - //now for the actual tapering. We use a Pattern Along Path method to get this done. - - Geom::PathVector real_pathv; - Geom::Path real_path; - Geom::PathVector pat_vec; - Geom::Piecewise > pwd2; - Geom::Path throwaway_path; - - if (!zeroStart) { - //Construct the pattern (pat_str stands for pattern string) (yes, this is easier, trust me) - std::stringstream pat_str; - pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; - - pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); - throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; - - real_path.append(throwaway_path); - } - //append the outside outline of the path (with direction) - throwaway_path = Outline::PathOutsideOutline(pathv_out[1], - -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - - if (!zeroStart) { - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); - } else { - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } - - if (!zeroEnd) { - //append the ending taper - std::stringstream pat_str_1; - pat_str_1 << "M 0,0 0,1 C " << (double)smoothing << ",1 1,0.5 1,0.5 1,0.5 " << double(smoothing) << ",0 0,0"; - pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); - - pwd2 = Geom::Piecewise > (); - pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); - - throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); - } - //append the inside outline of the path (against direction) - throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), - -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - - if (!zeroEnd) { - //throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } else { - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } - real_path.close(); - - real_pathv.push_back(real_path); - - return real_pathv; + Geom::Path first_cusp = return_at_first_cusp(path_in[0]); + Geom::Path last_cusp = return_at_first_cusp(path_in[0].reverse()); + + bool zeroStart = false; + bool zeroEnd = false; + //there is a pretty good chance that people will try to drag the knots + //on top of each other, so block it + + unsigned size = path_in[0].size(); + if (size == first_cusp.size()) { + //check to see if the knots were dragged over each other + //if so, reset the end offset + if ( attach_start >= (size - attach_end) ) { + attach_end.param_set_value( size - attach_start ); + } + } + + //don't ever let it be zero + if (attach_start <= 0.00000001) { + attach_start.param_set_value( 0.00000001 ); + zeroStart = true; + } + if (attach_end <= 0.00000001) { + attach_end.param_set_value( 0.00000001 ); + zeroEnd = true; + } + + //don't let it be integer + if (double(unsigned(attach_start)) == attach_start) { + attach_start.param_set_value(attach_start - 0.00001); + } + if (double(unsigned(attach_end)) == attach_end) { + attach_end.param_set_value(attach_end - 0.00001); + } + + unsigned allowed_start = first_cusp.size(); + unsigned allowed_end = last_cusp.size(); + + //don't let the knots be farther than they are allowed to be + if ((unsigned)attach_start >= allowed_start) { + attach_start.param_set_value((double)allowed_start - 0.00000001); + } + if ((unsigned)attach_end >= allowed_end) { + attach_end.param_set_value((double)allowed_end - 0.00000001); + } + + //remember, Path::operator () means get point at time t + start_attach_point = first_cusp(attach_start); + end_attach_point = last_cusp(attach_end); + Geom::PathVector pathv_out; + + //the following function just splits it up into three pieces. + pathv_out = doEffect_simplePath(path_in); + + //now for the actual tapering. We use a Pattern Along Path method to get this done. + + Geom::PathVector real_pathv; + Geom::Path real_path; + Geom::PathVector pat_vec; + Geom::Piecewise > pwd2; + Geom::Path throwaway_path; + + if (!zeroStart) { + //Construct the pattern (pat_str stands for pattern string) (yes, this is easier, trust me) + std::stringstream pat_str; + pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; + + pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); + throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; + + real_path.append(throwaway_path); + } + //append the outside outline of the path (with direction) + throwaway_path = Outline::PathOutsideOutline(pathv_out[1], + -fabs(line_width), static_cast(join_type.get_value()), miter_limit); + + if (!zeroStart) { + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); + } else { + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } + + if (!zeroEnd) { + //append the ending taper + std::stringstream pat_str_1; + pat_str_1 << "M 0,0 0,1 C " << (double)smoothing << ",1 1,0.5 1,0.5 1,0.5 " << double(smoothing) << ",0 0,0"; + pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); + + pwd2 = Geom::Piecewise > (); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); + + throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; + throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path); + } + //append the inside outline of the path (against direction) + throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), + -fabs(line_width), static_cast(join_type.get_value()), miter_limit); + + if (!zeroEnd) { + //throwaway_path.setInitial(real_path.finalPoint()); + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } else { + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } + + //hmm + real_path.setFinal(real_path.initialPoint()); + + real_path.close(); + + real_pathv.push_back(real_path); + + return real_pathv; } //in all cases, this should return a PathVector with three elements. Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & path_in) { - unsigned size = path_in[0].size(); - - //do subdivision and get out - unsigned loc = (unsigned)attach_start; - Geom::Curve * curve_start = path_in[0] [loc].duplicate(); - - std::vector pathv_out; - Geom::Path path_out = Geom::Path(); - - Geom::Path trimmed_start = Geom::Path(); - Geom::Path trimmed_end = Geom::Path(); - - for (unsigned i = 0; i < loc; i++) { - trimmed_start.append(path_in[0] [i]); - } - - - //this is pretty annoying - //previously I wrote a function for this but it wasted a lot of time - //so I optimized it back into here. - unsigned order = Outline::bezierOrder(curve_start); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_start); - std::pair cb_pair = cb->subdivide((attach_start - loc)); - trimmed_start.append(cb_pair.first); curve_start = cb_pair.second.duplicate(); //goes out of scope - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_start); - std::pair qb_pair = qb->subdivide((attach_start - loc)); - trimmed_start.append(qb_pair.first); curve_start = qb_pair.second.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide((attach_start - loc)); - trimmed_start.append(lb_pair.first); curve_start = lb_pair.second.duplicate(); - break; - } - } - - //special case: path is one segment long - //special case: what if the two knots occupy the same segment? - if ((size == 1) || ( size - unsigned(attach_end) - 1 == loc )) - { - Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_start); - - //it is just a dumb segment - //we have to do some shifting here because the value changed when we reduced the length - //of the previous segment. - - order = Outline::bezierOrder(curve_start); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_start); - std::pair cb_pair = cb->subdivide(t); - trimmed_end.append(cb_pair.second); curve_start = cb_pair.first.duplicate(); - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_start); - std::pair qb_pair = qb->subdivide(t); - trimmed_end.append(qb_pair.second); curve_start = qb_pair.first.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); - trimmed_end.append(lb_pair.second); curve_start = lb_pair.first.duplicate(); - break; - } - } - - for (unsigned j = (size - attach_end) + 1; j < size; j++) { - trimmed_end.append(path_in[0] [j]); - } - - path_out.append(*curve_start); - pathv_out.push_back(trimmed_start); - pathv_out.push_back(path_out); - pathv_out.push_back(trimmed_end); - return pathv_out; - } - - pathv_out.push_back(trimmed_start); - - //append almost all of the rest of the path, ignore the curves that the knot is past (we'll get to it in a minute) - path_out.append(*curve_start); - - for (unsigned k = loc + 1; k < (size - unsigned(attach_end)) - 1; k++) { - path_out.append(path_in[0] [k]); - } - - //deal with the last segment in a very similar fashion to the first - loc = size - attach_end; - - Geom::Curve * curve_end = path_in[0] [loc].duplicate(); - - Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_end); - - order = Outline::bezierOrder(curve_end); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_end); - std::pair cb_pair = cb->subdivide(t); - trimmed_end.append(cb_pair.second); curve_end = cb_pair.first.duplicate(); - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_end); - std::pair qb_pair = qb->subdivide(t); - trimmed_end.append(qb_pair.second); curve_end = qb_pair.first.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_end); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); - trimmed_end.append(lb_pair.second); curve_end = lb_pair.first.duplicate(); - break; - } - } - - for (unsigned j = (size - attach_end) + 1; j < size; j++) { - trimmed_end.append(path_in[0] [j]); - } - - path_out.append(*curve_end); - pathv_out.push_back(path_out); - - pathv_out.push_back(trimmed_end); - - if (curve_end) delete curve_end; - if (curve_start) delete curve_start; - return pathv_out; + unsigned size = path_in[0].size(); + + //do subdivision and get out + unsigned loc = (unsigned)attach_start; + Geom::Curve * curve_start = path_in[0] [loc].duplicate(); + + std::vector pathv_out; + Geom::Path path_out = Geom::Path(); + + Geom::Path trimmed_start = Geom::Path(); + Geom::Path trimmed_end = Geom::Path(); + + for (unsigned i = 0; i < loc; i++) { + trimmed_start.append(path_in[0] [i]); + } + + + //this is pretty annoying + //previously I wrote a function for this but it wasted a lot of time + //so I optimized it back into here. + unsigned order = Outline::bezierOrder(curve_start); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_start); + std::pair cb_pair = cb->subdivide((attach_start - loc)); + trimmed_start.append(cb_pair.first); + curve_start = cb_pair.second.duplicate(); //goes out of scope + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_start); + std::pair qb_pair = qb->subdivide((attach_start - loc)); + trimmed_start.append(qb_pair.first); + curve_start = qb_pair.second.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide((attach_start - loc)); + trimmed_start.append(lb_pair.first); + curve_start = lb_pair.second.duplicate(); + break; + } + } + + //special case: path is one segment long + //special case: what if the two knots occupy the same segment? + if ((size == 1) || ( size - unsigned(attach_end) - 1 == loc )) { + Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_start); + + //it is just a dumb segment + //we have to do some shifting here because the value changed when we reduced the length + //of the previous segment. + + order = Outline::bezierOrder(curve_start); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_start); + std::pair cb_pair = cb->subdivide(t); + trimmed_end.append(cb_pair.second); + curve_start = cb_pair.first.duplicate(); + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_start); + std::pair qb_pair = qb->subdivide(t); + trimmed_end.append(qb_pair.second); + curve_start = qb_pair.first.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); + trimmed_end.append(lb_pair.second); + curve_start = lb_pair.first.duplicate(); + break; + } + } + + for (unsigned j = (size - attach_end) + 1; j < size; j++) { + trimmed_end.append(path_in[0] [j]); + } + + path_out.append(*curve_start); + pathv_out.push_back(trimmed_start); + pathv_out.push_back(path_out); + pathv_out.push_back(trimmed_end); + return pathv_out; + } + + pathv_out.push_back(trimmed_start); + + //append almost all of the rest of the path, ignore the curves that the knot is past (we'll get to it in a minute) + path_out.append(*curve_start); + + for (unsigned k = loc + 1; k < (size - unsigned(attach_end)) - 1; k++) { + path_out.append(path_in[0] [k]); + } + + //deal with the last segment in a very similar fashion to the first + loc = size - attach_end; + + Geom::Curve * curve_end = path_in[0] [loc].duplicate(); + + Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_end); + + order = Outline::bezierOrder(curve_end); + switch (order) { + case 3: { + Geom::CubicBezier *cb = static_cast(curve_end); + std::pair cb_pair = cb->subdivide(t); + trimmed_end.append(cb_pair.second); + curve_end = cb_pair.first.duplicate(); + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_end); + std::pair qb_pair = qb->subdivide(t); + trimmed_end.append(qb_pair.second); + curve_end = qb_pair.first.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_end); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); + trimmed_end.append(lb_pair.second); + curve_end = lb_pair.first.duplicate(); + break; + } + } + + for (unsigned j = (size - attach_end) + 1; j < size; j++) { + trimmed_end.append(path_in[0] [j]); + } + + path_out.append(*curve_end); + pathv_out.push_back(path_out); + + pathv_out.push_back(trimmed_end); + + if (curve_end) delete curve_end; + if (curve_start) delete curve_start; + return pathv_out; } @@ -509,14 +523,14 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa //tweaking to get it to work right in this case. Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double prop_scale) { - using namespace Geom; + using namespace Geom; // Don't allow empty path parameter: if ( pattern.empty() ) { return pwd2_in; } -/* Much credit should go to jfb and mgsloan of lib2geom development for the code below! */ + /* Much credit should go to jfb and mgsloan of lib2geom development for the code below! */ Piecewise > output; std::vector > > pre_output; @@ -548,7 +562,7 @@ Geom::Piecewise > stretch_along(Geom::Piecewise > > paths_in; paths_in = split_at_discontinuities(pwd2_in); - for (unsigned idx = 0; idx < paths_in.size(); idx++){ + for (unsigned idx = 0; idx < paths_in.size(); idx++) { Geom::Piecewise > path_i = paths_in[idx]; Piecewise x = x0; Piecewise y = y0; @@ -556,14 +570,14 @@ Geom::Piecewise > stretch_along(Geom::Piecewise > n = rot90(derivative(uskeleton)); n = force_continuity(remove_short_cuts(n,.1)); - + int nbCopies = 0; double scaling = 1; nbCopies = 1; scaling = (uskeleton.domain().extent() - toffset)/pattBndsX->extent(); double pattWidth = pattBndsX->extent() * scaling; - + if (scaling != 1.0) { x*=scaling; } @@ -573,20 +587,20 @@ Geom::Piecewise > stretch_along(Geom::Piecewise > output_piece = compose(uskeleton,x+offs)+y*compose(n,x+offs); std::vector > > splited_output_piece = split_at_discontinuities(output_piece); pre_output.insert(pre_output.end(), splited_output_piece.begin(), splited_output_piece.end() ); - }else{ + } else { output.concat(compose(uskeleton,x+offs)+y*compose(n,x+offs)); } offs+=pattWidth; } } - /*if (false){ + /*if (false){ pre_output = fuse_nearby_ends(pre_output, fuse_tolerance); for (unsigned i=0; i > stretch_along(Geom::Piecewise(curve_in); + std::pair cb_pair = cb->subdivide(t); + //trimmed_start.append(cb_pair.first); + val_first = cb_pair.first.duplicate(); + val_second = cb_pair.second.duplicate(); + break; + } + case 2: { + Geom::QuadraticBezier *qb = static_cast(curve_in); + std::pair qb_pair = qb->subdivide(t); + //trimmed_start.append(qb_pair.first); + val_first = qb_pair.first.duplicate(); + val_second = qb_pair.second.duplicate(); + break; + } + case 1: { + Geom::BezierCurveN<1> *lb = static_cast * >(curve_in); + std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); + //trimmed_start.append(lb_pair.first); + val_first = lb_pair.first.duplicate(); + val_second = lb_pair.second.duplicate(); + break; + } + } +} -void LPETaperStroke::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) + +void LPETaperStroke::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { - { - KnotHolderEntity *e = new TpS::KnotHolderEntityAttachBegin(this); - e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Start point of the taper"), SP_KNOT_SHAPE_CIRCLE ); - knotholder->add(e); - } - { - KnotHolderEntity *e = new TpS::KnotHolderEntityAttachEnd(this); - e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("End point of the taper"), SP_KNOT_SHAPE_CIRCLE ); - knotholder->add(e); - } + { + KnotHolderEntity *e = new TpS::KnotHolderEntityAttachBegin(this); + e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("Start point of the taper"), SP_KNOT_SHAPE_CIRCLE ); + knotholder->add(e); + } + { + KnotHolderEntity *e = new TpS::KnotHolderEntityAttachEnd(this); + e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("End point of the taper"), SP_KNOT_SHAPE_CIRCLE ); + knotholder->add(e); + } } namespace TpS { - void KnotHolderEntityAttachBegin::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) - { - using namespace Geom; - - LPETaperStroke* lpe = dynamic_cast(_effect); - - Geom::Point const s = snap_knot_position(p, state); - - SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); - Geom::PathVector pathv = curve->get_pathvector(); - Piecewise > pwd2; - Geom::Path p_in = return_at_first_cusp(pathv[0]); - pwd2.concat(p_in.toPwSb()); - std::vector > > pwd_vec = split_at_discontinuities(pwd2); - - double t0 = nearest_point(s, pwd_vec[0]); - lpe->attach_start.param_set_value(t0); - - // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. - sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); - } - void KnotHolderEntityAttachEnd::knot_set(Geom::Point const &p, Geom::Point const& /*origin*/, guint state) - { - using namespace Geom; - - LPETaperStroke* lpe = dynamic_cast(_effect); - - Geom::Point const s = snap_knot_position(p, state); - - SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); - Geom::PathVector pathv = curve->get_pathvector(); - Piecewise > pwd2; - Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); - pwd2.concat(p_in.toPwSb()); - std::vector > > pwd_vec = split_at_discontinuities(pwd2); - - double t0 = nearest_point(s, pwd_vec[0]); - lpe->attach_end.param_set_value(t0); - - // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. - sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); - } - Geom::Point KnotHolderEntityAttachBegin::knot_get() const - { - LPETaperStroke const * lpe = dynamic_cast (_effect); - return lpe->start_attach_point; - } - Geom::Point KnotHolderEntityAttachEnd::knot_get() const - { - LPETaperStroke const * lpe = dynamic_cast (_effect); - return lpe->end_attach_point; - } +void KnotHolderEntityAttachBegin::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +{ + using namespace Geom; + + LPETaperStroke* lpe = dynamic_cast(_effect); + + Geom::Point const s = snap_knot_position(p, state); + + SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + Geom::PathVector pathv = curve->get_pathvector(); + Piecewise > pwd2; + Geom::Path p_in = return_at_first_cusp(pathv[0]); + pwd2.concat(p_in.toPwSb()); + std::vector > > pwd_vec = split_at_discontinuities(pwd2); + + double t0 = nearest_point(s, pwd_vec[0]); + lpe->attach_start.param_set_value(t0); + + // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. + sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); +} +void KnotHolderEntityAttachEnd::knot_set(Geom::Point const &p, Geom::Point const& /*origin*/, guint state) +{ + using namespace Geom; + + LPETaperStroke* lpe = dynamic_cast(_effect); + + Geom::Point const s = snap_knot_position(p, state); + + SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + Geom::PathVector pathv = curve->get_pathvector(); + Piecewise > pwd2; + Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); + pwd2.concat(p_in.toPwSb()); + std::vector > > pwd_vec = split_at_discontinuities(pwd2); + + double t0 = nearest_point(s, pwd_vec[0]); + lpe->attach_end.param_set_value(t0); + + // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. + sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); +} +Geom::Point KnotHolderEntityAttachBegin::knot_get() const +{ + LPETaperStroke const * lpe = dynamic_cast (_effect); + return lpe->start_attach_point; +} +Geom::Point KnotHolderEntityAttachEnd::knot_get() const +{ + LPETaperStroke const * lpe = dynamic_cast (_effect); + return lpe->end_attach_point; +} } diff --git a/src/live_effects/lpe-taperstroke.h b/src/live_effects/lpe-taperstroke.h index 29a56f77c..997209543 100644 --- a/src/live_effects/lpe-taperstroke.h +++ b/src/live_effects/lpe-taperstroke.h @@ -20,39 +20,39 @@ namespace Inkscape { namespace LivePathEffect { namespace TpS { - // we need a separate namespace to avoid clashes with other LPEs - class KnotHolderEntityAttachBegin; - class KnotHolderEntityAttachEnd; +// we need a separate namespace to avoid clashes with other LPEs +class KnotHolderEntityAttachBegin; +class KnotHolderEntityAttachEnd; } class LPETaperStroke : public Effect { public: - LPETaperStroke(LivePathEffectObject *lpeobject); - virtual ~LPETaperStroke(); - - virtual void doOnApply(SPLPEItem const* lpeitem); - virtual void doOnRemove(SPLPEItem const* lpeitem); + LPETaperStroke(LivePathEffectObject *lpeobject); + virtual ~LPETaperStroke(); - virtual Geom::PathVector doEffect_path (Geom::PathVector const& path_in); - Geom::PathVector doEffect_simplePath(Geom::PathVector const& path_in); - - virtual void addKnotHolderEntities(KnotHolder * knotholder, SPDesktop * desktop, SPItem * item); + virtual void doOnApply(SPLPEItem const* lpeitem); + virtual void doOnRemove(SPLPEItem const* lpeitem); - friend class TpS::KnotHolderEntityAttachBegin; - friend class TpS::KnotHolderEntityAttachEnd; + virtual Geom::PathVector doEffect_path (Geom::PathVector const& path_in); + Geom::PathVector doEffect_simplePath(Geom::PathVector const& path_in); + + virtual void addKnotHolderEntities(KnotHolder * knotholder, SPDesktop * desktop, SPItem * item); + + friend class TpS::KnotHolderEntityAttachBegin; + friend class TpS::KnotHolderEntityAttachEnd; private: - ScalarParam line_width; - ScalarParam attach_start; - ScalarParam attach_end; - ScalarParam smoothing; - EnumParam join_type; - ScalarParam miter_limit; + ScalarParam line_width; + ScalarParam attach_start; + ScalarParam attach_end; + ScalarParam smoothing; + EnumParam join_type; + ScalarParam miter_limit; - Geom::Point start_attach_point; - Geom::Point end_attach_point; + Geom::Point start_attach_point; + Geom::Point end_attach_point; - LPETaperStroke(const LPETaperStroke&); - LPETaperStroke& operator=(const LPETaperStroke&); + LPETaperStroke(const LPETaperStroke&); + LPETaperStroke& operator=(const LPETaperStroke&); }; } //namespace LivePathEffect diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp old mode 100755 new mode 100644 index 6a47285a0..ad39a7416 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -9,133 +9,128 @@ #include <2geom/path-sink.h> #include -namespace Geom +namespace Geom { +/** +* Refer to: Weisstein, Eric W. "Circle-Circle Intersection." + From MathWorld--A Wolfram Web Resource. + http://mathworld.wolfram.com/Circle-CircleIntersection.html +* +* @return 0 if no intersection +* @return 1 if one circle is contained in the other +* @return 2 if intersections are found (they are written to p0 and p1) +*/ +static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, + Point & p0, Point & p1) +{ + Point X0 = circle0.center(); + double r0 = circle0.ray(); + Point X1 = circle1.center(); + double r1 = circle1.ray(); + + /* dx and dy are the vertical and horizontal distances between + * the circle centers. + */ + Point D = X1 - X0; + + /* Determine the straight-line distance between the centers. */ + double d = L2(D); + + /* Check for solvability. */ + if (d > (r0 + r1)) { + /* no solution. circles do not intersect. */ + return 0; + } + if (d <= fabs(r0 - r1)) { + /* no solution. one circle is contained in the other */ + return 1; + } + + /* 'point 2' is the point where the line through the circle + * intersection points crosses the line between the circle + * centers. + */ + + /* Determine the distance from point 0 to point 2. */ + double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; + + /* Determine the coordinates of point 2. */ + Point p2 = X0 + D * (a/d); + + /* Determine the distance from point 2 to either of the + * intersection points. + */ + double h = std::sqrt((r0*r0) - (a*a)); + + /* Now determine the offsets of the intersection points from + * point 2. + */ + Point r = (h/d)*rot90(D); + + /* Determine the absolute intersection points. */ + p0 = p2 + r; + p1 = p2 - r; + + return 2; +} +/** +* Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. +* Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). +*/ +static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) { - /** - * Refer to: Weisstein, Eric W. "Circle-Circle Intersection." - From MathWorld--A Wolfram Web Resource. - http://mathworld.wolfram.com/Circle-CircleIntersection.html - * - * @return 0 if no intersection - * @return 1 if one circle is contained in the other - * @return 2 if intersections are found (they are written to p0 and p1) - */ - static int circle_circle_intersection(Circle const &circle0, Circle const &circle1, - Point & p0, Point & p1) - { - Point X0 = circle0.center(); - double r0 = circle0.ray(); - Point X1 = circle1.center(); - double r1 = circle1.ray(); - - /* dx and dy are the vertical and horizontal distances between - * the circle centers. - */ - Point D = X1 - X0; - - /* Determine the straight-line distance between the centers. */ - double d = L2(D); - - /* Check for solvability. */ - if (d > (r0 + r1)) - { - /* no solution. circles do not intersect. */ - return 0; - } - if (d <= fabs(r0 - r1)) - { - /* no solution. one circle is contained in the other */ - return 1; - } - - /* 'point 2' is the point where the line through the circle - * intersection points crosses the line between the circle - * centers. - */ - - /* Determine the distance from point 0 to point 2. */ - double a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ; - - /* Determine the coordinates of point 2. */ - Point p2 = X0 + D * (a/d); - - /* Determine the distance from point 2 to either of the - * intersection points. - */ - double h = std::sqrt((r0*r0) - (a*a)); - - /* Now determine the offsets of the intersection points from - * point 2. - */ - Point r = (h/d)*rot90(D); - - /* Determine the absolute intersection points. */ - p0 = p2 + r; - p1 = p2 - r; - - return 2; - } - /** - * Find circle that touches inside of the curve, with radius matching the curvature, at time value \c t. - * Because this method internally uses unitTangentAt, t should be smaller than 1.0 (see unitTangentAt). - */ - static Circle touching_circle( D2 const &curve, double t, double tol=0.01 ) - { - D2 dM=derivative(curve); - if ( are_near(L2sq(dM(t)),0.) ) { - dM=derivative(dM); - } - if ( are_near(L2sq(dM(t)),0.) ) { // try second time - dM=derivative(dM); - } - Piecewise > unitv = unitVector(dM,tol); - Piecewise dMlength = dot(Piecewise >(dM),unitv); - Piecewise k = cross(derivative(unitv),unitv); - k = divide(k,dMlength,tol,3); - double curv = k(t); // note that this value is signed - - Geom::Point normal = unitTangentAt(curve, t).cw(); - double radius = 1/curv; - Geom::Point center = curve(t) + radius*normal; - return Geom::Circle(center, fabs(radius)); - } - - static std::vector split_at_cusps(const Geom::Path& in) - { - Geom::PathVector out = Geom::PathVector(); - Geom::Path temp = Geom::Path(); - - for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) - { - temp = Geom::Path(); - temp.append(in[path_descr]); - out.push_back(temp); - } - - return out; - } - - static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) - { - std::vector temp; - sbasis_to_bezier(temp, sbasis_in, 4); - return Geom::CubicBezier( temp ); - } - - static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, - Geom::Point const & origin_b, Geom::Point const & vector_b) - { - Geom::Coord denom = cross(vector_b, vector_a); - if (!Geom::are_near(denom,0.)){ - Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; - return origin_a + t * vector_a; - } - return boost::none; - } + D2 dM=derivative(curve); + if ( are_near(L2sq(dM(t)),0.) ) { + dM=derivative(dM); + } + if ( are_near(L2sq(dM(t)),0.) ) { // try second time + dM=derivative(dM); + } + Piecewise > unitv = unitVector(dM,tol); + Piecewise dMlength = dot(Piecewise >(dM),unitv); + Piecewise k = cross(derivative(unitv),unitv); + k = divide(k,dMlength,tol,3); + double curv = k(t); // note that this value is signed + + Geom::Point normal = unitTangentAt(curve, t).cw(); + double radius = 1/curv; + Geom::Point center = curve(t) + radius*normal; + return Geom::Circle(center, fabs(radius)); } -namespace Outline +static std::vector split_at_cusps(const Geom::Path& in) { + Geom::PathVector out = Geom::PathVector(); + Geom::Path temp = Geom::Path(); + + for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) { + temp = Geom::Path(); + temp.append(in[path_descr]); + out.push_back(temp); + } + + return out; +} + +static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) +{ + std::vector temp; + sbasis_to_bezier(temp, sbasis_in, 4); + return Geom::CubicBezier( temp ); +} + +static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, + Geom::Point const & origin_b, Geom::Point const & vector_b) +{ + Geom::Coord denom = cross(vector_b, vector_a); + if (!Geom::are_near(denom,0.)) { + Geom::Coord t = (cross(origin_a,vector_b) + cross(vector_b,origin_b)) / denom; + return origin_a + t * vector_a; + } + return boost::none; +} +} + +namespace Outline { typedef Geom::D2 D2SB; typedef Geom::Piecewise PWD2; @@ -160,72 +155,70 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) unsigned order = bezierOrder(&cbc1); Geom::Point start_point; - Geom::Point cross_point = cbc1.finalPoint(); - Geom::Point end_point; - - //assert(cbc1.finalPoint() == cbc2.initialPoint()); - //short circuiting? - if (cbc1.finalPoint() != cbc2.initialPoint()) { - printf("There was an issue when asserting that one curve's end is the start of the other. Line %d, File %s\n" - "By default we are going to say that this is an inside join, so we cannot make a line join for it.\n", __LINE__, __FILE__); - return false; + Geom::Point cross_point = cbc1.finalPoint(); + Geom::Point end_point; + + //assert(cbc1.finalPoint() == cbc2.initialPoint()); + //short circuiting? + if (cbc1.finalPoint() != cbc2.initialPoint()) { + printf("There was an issue when asserting that one curve's end is the start of the other. Line %d, File %s\n" + "By default we are going to say that this is an inside join, so we cannot make a line join for it.\n", __LINE__, __FILE__); + return false; + } + switch (order) { + case 3: + start_point = (static_cast(&cbc1))->operator[] (2); + //major league b***f***ing + if (are_near(start_point, cross_point, 0.0000001)) { + start_point = (static_cast(&cbc1))->operator[] (1); } - switch (order) - { - case 3: - start_point = (static_cast(&cbc1))->operator[] (2); - //major league b***f***ing - if (are_near(start_point, cross_point, 0.0000001)) { - start_point = (static_cast(&cbc1))->operator[] (1); - } - break; - case 2: - //this never happens - start_point = (static_cast(&cbc1))->operator[] (1); - break; - case 1: - default: - start_point = cbc1.initialPoint(); - } - - order = Outline::bezierOrder(&cbc2); - - switch (order) - { - case 3: - end_point = (static_cast(&cbc2))->operator[] (1); - if (are_near(end_point, cross_point, 0.0000001)) { - end_point = (static_cast(&cbc2))->operator[] (2); - } - break; - case 2: - end_point = (static_cast(&cbc2))->operator[] (1); - break; - case 1: - default: - end_point = cbc2.finalPoint(); - } - //got our three points, now let's see what their clockwise angle is - - //Much credit to Wikipedia for the following ( http://en.wikipedia.org/wiki/Graham_scan ) - /******************************************************************** + break; + case 2: + //this never happens + start_point = (static_cast(&cbc1))->operator[] (1); + break; + case 1: + default: + start_point = cbc1.initialPoint(); + } + + order = Outline::bezierOrder(&cbc2); + + switch (order) { + case 3: + end_point = (static_cast(&cbc2))->operator[] (1); + if (are_near(end_point, cross_point, 0.0000001)) { + end_point = (static_cast(&cbc2))->operator[] (2); + } + break; + case 2: + end_point = (static_cast(&cbc2))->operator[] (1); + break; + case 1: + default: + end_point = cbc2.finalPoint(); + } + //got our three points, now let's see what their clockwise angle is + + //Much credit to Wikipedia for the following ( http://en.wikipedia.org/wiki/Graham_scan ) + /******************************************************************** # Three points are a counter-clockwise turn if ccw > 0, clockwise if # ccw < 0, and collinear if ccw = 0 because ccw is a determinant that # gives the signed area of the triangle formed by p1, p2 and p3. function ccw(p1, p2, p3): - return (p2.x - p1.x)*(p3.y - p1.y) - (p2.y - p1.y)*(p3.x - p1.x) + return (p2.x - p1.x)*(p3.y - p1.y) - (p2.y - p1.y)*(p3.x - p1.x) *********************************************************************/ - + double ccw = ( (cross_point.x() - start_point.x()) * (end_point.y() - start_point.y()) ) - ( (cross_point.y() - start_point.y()) * (end_point.x() - start_point.x()) ); if (ccw > 0) return true; return false; } -void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, +void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, double line_width, bool outside = false) { - bool lineProblem = (dynamic_cast *>(cbc1)) || (dynamic_cast *>(cbc2)); + bool lineProblem = (dynamic_cast *>(cbc1)) || (dynamic_cast *>(cbc2)); if ( outside && !lineProblem ) { Geom::Path pth; pth.append(*cbc1); @@ -271,9 +264,8 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } } else { boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) - { + cbc2->initialPoint(), tang2); + if (p) { //check size of miter Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; Geom::Coord len = distance(*p, point_on_path); @@ -284,19 +276,18 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } path_builder.appendNew (endPt); } - } - if ( outside && lineProblem ) { - Geom::Path pth; + } + if ( outside && lineProblem ) { + Geom::Path pth; pth.append(*cbc1); - Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); + Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) - { + pth.append( *cbc2 ); + Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); + + boost::optional p = intersection_point (cbc1->finalPoint(), tang1, + cbc2->initialPoint(), tang2); + if (p) { //check size of miter Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; Geom::Coord len = distance(*p, point_on_path); @@ -306,13 +297,13 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } } path_builder.appendNew (endPt); - } - if ( !outside ) { - path_builder.appendNew (endPt); - } + } + if ( !outside ) { + path_builder.appendNew (endPt); + } } -void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, +void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, double miter_limit, double line_width, bool outside = false) { //the most important work for the reflected join is done here @@ -320,7 +311,7 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb //determine where we are in the path. If we're on the inside, ignore //and just lineTo. On the outside, we'll do a little reflection magic :) Geom::Crossings cross; - + if (outside) { Geom::Path pth; pth.append(*cbc1); @@ -347,9 +338,8 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb if ( cross.empty() ) { //curves didn't cross; default to miter boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) - { + cbc2->initialPoint(), tang2); + if (p) { //check size of miter Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; Geom::Coord len = distance(*p, point_on_path); @@ -388,27 +378,26 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double // NOTE: it is important to notice the distinction between a Geom::Path and a livarot Path here! // if you do not see "Geom::" there is a different function set! Geom::PathVector pv = split_at_cusps(path_in); - + Path to_outline; Path outlined_result; - + Geom::Path path_builder = Geom::Path(); //the path to store the result in Geom::PathVector * path_vec; //needed because livarot returns a goddamn pointer - + const unsigned k = path_in.size(); - - for (unsigned u = 0; u < k; u+=2) - { + + for (unsigned u = 0; u < k; u+=2) { to_outline = Path(); outlined_result = Path(); - + to_outline.LoadPath(pv[u], Geom::Affine(), false, false); to_outline.OutsideOutline(&outlined_result, line_width / 2, join_straight, butt_straight, 10); //now a curve has been outside outlined and loaded into outlined_result - + //get the Geom::Path path_vec = outlined_result.MakePathVector(); - + //thing to do on the first run through if (u == 0) { //I could use the pv->operator[] (0) notation but that looks terrible @@ -417,58 +406,64 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double //get the curves ready for the operation Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate(); Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); - + //do the reflection/extrapolation: - if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } - else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } + if (extrapolate) { + extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); + } else { + reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); + } } - + path_builder.append( (*path_vec)[0] ); - + //outline the next segment, but don't store it yet if (path_vec) delete path_vec; - + if (u < k - 1) { outlined_result = Path(); to_outline = Path(); - + to_outline.LoadPath(pv[u+1], Geom::Affine(), false, false); to_outline.OutsideOutline(&outlined_result, line_width / 2, join_straight, butt_straight, 10); - + path_vec = outlined_result.MakePathVector(); - + //get the curves ready for the operation Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate(); Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); - + //do the reflection/extrapolation: - if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); } - else { reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); } - + if (extrapolate) { + extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); + } else { + reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, + outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); + } + //Now we can store it. path_builder.append( (*path_vec)[0] ); - + if (cbc1) delete cbc1; if (cbc2) delete cbc2; if (path_vec) delete path_vec; } } - + return path_builder; } -Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, +Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtType butt, double miter_lim, bool extrapolate) { Geom::PathVector path_out; - + unsigned pv_size = path_in.size(); for (unsigned i = 0; i < pv_size; i++) { - + if (path_in[i].size() > 1) { //since you've made it this far, hopefully all this is obvious :P Geom::Path with_direction; @@ -484,8 +479,8 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, newPath = Geom::path_from_piecewise(pwd2, 0.01)[0]; //fuk this with_direction = Outline::doAdvHalfOutline( newPath, -line_width, miter_lim, extrapolate ); - against_direction = Outline::doAdvHalfOutline( newPath.reverse(), -line_width, miter_lim, extrapolate ); - + against_direction = Outline::doAdvHalfOutline( newPath.reverse(), -line_width, miter_lim, extrapolate ); + /*if (dynamic_cast *>(&newPath[newPath.size()])) { //delete the 'Z' newPath.erase_last(); @@ -497,54 +492,54 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, newPath.erase_last(); newPath.append(path_in[i][path_in[i].size() - 1]); newPath.appendNew(newPath.initialPoint()); - newPath.erase_last(); + newPath.erase_last(); }*/ } Geom::PathBuilder pb; - + //add in the...do I really need to say this? pb.moveTo(with_direction.initialPoint()); pb.append(with_direction); - + //add in our line caps if (!path_in[i].closed()) { switch (butt) { - case butt_straight: - pb.lineTo(against_direction.initialPoint()); - break; - case butt_round: - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, against_direction.initialPoint() ); - break; - case butt_pointy: - //I have ZERO idea what to do here. - pb.lineTo(against_direction.initialPoint()); - break; - case butt_square: - pb.lineTo(against_direction.initialPoint()); - break; + case butt_straight: + pb.lineTo(against_direction.initialPoint()); + break; + case butt_round: + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, against_direction.initialPoint() ); + break; + case butt_pointy: + //I have ZERO idea what to do here. + pb.lineTo(against_direction.initialPoint()); + break; + case butt_square: + pb.lineTo(against_direction.initialPoint()); + break; } } else { pb.moveTo(against_direction.initialPoint()); } - + pb.append(against_direction); - + //cap (if necessary) if (!path_in[i].closed()) { switch (butt) { - case butt_straight: - pb.lineTo(with_direction.initialPoint()); - break; - case butt_round: - pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, with_direction.initialPoint() ); - break; - case butt_pointy: - //I have ZERO idea what to do here. - pb.lineTo(with_direction.initialPoint()); - break; - case butt_square: - pb.lineTo(with_direction.initialPoint()); - break; + case butt_straight: + pb.lineTo(with_direction.initialPoint()); + break; + case butt_round: + pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, with_direction.initialPoint() ); + break; + case butt_pointy: + //I have ZERO idea what to do here. + pb.lineTo(with_direction.initialPoint()); + break; + case butt_square: + pb.lineTo(with_direction.initialPoint()); + break; } } pb.flush(); @@ -554,7 +549,7 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, } else { Path p = Path(); Path outlinepath = Path(); - + p.LoadPath(path_in[i], Geom::Affine(), false, false); p.Outline(&outlinepath, line_width / 2, static_cast(join), butt, miter_lim); Geom::PathVector *pv_p = outlinepath.MakePathVector(); diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h index 23cc7e2c4..27bc62d45 100644 --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -12,15 +12,15 @@ enum LineJoinType { LINEJOIN_EXTRAPOLATED }; -namespace Outline +namespace Outline { - unsigned bezierOrder (const Geom::Curve* curve_in); - std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtType linecap_type, - LineJoinType linejoin_type, double miter_limit); - - Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, - ButtType butt, double miter_lim, bool extrapolate = false); - Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit); + unsigned bezierOrder (const Geom::Curve* curve_in); + std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtType linecap_type, + LineJoinType linejoin_type, double miter_limit); + + /*Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, + ButtType butt, double miter_lim, bool extrapolate = false);*/ + Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit); } #endif // _SEEN_PATH_OUTLINE_H -- cgit v1.2.3 From b7c026006efcc5461dcef0f3c9a5e1b87d162d3d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 2 Apr 2014 17:33:37 -0400 Subject: Hopefully remove the last of the exception throwing with certain path effects (bzr r13090.1.43) --- src/live_effects/pathoutlineprovider.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index ad39a7416..56f741417 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -250,17 +250,21 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); + try { + if (arc0) { + path_builder.append (arc0->toSBasis()); + delete arc0; + arc0 = NULL; + } - if (arc0) { - path_builder.append (arc0->toSBasis()); - delete arc0; - arc0 = NULL; - } - - if (arc1) { - path_builder.append (arc1->toSBasis()); - delete arc1; - arc1 = NULL; + if (arc1) { + path_builder.append (arc1->toSBasis()); + delete arc1; + arc1 = NULL; + } + } catch (std::exception ex) { + printf("Exception occured, probably NaN or infinite valued points: %s\n", ex.what()); + path_builder.appendNew(endPt); } } else { boost::optional p = intersection_point (cbc1->finalPoint(), tang1, -- cgit v1.2.3 From b2f138290a5dedf907fe3e67d12ab93adfd5fd50 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 2 Apr 2014 21:49:11 -0400 Subject: Fix some minor issues (bzr r13090.1.44) --- src/live_effects/lpe-taperstroke.cpp | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 97ae02e3b..c452c825c 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -248,7 +248,7 @@ Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_toler Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double width); //references to pointers, because magic -void subdivideCurve(Geom::Curve * curve_in, Geom::Coord t, Geom::Curve *& val_first, Geom::Curve *& val_second); +void subdivideCurve(const Geom::Curve * curve_in, Geom::Coord t, Geom::Curve *& val_first, Geom::Curve *& val_second); Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) { @@ -269,7 +269,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) } } - //don't ever let it be zero + //don't let it be zero if (attach_start <= 0.00000001) { attach_start.param_set_value( 0.00000001 ); zeroStart = true; @@ -329,12 +329,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) throwaway_path = Outline::PathOutsideOutline(pathv_out[1], -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - if (!zeroStart) { - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); - } else { - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); if (!zeroEnd) { //append the ending taper @@ -346,25 +341,17 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; - throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path); + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); } //append the inside outline of the path (against direction) throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - if (!zeroEnd) { - //throwaway_path.setInitial(real_path.finalPoint()); - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } else { - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - } - - //hmm - real_path.setFinal(real_path.initialPoint()); - - real_path.close(); + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + real_path.appendNew(real_path.initialPoint()); + real_path.close(); + real_pathv.push_back(real_path); return real_pathv; -- cgit v1.2.3 From 4007abe02509fc1e312a007fb26f31c5a595df26 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 3 Apr 2014 21:04:51 -0400 Subject: Begin first stage of resolving issue with duplicate knots (bzr r13090.1.46) --- src/knotholder.cpp | 14 ++++++++------ src/live_effects/lpe-taperstroke.cpp | 10 ++++++++++ src/live_effects/pathoutlineprovider.cpp | 4 +++- src/sp-lpe-item.cpp | 5 +++++ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index cf87423d4..94a041385 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -203,14 +203,16 @@ KnotHolder::knot_ungrabbed_handler(SPKnot */*knot*/, guint) /* do cleanup tasks (e.g., for LPE items write the parameter values * that were changed by dragging the handle to SVG) */ - if (SP_IS_LPE_ITEM(object)) { + if (dynamic_cast (object)) { // This writes all parameters to SVG. Is this sufficiently efficient or should we only // write the ones that were changed? - - Inkscape::LivePathEffect::Effect *lpe = SP_LPE_ITEM(object)->getCurrentLPE(); - if (lpe) { - LivePathEffectObject *lpeobj = lpe->getLPEObj(); - lpeobj->updateRepr(); + SPLPEItem * lpeitem = SP_LPE_ITEM(this->item); + if (lpeitem) { + Inkscape::LivePathEffect::Effect *lpe = lpeitem->getCurrentLPE(); + if (lpe) { + LivePathEffectObject *lpeobj = lpe->getLPEObj(); + lpeobj->updateRepr(); + } } } diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index c452c825c..dc70782c4 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -657,6 +657,11 @@ void KnotHolderEntityAttachBegin::knot_set(Geom::Point const &p, Geom::Point con Geom::Point const s = snap_knot_position(p, state); SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + if (!curve) { + //oops + lpe->attach_start.param_set_value(0); + return; + } Geom::PathVector pathv = curve->get_pathvector(); Piecewise > pwd2; Geom::Path p_in = return_at_first_cusp(pathv[0]); @@ -678,6 +683,11 @@ void KnotHolderEntityAttachEnd::knot_set(Geom::Point const &p, Geom::Point const Geom::Point const s = snap_knot_position(p, state); SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); + if (!curve) { + //oops + lpe->attach_end.param_set_value(0); + return; + } Geom::PathVector pathv = curve->get_pathvector(); Piecewise > pwd2; Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index 56f741417..a696728d6 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -1,3 +1,5 @@ +#include //g_critical + #include "pathoutlineprovider.h" #include "livarot/path-description.h" #include <2geom/angle.h> @@ -262,7 +264,7 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve delete arc1; arc1 = NULL; } - } catch (std::exception ex) { + } catch (std::exception & ex) { printf("Exception occured, probably NaN or infinite valued points: %s\n", ex.what()); path_builder.appendNew(endPt); } diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 71aa9545a..eda34a0b5 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -553,6 +553,7 @@ bool SPLPEItem::hasBrokenPathEffect() const bool SPLPEItem::hasPathEffect() const { + if (!path_effect_list) return false; //nullptr sucks if (path_effect_list->empty()) { return false; } @@ -698,6 +699,7 @@ PathEffectList const SPLPEItem::getEffectList() const Inkscape::LivePathEffect::LPEObjectReference* SPLPEItem::getCurrentLPEReference() { + if (!this->hasPathEffect()) return NULL; if (!this->current_path_effect && !this->path_effect_list->empty()) { setCurrentPathEffect(this->path_effect_list->back()); } @@ -707,6 +709,9 @@ Inkscape::LivePathEffect::LPEObjectReference* SPLPEItem::getCurrentLPEReference( Inkscape::LivePathEffect::Effect* SPLPEItem::getCurrentLPE() { + if (path_effect_list == NULL) { + return NULL; + } Inkscape::LivePathEffect::LPEObjectReference* lperef = getCurrentLPEReference(); if (lperef && lperef->lpeobject) -- cgit v1.2.3 From 09ab1cca2d7fb8cdbb252feb4d1ef7945249c051 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 4 Apr 2014 15:37:48 -0400 Subject: Prevent crash on "three knot" issue (bzr r13090.1.47) --- src/knotholder.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 94a041385..30a7e58d5 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -234,9 +234,14 @@ KnotHolder::knot_ungrabbed_handler(SPKnot */*knot*/, guint) else object_verb = SP_VERB_SELECTION_DYNAMIC_OFFSET; } - - DocumentUndo::done(object->document, object_verb, - _("Move handle")); + if (object) { //increasingly aggressive sanity checks + if (object->document) { + if (object_verb <= SP_VERB_LAST && object_verb >= SP_VERB_INVALID) { + DocumentUndo::done(object->document, object_verb, + _("Move handle")); + } + } + } //else { abort(); } } } -- cgit v1.2.3 From 6f10c7f675fae8c20f24f01b7cffb861f3726e9d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 6 Apr 2014 17:38:30 -0400 Subject: Properly allow effect stacking with knotholders (and add extra LPE functionality) (bzr r13090.1.48) --- src/live_effects/effect.cpp | 18 +++++++++ src/live_effects/effect.h | 8 ++++ src/live_effects/lpe-attach-path.cpp | 11 ++---- src/live_effects/lpe-attach-path.h | 2 - src/live_effects/lpe-knot.cpp | 4 ++ src/live_effects/lpe-knot.h | 3 +- src/live_effects/lpe-tangent_to_curve.cpp | 19 ++++------ src/live_effects/lpe-tangent_to_curve.h | 1 - src/live_effects/lpe-taperstroke.cpp | 62 +++++++++++++++---------------- src/snap.cpp | 2 +- src/sp-lpe-item.cpp | 4 +- 11 files changed, 77 insertions(+), 57 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 8bf210270..99282a312 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -373,6 +373,24 @@ void Effect::doOnRemove (SPLPEItem const* lpeitem) { } +//secret impl methods (shhhh!) +void Effect::doOnApply_impl(SPLPEItem const* lpeitem) +{ + sp_lpe_item = const_cast(lpeitem); + sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); + pathvector_before_effect = sp_curve->get_pathvector(); + doOnApply(lpeitem); +} + +void Effect::doBeforeEffect_impl(SPLPEItem const* lpeitem) +{ + sp_lpe_item = const_cast(lpeitem); + sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); + pathvector_before_effect = sp_curve->get_pathvector(); + + doBeforeEffect(lpeitem); +} + /** * Effects can have a parameter path set before they are applied by accepting a nonzero number of * mouse clicks. This method activates the pen context, which waits for the specified number of diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index 85c930def..d2d9f3b63 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -53,6 +53,11 @@ public: EffectType effectType() const; + //basically, to get this method called before the derived classes, a bit + //of indirection is needed. We first call these methods, then the below. + void doOnApply_impl(SPLPEItem const* lpeitem); + void doBeforeEffect_impl(SPLPEItem const* lpeitem); + virtual void doOnApply (SPLPEItem const* lpeitem); virtual void doBeforeEffect (SPLPEItem const* lpeitem); @@ -149,6 +154,9 @@ protected: // instead of normally 'splitting' the path into continuous pwd2 paths and calling doEffect_pwd2 for each. bool concatenate_before_pwd2; + SPLPEItem * sp_lpe_item; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. + SPCurve * sp_curve; + std::vector pathvector_before_effect; private: bool provides_own_flash_paths; // if true, the standard flash path is suppressed diff --git a/src/live_effects/lpe-attach-path.cpp b/src/live_effects/lpe-attach-path.cpp index 0cceb1cb7..96372892e 100644 --- a/src/live_effects/lpe-attach-path.cpp +++ b/src/live_effects/lpe-attach-path.cpp @@ -62,15 +62,10 @@ void LPEAttachPath::resetDefaults(SPItem const * item) curve_end_previous_origin = end_path_curve_end.getOrigin(); } -void LPEAttachPath::doBeforeEffect(SPLPEItem const *lpeitem) -{ - lpe_effect = const_cast (lpeitem); -} - void LPEAttachPath::doEffect (SPCurve * curve) { std::vector this_pathv = curve->get_pathvector(); - if (lpe_effect && !this_pathv.empty()) { + if (sp_lpe_item && !this_pathv.empty()) { Geom::Path p = Geom::Path(this_pathv.front().initialPoint()); bool set_start_end = start_path_curve_end.getOrigin() != curve_start_previous_origin; @@ -79,7 +74,7 @@ void LPEAttachPath::doEffect (SPCurve * curve) if (start_path.linksToPath()) { std::vector linked_pathv = start_path.get_pathvector(); - Geom::Affine linkedtransform = start_path.getObject()->getRelativeTransform(lpe_effect); + Geom::Affine linkedtransform = start_path.getObject()->getRelativeTransform(sp_lpe_item); if ( !linked_pathv.empty() ) { @@ -132,7 +127,7 @@ void LPEAttachPath::doEffect (SPCurve * curve) if (end_path.linksToPath()) { std::vector linked_pathv = end_path.get_pathvector(); - Geom::Affine linkedtransform = end_path.getObject()->getRelativeTransform(lpe_effect); + Geom::Affine linkedtransform = end_path.getObject()->getRelativeTransform(sp_lpe_item); if ( !linked_pathv.empty() ) { diff --git a/src/live_effects/lpe-attach-path.h b/src/live_effects/lpe-attach-path.h index 390282f90..1d6c590d1 100644 --- a/src/live_effects/lpe-attach-path.h +++ b/src/live_effects/lpe-attach-path.h @@ -25,7 +25,6 @@ public: LPEAttachPath(LivePathEffectObject *lpeobject); virtual ~LPEAttachPath(); - virtual void doBeforeEffect(const SPLPEItem *lpeitem); virtual void doEffect (SPCurve * curve); virtual void resetDefaults(SPItem const * item); @@ -45,7 +44,6 @@ private: ScalarParam end_path_position; TransformedPointParam end_path_curve_start; VectorParam end_path_curve_end; - SPLPEItem * lpe_effect; }; }; //namespace LivePathEffect diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index 581c632f5..05b6ed795 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -538,6 +538,10 @@ LPEKnot::doBeforeEffect (SPLPEItem const* lpeitem) { using namespace Geom; original_bbox(lpeitem); + + if (SP_IS_PATH(lpeitem)) { + supplied_path = SP_PATH(lpeitem)->getCurve()->get_pathvector(); + } gpaths = std::vector(); gstroke_widths = std::vector(); diff --git a/src/live_effects/lpe-knot.h b/src/live_effects/lpe-knot.h index b937f9021..12ab32e5b 100644 --- a/src/live_effects/lpe-knot.h +++ b/src/live_effects/lpe-knot.h @@ -64,7 +64,8 @@ public: void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); protected: - virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector &hp_vec); + virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector &hp_vec); + std::vector supplied_path; //for knotholder business private: void updateSwitcher(); diff --git a/src/live_effects/lpe-tangent_to_curve.cpp b/src/live_effects/lpe-tangent_to_curve.cpp index dbebdf7fb..bce4876af 100644 --- a/src/live_effects/lpe-tangent_to_curve.cpp +++ b/src/live_effects/lpe-tangent_to_curve.cpp @@ -16,8 +16,6 @@ #include #include "live_effects/lpe-tangent_to_curve.h" -// FIXME: The following are only needed to convert the path's SPCurve* to pwd2. -// There must be a more convenient way to achieve this. #include "sp-path.h" #include "display/curve.h" @@ -108,13 +106,13 @@ LPETangentToCurve::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desk { KnotHolderEntity *e = new TtC::KnotHolderEntityLeftEnd(this); e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Adjust the \"left\" end of the tangent") ); + _("Adjust the left end of the tangent") ); knotholder->add(e); } { KnotHolderEntity *e = new TtC::KnotHolderEntityRightEnd(this); e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Adjust the \"right\" end of the tangent") ); + _("Adjust the right end of the tangent") ); knotholder->add(e); } }; @@ -130,14 +128,13 @@ KnotHolderEntityAttachPt::knot_set(Geom::Point const &p, Geom::Point const &/*or Geom::Point const s = snap_knot_position(p, state); - // FIXME: There must be a better way of converting the path's SPCurve* to pwd2. - SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); - Geom::PathVector pathv = curve->get_pathvector(); - Piecewise > pwd2; - for (unsigned int i=0; i < pathv.size(); i++) { - pwd2.concat(pathv[i].toPwSb()); + if ( !SP_IS_SHAPE(lpe->sp_lpe_item) ) { + //lpe->t_attach.param_set_value(0); + g_warning("LPEItem is not a path! %s:%d\n", __FILE__, __LINE__); + return; } - + Piecewise > pwd2 = paths_to_pw( lpe->pathvector_before_effect ); + double t0 = nearest_point(s, pwd2); lpe->t_attach.param_set_value(t0); diff --git a/src/live_effects/lpe-tangent_to_curve.h b/src/live_effects/lpe-tangent_to_curve.h index 309afc14b..8e44c01d1 100644 --- a/src/live_effects/lpe-tangent_to_curve.h +++ b/src/live_effects/lpe-tangent_to_curve.h @@ -34,7 +34,6 @@ class LPETangentToCurve : public Effect { public: LPETangentToCurve(LivePathEffectObject *lpeobject); virtual ~LPETangentToCurve(); - virtual Geom::Piecewise > doEffect_pwd2 (Geom::Piecewise > const & pwd2_in); diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index dc70782c4..901abff70 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -235,9 +235,11 @@ Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_toler } //clearly it's collinear if two occupy the same point - g_assert(!are_near(start_point, cross_point, 0.0000001)); - g_assert(!are_near(cross_point, end_point, 0.0000001)); - g_assert(!are_near(start_point, end_point, 0.0000001)); + if (are_near(start_point, cross_point, 0.0000001) || + are_near(cross_point, end_point, 0.0000001) || + are_near(start_point, end_point, 0.0000001) ) { + g_critical("Holy crap, something went wrong! %s:%d\n", __FILE__, __LINE__); + } if (!are_collinear(start_point, cross_point, end_point, smooth_tolerance)) break; @@ -533,12 +535,6 @@ Geom::Piecewise > stretch_along(Geom::Piecewiseextent(); - noffset *= pattBndsY->extent(); - toffset *= pattBndsX->extent(); - }*/ - //Prevent more than 90% overlap... if (xspace < -pattBndsX->extent()*.9) { xspace = -pattBndsX->extent()*.9; @@ -587,12 +583,6 @@ Geom::Piecewise > stretch_along(Geom::Piecewiseget_curve_for_edit(); - if (!curve) { + if (!SP_IS_SHAPE(lpe->sp_lpe_item) ) { + g_warning("LPEItem is not a path! %s:%d\n", __FILE__, __LINE__); + return; + } + + SPCurve* curve; + if ( !(curve = SP_SHAPE(lpe->sp_lpe_item)->getCurve()) ) { //oops - lpe->attach_start.param_set_value(0); + //lpe->attach_start.param_set_value(0); return; } - Geom::PathVector pathv = curve->get_pathvector(); + //in case you are wondering, the above are simply sanity checks. we never want to actually + //use that object. + + Geom::PathVector pathv = lpe->pathvector_before_effect; + Piecewise > pwd2; Geom::Path p_in = return_at_first_cusp(pathv[0]); pwd2.concat(p_in.toPwSb()); - std::vector > > pwd_vec = split_at_discontinuities(pwd2); - double t0 = nearest_point(s, pwd_vec[0]); + double t0 = nearest_point(s, pwd2); lpe->attach_start.param_set_value(t0); // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. @@ -682,22 +680,24 @@ void KnotHolderEntityAttachEnd::knot_set(Geom::Point const &p, Geom::Point const Geom::Point const s = snap_knot_position(p, state); - SPCurve *curve = SP_PATH(item)->get_curve_for_edit(); - if (!curve) { + if (!SP_IS_SHAPE(lpe->sp_lpe_item) ) { + g_warning("LPEItem is not a path! %s:%d\n", __FILE__, __LINE__); + return; + } + + SPCurve* curve; + if ( !(curve = SP_SHAPE(lpe->sp_lpe_item)->getCurve()) ) { //oops - lpe->attach_end.param_set_value(0); + //lpe->attach_end.param_set_value(0); return; } - Geom::PathVector pathv = curve->get_pathvector(); - Piecewise > pwd2; + Geom::PathVector pathv = lpe->pathvector_before_effect; Geom::Path p_in = return_at_first_cusp(pathv[0].reverse()); - pwd2.concat(p_in.toPwSb()); - std::vector > > pwd_vec = split_at_discontinuities(pwd2); - - double t0 = nearest_point(s, pwd_vec[0]); + Piecewise > pwd2 = p_in.toPwSb(); + + double t0 = nearest_point(s, pwd2); lpe->attach_end.param_set_value(t0); - // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); } Geom::Point KnotHolderEntityAttachBegin::knot_get() const diff --git a/src/snap.cpp b/src/snap.cpp index ecf799cdc..c3891baea 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -116,7 +116,7 @@ void SnapManager::freeSnapReturnByRef(Geom::Point &p, Inkscape::SnapSourceType const source_type, Geom::OptRect const &bbox_to_snap) const { - Inkscape::SnappedPoint const s = freeSnap(Inkscape::SnapCandidatePoint(p, source_type), bbox_to_snap); + Inkscape::SnappedPoint const s = freeSnap(Inkscape::SnapCandidatePoint(p, source_type, Inkscape::SNAPTARGET_PATH), bbox_to_snap); s.getPointIfSnapped(p); } diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index eda34a0b5..712a0d579 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -242,7 +242,7 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { // Groups have their doBeforeEffect called elsewhere if (!SP_IS_GROUP(this)) { - lpe->doBeforeEffect(this); + lpe->doBeforeEffect_impl(this); } try { @@ -414,7 +414,7 @@ void SPLPEItem::addPathEffect(gchar *value, bool reset) } // perform this once when the effect is applied - lpe->doOnApply(this); + lpe->doOnApply_impl(this); // indicate that all necessary preparations are done and the effect can be performed lpe->setReady(); -- cgit v1.2.3 From a354238633c206078acc11a60d02382cee572740 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 12 Apr 2014 00:52:48 -0400 Subject: Wonderful code optimizations (bzr r13090.1.50) --- src/live_effects/lpe-taperstroke.cpp | 153 +++---------------------------- src/live_effects/pathoutlineprovider.cpp | 79 ++++++---------- src/live_effects/pathoutlineprovider.h | 6 ++ 3 files changed, 46 insertions(+), 192 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 901abff70..ce07ed962 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -180,77 +180,15 @@ void LPETaperStroke::doOnRemove(SPLPEItem const* lpeitem) //actual effect impl here -Geom::Path return_at_first_cusp (Geom::Path const & path_in, double smooth_tolerance = 0.05) +Geom::Path return_at_first_cusp (Geom::Path const & path_in, double /*smooth_tolerance*/ = 0.05) { - Geom::Path path_out = Geom::Path(); - - for (unsigned i = 0; i < path_in.size(); i++) { - path_out.append(path_in[i]); - if (path_in.size() == 1) - break; - - //determine order of curve - int order = Outline::bezierOrder(&path_in[i]); - - Geom::Point start_point; - Geom::Point cross_point = path_in[i].finalPoint(); - Geom::Point end_point; - - g_assert(path_in[i].finalPoint() == path_in[i+1].initialPoint()); - - //can you tell that the following expressions have been shaped by - //repeated compiler errors? ;) - switch (order) { - case 3: - start_point = (static_cast(&path_in[i]))->operator[] (2); - //major league b***f***ing - if (are_near(start_point, cross_point, 0.0000001)) { - start_point = (static_cast(&path_in[i]))->operator[] (1); - } - break; - case 2: - //this never happens - start_point = (static_cast(&path_in[i]))->operator[] (1); - break; - case 1: - default: - start_point = path_in[i].initialPoint(); - } - - order = Outline::bezierOrder(&path_in[i+1]); - - switch (order) { - case 3: - end_point = (static_cast(&path_in[i+1]))->operator[] (1); - if (are_near(end_point, cross_point, 0.0000001)) { - end_point = (static_cast(&path_in[i+1]))->operator[] (2); - } - break; - case 2: - end_point = (static_cast(&path_in[i+1]))->operator[] (1); - break; - case 1: - default: - end_point = path_in[i+1].finalPoint(); - } - - //clearly it's collinear if two occupy the same point - if (are_near(start_point, cross_point, 0.0000001) || - are_near(cross_point, end_point, 0.0000001) || - are_near(start_point, end_point, 0.0000001) ) { - g_critical("Holy crap, something went wrong! %s:%d\n", __FILE__, __LINE__); - } - - if (!are_collinear(start_point, cross_point, end_point, smooth_tolerance)) - break; - } - return path_out; + return Geom::split_at_cusps(path_in)[0]; } Geom::Piecewise > stretch_along(Geom::Piecewise > pwd2_in, Geom::Path pattern, double width); //references to pointers, because magic -void subdivideCurve(const Geom::Curve * curve_in, Geom::Coord t, Geom::Curve *& val_first, Geom::Curve *& val_second); +void subdivideCurve(Geom::Curve * curve_in, Geom::Coord t, Geom::Curve *& val_first, Geom::Curve *& val_second); Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) { @@ -378,34 +316,9 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa trimmed_start.append(path_in[0] [i]); } - - //this is pretty annoying - //previously I wrote a function for this but it wasted a lot of time - //so I optimized it back into here. - unsigned order = Outline::bezierOrder(curve_start); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_start); - std::pair cb_pair = cb->subdivide((attach_start - loc)); - trimmed_start.append(cb_pair.first); - curve_start = cb_pair.second.duplicate(); //goes out of scope - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_start); - std::pair qb_pair = qb->subdivide((attach_start - loc)); - trimmed_start.append(qb_pair.first); - curve_start = qb_pair.second.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide((attach_start - loc)); - trimmed_start.append(lb_pair.first); - curve_start = lb_pair.second.duplicate(); - break; - } - } + Geom::Curve * temp; + subdivideCurve(curve_start, attach_start - loc, temp, curve_start); + trimmed_start.append(*temp); //special case: path is one segment long //special case: what if the two knots occupy the same segment? @@ -416,31 +329,9 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa //we have to do some shifting here because the value changed when we reduced the length //of the previous segment. - order = Outline::bezierOrder(curve_start); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_start); - std::pair cb_pair = cb->subdivide(t); - trimmed_end.append(cb_pair.second); - curve_start = cb_pair.first.duplicate(); - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_start); - std::pair qb_pair = qb->subdivide(t); - trimmed_end.append(qb_pair.second); - curve_start = qb_pair.first.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_start); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); - trimmed_end.append(lb_pair.second); - curve_start = lb_pair.first.duplicate(); - break; - } - } - + subdivideCurve(curve_start, t, curve_start, temp); + trimmed_end.append(*temp); + for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); } @@ -468,30 +359,8 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa Geom::Coord t = Geom::nearest_point(end_attach_point, *curve_end); - order = Outline::bezierOrder(curve_end); - switch (order) { - case 3: { - Geom::CubicBezier *cb = static_cast(curve_end); - std::pair cb_pair = cb->subdivide(t); - trimmed_end.append(cb_pair.second); - curve_end = cb_pair.first.duplicate(); - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_end); - std::pair qb_pair = qb->subdivide(t); - trimmed_end.append(qb_pair.second); - curve_end = qb_pair.first.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_end); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); - trimmed_end.append(lb_pair.second); - curve_end = lb_pair.first.duplicate(); - break; - } - } + subdivideCurve(curve_end, t, curve_end, temp); + trimmed_end.append(*temp); for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index a696728d6..5a95da75d 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -9,6 +9,7 @@ #include <2geom/shape.h> #include <2geom/transforms.h> #include <2geom/path-sink.h> +#include "helper/geom-nodetype.h" #include namespace Geom { @@ -99,21 +100,25 @@ static Circle touching_circle( D2 const &curve, double t, double tol=0.0 return Geom::Circle(center, fabs(radius)); } -static std::vector split_at_cusps(const Geom::Path& in) +std::vector split_at_cusps(const Geom::Path& in) { - Geom::PathVector out = Geom::PathVector(); - Geom::Path temp = Geom::Path(); - - for (unsigned path_descr = 0; path_descr < in.size(); path_descr++) { - temp = Geom::Path(); - temp.append(in[path_descr]); + PathVector out = PathVector(); + Path temp = Path(); + + for (unsigned i = 0; i < in.size(); i++) { + temp.append(in[i]); + if ( get_nodetype(in[i], in[i + 1]) != Geom::NODE_SMOOTH ) { + out.push_back(temp); + temp = Path(); + } + } + if (temp.size() > 0) { out.push_back(temp); } - return out; } -static Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) +Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in) { std::vector temp; sbasis_to_bezier(temp, sbasis_in, 4); @@ -140,13 +145,9 @@ typedef Geom::Piecewise PWD2; unsigned bezierOrder (const Geom::Curve* curve_in) { using namespace Geom; - //cast it - const CubicBezier *cbc = dynamic_cast(curve_in); - if (cbc) return 3; - const QuadraticBezier * qbc = dynamic_cast(curve_in); - if (qbc) return 2; - const BezierCurveN<1U> * lbc = dynamic_cast *>(curve_in); - if (lbc) return 1; + if ( const BezierCurve* bz = dynamic_cast(curve_in) ) { + return bz->order(); + } return 0; } @@ -154,8 +155,6 @@ unsigned bezierOrder (const Geom::Curve* curve_in) //is >180 clockwise, otherwise false. bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) { - unsigned order = bezierOrder(&cbc1); - Geom::Point start_point; Geom::Point cross_point = cbc1.finalPoint(); Geom::Point end_point; @@ -167,38 +166,18 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) "By default we are going to say that this is an inside join, so we cannot make a line join for it.\n", __LINE__, __FILE__); return false; } - switch (order) { - case 3: - start_point = (static_cast(&cbc1))->operator[] (2); - //major league b***f***ing - if (are_near(start_point, cross_point, 0.0000001)) { - start_point = (static_cast(&cbc1))->operator[] (1); - } - break; - case 2: - //this never happens - start_point = (static_cast(&cbc1))->operator[] (1); - break; - case 1: - default: - start_point = cbc1.initialPoint(); + + //let's try: + Geom::CubicBezier cubicBezier = Geom::sbasis_to_cubicbezier(cbc1.toSBasis()); + start_point = cubicBezier [2]; + //stupid thing Inkscape does: + if (are_near(start_point, cross_point, 0.0000001)) { + start_point = cubicBezier [1]; } - - order = Outline::bezierOrder(&cbc2); - - switch (order) { - case 3: - end_point = (static_cast(&cbc2))->operator[] (1); - if (are_near(end_point, cross_point, 0.0000001)) { - end_point = (static_cast(&cbc2))->operator[] (2); - } - break; - case 2: - end_point = (static_cast(&cbc2))->operator[] (1); - break; - case 1: - default: - end_point = cbc2.finalPoint(); + cubicBezier = Geom::sbasis_to_cubicbezier(cbc2.toSBasis()); + end_point = cubicBezier [1]; + if (are_near(end_point, cross_point, 0.0000001)) { + end_point = cubicBezier [2]; } //got our three points, now let's see what their clockwise angle is @@ -391,7 +370,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Path path_builder = Geom::Path(); //the path to store the result in Geom::PathVector * path_vec; //needed because livarot returns a goddamn pointer - const unsigned k = path_in.size(); + const unsigned k = pv.size(); for (unsigned u = 0; u < k; u+=2) { to_outline = Path(); diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h index 27bc62d45..0ee0f261e 100644 --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -12,6 +12,12 @@ enum LineJoinType { LINEJOIN_EXTRAPOLATED }; +namespace Geom +{ + Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in); + std::vector split_at_cusps(const Geom::Path& in); +} + namespace Outline { unsigned bezierOrder (const Geom::Curve* curve_in); -- cgit v1.2.3 From 727826e1fdd2c4142b1687e50c174ed14c178427 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 12 Apr 2014 14:18:31 -0400 Subject: Fix triangles in joins (bzr r13090.1.52) --- src/live_effects/lpe-taperstroke.cpp | 58 ++++++++++++++------------------ src/live_effects/pathoutlineprovider.cpp | 45 +++++++++++++++++++++---- 2 files changed, 65 insertions(+), 38 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index ce07ed962..2400b3e37 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -197,6 +197,8 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) bool zeroStart = false; bool zeroEnd = false; + bool metInMiddle = false; + //there is a pretty good chance that people will try to drag the knots //on top of each other, so block it @@ -208,6 +210,10 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) attach_end.param_set_value( size - attach_start ); } } + + if (attach_start == size - attach_end) { + metInMiddle = true; + } //don't let it be zero if (attach_start <= 0.00000001) { @@ -232,10 +238,10 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //don't let the knots be farther than they are allowed to be if ((unsigned)attach_start >= allowed_start) { - attach_start.param_set_value((double)allowed_start - 0.00000001); + attach_start.param_set_value((double)allowed_start - 0.00001); } if ((unsigned)attach_end >= allowed_end) { - attach_end.param_set_value((double)allowed_end - 0.00000001); + attach_end.param_set_value((double)allowed_end - 0.00001); } //remember, Path::operator () means get point at time t @@ -265,11 +271,14 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) real_path.append(throwaway_path); } - //append the outside outline of the path (with direction) - throwaway_path = Outline::PathOutsideOutline(pathv_out[1], - -fabs(line_width), static_cast(join_type.get_value()), miter_limit); + + if (!metInMiddle) { + //append the outside outline of the path (with direction) + throwaway_path = Outline::PathOutsideOutline(pathv_out[1], + -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + } if (!zeroEnd) { //append the ending taper @@ -460,32 +469,17 @@ Geom::Piecewise > stretch_along(Geom::Piecewise(curve_in); - std::pair cb_pair = cb->subdivide(t); - //trimmed_start.append(cb_pair.first); - val_first = cb_pair.first.duplicate(); - val_second = cb_pair.second.duplicate(); - break; - } - case 2: { - Geom::QuadraticBezier *qb = static_cast(curve_in); - std::pair qb_pair = qb->subdivide(t); - //trimmed_start.append(qb_pair.first); - val_first = qb_pair.first.duplicate(); - val_second = qb_pair.second.duplicate(); - break; - } - case 1: { - Geom::BezierCurveN<1> *lb = static_cast * >(curve_in); - std::pair, Geom::BezierCurveN<1> > lb_pair = lb->subdivide(t); - //trimmed_start.append(lb_pair.first); - val_first = lb_pair.first.duplicate(); - val_second = lb_pair.second.duplicate(); - break; - } + if (Geom::LineSegment* linear = dynamic_cast(curve_in)) { + //special case for line segments + std::pair seg_pair = linear->subdivide(t); + val_first = seg_pair.first.duplicate(); + val_second = seg_pair.second.duplicate(); + } else { + //all other cases: + Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(curve_in->toSBasis()); + std::pair cubic_pair = cubic.subdivide(t); + val_first = cubic_pair.first.duplicate(); + val_second = cubic_pair.second.duplicate(); } } diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index 5a95da75d..080f42c08 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -261,6 +261,7 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } path_builder.appendNew (endPt); } + path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); } if ( outside && lineProblem ) { Geom::Path pth; @@ -282,9 +283,22 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } } path_builder.appendNew (endPt); + path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); } if ( !outside ) { - path_builder.appendNew (endPt); + /*path_builder.appendNew (endPt);*/ + Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); + if (!cross.empty()) { + path_builder.erase_last(); + Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(cbc1->toSBasis()); + cubic = cubic.subdivide(cross[0].ta).first; + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + cubic = Geom::sbasis_to_cubicbezier(cbc2->toSBasis()); + cubic = cubic.subdivide(cross[0].tb).second; + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + } else { + path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + } } } @@ -346,9 +360,22 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); } - } else { // cross.empty() + path_builder.append(*cbc2); + } else { //probably on the inside of the corner - path_builder.appendNew ( endPt ); + /*path_builder.appendNew ( endPt );*/ + cross = Geom::crossings(*cbc1, *cbc2); + if (!cross.empty()) { + path_builder.erase_last(); + Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(cbc1->toSBasis()); + cubic = cubic.subdivide(cross[0].ta).first; + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + cubic = Geom::sbasis_to_cubicbezier(cbc2->toSBasis()); + cubic = cubic.subdivide(cross[0].tb).second; + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + } else { + path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + } } } @@ -387,6 +414,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double if (u == 0) { //I could use the pv->operator[] (0) notation but that looks terrible path_builder.start( (*path_vec)[0].initialPoint() ); + path_builder.append( (*path_vec)[0] ); } else { //get the curves ready for the operation Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate(); @@ -400,10 +428,12 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } + Geom::Path temp_path = (*path_vec)[0]; + temp_path.erase(temp_path.begin()); + + path_builder.append( temp_path ); } - path_builder.append( (*path_vec)[0] ); - //outline the next segment, but don't store it yet if (path_vec) delete path_vec; @@ -430,7 +460,10 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double } //Now we can store it. - path_builder.append( (*path_vec)[0] ); + Geom::Path temp_path = (*path_vec)[0]; + temp_path.erase(temp_path.begin()); + + path_builder.append( temp_path ); if (cbc1) delete cbc1; if (cbc2) delete cbc2; -- cgit v1.2.3 From e36987cea4199ec3e51becad59b88e36c75e0955 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 12 Apr 2014 14:38:11 -0400 Subject: Fix memory leak (bzr r13090.1.53) --- src/live_effects/lpe-taperstroke.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 2400b3e37..8316daf71 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -328,6 +328,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa Geom::Curve * temp; subdivideCurve(curve_start, attach_start - loc, temp, curve_start); trimmed_start.append(*temp); + if (temp) delete temp; temp = 0; //special case: path is one segment long //special case: what if the two knots occupy the same segment? @@ -340,6 +341,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa subdivideCurve(curve_start, t, curve_start, temp); trimmed_end.append(*temp); + if (temp) delete temp; temp = 0; for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); @@ -370,6 +372,7 @@ Geom::PathVector LPETaperStroke::doEffect_simplePath(Geom::PathVector const & pa subdivideCurve(curve_end, t, curve_end, temp); trimmed_end.append(*temp); + if (temp) delete temp; temp = 0; for (unsigned j = (size - attach_end) + 1; j < size; j++) { trimmed_end.append(path_in[0] [j]); -- cgit v1.2.3 From 3a4844ef32ce02cbcb9f1102f61d60914bb48d72 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 12 Apr 2014 18:58:48 -0400 Subject: Enable line caps (bzr r13090.1.54) --- src/live_effects/pathoutlineprovider.cpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index 080f42c08..d7f5362aa 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -528,14 +528,23 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, case butt_round: pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, against_direction.initialPoint() ); break; - case butt_pointy: - //I have ZERO idea what to do here. + case butt_pointy: { + Geom::Point end_deriv = -Geom::unitTangentAt(Geom::reverse(path_in[i].back().toSBasis()), 0.); + double radius = 0.5 * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); + Geom::Point midpoint = 0.5 * (with_direction.finalPoint() + against_direction.initialPoint()) + radius*end_deriv; + pb.lineTo(midpoint); pb.lineTo(against_direction.initialPoint()); break; - case butt_square: + } + case butt_square: { + Geom::Point end_deriv = -Geom::unitTangentAt(Geom::reverse(path_in[i].back().toSBasis()), 0.); + double radius = 0.5 * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); + pb.lineTo(with_direction.finalPoint() + radius*end_deriv); + pb.lineTo(against_direction.initialPoint() + radius*end_deriv); pb.lineTo(against_direction.initialPoint()); break; } + } } else { pb.moveTo(against_direction.initialPoint()); } @@ -551,14 +560,23 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, case butt_round: pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, with_direction.initialPoint() ); break; - case butt_pointy: - //I have ZERO idea what to do here. + case butt_pointy: { + Geom::Point end_deriv = -Geom::unitTangentAt(path_in[i].front().toSBasis(), 0.); + double radius = 0.5 * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); + Geom::Point midpoint = 0.5 * (against_direction.finalPoint() + with_direction.initialPoint()) + radius*end_deriv; + pb.lineTo(midpoint); pb.lineTo(with_direction.initialPoint()); break; - case butt_square: + } + case butt_square: { + Geom::Point end_deriv = -Geom::unitTangentAt(path_in[i].front().toSBasis(), 0.); + double radius = 0.5 * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); + pb.lineTo(against_direction.finalPoint() + radius*end_deriv); + pb.lineTo(with_direction.initialPoint() + radius*end_deriv); pb.lineTo(with_direction.initialPoint()); break; } + } } pb.flush(); for (unsigned m = 0; i < pb.peek().size(); i++) { -- cgit v1.2.3 From fd29d6366fe47e17b732ec4cc40d40ae1f272e35 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 13 Apr 2014 12:49:05 -0400 Subject: Nothing special (bzr r13090.1.55) --- src/live_effects/pathoutlineprovider.cpp | 49 ++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index d7f5362aa..d8e416fea 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -389,7 +389,13 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double { // NOTE: it is important to notice the distinction between a Geom::Path and a livarot Path here! // if you do not see "Geom::" there is a different function set! - Geom::PathVector pv = split_at_cusps(path_in); + Geom::Path temporary(path_in); + if (path_in.closed()) { + //this is a terrible solution + temporary.erase_last(); + temporary.close(false); + } + Geom::PathVector pv = split_at_cusps(temporary); Path to_outline; Path outlined_result; @@ -469,6 +475,12 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double if (cbc2) delete cbc2; if (path_vec) delete path_vec; } + if (path_in.closed()) { + temporary = Geom::Path(); + temporary.append(*path_in.end()); + Geom::Path temporary2 = doAdvHalfOutline(temporary, line_width, miter_limit, extrapolate); + path_builder.append(temporary2/*, Geom::Path::STITCH_DISCONTINUOUS*/); + } } return path_builder; @@ -492,25 +504,19 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, } else { //Geom::Path absolutely refuses to do what I want with these Geom::Path newPath = path_in[i]; - newPath.close(false); - Geom::Piecewise > pwd2 = newPath.toPwSb(); - newPath = Geom::path_from_piecewise(pwd2, 0.01)[0]; - //fuk this + if (Geom::distance(newPath.finalPoint(), newPath.initialPoint()) == newPath[newPath.size()].length()) { + Geom::LineSegment linear(newPath.finalPoint(), newPath.initialPoint()); + Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(linear.toSBasis()); + newPath.appendNew(cubic[1], cubic[2], cubic[3]); + } + //newPath.close(false); with_direction = Outline::doAdvHalfOutline( newPath, -line_width, miter_lim, extrapolate ); against_direction = Outline::doAdvHalfOutline( newPath.reverse(), -line_width, miter_lim, extrapolate ); - - /*if (dynamic_cast *>(&newPath[newPath.size()])) { - //delete the 'Z' - newPath.erase_last(); - newPath.append(path_in[i][path_in[i].size() - 1]); - newPath.appendNew(newPath.initialPoint()); - newPath.erase_last(); - } else { - //delete the 'Z' - newPath.erase_last(); - newPath.append(path_in[i][path_in[i].size() - 1]); - newPath.appendNew(newPath.initialPoint()); - newPath.erase_last(); + /*if (Geom::distance(newPath.finalPoint(), newPath.initialPoint()) != newPath[newPath.size()].length()) { + with_direction.erase_last(); + with_direction.erase_last(); + against_direction.erase(against_direction.begin()); + against_direction.erase(against_direction.begin()); }*/ } Geom::PathBuilder pb; @@ -579,8 +585,9 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, } } pb.flush(); - for (unsigned m = 0; i < pb.peek().size(); i++) { - path_out.push_back(pb.peek()[m]); + path_out.push_back(pb.peek()[0]); + if (path_in[i].closed()) { + path_out.push_back(pb.peek()[1]); } } else { Path p = Path(); @@ -658,8 +665,6 @@ Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, Lin return path_out; } else if (linejoin_type == LINEJOIN_REFLECTED) { //reflected half outline - Geom::PathVector pathvec; - pathvec.push_back(path_in); path_out = doAdvHalfOutline(path_in, line_width, miter_lim, false); return path_out; } else if (linejoin_type == LINEJOIN_EXTRAPOLATED) { -- cgit v1.2.3 From 6f508cfcaa161695711309d3413b90d2b3f44ea0 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Mon, 14 Apr 2014 21:50:06 -0400 Subject: Minor things (bzr r13090.1.58) --- src/knotholder.cpp | 11 +++++++++-- src/live_effects/Makefile_insert | 3 ++- src/sp-lpe-item.cpp | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 30a7e58d5..aea983cbb 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -154,8 +154,15 @@ KnotHolder::knot_clicked_handler(SPKnot *knot, guint state) } // for drag, this is done by ungrabbed_handler, but for click we must do it here - DocumentUndo::done(saved_item->document, object_verb, - _("Change handle")); + + if (saved_item) { //increasingly aggressive sanity checks + if (saved_item->document) { + if (object_verb <= SP_VERB_LAST && object_verb >= SP_VERB_INVALID) { + DocumentUndo::done(saved_item->document, object_verb, + _("Change handle")); + } + } + } // else { abort(); } } void diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert index ac7c33e2f..e2c35c3bd 100644 --- a/src/live_effects/Makefile_insert +++ b/src/live_effects/Makefile_insert @@ -88,12 +88,13 @@ ink_common_sources += \ live_effects/lpe-attach-path.cpp \ live_effects/lpe-attach-path.h \ live_effects/lpe-fill-between-strokes.cpp \ - live_effects/lpe-fill-between-stroke.h \ + live_effects/lpe-fill-between-strokes.h \ live_effects/lpe-fill-between-many.cpp \ live_effects/lpe-fill-between-many.h \ live_effects/lpe-ellipse_5pts.cpp \ live_effects/lpe-ellipse_5pts.h \ live_effects/pathoutlineprovider.cpp \ + live_effects/pathoutlineprovider.h \ live_effects/lpe-jointype.cpp \ live_effects/lpe-jointype.h \ live_effects/lpe-taperstroke.cpp \ diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 07fa6147b..ae5763e67 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -689,12 +689,20 @@ static std::string hreflist_write_svg(HRefList const & list) // Return a copy of the effect list PathEffectList SPLPEItem::getEffectList() { + if (!path_effect_list) { + g_critical("Broken path effect list in %s\n", __FILE__); + return PathEffectList(); + } return *path_effect_list; } // Return a copy of the effect list PathEffectList const SPLPEItem::getEffectList() const { + if (!path_effect_list) { + g_critical("Broken path effect list in %s\n", __FILE__); + return PathEffectList(); + } return *path_effect_list; } -- cgit v1.2.3 From 313863173f0d2f406dd3c36aea90099f22a04531 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 17 Apr 2014 13:58:57 -0400 Subject: Semi-fix for Join type on closed paths (bzr r13090.1.59) --- src/live_effects/pathoutlineprovider.cpp | 78 ++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index d8e416fea..4836b0d98 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -389,13 +389,8 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double { // NOTE: it is important to notice the distinction between a Geom::Path and a livarot Path here! // if you do not see "Geom::" there is a different function set! - Geom::Path temporary(path_in); - if (path_in.closed()) { - //this is a terrible solution - temporary.erase_last(); - temporary.close(false); - } - Geom::PathVector pv = split_at_cusps(temporary); + + Geom::PathVector pv = split_at_cusps(path_in); Path to_outline; Path outlined_result; @@ -434,6 +429,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); } + //store it Geom::Path temp_path = (*path_vec)[0]; temp_path.erase(temp_path.begin()); @@ -475,11 +471,44 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double if (cbc2) delete cbc2; if (path_vec) delete path_vec; } - if (path_in.closed()) { - temporary = Geom::Path(); - temporary.append(*path_in.end()); - Geom::Path temporary2 = doAdvHalfOutline(temporary, line_width, miter_limit, extrapolate); - path_builder.append(temporary2/*, Geom::Path::STITCH_DISCONTINUOUS*/); + } + + if (path_in.closed()) { + if ( path_in[path_in.size() - 1].length() != Geom::distance(path_in[path_in.size() - 1].finalPoint(), path_in.initialPoint())) { + //handle case for last segment curved + outlined_result = Path(); + to_outline = Path(); + + Geom::Path oneCurve; oneCurve.append(path_in[0]); + + to_outline.LoadPath(oneCurve, Geom::Affine(), false, false); + to_outline.OutsideOutline(&outlined_result, line_width / 2, join_straight, butt_straight, 10); + + path_vec = outlined_result.MakePathVector(); + + Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate();//(*path_vec)[0] [0].duplicate(); + Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate();//path_builder[path_builder.size() - 1].duplicate(); + + Geom::Path temporary; //why do we need this? you'll see in a bit + temporary.append(*cbc1); + + if (extrapolate) { + extrapolate_curves(temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, + outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + } else { + reflect_curves (temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, + outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + } + //extract the appended curves + if (temporary[0].finalPoint() != path_builder[path_builder.size() - 1].finalPoint()) { + path_builder.erase(path_builder.begin()); + } else { + temporary.erase_last(); + } + path_builder.erase_last(); + + path_builder.append(temporary, Geom::Path::STITCH_DISCONTINUOUS); + path_builder.close(); } } @@ -498,27 +527,10 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, //since you've made it this far, hopefully all this is obvious :P Geom::Path with_direction; Geom::Path against_direction; - if ( !path_in[i].closed() ) { - with_direction = Outline::doAdvHalfOutline( path_in[i], -line_width, miter_lim, extrapolate ); - against_direction = Outline::doAdvHalfOutline( path_in[i].reverse(), -line_width, miter_lim, extrapolate ); - } else { - //Geom::Path absolutely refuses to do what I want with these - Geom::Path newPath = path_in[i]; - if (Geom::distance(newPath.finalPoint(), newPath.initialPoint()) == newPath[newPath.size()].length()) { - Geom::LineSegment linear(newPath.finalPoint(), newPath.initialPoint()); - Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(linear.toSBasis()); - newPath.appendNew(cubic[1], cubic[2], cubic[3]); - } - //newPath.close(false); - with_direction = Outline::doAdvHalfOutline( newPath, -line_width, miter_lim, extrapolate ); - against_direction = Outline::doAdvHalfOutline( newPath.reverse(), -line_width, miter_lim, extrapolate ); - /*if (Geom::distance(newPath.finalPoint(), newPath.initialPoint()) != newPath[newPath.size()].length()) { - with_direction.erase_last(); - with_direction.erase_last(); - against_direction.erase(against_direction.begin()); - against_direction.erase(against_direction.begin()); - }*/ - } + + with_direction = Outline::doAdvHalfOutline( path_in[i], -line_width, miter_lim, extrapolate ); + against_direction = Outline::doAdvHalfOutline( path_in[i].reverse(), -line_width, miter_lim, extrapolate ); + Geom::PathBuilder pb; //add in the...do I really need to say this? -- cgit v1.2.3 From d7d371a372254ac945dac7f5f6ac17ff1d96298f Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 18 Apr 2014 14:36:25 -0400 Subject: Move my path effects outside test effects (stable) (bzr r13090.1.61) --- src/live_effects/effect.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 99282a312..3787dd849 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -110,8 +110,6 @@ const Util::EnumData LPETypeData[] = { {RECURSIVE_SKELETON, N_("Recursive skeleton"), "recursive_skeleton"}, {TANGENT_TO_CURVE, N_("Tangent to curve"), "tangent_to_curve"}, {TEXT_LABEL, N_("Text label"), "text_label"}, - {JOIN_TYPE, N_("Join type"), "join_type"}, - {TAPER_STROKE, N_("Taper stroke"), "taper_stroke"}, #endif /* 0.46 */ {BEND_PATH, N_("Bend"), "bend_path"}, @@ -137,6 +135,9 @@ const Util::EnumData LPETypeData[] = { {FILL_BETWEEN_MANY, N_("Fill between many"), "fill_between_many"}, {ELLIPSE_5PTS, N_("Ellipse by 5 points"), "ellipse_5pts"}, {BOUNDING_BOX, N_("Bounding Box"), "bounding_box"}, +/* lp:~inkscapebrony/inkscape/inkscape */ + {JOIN_TYPE, N_("Join type"), "join_type"}, + {TAPER_STROKE, N_("Taper stroke"), "taper_stroke"}, }; const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); -- cgit v1.2.3 From 6cf3f3c4fa0309fbe2af3849cbb0c1f3e9d2b2e7 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 19 Apr 2014 21:14:39 -0400 Subject: remove easter eggs (bzr r13090.1.62) --- src/live_effects/lpe-jointype.cpp | 7 +- src/live_effects/lpe-powerstroke.cpp | 3 + src/live_effects/lpe-taperstroke.cpp | 108 ++++++++++++++++++++----------- src/live_effects/pathoutlineprovider.cpp | 58 ++++++++++++----- 4 files changed, 119 insertions(+), 57 deletions(-) diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp index 3b2887bb5..f3ec02530 100644 --- a/src/live_effects/lpe-jointype.cpp +++ b/src/live_effects/lpe-jointype.cpp @@ -52,9 +52,9 @@ static const Util::EnumDataConverter JoinTypeConverter(JoinTypeData, s LPEJoinType::LPEJoinType(LivePathEffectObject *lpeobject) : Effect(lpeobject), - line_width(_("Line width"), _("Thickness of the stroke"), "line_width", &wr, this, 10.), + line_width(_("Line width"), _("Thickness of the stroke"), "line_width", &wr, this, 1.), linecap_type(_("Line cap"), _("The end shape of the stroke"), "linecap_type", CapTypeConverter, &wr, this, butt_straight), - linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", JoinTypeConverter, &wr, this, join_pointy), + linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), miter_limit(_("Miter limit:"), _("Maximum length of the miter join (in units of stroke width)"), "miter_limit", &wr, this, 100.), attempt_force_join(_("Force miter"), _("Overrides the miter limit and forces a join."), "attempt_force_join", &wr, this, true) { @@ -164,7 +164,8 @@ void LPEJoinType::doOnRemove(SPLPEItem const* lpeitem) std::vector LPEJoinType::doEffect_path(std::vector const & path_in) { return Outline::PathVectorOutline(path_in, line_width, static_cast(linecap_type.get_value()), - static_cast(linejoin_type.get_value()), miter_limit); + static_cast(linejoin_type.get_value()), + (attempt_force_join ? std::numeric_limits::max() : miter_limit)); } } //namespace LivePathEffect diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp index d17def471..b63a2bf01 100644 --- a/src/live_effects/lpe-powerstroke.cpp +++ b/src/live_effects/lpe-powerstroke.cpp @@ -662,6 +662,9 @@ LPEPowerStroke::doEffect_path (std::vector const & path_in) if (Geom::Interpolate::CubicBezierJohan *johan = dynamic_cast(interpolator)) { johan->setBeta(interpolator_beta); } + if (Geom::Interpolate::CubicBezierSmooth *smooth = dynamic_cast(interpolator)) { + smooth->setBeta(interpolator_beta); + } Geom::Path strokepath = interpolator->interpolateToPath(ts); delete interpolator; diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 8316daf71..c29690d4f 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -34,6 +34,11 @@ #include "knot-holder-entity.h" #include "knotholder.h" +template +inline bool withinRange(T value, T low, T high) { + return (value > low && value < high); +} + namespace Inkscape { namespace LivePathEffect { @@ -65,12 +70,12 @@ static const Util::EnumDataConverter JoinTypeConverter(JoinType, sizeo LPETaperStroke::LPETaperStroke(LivePathEffectObject *lpeobject) : Effect(lpeobject), - line_width(_("Stroke width"), _("The (non-tapered) width of the path"), "stroke_width", &wr, this, 3), + line_width(_("Stroke width"), _("The (non-tapered) width of the path"), "stroke_width", &wr, this, 1.), attach_start(_("Start offset"), _("Taper distance from path start"), "attach_start", &wr, this, 0.2), attach_end(_("End offset"), _("The ending position of the taper"), "end_offset", &wr, this, 0.2), smoothing(_("Taper smoothing"), _("Amount of smoothing to apply to the tapers"), "smoothing", &wr, this, 0.5), join_type(_("Join type"), _("Join type for non-smooth nodes"), "jointype", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), - miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 30.) + miter_limit(_("Miter limit"), _("Limit for miter joins"), "miter_limit", &wr, this, 100.) { show_orig_path = true; _provides_knotholder_entities = true; @@ -205,43 +210,47 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) unsigned size = path_in[0].size(); if (size == first_cusp.size()) { //check to see if the knots were dragged over each other - //if so, reset the end offset + //if so, reset the end offset, but still allow the start offset. if ( attach_start >= (size - attach_end) ) { attach_end.param_set_value( size - attach_start ); } } - if (attach_start == size - attach_end) { + if (attach_end == size - attach_start) { metInMiddle = true; } - //don't let it be zero - if (attach_start <= 0.00000001) { - attach_start.param_set_value( 0.00000001 ); - zeroStart = true; - } - if (attach_end <= 0.00000001) { - attach_end.param_set_value( 0.00000001 ); - zeroEnd = true; - } - //don't let it be integer - if (double(unsigned(attach_start)) == attach_start) { - attach_start.param_set_value(attach_start - 0.00001); - } - if (double(unsigned(attach_end)) == attach_end) { - attach_end.param_set_value(attach_end - 0.00001); + { + if (double(unsigned(attach_start)) == attach_start) { + attach_start.param_set_value(attach_start - 0.00001); + } + if (double(unsigned(attach_end)) == attach_end) { + attach_end.param_set_value(attach_end - 0.00001); + } } unsigned allowed_start = first_cusp.size(); unsigned allowed_end = last_cusp.size(); //don't let the knots be farther than they are allowed to be - if ((unsigned)attach_start >= allowed_start) { - attach_start.param_set_value((double)allowed_start - 0.00001); + { + if ((unsigned)attach_start >= allowed_start) { + attach_start.param_set_value((double)allowed_start - 0.00001); + } + if ((unsigned)attach_end >= allowed_end) { + attach_end.param_set_value((double)allowed_end - 0.00001); + } + } + + //don't let it be zero + if (attach_start < 0.0000001 || withinRange(double(attach_start), 0.00000001, 0.000001)) { + attach_start.param_set_value( 0.0000001 ); + zeroStart = true; } - if ((unsigned)attach_end >= allowed_end) { - attach_end.param_set_value((double)allowed_end - 0.00001); + if (attach_end < 0.0000001 || withinRange(double(attach_end), 0.00000001, 0.000001)) { + attach_end.param_set_value( 0.0000001 ); + zeroEnd = true; } //remember, Path::operator () means get point at time t @@ -252,7 +261,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //the following function just splits it up into three pieces. pathv_out = doEffect_simplePath(path_in); - //now for the actual tapering. We use a Pattern Along Path method to get this done. + //now for the actual tapering. We use the stretch_along method to get this done. Geom::PathVector real_pathv; Geom::Path real_path; @@ -261,13 +270,13 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) Geom::Path throwaway_path; if (!zeroStart) { - //Construct the pattern (pat_str stands for pattern string) (yes, this is easier, trust me) + //Construct the pattern (pat_str stands for pattern string) (and yes, this is easier, trust me) std::stringstream pat_str; pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); - throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; + throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; real_path.append(throwaway_path); } @@ -276,29 +285,52 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //append the outside outline of the path (with direction) throwaway_path = Outline::PathOutsideOutline(pathv_out[1], -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + if (!zeroStart) { + if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { + real_path.appendNew(throwaway_path.initialPoint()); + } else { + real_path.setFinal(throwaway_path.initialPoint()); + } + } + real_path.append(throwaway_path); } if (!zeroEnd) { //append the ending taper std::stringstream pat_str_1; - pat_str_1 << "M 0,0 0,1 C " << (double)smoothing << ",1 1,0.5 1,0.5 1,0.5 " << double(smoothing) << ",0 0,0"; + pat_str_1 << "M 0,1 C " << (double)smoothing << ",1 1,0.5 1,0.5 1,0.5 " << double(smoothing) << ",0 0,0"; pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); pwd2 = Geom::Piecewise > (); pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); - throwaway_path = Geom::path_from_piecewise(pwd2, 0.001)[0]; - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); + throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; + if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { + real_path.appendNew(throwaway_path.initialPoint()); + } else { + real_path.setFinal(throwaway_path.initialPoint()); + } + real_path.append(throwaway_path); + } + + if (!metInMiddle) { + //append the inside outline of the path (against direction) + throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), + -fabs(line_width), static_cast(join_type.get_value()), miter_limit); + + if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { + real_path.appendNew(throwaway_path.initialPoint()); + } else { + real_path.setFinal(throwaway_path.initialPoint()); + } + real_path.append(throwaway_path); + } + + if (Geom::distance(real_path.finalPoint(), real_path.initialPoint()) > 0.0000001) { + real_path.appendNew(real_path.initialPoint()); + } else { + real_path.setFinal(real_path.initialPoint()); } - //append the inside outline of the path (against direction) - throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), - -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - - real_path.append(throwaway_path, Geom::Path::STITCH_DISCONTINUOUS); - real_path.appendNew(real_path.initialPoint()); - real_path.close(); real_pathv.push_back(real_path); diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index b5a3258fa..9ff896f84 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -162,8 +162,7 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) //assert(cbc1.finalPoint() == cbc2.initialPoint()); //short circuiting? if (cbc1.finalPoint() != cbc2.initialPoint()) { - printf("There was an issue when asserting that one curve's end is the start of the other. Line %d, File %s\n" - "By default we are going to say that this is an inside join, so we cannot make a line join for it.\n", __LINE__, __FILE__); + printf("erk! Line %d, File %s\n", __LINE__, __FILE__); return false; } @@ -261,7 +260,10 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } path_builder.appendNew (endPt); } - path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + if (cbc1->finalPoint() != cbc2->initialPoint()) { + path_builder.appendNew(cbc2->initialPoint()); + } + path_builder.append(*cbc2); } if ( outside && lineProblem ) { Geom::Path pth; @@ -283,7 +285,10 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve } } path_builder.appendNew (endPt); - path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + if (cbc1->finalPoint() != cbc2->initialPoint()) { + path_builder.appendNew(cbc2->initialPoint()); + } + path_builder.append(*cbc2); } if ( !outside ) { /*path_builder.appendNew (endPt);*/ @@ -297,7 +302,12 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve cubic = cubic.subdivide(cross[0].tb).second; path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); } else { - path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + if (Geom::distance(path_builder.finalPoint(), cbc2->initialPoint()) > 0.0000001) { + path_builder.appendNew(cbc2->initialPoint()); + } else { + path_builder.setFinal(cbc2->initialPoint()); + } + path_builder.append(*cbc2); } } } @@ -360,6 +370,9 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); } + if (cbc1->finalPoint() != cbc2->initialPoint()) { + path_builder.appendNew(cbc2->initialPoint()); + } path_builder.append(*cbc2); } else { //probably on the inside of the corner @@ -374,7 +387,12 @@ void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cb cubic = cubic.subdivide(cross[0].tb).second; path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); } else { - path_builder.append(*cbc2, Geom::Path::STITCH_DISCONTINUOUS); + if (Geom::distance(path_builder.finalPoint(), cbc2->initialPoint()) > 0.0000001) { + path_builder.appendNew(cbc2->initialPoint()); + } else { + path_builder.setFinal(cbc2->initialPoint()); + } + path_builder.append(*cbc2); } } } @@ -431,6 +449,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double } //store it Geom::Path temp_path = (*path_vec)[0]; + //erase the first segment since the join code already appended it temp_path.erase(temp_path.begin()); path_builder.append( temp_path ); @@ -477,7 +496,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Curve * cbc1; Geom::Curve * cbc2; - if ( path_in[path_in.size() - 1].length() != Geom::distance(path_in[path_in.size() - 1].finalPoint(), path_in.initialPoint())) { + if ( path_in[path_in.size()].isDegenerate() ) { //handle case for last segment curved outlined_result = Path(); to_outline = Path(); @@ -512,10 +531,10 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double if (extrapolate) { extrapolate_curves(path_builder, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + outside_angle ( path_in[path_in.size() - 1], oneCurve [0] )); } else { reflect_curves (path_builder, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + outside_angle ( path_in[path_in.size() - 1], oneCurve [0] )); } delete cbc1; cbc1 = cbc2->duplicate(); @@ -534,22 +553,29 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Path temporary; //just an accessory path, we won't need it for long temporary.append(*cbc1); + const Geom::Curve& prev_curve = path_in[path_in.size()].isDegenerate() ? path_in[path_in.size() - 1] : + path_in[path_in.size()]; + if (extrapolate) { extrapolate_curves(temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + outside_angle ( prev_curve, path_in [0] )); } else { reflect_curves (temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], path_in [0] )); + outside_angle ( prev_curve, path_in [0] )); } //extract the appended curves - if (temporary[0].finalPoint() != path_builder[path_builder.size() - 1].finalPoint()) { + //if (temporary[temporary.size()].initialPoint() != path_builder[0].initialPoint()) { path_builder.erase(path_builder.begin()); - } else { + /*} else { temporary.erase_last(); - } + }*/ path_builder.erase_last(); - - path_builder.append(temporary, Geom::Path::STITCH_DISCONTINUOUS); + if (Geom::distance(path_builder.finalPoint(), temporary.initialPoint()) > 0.0000001) { + path_builder.appendNew(temporary.initialPoint()); + } else { + path_builder.setFinal(temporary.initialPoint()); + } + path_builder.append(temporary); path_builder.close(); if (cbc1) delete cbc1; -- cgit v1.2.3 From 44dbc123e17a639c9a8dc7c2a2bd3d36a444823c Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 19 Apr 2014 23:12:30 -0400 Subject: Bug fixes (bzr r13090.1.63) --- src/live_effects/effect.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 3787dd849..4b48ce68c 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -378,8 +378,8 @@ void Effect::doOnRemove (SPLPEItem const* lpeitem) void Effect::doOnApply_impl(SPLPEItem const* lpeitem) { sp_lpe_item = const_cast(lpeitem); - sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); - pathvector_before_effect = sp_curve->get_pathvector(); + /*sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); + pathvector_before_effect = sp_curve->get_pathvector();*/ doOnApply(lpeitem); } -- cgit v1.2.3 From 2f628e571a3817765392479766418add4bbdaa20 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 20 Apr 2014 11:03:23 -0400 Subject: minor bugfix (bzr r13090.1.64) --- src/live_effects/lpe-taperstroke.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index c29690d4f..7aa896ade 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -216,7 +216,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) } } - if (attach_end == size - attach_start) { + if (attach_start == size - attach_end) { metInMiddle = true; } -- cgit v1.2.3 From 3c99062c5bc3c28b9c2b05de0ee3e9c2725a55b6 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 20 Apr 2014 13:05:53 -0400 Subject: correcting previous revision (bzr r13090.1.65) --- src/live_effects/lpe-taperstroke.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 7aa896ade..8ddaa4087 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -213,12 +213,16 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //if so, reset the end offset, but still allow the start offset. if ( attach_start >= (size - attach_end) ) { attach_end.param_set_value( size - attach_start ); + metInMiddle = true; } } if (attach_start == size - attach_end) { metInMiddle = true; } + if (attach_end == size - attach_start) { + metInMiddle = true; + } //don't let it be integer { @@ -285,7 +289,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) //append the outside outline of the path (with direction) throwaway_path = Outline::PathOutsideOutline(pathv_out[1], -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - if (!zeroStart) { + if (!zeroStart && real_path.size() >= 1 && throwaway_path.size() >= 1) { if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { real_path.appendNew(throwaway_path.initialPoint()); } else { @@ -305,7 +309,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; - if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { + if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001 && real_path.size() >= 1) { real_path.appendNew(throwaway_path.initialPoint()); } else { real_path.setFinal(throwaway_path.initialPoint()); @@ -318,7 +322,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) throwaway_path = Outline::PathOutsideOutline(pathv_out[1].reverse(), -fabs(line_width), static_cast(join_type.get_value()), miter_limit); - if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001) { + if (Geom::distance(real_path.finalPoint(), throwaway_path.initialPoint()) > 0.0000001 && real_path.size() >= 1) { real_path.appendNew(throwaway_path.initialPoint()); } else { real_path.setFinal(throwaway_path.initialPoint()); -- cgit v1.2.3 From 2a5ab3d65249a8a7dde08097c87562d5bca598f2 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 29 Apr 2014 19:55:14 -0400 Subject: Fix a small issue with Attach Path (bzr r13090.1.69) --- src/live_effects/effect.cpp | 1 + src/sp-lpe-item.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 4b48ce68c..d8e057ab7 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -386,6 +386,7 @@ void Effect::doOnApply_impl(SPLPEItem const* lpeitem) void Effect::doBeforeEffect_impl(SPLPEItem const* lpeitem) { sp_lpe_item = const_cast(lpeitem); + //printf("(SPLPEITEM*) %p\n", sp_lpe_item); sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); pathvector_before_effect = sp_curve->get_pathvector(); diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index b5dd74fc6..19a688ca5 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -242,7 +242,7 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { // Groups have their doBeforeEffect called elsewhere if (!SP_IS_GROUP(this)) { - lpe->doBeforeEffect(this); + lpe->doBeforeEffect_impl(this); } try { @@ -256,6 +256,9 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { } return false; } + if (!SP_IS_GROUP(this)) { + lpe->doAfterEffect(this); + } } } } -- cgit v1.2.3 From 0a3de4794a6fa71b4c6b4217d42115001503013e Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 10 May 2014 09:47:56 -0400 Subject: Fix stubborn bug 1299948 Fixed bugs: - https://launchpad.net/bugs/1299948 (bzr r13090.1.74) --- src/live_effects/parameter/path.cpp | 5 +++++ src/sp-path.cpp | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index cdbbef1db..44d414942 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -118,6 +118,11 @@ PathParam::param_readSVGValue(const gchar * strvalue) // Now do the attaching, which emits the changed signal. try { ref.attach(Inkscape::URI(href)); + //lp:1299948 + SPItem* i = ref.getObject(); + if (i) { + linked_modified_callback(i, SP_OBJECT_MODIFIED_FLAG); + } // else: document still processing new events. Repr of the linked object not created yet. } catch (Inkscape::BadURIException &e) { g_warning("%s", e.what()); ref.detach(); diff --git a/src/sp-path.cpp b/src/sp-path.cpp index cbb61b0f6..d1fb850e1 100644 --- a/src/sp-path.cpp +++ b/src/sp-path.cpp @@ -140,7 +140,22 @@ void SPPath::build(SPDocument *document, Inkscape::XML::Node *repr) { SPShape::build(document, repr); - this->readAttr( "inkscape:original-d" ); + //this->readAttr( "inkscape:original-d" ); //lp1299948 + if (gchar const* s = this->getRepr()->attribute("inkscape:original-d")) + { + //write it to XML, and to my curve, but don't update patheffects + Geom::PathVector pv = sp_svg_read_pathv(s); + SPCurve *curve = new SPCurve(pv); + + if (_curve_before_lpe) { + _curve_before_lpe = _curve_before_lpe->unref(); + } + + if (curve) { + _curve_before_lpe = curve->ref(); + } + //this->getRepr()->setAttribute("inkscape:original-d", s); + } this->readAttr( "d" ); /* d is a required attribute */ @@ -314,7 +329,6 @@ g_message("sp_path_update_patheffect"); #ifdef PATH_VERBOSE g_message("sp_path_update_patheffect writes 'd' attribute"); #endif - if (_curve) { gchar *str = sp_svg_write_path(this->_curve->get_pathvector()); repr->setAttribute("d", str); -- cgit v1.2.3 From 4038de8b4763974c97aa8fcb9d87b83c1a5daac7 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 10 May 2014 15:16:24 -0400 Subject: Add selection sets (bzr r13090.1.75) --- src/Makefile_insert | 3 + src/attributes.cpp | 1 + src/attributes.h | 1 + src/menus-skeleton.h | 1 + src/sp-tag-use-reference.cpp | 156 +++++ src/sp-tag-use-reference.h | 77 +++ src/sp-tag-use.cpp | 205 +++++++ src/sp-tag-use.h | 54 ++ src/sp-tag.cpp | 154 +++++ src/sp-tag.h | 57 ++ src/ui/dialog/Makefile_insert | 2 + src/ui/dialog/dialog-manager.cpp | 6 +- src/ui/dialog/tags.cpp | 1155 ++++++++++++++++++++++++++++++++++++++ src/ui/dialog/tags.h | 181 ++++++ src/verbs.cpp | 86 ++- src/verbs.h | 4 +- 16 files changed, 2134 insertions(+), 9 deletions(-) create mode 100644 src/sp-tag-use-reference.cpp create mode 100644 src/sp-tag-use-reference.h create mode 100644 src/sp-tag-use.cpp create mode 100644 src/sp-tag-use.h create mode 100644 src/sp-tag.cpp create mode 100644 src/sp-tag.h create mode 100644 src/ui/dialog/tags.cpp create mode 100644 src/ui/dialog/tags.h diff --git a/src/Makefile_insert b/src/Makefile_insert index 6d0d6b08c..810f706ac 100644 --- a/src/Makefile_insert +++ b/src/Makefile_insert @@ -199,6 +199,9 @@ ink_common_sources += \ sp-style-elem.cpp sp-style-elem.h \ sp-switch.cpp sp-switch.h \ sp-symbol.cpp sp-symbol.h \ + sp-tag.cpp sp-tag.h \ + sp-tag-use.cpp sp-tag-use.h \ + sp-tag-use-reference.cpp sp-tag-use-reference.h \ sp-text.cpp sp-text.h \ sp-textpath.h \ sp-title.cpp sp-title.h \ diff --git a/src/attributes.cpp b/src/attributes.cpp index 4e39b648e..2dc0d8071 100644 --- a/src/attributes.cpp +++ b/src/attributes.cpp @@ -52,6 +52,7 @@ static SPStyleProp const props[] = { {SP_ATTR_XLINK_ACTUATE, "xlink:actuate"}, {SP_ATTR_TARGET, "target"}, {SP_ATTR_INKSCAPE_GROUPMODE, "inkscape:groupmode"}, + {SP_ATTR_INKSCAPE_EXPANDED, "inkscape:expanded"}, /* SPRoot */ {SP_ATTR_VERSION, "version"}, {SP_ATTR_WIDTH, "width"}, diff --git a/src/attributes.h b/src/attributes.h index d1c93b819..270296c9a 100644 --- a/src/attributes.h +++ b/src/attributes.h @@ -52,6 +52,7 @@ enum SPAttributeEnum { SP_ATTR_TARGET, /* SPGroup */ SP_ATTR_INKSCAPE_GROUPMODE, + SP_ATTR_INKSCAPE_EXPANDED, /* SPRoot */ SP_ATTR_VERSION, SP_ATTR_WIDTH, diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h index 67e600edf..18a26d82c 100644 --- a/src/menus-skeleton.h +++ b/src/menus-skeleton.h @@ -179,6 +179,7 @@ static char const menus_skeleton[] = " \n" " \n" " \n" +" \n" " \n" " \n" " \n" diff --git a/src/sp-tag-use-reference.cpp b/src/sp-tag-use-reference.cpp new file mode 100644 index 000000000..50c011812 --- /dev/null +++ b/src/sp-tag-use-reference.cpp @@ -0,0 +1,156 @@ +/* + * The reference corresponding to href of element. + * + * Copyright (C) Theodore Janeczko 2012-2014 + * + * Released under GNU GPL, read the file 'COPYING' for more information. + */ + +#include +#include +#include + +#include "enums.h" +#include "sp-tag-use-reference.h" + +#include "display/curve.h" +#include "livarot/Path.h" +#include "preferences.h" +#include "sp-shape.h" +#include "sp-text.h" +#include "uri.h" + +#if 0 +namespace { + SPObject* createTagUseReference() { + return new SPTag(); + } + bool tagUseReferencesRegistered = SPFactory::instance().registerObject("inkscape:tag", createTag); +} +// this SPObject doesn't need to be registered +#endif + + +bool SPTagUseReference::_acceptObject(SPObject * const obj) const +{ + if (SP_IS_ITEM(obj)) { + SPObject * const owner = getOwner(); + // Refuse references to us or to an ancestor. + for ( SPObject *iter = owner ; iter ; iter = iter->parent ) { + if ( iter == obj ) { + return false; + } + } + return true; + } else { + return false; + } +} + + +static void sp_usepath_href_changed(SPObject *old_ref, SPObject *ref, SPTagUsePath *offset); +static void sp_usepath_delete_self(SPObject *deleted, SPTagUsePath *offset); + +SPTagUsePath::SPTagUsePath(SPObject* i_owner):SPTagUseReference(i_owner) +{ + owner=i_owner; + originalPath = NULL; + sourceDirty=false; + sourceHref = NULL; + sourceRepr = NULL; + sourceObject = NULL; + _changed_connection = changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_usepath_href_changed), this)); // listening to myself, this should be virtual instead + + user_unlink = NULL; +} + +SPTagUsePath::~SPTagUsePath(void) +{ + delete originalPath; + originalPath = NULL; + + _changed_connection.disconnect(); // to do before unlinking + + quit_listening(); + unlink(); +} + +void +SPTagUsePath::link(char *to) +{ + if ( to == NULL ) { + quit_listening(); + unlink(); + } else { + if ( !sourceHref || ( strcmp(to, sourceHref) != 0 ) ) { + g_free(sourceHref); + sourceHref = g_strdup(to); + try { + attach(Inkscape::URI(to)); + } catch (Inkscape::BadURIException &e) { + /* TODO: Proper error handling as per + * http://www.w3.org/TR/SVG11/implnote.html#ErrorProcessing. + */ + g_warning("%s", e.what()); + detach(); + } + } + } +} + +void +SPTagUsePath::unlink(void) +{ + g_free(sourceHref); + sourceHref = NULL; + detach(); +} + +void +SPTagUsePath::start_listening(SPObject* to) +{ + if ( to == NULL ) { + return; + } + sourceObject = to; + sourceRepr = to->getRepr(); + _delete_connection = to->connectDelete(sigc::bind(sigc::ptr_fun(&sp_usepath_delete_self), this)); +} + +void +SPTagUsePath::quit_listening(void) +{ + if ( sourceObject == NULL ) { + return; + } + _delete_connection.disconnect(); + sourceRepr = NULL; + sourceObject = NULL; +} + +static void +sp_usepath_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPTagUsePath *offset) +{ + offset->quit_listening(); + SPItem *refobj = offset->getObject(); + if ( refobj ) { + offset->start_listening(refobj); + } +} + +static void +sp_usepath_delete_self(SPObject */*deleted*/, SPTagUsePath *offset) +{ + offset->owner->deleteObject(); +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use-reference.h b/src/sp-tag-use-reference.h new file mode 100644 index 000000000..b38e45837 --- /dev/null +++ b/src/sp-tag-use-reference.h @@ -0,0 +1,77 @@ +#ifndef SEEN_SP_TAG_USE_REFERENCE_H +#define SEEN_SP_TAG_USE_REFERENCE_H + +/* + * The reference corresponding to href of element. + * + * Copyright (C) Theodore Janeczko 2012-2014 + * + * Released under GNU GPL, read the file 'COPYING' for more information. + */ + +#include "sp-object.h" +#include "sp-item.h" +#include +#include +#include + +class Path; + +namespace Inkscape { +namespace XML { + struct Node; +} +} + + +class SPTagUseReference : public Inkscape::URIReference { +public: + SPTagUseReference(SPObject *owner) : URIReference(owner) {} + + SPItem *getObject() const { + return static_cast(URIReference::getObject()); + } + +protected: + virtual bool _acceptObject(SPObject * const obj) const; + +}; + + +class SPTagUsePath : public SPTagUseReference { +public: + Path *originalPath; + bool sourceDirty; + + SPObject *owner; + gchar *sourceHref; + Inkscape::XML::Node *sourceRepr; + SPObject *sourceObject; + + sigc::connection _delete_connection; + sigc::connection _changed_connection; + + SPTagUsePath(SPObject* i_owner); + ~SPTagUsePath(void); + + void link(char* to); + void unlink(void); + void start_listening(SPObject* to); + void quit_listening(void); + void refresh_source(void); + + void (*user_unlink) (SPObject *user); +}; + +#endif /* !SEEN_SP_USE_REFERENCE_H */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.cpp b/src/sp-tag-use.cpp new file mode 100644 index 000000000..ffcfcee3e --- /dev/null +++ b/src/sp-tag-use.cpp @@ -0,0 +1,205 @@ +/* + * SVG implementation + * + * Authors: + * Theodore Janeczko + * Liam P White + * + * Copyright (C) Theodore Janeczko 2012-2014 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include +#include "display/drawing-group.h" +#include "attributes.h" +#include "document.h" +#include "uri.h" +#include "xml/repr.h" +#include "preferences.h" +#include "style.h" +#include "sp-factory.h" +#include "sp-symbol.h" +#include "sp-tag-use.h" +#include "sp-tag-use-reference.h" + +namespace { + SPObject* createTagUse() { + return new SPTagUse(); + } + bool tagUseRegistered = SPFactory::instance().registerObject("inkscape:tagref", createTagUse); +} + +SPTagUse::SPTagUse() +{ + href = NULL; + //new (_changed_connection) sigc::connection; + ref = new SPTagUseReference(this); + + _changed_connection = ref->changedSignal().connect(sigc::mem_fun(*this, &SPTagUse::href_changed)); +} + +SPTagUse::~SPTagUse() +{ + + if (child) { + detach(child); + child = NULL; + } + + ref->detach(); + delete ref; + ref = 0; + + _changed_connection.~connection(); //FIXME why? +} + +void +SPTagUse::build(SPDocument *document, Inkscape::XML::Node *repr) +{ + SPObject::build(document, repr); + readAttr( "xlink:href" ); + + // We don't need to create child here: + // reading xlink:href will attach ref, and that will cause the changed signal to be emitted, + // which will call sp_tag_use_href_changed, and that will take care of the child +} + +void +SPTagUse::release() +{ + + if (child) { + detach(child); + child = NULL; + } + + _changed_connection.disconnect(); + + g_free(href); + href = NULL; + + ref->detach(); + + SPObject::release(); +} + +void +SPTagUse::set(unsigned key, gchar const *value) +{ + + switch (key) { + case SP_ATTR_XLINK_HREF: { + if ( value && href && ( strcmp(value, href) == 0 ) ) { + /* No change, do nothing. */ + } else { + g_free(href); + href = NULL; + if (value) { + // First, set the href field, because sp_tag_use_href_changed will need it. + href = g_strdup(value); + + // Now do the attaching, which emits the changed signal. + try { + ref->attach(Inkscape::URI(value)); + } catch (Inkscape::BadURIException &e) { + g_warning("%s", e.what()); + ref->detach(); + } + } else { + ref->detach(); + } + } + break; + } + + default: + SPObject::set(key, value); + break; + } +} + +Inkscape::XML::Node * +SPTagUse::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) +{ + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = xml_doc->createElement("inkscape:tagref"); + } + + SPObject::write(xml_doc, repr, flags); + + if (ref->getURI()) { + gchar *uri_string = ref->getURI()->toString(); + repr->setAttribute("xlink:href", uri_string); + g_free(uri_string); + } + + return repr; +} + +/** + * Returns the ultimate original of a SPTagUse (i.e. the first object in the chain of its originals + * which is not an SPTagUse). If no original is found, NULL is returned (it is the responsibility + * of the caller to make sure that this is handled correctly). + * + * Note that the returned is the clone object, i.e. the child of an SPTagUse (of the argument one for + * the trivial case) and not the "true original". + */ + +SPItem * SPTagUse::root() +{ + SPObject *orig = child; + while (orig && SP_IS_TAG_USE(orig)) { + orig = SP_TAG_USE(orig)->child; + } + if (!orig || !SP_IS_ITEM(orig)) + return NULL; + return SP_ITEM(orig); +} + +void +SPTagUse::href_changed(SPObject */*old_ref*/, SPObject */*ref*/) +{ + if (href) { + SPItem *refobj = ref->getObject(); + if (refobj) { + Inkscape::XML::Node *childrepr = refobj->getRepr(); + const std::string typeString = NodeTraits::get_type_string(*childrepr); + + SPObject* child_ = SPFactory::instance().createObject(typeString); + if (child_) { + attach(child_, lastChild()); + sp_object_unref(child_, 0); + child_->invoke_build(this->document, childrepr, TRUE); + + } + } + } +} + +SPItem * SPTagUse::get_original() +{ + SPItem *ref_ = NULL; + if (ref) { + ref_ = ref->getObject(); + } + return ref_; +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/sp-tag-use.h b/src/sp-tag-use.h new file mode 100644 index 000000000..8a0c3e7fb --- /dev/null +++ b/src/sp-tag-use.h @@ -0,0 +1,54 @@ +#ifndef __SP_TAG_USE_H__ +#define __SP_TAG_USE_H__ + +/* + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include +#include "svg/svg-length.h" +#include "sp-object.h" + + +#define SP_TAG_USE(obj) (dynamic_cast (obj)) +#define SP_IS_TAG_USE(obj) (dynamic_cast (obj) != NULL) + +class SPTagUse; +class SPTagUseReference; + +class SPTagUse : public SPObject { + +public: + // item built from the original's repr (the visible clone) + // relative to the SPUse itself, it is treated as a child, similar to a grouped item relative to its group + SPObject *child; + gchar *href; +public: + SPTagUse(); + virtual ~SPTagUse(); + + virtual void build(SPDocument *doc, Inkscape::XML::Node *repr); + virtual void set(unsigned key, gchar const *value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual void release(); + + virtual void href_changed(SPObject* old_ref, SPObject* ref); + + //virtual SPItem* unlink(); + virtual SPItem* get_original(); + virtual SPItem* root(); + + // the reference to the original object + SPTagUseReference *ref; + sigc::connection _changed_connection; +}; + +#endif diff --git a/src/sp-tag.cpp b/src/sp-tag.cpp new file mode 100644 index 000000000..c4b40417f --- /dev/null +++ b/src/sp-tag.cpp @@ -0,0 +1,154 @@ +/** \file + * SVG implementation + * + * Authors: + * Theodore Janeczko + * Liam P. White + * + * Copyright (C) Theodore Janeczko 2012-2014 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "attributes.h" +#include "sp-factory.h" +#include "sp-tag.h" +#include "xml/repr.h" +#include + +namespace { + SPObject* createTag() { + return new SPTag(); + } + bool tagsRegistered = SPFactory::instance().registerObject("inkscape:tag", createTag); +} + +/* + * Move this SPItem into or after another SPItem in the doc + * \param target - the SPItem to move into or after + * \param intoafter - move to after the target (false), move inside (sublayer) of the target (true) + */ +void SPTag::moveTo(SPObject *target, gboolean intoafter) { + + Inkscape::XML::Node *target_ref = ( target ? target->getRepr() : NULL ); + Inkscape::XML::Node *our_ref = getRepr(); + gboolean first = FALSE; + + if (target_ref == our_ref) { + // Move to ourself ignore + return; + } + + if (!target_ref) { + // Assume move to the "first" in the top node, find the top node + target_ref = our_ref; + while (target_ref->parent() != target_ref->root()) { + target_ref = target_ref->parent(); + } + first = TRUE; + } + + if (intoafter) { + // Move this inside of the target at the end + our_ref->parent()->removeChild(our_ref); + target_ref->addChild(our_ref, NULL); + } else if (target_ref->parent() != our_ref->parent()) { + // Change in parent, need to remove and add + our_ref->parent()->removeChild(our_ref); + target_ref->parent()->addChild(our_ref, target_ref); + } else if (!first) { + // Same parent, just move + our_ref->parent()->changeOrder(our_ref, target_ref); + } +} + +/** + * Reads the Inkscape::XML::Node, and initializes SPTag variables. For this to get called, + * our name must be associated with a repr via "sp_object_type_register". Best done through + * sp-object-repr.cpp's repr_name_entries array. + */ +void +SPTag::build(SPDocument *document, Inkscape::XML::Node *repr) +{ + readAttr( "inkscape:expanded" ); + SPObject::build(document, repr); +} + +/** + * Sets a specific value in the SPTag. + */ +void +SPTag::set(unsigned int key, gchar const *value) +{ + + switch (key) + { + case SP_ATTR_INKSCAPE_EXPANDED: + if ( value && !strcmp(value, "true") ) { + setExpanded(true); + } + break; + default: + SPObject::set(key, value); + break; + } +} + +void SPTag::setExpanded(bool isexpanded) { + //if ( _expanded != isexpanded ){ + _expanded = isexpanded; + //} +} + +/** + * Receives update notifications. + */ +void +SPTag::update(SPCtx *ctx, guint flags) +{ + if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | + SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { + + /* do something to trigger redisplay, updates? */ + + } + SPObject::update(ctx, flags); +} + +/** + * Writes its settings to an incoming repr object, if any. + */ +Inkscape::XML::Node * +SPTag::write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) +{ + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = doc->createElement("inkscape:tag"); + } + + // Inkscape-only object, not copied during an "plain SVG" dump: + if (flags & SP_OBJECT_WRITE_EXT) { + if (_expanded) { + repr->setAttribute("inkscape:expanded", "true"); + } else { + repr->setAttribute("inkscape:expanded", NULL); + } + } + SPObject::write(doc, repr, flags); + return repr; +} + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/sp-tag.h b/src/sp-tag.h new file mode 100644 index 000000000..927bb45d1 --- /dev/null +++ b/src/sp-tag.h @@ -0,0 +1,57 @@ +#ifndef SP_TAG_H_SEEN +#define SP_TAG_H_SEEN + +/** \file + * SVG implementation + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "sp-object.h" + +/* Skeleton base class */ + +#define SP_TAG(o) (dynamic_cast(o)) +#define SP_IS_TAG(o) (dynamic_cast(o) != NULL) + +class SPTag; + +class SPTag : public SPObject { +public: + SPTag() {} + virtual ~SPTag() {} + + virtual void build(SPDocument * doc, Inkscape::XML::Node *repr); + //virtual void release(); + virtual void set(unsigned key, const gchar* value); + virtual void update(SPCtx * ctx, unsigned flags); + + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + + bool expanded() const { return _expanded; } + void setExpanded(bool isexpanded); + + void moveTo(SPObject *target, gboolean intoafter); + +private: + bool _expanded; +}; + + +#endif /* !SP_SKELETON_H_SEEN */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert index 8a7a4a5dd..1aa73dc5b 100644 --- a/src/ui/dialog/Makefile_insert +++ b/src/ui/dialog/Makefile_insert @@ -100,6 +100,8 @@ ink_common_sources += \ ui/dialog/template-load-tab.h \ ui/dialog/template-widget.cpp \ ui/dialog/template-widget.h \ + ui/dialog/tags.cpp \ + ui/dialpg/tags.h \ ui/dialog/text-edit.cpp \ ui/dialog/text-edit.h \ ui/dialog/tile.cpp \ diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp index 22c41d75e..bd2f1eb12 100644 --- a/src/ui/dialog/dialog-manager.cpp +++ b/src/ui/dialog/dialog-manager.cpp @@ -55,7 +55,7 @@ #include "ui/dialog/clonetiler.h" #include "ui/dialog/svg-fonts-dialog.h" #include "ui/dialog/objects.h" -//#include "ui/dialog/tags.h" +#include "ui/dialog/tags.h" namespace Inkscape { namespace UI { @@ -113,7 +113,7 @@ DialogManager::DialogManager() { registerFactory("IconPreviewPanel", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); -// registerFactory("TagsPanel", &create); + registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); @@ -148,7 +148,7 @@ DialogManager::DialogManager() { registerFactory("IconPreviewPanel", &create); registerFactory("LayersPanel", &create); registerFactory("ObjectsPanel", &create); -// registerFactory("TagsPanel", &create); + registerFactory("TagsPanel", &create); registerFactory("LivePathEffect", &create); registerFactory("Memory", &create); registerFactory("Messages", &create); diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp new file mode 100644 index 000000000..7fdd2e906 --- /dev/null +++ b/src/ui/dialog/tags.cpp @@ -0,0 +1,1155 @@ +/* + * A simple panel for tags + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "tags.h" +#include +#include +#include +#include + +#include + +#include "desktop.h" +#include "desktop-style.h" +#include "document.h" +#include "document-undo.h" +#include "helper/action.h" +#include "inkscape.h" +#include "layer-fns.h" +#include "layer-manager.h" +#include "preferences.h" +#include "sp-item.h" +#include "sp-object.h" +#include "sp-shape.h" +#include "svg/css-ostringstream.h" +#include "ui/icon-names.h" +#include "ui/widget/layertypeicon.h" +#include "ui/widget/addtoicon.h" +#include "verbs.h" +#include "widgets/icon.h" +#include "xml/node.h" +#include "xml/node-observer.h" +#include "xml/repr.h" +#include "sp-root.h" +#include "ui/tools/tool-base.h" //"event-context.h" +#include "selection.h" +#include "dialogs/dialog-events.h" +#include "widgets/sp-color-notebook.h" +#include "style.h" +#include "filter-chemistry.h" +#include "filters/blend.h" +#include "filters/gaussian-blur.h" +#include "sp-clippath.h" +#include "sp-mask.h" +#include "sp-tag.h" +#include "sp-defs.h" +#include "sp-tag-use.h" +#include "sp-tag-use-reference.h" + +//#define DUMP_LAYERS 1 + +namespace Inkscape { +namespace UI { +namespace Dialog { + +using Inkscape::XML::Node; + +TagsPanel& TagsPanel::getInstance() +{ + return *new TagsPanel(); +} + +enum { + COL_ADD = 1 +}; + +enum { + BUTTON_NEW = 0, + BUTTON_TOP, + BUTTON_BOTTOM, + BUTTON_UP, + BUTTON_DOWN, + BUTTON_DELETE, + DRAGNDROP +}; + +class TagsPanel::ObjectWatcher : public Inkscape::XML::NodeObserver { +public: + ObjectWatcher(TagsPanel* pnl, SPObject* obj, Inkscape::XML::Node * repr) : + _pnl(pnl), + _obj(obj), + _repr(repr), + _labelAttr(g_quark_from_string("inkscape:label")) + {} + + ObjectWatcher(TagsPanel* pnl, SPObject* obj) : + _pnl(pnl), + _obj(obj), + _repr(obj->getRepr()), + _labelAttr(g_quark_from_string("inkscape:label")) + {} + + virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/, Node */*old_prev*/, Node */*new_prev*/ ) + { + if ( _pnl && _obj ) { + _pnl->_objectsChanged( _obj ); + } + } + virtual void notifyContentChanged( Node &/*node*/, Util::ptr_shared /*old_content*/, Util::ptr_shared /*new_content*/ ) {} + virtual void notifyAttributeChanged( Node &/*node*/, GQuark name, Util::ptr_shared /*old_value*/, Util::ptr_shared /*new_value*/ ) { + if ( _pnl && _obj ) { + if ( name == _labelAttr ) { + _pnl->_updateObject( _obj); + } + } + } + + TagsPanel* _pnl; + SPObject* _obj; + Inkscape::XML::Node* _repr; + GQuark _labelAttr; +}; + +class TagsPanel::InternalUIBounce +{ +public: + int _actionCode; +}; + +void TagsPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ) +{ + bool set = false; + + if ( iconName ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, iconName ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + btn.set_relief(Gtk::RELIEF_NONE); + set = true; + } + + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !set && action && action->image ) { + GtkWidget *child = sp_icon_new( Inkscape::ICON_SIZE_SMALL_TOOLBAR, action->image ); + gtk_widget_show( child ); + btn.add( *manage(Glib::wrap(child)) ); + set = true; + } + } + } + + btn.set_tooltip_text (tooltip); +} + + +Gtk::MenuItem& TagsPanel::_addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ) +{ + GtkWidget* iconWidget = 0; + const char* label = 0; + + if ( iconName ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, iconName ); + } + + if ( desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(desktop); + if ( !iconWidget && action && action->image ) { + iconWidget = sp_icon_new( Inkscape::ICON_SIZE_MENU, action->image ); + } + + if ( action ) { + label = action->name; + } + } + } + + if ( !label && fallback ) { + label = fallback; + } + + Gtk::Widget* wrapped = 0; + if ( iconWidget ) { + wrapped = manage(Glib::wrap(iconWidget)); + wrapped->show(); + } + + + Gtk::MenuItem* item = 0; + + if (wrapped) { + item = Gtk::manage(new Gtk::ImageMenuItem(*wrapped, label, true)); + } else { + item = Gtk::manage(new Gtk::MenuItem(label, true)); + } + + item->signal_activate().connect(sigc::bind(sigc::mem_fun(*this, &TagsPanel::_takeAction), id)); + _popupMenu.append(*item); + + return *item; +} + +void TagsPanel::_fireAction( unsigned int code ) +{ + if ( _desktop ) { + Verb *verb = Verb::get( code ); + if ( verb ) { + SPAction *action = verb->get_action(_desktop); + if ( action ) { + sp_action_perform( action, NULL ); + } + } + } +} + +void TagsPanel::_takeAction( int val ) +{ + if ( !_pending ) { + _pending = new InternalUIBounce(); + _pending->_actionCode = val; + Glib::signal_timeout().connect( sigc::mem_fun(*this, &TagsPanel::_executeAction), 0 ); + } +} + +bool TagsPanel::_executeAction() +{ + // Make sure selected layer hasn't changed since the action was triggered + if ( _pending) + { + int val = _pending->_actionCode; +// SPObject* target = _pending->_target; + bool empty = _desktop->selection->isEmpty(); + + switch ( val ) { + case BUTTON_NEW: + { + _fireAction( SP_VERB_TAG_NEW ); + } + break; + case BUTTON_TOP: + { + _fireAction( empty ? SP_VERB_LAYER_TO_TOP : SP_VERB_SELECTION_TO_FRONT); + } + break; + case BUTTON_BOTTOM: + { + _fireAction( empty ? SP_VERB_LAYER_TO_BOTTOM : SP_VERB_SELECTION_TO_BACK ); + } + break; + case BUTTON_UP: + { + _fireAction( empty ? SP_VERB_LAYER_RAISE : SP_VERB_SELECTION_RAISE ); + } + break; + case BUTTON_DOWN: + { + _fireAction( empty ? SP_VERB_LAYER_LOWER : SP_VERB_SELECTION_LOWER ); + } + break; + case BUTTON_DELETE: + { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * obj = *iter; + if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set")); + } + break; + case DRAGNDROP: + { + _doTreeMove( ); + } + break; + } + + delete _pending; + _pending = 0; + } + + return false; +} + + +class TagsPanel::ModelColumns : public Gtk::TreeModel::ColumnRecord +{ +public: + + ModelColumns() + { + add(_colParentObject); + add(_colObject); + add(_colLabel); + add(_colAddRemove); + add(_colAllowAddRemove); + } + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn _colParentObject; + Gtk::TreeModelColumn _colObject; + Gtk::TreeModelColumn _colLabel; + Gtk::TreeModelColumn _colAddRemove; + Gtk::TreeModelColumn _colAllowAddRemove; +}; + +void TagsPanel::_checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete) +{ + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj && obj->parent) { + todelete->push_back(obj); + } +} + +void TagsPanel::_updateObject( SPObject *obj ) { + _store->foreach( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_checkForUpdated), obj) ); +} + +bool TagsPanel::_checkForUpdated(const Gtk::TreePath &/*path*/, const Gtk::TreeIter& iter, SPObject* obj) +{ + Gtk::TreeModel::Row row = *iter; + if ( obj == row[_model->_colObject] ) + { + /* + * We get notified of layer update here (from layer->setLabel()) before layer->label() is set + * with the correct value (sp-object bug?). So use the inkscape:label attribute instead which + * has the correct value (bug #168351) + */ + //row[_model->_colLabel] = layer->label() ? layer->label() : layer->getId(); + gchar const *label; + SPTagUse * use = SP_IS_TAG_USE(obj) ? SP_TAG_USE(obj) : 0; + if (use && use->ref->isAttached()) { + label = use->ref->getObject()->getAttribute("inkscape:label"); + } else { + label = obj->getAttribute("inkscape:label"); + } + row[_model->_colLabel] = label ? label : obj->getId(); + row[_model->_colAddRemove] = SP_IS_TAG(obj); + } + + return false; +} + +void TagsPanel::_objectsSelected( Selection *sel ) { + + _selectedConnection.block(); + _tree.get_selection()->unselect_all(); + for (const GSList * iter = sel->list(); iter != NULL; iter = iter->next) + { + SPObject *obj = reinterpret_cast(iter->data); + _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); + } + _selectedConnection.unblock(); + _checkTreeSelection(); +} + +bool TagsPanel::_checkForSelected(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj) +{ + Gtk::TreeModel::Row row = *iter; + SPObject * it = row[_model->_colObject]; + if ( it && SP_IS_TAG_USE(it) && SP_TAG_USE(it)->ref->getObject() == obj ) + { + Glib::RefPtr select = _tree.get_selection(); + + select->select(iter); + } + return false; +} + +void TagsPanel::_objectsChanged(SPObject* root) +{ + while (!_objectWatchers.empty()) + { + TagsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + if (_desktop) { + SPDocument* document = _desktop->doc(); + SPDefs* root = document->getDefs(); + if ( root ) { + _selectedConnection.block(); + _store->clear(); + _addObject( document, root, 0 ); + _selectedConnection.unblock(); + _objectsSelected(_desktop->selection); + _checkTreeSelection(); + } + } +} + +void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ) +{ + if ( _desktop && obj ) { + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG(child)) + { + Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = child; + row[_model->_colParentObject] = NULL; + row[_model->_colLabel] = child->label() ? child->label() : child->getId(); + row[_model->_colAddRemove] = true; + row[_model->_colAllowAddRemove] = true; + + _tree.expand_to_path( _store->get_path(iter) ); + + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child); + child->getRepr()->addObserver(*w); + _objectWatchers.push_back(w); + _addObject( doc, child, &row ); + } + } + if (SP_IS_TAG(obj) && obj->children) + { + Gtk::TreeModel::iterator iteritems = parentRow ? _store->append(parentRow->children()) : _store->prepend(); + Gtk::TreeModel::Row rowitems = *iteritems; + rowitems[_model->_colObject] = NULL; + rowitems[_model->_colParentObject] = obj; + rowitems[_model->_colLabel] = _("Items"); + rowitems[_model->_colAddRemove] = false; + rowitems[_model->_colAllowAddRemove] = false; + + _tree.expand_to_path( _store->get_path(iteritems) ); + + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG_USE(child)) + { + SPItem *item = SP_TAG_USE(child)->ref->getObject(); + Gtk::TreeModel::iterator iter = _store->prepend(rowitems->children()); + Gtk::TreeModel::Row row = *iter; + row[_model->_colObject] = child; + row[_model->_colParentObject] = NULL; + row[_model->_colLabel] = item ? (item->label() ? item->label() : item->getId()) : SP_TAG_USE(child)->href; + row[_model->_colAddRemove] = false; + row[_model->_colAllowAddRemove] = true; + + if (SP_TAG(obj)->expanded()) { + _tree.expand_to_path( _store->get_path(iter) ); + } + + if (item) { + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child, item->getRepr()); + item->getRepr()->addObserver(*w); + _objectWatchers.push_back(w); + } + } + } + } + } +} + +void TagsPanel::_select_tag( SPTag * tag ) +{ + for (SPObject * child = tag->children; child != NULL; child = child->next) + { + if (SP_IS_TAG(child)) { + _select_tag(SP_TAG(child)); + } else if (SP_IS_TAG_USE(child)) { + SPObject * obj = SP_TAG_USE(child)->ref->getObject(); + if (obj) { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(obj->parent); + _desktop->selection->add(obj); + } + } + } +} + +void TagsPanel::_selected_row_callback( const Gtk::TreeModel::iterator& iter ) +{ + if (iter) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_model->_colObject]; + if (obj) { + if (SP_IS_TAG(obj)) { + _select_tag(SP_TAG(obj)); + } else if (SP_IS_TAG_USE(obj)) { + SPObject * item = SP_TAG_USE(obj)->ref->getObject(); + if (item) { + if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(item->parent); + _desktop->selection->add(item); + } + } + } + } +} + +void TagsPanel::_pushTreeSelectionToCurrent() +{ + _selectionChangedConnection.block(); + // TODO hunt down the possible API abuse in getting NULL + if ( _desktop && _desktop->currentRoot() ) { + _desktop->selection->clear(); + _tree.get_selection()->selected_foreach_iter( sigc::mem_fun(*this, &TagsPanel::_selected_row_callback)); + } + _selectionChangedConnection.unblock(); + + _checkTreeSelection(); +} + +void TagsPanel::_checkTreeSelection() +{ + bool sensitive = _tree.get_selection()->count_selected_rows() > 0; + bool sensitiveNonTop = true; + bool sensitiveNonBottom = true; +// if ( _tree.get_selection()->count_selected_rows() > 0 ) { +// sensitive = true; +// +// SPObject* inTree = _selectedLayer(); +// if ( inTree ) { +// +// sensitiveNonTop = (Inkscape::Nex(inTree->parent, inTree) != 0); +// sensitiveNonBottom = (Inkscape::previous_layer(inTree->parent, inTree) != 0); +// +// } +// } + + + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( sensitive ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonTop ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( sensitiveNonBottom ); + } +} + +bool TagsPanel::_handleKeyEvent(GdkEventKey *event) +{ + + switch (Inkscape::UI::Tools::get_group0_keyval(event)) { + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_F2: { + Gtk::TreeModel::iterator iter = _tree.get_selection()->get_selected(); + if (iter && !_text_renderer->property_editable()) { + Gtk::TreeRow row = *iter; + SPObject * obj = row[_model->_colObject]; + if (obj && SP_IS_TAG(obj)) { + Gtk::TreeModel::Path *path = new Gtk::TreeModel::Path(iter); + // Edit the layer label + _text_renderer->property_editable() = true; + _tree.set_cursor(*path, *_name_column, true); + grab_focus(); + return true; + } + } + } + case GDK_KEY_Delete: { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + if (!todelete.empty()) { + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * obj = *iter; + if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set")); + } + return true; + } + break; + } + return false; +} + +bool TagsPanel::_handleButtonEvent(GdkEventButton* event) +{ + static unsigned doubleclick = 0; + + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 3) ) { + // TODO - fix to a better is-popup function + Gtk::TreeModel::Path path; + int x = static_cast(event->x); + int y = static_cast(event->y); + if ( _tree.get_path_at_pos( x, y, path ) ) { + _checkTreeSelection(); + _popupMenu.popup(event->button, event->time); + if (_tree.get_selection()->is_selected(path)) { + return true; + } + } + } + + if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1)) { + // Alt left click on the visible/lock columns - eat this event to keep row selection + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (col == _tree.get_column(COL_ADD-1)) { + down_at_add = true; + return true; + } else if ( !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) & _tree.get_selection()->is_selected(path) ) { + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_noSelection)); + _defer_target = path; + } else { + down_at_add = false; + } + } else { + down_at_add = false; + } + } + + if ( event->type == GDK_BUTTON_RELEASE) { + _tree.get_selection()->set_select_function(sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction)); + } + + // TODO - ImageToggler doesn't seem to handle Shift/Alt clicks - so we deal with them here. + if ( (event->type == GDK_BUTTON_RELEASE) && (event->button == 1)) { + + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) ) { + if (_defer_target) { + if (_defer_target == path && !(event->x == 0 && event->y == 0)) + { + _tree.set_cursor(path, *col, false); + } + _defer_target = Gtk::TreeModel::Path(); + } else { + Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colObject]; + + if (obj) { + if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { + if (SP_IS_TAG(obj)) { + bool wasadded = false; + for (const GSList * iter = _desktop->selection->itemList(); iter != NULL; iter = iter->next) + { + SPObject *newobj = reinterpret_cast(iter->data); + bool addchild = true; + for ( SPObject *child = obj->children; child != NULL; child = child->next) { + if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { + addchild = false; + } + } + if (addchild) { + Inkscape::XML::Node *clone = _document->getReprDoc()->createElement("inkscape:tagref"); + clone->setAttribute("xlink:href", g_strdup_printf("#%s", newobj->getRepr()->attribute("id")), false); + obj->appendChild(clone); + wasadded = true; + } + } + if (wasadded) { + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Add selection to set")); + } + } else { + std::vector todelete; + _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); + if (!todelete.empty()) { + for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { + SPObject * tobj = *iter; + if (tobj && tobj->parent && tobj->getRepr() && tobj->parent->getRepr()) { + tobj->parent->getRepr()->removeChild(tobj->getRepr()); + } + } + } else if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { + obj->parent->getRepr()->removeChild(obj->getRepr()); + } + DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set")); + } + } + } + } + } + } + + + if ( (event->type == GDK_2BUTTON_PRESS) && (event->button == 1) ) { + doubleclick = 1; + } + + if ( event->type == GDK_BUTTON_RELEASE && doubleclick) { + doubleclick = 0; + Gtk::TreeModel::Path path; + Gtk::TreeViewColumn* col = 0; + int x = static_cast(event->x); + int y = static_cast(event->y); + int x2 = 0; + int y2 = 0; + if ( _tree.get_path_at_pos( x, y, path, col, x2, y2 ) && col == _name_column) { + Gtk::TreeModel::Children::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colObject]; + if (obj && (SP_IS_TAG(obj) || (SP_IS_TAG_USE(obj) && SP_TAG_USE(obj)->ref->getObject()))) { + // Double click on the Layer name, enable editing + _text_renderer->property_editable() = true; + _tree.set_cursor (path, *_name_column, true); + grab_focus(); + } + } + } + + return false; +} + +void TagsPanel::_storeDragSource(const Gtk::TreeModel::iterator& iter) +{ + Gtk::TreeModel::Row row = *iter; + SPObject* obj = row[_model->_colObject]; + SPTag* item = ( obj && SP_IS_TAG(obj) ) ? SP_TAG(obj) : 0; + if (item) + { + _dnd_source.push_back(item); + } +} + +/* + * Drap and drop within the tree + * Save the drag source and drop target SPObjects and if its a drag between layers or into (sublayer) a layer + */ +bool TagsPanel::_handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time) +{ + int cell_x = 0, cell_y = 0; + Gtk::TreeModel::Path target_path; + Gtk::TreeView::Column *target_column; + + _dnd_into = true; + _dnd_target = _document->getDefs(); + _dnd_source.clear(); + _tree.get_selection()->selected_foreach_iter(sigc::mem_fun(*this, &TagsPanel::_storeDragSource)); + + if (_dnd_source.empty()) { + return true; + } + + if (_tree.get_path_at_pos (x, y, target_path, target_column, cell_x, cell_y)) { + // Are we before, inside or after the drop layer + Gdk::Rectangle rect; + _tree.get_background_area (target_path, *target_column, rect); + int cell_height = rect.get_height(); + _dnd_into = (cell_y > (int)(cell_height * 1/3) && cell_y <= (int)(cell_height * 2/3)); + if (cell_y > (int)(cell_height * 2/3)) { + Gtk::TreeModel::Path next_path = target_path; + next_path.next(); + if (_store->iter_is_valid(_store->get_iter(next_path))) { + target_path = next_path; + } else { + // Dragging to the "end" + Gtk::TreeModel::Path up_path = target_path; + up_path.up(); + if (_store->iter_is_valid(_store->get_iter(up_path))) { + // Drop into parent + target_path = up_path; + _dnd_into = true; + } else { + // Drop into the top level + _dnd_target = _document->getDefs(); + _dnd_into = true; + } + } + } + Gtk::TreeModel::iterator iter = _store->get_iter(target_path); + if (_store->iter_is_valid(iter)) { + Gtk::TreeModel::Row row = *iter; + SPObject *obj = row[_model->_colObject]; + SPObject *pobj = row[_model->_colParentObject]; + if (obj) { + if (SP_IS_TAG(obj)) { + _dnd_target = SP_TAG(obj); + } else if (SP_IS_TAG(obj->parent)) { + _dnd_target = SP_TAG(obj->parent); + _dnd_into = true; + } + } else if (pobj && SP_IS_TAG(pobj)) { + _dnd_target = SP_TAG(pobj); + _dnd_into = true; + } else { + return true; + } + } + } + + _takeAction(DRAGNDROP); + + return false; +} + +/* + * Move a layer in response to a drag & drop action + */ +void TagsPanel::_doTreeMove( ) +{ + if (_dnd_target) { + for (std::vector::iterator iter = _dnd_source.begin(); iter != _dnd_source.end(); ++iter) + { + SPTag *src = *iter; + if (src != _dnd_target) { + src->moveTo(_dnd_target, _dnd_into); + } + } + _desktop->selection->clear(); + while (!_dnd_source.empty()) + { + SPTag *src = _dnd_source.back(); + _select_tag(src); + _dnd_source.pop_back(); + } + DocumentUndo::done( _desktop->doc() , SP_VERB_DIALOG_TAGS, + _("Moved sets")); + } +} + + +void TagsPanel::_handleEdited(const Glib::ustring& path, const Glib::ustring& new_text) +{ + Gtk::TreeModel::iterator iter = _tree.get_model()->get_iter(path); + Gtk::TreeModel::Row row = *iter; + + _renameObject(row, new_text); + _text_renderer->property_editable() = false; +} + +void TagsPanel::_handleEditingCancelled() +{ + _text_renderer->property_editable() = false; +} + +void TagsPanel::_renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name) +{ + if ( row && _desktop) { + SPObject* obj = row[_model->_colObject]; + if ( obj ) { + if (SP_IS_TAG(obj)) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Rename object")); + } + } else if (SP_IS_TAG_USE(obj) && (obj = SP_TAG_USE(obj)->ref->getObject())) { + gchar const* oldLabel = obj->label(); + if ( !name.empty() && (!oldLabel || name != oldLabel) ) { + obj->setLabel(name.c_str()); + DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, + _("Rename object")); + } + } + } + } +} + +bool TagsPanel::_noSelection( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) +{ + return false; +} + +bool TagsPanel::_rowSelectFunction( Glib::RefPtr const & /*model*/, Gtk::TreeModel::Path const & /*path*/, bool currentlySelected ) +{ + bool val = true; + if ( !currentlySelected && _toggleEvent ) + { + GdkEvent* event = gtk_get_current_event(); + if ( event ) { + // (keep these checks separate, so we know when to call gdk_event_free() + if ( event->type == GDK_BUTTON_PRESS ) { + GdkEventButton const* target = reinterpret_cast(_toggleEvent); + GdkEventButton const* evtb = reinterpret_cast(event); + + if ( (evtb->window == target->window) + && (evtb->send_event == target->send_event) + && (evtb->time == target->time) + && (evtb->state == target->state) + ) + { + // Ooooh! It's a magic one + val = false; + } + } + gdk_event_free(event); + } + } + return val; +} + +void TagsPanel::_setExpanded(const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& /*path*/, bool isexpanded) +{ + Gtk::TreeModel::Row row = *iter; + + SPObject* obj = row[_model->_colParentObject]; + if (obj && SP_IS_TAG(obj)) + { + SP_TAG(obj)->setExpanded(isexpanded); + obj->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); + } +} + +/** + * Constructor + */ +TagsPanel::TagsPanel() : + UI::Widget::Panel("", "/dialogs/tags", SP_VERB_DIALOG_TAGS), + _rootWatcher(0), + deskTrack(), + _desktop(0), + _document(0), + _model(0), + _pending(0), + _toggleEvent(0), + _defer_target(), + desktopChangeConn() +{ + //Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + + ModelColumns *zoop = new ModelColumns(); + _model = zoop; + + _store = Gtk::TreeStore::create( *zoop ); + + _tree.set_model( _store ); + _tree.set_headers_visible(false); + _tree.set_reorderable(true); + _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); + + Inkscape::UI::Widget::AddToIcon * addRenderer = manage( new Inkscape::UI::Widget::AddToIcon()); + int addColNum = _tree.append_column("type", *addRenderer) - 1; + Gtk::TreeViewColumn *col = _tree.get_column(addColNum); + if ( col ) { + col->add_attribute( addRenderer->property_active(), _model->_colAddRemove ); + col->add_attribute( addRenderer->property_visible(), _model->_colAllowAddRemove ); + } + + _text_renderer = manage(new Gtk::CellRendererText()); + int nameColNum = _tree.append_column("Name", *_text_renderer) - 1; + _name_column = _tree.get_column(nameColNum); + _name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel); + + _tree.set_expander_column( *_tree.get_column(nameColNum) ); + + _tree.get_selection()->set_mode(Gtk::SELECTION_MULTIPLE); + _selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &TagsPanel::_pushTreeSelectionToCurrent) ); + _tree.get_selection()->set_select_function( sigc::mem_fun(*this, &TagsPanel::_rowSelectFunction) ); + + _tree.signal_drag_drop().connect( sigc::mem_fun(*this, &TagsPanel::_handleDragDrop), false); + _collapsedConnection = _tree.signal_row_collapsed().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), false)); + _expandedConnection = _tree.signal_row_expanded().connect( sigc::bind(sigc::mem_fun(*this, &TagsPanel::_setExpanded), true)); + + _text_renderer->signal_edited().connect( sigc::mem_fun(*this, &TagsPanel::_handleEdited) ); + _text_renderer->signal_editing_canceled().connect( sigc::mem_fun(*this, &TagsPanel::_handleEditingCancelled) ); + + _tree.signal_button_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); + _tree.signal_button_release_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleButtonEvent), false ); + _tree.signal_key_press_event().connect( sigc::mem_fun(*this, &TagsPanel::_handleKeyEvent), false ); + + _scroller.add( _tree ); + _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); + _scroller.set_shadow_type(Gtk::SHADOW_IN); + Gtk::Requisition sreq; +#if WITH_GTKMM_3_0 + Gtk::Requisition sreq_natural; + _scroller.get_preferred_size(sreq_natural, sreq); +#else + sreq = _scroller.size_request(); +#endif + int minHeight = 70; + if (sreq.height < minHeight) { + // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar + _scroller.set_size_request(sreq.width, minHeight); + } + + _layersPage.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); + + _layersPage.pack_end(_buttonsRow, Gtk::PACK_SHRINK); + + _getContents()->pack_start(_layersPage, Gtk::PACK_EXPAND_WIDGET); + + SPDesktop* targetDesktop = getDesktop(); + + Gtk::Button* btn = manage( new Gtk::Button() ); + _styleButton( *btn, targetDesktop, SP_VERB_TAG_NEW, GTK_STOCK_ADD, _("Add a new selection set") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_NEW) ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + +// btn = manage( new Gtk::Button("Dup") ); +// btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &LayersPanel::_takeAction), (int)BUTTON_DUPLICATE) ); +// _buttonsRow.add( *btn ); + + btn = manage( new Gtk::Button() ); + _styleButton( *btn, targetDesktop, SP_VERB_LAYER_DELETE, GTK_STOCK_REMOVE, _("Remove Item/Set") ); + btn->signal_clicked().connect( sigc::bind( sigc::mem_fun(*this, &TagsPanel::_takeAction), (int)BUTTON_DELETE) ); + _watching.push_back( btn ); + _buttonsSecondary.pack_start(*btn, Gtk::PACK_SHRINK); + + _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); + _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); + + // ------------------------------------------------------- + { + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_TAG_NEW, 0, "New", (int)BUTTON_NEW ) ); + + _popupMenu.show_all_children(); + } + // ------------------------------------------------------- + + + + for ( std::vector::iterator it = _watching.begin(); it != _watching.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonTop.begin(); it != _watchingNonTop.end(); ++it ) { + (*it)->set_sensitive( false ); + } + for ( std::vector::iterator it = _watchingNonBottom.begin(); it != _watchingNonBottom.end(); ++it ) { + (*it)->set_sensitive( false ); + } + + setDesktop( targetDesktop ); + + show_all_children(); + + // restorePanelPrefs(); + + // Connect this up last + desktopChangeConn = deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &TagsPanel::setDesktop) ); + deskTrack.connect(GTK_WIDGET(gobj())); +} + +TagsPanel::~TagsPanel() +{ + + setDesktop(NULL); + + if ( _model ) + { + delete _model; + _model = 0; + } + + if (_pending) { + delete _pending; + _pending = 0; + } + + if ( _toggleEvent ) + { + gdk_event_free( _toggleEvent ); + _toggleEvent = 0; + } + + desktopChangeConn.disconnect(); + deskTrack.disconnect(); +} + +void TagsPanel::setDocument(SPDesktop* /*desktop*/, SPDocument* document) +{ + while (!_objectWatchers.empty()) + { + TagsPanel::ObjectWatcher *w = _objectWatchers.back(); + w->_repr->removeObserver(*w); + _objectWatchers.pop_back(); + delete w; + } + + if (_rootWatcher) + { + _rootWatcher->_repr->removeObserver(*_rootWatcher); + delete _rootWatcher; + _rootWatcher = NULL; + } + + _document = document; + + if (document && document->getDefs() && document->getDefs()->getRepr()) + { + _rootWatcher = new TagsPanel::ObjectWatcher(this, document->getDefs()); + document->getDefs()->getRepr()->addObserver(*_rootWatcher); + _objectsChanged(document->getDefs()); + } +} + +void TagsPanel::setDesktop( SPDesktop* desktop ) +{ + Panel::setDesktop(desktop); + + if ( desktop != _desktop ) { + _documentChangedConnection.disconnect(); + _selectionChangedConnection.disconnect(); + if ( _desktop ) { + _desktop = 0; + } + + _desktop = Panel::getDesktop(); + if ( _desktop ) { + //setLabel( _desktop->doc()->name ); + _documentChangedConnection = _desktop->connectDocumentReplaced( sigc::mem_fun(*this, &TagsPanel::setDocument)); + _selectionChangedConnection = _desktop->selection->connectChanged( sigc::mem_fun(*this, &TagsPanel::_objectsSelected)); + + setDocument(_desktop, _desktop->doc()); + } + } +/* + GSList const *layers = _desktop->doc()->getResourceList( "layer" ); + g_message( "layers list starts at %p", layers ); + for ( GSList const *iter=layers ; iter ; iter = iter->next ) { + SPObject *layer=static_cast(iter->data); + g_message(" {%s} [%s]", layer->id, layer->label() ); + } +*/ + deskTrack.setBase(desktop); +} + + + + + +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/tags.h b/src/ui/dialog/tags.h new file mode 100644 index 000000000..d35dfba01 --- /dev/null +++ b/src/ui/dialog/tags.h @@ -0,0 +1,181 @@ +/* + * A simple dialog for tags UI. + * + * Authors: + * Theodore Janeczko + * + * Copyright (C) Theodore Janeczko 2012 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef SEEN_TAGS_PANEL_H +#define SEEN_TAGS_PANEL_H + +#include +#include +#include +#include +#include +#include "ui/widget/spinbutton.h" +#include "ui/widget/panel.h" +#include "ui/widget/object-composite-settings.h" +#include "desktop-tracker.h" +#include "ui/widget/style-subject.h" +#include "selection.h" +#include "ui/widget/filter-effect-chooser.h" + +class SPObject; +class SPTag; +struct SPColorSelector; + +namespace Inkscape { + +namespace UI { +namespace Dialog { + + +/** + * A panel that displays layers. + */ +class TagsPanel : public UI::Widget::Panel +{ +public: + TagsPanel(); + virtual ~TagsPanel(); + + //virtual void setOrientation( Gtk::AnchorType how ); + + static TagsPanel& getInstance(); + + void setDesktop( SPDesktop* desktop ); + void setDocument( SPDesktop* desktop, SPDocument* document); + +protected: + //virtual void _handleAction( int setId, int itemId ); + friend void sp_highlight_picker_color_mod(SPColorSelector *csel, GObject *cp); +private: + class ModelColumns; + class InternalUIBounce; + class ObjectWatcher; + + TagsPanel(TagsPanel const &); // no copy + TagsPanel &operator=(TagsPanel const &); // no assign + + void _styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* tooltip ); + void _fireAction( unsigned int code ); + Gtk::MenuItem& _addPopupItem( SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback, int id ); + + bool _handleButtonEvent(GdkEventButton *event); + bool _handleKeyEvent(GdkEventKey *event); + + void _storeDragSource(const Gtk::TreeModel::iterator& iter); + bool _handleDragDrop(const Glib::RefPtr& context, int x, int y, guint time); + void _handleEdited(const Glib::ustring& path, const Glib::ustring& new_text); + void _handleEditingCancelled(); + + void _doTreeMove(); + void _renameObject(Gtk::TreeModel::Row row, const Glib::ustring& name); + + void _pushTreeSelectionToCurrent(); + void _selected_row_callback( const Gtk::TreeModel::iterator& iter ); + void _select_tag( SPTag * tag ); + + void _checkTreeSelection(); + + void _takeAction( int val ); + bool _executeAction(); + + void _setExpanded( const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path, bool isexpanded ); + + bool _noSelection( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + bool _rowSelectFunction( Glib::RefPtr const & model, Gtk::TreeModel::Path const & path, bool b ); + + void _updateObject(SPObject *obj); + bool _checkForUpdated(const Gtk::TreePath &path, const Gtk::TreeIter& iter, SPObject* obj); + + void _objectsSelected(Selection *sel); + bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPObject* layer); + + void _objectsChanged(SPObject *root); + void _addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ); + + void _checkForDeleted(const Gtk::TreeIter& iter, std::vector* todelete); + +// std::vector groupConnections; + TagsPanel::ObjectWatcher* _rootWatcher; + std::vector _objectWatchers; + + // Hooked to the layer manager: + sigc::connection _documentChangedConnection; + sigc::connection _selectionChangedConnection; + + sigc::connection _changedConnection; + sigc::connection _addedConnection; + sigc::connection _removedConnection; + + // Internal + sigc::connection _selectedConnection; + sigc::connection _expandedConnection; + sigc::connection _collapsedConnection; + + DesktopTracker deskTrack; + SPDesktop* _desktop; + SPDocument* _document; + ModelColumns* _model; + InternalUIBounce* _pending; + gboolean _dnd_into; + std::vector _dnd_source; + SPObject* _dnd_target; + + GdkEvent* _toggleEvent; + bool down_at_add; + + Gtk::TreeModel::Path _defer_target; + + Glib::RefPtr _store; + std::vector _watching; + std::vector _watchingNonTop; + std::vector _watchingNonBottom; + + Gtk::TreeView _tree; + Gtk::CellRendererText *_text_renderer; + Gtk::TreeView::Column *_name_column; +#if WITH_GTKMM_3_0 + Gtk::Box _buttonsRow; + Gtk::Box _buttonsPrimary; + Gtk::Box _buttonsSecondary; +#else + Gtk::HBox _buttonsRow; + Gtk::HBox _buttonsPrimary; + Gtk::HBox _buttonsSecondary; +#endif + Gtk::ScrolledWindow _scroller; + Gtk::Menu _popupMenu; + Inkscape::UI::Widget::SpinButton _spinBtn; + Gtk::VBox _layersPage; + + sigc::connection desktopChangeConn; + +}; + + + +} //namespace Dialogs +} //namespace UI +} //namespace Inkscape + + + +#endif // SEEN_OBJECTS_PANEL_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/verbs.cpp b/src/verbs.cpp index c20f48e65..e1d6c0583 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -64,6 +64,7 @@ #include "seltrans.h" #include "shape-editor.h" #include "shortcuts.h" +#include "sp-defs.h" #include "sp-flowtext.h" #include "sp-guide.h" #include "splivarot.h" @@ -214,6 +215,25 @@ public: { } }; // ObjectVerb class +/** + * A class to encompass all of the verbs which deal with operations related to tags. + */ +class TagVerb : public Verb { +private: + static void perform(SPAction *action, void *mydata); +protected: + virtual SPAction *make_action(Inkscape::ActionContext const & context); +public: + /** Use the Verb initializer with the same parameters. */ + TagVerb(unsigned int const code, + gchar const *id, + gchar const *name, + gchar const *tip, + gchar const *image) : + Verb(code, id, name, tip, image, _("Tag")) + { } +}; // TagVerb class + /** * A class to encompass all of the verbs which deal with operations relative to context. */ @@ -459,6 +479,19 @@ SPAction *ObjectVerb::make_action(Inkscape::ActionContext const & context) return make_action_helper(context, &perform); } +/** + * Create an action for a \c TagVerb. + * + * Calls \c make_action_helper with the \c vector. + * + * @param view Which view the action should be created for. + * @return The built action. + */ +SPAction *TagVerb::make_action(Inkscape::ActionContext const & context) +{ + return make_action_helper(context, &perform); +} + /** * Create an action for a \c ContextVerb. * @@ -1547,6 +1580,47 @@ void ObjectVerb::perform( SPAction *action, void *data) } // end of sp_verb_action_object_perform() +/** + * Decode the verb code and take appropriate action. + */ +void TagVerb::perform( SPAction *action, void *data) +{ + SPDesktop *dt = static_cast(sp_action_get_view(action)); + if (!dt) + return; + + //Inkscape::UI::Tools::ToolBase *ec = dt->event_context; + + Inkscape::Selection *sel = sp_desktop_selection(dt); + + Inkscape::XML::Document * doc; + Inkscape::XML::Node * repr; + gchar *id; + + switch (reinterpret_cast(data)) { + case SP_VERB_TAG_NEW: + static int tag_suffix=1; + id=NULL; + do { + g_free(id); + id = g_strdup_printf("tag%d", tag_suffix++); + } while (dt->doc()->getObjectById(id)); + + doc = dt->doc()->getReprDoc(); + repr = doc->createElement("inkscape:tag"); + repr->setAttribute("id", id); + g_free(id); + + dt->doc()->getDefs()->addChild(repr, NULL); + Inkscape::DocumentUndo::done(dt->doc(), SP_VERB_DIALOG_TAGS, _("Create new selection set")); + break; + default: + break; + } + +} // end of sp_verb_action_tag_perform() + + /** * Decode the verb code and take appropriate action. */ @@ -2040,9 +2114,9 @@ void DialogVerb::perform(SPAction *action, void *data) case SP_VERB_DIALOG_OBJECTS: dt->_dlg_mgr->showDialog("ObjectsPanel"); break; - /*case SP_VERB_DIALOG_TAGS: + case SP_VERB_DIALOG_TAGS: dt->_dlg_mgr->showDialog("TagsPanel"); - break;*/ //in a moment my dear + break; case SP_VERB_DIALOG_LIVE_PATH_EFFECT: dt->_dlg_mgr->showDialog("LivePathEffect"); break; @@ -2647,7 +2721,9 @@ Verb *Verb::_base_verbs[] = { N_("Edit clipping path"), INKSCAPE_ICON("path-clip-edit")), new ObjectVerb(SP_VERB_OBJECT_UNSET_CLIPPATH, "ObjectUnSetClipPath", N_("_Release"), N_("Remove clipping path from selection"), NULL), - + // Tag + new TagVerb(SP_VERB_TAG_NEW, "TagNew", N_("_New"), + N_("Create new selection set"), NULL), // Tools new ContextVerb(SP_VERB_CONTEXT_SELECT, "ToolSelector", NC_("ContextVerb", "Select"), N_("Select and transform objects"), INKSCAPE_ICON("tool-pointer")), @@ -2862,8 +2938,8 @@ Verb *Verb::_base_verbs[] = { N_("View Layers"), INKSCAPE_ICON("dialog-layers")), new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), N_("View Objects"), INKSCAPE_ICON("dialog-layers")), - /*new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogObjects", N_("Ta_gs..."), - N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")),*/ + new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogTags", N_("Ta_gs..."), + N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")), new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), N_("Manage, edit, and apply path effects"), NULL), new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."), diff --git a/src/verbs.h b/src/verbs.h index 141a9c7e9..821c9ee82 100644 --- a/src/verbs.h +++ b/src/verbs.h @@ -177,6 +177,8 @@ enum { SP_VERB_OBJECT_SET_CLIPPATH, SP_VERB_OBJECT_EDIT_CLIPPATH, SP_VERB_OBJECT_UNSET_CLIPPATH, + /* Tag */ + SP_VERB_TAG_NEW, /* Tools */ SP_VERB_CONTEXT_SELECT, SP_VERB_CONTEXT_NODE, @@ -290,7 +292,7 @@ enum { SP_VERB_DIALOG_EXTENSIONEDITOR, SP_VERB_DIALOG_LAYERS, SP_VERB_DIALOG_OBJECTS, -// SP_VERB_DIALOG_TAGS, + SP_VERB_DIALOG_TAGS, SP_VERB_DIALOG_LIVE_PATH_EFFECT, SP_VERB_DIALOG_FILTER_EFFECTS, SP_VERB_DIALOG_SVG_FONTS, -- cgit v1.2.3 From 1f1932ae4592c8f316e3a68ac86874bf87f321c4 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 11 May 2014 14:23:10 -0400 Subject: Stabilize the selection set system a bit (bzr r13090.1.76) --- src/sp-tag-use.cpp | 1 + src/ui/dialog/tags.cpp | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/sp-tag-use.cpp b/src/sp-tag-use.cpp index ffcfcee3e..5851598f2 100644 --- a/src/sp-tag-use.cpp +++ b/src/sp-tag-use.cpp @@ -175,6 +175,7 @@ SPTagUse::href_changed(SPObject */*old_ref*/, SPObject */*ref*/) SPObject* child_ = SPFactory::instance().createObject(typeString); if (child_) { + child = child_; attach(child_, lastChild()); sp_object_unref(child_, 0); child_->invoke_build(this->document, childrepr, TRUE); diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 7fdd2e906..14ad5b8cc 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -280,7 +280,8 @@ bool TagsPanel::_executeAction() for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { SPObject * obj = *iter; if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { - obj->parent->getRepr()->removeChild(obj->getRepr()); + //obj->parent->getRepr()->removeChild(obj->getRepr()); + obj->deleteObject(true, true); } } DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set")); @@ -576,7 +577,8 @@ bool TagsPanel::_handleKeyEvent(GdkEventKey *event) for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { SPObject * obj = *iter; if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { - obj->parent->getRepr()->removeChild(obj->getRepr()); + //obj->parent->getRepr()->removeChild(obj->getRepr()); + obj->deleteObject(true, true); } } DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set")); @@ -680,12 +682,14 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) } } else { std::vector todelete; + // FIXME unnecessary use of XML tree _tree.get_selection()->selected_foreach_iter(sigc::bind*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete)); if (!todelete.empty()) { for (std::vector::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) { SPObject * tobj = *iter; if (tobj && tobj->parent && tobj->getRepr() && tobj->parent->getRepr()) { - tobj->parent->getRepr()->removeChild(tobj->getRepr()); + //tobj->parent->getRepr()->removeChild(tobj->getRepr()); + tobj->deleteObject(true, true); } } } else if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) { -- cgit v1.2.3 From 0dc8b506fe92a6f4a57d6412db69c3fea420d67a Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 11 May 2014 15:08:59 -0400 Subject: Rename "Tags" to "Selection sets" to avoid confusion with a global tagging system (bzr r13090.1.77) --- src/ui/dialog/tags.cpp | 2 +- src/verbs.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 14ad5b8cc..1b5dd9400 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -1025,7 +1025,7 @@ TagsPanel::TagsPanel() : // ------------------------------------------------------- { - _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_TAG_NEW, 0, "New", (int)BUTTON_NEW ) ); + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_TAG_NEW, 0, "Add a new selection set", (int)BUTTON_NEW ) ); _popupMenu.show_all_children(); } diff --git a/src/verbs.cpp b/src/verbs.cpp index e1d6c0583..73613ab9e 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1603,7 +1603,7 @@ void TagVerb::perform( SPAction *action, void *data) id=NULL; do { g_free(id); - id = g_strdup_printf("tag%d", tag_suffix++); + id = g_strdup_printf("Set %d", tag_suffix++); } while (dt->doc()->getObjectById(id)); doc = dt->doc()->getReprDoc(); @@ -2938,7 +2938,7 @@ Verb *Verb::_base_verbs[] = { N_("View Layers"), INKSCAPE_ICON("dialog-layers")), new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."), N_("View Objects"), INKSCAPE_ICON("dialog-layers")), - new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogTags", N_("Ta_gs..."), + new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogTags", N_("Selection se_ts..."), N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")), new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."), N_("Manage, edit, and apply path effects"), NULL), -- cgit v1.2.3 From 8e303a547b23758ec6c1accee912185f25718c03 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Mon, 12 May 2014 19:59:28 -0400 Subject: Commit patch for "leaned" cap. Thanks Jabiertxof! (bzr r13090.1.78) --- src/live_effects/lpe-jointype.cpp | 24 ++++++--- src/live_effects/lpe-jointype.h | 2 + src/live_effects/pathoutlineprovider.cpp | 92 ++++++++++++++++++++++++++------ src/live_effects/pathoutlineprovider.h | 14 +++-- 4 files changed, 105 insertions(+), 27 deletions(-) diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp index 0c1813970..b0a6e845b 100644 --- a/src/live_effects/lpe-jointype.cpp +++ b/src/live_effects/lpe-jointype.cpp @@ -41,10 +41,11 @@ static const Util::EnumData JoinTypeData[] = { }; static const Util::EnumData CapTypeData[] = { - {butt_straight, N_("Butt"), "butt"}, - {butt_round, N_("Rounded"), "round"}, - {butt_square, N_("Square"), "square"}, - {butt_pointy, N_("Peak"), "peak"} + {BUTT_STRAIGHT, N_("Butt"), "butt"}, + {BUTT_ROUND, N_("Rounded"), "round"}, + {BUTT_SQUARE, N_("Square"), "square"}, + {BUTT_POINTY, N_("Peak"), "peak"}, + {BUTT_LEANED, N_("Leaned"), "leaned"} }; static const Util::EnumDataConverter CapTypeConverter(CapTypeData, sizeof(CapTypeData)/sizeof(*CapTypeData)); @@ -55,6 +56,8 @@ LPEJoinType::LPEJoinType(LivePathEffectObject *lpeobject) : line_width(_("Line width"), _("Thickness of the stroke"), "line_width", &wr, this, 1.), linecap_type(_("Line cap"), _("The end shape of the stroke"), "linecap_type", CapTypeConverter, &wr, this, butt_straight), linejoin_type(_("Join:"), _("Determines the shape of the path's corners"), "linejoin_type", JoinTypeConverter, &wr, this, LINEJOIN_EXTRAPOLATED), + start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), + end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), miter_limit(_("Miter limit:"), _("Maximum length of the miter join (in units of stroke width)"), "miter_limit", &wr, this, 100.), attempt_force_join(_("Force miter"), _("Overrides the miter limit and forces a join."), "attempt_force_join", &wr, this, true) { @@ -62,9 +65,17 @@ LPEJoinType::LPEJoinType(LivePathEffectObject *lpeobject) : registerParameter( dynamic_cast(&linecap_type) ); registerParameter( dynamic_cast(&line_width) ); registerParameter( dynamic_cast(&linejoin_type) ); + registerParameter( dynamic_cast(&start_lean) ); + registerParameter( dynamic_cast(&end_lean) ); registerParameter( dynamic_cast(&miter_limit) ); registerParameter( dynamic_cast(&attempt_force_join) ); was_initialized = false; + start_lean.param_set_range(-1,1); + start_lean.param_set_increments(0.1, 0.1); + start_lean.param_set_digits(4); + end_lean.param_set_range(-1,1); + end_lean.param_set_increments(0.1, 0.1); + end_lean.param_set_digits(4); } LPEJoinType::~LPEJoinType() @@ -163,9 +174,10 @@ void LPEJoinType::doOnRemove(SPLPEItem const* lpeitem) //wrapper around it. std::vector LPEJoinType::doEffect_path(std::vector const & path_in) { - return Outline::PathVectorOutline(path_in, line_width, static_cast(linecap_type.get_value()), + return Outline::PathVectorOutline(path_in, line_width, static_cast(linecap_type.get_value()), static_cast(linejoin_type.get_value()), - (attempt_force_join ? std::numeric_limits::max() : miter_limit)); + (attempt_force_join ? std::numeric_limits::max() : miter_limit), + start_lean/2 ,end_lean/2); } } //namespace LivePathEffect diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h index db113c66a..7ebce1c7e 100755 --- a/src/live_effects/lpe-jointype.h +++ b/src/live_effects/lpe-jointype.h @@ -32,6 +32,8 @@ private: ScalarParam line_width; EnumParam linecap_type; EnumParam linejoin_type; + ScalarParam start_lean; + ScalarParam end_lean; ScalarParam miter_limit; BoolParam attempt_force_join; bool was_initialized; diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index 9ff896f84..d6e0ce7ea 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -586,7 +586,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double } Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, - ButtType butt, double miter_lim, bool extrapolate) + ButtTypeMod butt, double miter_lim, bool extrapolate, double start_lean, double end_lean) { Geom::PathVector path_out; @@ -610,13 +610,13 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, //add in our line caps if (!path_in[i].closed()) { switch (butt) { - case butt_straight: + case BUTT_STRAIGHT: pb.lineTo(against_direction.initialPoint()); break; - case butt_round: + case BUTT_ROUND: pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, against_direction.initialPoint() ); break; - case butt_pointy: { + case BUTT_POINTY: { Geom::Point end_deriv = -Geom::unitTangentAt(Geom::reverse(path_in[i].back().toSBasis()), 0.); double radius = 0.5 * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); Geom::Point midpoint = 0.5 * (with_direction.finalPoint() + against_direction.initialPoint()) + radius*end_deriv; @@ -624,7 +624,7 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, pb.lineTo(against_direction.initialPoint()); break; } - case butt_square: { + case BUTT_SQUARE: { Geom::Point end_deriv = -Geom::unitTangentAt(Geom::reverse(path_in[i].back().toSBasis()), 0.); double radius = 0.5 * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); pb.lineTo(with_direction.finalPoint() + radius*end_deriv); @@ -632,6 +632,15 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, pb.lineTo(against_direction.initialPoint()); break; } + case BUTT_LEANED: { + Geom::Point end_deriv = -Geom::unitTangentAt(Geom::reverse(path_in[i].back().toSBasis()), 0.); + double maxRadius = (end_lean+0.5) * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); + double minRadius = ((end_lean*-1)+0.5) * Geom::distance(with_direction.finalPoint(), against_direction.initialPoint()); + pb.lineTo(with_direction.finalPoint() + maxRadius*end_deriv); + pb.lineTo(against_direction.initialPoint() + minRadius*end_deriv); + pb.lineTo(against_direction.initialPoint()); + break; + } } } else { pb.moveTo(against_direction.initialPoint()); @@ -642,13 +651,13 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, //cap (if necessary) if (!path_in[i].closed()) { switch (butt) { - case butt_straight: + case BUTT_STRAIGHT: pb.lineTo(with_direction.initialPoint()); break; - case butt_round: + case BUTT_ROUND: pb.arcTo((-line_width) / 2, (-line_width) / 2, 0., true, true, with_direction.initialPoint() ); break; - case butt_pointy: { + case BUTT_POINTY: { Geom::Point end_deriv = -Geom::unitTangentAt(path_in[i].front().toSBasis(), 0.); double radius = 0.5 * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); Geom::Point midpoint = 0.5 * (against_direction.finalPoint() + with_direction.initialPoint()) + radius*end_deriv; @@ -656,7 +665,7 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, pb.lineTo(with_direction.initialPoint()); break; } - case butt_square: { + case BUTT_SQUARE: { Geom::Point end_deriv = -Geom::unitTangentAt(path_in[i].front().toSBasis(), 0.); double radius = 0.5 * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); pb.lineTo(against_direction.finalPoint() + radius*end_deriv); @@ -664,6 +673,15 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, pb.lineTo(with_direction.initialPoint()); break; } + case BUTT_LEANED: { + Geom::Point end_deriv = -Geom::unitTangentAt(path_in[i].front().toSBasis(), 0.); + double maxRadius = (start_lean+0.5) * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); + double minRadius = ((start_lean*-1)+0.5) * Geom::distance(against_direction.finalPoint(), with_direction.initialPoint()); + pb.lineTo(against_direction.finalPoint() + minRadius*end_deriv); + pb.lineTo(with_direction.initialPoint() + maxRadius*end_deriv); + pb.lineTo(with_direction.initialPoint()); + break; + } } } pb.flush(); @@ -674,9 +692,29 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, } else { Path p = Path(); Path outlinepath = Path(); - + ButtType original_butt; + switch (butt) { + case BUTT_STRAIGHT: + original_butt = butt_straight; + break; + case BUTT_ROUND: + original_butt = butt_round; + break; + case butt_pointy: { + original_butt = butt_pointy; + break; + } + case BUTT_SQUARE: { + original_butt = butt_square; + break; + } + case BUTT_LEANED: { + original_butt = butt_straight; + break; + } + } p.LoadPath(path_in[i], Geom::Affine(), false, false); - p.Outline(&outlinepath, line_width / 2, static_cast(join), butt, miter_lim); + p.Outline(&outlinepath, line_width / 2, static_cast(join), original_butt, miter_lim); Geom::PathVector *pv_p = outlinepath.MakePathVector(); //somewhat hack-ish path_out.push_back( (*pv_p)[0].reverse() ); @@ -686,8 +724,8 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, return path_out; } -Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line_width, ButtType linecap_type, - LineJoinType linejoin_type, double miter_limit) +Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line_width, ButtTypeMod linecap_type, + LineJoinType linejoin_type, double miter_limit, double start_lean, double end_lean) { std::vector path_out = std::vector(); if (path_in.empty()) { @@ -702,9 +740,30 @@ Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line #define miter_lim fabs(line_width * miter_limit) //magic! + ButtType original_butt; + switch (linecap_type) { + case BUTT_STRAIGHT: + original_butt = butt_straight; + break; + case BUTT_ROUND: + original_butt = butt_round; + break; + case butt_pointy: { + original_butt = butt_pointy; + break; + } + case BUTT_SQUARE: { + original_butt = butt_square; + break; + } + case BUTT_LEANED: { + original_butt = butt_straight; + break; + } + } if (linejoin_type <= 2) { p.Outline(&outlinepath, line_width / 2, static_cast(linejoin_type), - linecap_type, miter_lim); + original_butt, miter_lim); //fix memory leak std::vector *pv_p = outlinepath.MakePathVector(); path_out = *pv_p; @@ -713,12 +772,11 @@ Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line } else if (linejoin_type == 3) { //reflected arc join path_out = outlinePath(path_in, line_width, static_cast(linejoin_type), - linecap_type , miter_lim, false); + linecap_type , miter_lim, false, start_lean, end_lean); } else if (linejoin_type == 4) { //extrapolated arc join - path_out = outlinePath(path_in, line_width, LINEJOIN_STRAIGHT, linecap_type, miter_lim, true); - + path_out = outlinePath(path_in, line_width, LINEJOIN_STRAIGHT, linecap_type, miter_lim, true, start_lean, end_lean); } #undef miter_lim diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h index 0ee0f261e..272c93a49 100644 --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -11,7 +11,13 @@ enum LineJoinType { LINEJOIN_REFLECTED, LINEJOIN_EXTRAPOLATED }; - +enum ButtTypeMod { + BUTT_STRAIGHT, + BUTT_ROUND, + BUTT_SQUARE, + BUTT_POINTY, + BUTT_LEANED +}; namespace Geom { Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in); @@ -21,11 +27,11 @@ namespace Geom namespace Outline { unsigned bezierOrder (const Geom::Curve* curve_in); - std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtType linecap_type, - LineJoinType linejoin_type, double miter_limit); + std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtTypeMod linecap_type, + LineJoinType linejoin_type, double miter_limit, double start_lean = 0, double end_lean = 0); /*Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, - ButtType butt, double miter_lim, bool extrapolate = false);*/ + ButtTypeMod butt, double miter_lim, bool extrapolate = false);*/ Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit); } -- cgit v1.2.3 From eb4d7e1225a2e1e5a5d1da8d0ab784632bc77291 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 14 Jun 2014 14:51:11 -0400 Subject: Add clip group option from Ponyscape (bzr r13090.1.83) --- src/interface.cpp | 11 +++++ src/interface.h | 1 + src/selection-chemistry.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++++ src/selection-chemistry.h | 1 + src/ui/dialog/objects.cpp | 12 +++-- src/verbs.cpp | 5 ++ src/verbs.h | 1 + 7 files changed, 139 insertions(+), 4 deletions(-) diff --git a/src/interface.cpp b/src/interface.cpp index 1cbeb44a3..e47cff598 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1756,6 +1756,13 @@ void ContextMenu::MakeItemMenu (void) } mi->show(); append(*mi); + + /*SSet Clip Group */ + mi = Gtk::manage(new Gtk::MenuItem(_("Create Clip G_roup"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::CreateGroupClip)); + mi->set_sensitive(TRUE); + mi->show(); + append(*mi); /* Set Clip */ mi = Gtk::manage(new Gtk::MenuItem(_("Set Cl_ip"), 1)); @@ -1867,6 +1874,10 @@ void ContextMenu::ReleaseMask(void) sp_selection_unset_mask(_desktop, false); } +void ContextMenu::CreateGroupClip(void) +{ + sp_selection_set_clipgroup(_desktop); +} void ContextMenu::SetClip(void) { diff --git a/src/interface.h b/src/interface.h index 215a3bfc9..a4eedf9db 100644 --- a/src/interface.h +++ b/src/interface.h @@ -187,6 +187,7 @@ class ContextMenu : public Gtk::Menu void SelectSameStrokeStyle(void); void SelectSameObjectType(void); void ItemCreateLink(void); + void CreateGroupClip(void); void SetMask(void); void ReleaseMask(void); void SetClip(void); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index a350dd7a7..d2f6d692a 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3661,6 +3661,118 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) g_free(filepath); } +/* Creates a mask or clipPath from selection. + * What is a clip group? + * A clip group is a tangled mess of XML that allows an object inside a group + * to clip the entire group using a few s and generally irritating me. + */ + +void sp_selection_set_clipgroup(SPDesktop *desktop) +{ + if (desktop == NULL) { + return; + } + SPDocument* doc = sp_desktop_document(desktop); + Inkscape::XML::Document *xml_doc = doc->getReprDoc(); + + Inkscape::Selection *selection = sp_desktop_selection(desktop); + if (selection->isEmpty()) { + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to create clippath or mask from.")); + return; + } + + GSList const *l = const_cast(selection->reprList()); + + GSList *p = g_slist_copy(const_cast(l)); + + p = g_slist_sort(p, (GCompareFunc) sp_repr_compare_position); + + selection->clear(); + + gint topmost = (static_cast(g_slist_last(p)->data))->position(); + Inkscape::XML::Node *topmost_parent = (static_cast(g_slist_last(p)->data))->parent(); + + Inkscape::XML::Node *inner = xml_doc->createElement("svg:g"); + inner->setAttribute("inkscape:label", "Clip"); + + while (p) { + Inkscape::XML::Node *current = static_cast(p->data); + + if (current->parent() == topmost_parent) { + Inkscape::XML::Node *spnew = current->duplicate(xml_doc); + sp_repr_unparent(current); + inner->appendChild(spnew); + Inkscape::GC::release(spnew); + topmost --; // only reduce count for those items deleted from topmost_parent + } else { // move it to topmost_parent first + GSList *temp_clip = NULL; + + // At this point, current may already have no item, due to its being a clone whose original is already moved away + // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform + gchar const *t_str = current->attribute("transform"); + Geom::Affine item_t(Geom::identity()); + if (t_str) + sp_svg_transform_read(t_str, &item_t); + item_t *= SP_ITEM(doc->getObjectByRepr(current->parent()))->i2doc_affine(); + // FIXME: when moving both clone and original from a transformed group (either by + // grouping into another parent, or by cut/paste) the transform from the original's + // parent becomes embedded into original itself, and this affects its clones. Fix + // this by remembering the transform diffs we write to each item into an array and + // then, if this is clone, looking up its original in that array and pre-multiplying + // it by the inverse of that original's transform diff. + + sp_selection_copy_one(current, item_t, &temp_clip, xml_doc); + sp_repr_unparent(current); + + // paste into topmost_parent (temporarily) + GSList *copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), &temp_clip); + if (temp_clip) g_slist_free(temp_clip); + if (copied) { // if success, + // take pasted object (now in topmost_parent) + Inkscape::XML::Node *in_topmost = static_cast(copied->data); + // make a copy + Inkscape::XML::Node *spnew = in_topmost->duplicate(xml_doc); + // remove pasted + sp_repr_unparent(in_topmost); + // put its copy into group + inner->appendChild(spnew); + Inkscape::GC::release(spnew); + g_slist_free(copied); + } + } + p = g_slist_remove(p, current); + } + + Inkscape::XML::Node *outer = xml_doc->createElement("svg:g"); + outer->appendChild(inner); + topmost_parent->appendChild(outer); + outer->setPosition(topmost + 1); + + Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); + clone->setAttribute("x", "0", false); + clone->setAttribute("y", "0", false); + clone->setAttribute("xlink:href", g_strdup_printf("#%s", inner->attribute("id")), false); + + clone->setAttribute("inkscape:transform-center-x", inner->attribute("inkscape:transform-center-x"), false); + clone->setAttribute("inkscape:transform-center-y", inner->attribute("inkscape:transform-center-y"), false); + + const Geom::Affine maskTransform(Geom::Affine::identity()); + GSList *templist = NULL; + + templist = g_slist_append(templist, clone); + // add the new clone to the top of the original's parent + gchar const *mask_id = SPClipPath::create(templist, doc, &maskTransform); + + g_slist_free(templist); + + outer->setAttribute("clip-path", g_strdup_printf("url(#%s)", mask_id)); + + Inkscape::GC::release(clone); + + selection->set(outer); + DocumentUndo::done(doc, SP_VERB_OBJECT_SET_CLIPPATH, _("Create Clip Group")); +} + /** * Creates a mask or clipPath from selection. * Two different modes: diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index d76a67a9d..baa530806 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -156,6 +156,7 @@ void sp_document_get_export_hints (SPDocument * doc, Glib::ustring &filename, fl void sp_selection_create_bitmap_copy (SPDesktop *desktop); +void sp_selection_set_clipgroup(SPDesktop *desktop); void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_to_layer); void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path); diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 85583a0e7..2d558daae 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -106,7 +106,7 @@ enum { BUTTON_LOCK_ALL, BUTTON_UNLOCK_ALL, BUTTON_SETCLIP, -// BUTTON_CLIPGROUP, + BUTTON_CLIPGROUP, // BUTTON_SETINVCLIP, BUTTON_UNSETCLIP, BUTTON_SETMASK, @@ -269,7 +269,7 @@ Gtk::MenuItem& ObjectsPanel::_addPopupItem( SPDesktop *desktop, unsigned int cod } if ( action ) { - label = action->name; + // label = action->name; } } } @@ -1257,6 +1257,10 @@ bool ObjectsPanel::_executeAction() _fireAction( SP_VERB_LAYER_UNLOCK_ALL ); } break; + case BUTTON_CLIPGROUP: + { + _fireAction ( SP_VERB_OBJECT_CREATE_CLIP_GROUP ); + } case BUTTON_SETCLIP: { _fireAction( SP_VERB_OBJECT_SET_CLIPPATH ); @@ -1935,8 +1939,8 @@ ObjectsPanel::ObjectsPanel() : _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_CLIPPATH, 0, "Set Clip", (int)BUTTON_SETCLIP ) ); - //not implemented - //_watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_CREATE_CLIP_GROUP, 0, "Create Clip Group", (int)BUTTON_CLIPGROUP ) ); + + _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_CREATE_CLIP_GROUP, 0, "Create Clip Group", (int)BUTTON_CLIPGROUP ) ); //will never be implemented //_watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); diff --git a/src/verbs.cpp b/src/verbs.cpp index 73613ab9e..f0a49a81a 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1568,6 +1568,9 @@ void ObjectVerb::perform( SPAction *action, void *data) case SP_VERB_OBJECT_SET_CLIPPATH: sp_selection_set_mask(dt, true, false); break; + case SP_VERB_OBJECT_CREATE_CLIP_GROUP: + sp_selection_set_clipgroup(dt); + break; case SP_VERB_OBJECT_EDIT_CLIPPATH: sp_selection_edit_clip_or_mask(dt, true); break; @@ -2717,6 +2720,8 @@ Verb *Verb::_base_verbs[] = { N_("Remove mask from selection"), NULL), new ObjectVerb(SP_VERB_OBJECT_SET_CLIPPATH, "ObjectSetClipPath", N_("_Set"), N_("Apply clipping path to selection (using the topmost object as clipping path)"), NULL), + new ObjectVerb(SP_VERB_OBJECT_CREATE_CLIP_GROUP, "ObjectCreateClipGroup", N_("Create Cl_ip Group"), + N_("Creates a clip group using the selected objects as a base"), NULL), new ObjectVerb(SP_VERB_OBJECT_EDIT_CLIPPATH, "ObjectEditClipPath", N_("_Edit"), N_("Edit clipping path"), INKSCAPE_ICON("path-clip-edit")), new ObjectVerb(SP_VERB_OBJECT_UNSET_CLIPPATH, "ObjectUnSetClipPath", N_("_Release"), diff --git a/src/verbs.h b/src/verbs.h index 821c9ee82..84d31fe42 100644 --- a/src/verbs.h +++ b/src/verbs.h @@ -175,6 +175,7 @@ enum { SP_VERB_OBJECT_EDIT_MASK, SP_VERB_OBJECT_UNSET_MASK, SP_VERB_OBJECT_SET_CLIPPATH, + SP_VERB_OBJECT_CREATE_CLIP_GROUP, SP_VERB_OBJECT_EDIT_CLIPPATH, SP_VERB_OBJECT_UNSET_CLIPPATH, /* Tag */ -- cgit v1.2.3 From 2e84697d3258b1fbf8ea250023991a3a2bdf066b Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Mon, 23 Jun 2014 14:49:05 -0400 Subject: Fix make check (bzr r13090.1.86) --- po/POTFILES.in | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/po/POTFILES.in b/po/POTFILES.in index 779009eb6..6de750f17 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -147,6 +147,15 @@ src/live_effects/lpe-skeleton.cpp src/live_effects/lpe-sketch.cpp src/live_effects/lpe-vonkoch.cpp src/live_effects/lpe-envelope-perspective.cpp +src/live_effects/lpe-attach-path.cpp +src/live_effects/lpe-bounding-box.cpp +src/live_effects/lpe-ellipse_5pts.cpp +src/live_effects/lpe-fill-between-many.cpp +src/live_effects/lpe-fill-between-strokes.cpp +src/live_effects/lpe-jointype.cpp +src/live_effects/lpe-taperstroke.cpp +src/live_effects/parameter/originalpatharray.cpp +src/live_effects/parameter/transformedpoint.cpp src/live_effects/parameter/pointreseteable.cpp src/live_effects/parameter/togglebutton.cpp src/live_effects/parameter/bool.cpp @@ -252,6 +261,9 @@ src/ui/dialog/tile.cpp src/ui/dialog/tracedialog.cpp src/ui/dialog/transformation.cpp src/ui/dialog/xml-tree.cpp +src/ui/dialog/lpe-powerstroke-properties.cpp +src/ui/dialog/objects.cpp +src/ui/dialog/tags.cpp src/ui/tool/curve-drag-point.cpp src/ui/tool/multi-path-manipulator.cpp src/ui/tool/node.cpp -- cgit v1.2.3 From ee321a47c14b9280bca4e42aaf04244ebe2acb35 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 5 Jul 2014 15:51:28 -0400 Subject: Fix make check (bzr r13090.1.88) --- po/POTFILES.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/po/POTFILES.in b/po/POTFILES.in index 6de750f17..41a51ecf5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -154,6 +154,8 @@ src/live_effects/lpe-fill-between-many.cpp src/live_effects/lpe-fill-between-strokes.cpp src/live_effects/lpe-jointype.cpp src/live_effects/lpe-taperstroke.cpp +src/live_effects/lpe-fillet-chamfer.cpp +src/live_effects/parameter/filletchamferpointarray.cpp src/live_effects/parameter/originalpatharray.cpp src/live_effects/parameter/transformedpoint.cpp src/live_effects/parameter/pointreseteable.cpp @@ -261,6 +263,7 @@ src/ui/dialog/tile.cpp src/ui/dialog/tracedialog.cpp src/ui/dialog/transformation.cpp src/ui/dialog/xml-tree.cpp +src/ui/dialog/lpe-fillet-chamfer-properties.cpp src/ui/dialog/lpe-powerstroke-properties.cpp src/ui/dialog/objects.cpp src/ui/dialog/tags.cpp -- cgit v1.2.3 From fe12278d612a0c52bcbff2736f18d4e590410b71 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 22 Jul 2014 22:35:50 -0400 Subject: Duplicate LPE entries (bzr r13090.1.91) --- src/live_effects/effect.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 179759ed6..777d500e9 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -147,11 +147,6 @@ const Util::EnumData LPETypeData[] = { {SIMPLIFY, N_("Simplify"), "simplify"}, {LATTICE2, N_("Lattice Deformation 2"), "lattice2"}, {ENVELOPE_PERSPECTIVE, N_("Envelope-Perspective"), "envelope-perspective"}, - {SIMPLIFY, N_("Simplify"), "simplify"}, - {LATTICE2, N_("Lattice Deformation 2"), "lattice2"}, - // TRANSLATORS: "Envelope Perspective" should be equivalent to "perspective transformation" - {ENVELOPE_PERSPECTIVE, N_("Envelope Perspective"), "envelope-perspective"}, - {FILLET_CHAMFER, N_("Fillet/Chamfer"), "fillet-chamfer"}, }; const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); -- cgit v1.2.3 From 76244246733cc1f1f3874aa498ad75977ebc6cd7 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 22 Jul 2014 22:39:21 -0400 Subject: This file does not need executable permissions (bzr r13090.1.93) --- src/live_effects/lpe-jointype.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/live_effects/lpe-jointype.h diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h old mode 100755 new mode 100644 -- cgit v1.2.3 From 3a6ed95f3fa5921c78b24f9ae73df7d442827571 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 23 Jul 2014 16:16:43 -0400 Subject: Refactoring of linejoin code (bzr r13090.1.94) --- src/live_effects/pathoutlineprovider.cpp | 551 +++++++++++++++---------------- src/live_effects/pathoutlineprovider.h | 33 +- 2 files changed, 283 insertions(+), 301 deletions(-) diff --git a/src/live_effects/pathoutlineprovider.cpp b/src/live_effects/pathoutlineprovider.cpp index d6e0ce7ea..482f1f5e0 100644 --- a/src/live_effects/pathoutlineprovider.cpp +++ b/src/live_effects/pathoutlineprovider.cpp @@ -125,8 +125,7 @@ Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in return Geom::CubicBezier( temp ); } -static boost::optional intersection_point( Geom::Point const & origin_a, Geom::Point const & vector_a, - Geom::Point const & origin_b, Geom::Point const & vector_b) +static boost::optional intersection_point(Geom::Point const & origin_a, Geom::Point const & vector_a, Geom::Point const & origin_b, Geom::Point const & vector_b) { Geom::Coord denom = cross(vector_b, vector_a); if (!Geom::are_near(denom,0.)) { @@ -135,13 +134,16 @@ static boost::optional intersection_point( Geom::Point const & orig } return boost::none; } -} + +} // namespace Geom namespace Outline { typedef Geom::D2 D2SB; typedef Geom::Piecewise PWD2; +// UTILITY + unsigned bezierOrder (const Geom::Curve* curve_in) { using namespace Geom; @@ -151,25 +153,28 @@ unsigned bezierOrder (const Geom::Curve* curve_in) return 0; } -//returns true if the angle formed by the curves and their handles -//is >180 clockwise, otherwise false. +/** + * @return true if the angle formed by the curves and their handles is greater than 180 degrees clockwise, otherwise false. + */ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) { Geom::Point start_point; Geom::Point cross_point = cbc1.finalPoint(); Geom::Point end_point; - //assert(cbc1.finalPoint() == cbc2.initialPoint()); - //short circuiting? - if (cbc1.finalPoint() != cbc2.initialPoint()) { - printf("erk! Line %d, File %s\n", __LINE__, __FILE__); + if (cross_point != cbc2.initialPoint()) { + g_warning("Non-contiguous path in Outline::outside_angle()"); return false; } - //let's try: Geom::CubicBezier cubicBezier = Geom::sbasis_to_cubicbezier(cbc1.toSBasis()); start_point = cubicBezier [2]; - //stupid thing Inkscape does: + + /* + * Because the node editor does not yet support true quadratics, paths are converted to + * cubic beziers in the node tool with degenerate handles on one side. + */ + if (are_near(start_point, cross_point, 0.0000001)) { start_point = cubicBezier [1]; } @@ -178,9 +183,11 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) if (are_near(end_point, cross_point, 0.0000001)) { end_point = cubicBezier [2]; } - //got our three points, now let's see what their clockwise angle is - //Much credit to Wikipedia for the following ( http://en.wikipedia.org/wiki/Graham_scan ) + // got our three points, now let's see what their clockwise angle is + + // Definition of a Graham scan + /******************************************************************** # Three points are a counter-clockwise turn if ccw > 0, clockwise if # ccw < 0, and collinear if ccw = 0 because ccw is a determinant that @@ -191,27 +198,90 @@ bool outside_angle (const Geom::Curve& cbc1, const Geom::Curve& cbc2) double ccw = ( (cross_point.x() - start_point.x()) * (end_point.y() - start_point.y()) ) - ( (cross_point.y() - start_point.y()) * (end_point.x() - start_point.x()) ); - if (ccw > 0) return true; - return false; + return ccw > 0; } -void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, - double miter_limit, double line_width, bool outside = false) -{ - bool lineProblem = (dynamic_cast *>(cbc1)) || (dynamic_cast *>(cbc2)); - if ( outside && !lineProblem ) { - Geom::Path pth; - pth.append(*cbc1); +// LINE JOINS - Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); +typedef Geom::BezierCurveN<1u> BezierLine; - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); +/** + * Removes the crossings on an interior join. + * @param path_builder Contains the incoming segment; result is appended to this + * @param outgoing The outgoing segment + */ +void joinInside(Geom::Path& path_builder, Geom::Curve const& outgoing) { + Geom::Curve const& incoming = path_builder.back(); + + // Using Geom::crossings to find intersections between two curves + Geom::Crossings cross = Geom::crossings(incoming, outgoing); + if (!cross.empty()) { + // Crossings found, create the join + Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(incoming.toSBasis()); + cubic = cubic.subdivide(cross[0].ta).first; + // erase the last segment, as we're going to overwrite it now + path_builder.erase_last(); + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + cubic = Geom::sbasis_to_cubicbezier(outgoing.toSBasis()); + cubic = cubic.subdivide(cross[0].tb).second; + path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); + } else { + // No crossings occurred, or Geom::crossings() failed; default to bevel + if (Geom::are_near(incoming.finalPoint(), outgoing.initialPoint())) { + path_builder.appendNew(outgoing.initialPoint()); + } else { + path_builder.setFinal(outgoing.initialPoint()); + } + } +} + +/** + * Try to create a miter join. Falls back to bevel if no miter can be created. + * @param path_builder Path to append curves to; back() is the incoming curve + * @param outgoing Outgoing curve. + * @param miter_limit When mitering, don't exceed this length + * @param line_width The thickness of the line. + */ +void miter_curves(Geom::Path& path_builder, Geom::Curve const& outgoing, double miter_limit, double line_width) { + using namespace Geom; + Curve const& incoming = path_builder.back(); + Point tang1 = unitTangentAt(Geom::reverse(incoming.toSBasis()), 0.); + Point tang2 = unitTangentAt(outgoing.toSBasis(), 0); + + boost::optional p = intersection_point (incoming.finalPoint(), tang1, outgoing.initialPoint(), tang2); + if (p) { + // check size of miter + Point point_on_path = incoming.finalPoint() - rot90(tang1) * line_width; + Coord len = distance(*p, point_on_path); + if (len <= miter_limit) { + // miter OK + path_builder.appendNew(*p); + } + } + path_builder.appendNew(outgoing.initialPoint()); +} - Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(cbc1->toSBasis()), 0.); - Geom::Circle circle2 = Geom::touching_circle(cbc2->toSBasis(), 0); +/** + * Smoothly extrapolate curves along a circular route. Falls back to miter if necessary. + * @param path_builder Path to append curves to; back() is the incoming curve + * @param outgoing Outgoing curve. + * @param miter_limit When mitering, don't exceed this length + * @param line_width The thickness of the line. Used for miter fallback. + */ +void extrapolate_curves(Geom::Path& path_builder, Geom::Curve const& outgoing, double miter_limit, double line_width) { + Geom::Curve const& incoming = path_builder.back(); + Geom::Point endPt = outgoing.initialPoint(); + + // The method used when extrapolating curves fails to work when either side of the join to be extrapolated + // is a line segment. When this situation is encountered, fall back to a regular miter join. + bool lineProblem = (dynamic_cast(&incoming)) || (dynamic_cast(&outgoing)); + if (lineProblem == false) { + // Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(incoming.toSBasis()), 0.); + Geom::Point tang2 = Geom::unitTangentAt(outgoing.toSBasis(), 0); + + Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(incoming.toSBasis()), 0.); + Geom::Circle circle2 = Geom::touching_circle(outgoing.toSBasis(), 0); Geom::Point points[2]; int solutions = Geom::circle_circle_intersection(circle1, circle2, points[0], points[1]); @@ -225,239 +295,161 @@ void extrapolate_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve sol = points[0]; } else { // both points are good, choose nearest - sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? - points[0] : points[1]; + sol = ( distanceSq(endPt, points[0]) < distanceSq(endPt, points[1]) ) ? points[0] : points[1]; } - Geom::EllipticalArc *arc0 = circle1.arc(cbc1->finalPoint(), 0.5*(cbc1->finalPoint()+sol), sol, true); + + Geom::EllipticalArc *arc0 = circle1.arc(incoming.finalPoint(), 0.5*(incoming.finalPoint()+sol), sol, true); Geom::EllipticalArc *arc1 = circle2.arc(sol, 0.5*(sol+endPt), endPt, true); try { if (arc0) { path_builder.append (arc0->toSBasis()); delete arc0; arc0 = NULL; + } else { + throw std::exception(); } if (arc1) { path_builder.append (arc1->toSBasis()); delete arc1; arc1 = NULL; + } else { + throw std::exception(); } - } catch (std::exception & ex) { - printf("Exception occured, probably NaN or infinite valued points: %s\n", ex.what()); + + } catch (std::exception const & ex) { + g_warning("Error extrapolating line join: %s\n", ex.what()); path_builder.appendNew(endPt); } } else { - boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) { - //check size of miter - Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; - Geom::Coord len = distance(*p, point_on_path); - if (len <= miter_limit) { - // miter OK - path_builder.appendNew (*p); - } - } - path_builder.appendNew (endPt); - } - if (cbc1->finalPoint() != cbc2->initialPoint()) { - path_builder.appendNew(cbc2->initialPoint()); - } - path_builder.append(*cbc2); - } - if ( outside && lineProblem ) { - Geom::Path pth; - pth.append(*cbc1); - Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) { - //check size of miter - Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; - Geom::Coord len = distance(*p, point_on_path); - if (len <= miter_limit) { - // miter OK - path_builder.appendNew (*p); - } - } - path_builder.appendNew (endPt); - if (cbc1->finalPoint() != cbc2->initialPoint()) { - path_builder.appendNew(cbc2->initialPoint()); - } - path_builder.append(*cbc2); - } - if ( !outside ) { - /*path_builder.appendNew (endPt);*/ - Geom::Crossings cross = Geom::crossings(*cbc1, *cbc2); - if (!cross.empty()) { - path_builder.erase_last(); - Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(cbc1->toSBasis()); - cubic = cubic.subdivide(cross[0].ta).first; - path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); - cubic = Geom::sbasis_to_cubicbezier(cbc2->toSBasis()); - cubic = cubic.subdivide(cross[0].tb).second; - path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); - } else { - if (Geom::distance(path_builder.finalPoint(), cbc2->initialPoint()) > 0.0000001) { - path_builder.appendNew(cbc2->initialPoint()); - } else { - path_builder.setFinal(cbc2->initialPoint()); - } - path_builder.append(*cbc2); + // 1 or no solutions found, default to miter + miter_curves(path_builder, outgoing, miter_limit, line_width); } + } else { + // Line segments exist + miter_curves(path_builder, outgoing, miter_limit, line_width); } } -void reflect_curves(Geom::Path& path_builder, Geom::Curve* cbc1, Geom::Curve* cbc2, Geom::Point endPt, - double miter_limit, double line_width, bool outside = false) +/** + * Extrapolate curves by reflecting them along the line that would be given by beveling the join. + * @param path_builder Path to append curves to; back() is the incoming curve + * @param outgoing Outgoing curve. + * @param miter_limit When mitering, don't exceed this length + * @param line_width The thickness of the line. Used for miter fallback. + */ +void reflect_curves(Geom::Path& path_builder, Geom::Curve const& outgoing, double miter_limit, double line_width) { - //the most important work for the reflected join is done here - - //determine where we are in the path. If we're on the inside, ignore - //and just lineTo. On the outside, we'll do a little reflection magic :) - Geom::Crossings cross; + using namespace Geom; + Curve const& incoming = path_builder.back(); + // On the outside, we'll take the incoming curve, the outgoing curve, and + // reflect them over the line formed by taking the unit tangent vector at times + // 0 and 1, respectively, rotated by 90 degrees. + Crossings cross; + + // reflect curves along the line that would be given by beveling the join + Point tang1 = unitTangentAt(reverse(incoming.toSBasis()), 0.); + D2SB newcurve1 = incoming.toSBasis() * reflection(-rot90(tang1), incoming.finalPoint()); + CubicBezier bzr1 = sbasis_to_cubicbezier(reverse(newcurve1)); + + Point tang2 = Geom::unitTangentAt(outgoing.toSBasis(), 0.); + D2SB newcurve2 = outgoing.toSBasis() * reflection(-rot90(tang2), outgoing.initialPoint()); + CubicBezier bzr2 = sbasis_to_cubicbezier(reverse(newcurve2)); + + cross = crossings(bzr1, bzr2); + if (cross.empty()) { + // paths don't cross, fall back to miter + miter_curves(path_builder, outgoing, miter_limit, line_width); + } else { + // reflected join + std::pair sub1 = bzr1.subdivide(cross[0].ta); + std::pair sub2 = bzr2.subdivide(cross[0].tb); + + // TODO it seems as if a bug in 2geom sometimes doesn't catch the first + // crossing of paths, but the second instead; but only sometimes. + path_builder.appendNew (sub1.first[1], sub1.first[2], sub2.second[0]); + path_builder.appendNew (sub2.second[1], sub2.second[2], outgoing.initialPoint()); + } +} - if (outside) { - Geom::Path pth; - pth.append(*cbc1); - - Geom::Point tang1 = Geom::unitTangentAt(Geom::reverse(pth.toPwSb()[0]), 0.); - - //reflect curves along the bevel - D2SB newcurve1 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang1) , - cbc1->finalPoint() ); - - Geom::CubicBezier bzr1 = sbasis_to_cubicbezier(Geom::reverse(newcurve1)); - - pth = Geom::Path(); - pth.append( *cbc2 ); - Geom::Point tang2 = Geom::unitTangentAt(pth.toPwSb()[0], 0); - - D2SB newcurve2 = pth.toPwSb()[0] * - Geom::reflection ( -Geom::rot90(tang2) , - cbc2->initialPoint() ); - Geom::CubicBezier bzr2 = sbasis_to_cubicbezier(Geom::reverse(newcurve2)); - - cross = Geom::crossings(bzr1, bzr2); - if ( cross.empty() ) { - //curves didn't cross; default to miter - boost::optional p = intersection_point (cbc1->finalPoint(), tang1, - cbc2->initialPoint(), tang2); - if (p) { - //check size of miter - Geom::Point point_on_path = cbc1->finalPoint() - rot90(tang1) * line_width; - Geom::Coord len = distance(*p, point_on_path); - if (len <= miter_limit) { - // miter OK - path_builder.appendNew (*p); - } - } - //bevel - path_builder.appendNew( endPt ); - } else { - //join - std::pair sub1 = bzr1.subdivide(cross[0].ta); - std::pair sub2 = bzr2.subdivide(cross[0].tb); +// Ideal function pointer we want to pass +typedef void JoinFunc(Geom::Path& /*path_builder*/, Geom::Curve const& /*outgoing*/, double /*miter_limit*/, double /*line_width*/); - //@TODO joins have a strange tendency to cross themselves twice. Check this. +/** + * Helper function for repeated logic in outlineHalf. + */ +static void outlineHelper(Geom::Path& path_builder, Geom::PathVector* path_vec, bool outside, double width, double miter, JoinFunc func) { + Geom::Curve * cbc2 = path_vec->front()[0].duplicate(); - //sections commented out are for general stability - path_builder.appendNew (sub1.first[1], sub1.first[2], /*sub1.first[3]*/ sub2.second[0] ); - path_builder.appendNew (sub2.second[1], sub2.second[2], /*sub2.second[3]*/ endPt ); - } - if (cbc1->finalPoint() != cbc2->initialPoint()) { - path_builder.appendNew(cbc2->initialPoint()); - } - path_builder.append(*cbc2); + if (outside) { + func(path_builder, *cbc2, miter, width); } else { - //probably on the inside of the corner - /*path_builder.appendNew ( endPt );*/ - cross = Geom::crossings(*cbc1, *cbc2); - if (!cross.empty()) { - path_builder.erase_last(); - Geom::CubicBezier cubic = Geom::sbasis_to_cubicbezier(cbc1->toSBasis()); - cubic = cubic.subdivide(cross[0].ta).first; - path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); - cubic = Geom::sbasis_to_cubicbezier(cbc2->toSBasis()); - cubic = cubic.subdivide(cross[0].tb).second; - path_builder.append(cubic, Geom::Path::STITCH_DISCONTINUOUS); - } else { - if (Geom::distance(path_builder.finalPoint(), cbc2->initialPoint()) > 0.0000001) { - path_builder.appendNew(cbc2->initialPoint()); - } else { - path_builder.setFinal(cbc2->initialPoint()); - } - path_builder.append(*cbc2); - } + joinInside(path_builder, *cbc2); + } + + // store it + Geom::Path temp_path = path_vec->front(); + if (!outside) { + // erase the first segment since the inside join code already appended it + temp_path.erase(temp_path.begin()); + } + + if (temp_path.initialPoint() != path_builder.finalPoint()) { + temp_path.setInitial(path_builder.finalPoint()); } + + path_builder.append(temp_path); + + delete cbc2; } -/** @brief Converts a path to one half of an outline. -* path_in: The input path to use. (To create the other side use path_in.reverse() ) -* line_width: the line width to use (usually you want to divide this by 2) -* miter_limit: the miter parameter -* extrapolate: whether the join should be extrapolated instead of reflected -*/ -Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double miter_limit, bool extrapolate = false) -{ - // NOTE: it is important to notice the distinction between a Geom::Path and a livarot Path here! +/** + * Offsets exactly one half of a bezier spline (path). + * @param path_in The input path to use. (To create the other side use path_in.reverse() ) + * @param line_width the line width to use (usually you want to divide this by 2) + * @param miter_limit the miter parameter + * @param func Join function to apply at each join. + */ + +Geom::Path outlineHalf(const Geom::Path& path_in, double line_width, double miter_limit, JoinFunc func) { + // NOTE: it is important to notice the distinction between a Geom::Path and a livarot ::Path here! // if you do not see "Geom::" there is a different function set! Geom::PathVector pv = split_at_cusps(path_in); - Path to_outline; - Path outlined_result; - - Geom::Path path_builder = Geom::Path(); //the path to store the result in - Geom::PathVector * path_vec; //needed because livarot returns a goddamn pointer + ::Path to_outline; + ::Path outlined_result; - const unsigned k = pv.size(); + Geom::Path path_builder = Geom::Path(); // the path to store the result in + Geom::PathVector* path_vec; // needed because livarot returns a pointer (TODO make this not a pointer) - for (unsigned u = 0; u < k; u+=2) { + // Do two curves at a time for efficiency, since the join function needs to know the outgoing curve as well + const size_t k = pv.size(); + for (size_t u = 0; u < k; u += 2) { to_outline = Path(); outlined_result = Path(); - to_outline.LoadPath(pv[u], Geom::Affine(), false, false); + to_outline.LoadPath(pv[u], Geom::identity(), false, false); to_outline.OutsideOutline(&outlined_result, line_width / 2, join_straight, butt_straight, 10); - //now a curve has been outside outlined and loaded into outlined_result + // now a curve has been outside outlined and loaded into outlined_result - //get the Geom::Path + // get the Geom::Path path_vec = outlined_result.MakePathVector(); - //thing to do on the first run through + // on the first run through, there is no join if (u == 0) { - //I could use the pv->operator[] (0) notation but that looks terrible - path_builder.start( (*path_vec)[0].initialPoint() ); - path_builder.append( (*path_vec)[0] ); + path_builder.start(path_vec->front().initialPoint()); + path_builder.append(path_vec->front()); } else { - //get the curves ready for the operation - Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); - - //do the reflection/extrapolation: - if (extrapolate) { - extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); - } else { - reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u - 1] [pv[u - 1].size() - 1], pv[u] [0] )); - } - //store it - Geom::Path temp_path = (*path_vec)[0]; - //erase the first segment since the join code already appended it - temp_path.erase(temp_path.begin()); - - path_builder.append( temp_path ); + outlineHelper(path_builder, path_vec, outside_angle(pv[u-1][pv[u-1].size()-1], pv[u][0]), line_width, miter_limit, func); } - //outline the next segment, but don't store it yet - if (path_vec) delete path_vec; + // outline the next segment, but don't store it yet + if (path_vec) + delete path_vec; + path_vec = NULL; + // odd number of paths if (u < k - 1) { outlined_result = Path(); to_outline = Path(); @@ -466,29 +458,11 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double to_outline.OutsideOutline(&outlined_result, line_width / 2, join_straight, butt_straight, 10); path_vec = outlined_result.MakePathVector(); + outlineHelper(path_builder, path_vec, outside_angle(pv[u][pv[u].size()-1], pv[u+1][0]), line_width, miter_limit, func); - //get the curves ready for the operation - Geom::Curve * cbc1 = path_builder[path_builder.size() - 1].duplicate(); - Geom::Curve * cbc2 = (*path_vec)[0] [0].duplicate(); - - //do the reflection/extrapolation: - if (extrapolate) { - extrapolate_curves(path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); - } else { - reflect_curves (path_builder, cbc1, cbc2, (*path_vec)[0].initialPoint(), miter_limit, line_width, - outside_angle ( pv[u] [pv[u].size()-1], pv[u+1] [0] )); - } - - //Now we can store it. - Geom::Path temp_path = (*path_vec)[0]; - temp_path.erase(temp_path.begin()); - - path_builder.append( temp_path ); - - if (cbc1) delete cbc1; - if (cbc2) delete cbc2; - if (path_vec) delete path_vec; + if (path_vec) + delete path_vec; + path_vec = NULL; } } @@ -497,7 +471,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double Geom::Curve * cbc2; if ( path_in[path_in.size()].isDegenerate() ) { - //handle case for last segment curved + // handle case for last segment curved outlined_result = Path(); to_outline = Path(); @@ -509,11 +483,12 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double path_vec = outlined_result.MakePathVector(); cbc1 = path_builder[path_builder.size() - 1].duplicate(); - cbc2 = (*path_vec)[0] [0].duplicate(); + cbc2 = path_vec->front()[0].duplicate(); delete path_vec; } else { - //handle case for last segment straight (since the path doesn't actually give us access to it) + // handle case for last segment straight + // since the path doesn't actually give us access to it, we'll do it ourselves outlined_result = Path(); to_outline = Path(); @@ -527,17 +502,10 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double cbc1 = path_builder[path_builder.size() - 1].duplicate(); cbc2 = (*path_vec)[0] [0].duplicate(); - //append the closing segment - - if (extrapolate) { - extrapolate_curves(path_builder, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], oneCurve [0] )); - } else { - reflect_curves (path_builder, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( path_in[path_in.size() - 1], oneCurve [0] )); - } - - delete cbc1; cbc1 = cbc2->duplicate(); + outlineHelper(path_builder, path_vec, outside_angle(path_in[path_in.size()-1], oneCurve[0]), line_width, miter_limit, func); + + delete cbc1; + cbc1 = cbc2->duplicate(); delete path_vec; oneCurve = Geom::Path(); oneCurve.append(path_in[0]); @@ -550,32 +518,35 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double delete path_vec; } - Geom::Path temporary; //just an accessory path, we won't need it for long + Geom::Path temporary; temporary.append(*cbc1); - const Geom::Curve& prev_curve = path_in[path_in.size()].isDegenerate() ? path_in[path_in.size() - 1] : - path_in[path_in.size()]; - - if (extrapolate) { - extrapolate_curves(temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( prev_curve, path_in [0] )); - } else { - reflect_curves (temporary, cbc1, cbc2, cbc2->initialPoint(), miter_limit, line_width, - outside_angle ( prev_curve, path_in [0] )); - } - //extract the appended curves - //if (temporary[temporary.size()].initialPoint() != path_builder[0].initialPoint()) { - path_builder.erase(path_builder.begin()); - /*} else { - temporary.erase_last(); - }*/ - path_builder.erase_last(); - if (Geom::distance(path_builder.finalPoint(), temporary.initialPoint()) > 0.0000001) { - path_builder.appendNew(temporary.initialPoint()); + Geom::Curve const & prev_curve = path_in[path_in.size()].isDegenerate() ? path_in[path_in.size() - 1] : path_in[path_in.size()]; + Geom::Path isStraight; + isStraight.append(prev_curve); + isStraight.append(path_in[0]); + // does closing path require a join? + if (Geom::split_at_cusps(isStraight).size() > 1) { + bool outside = outside_angle(prev_curve, path_in[0]); + if (outside) { + func(temporary, *cbc2, miter_limit, line_width); + } else { + joinInside(temporary, *cbc2); + path_builder.erase(path_builder.begin()); + } + + // extract the appended curves + path_builder.erase_last(); + if (Geom::are_near(path_builder.finalPoint(), temporary.initialPoint())) { + path_builder.setFinal(temporary.initialPoint()); + } else { + path_builder.appendNew(temporary.initialPoint()); + } + path_builder.append(temporary); } else { - path_builder.setFinal(temporary.initialPoint()); + // closing path does not require a join + path_builder.setFinal(path_builder.initialPoint()); } - path_builder.append(temporary); path_builder.close(); if (cbc1) delete cbc1; @@ -585,8 +556,7 @@ Geom::Path doAdvHalfOutline(const Geom::Path& path_in, double line_width, double return path_builder; } -Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, - ButtTypeMod butt, double miter_lim, bool extrapolate, double start_lean, double end_lean) +Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, ButtTypeMod butt, double miter_lim, bool extrapolate, double start_lean, double end_lean) { Geom::PathVector path_out; @@ -594,16 +564,14 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, for (unsigned i = 0; i < pv_size; i++) { if (path_in[i].size() > 1) { - //since you've made it this far, hopefully all this is obvious :P Geom::Path with_direction; Geom::Path against_direction; - - with_direction = Outline::doAdvHalfOutline( path_in[i], -line_width, miter_lim, extrapolate ); - against_direction = Outline::doAdvHalfOutline( path_in[i].reverse(), -line_width, miter_lim, extrapolate ); + + with_direction = Outline::outlineHalf(path_in[i], -line_width, miter_lim, extrapolate ? extrapolate_curves : reflect_curves); + against_direction = Outline::outlineHalf(path_in[i].reverse(), -line_width, miter_lim, extrapolate ? extrapolate_curves : reflect_curves); Geom::PathBuilder pb; - //add in the...do I really need to say this? pb.moveTo(with_direction.initialPoint()); pb.append(with_direction); @@ -724,8 +692,7 @@ Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, return path_out; } -Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line_width, ButtTypeMod linecap_type, - LineJoinType linejoin_type, double miter_limit, double start_lean, double end_lean) +Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line_width, ButtTypeMod linecap_type, LineJoinType linejoin_type, double miter_limit, double start_lean, double end_lean) { std::vector path_out = std::vector(); if (path_in.empty()) { @@ -761,21 +728,21 @@ Geom::PathVector PathVectorOutline(Geom::PathVector const & path_in, double line break; } } - if (linejoin_type <= 2) { + if (linejoin_type <= LINEJOIN_POINTY) { p.Outline(&outlinepath, line_width / 2, static_cast(linejoin_type), original_butt, miter_lim); - //fix memory leak + // fix memory leak std::vector *pv_p = outlinepath.MakePathVector(); path_out = *pv_p; delete pv_p; - } else if (linejoin_type == 3) { - //reflected arc join + } else if (linejoin_type == LINEJOIN_REFLECTED) { + // reflected arc join path_out = outlinePath(path_in, line_width, static_cast(linejoin_type), linecap_type , miter_lim, false, start_lean, end_lean); - } else if (linejoin_type == 4) { - //extrapolated arc join + } else if (linejoin_type == LINEJOIN_EXTRAPOLATED) { + // extrapolated arc join path_out = outlinePath(path_in, line_width, LINEJOIN_STRAIGHT, linecap_type, miter_lim, true, start_lean, end_lean); } @@ -800,16 +767,14 @@ Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, Lin path_outline.OutsideOutline(&path_tangent, line_width / 2, static_cast(linejoin_type), butt_straight, miter_lim); pathvec = path_tangent.MakePathVector(); - path_out = pathvec[0]/* deref pointer */[0]/*actual object ref*/; + path_out = pathvec->front(); delete pathvec; return path_out; } else if (linejoin_type == LINEJOIN_REFLECTED) { - //reflected half outline - path_out = doAdvHalfOutline(path_in, line_width, miter_lim, false); + path_out = outlineHalf(path_in, line_width, miter_lim, reflect_curves); return path_out; } else if (linejoin_type == LINEJOIN_EXTRAPOLATED) { - //what the hell do you think this is? :P - path_out = doAdvHalfOutline(path_in, line_width, miter_lim, true); + path_out = outlineHalf(path_in, line_width, miter_lim, extrapolate_curves); return path_out; } #undef miter_lim @@ -827,4 +792,4 @@ Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, Lin fill-column:99 End: */ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8 : diff --git a/src/live_effects/pathoutlineprovider.h b/src/live_effects/pathoutlineprovider.h index 272c93a49..c17584be2 100644 --- a/src/live_effects/pathoutlineprovider.h +++ b/src/live_effects/pathoutlineprovider.h @@ -1,5 +1,13 @@ -#ifndef _SEEN_PATH_OUTLINE_H -#define _SEEN_PATH_OUTLINE_H +#ifndef SEEN_PATH_OUTLINE_H +#define SEEN_PATH_OUTLINE_H + +/* Author: + * Liam P. White + * + * Copyright (C) 2014 Author + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ #include #include @@ -18,10 +26,11 @@ enum ButtTypeMod { BUTT_POINTY, BUTT_LEANED }; + namespace Geom { - Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in); - std::vector split_at_cusps(const Geom::Path& in); + Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2 const & sbasis_in); + std::vector split_at_cusps(const Geom::Path& in); } namespace Outline @@ -29,10 +38,18 @@ namespace Outline unsigned bezierOrder (const Geom::Curve* curve_in); std::vector PathVectorOutline(std::vector const & path_in, double line_width, ButtTypeMod linecap_type, LineJoinType linejoin_type, double miter_limit, double start_lean = 0, double end_lean = 0); - - /*Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join, - ButtTypeMod butt, double miter_lim, bool extrapolate = false);*/ Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit); } -#endif // _SEEN_PATH_OUTLINE_H +#endif // SEEN_PATH_OUTLINE_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8 : -- cgit v1.2.3 From b9a8b72cd7bb5c6dbfe5118f15fa870cff8eb4c5 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 31 Jul 2014 14:53:10 -0400 Subject: I'm an idiot (bzr r13090.1.97) --- src/knotholder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index aea983cbb..9890647e1 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -213,7 +213,7 @@ KnotHolder::knot_ungrabbed_handler(SPKnot */*knot*/, guint) if (dynamic_cast (object)) { // This writes all parameters to SVG. Is this sufficiently efficient or should we only // write the ones that were changed? - SPLPEItem * lpeitem = SP_LPE_ITEM(this->item); + SPLPEItem * lpeitem = SP_LPE_ITEM(object); if (lpeitem) { Inkscape::LivePathEffect::Effect *lpe = lpeitem->getCurrentLPE(); if (lpe) { -- cgit v1.2.3 From 90ec6524482c72107c06bfce6dfff642798a9526 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 8 Aug 2014 09:21:14 -0400 Subject: Messed up German translation (??) (bzr r13090.1.100) --- po/de.po | 29638 ++++++++++++++++++++++++++++--------------------------------- 1 file changed, 13582 insertions(+), 16056 deletions(-) diff --git a/po/de.po b/po/de.po index 3685def1f..1bdb32376 100644 --- a/po/de.po +++ b/po/de.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2014-05-24 15:14+0200\n" +"POT-Creation-Date: 2013-11-07 15:09+0100\n" "PO-Revision-Date: 2014-06-23 20:15+0100\n" "Last-Translator: Uwe Schoeler \n" "Language-Team: \n" @@ -50,45 +50,34 @@ msgstr "Skalierbare Vektorgrafiken (SVG) erzeugen und bearbeiten" msgid "New Drawing" msgstr "Neue Zeichnung" -#: ../share/filters/filters.svg.h:2 +#: ../share/filters/filters.svg.h:1 msgid "Smart Jelly" msgstr "schmuckes Gelee" -#: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:7 -#: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:31 -#: ../share/filters/filters.svg.h:35 ../share/filters/filters.svg.h:107 -#: ../share/filters/filters.svg.h:139 ../share/filters/filters.svg.h:143 -#: ../share/filters/filters.svg.h:147 ../share/filters/filters.svg.h:151 -#: ../share/filters/filters.svg.h:163 ../share/filters/filters.svg.h:171 -#: ../share/filters/filters.svg.h:219 ../share/filters/filters.svg.h:227 -#: ../share/filters/filters.svg.h:283 ../share/filters/filters.svg.h:299 -#: ../share/filters/filters.svg.h:303 ../share/filters/filters.svg.h:551 -#: ../share/filters/filters.svg.h:555 ../share/filters/filters.svg.h:559 -#: ../share/filters/filters.svg.h:563 ../share/filters/filters.svg.h:567 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/bevels.h:63 #: ../src/extension/internal/filter/bevels.h:144 #: ../src/extension/internal/filter/bevels.h:228 msgid "Bevels" msgstr "Wölbung" -#: ../share/filters/filters.svg.h:4 +#: ../share/filters/filters.svg.h:1 msgid "Same as Matte jelly but with more controls" msgstr "Genauso wie mattes Gelee, aber mit mehr Kontrolle" -#: ../share/filters/filters.svg.h:6 +#: ../share/filters/filters.svg.h:1 msgid "Metal Casting" msgstr "Metallguss" -#: ../share/filters/filters.svg.h:8 +#: ../share/filters/filters.svg.h:1 msgid "Smooth drop-like bevel with metallic finish" msgstr "Glatte abgerundete Aufwölbung mit metallischer Oberfläche" -#: ../share/filters/filters.svg.h:10 +#: ../share/filters/filters.svg.h:1 msgid "Apparition" msgstr "Erscheinung" -#: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:323 -#: ../share/filters/filters.svg.h:655 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/blurs.h:63 #: ../src/extension/internal/filter/blurs.h:132 #: ../src/extension/internal/filter/blurs.h:201 @@ -97,198 +86,161 @@ msgstr "Erscheinung" msgid "Blurs" msgstr "Unschärfe" -#: ../share/filters/filters.svg.h:12 +#: ../share/filters/filters.svg.h:1 msgid "Edges are partly feathered out" msgstr "Kanten sind leicht ausgefranst" -#: ../share/filters/filters.svg.h:14 +#: ../share/filters/filters.svg.h:1 msgid "Jigsaw Piece" msgstr "Puzzleteil" -#: ../share/filters/filters.svg.h:16 +#: ../share/filters/filters.svg.h:1 msgid "Low, sharp bevel" msgstr "Niedrige, scharfkantige Vorwölbung" -#: ../share/filters/filters.svg.h:18 +#: ../share/filters/filters.svg.h:1 msgid "Rubber Stamp" msgstr "Stempel" -#: ../share/filters/filters.svg.h:19 ../share/filters/filters.svg.h:43 -#: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:51 -#: ../share/filters/filters.svg.h:59 ../share/filters/filters.svg.h:63 -#: ../share/filters/filters.svg.h:95 ../share/filters/filters.svg.h:99 -#: ../share/filters/filters.svg.h:103 ../share/filters/filters.svg.h:287 -#: ../share/filters/filters.svg.h:291 ../share/filters/filters.svg.h:331 -#: ../share/filters/filters.svg.h:335 ../share/filters/filters.svg.h:339 -#: ../share/filters/filters.svg.h:391 ../share/filters/filters.svg.h:407 -#: ../share/filters/filters.svg.h:451 ../share/filters/filters.svg.h:455 -#: ../share/filters/filters.svg.h:459 ../share/filters/filters.svg.h:475 -#: ../share/filters/filters.svg.h:487 ../share/filters/filters.svg.h:583 -#: ../share/filters/filters.svg.h:643 ../share/filters/filters.svg.h:683 -#: ../share/filters/filters.svg.h:687 ../share/filters/filters.svg.h:691 -#: ../share/filters/filters.svg.h:695 ../share/filters/filters.svg.h:699 -#: ../share/filters/filters.svg.h:703 ../share/filters/filters.svg.h:707 -#: ../share/filters/filters.svg.h:711 ../share/filters/filters.svg.h:715 -#: ../share/filters/filters.svg.h:723 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/overlays.h:80 msgid "Overlays" msgstr "Deckschichten" -#: ../share/filters/filters.svg.h:20 +#: ../share/filters/filters.svg.h:1 msgid "Random whiteouts inside" msgstr "Zufällige weiĂźe Flecken im Inneren" -#: ../share/filters/filters.svg.h:22 +#: ../share/filters/filters.svg.h:1 msgid "Ink Bleed" msgstr "Auslaufende Farben" -#: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:27 -#: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:431 +#: ../share/filters/filters.svg.h:1 msgid "Protrusions" msgstr "Anlagerungen" -#: ../share/filters/filters.svg.h:24 +#: ../share/filters/filters.svg.h:1 msgid "Inky splotches underneath the object" msgstr "Tintenkleckse unter dem Objekt" -#: ../share/filters/filters.svg.h:26 +#: ../share/filters/filters.svg.h:1 msgid "Fire" msgstr "Flammen" -#: ../share/filters/filters.svg.h:28 +#: ../share/filters/filters.svg.h:1 msgid "Edges of object are on fire" msgstr "Objektkanten brennen" -#: ../share/filters/filters.svg.h:30 +#: ../share/filters/filters.svg.h:1 msgid "Bloom" msgstr "Ăśberstrahlung" -#: ../share/filters/filters.svg.h:32 +#: ../share/filters/filters.svg.h:1 msgid "Soft, cushion-like bevel with matte highlights" msgstr "Weiche, kissenartige Ausbeulung mit matten Glanzpunkten" -#: ../share/filters/filters.svg.h:34 +#: ../share/filters/filters.svg.h:1 msgid "Ridged Border" msgstr "Gezahnter Rand" -#: ../share/filters/filters.svg.h:36 +#: ../share/filters/filters.svg.h:1 msgid "Ridged border with inner bevel" msgstr "Erhöhte Kanten mit Einbeulung" -#: ../share/filters/filters.svg.h:38 +#: ../share/filters/filters.svg.h:1 msgid "Ripple" msgstr "Riffel" -#: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 -#: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 -#: ../share/filters/filters.svg.h:327 ../share/filters/filters.svg.h:363 -#: ../share/filters/filters.svg.h:443 ../share/filters/filters.svg.h:519 -#: ../share/filters/filters.svg.h:635 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/distort.h:96 #: ../src/extension/internal/filter/distort.h:205 msgid "Distort" msgstr "Verzerren" -#: ../share/filters/filters.svg.h:40 +#: ../share/filters/filters.svg.h:1 msgid "Horizontal rippling of edges" msgstr "Horizontale Rippel auf den Kanten" -#: ../share/filters/filters.svg.h:42 +#: ../share/filters/filters.svg.h:1 msgid "Speckle" msgstr "Beflecken" -#: ../share/filters/filters.svg.h:44 +#: ../share/filters/filters.svg.h:1 msgid "Fill object with sparse translucent specks" msgstr "Objekt mit vereinzelten transluzenten Flecken versehen" -#: ../share/filters/filters.svg.h:46 +#: ../share/filters/filters.svg.h:1 msgid "Oil Slick" msgstr "Ă–lschmutz" -#: ../share/filters/filters.svg.h:48 +#: ../share/filters/filters.svg.h:1 msgid "Rainbow-colored semitransparent oily splotches" msgstr "Regenbogenfarbige halbtransparente ölige Flecken" -#: ../share/filters/filters.svg.h:50 +#: ../share/filters/filters.svg.h:1 msgid "Frost" msgstr "Frost" -#: ../share/filters/filters.svg.h:52 +#: ../share/filters/filters.svg.h:1 msgid "Flake-like white splotches" msgstr "Flockenartige weiĂźe Flecken" -#: ../share/filters/filters.svg.h:54 +#: ../share/filters/filters.svg.h:1 msgid "Leopard Fur" msgstr "Leopardenfell" -#: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:175 -#: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:183 -#: ../share/filters/filters.svg.h:191 ../share/filters/filters.svg.h:211 -#: ../share/filters/filters.svg.h:239 ../share/filters/filters.svg.h:243 -#: ../share/filters/filters.svg.h:247 ../share/filters/filters.svg.h:255 -#: ../share/filters/filters.svg.h:387 ../share/filters/filters.svg.h:395 -#: ../share/filters/filters.svg.h:399 ../share/filters/filters.svg.h:403 +#: ../share/filters/filters.svg.h:1 msgid "Materials" msgstr "Materialien" -#: ../share/filters/filters.svg.h:56 +#: ../share/filters/filters.svg.h:1 msgid "Leopard spots (loses object's own color)" msgstr "Leopardenmuster (ursprĂĽngliche Farbe geht verloren)" -#: ../share/filters/filters.svg.h:58 +#: ../share/filters/filters.svg.h:1 msgid "Zebra" msgstr "Zebra" -#: ../share/filters/filters.svg.h:60 +#: ../share/filters/filters.svg.h:1 msgid "Irregular vertical dark stripes (loses object's own color)" msgstr "" "Unregelmäßige vertikale, dunkle Streifen (ursprĂĽngliche Farbe geht verloren)" -#: ../share/filters/filters.svg.h:62 +#: ../share/filters/filters.svg.h:1 msgid "Clouds" msgstr "Wolken" -#: ../share/filters/filters.svg.h:64 +#: ../share/filters/filters.svg.h:1 msgid "Airy, fluffy, sparse white clouds" msgstr "Vereinzelte luftig-leichte, weiĂźe Wolken" -#: ../share/filters/filters.svg.h:66 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/bitmap/sharpen.cpp:38 msgid "Sharpen" msgstr "Schärfen" -#: ../share/filters/filters.svg.h:67 ../share/filters/filters.svg.h:71 -#: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:295 -#: ../share/filters/filters.svg.h:415 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/image.h:62 msgid "Image Effects" msgstr "Bild-Effekte" -#: ../share/filters/filters.svg.h:68 +#: ../share/filters/filters.svg.h:1 msgid "Sharpen edges and boundaries within the object, force=0.15" msgstr "Kanten und Grenzen schärfen, Stärke = 0,15" -#: ../share/filters/filters.svg.h:70 +#: ../share/filters/filters.svg.h:1 msgid "Sharpen More" msgstr "Stärker Schärfen" -#: ../share/filters/filters.svg.h:72 +#: ../share/filters/filters.svg.h:1 msgid "Sharpen edges and boundaries within the object, force=0.3" msgstr "Kanten und Grenzen schärfen, Stärke = 0,3" -#: ../share/filters/filters.svg.h:74 +#: ../share/filters/filters.svg.h:1 msgid "Oil painting" msgstr "Ă–lgemälde" -#: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:79 -#: ../share/filters/filters.svg.h:83 ../share/filters/filters.svg.h:447 -#: ../share/filters/filters.svg.h:495 ../share/filters/filters.svg.h:499 -#: ../share/filters/filters.svg.h:503 ../share/filters/filters.svg.h:507 -#: ../share/filters/filters.svg.h:515 ../share/filters/filters.svg.h:659 -#: ../share/filters/filters.svg.h:663 ../share/filters/filters.svg.h:667 -#: ../share/filters/filters.svg.h:671 ../share/filters/filters.svg.h:675 -#: ../share/filters/filters.svg.h:679 ../share/filters/filters.svg.h:719 -#: ../share/filters/filters.svg.h:803 ../share/filters/filters.svg.h:815 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/paint.h:113 #: ../src/extension/internal/filter/paint.h:244 #: ../src/extension/internal/filter/paint.h:363 @@ -300,580 +252,549 @@ msgstr "Ă–lgemälde" msgid "Image Paint and Draw" msgstr "Bild malen und zeichnen" -#: ../share/filters/filters.svg.h:76 +#: ../share/filters/filters.svg.h:1 msgid "Simulate oil painting style" msgstr "Simuliere Ă–lgemälde" #. Pencil -#: ../share/filters/filters.svg.h:78 +#: ../share/filters/filters.svg.h:1 #: ../src/ui/dialog/inkscape-preferences.cpp:415 msgid "Pencil" msgstr "Malwerkzeug (Freihand)" -#: ../share/filters/filters.svg.h:80 +#: ../share/filters/filters.svg.h:1 msgid "Detect color edges and retrace them in grayscale" msgstr "Farbkanten im Objekt erkennen und in Graustufen nachzeichnen" -#: ../share/filters/filters.svg.h:82 +#: ../share/filters/filters.svg.h:1 msgid "Blueprint" msgstr "Blaupause" -#: ../share/filters/filters.svg.h:84 +#: ../share/filters/filters.svg.h:1 msgid "Detect color edges and retrace them in blue" msgstr "Farbkanten im Objekt erkennen und in Blau nachzeichnen" -#: ../share/filters/filters.svg.h:86 +#: ../share/filters/filters.svg.h:1 msgid "Age" msgstr "Alter" -#: ../share/filters/filters.svg.h:88 +#: ../share/filters/filters.svg.h:1 msgid "Imitate aged photograph" msgstr "Imitiere gealterte Fotografie" -#: ../share/filters/filters.svg.h:90 +#: ../share/filters/filters.svg.h:1 msgid "Organic" msgstr "Organisch" -#: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:119 -#: ../share/filters/filters.svg.h:127 ../share/filters/filters.svg.h:187 -#: ../share/filters/filters.svg.h:195 ../share/filters/filters.svg.h:199 -#: ../share/filters/filters.svg.h:251 ../share/filters/filters.svg.h:259 -#: ../share/filters/filters.svg.h:263 ../share/filters/filters.svg.h:355 -#: ../share/filters/filters.svg.h:359 ../share/filters/filters.svg.h:367 -#: ../share/filters/filters.svg.h:371 ../share/filters/filters.svg.h:375 -#: ../share/filters/filters.svg.h:379 ../share/filters/filters.svg.h:383 -#: ../share/filters/filters.svg.h:439 ../share/filters/filters.svg.h:467 -#: ../share/filters/filters.svg.h:491 ../share/filters/filters.svg.h:531 +#: ../share/filters/filters.svg.h:1 msgid "Textures" msgstr "Texturen" -#: ../share/filters/filters.svg.h:92 +#: ../share/filters/filters.svg.h:1 msgid "Bulging, knotty, slick 3D surface" msgstr "Vorgewölbte, knotig-glatte 3D-Oberfläche" -#: ../share/filters/filters.svg.h:94 +#: ../share/filters/filters.svg.h:1 msgid "Barbed Wire" msgstr "Stacheldraht" -#: ../share/filters/filters.svg.h:96 +#: ../share/filters/filters.svg.h:1 msgid "Gray bevelled wires with drop shadows" msgstr "Graue verworrene Drähte mit abgesetztem Schatten" -#: ../share/filters/filters.svg.h:98 +#: ../share/filters/filters.svg.h:1 msgid "Swiss Cheese" msgstr "Schweizer Käse" -#: ../share/filters/filters.svg.h:100 +#: ../share/filters/filters.svg.h:1 msgid "Random inner-bevel holes" msgstr "Zufällige innen abgeflachte Löcher" -#: ../share/filters/filters.svg.h:102 +#: ../share/filters/filters.svg.h:1 msgid "Blue Cheese" msgstr "Blaukäse" -#: ../share/filters/filters.svg.h:104 +#: ../share/filters/filters.svg.h:1 msgid "Marble-like bluish speckles" msgstr "Marmorierte bläuliche Flecken" -#: ../share/filters/filters.svg.h:106 +#: ../share/filters/filters.svg.h:1 msgid "Button" msgstr "Schaltfläche" -#: ../share/filters/filters.svg.h:108 +#: ../share/filters/filters.svg.h:1 msgid "Soft bevel, slightly depressed middle" msgstr "Weiche Wölbung, leicht abgesenkte Mitte" -#: ../share/filters/filters.svg.h:110 +#: ../share/filters/filters.svg.h:1 msgid "Inset" msgstr "Einlage" -#: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:267 -#: ../share/filters/filters.svg.h:343 ../share/filters/filters.svg.h:435 -#: ../share/filters/filters.svg.h:811 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/shadows.h:81 msgid "Shadows and Glows" msgstr "Schatten und Lichter" -#: ../share/filters/filters.svg.h:112 +#: ../share/filters/filters.svg.h:1 msgid "Shadowy outer bevel" msgstr "Schattige AuĂźenschräge" -#: ../share/filters/filters.svg.h:114 +#: ../share/filters/filters.svg.h:1 msgid "Dripping" msgstr "Tropfend" -#: ../share/filters/filters.svg.h:116 +#: ../share/filters/filters.svg.h:1 msgid "Random paint streaks downwards" msgstr "Zufällige abwärtsgerichtete farbige Streifen" -#: ../share/filters/filters.svg.h:118 +#: ../share/filters/filters.svg.h:1 msgid "Jam Spread" msgstr "Marmeladenaufstrich" -#: ../share/filters/filters.svg.h:120 +#: ../share/filters/filters.svg.h:1 msgid "Glossy clumpy jam spread" msgstr "Glänzender klumpiger Ăśberzug" -#: ../share/filters/filters.svg.h:122 +#: ../share/filters/filters.svg.h:1 msgid "Pixel Smear" msgstr "Verschmierte Pixel" -#: ../share/filters/filters.svg.h:124 +#: ../share/filters/filters.svg.h:1 msgid "Van Gogh painting effect for bitmaps" msgstr "Van Gogh Gemälde-Effekt fĂĽr Bilder" -#: ../share/filters/filters.svg.h:126 +#: ../share/filters/filters.svg.h:1 msgid "Cracked Glass" msgstr "Zerbrochenes Glas" -#: ../share/filters/filters.svg.h:128 +#: ../share/filters/filters.svg.h:1 msgid "Under a cracked glass" msgstr "Unter einem zerbrochenen Glas" -#: ../share/filters/filters.svg.h:130 +#: ../share/filters/filters.svg.h:1 msgid "Bubbly Bumps" msgstr "Blasige Oberfläche" -#: ../share/filters/filters.svg.h:131 ../share/filters/filters.svg.h:307 -#: ../share/filters/filters.svg.h:311 ../share/filters/filters.svg.h:347 -#: ../share/filters/filters.svg.h:351 ../share/filters/filters.svg.h:419 -#: ../share/filters/filters.svg.h:423 ../share/filters/filters.svg.h:463 -#: ../share/filters/filters.svg.h:471 ../share/filters/filters.svg.h:479 -#: ../share/filters/filters.svg.h:483 ../share/filters/filters.svg.h:511 -#: ../share/filters/filters.svg.h:535 ../share/filters/filters.svg.h:539 -#: ../share/filters/filters.svg.h:543 ../share/filters/filters.svg.h:547 -#: ../share/filters/filters.svg.h:571 ../share/filters/filters.svg.h:579 -#: ../share/filters/filters.svg.h:595 ../share/filters/filters.svg.h:599 -#: ../share/filters/filters.svg.h:603 ../share/filters/filters.svg.h:607 -#: ../share/filters/filters.svg.h:611 ../share/filters/filters.svg.h:615 -#: ../share/filters/filters.svg.h:619 ../share/filters/filters.svg.h:623 -#: ../share/filters/filters.svg.h:799 ../share/filters/filters.svg.h:807 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/bumps.h:142 #: ../src/extension/internal/filter/bumps.h:362 msgid "Bumps" msgstr "Raue Texturen" -#: ../share/filters/filters.svg.h:132 +#: ../share/filters/filters.svg.h:1 msgid "Flexible bubbles effect with some displacement" msgstr "Flexibler Bläscheneffekt mit etwas Versatz" -#: ../share/filters/filters.svg.h:134 +#: ../share/filters/filters.svg.h:1 msgid "Glowing Bubble" msgstr "Blase mit Lichthof" -#: ../share/filters/filters.svg.h:135 ../share/filters/filters.svg.h:155 -#: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 -#: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 -#: ../share/filters/filters.svg.h:223 +#: ../share/filters/filters.svg.h:1 msgid "Ridges" msgstr "Grat" -#: ../share/filters/filters.svg.h:136 +#: ../share/filters/filters.svg.h:1 msgid "Bubble effect with refraction and glow" msgstr "Blaseneffekt mit Lichtbrechung und Lichthof" -#: ../share/filters/filters.svg.h:138 +#: ../share/filters/filters.svg.h:1 msgid "Neon" msgstr "Neon" -#: ../share/filters/filters.svg.h:140 +#: ../share/filters/filters.svg.h:1 msgid "Neon light effect" msgstr "Neonlicht-Effekt" -#: ../share/filters/filters.svg.h:142 +#: ../share/filters/filters.svg.h:1 msgid "Molten Metal" msgstr "Geschmolzenes Metall" -#: ../share/filters/filters.svg.h:144 +#: ../share/filters/filters.svg.h:1 msgid "Melting parts of object together, with a glossy bevel and a glow" msgstr "Teile des Objekts verschmelzen, mit glänzender Vorwölbung und Lichthof" -#: ../share/filters/filters.svg.h:146 +#: ../share/filters/filters.svg.h:1 msgid "Pressed Steel" msgstr "Gepresster Stahl" -#: ../share/filters/filters.svg.h:148 +#: ../share/filters/filters.svg.h:1 msgid "Pressed metal with a rolled edge" msgstr "Gepresster Stahl mit einer runden Kante" -#: ../share/filters/filters.svg.h:150 +#: ../share/filters/filters.svg.h:1 msgid "Matte Bevel" msgstr "Matte Schräge" -#: ../share/filters/filters.svg.h:152 +#: ../share/filters/filters.svg.h:1 msgid "Soft, pastel-colored, blurry bevel" msgstr "Weiche, pastellfarbene verschwommene Vorwölbung" -#: ../share/filters/filters.svg.h:154 +#: ../share/filters/filters.svg.h:1 msgid "Thin Membrane" msgstr "DĂĽnne Membrane" -#: ../share/filters/filters.svg.h:156 +#: ../share/filters/filters.svg.h:1 msgid "Thin like a soap membrane" msgstr "DĂĽnn, wie eine Seifenblase" -#: ../share/filters/filters.svg.h:158 +#: ../share/filters/filters.svg.h:1 msgid "Matte Ridge" msgstr "weicher Grat" -#: ../share/filters/filters.svg.h:160 +#: ../share/filters/filters.svg.h:1 msgid "Soft pastel ridge" msgstr "Weicher pastelliger Grat" -#: ../share/filters/filters.svg.h:162 +#: ../share/filters/filters.svg.h:1 msgid "Glowing Metal" msgstr "GlĂĽhendes Metall" -#: ../share/filters/filters.svg.h:164 +#: ../share/filters/filters.svg.h:1 msgid "Glowing metal texture" msgstr "GlĂĽhendes Metall" -#: ../share/filters/filters.svg.h:166 +#: ../share/filters/filters.svg.h:1 msgid "Leaves" msgstr "Laub" -#: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 -#: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 -#: ../share/extensions/pathscatter.inx.h:1 +#: ../share/filters/filters.svg.h:1 ../share/extensions/pathscatter.inx.h:1 msgid "Scatter" msgstr "Streuung" -#: ../share/filters/filters.svg.h:168 +#: ../share/filters/filters.svg.h:1 msgid "Leaves on the ground in Fall, or living foliage" msgstr "Herbstblätter am Boden oder lebendes Blattwerk" -#: ../share/filters/filters.svg.h:170 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/paint.h:339 msgid "Translucent" msgstr "Transparent" -#: ../share/filters/filters.svg.h:172 +#: ../share/filters/filters.svg.h:1 msgid "Illuminated translucent plastic or glass effect" msgstr "Beleuchteter transluzenter Plastik- oder Glas-Effekt" -#: ../share/filters/filters.svg.h:174 +#: ../share/filters/filters.svg.h:1 msgid "Iridescent Beeswax" msgstr "Schimmerndes Bienenwachs" -#: ../share/filters/filters.svg.h:176 +#: ../share/filters/filters.svg.h:1 msgid "Waxy texture which keeps its iridescence through color fill change" msgstr "" "Wachsähnliche Textur, die ihren schimmernden Effekt durch Ă„nderung der " "FarbfĂĽllung erhält" -#: ../share/filters/filters.svg.h:178 +#: ../share/filters/filters.svg.h:1 msgid "Eroded Metal" msgstr "verrostetes Metall" -#: ../share/filters/filters.svg.h:180 +#: ../share/filters/filters.svg.h:1 msgid "Eroded metal texture with ridges, grooves, holes and bumps" msgstr "Verrostete Metalltextur mit Grat, Rillen, Löchern und Beulen" -#: ../share/filters/filters.svg.h:182 +#: ../share/filters/filters.svg.h:1 msgid "Cracked Lava" msgstr "Zerborstene Lava" -#: ../share/filters/filters.svg.h:184 +#: ../share/filters/filters.svg.h:1 msgid "A volcanic texture, a little like leather" msgstr "Eine vulkanische Textur, ein wenig wie Leder" -#: ../share/filters/filters.svg.h:186 +#: ../share/filters/filters.svg.h:1 msgid "Bark" msgstr "Baumrinde" -#: ../share/filters/filters.svg.h:188 +#: ../share/filters/filters.svg.h:1 msgid "Bark texture, vertical; use with deep colors" msgstr "Rinden-Textur, vertikal; dunkle Farben verwenden" -#: ../share/filters/filters.svg.h:190 +#: ../share/filters/filters.svg.h:1 msgid "Lizard Skin" msgstr "Eidechsenleder" -#: ../share/filters/filters.svg.h:192 +#: ../share/filters/filters.svg.h:1 msgid "Stylized reptile skin texture" msgstr "Stilisierte Reptilhauttextur" -#: ../share/filters/filters.svg.h:194 +#: ../share/filters/filters.svg.h:1 msgid "Stone Wall" msgstr "Steinwand" -#: ../share/filters/filters.svg.h:196 +#: ../share/filters/filters.svg.h:1 msgid "Stone wall texture to use with not too saturated colors" msgstr "Steinwandtextur, mit nicht so gesättigten Farben zu verwenden" -#: ../share/filters/filters.svg.h:198 +#: ../share/filters/filters.svg.h:1 msgid "Silk Carpet" msgstr "Seidenteppich" -#: ../share/filters/filters.svg.h:200 +#: ../share/filters/filters.svg.h:1 msgid "Silk carpet texture, horizontal stripes" msgstr "Seidenteppich Textur, horizontale Streifen" -#: ../share/filters/filters.svg.h:202 +#: ../share/filters/filters.svg.h:1 msgid "Refractive Gel A" msgstr "Lichtbrechendes Gel A" -#: ../share/filters/filters.svg.h:204 +#: ../share/filters/filters.svg.h:1 msgid "Gel effect with light refraction" msgstr "Gel-Effekt mit leichter Lichtbrechung" -#: ../share/filters/filters.svg.h:206 +#: ../share/filters/filters.svg.h:1 msgid "Refractive Gel B" msgstr "Lichtbrechendes Gel B" -#: ../share/filters/filters.svg.h:208 +#: ../share/filters/filters.svg.h:1 msgid "Gel effect with strong refraction" msgstr "Gel-Effekt mit starker Lichtbrechung" -#: ../share/filters/filters.svg.h:210 +#: ../share/filters/filters.svg.h:1 msgid "Metallized Paint" msgstr "Metalliclack" -#: ../share/filters/filters.svg.h:212 +#: ../share/filters/filters.svg.h:1 msgid "" "Metallized effect with a soft lighting, slightly translucent at the edges" msgstr "" "Metallischer Effekt mit weicher Beleuchtung, leicht durchscheinend an den " "Kanten " -#: ../share/filters/filters.svg.h:214 +#: ../share/filters/filters.svg.h:1 msgid "Dragee" msgstr "Dragee" -#: ../share/filters/filters.svg.h:216 +#: ../share/filters/filters.svg.h:1 msgid "Gel Ridge with a pearlescent look" msgstr "Weicher Grat mit Perlmutteffekt" -#: ../share/filters/filters.svg.h:218 +#: ../share/filters/filters.svg.h:1 msgid "Raised Border" msgstr "erhöhter Rand" -#: ../share/filters/filters.svg.h:220 +#: ../share/filters/filters.svg.h:1 msgid "Strongly raised border around a flat surface" msgstr "Stark erhöhter Rand um eine flache Ebene" -#: ../share/filters/filters.svg.h:222 +#: ../share/filters/filters.svg.h:1 msgid "Metallized Ridge" msgstr "Metallischer Grat" -#: ../share/filters/filters.svg.h:224 +#: ../share/filters/filters.svg.h:1 msgid "Gel Ridge metallized at its top" msgstr "An der Spitze metallisierter weicher Grat" -#: ../share/filters/filters.svg.h:226 +#: ../share/filters/filters.svg.h:1 msgid "Fat Oil" msgstr "Fettes Ă–l" -#: ../share/filters/filters.svg.h:228 +#: ../share/filters/filters.svg.h:1 msgid "Fat oil with some adjustable turbulence" msgstr "DickflĂĽssiges Ă–l mit einstellbarer Turbulenz" -#: ../share/filters/filters.svg.h:230 +#: ../share/filters/filters.svg.h:1 msgid "Black Hole" msgstr "Schwarzes Loch" -#: ../share/filters/filters.svg.h:231 ../share/filters/filters.svg.h:275 -#: ../share/filters/filters.svg.h:279 ../share/filters/filters.svg.h:835 -#: ../share/filters/filters.svg.h:839 ../share/filters/filters.svg.h:843 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/morphology.h:76 #: ../src/extension/internal/filter/morphology.h:203 #: ../src/filter-enums.cpp:31 msgid "Morphology" msgstr "Morphologie" -#: ../share/filters/filters.svg.h:232 +#: ../share/filters/filters.svg.h:1 msgid "Creates a black light inside and outside" msgstr "Erzeugt einen schwarzen Hof innen und auĂźen" -#: ../share/filters/filters.svg.h:234 +#: ../share/filters/filters.svg.h:1 msgid "Cubes" msgstr "WĂĽrfel" -#: ../share/filters/filters.svg.h:236 +#: ../share/filters/filters.svg.h:1 msgid "Scattered cubes; adjust the Morphology primitive to vary size" msgstr "Verstreute WĂĽrfel; Größe ĂĽber Morphologie-Parameter einstellbar" -#: ../share/filters/filters.svg.h:238 +#: ../share/filters/filters.svg.h:1 msgid "Peel Off" msgstr "Abblättern" -#: ../share/filters/filters.svg.h:240 +#: ../share/filters/filters.svg.h:1 msgid "Peeling painting on a wall" msgstr "Abblätternde Farbe an einer Wand" -#: ../share/filters/filters.svg.h:242 +#: ../share/filters/filters.svg.h:1 msgid "Gold Splatter" msgstr "Goldsplitter" -#: ../share/filters/filters.svg.h:244 +#: ../share/filters/filters.svg.h:1 msgid "Splattered cast metal, with golden highlights" msgstr "Verspritztes GuĂźmetall mit goldenen Glanzlichtern" -#: ../share/filters/filters.svg.h:246 +#: ../share/filters/filters.svg.h:1 msgid "Gold Paste" msgstr "Goldpaste" -#: ../share/filters/filters.svg.h:248 +#: ../share/filters/filters.svg.h:1 msgid "Fat pasted cast metal, with golden highlights" msgstr "Feine Goldpartikel in fetter Grundlage, mit Glanzlichtern" -#: ../share/filters/filters.svg.h:250 +#: ../share/filters/filters.svg.h:1 msgid "Crumpled Plastic" msgstr "gebröckelte Plastik" -#: ../share/filters/filters.svg.h:252 +#: ../share/filters/filters.svg.h:1 msgid "Crumpled matte plastic, with melted edge" msgstr "gebröckelte matte Plastik mit geschmolzenen Ecken" -#: ../share/filters/filters.svg.h:254 +#: ../share/filters/filters.svg.h:1 msgid "Enamel Jewelry" msgstr "Emaille Schmuck" -#: ../share/filters/filters.svg.h:256 +#: ../share/filters/filters.svg.h:1 msgid "Slightly cracked enameled texture" msgstr "Leicht gebrochene Emaille-Textur" -#: ../share/filters/filters.svg.h:258 +#: ../share/filters/filters.svg.h:1 msgid "Rough Paper" msgstr "raues Papier" -#: ../share/filters/filters.svg.h:260 +#: ../share/filters/filters.svg.h:1 msgid "Aquarelle paper effect which can be used for pictures as for objects" msgstr "" "Aquarellpapier-Effekt, der fĂĽr Bilder wie fĂĽr Objekte verwendet werden kann" -#: ../share/filters/filters.svg.h:262 +#: ../share/filters/filters.svg.h:1 msgid "Rough and Glossy" msgstr "Rau und Glänzend" -#: ../share/filters/filters.svg.h:264 +#: ../share/filters/filters.svg.h:1 msgid "" "Crumpled glossy paper effect which can be used for pictures as for objects" msgstr "" "Zerknittertes-Glanzpapier-Effekt, der fĂĽr Bilder wie fĂĽr Objekte verwendet " "werden kann" -#: ../share/filters/filters.svg.h:266 +#: ../share/filters/filters.svg.h:1 msgid "In and Out" msgstr "Innen und AuĂźen" -#: ../share/filters/filters.svg.h:268 +#: ../share/filters/filters.svg.h:1 msgid "Inner colorized shadow, outer black shadow" msgstr "Innenliegender Farbschatten, äuĂźerer schwarzer Schatten" -#: ../share/filters/filters.svg.h:270 +#: ../share/filters/filters.svg.h:1 msgid "Air Spray" msgstr "Airbrush" -#: ../share/filters/filters.svg.h:272 +#: ../share/filters/filters.svg.h:1 msgid "Convert to small scattered particles with some thickness" msgstr "In kleine verstreute Partikel mit etwas Dicke umwandeln" -#: ../share/filters/filters.svg.h:274 +#: ../share/filters/filters.svg.h:1 msgid "Warm Inside" msgstr "Warm innen" -#: ../share/filters/filters.svg.h:276 +#: ../share/filters/filters.svg.h:1 msgid "Blurred colorized contour, filled inside" msgstr "Verschwommene farbige Kontur, gefĂĽllt" -#: ../share/filters/filters.svg.h:278 +#: ../share/filters/filters.svg.h:1 msgid "Cool Outside" msgstr "Kalte AuĂźenseite" -#: ../share/filters/filters.svg.h:280 +#: ../share/filters/filters.svg.h:1 msgid "Blurred colorized contour, empty inside" msgstr "Verschwommene farbige Kontur, leer" -#: ../share/filters/filters.svg.h:282 +#: ../share/filters/filters.svg.h:1 msgid "Electronic Microscopy" msgstr "Elektronenmikroskop" -#: ../share/filters/filters.svg.h:284 +#: ../share/filters/filters.svg.h:1 msgid "" "Bevel, crude light, discoloration and glow like in electronic microscopy" msgstr "" "Kantenschatten, hartes Licht, Ausbleichen und Ăśberstrahlen wie in der " "Elektronenmikroskopie" -#: ../share/filters/filters.svg.h:286 +#: ../share/filters/filters.svg.h:1 msgid "Tartan" msgstr "Tartan" -#: ../share/filters/filters.svg.h:288 +#: ../share/filters/filters.svg.h:1 msgid "Checkered tartan pattern" msgstr "Schottenkaro" -#: ../share/filters/filters.svg.h:290 +#: ../share/filters/filters.svg.h:1 msgid "Shaken Liquid" msgstr "Bewegte FlĂĽssigkeit" -#: ../share/filters/filters.svg.h:292 +#: ../share/filters/filters.svg.h:1 msgid "Colorizable filling with flow inside like transparency" msgstr "Farbige FĂĽllung mit Transparenz wie bewegte FlĂĽssigkeit" -#: ../share/filters/filters.svg.h:294 +#: ../share/filters/filters.svg.h:1 msgid "Soft Focus Lens" msgstr "Weichzeichner" -#: ../share/filters/filters.svg.h:296 +#: ../share/filters/filters.svg.h:1 msgid "Glowing image content without blurring it" msgstr "Bild mit einem Lichthof versehen, ohne es zu verwischen" -#: ../share/filters/filters.svg.h:298 +#: ../share/filters/filters.svg.h:1 msgid "Stained Glass" msgstr "gefärbtes Glas" -#: ../share/filters/filters.svg.h:300 +#: ../share/filters/filters.svg.h:1 msgid "Illuminated stained glass effect" msgstr "Effekt eines beleuchteten Bleiglasfensters" -#: ../share/filters/filters.svg.h:302 +#: ../share/filters/filters.svg.h:1 msgid "Dark Glass" msgstr "Dunkles Glas" -#: ../share/filters/filters.svg.h:304 +#: ../share/filters/filters.svg.h:1 msgid "Illuminated glass effect with light coming from beneath" msgstr "Bleiglasfester-Effekt mit Beleuchtung von unten" -#: ../share/filters/filters.svg.h:306 +#: ../share/filters/filters.svg.h:1 msgid "HSL Bumps Alpha" msgstr "HSL Rauigkeit, Alpha" -#: ../share/filters/filters.svg.h:308 +#: ../share/filters/filters.svg.h:1 msgid "Same as HSL Bumps but with transparent highlights" msgstr "Wie flexible HSL Rauigkeit aber mit transparenten Glanzlichtern" -#: ../share/filters/filters.svg.h:310 +#: ../share/filters/filters.svg.h:1 msgid "Bubbly Bumps Alpha" msgstr "Bläschenstruktur, Alpha" -#: ../share/filters/filters.svg.h:312 +#: ../share/filters/filters.svg.h:1 msgid "Same as Bubbly Bumps but with transparent highlights" msgstr "Wie Bläschenstruktur aber mit transparenten Glanzlichtern" -#: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 +#: ../share/filters/filters.svg.h:1 msgid "Torn Edges" msgstr "Ausgerissene Kanten" -#: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 +#: ../share/filters/filters.svg.h:1 msgid "" "Displace the outside of shapes and pictures without altering their content" msgstr "Das Ă„uĂźere von Formen und Bildern verschieben, ohne Inhalt zu ändern" -#: ../share/filters/filters.svg.h:318 +#: ../share/filters/filters.svg.h:1 msgid "Roughen Inside" msgstr "Inneres aufrauen" -#: ../share/filters/filters.svg.h:320 +#: ../share/filters/filters.svg.h:1 msgid "Roughen all inside shapes" msgstr "Alle inliegenden Formen aufrauen" -#: ../share/filters/filters.svg.h:322 +#: ../share/filters/filters.svg.h:1 msgid "Evanescent" msgstr "Schwindend" -#: ../share/filters/filters.svg.h:324 +#: ../share/filters/filters.svg.h:1 msgid "" "Blur the contents of objects, preserving the outline and adding progressive " "transparency at edges" @@ -881,177 +802,174 @@ msgstr "" "Inhalt des Objekts verwischen, Umriss beibehalten und zu den Kanten " "anwachsende Transparenz hinzufĂĽgen" -#: ../share/filters/filters.svg.h:326 +#: ../share/filters/filters.svg.h:1 msgid "Chalk and Sponge" msgstr "Kreide und Schwamm" -#: ../share/filters/filters.svg.h:328 +#: ../share/filters/filters.svg.h:1 msgid "Low turbulence gives sponge look and high turbulence chalk" msgstr "Geringe Turbulenz ergibt Schwammeffekt, starke Turbulenz Kreide" -#: ../share/filters/filters.svg.h:330 +#: ../share/filters/filters.svg.h:1 msgid "People" msgstr "Leute" -#: ../share/filters/filters.svg.h:332 +#: ../share/filters/filters.svg.h:1 msgid "Colorized blotches, like a crowd of people" msgstr "Farbige Tupfen, wie eine Menschenmenge" -#: ../share/filters/filters.svg.h:334 +#: ../share/filters/filters.svg.h:1 msgid "Scotland" msgstr "Schottland" -#: ../share/filters/filters.svg.h:336 +#: ../share/filters/filters.svg.h:1 msgid "Colorized mountain tops out of the fog" msgstr "Farbige Berggipfel ĂĽber dem Nebel" -#: ../share/filters/filters.svg.h:338 +#: ../share/filters/filters.svg.h:1 msgid "Garden of Delights" msgstr "Garten der Lust" -#: ../share/filters/filters.svg.h:340 +#: ../share/filters/filters.svg.h:1 msgid "" "Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" msgstr "Phantasmagorische Wolkenfetzen, wie bei Hieronymus Bosch" -#: ../share/filters/filters.svg.h:342 +#: ../share/filters/filters.svg.h:1 msgid "Cutout Glow" msgstr "Leuchtender Umriss" -#: ../share/filters/filters.svg.h:344 +#: ../share/filters/filters.svg.h:1 msgid "In and out glow with a possible offset and colorizable flood" msgstr "Lichthof innen und auĂźen mit wählbarem Versatz und FĂĽllfarbe" -#: ../share/filters/filters.svg.h:346 +#: ../share/filters/filters.svg.h:1 msgid "Dark Emboss" msgstr "Dunkle Prägung" -#: ../share/filters/filters.svg.h:348 +#: ../share/filters/filters.svg.h:1 msgid "Emboss effect : 3D relief where white is replaced by black" msgstr "Prägeeffekt: Relief, bei dem WeiĂź durch Schwarz ersetzt ist" -#: ../share/filters/filters.svg.h:350 +#: ../share/filters/filters.svg.h:1 msgid "Bubbly Bumps Matte" msgstr "Bläschenstruktur, matt" -#: ../share/filters/filters.svg.h:352 +#: ../share/filters/filters.svg.h:1 msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" msgstr "Wie Bläschenstruktur mit diffuser Reflexion (statt glänzender)" -#: ../share/filters/filters.svg.h:354 +#: ../share/filters/filters.svg.h:1 msgid "Blotting Paper" msgstr "Löschpapier" -#: ../share/filters/filters.svg.h:356 +#: ../share/filters/filters.svg.h:1 msgid "Inkblot on blotting paper" msgstr "Farbkleckse auf Löschpapier" -#: ../share/filters/filters.svg.h:358 +#: ../share/filters/filters.svg.h:1 msgid "Wax Print" msgstr "Wachs-Druck" -#: ../share/filters/filters.svg.h:360 +#: ../share/filters/filters.svg.h:1 msgid "Wax print on tissue texture" msgstr "Wachsdruck-auf-Stoff-Struktur" -#: ../share/filters/filters.svg.h:366 +#: ../share/filters/filters.svg.h:1 msgid "Watercolor" msgstr "Wasserfarbe" -#: ../share/filters/filters.svg.h:368 +#: ../share/filters/filters.svg.h:1 msgid "Cloudy watercolor effect" msgstr "Wolkiger Wasserfarben-Effekt" -#: ../share/filters/filters.svg.h:370 +#: ../share/filters/filters.svg.h:1 msgid "Felt" msgstr "Filz" -#: ../share/filters/filters.svg.h:372 +#: ../share/filters/filters.svg.h:1 msgid "" "Felt like texture with color turbulence and slightly darker at the edges" msgstr "" "Filzartige Textur mit verwirbelten Farben, an den Kanten leicht dunkler" -#: ../share/filters/filters.svg.h:374 +#: ../share/filters/filters.svg.h:1 msgid "Ink Paint" msgstr "Wasserfarbe" -#: ../share/filters/filters.svg.h:376 +#: ../share/filters/filters.svg.h:1 msgid "Ink paint on paper with some turbulent color shift" msgstr "Zeichentusche auf Papier mit turbulentem Farbversatz" -#: ../share/filters/filters.svg.h:378 +#: ../share/filters/filters.svg.h:1 msgid "Tinted Rainbow" msgstr "Getönter Regenbogen" -#: ../share/filters/filters.svg.h:380 +#: ../share/filters/filters.svg.h:1 msgid "Smooth rainbow colors melted along the edges and colorizable" msgstr "Weiche Regenbogenfarben laufen an den Kanten zusammen, einfärbbar" -#: ../share/filters/filters.svg.h:382 +#: ../share/filters/filters.svg.h:1 msgid "Melted Rainbow" msgstr "Geschmolzener Regenbogen" -#: ../share/filters/filters.svg.h:384 +#: ../share/filters/filters.svg.h:1 msgid "Smooth rainbow colors slightly melted along the edges" msgstr "Weiche Regenbogenfarben laufen an den Kanten leicht zusammen" -#: ../share/filters/filters.svg.h:386 +#: ../share/filters/filters.svg.h:1 msgid "Flex Metal" msgstr "Flexibles Metall" -#: ../share/filters/filters.svg.h:388 +#: ../share/filters/filters.svg.h:1 msgid "Bright, polished uneven metal casting, colorizable" msgstr "Heller polierter unebener Metallguss, einfärbbar" -#: ../share/filters/filters.svg.h:390 +#: ../share/filters/filters.svg.h:1 msgid "Wavy Tartan" msgstr "Welliges Tartan" -#: ../share/filters/filters.svg.h:392 +#: ../share/filters/filters.svg.h:1 msgid "Tartan pattern with a wavy displacement and bevel around the edges" msgstr "Wellenförmig verzerrtes Schottenkaro mit abgeschrägten Kanten" -#: ../share/filters/filters.svg.h:394 +#: ../share/filters/filters.svg.h:1 msgid "3D Marble" msgstr "3D Marmor" -#: ../share/filters/filters.svg.h:396 +#: ../share/filters/filters.svg.h:1 msgid "3D warped marble texture" msgstr "Dreidimensional verkrĂĽmmte Marmortextur" -#: ../share/filters/filters.svg.h:398 +#: ../share/filters/filters.svg.h:1 msgid "3D Wood" msgstr "3D Holz" -#: ../share/filters/filters.svg.h:400 +#: ../share/filters/filters.svg.h:1 msgid "3D warped, fibered wood texture" msgstr "Dreidimensional verkrĂĽmmte, faserige Holztextur" -#: ../share/filters/filters.svg.h:402 +#: ../share/filters/filters.svg.h:1 msgid "3D Mother of Pearl" msgstr "3D Mutter der Perlen" -#: ../share/filters/filters.svg.h:404 +#: ../share/filters/filters.svg.h:1 msgid "3D warped, iridescent pearly shell texture" msgstr "Dreidimensional verkrĂĽmmte, irisierende Perlmutttextur" -#: ../share/filters/filters.svg.h:406 +#: ../share/filters/filters.svg.h:1 msgid "Tiger Fur" msgstr "Tigerfell" -#: ../share/filters/filters.svg.h:408 +#: ../share/filters/filters.svg.h:1 msgid "Tiger fur pattern with folds and bevel around the edges" msgstr "Aufgefaltetes Tigerfellmuster mit abgeschrägten Kanten " -#: ../share/filters/filters.svg.h:410 +#: ../share/filters/filters.svg.h:1 msgid "Black Light" msgstr "Schwarzes Licht" -#: ../share/filters/filters.svg.h:411 ../share/filters/filters.svg.h:575 -#: ../share/filters/filters.svg.h:587 ../share/filters/filters.svg.h:627 -#: ../share/filters/filters.svg.h:631 ../share/filters/filters.svg.h:819 -#: ../share/filters/filters.svg.h:827 ../share/filters/filters.svg.h:831 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/bitmap/colorize.cpp:52 #: ../src/extension/internal/filter/bumps.h:101 #: ../src/extension/internal/filter/bumps.h:321 @@ -1083,16 +1001,15 @@ msgstr "Schwarzes Licht" #: ../src/extension/internal/filter/paint.h:717 #: ../src/extension/internal/filter/shadows.h:73 #: ../src/extension/internal/filter/transparency.h:345 -#: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:832 -#: ../src/ui/dialog/clonetiler.cpp:983 -#: ../src/ui/dialog/document-properties.cpp:156 -#: ../share/extensions/color_HSL_adjust.inx.h:20 -#: ../share/extensions/color_blackandwhite.inx.h:3 +#: ../src/ui/dialog/clonetiler.cpp:832 ../src/ui/dialog/clonetiler.cpp:983 +#: ../src/ui/dialog/document-properties.cpp:153 +#: ../share/extensions/color_blackandwhite.inx.h:2 #: ../share/extensions/color_brighter.inx.h:2 #: ../share/extensions/color_custom.inx.h:15 #: ../share/extensions/color_darker.inx.h:2 #: ../share/extensions/color_desaturate.inx.h:2 #: ../share/extensions/color_grayscale.inx.h:2 +#: ../share/extensions/color_HSL_adjust.inx.h:20 #: ../share/extensions/color_lesshue.inx.h:2 #: ../share/extensions/color_lesslight.inx.h:2 #: ../share/extensions/color_lesssaturation.inx.h:2 @@ -1110,145 +1027,136 @@ msgstr "Schwarzes Licht" msgid "Color" msgstr "Farbe" -#: ../share/filters/filters.svg.h:412 +#: ../share/filters/filters.svg.h:1 msgid "Light areas turn to black" msgstr "Helle Bereiche werden schwarz" -#: ../share/filters/filters.svg.h:414 +#: ../share/filters/filters.svg.h:1 msgid "Film Grain" msgstr "Filmkörnung" -#: ../share/filters/filters.svg.h:416 +#: ../share/filters/filters.svg.h:1 msgid "Adds a small scale graininess" msgstr "FĂĽgt kleinteilige Körnung hinzu" -#: ../share/filters/filters.svg.h:418 +#: ../share/filters/filters.svg.h:1 msgid "Plaster Color" msgstr "Farbe einfĂĽgen" -#: ../share/filters/filters.svg.h:420 +#: ../share/filters/filters.svg.h:1 msgid "Colored plaster emboss effect" msgstr "Farbiger Gipsprägeeffekt" -#: ../share/filters/filters.svg.h:422 +#: ../share/filters/filters.svg.h:1 msgid "Velvet Bumps" msgstr "Samtene Oberflächenstruktur" -#: ../share/filters/filters.svg.h:424 +#: ../share/filters/filters.svg.h:1 msgid "Gives Smooth Bumps velvet like" msgstr "Oberflächenstrukturen mit samtartiger Erscheinung" -#: ../share/filters/filters.svg.h:426 +#: ../share/filters/filters.svg.h:1 msgid "Comics Cream" msgstr "Comic sahnig" -#: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 -#: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 -#: ../share/filters/filters.svg.h:739 ../share/filters/filters.svg.h:743 -#: ../share/filters/filters.svg.h:747 ../share/filters/filters.svg.h:751 -#: ../share/filters/filters.svg.h:755 ../share/filters/filters.svg.h:759 -#: ../share/filters/filters.svg.h:763 ../share/filters/filters.svg.h:767 -#: ../share/filters/filters.svg.h:771 ../share/filters/filters.svg.h:775 -#: ../share/filters/filters.svg.h:779 ../share/filters/filters.svg.h:783 -#: ../share/filters/filters.svg.h:787 ../share/filters/filters.svg.h:791 -#: ../share/filters/filters.svg.h:795 +#: ../share/filters/filters.svg.h:1 msgid "Non realistic 3D shaders" msgstr "Ăśbersteigerte Schattierungen" -#: ../share/filters/filters.svg.h:428 +#: ../share/filters/filters.svg.h:1 msgid "Comics shader with creamy waves transparency" msgstr "Comicschattierung mit cremiger Wellen-Transparenz" -#: ../share/filters/filters.svg.h:430 +#: ../share/filters/filters.svg.h:1 msgid "Chewing Gum" msgstr "Kaugummi" -#: ../share/filters/filters.svg.h:432 +#: ../share/filters/filters.svg.h:1 msgid "" "Creates colorizable blotches which smoothly flow over the edges of the lines " "at their crossings" msgstr "Erzeugt farbige Kleckse, die weich ĂĽber innere Strukturen flieĂźen" -#: ../share/filters/filters.svg.h:434 +#: ../share/filters/filters.svg.h:1 msgid "Dark And Glow" msgstr "Licht und Schatten" -#: ../share/filters/filters.svg.h:436 +#: ../share/filters/filters.svg.h:1 msgid "Darkens the edge with an inner blur and adds a flexible glow" msgstr "" "Betont die Kante mit innenliegender Unschärfe und fĂĽgt flexiblen Lichthof " "hinzu" -#: ../share/filters/filters.svg.h:438 +#: ../share/filters/filters.svg.h:1 msgid "Warped Rainbow" msgstr "Verzerrter Regenbogen" -#: ../share/filters/filters.svg.h:440 +#: ../share/filters/filters.svg.h:1 msgid "Smooth rainbow colors warped along the edges and colorizable" msgstr "Weiche Regenbogenfarben verlaufen an den Kanten zusammen, einfärbbar" -#: ../share/filters/filters.svg.h:442 +#: ../share/filters/filters.svg.h:1 msgid "Rough and Dilate" msgstr "Rau und erweitert" -#: ../share/filters/filters.svg.h:444 +#: ../share/filters/filters.svg.h:1 msgid "Create a turbulent contour around" msgstr "Erstelle verwirbelte Kontur auĂźen herum" -#: ../share/filters/filters.svg.h:446 +#: ../share/filters/filters.svg.h:1 msgid "Old Postcard" msgstr "Alte Postkarte" -#: ../share/filters/filters.svg.h:448 +#: ../share/filters/filters.svg.h:1 msgid "Slightly posterize and draw edges like on old printed postcards" msgstr "Schwach rastern und Kanten wie auf alten Postkarten zeichnen" -#: ../share/filters/filters.svg.h:450 +#: ../share/filters/filters.svg.h:1 msgid "Dots Transparency" msgstr "Punkt-Transparenz" -#: ../share/filters/filters.svg.h:452 +#: ../share/filters/filters.svg.h:1 msgid "Gives a pointillist HSL sensitive transparency" msgstr "Pointillistische, HSL-empfindliche Transparenz" -#: ../share/filters/filters.svg.h:454 +#: ../share/filters/filters.svg.h:1 msgid "Canvas Transparency" msgstr "Leinwand-Transparenz" -#: ../share/filters/filters.svg.h:456 +#: ../share/filters/filters.svg.h:1 msgid "Gives a canvas like HSL sensitive transparency." msgstr "Leinwandartige, HSL-empfindliche Transparenz" -#: ../share/filters/filters.svg.h:458 +#: ../share/filters/filters.svg.h:1 msgid "Smear Transparency" msgstr "Verschmierte Transparenz" -#: ../share/filters/filters.svg.h:460 +#: ../share/filters/filters.svg.h:1 msgid "" "Paint objects with a transparent turbulence which turns around color edges" msgstr "Versieht Objekte mit Transparenzturbulenz um Farbkanten" -#: ../share/filters/filters.svg.h:462 +#: ../share/filters/filters.svg.h:1 msgid "Thick Paint" msgstr "Dicke Farbe" -#: ../share/filters/filters.svg.h:464 +#: ../share/filters/filters.svg.h:1 msgid "Thick painting effect with turbulence" msgstr "Effekt von dicker Farbe mit Turbulenz" -#: ../share/filters/filters.svg.h:466 +#: ../share/filters/filters.svg.h:1 msgid "Burst" msgstr "Bruch" -#: ../share/filters/filters.svg.h:468 +#: ../share/filters/filters.svg.h:1 msgid "Burst balloon texture crumpled and with holes" msgstr "Verknitterte, eingefallene Ballonhaut mit Löchern" -#: ../share/filters/filters.svg.h:470 +#: ../share/filters/filters.svg.h:1 msgid "Embossed Leather" msgstr "geprägtes Leder" -#: ../share/filters/filters.svg.h:472 +#: ../share/filters/filters.svg.h:1 msgid "" "Combine a HSL edges detection bump with a leathery or woody and colorizable " "texture" @@ -1256,19 +1164,19 @@ msgstr "" "Kombiniert Kantenerkennung im HSL-Farbraum mit einer ledrigen oder " "holzähnlichen Textur" -#: ../share/filters/filters.svg.h:474 +#: ../share/filters/filters.svg.h:1 msgid "Carnaval" msgstr "Batik" -#: ../share/filters/filters.svg.h:476 +#: ../share/filters/filters.svg.h:1 msgid "White splotches evocating carnaval masks" msgstr "WeiĂźe Flecken, die an Batik erinnern" -#: ../share/filters/filters.svg.h:478 +#: ../share/filters/filters.svg.h:1 msgid "Plastify" msgstr "Weich machen" -#: ../share/filters/filters.svg.h:480 +#: ../share/filters/filters.svg.h:1 msgid "" "HSL edges detection bump with a wavy reflective surface effect and variable " "crumple" @@ -1276,101 +1184,99 @@ msgstr "" "Kantenerkennung im HSL-Farbraum mit dem Effekt einer reflektierenden " "Oberfläche einstellbarer Welligkeit " -#: ../share/filters/filters.svg.h:482 +#: ../share/filters/filters.svg.h:1 msgid "Plaster" msgstr "Gips" -#: ../share/filters/filters.svg.h:484 +#: ../share/filters/filters.svg.h:1 msgid "" "Combine a HSL edges detection bump with a matte and crumpled surface effect" msgstr "" "Kombiniert Kantenerkennung im HSL-Farbraum mit einem matten, knittrigen " "Oberflächeneffekt" -#: ../share/filters/filters.svg.h:486 +#: ../share/filters/filters.svg.h:1 msgid "Rough Transparency" msgstr "Transparenzrauschen" -#: ../share/filters/filters.svg.h:488 +#: ../share/filters/filters.svg.h:1 msgid "Adds a turbulent transparency which displaces pixels at the same time" msgstr "FĂĽgt turbulente Transparenz und Pixelversatz hinzu" -#: ../share/filters/filters.svg.h:490 +#: ../share/filters/filters.svg.h:1 msgid "Gouache" msgstr "Gouache" -#: ../share/filters/filters.svg.h:492 +#: ../share/filters/filters.svg.h:1 msgid "Partly opaque water color effect with bleed" msgstr "Halbdurchlässiger Wasserfarben-Effekt mit Ausbluten" -#: ../share/filters/filters.svg.h:494 +#: ../share/filters/filters.svg.h:1 msgid "Alpha Engraving" msgstr "Alpha Gravur" -#: ../share/filters/filters.svg.h:496 +#: ../share/filters/filters.svg.h:1 msgid "Gives a transparent engraving effect with rough line and filling" msgstr "Erzeugt einen transparenten Gravureffekt mit rohen Linien und FĂĽllung." -#: ../share/filters/filters.svg.h:498 +#: ../share/filters/filters.svg.h:1 msgid "Alpha Draw Liquid" msgstr "Alpha Zeichnung, flĂĽssig" # Meint "fluid drawing" tatsächlich etwas wie Wasserfarbenmalerei? -#: ../share/filters/filters.svg.h:500 +#: ../share/filters/filters.svg.h:1 msgid "Gives a transparent fluid drawing effect with rough line and filling" msgstr "" "Erzeugt einen transparenten Wasserfarbeneffekt mit rohen Linien und FĂĽllung" -#: ../share/filters/filters.svg.h:502 +#: ../share/filters/filters.svg.h:1 msgid "Liquid Drawing" msgstr "FlĂĽssige Zeichnung" -#: ../share/filters/filters.svg.h:504 +#: ../share/filters/filters.svg.h:1 msgid "Gives a fluid and wavy expressionist drawing effect to images" msgstr "" "Versieht Bilder mit einem expressionistischem Ausdruck (flieĂźende, wellige " "Formen)" -#: ../share/filters/filters.svg.h:506 +#: ../share/filters/filters.svg.h:1 msgid "Marbled Ink" msgstr "Marmorierte Tinte" -#: ../share/filters/filters.svg.h:508 +#: ../share/filters/filters.svg.h:1 msgid "Marbled transparency effect which conforms to image detected edges" msgstr "Effekt von transluzentem Marmor entlang Kanten im Bild" -#: ../share/filters/filters.svg.h:510 +#: ../share/filters/filters.svg.h:1 msgid "Thick Acrylic" msgstr "Dicke Acrylfarbe" -#: ../share/filters/filters.svg.h:512 +#: ../share/filters/filters.svg.h:1 msgid "Thick acrylic paint texture with high texture depth" msgstr "Struktur von dicker Acrylfarbe mit stark unebener Oberfläche" -#: ../share/filters/filters.svg.h:514 +#: ../share/filters/filters.svg.h:1 msgid "Alpha Engraving B" msgstr "Alphagravur B" -#: ../share/filters/filters.svg.h:516 +#: ../share/filters/filters.svg.h:1 msgid "" "Gives a controllable roughness engraving effect to bitmaps and materials" msgstr "Erzeugt eine einstellbare raue Oberfläche auf Materialien und Bildern " -#: ../share/filters/filters.svg.h:518 +#: ../share/filters/filters.svg.h:1 msgid "Lapping" msgstr "Läppen" -#: ../share/filters/filters.svg.h:520 +#: ../share/filters/filters.svg.h:1 msgid "Something like a water noise" msgstr "Etwas wie leichte Wasserbewegung" -#: ../share/filters/filters.svg.h:522 +#: ../share/filters/filters.svg.h:1 msgid "Monochrome Transparency" msgstr "Monochrome Transparenz" -#: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 -#: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 -#: ../share/filters/filters.svg.h:823 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/transparency.h:70 #: ../src/extension/internal/filter/transparency.h:141 #: ../src/extension/internal/filter/transparency.h:215 @@ -1379,279 +1285,295 @@ msgstr "Monochrome Transparenz" msgid "Fill and Transparency" msgstr "FĂĽllung und Transparenz" -#: ../share/filters/filters.svg.h:524 +#: ../share/filters/filters.svg.h:1 msgid "Convert to a colorizable transparent positive or negative" msgstr "In einfärbbares transparentes Positiv oder Negativ umwandeln" -#: ../share/filters/filters.svg.h:526 +#: ../share/filters/filters.svg.h:1 msgid "Saturation Map" msgstr "Sättigungskarte" -#: ../share/filters/filters.svg.h:528 +#: ../share/filters/filters.svg.h:1 msgid "" "Creates an approximative semi-transparent and colorizable image of the " "saturation levels" msgstr "" "Erzeugt ein ungefähr halbtransparentes einfärbbares Bild der Sättigungspegel" -#: ../share/filters/filters.svg.h:530 +#: ../share/filters/filters.svg.h:1 msgid "Riddled" msgstr "Durchsetzt" -#: ../share/filters/filters.svg.h:532 +#: ../share/filters/filters.svg.h:1 msgid "Riddle the surface and add bump to images" msgstr "Versieht Oberfläche von Bildern mit Struktur" -#: ../share/filters/filters.svg.h:534 +#: ../share/filters/filters.svg.h:1 msgid "Wrinkled Varnish" msgstr "Zerknitterter Lack" -#: ../share/filters/filters.svg.h:536 +#: ../share/filters/filters.svg.h:1 msgid "Thick glossy and translucent paint texture with high depth" msgstr "Dicke, glänzende Farbe, durchscheinend mit unebener Oberfläche" -#: ../share/filters/filters.svg.h:538 +#: ../share/filters/filters.svg.h:1 msgid "Canvas Bumps" msgstr "Leinwandtextur" -#: ../share/filters/filters.svg.h:540 +#: ../share/filters/filters.svg.h:1 msgid "Canvas texture with an HSL sensitive height map" msgstr "Leindwandstruktur mit HSL-empfindlicher Höhenkarte" -#: ../share/filters/filters.svg.h:542 +#: ../share/filters/filters.svg.h:1 msgid "Canvas Bumps Matte" msgstr "Leinwandstruktur , matt" -#: ../share/filters/filters.svg.h:544 +#: ../share/filters/filters.svg.h:1 msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" msgstr "Wie Leinwandtextur mit diffuser Reflexion (statt glänzender)" -#: ../share/filters/filters.svg.h:546 +#: ../share/filters/filters.svg.h:1 msgid "Canvas Bumps Alpha" msgstr "Leinwandtextur, Alpha" -#: ../share/filters/filters.svg.h:548 +#: ../share/filters/filters.svg.h:1 msgid "Same as Canvas Bumps but with transparent highlights" msgstr "Gleich wie Leinwandstruktur aber mit transparenten Glanzlichtern" -#: ../share/filters/filters.svg.h:550 +#: ../share/filters/filters.svg.h:1 msgid "Bright Metal" msgstr "Helles Metall" -#: ../share/filters/filters.svg.h:552 +#: ../share/filters/filters.svg.h:1 msgid "Bright metallic effect for any color" msgstr "Heller Metallic-Effekt fĂĽr jede Farbe" -#: ../share/filters/filters.svg.h:554 +#: ../share/filters/filters.svg.h:1 msgid "Deep Colors Plastic" msgstr "Knallbuntes Plastik" -#: ../share/filters/filters.svg.h:556 +#: ../share/filters/filters.svg.h:1 msgid "Transparent plastic with deep colors" msgstr "Transparentes Plastik mit satten Farben" -#: ../share/filters/filters.svg.h:558 +#: ../share/filters/filters.svg.h:1 msgid "Melted Jelly Matte" msgstr "Geschmolzenes Gelee, matt" -#: ../share/filters/filters.svg.h:560 +#: ../share/filters/filters.svg.h:1 msgid "Matte bevel with blurred edges" msgstr "Matte Wölbung mit unscharfen Kanten" -#: ../share/filters/filters.svg.h:562 +#: ../share/filters/filters.svg.h:1 msgid "Melted Jelly" msgstr "Geschmolzenes Gelee" -#: ../share/filters/filters.svg.h:564 +#: ../share/filters/filters.svg.h:1 msgid "Glossy bevel with blurred edges" msgstr "Glänzende Wölbung mit verschwommenen Kanten" -#: ../share/filters/filters.svg.h:566 +#: ../share/filters/filters.svg.h:1 msgid "Combined Lighting" msgstr "Kombinierte Helligkeit" -#: ../share/filters/filters.svg.h:568 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/bevels.h:231 msgid "Basic specular bevel to use for building textures" msgstr "Einfache reflektierende Wölbung um Texturen zu entwickeln" -#: ../share/filters/filters.svg.h:570 +#: ../share/filters/filters.svg.h:1 msgid "Tinfoil" msgstr "Alufolie" -#: ../share/filters/filters.svg.h:572 +#: ../share/filters/filters.svg.h:1 msgid "Metallic foil effect combining two lighting types and variable crumple" msgstr "" "Alufolieneffekt mit zwei Beleuchtungsarten und einstellbarer Knittrigkeit" -#: ../share/filters/filters.svg.h:574 +#: ../share/filters/filters.svg.h:1 msgid "Soft Colors" msgstr "Weiche Farben" -#: ../share/filters/filters.svg.h:576 +#: ../share/filters/filters.svg.h:1 msgid "Adds a colorizable edges glow inside objects and pictures" msgstr "FĂĽgt einfärbbaren Lichthof um Kanten in Objekten und Bilder hinzu" -#: ../share/filters/filters.svg.h:578 +#: ../share/filters/filters.svg.h:1 msgid "Relief Print" msgstr "Relief Print" -#: ../share/filters/filters.svg.h:580 +#: ../share/filters/filters.svg.h:1 msgid "Bumps effect with a bevel, color flood and complex lighting" msgstr "" "Oberflächenstruktur mit Wölbung, FarbfĂĽllung und komplexer Beleuchtung " -#: ../share/filters/filters.svg.h:582 +#: ../share/filters/filters.svg.h:1 msgid "Growing Cells" msgstr "Wachsende Zellen" -#: ../share/filters/filters.svg.h:584 +#: ../share/filters/filters.svg.h:1 msgid "Random rounded living cells like fill" msgstr "FĂĽllung mit zufälliger Zellstruktur" -#: ../share/filters/filters.svg.h:586 +#: ../share/filters/filters.svg.h:1 msgid "Fluorescence" msgstr "Fluoreszenz" -#: ../share/filters/filters.svg.h:588 +#: ../share/filters/filters.svg.h:1 msgid "Oversaturate colors which can be fluorescent in real world" msgstr "Farben ĂĽbersättigen (erinnert an fluoreszente Farben)" -#: ../share/filters/filters.svg.h:590 +#: ../share/filters/filters.svg.h:1 msgid "Pixellize" msgstr "Verpixeln" -#: ../share/filters/filters.svg.h:591 +#: ../share/filters/filters.svg.h:1 msgid "Pixel tools" msgstr "Pixelwerkzeug" -#: ../share/filters/filters.svg.h:592 +#: ../share/filters/filters.svg.h:1 msgid "Reduce or remove antialiasing around shapes" msgstr "Kantenglättung um Formen reduzieren oder löschen" -#: ../share/filters/filters.svg.h:594 +#: ../share/filters/filters.svg.h:1 +msgid "Set Resolution" +msgstr "Auflösung" + +#: ../share/filters/filters.svg.h:1 +msgid "Set filter resolution" +msgstr "Filter-Auflösung setzen" + +#: ../share/filters/filters.svg.h:1 msgid "Basic Diffuse Bump" msgstr "Einfache diffuse Beule" -#: ../share/filters/filters.svg.h:596 +#: ../share/filters/filters.svg.h:1 msgid "Matte emboss effect" msgstr "matter Prägeeffekt" -#: ../share/filters/filters.svg.h:598 +#: ../share/filters/filters.svg.h:1 msgid "Basic Specular Bump" msgstr "Einfache spiegelende Beule" -#: ../share/filters/filters.svg.h:600 +#: ../share/filters/filters.svg.h:1 msgid "Specular emboss effect" msgstr "spiegelnder Prägeeffekt" -#: ../share/filters/filters.svg.h:602 +#: ../share/filters/filters.svg.h:1 msgid "Basic Two Lights Bump" msgstr "Einfache Zwei-Lichter-Beule" -#: ../share/filters/filters.svg.h:604 +#: ../share/filters/filters.svg.h:1 msgid "Two types of lighting emboss effect" msgstr "Zwei Arten von Beleuchtungs-Prägeeffekt" -#: ../share/filters/filters.svg.h:606 +#: ../share/filters/filters.svg.h:1 msgid "Linen Canvas" msgstr "Leinwand" -#: ../share/filters/filters.svg.h:608 ../share/filters/filters.svg.h:616 +#: ../share/filters/filters.svg.h:1 msgid "Painting canvas emboss effect" msgstr "Malerei Leinwand-Prägeeffekt" -#: ../share/filters/filters.svg.h:610 +#: ../share/filters/filters.svg.h:1 msgid "Plasticine" msgstr "Knetmasse" -#: ../share/filters/filters.svg.h:612 +#: ../share/filters/filters.svg.h:1 msgid "Matte modeling paste emboss effect" msgstr "matter Modellierpaste-Prägeeffekt" -#: ../share/filters/filters.svg.h:614 +#: ../share/filters/filters.svg.h:1 msgid "Rough Canvas Painting" msgstr "Raues Leinwandgemälde" -#: ../share/filters/filters.svg.h:618 +#: ../share/filters/filters.svg.h:1 msgid "Paper Bump" msgstr "Raues Papier" -#: ../share/filters/filters.svg.h:620 +#: ../share/filters/filters.svg.h:1 msgid "Paper like emboss effect" msgstr "Papierartiger Prägeeffekt" -#: ../share/filters/filters.svg.h:622 +#: ../share/filters/filters.svg.h:1 msgid "Jelly Bump" msgstr "GeleestoĂź" -#: ../share/filters/filters.svg.h:624 +#: ../share/filters/filters.svg.h:1 msgid "Convert pictures to thick jelly" msgstr "Bilder in dickes Gelee konvertieren" -#: ../share/filters/filters.svg.h:626 +#: ../share/filters/filters.svg.h:1 msgid "Blend Opposites" msgstr "Mische gegenĂĽberliegendes" -#: ../share/filters/filters.svg.h:628 +#: ../share/filters/filters.svg.h:1 msgid "Blend an image with its hue opposite" msgstr "Mischen eines Bildes mit dem entgegengesetzten Farbton" -#: ../share/filters/filters.svg.h:630 +#: ../share/filters/filters.svg.h:1 msgid "Hue to White" msgstr "Farbton zu weiĂź" -#: ../share/filters/filters.svg.h:632 +#: ../share/filters/filters.svg.h:1 msgid "Fades hue progressively to white" msgstr "Blendet Farbton schrittweise auf weiĂź aus" -#: ../share/filters/filters.svg.h:634 +#: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/bitmap/swirl.cpp:37 msgid "Swirl" msgstr "Verwirbeln" -#: ../share/filters/filters.svg.h:636 +#: ../share/filters/filters.svg.h:1 msgid "" "Paint objects with a transparent turbulence which wraps around color edges" msgstr "Versieht Objekte mit Transparenzturbulenz um Farbkanten" -#: ../share/filters/filters.svg.h:638 +#: ../share/filters/filters.svg.h:1 msgid "Pointillism" msgstr "Pointillismus" -#: ../share/filters/filters.svg.h:640 +#: ../share/filters/filters.svg.h:1 msgid "Gives a turbulent pointillist HSL sensitive transparency" msgstr "Pointillistische, HSL-empfindliche Transparenz" -#: ../share/filters/filters.svg.h:642 +#: ../share/filters/filters.svg.h:1 msgid "Silhouette Marbled" msgstr "Silhouette Marmor" -#: ../share/filters/filters.svg.h:644 +#: ../share/filters/filters.svg.h:1 msgid "Basic noise transparency texture" msgstr "Einfaches Transparenzrauschen" -#: ../share/filters/filters.svg.h:646 +#: ../share/filters/filters.svg.h:1 msgid "Fill Background" msgstr "Hintergrund fĂĽllen" -#: ../share/filters/filters.svg.h:648 +#: ../share/filters/filters.svg.h:1 msgid "Adds a colorizable opaque background" msgstr "FĂĽgt einfärbbaren trĂĽben Hintergrund hinzu" -#: ../share/filters/filters.svg.h:650 +#: ../share/filters/filters.svg.h:1 msgid "Flatten Transparency" msgstr "abflachende Transparenz" -#: ../share/filters/filters.svg.h:652 +#: ../share/filters/filters.svg.h:1 msgid "Adds a white opaque background" msgstr "FĂĽgt einen weiĂźen,trĂĽben Hintergrund hinzu" -#: ../share/filters/filters.svg.h:654 +#: ../share/filters/filters.svg.h:1 +msgid "Fill Area" +msgstr "FĂĽllbereich" + +#: ../share/filters/filters.svg.h:1 +msgid "Fills object bounding box with color" +msgstr "FĂĽllt Objektrahmen mit Farbe" + +#: ../share/filters/filters.svg.h:1 msgid "Blur Double" msgstr "Unschärfe doppelt" -#: ../share/filters/filters.svg.h:656 +#: ../share/filters/filters.svg.h:1 msgid "" "Overlays two copies with different blur amounts and modifiable blend and " "composite" @@ -1660,356 +1582,354 @@ msgstr "" "Mischung und Zusammensetzung" # not sure here -cm- -#: ../share/filters/filters.svg.h:658 +#: ../share/filters/filters.svg.h:1 msgid "Image Drawing Basic" msgstr "Bild einfach malen" -#: ../share/filters/filters.svg.h:660 +#: ../share/filters/filters.svg.h:1 msgid "Enhance and redraw color edges in 1 bit black and white" msgstr "Verbessern und neuzeichnen von Farbkanten in 1 Bit Schwarz und WeiĂź" -#: ../share/filters/filters.svg.h:662 +#: ../share/filters/filters.svg.h:1 msgid "Poster Draw" msgstr "Posterzeichnung" -#: ../share/filters/filters.svg.h:664 +#: ../share/filters/filters.svg.h:1 msgid "Enhance and redraw edges around posterized areas" msgstr "Verbessern und neuzeichnen von Kanten um posterisierte Flächen herum" -#: ../share/filters/filters.svg.h:666 +#: ../share/filters/filters.svg.h:1 msgid "Cross Noise Poster" msgstr "Poster Kreuzrauschen" -#: ../share/filters/filters.svg.h:668 +#: ../share/filters/filters.svg.h:1 msgid "Overlay with a small scale screen like noise" msgstr "Einblendung mit einem kleinen Bildschirm wie Rauschen" -#: ../share/filters/filters.svg.h:670 +#: ../share/filters/filters.svg.h:1 msgid "Cross Noise Poster B" msgstr "Poster Kreuzrauschen B" -#: ../share/filters/filters.svg.h:672 +#: ../share/filters/filters.svg.h:1 msgid "Adds a small scale screen like noise locally" msgstr "FĂĽgt kleinteilige Körnung hinzu" -#: ../share/filters/filters.svg.h:674 +#: ../share/filters/filters.svg.h:1 msgid "Poster Color Fun" msgstr "Poster FarbspaĂź" -#: ../share/filters/filters.svg.h:678 +#: ../share/filters/filters.svg.h:1 msgid "Poster Rough" msgstr "raues Poster" -#: ../share/filters/filters.svg.h:680 +#: ../share/filters/filters.svg.h:1 msgid "Adds roughness to one of the two channels of the Poster paint filter" msgstr "FĂĽgt Rauigkeit einem der beiden Kanäle des Poster-Mal-Filters hinzu" -#: ../share/filters/filters.svg.h:682 +#: ../share/filters/filters.svg.h:1 msgid "Alpha Monochrome Cracked" msgstr "Alpha Monochrome gebrochen" -#: ../share/filters/filters.svg.h:684 ../share/filters/filters.svg.h:688 -#: ../share/filters/filters.svg.h:692 ../share/filters/filters.svg.h:704 -#: ../share/filters/filters.svg.h:708 ../share/filters/filters.svg.h:712 +#: ../share/filters/filters.svg.h:1 msgid "Basic noise fill texture; adjust color in Flood" msgstr "Einfaches Farbrauschen fĂĽr FĂĽllungen, mit FĂĽllfarbe einstellen" -#: ../share/filters/filters.svg.h:686 +#: ../share/filters/filters.svg.h:1 msgid "Alpha Turbulent" msgstr "Alphaturbulenz" -#: ../share/filters/filters.svg.h:690 +#: ../share/filters/filters.svg.h:1 msgid "Colorize Turbulent" msgstr "Einfärbende Turbulenz" -#: ../share/filters/filters.svg.h:694 +#: ../share/filters/filters.svg.h:1 msgid "Cross Noise B" msgstr "Kreuzrauschen B" -#: ../share/filters/filters.svg.h:696 +#: ../share/filters/filters.svg.h:1 msgid "Adds a small scale crossy graininess" msgstr "FĂĽgt kleinteilige Körnung hinzu" -#: ../share/filters/filters.svg.h:698 +#: ../share/filters/filters.svg.h:1 msgid "Cross Noise" msgstr "Kreuzrauschen" -#: ../share/filters/filters.svg.h:700 +#: ../share/filters/filters.svg.h:1 msgid "Adds a small scale screen like graininess" msgstr "FĂĽgt kleinteilige Körnung hinzu" -#: ../share/filters/filters.svg.h:702 +#: ../share/filters/filters.svg.h:1 msgid "Duotone Turbulent" msgstr "Zweiton Turbulenz" -#: ../share/filters/filters.svg.h:706 +#: ../share/filters/filters.svg.h:1 msgid "Light Eraser Cracked" msgstr "Helligkeitsradierer (rissig)" -#: ../share/filters/filters.svg.h:710 +#: ../share/filters/filters.svg.h:1 msgid "Poster Turbulent" msgstr "Poster Turbulenz" -#: ../share/filters/filters.svg.h:714 +#: ../share/filters/filters.svg.h:1 msgid "Tartan Smart" msgstr "Tartan schick" -#: ../share/filters/filters.svg.h:716 +#: ../share/filters/filters.svg.h:1 msgid "Highly configurable checkered tartan pattern" msgstr "hochkonfigurierbares gekacheltes Tartanmuster" -#: ../share/filters/filters.svg.h:718 +#: ../share/filters/filters.svg.h:1 msgid "Light Contour" msgstr "Lichtkontur" -#: ../share/filters/filters.svg.h:720 +#: ../share/filters/filters.svg.h:1 msgid "Uses vertical specular light to draw lines" msgstr "Verwendet vertikal gerichtetes Licht, um Linien zu zeichnen" -#: ../share/filters/filters.svg.h:722 +#: ../share/filters/filters.svg.h:1 msgid "Liquid" msgstr "FlĂĽssigkeit" -#: ../share/filters/filters.svg.h:724 +#: ../share/filters/filters.svg.h:1 msgid "Colorizable filling with liquid transparency" msgstr "Einfärbbare FĂĽllung mit flĂĽssiger Transparenz" -#: ../share/filters/filters.svg.h:726 +#: ../share/filters/filters.svg.h:1 msgid "Aluminium" msgstr "Aluminium" -#: ../share/filters/filters.svg.h:728 +#: ../share/filters/filters.svg.h:1 msgid "Aluminium effect with sharp brushed reflections" msgstr "Aluminiumeffekt mit scharfen, gebĂĽrsteten Reflektionen" -#: ../share/filters/filters.svg.h:730 +#: ../share/filters/filters.svg.h:1 msgid "Comics" msgstr "Comic" -#: ../share/filters/filters.svg.h:732 +#: ../share/filters/filters.svg.h:1 msgid "Comics cartoon drawing effect" msgstr "Comiczeichnung mit Skizzeneffekt" -#: ../share/filters/filters.svg.h:734 +#: ../share/filters/filters.svg.h:1 msgid "Comics Draft" msgstr "Comicskizze" -#: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768 +#: ../share/filters/filters.svg.h:1 msgid "Draft painted cartoon shading with a glassy look" msgstr "Cartoonartige Tönung mit glasartigem Aussehen" -#: ../share/filters/filters.svg.h:738 +#: ../share/filters/filters.svg.h:1 msgid "Comics Fading" msgstr "Comicartiges Ausbleichen" -#: ../share/filters/filters.svg.h:740 +#: ../share/filters/filters.svg.h:1 msgid "Cartoon paint style with some fading at the edges" msgstr "Cartoonartiger Farbstil mit leichtem Ausbleichen der Ränder " -#: ../share/filters/filters.svg.h:742 +#: ../share/filters/filters.svg.h:1 msgid "Brushed Metal" msgstr "gebĂĽrstetes Metall" -#: ../share/filters/filters.svg.h:744 +#: ../share/filters/filters.svg.h:1 msgid "Satiny metal surface effect" msgstr "Seidiger Metalloberflächen-Effekt" -#: ../share/filters/filters.svg.h:746 +#: ../share/filters/filters.svg.h:1 msgid "Opaline" msgstr "Opal" -#: ../share/filters/filters.svg.h:748 +#: ../share/filters/filters.svg.h:1 msgid "Contouring version of smooth shader" msgstr "Konturbetonte Version der weichen Schattierung" -#: ../share/filters/filters.svg.h:750 +#: ../share/filters/filters.svg.h:1 msgid "Chrome" msgstr "Chrome HR" -#: ../share/filters/filters.svg.h:752 +#: ../share/filters/filters.svg.h:1 msgid "Bright chrome effect" msgstr "Heller Chromeeffekt" -#: ../share/filters/filters.svg.h:754 +#: ../share/filters/filters.svg.h:1 msgid "Deep Chrome" msgstr "Chrome HR" -#: ../share/filters/filters.svg.h:756 +#: ../share/filters/filters.svg.h:1 msgid "Dark chrome effect" msgstr "Dunkler Chromeeffekt" -#: ../share/filters/filters.svg.h:758 +#: ../share/filters/filters.svg.h:1 msgid "Emboss Shader" msgstr "Prägeschattierung" -#: ../share/filters/filters.svg.h:760 +#: ../share/filters/filters.svg.h:1 msgid "Combination of satiny and emboss effect" msgstr "Kombination aus Samt und Prägeeffekt" -#: ../share/filters/filters.svg.h:762 +#: ../share/filters/filters.svg.h:1 msgid "Sharp Metal" msgstr "Scharfes Metall" -#: ../share/filters/filters.svg.h:764 +#: ../share/filters/filters.svg.h:1 msgid "Chrome effect with darkened edges" msgstr "Chromeffekt mit dunklen Kanten" -#: ../share/filters/filters.svg.h:766 +#: ../share/filters/filters.svg.h:1 msgid "Brush Draw" msgstr "Pinselzeichnung" -#: ../share/filters/filters.svg.h:770 +#: ../share/filters/filters.svg.h:1 msgid "Chrome Emboss" msgstr "Chromeprägung" -#: ../share/filters/filters.svg.h:772 +#: ../share/filters/filters.svg.h:1 msgid "Embossed chrome effect" msgstr "Geprägter Chromeffekt" -#: ../share/filters/filters.svg.h:774 +#: ../share/filters/filters.svg.h:1 msgid "Contour Emboss" msgstr "Kontur-Prägung" -#: ../share/filters/filters.svg.h:776 +#: ../share/filters/filters.svg.h:1 msgid "Satiny and embossed contour effect" msgstr "Samtener und geprägter Kontureffekt" -#: ../share/filters/filters.svg.h:778 +#: ../share/filters/filters.svg.h:1 msgid "Sharp Deco" msgstr "Scharfe Deco" -#: ../share/filters/filters.svg.h:780 +#: ../share/filters/filters.svg.h:1 msgid "Unrealistic reflections with sharp edges" msgstr "Unrealistische Reflektionen mit scharfen Kanten" -#: ../share/filters/filters.svg.h:782 +#: ../share/filters/filters.svg.h:1 msgid "Deep Metal" msgstr "Dunkles Metall" -#: ../share/filters/filters.svg.h:784 +#: ../share/filters/filters.svg.h:1 msgid "Deep and dark metal shading" msgstr "Tiefe und dunkle Metallschattierung" -#: ../share/filters/filters.svg.h:786 +#: ../share/filters/filters.svg.h:1 msgid "Aluminium Emboss" msgstr "Aluminium geprägt" -#: ../share/filters/filters.svg.h:788 +#: ../share/filters/filters.svg.h:1 msgid "Satiny aluminium effect with embossing" msgstr "Seidiger Aluminium-Effekt mit Prägung" -#: ../share/filters/filters.svg.h:790 +#: ../share/filters/filters.svg.h:1 msgid "Refractive Glass" msgstr "Lichtbrechendes Glas" -#: ../share/filters/filters.svg.h:792 +#: ../share/filters/filters.svg.h:1 msgid "Double reflection through glass with some refraction" msgstr "Doppel-Reflektion durch Glas mit Brechung" -#: ../share/filters/filters.svg.h:794 +#: ../share/filters/filters.svg.h:1 msgid "Frosted Glass" msgstr "Gefrorenes Glas" -#: ../share/filters/filters.svg.h:796 +#: ../share/filters/filters.svg.h:1 msgid "Satiny glass effect" msgstr "Satin Glaseffekt" -#: ../share/filters/filters.svg.h:798 +#: ../share/filters/filters.svg.h:1 msgid "Bump Engraving" msgstr "StoĂź-Gravur" -#: ../share/filters/filters.svg.h:800 +#: ../share/filters/filters.svg.h:1 msgid "Carving emboss effect" msgstr "Geschnitzter Prägeeffekt" -#: ../share/filters/filters.svg.h:802 +#: ../share/filters/filters.svg.h:1 msgid "Chromolitho Alternate" msgstr "Chromolitho abwechselnd" -#: ../share/filters/filters.svg.h:804 +#: ../share/filters/filters.svg.h:1 msgid "Old chromolithographic effect" msgstr "Alter chromolithografischer Effekt" -#: ../share/filters/filters.svg.h:806 +#: ../share/filters/filters.svg.h:1 msgid "Convoluted Bump" msgstr "Gewundene Delle" -#: ../share/filters/filters.svg.h:808 +#: ../share/filters/filters.svg.h:1 msgid "Convoluted emboss effect" msgstr "Gewundener Prägeeffekt" -#: ../share/filters/filters.svg.h:810 +#: ../share/filters/filters.svg.h:1 msgid "Emergence" msgstr "Erscheinung" -#: ../share/filters/filters.svg.h:812 +#: ../share/filters/filters.svg.h:1 msgid "Cut out, add inner shadow and colorize some parts of an image" msgstr "" "Ausschneiden, inneren Schatten hinzufĂĽgen und einige Stellen des Bildes " "färben" -#: ../share/filters/filters.svg.h:814 +#: ../share/filters/filters.svg.h:1 msgid "Litho" msgstr "Lithografie" -#: ../share/filters/filters.svg.h:816 +#: ../share/filters/filters.svg.h:1 msgid "Create a two colors lithographic effect" msgstr "Erstellt einen zweifarbigen lithografischen Effekt" -#: ../share/filters/filters.svg.h:818 +#: ../share/filters/filters.svg.h:1 msgid "Paint Channels" msgstr "Farbkanäle" -#: ../share/filters/filters.svg.h:820 +#: ../share/filters/filters.svg.h:1 msgid "Colorize separately the three color channels" msgstr "Färbt die drei Farbkanäle separat" -#: ../share/filters/filters.svg.h:822 +#: ../share/filters/filters.svg.h:1 msgid "Posterized Light Eraser" msgstr "Posterisierender Helligkeitsradierer" -#: ../share/filters/filters.svg.h:824 +#: ../share/filters/filters.svg.h:1 msgid "Create a semi transparent posterized image" msgstr "Halbtransparentes posterisiertes Bild erstellen" -#: ../share/filters/filters.svg.h:826 +#: ../share/filters/filters.svg.h:1 msgid "Trichrome" msgstr "Trichrom" -#: ../share/filters/filters.svg.h:828 +#: ../share/filters/filters.svg.h:1 msgid "Like Duochrome but with three colors" msgstr "Wie Duochrome, aber mit drei Farben" -#: ../share/filters/filters.svg.h:830 +#: ../share/filters/filters.svg.h:1 msgid "Simulate CMY" msgstr "Simuliere CMY" -#: ../share/filters/filters.svg.h:832 +#: ../share/filters/filters.svg.h:1 msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" msgstr "Render Blau, Rot und Gelb-Kanäle mit einem colorierbaren Hintergrund" -#: ../share/filters/filters.svg.h:834 +#: ../share/filters/filters.svg.h:1 msgid "Contouring table" msgstr "Formgebender Tisch" -#: ../share/filters/filters.svg.h:836 +#: ../share/filters/filters.svg.h:1 msgid "Blurred multiple contours for objects" msgstr "Verschwommene multiple Konturen fĂĽr Objekte" -#: ../share/filters/filters.svg.h:838 +#: ../share/filters/filters.svg.h:1 msgid "Posterized Blur" msgstr "Posterisiertes Verwischen" -#: ../share/filters/filters.svg.h:840 +#: ../share/filters/filters.svg.h:1 msgid "Converts blurred contour to posterized steps" msgstr "Konvertiert verschwimmende Kontur in posterisierende Schritte" # Zeit korrekt? -#: ../share/filters/filters.svg.h:842 +#: ../share/filters/filters.svg.h:1 msgid "Contouring discrete" msgstr "Diskrete Konturen" -#: ../share/filters/filters.svg.h:844 +#: ../share/filters/filters.svg.h:1 msgid "Sharp multiple contour for objects" msgstr "Scharfe multiple Konturen fĂĽr Objekte" @@ -3348,3457 +3268,1743 @@ msgstr "Stoff (Bitmap" msgid "Old paint (bitmap)" msgstr "Alte Farbe (Bitmap)" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:2 -msgctxt "Symbol" -msgid "AIGA Symbol Signs" +#: ../src/arc-context.cpp:265 +msgid "" +"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" +"Strg: Kreis oder Ellipse mit ganzzahligem Höhen-/Breitenverhältnis " +"erzeugen, Winkel vom Bogen/Kreissegment einrasten" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 -msgctxt "Symbol" -msgid "Telephone" -msgstr "" +#: ../src/arc-context.cpp:266 ../src/rect-context.cpp:293 +msgid "Shift: draw around the starting point" +msgstr "Umschalt: Um Mittelpunkt zeichnen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 -msgctxt "Symbol" -msgid "Mail" +#: ../src/arc-context.cpp:435 +#, c-format +msgid "" +"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " +"to draw around the starting point" msgstr "" +"Ellipse: %s × %s (festes Achsenverhältnis %d:%d); Umschalt zeichnet um Startpunkt" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 -msgctxt "Symbol" -msgid "Currency Exchange" +#: ../src/arc-context.cpp:437 +#, c-format +msgid "" +"Ellipse: %s × %s; with Ctrl to make square or integer-" +"ratio ellipse; with Shift to draw around the starting point" msgstr "" +"Ellipse: %s × %s; Strg drĂĽcken fĂĽr ganzzahliges " +"Verhältnis der Radien; Umschalt zeichnet um Startpunkt" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 -msgctxt "Symbol" -msgid "Currency Exchange - Euro" -msgstr "" +#: ../src/arc-context.cpp:460 +msgid "Create ellipse" +msgstr "Ellipse erzeugen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 -msgctxt "Symbol" -msgid "Cashier" -msgstr "" +#: ../src/box3d-context.cpp:375 ../src/box3d-context.cpp:382 +#: ../src/box3d-context.cpp:389 ../src/box3d-context.cpp:396 +#: ../src/box3d-context.cpp:403 ../src/box3d-context.cpp:410 +msgid "Change perspective (angle of PLs)" +msgstr "Perspektive ändern (Winkel der Perspektivlinien)" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 -msgctxt "Symbol" -msgid "First Aid" -msgstr "" +#. status text +#: ../src/box3d-context.cpp:588 +msgid "3D Box; with Shift to extrude along the Z axis" +msgstr "3D Box; Umschalt um in Z-Richtung zu vergrößern" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 -msgctxt "Symbol" -msgid "Lost and Found" -msgstr "" +#: ../src/box3d-context.cpp:614 +msgid "Create 3D box" +msgstr "3D-Quader erzeugen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 -msgctxt "Symbol" -msgid "Coat Check" -msgstr "" +#. 3D box +#: ../src/box3d.cpp:259 ../src/box3d.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 +msgid "3D Box" +msgstr "3D-Box" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 -msgctxt "Symbol" -msgid "Baggage Lockers" -msgstr "" +#: ../src/color-profile.cpp:850 +#, c-format +msgid "Color profiles directory (%s) is unavailable." +msgstr "Verzeichnis der Farbprofile (%s) nicht auffindbar." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 -msgctxt "Symbol" -msgid "Escalator" -msgstr "" +#: ../src/color-profile.cpp:909 ../src/color-profile.cpp:926 +msgid "(invalid UTF-8 string)" +msgstr "(ungĂĽltiger UTF-8 string)" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 -msgctxt "Symbol" -msgid "Escalator Down" -msgstr "" +# CHECK +#: ../src/color-profile.cpp:911 ../src/filter-enums.cpp:94 +#: ../src/live_effects/lpe-ruler.cpp:32 +#: ../src/ui/dialog/filter-effects-dialog.cpp:518 +#: ../src/ui/dialog/inkscape-preferences.cpp:332 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 +#: ../src/ui/dialog/inkscape-preferences.cpp:1821 +#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 +#: ../src/ui/dialog/input.cpp:1571 ../src/ui/dialog/input.cpp:1625 +#: ../src/verbs.cpp:2352 ../src/widgets/gradient-toolbar.cpp:1129 +#: ../src/widgets/pencil-toolbar.cpp:184 +#: ../src/widgets/stroke-marker-selector.cpp:388 +#: ../share/extensions/gcodetools_area.inx.h:48 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +#: ../share/extensions/grid_polar.inx.h:4 ../share/extensions/scour.inx.h:18 +msgid "None" +msgstr "Keine" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 -msgctxt "Symbol" -msgid "Escalator Up" -msgstr "" +#: ../src/connector-context.cpp:544 +msgid "Creating new connector" +msgstr "Einen neuen Objektverbinder erzeugen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 -msgctxt "Symbol" -msgid "Stairs" -msgstr "" +#: ../src/connector-context.cpp:799 +msgid "Connector endpoint drag cancelled." +msgstr "Ziehen von Verbinder-Endpunkten abgebrochen." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 -msgctxt "Symbol" -msgid "Stairs Down" -msgstr "" +#: ../src/connector-context.cpp:846 +msgid "Reroute connector" +msgstr "Objektverbinder neu verlegen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 -msgctxt "Symbol" -msgid "Stairs Up" -msgstr "" +#: ../src/connector-context.cpp:1013 +msgid "Create connector" +msgstr "Objektverbinder erzeugen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 -msgctxt "Symbol" -msgid "Elevator" -msgstr "" +# !!! +#: ../src/connector-context.cpp:1036 +msgid "Finishing connector" +msgstr "Beende Objektverbinder" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 -msgctxt "Symbol" -msgid "Toilets - Men" +#: ../src/connector-context.cpp:1272 +msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" +"Objektverbinder-Endpunkt: ziehen, um neu zu verlegen oder mit neuen " +"Formen zu verbinden" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 -msgctxt "Symbol" -msgid "Toilets - Women" -msgstr "" +#: ../src/connector-context.cpp:1412 +msgid "Select at least one non-connector object." +msgstr "Mindestens ein Objekt auswählen, das kein Objektverbinder ist." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 -msgctxt "Symbol" -msgid "Toilets" -msgstr "" +#: ../src/connector-context.cpp:1417 ../src/widgets/connector-toolbar.cpp:326 +msgid "Make connectors avoid selected objects" +msgstr "Objektverbinder weichen den ausgewählten Objekten aus" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 -#: ../share/symbols/symbols.h:223 -msgctxt "Symbol" -msgid "Nursery" -msgstr "" +#: ../src/connector-context.cpp:1418 ../src/widgets/connector-toolbar.cpp:336 +msgid "Make connectors ignore selected objects" +msgstr "Objektverbinder ignorieren die ausgewählten Objekte" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 -msgctxt "Symbol" -msgid "Drinking Fountain" +#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 +msgid "Current layer is hidden. Unhide it to be able to draw on it." msgstr "" +"Aktuelle Ebene ist ausgeblendet. Sichtbar schalten, um darauf zu " +"zeichnen." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 -msgctxt "Symbol" -msgid "Waiting Room" -msgstr "" +#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 +msgid "Current layer is locked. Unlock it to be able to draw on it." +msgstr "Aktuelle Ebene ist gesperrt. Entsperren, um darauf zu zeichnen." -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 -#: ../share/symbols/symbols.h:304 -msgctxt "Symbol" -msgid "Information" -msgstr "" +#: ../src/desktop.cpp:925 +msgid "No previous zoom." +msgstr "Kein vorheriger Zoomfaktor." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 -msgctxt "Symbol" -msgid "Hotel Information" -msgstr "" +#: ../src/desktop.cpp:946 +msgid "No next zoom." +msgstr "Kein nächster Zoomfaktor." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 -msgctxt "Symbol" -msgid "Air Transportation" -msgstr "" +#: ../src/desktop-events.cpp:225 +msgid "Create guide" +msgstr "FĂĽhrungslinie erzeugen" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 -#: ../share/symbols/symbols.h:314 -msgctxt "Symbol" -msgid "Heliport" -msgstr "" +#: ../src/desktop-events.cpp:470 +msgid "Move guide" +msgstr "FĂĽhrungslinie verschieben" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 -#: ../share/symbols/symbols.h:310 -msgctxt "Symbol" -msgid "Taxi" -msgstr "" +#: ../src/desktop-events.cpp:477 ../src/desktop-events.cpp:535 +#: ../src/ui/dialog/guides.cpp:144 +msgid "Delete guide" +msgstr "FĂĽhrungslinie löschen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 -msgctxt "Symbol" -msgid "Bus" -msgstr "" +#: ../src/desktop-events.cpp:515 +#, c-format +msgid "Guideline: %s" +msgstr "FĂĽhrungslinie: %s" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 -msgctxt "Symbol" -msgid "Ground Transportation" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 +msgid "Grid _units:" +msgstr "Gitter-Raster_einheiten:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 -msgctxt "Symbol" -msgid "Rail Transportation" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +msgid "_Origin X:" +msgstr "_Ursprung X:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 -msgctxt "Symbol" -msgid "Water Transportation" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:735 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +msgid "X coordinate of grid origin" +msgstr "X-Koordinate des Gitterursprungs" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 -#: ../share/symbols/symbols.h:312 -msgctxt "Symbol" -msgid "Car Rental" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +msgid "O_rigin Y:" +msgstr "U_rsprung Y:" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 -#: ../share/symbols/symbols.h:224 -msgctxt "Symbol" -msgid "Restaurant" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Y coordinate of grid origin" +msgstr "Y-Koordinate des Gitterursprungs" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 -msgctxt "Symbol" -msgid "Coffeeshop" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 +msgid "Spacing _Y:" +msgstr "Abstand _Y:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 -msgctxt "Symbol" -msgid "Bar" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:323 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Base length of z-axis" +msgstr "Basislänge der Z-Achse" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 -msgctxt "Symbol" -msgid "Shops" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +#: ../src/widgets/box3d-toolbar.cpp:315 +msgid "Angle X:" +msgstr "Winkel X:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 -msgctxt "Symbol" -msgid "Barber Shop - Beauty Salon" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +msgid "Angle of x-axis" +msgstr "Winkel der X-Achse" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 -msgctxt "Symbol" -msgid "Barber Shop" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/widgets/box3d-toolbar.cpp:394 +msgid "Angle Z:" +msgstr "Winkel Z:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 -msgctxt "Symbol" -msgid "Beauty Salon" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:768 +msgid "Angle of z-axis" +msgstr "Winkel der Z-Achse" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 -msgctxt "Symbol" -msgid "Ticket Purchase" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Minor grid line _color:" +msgstr "Nebengitter-Linienfarbe:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 -msgctxt "Symbol" -msgid "Baggage Check In" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:719 +msgid "Minor grid line color" +msgstr "Nebengitter-Linienfarbe:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 -msgctxt "Symbol" -msgid "Baggage Claim" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Color of the minor grid lines" +msgstr "Farbe der Nebengitterlinien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 -msgctxt "Symbol" -msgid "Customs" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +msgid "Ma_jor grid line color:" +msgstr "Farbe der _dicken Gitterlinien:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 -msgctxt "Symbol" -msgid "Immigration" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 +msgid "Major grid line color" +msgstr "Farbe der dicken Gitterlinien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 -msgctxt "Symbol" -msgid "Departing Flights" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 +msgid "Color of the major (highlighted) grid lines" +msgstr "Farbe der dicken (hervorgehobenen) Gitterlinien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 -msgctxt "Symbol" -msgid "Arriving Flights" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "_Major grid line every:" +msgstr "D_icke Gitterlinien alle:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 -msgctxt "Symbol" -msgid "Smoking" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "lines" +msgstr "Linien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 -msgctxt "Symbol" -msgid "No Smoking" -msgstr "" +#: ../src/display/canvas-grid.cpp:63 +msgid "Rectangular grid" +msgstr "Rechteckiges Gitter" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:99 ../share/symbols/symbols.h:100 -#: ../share/symbols/symbols.h:321 -msgctxt "Symbol" -msgid "Parking" -msgstr "" +#: ../src/display/canvas-grid.cpp:64 +msgid "Axonometric grid" +msgstr "Axonometrisches Gitter" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 -msgctxt "Symbol" -msgid "No Parking" -msgstr "" +#: ../src/display/canvas-grid.cpp:275 +msgid "Create new grid" +msgstr "Neues Gitter erzeugen" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 -msgctxt "Symbol" -msgid "No Dogs" -msgstr "" +#: ../src/display/canvas-grid.cpp:341 +msgid "_Enabled" +msgstr "_Eingeschaltet" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 -msgctxt "Symbol" -msgid "No Entry" +#: ../src/display/canvas-grid.cpp:342 +msgid "" +"Determines whether to snap to this grid or not. Can be 'on' for invisible " +"grids." msgstr "" +"Legt fest, ob an diesem Raster eingerastet werden soll. Kann auch fĂĽr " +"unsichtbare Gitter gesetzt sein." -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 -#: ../share/symbols/symbols.h:214 -msgctxt "Symbol" -msgid "Exit" -msgstr "" +#: ../src/display/canvas-grid.cpp:346 +msgid "Snap to visible _grid lines only" +msgstr "Nur an sichtbaren _Gitternlinien einrasten" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 -msgctxt "Symbol" -msgid "Fire Extinguisher" +#: ../src/display/canvas-grid.cpp:347 +msgid "" +"When zoomed out, not all grid lines will be displayed. Only the visible ones " +"will be snapped to" msgstr "" +"Nicht alle Gitterlinien werden dargestellt, wenn stark heraus gezoomt wird. " +"Nur auf Sichtbare wird eingerastet." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 -msgctxt "Symbol" -msgid "Right Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:351 +msgid "_Visible" +msgstr "Sichtbar" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 -msgctxt "Symbol" -msgid "Forward and Right Arrow" +#: ../src/display/canvas-grid.cpp:352 +msgid "" +"Determines whether the grid is displayed or not. Objects are still snapped " +"to invisible grids." msgstr "" +"Legt fest, ob das Raster angezeigt werden soll. Objekte rasten auch an " +"unsichtbaren Gittern ein." -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 -msgctxt "Symbol" -msgid "Up Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:699 +msgid "Spacing _X:" +msgstr "Abstand _X:" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 -msgctxt "Symbol" -msgid "Forward and Left Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +msgid "Distance between vertical grid lines" +msgstr "Abstand der vertikalen Gitterlinien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 -msgctxt "Symbol" -msgid "Left Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:742 +msgid "Distance between horizontal grid lines" +msgstr "Abstand der horizontalen Gitterlinien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 -msgctxt "Symbol" -msgid "Left and Down Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:732 +msgid "_Show dots instead of lines" +msgstr "Zeige Punkte anstatt Linien" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 -msgctxt "Symbol" -msgid "Down Arrow" -msgstr "" +#: ../src/display/canvas-grid.cpp:733 +msgid "If set, displays dots at gridpoints instead of gridlines" +msgstr "Wenn gesetzt, Punkte an Gitterpunkten anstelle Gitterlinien verwenden" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 -msgctxt "Symbol" -msgid "Right and Down Arrow" -msgstr "" +#. TRANSLATORS: undefined target for snapping +#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 +#: ../src/display/snap-indicator.cpp:179 ../src/display/snap-indicator.cpp:182 +msgid "UNDEFINED" +msgstr "UNBESTIMMT" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible - 1996" -msgstr "" +#: ../src/display/snap-indicator.cpp:78 +msgid "grid line" +msgstr "Gitternetzlinie" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible" -msgstr "" +#: ../src/display/snap-indicator.cpp:81 +msgid "grid intersection" +msgstr "Gitter-Ăśberschneidung" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 -msgctxt "Symbol" -msgid "New Wheelchair Accessible" -msgstr "" +#: ../src/display/snap-indicator.cpp:84 +msgid "grid line (perpendicular)" +msgstr "Gitterlinie (Senkrechte)" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:133 -msgctxt "Symbol" -msgid "Word Balloons" -msgstr "" +#: ../src/display/snap-indicator.cpp:87 +msgid "guide" +msgstr "FĂĽhrungslinie" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:134 -msgctxt "Symbol" -msgid "Thought Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:90 +msgid "guide intersection" +msgstr "Gitter-Ăśberschneidung" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:135 -msgctxt "Symbol" -msgid "Dream Speaking" -msgstr "" +#: ../src/display/snap-indicator.cpp:93 +msgid "guide origin" +msgstr "FĂĽhrungslinienursprung" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:136 -msgctxt "Symbol" -msgid "Rounded Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:96 +msgid "guide (perpendicular)" +msgstr "FĂĽhrungslinie (Senkrechte)" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:137 -msgctxt "Symbol" -msgid "Squared Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:99 +msgid "grid-guide intersection" +msgstr "Gitter-FĂĽhrungslinien-Ăśberschneidung" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:138 -msgctxt "Symbol" -msgid "Over the Phone" -msgstr "" +#: ../src/display/snap-indicator.cpp:102 +msgid "cusp node" +msgstr "spitzer Knoten" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:139 -msgctxt "Symbol" -msgid "Hip Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:105 +msgid "smooth node" +msgstr "weicher Knoten" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:140 -msgctxt "Symbol" -msgid "Circle Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:108 +msgid "path" +msgstr "Pfad" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:141 -msgctxt "Symbol" -msgid "Exclaim Balloon" -msgstr "" +#: ../src/display/snap-indicator.cpp:111 +msgid "path (perpendicular)" +msgstr "Pfad (Senkrechte)" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:142 -msgctxt "Symbol" -msgid "Flow Chart Shapes" -msgstr "" +#: ../src/display/snap-indicator.cpp:114 +msgid "path (tangential)" +msgstr "Pfad (tangential)" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:143 -msgctxt "Symbol" -msgid "Process" -msgstr "" +#: ../src/display/snap-indicator.cpp:117 +msgid "path intersection" +msgstr "PfadĂĽberschneidung" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:144 -msgctxt "Symbol" -msgid "Predefined Process" -msgstr "" +#: ../src/display/snap-indicator.cpp:120 +msgid "guide-path intersection" +msgstr "FĂĽhrungslinie-Pfad-Ăśberschneidung" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:145 -msgctxt "Symbol" -msgid "Alternate Process" -msgstr "" +#: ../src/display/snap-indicator.cpp:123 +msgid "clip-path" +msgstr "Ausschneidungspfad" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:146 -msgctxt "Symbol" -msgid "Extract" -msgstr "" +#: ../src/display/snap-indicator.cpp:126 +msgid "mask-path" +msgstr "Maskenpfad" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:147 -msgctxt "Symbol" -msgid "Manual Input" -msgstr "" +#: ../src/display/snap-indicator.cpp:129 +msgid "bounding box corner" +msgstr "Ecken der Umrandungsbox" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:148 -msgctxt "Symbol" -msgid "Merge" -msgstr "" +#: ../src/display/snap-indicator.cpp:132 +msgid "bounding box side" +msgstr "Seite der Umrandungsbox" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:149 -msgctxt "Symbol" -msgid "Delay" -msgstr "" +#: ../src/display/snap-indicator.cpp:135 +msgid "page border" +msgstr "Seitenrand" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:150 -msgctxt "Symbol" -msgid "Data I/O" -msgstr "" +#: ../src/display/snap-indicator.cpp:138 +msgid "line midpoint" +msgstr "Linienmittelpunkt" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:151 -msgctxt "Symbol" -msgid "Internal Storage" -msgstr "" +#: ../src/display/snap-indicator.cpp:141 +msgid "object midpoint" +msgstr "Objektmittelpunkt" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:152 -msgctxt "Symbol" -msgid "Card" -msgstr "" +#: ../src/display/snap-indicator.cpp:144 +msgid "object rotation center" +msgstr "Objekt-Rotationszentrum" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:153 -msgctxt "Symbol" -msgid "Document" -msgstr "" +#: ../src/display/snap-indicator.cpp:147 +msgid "bounding box side midpoint" +msgstr "Mitte der Umrandungslinie" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:154 -msgctxt "Symbol" -msgid "Direct Access Storage" -msgstr "" +#: ../src/display/snap-indicator.cpp:150 +msgid "bounding box midpoint" +msgstr "Mittelpunkt der Umrandung" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:155 -msgctxt "Symbol" -msgid "Stored Data" -msgstr "" +#: ../src/display/snap-indicator.cpp:153 +msgid "page corner" +msgstr "Seitenecke" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:156 -msgctxt "Symbol" -msgid "Magnetic Disk (Database)" -msgstr "" +#: ../src/display/snap-indicator.cpp:156 +msgid "quadrant point" +msgstr "Viertelkreis-Punkt" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:157 -msgctxt "Symbol" -msgid "Punched Tape" -msgstr "" +#: ../src/display/snap-indicator.cpp:160 +msgid "corner" +msgstr "Ecken" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:158 -msgctxt "Symbol" -msgid "Terminator" -msgstr "" +#: ../src/display/snap-indicator.cpp:163 +msgid "text anchor" +msgstr "Textanker" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:159 -msgctxt "Symbol" -msgid "Thick Arrow" -msgstr "" +#: ../src/display/snap-indicator.cpp:166 +msgid "text baseline" +msgstr "Text-Grundlinie" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:160 -msgctxt "Symbol" -msgid "Transfer" -msgstr "" +#: ../src/display/snap-indicator.cpp:169 +msgid "constrained angle" +msgstr "abhöängiger Winkel" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:161 -msgctxt "Symbol" -msgid "Decision" -msgstr "" +#: ../src/display/snap-indicator.cpp:172 +msgid "constraint" +msgstr "erzwungen" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:162 -msgctxt "Symbol" -msgid "Flow Arrow" -msgstr "" +#: ../src/display/snap-indicator.cpp:185 +msgid "Bounding box corner" +msgstr "Ecken der Umrandungsbox" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:163 -msgctxt "Symbol" -msgid "Circle Arrow" -msgstr "" +#: ../src/display/snap-indicator.cpp:188 +msgid "Bounding box midpoint" +msgstr "Mittelpunkt der Umrandung" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:164 -msgctxt "Symbol" -msgid "Off-Page Connector" -msgstr "" +#: ../src/display/snap-indicator.cpp:191 +msgid "Bounding box side midpoint" +msgstr "Mitte der Umrandungslinie" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:165 -msgctxt "Symbol" -msgid "Connector" -msgstr "" +#: ../src/display/snap-indicator.cpp:194 ../src/ui/tool/node.cpp:1315 +msgid "Smooth node" +msgstr "glatter Knoten" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:166 -msgctxt "Symbol" -msgid "Logical Or" -msgstr "" +#: ../src/display/snap-indicator.cpp:197 ../src/ui/tool/node.cpp:1314 +msgid "Cusp node" +msgstr "Spitzer Knoten" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:167 -msgctxt "Symbol" -msgid "Logical And" -msgstr "" +#: ../src/display/snap-indicator.cpp:200 +msgid "Line midpoint" +msgstr "Linienmittelpunkt" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:168 -msgctxt "Symbol" -msgid "Manual Operation" -msgstr "" +#: ../src/display/snap-indicator.cpp:203 +msgid "Object midpoint" +msgstr "Objektmittelpunkt" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:169 -msgctxt "Symbol" -msgid "Preparation" -msgstr "" +#: ../src/display/snap-indicator.cpp:206 +msgid "Object rotation center" +msgstr "Objekt-Rotationszentrum" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:170 -msgctxt "Symbol" -msgid "Display" -msgstr "" +#: ../src/display/snap-indicator.cpp:210 +msgid "Handle" +msgstr "Anfasser" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:171 -msgctxt "Symbol" -msgid "Sort" -msgstr "" +#: ../src/display/snap-indicator.cpp:213 +msgid "Path intersection" +msgstr "PfadĂĽberschneidung" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:172 -msgctxt "Symbol" -msgid "Collate" -msgstr "" +#: ../src/display/snap-indicator.cpp:216 +msgid "Guide" +msgstr "FĂĽhrungslinien" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:173 -msgctxt "Symbol" -msgid "Logic Symbols" -msgstr "" +#: ../src/display/snap-indicator.cpp:219 +msgid "Guide origin" +msgstr "FĂĽhrungslinienursprung" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:174 -msgctxt "Symbol" -msgid "Xnor Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:222 +msgid "Convex hull corner" +msgstr "Konvexe HĂĽlllinienecke" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:175 -msgctxt "Symbol" -msgid "Xor Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:225 +msgid "Quadrant point" +msgstr "Quadrantenpunkt" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:176 -msgctxt "Symbol" -msgid "Nor Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:229 +msgid "Corner" +msgstr "Ecken" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:177 -msgctxt "Symbol" -msgid "Or Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:232 +msgid "Text anchor" +msgstr "Text-anker" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:178 -msgctxt "Symbol" -msgid "Nand Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:235 +msgid "Multiple of grid spacing" +msgstr "Mehrfaches der Gitterweite" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:179 -msgctxt "Symbol" -msgid "And Gate" -msgstr "" +#: ../src/display/snap-indicator.cpp:266 +msgid " to " +msgstr " an " -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:180 -msgctxt "Symbol" -msgid "Buffer" -msgstr "" +#: ../src/document.cpp:507 +#, c-format +msgid "New document %d" +msgstr "Neues Dokument %d" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:181 -msgctxt "Symbol" -msgid "Not Gate" -msgstr "" +#: ../src/document.cpp:512 +#, fuzzy, c-format +msgid "Memory document %d" +msgstr "Dokument im Speicher %1" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:182 -msgctxt "Symbol" -msgid "Buffer Small" -msgstr "" +#: ../src/document.cpp:541 +msgid "Memory document %1" +msgstr "Dokument im Speicher %1" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:183 -msgctxt "Symbol" -msgid "Not Gate Small" -msgstr "" +#: ../src/document.cpp:752 +#, c-format +msgid "Unnamed document %d" +msgstr "Unbenanntes Dokument %d" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:184 -msgctxt "Symbol" -msgid "Map Symbols" -msgstr "" +#. We hit green anchor, closing Green-Blue-Red +#: ../src/draw-context.cpp:490 +msgid "Path is closed." +msgstr "Pfad ist geschlossen." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:185 -msgctxt "Symbol" -msgid "Bed and Breakfast" -msgstr "" +#. We hit bot start and end of single curve, closing paths +#: ../src/draw-context.cpp:505 +msgid "Closing path." +msgstr "Pfad schlieĂźen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:186 -msgctxt "Symbol" -msgid "Youth Hostel" -msgstr "" +#: ../src/draw-context.cpp:607 +msgid "Draw path" +msgstr "Pfad zeichnen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:187 -msgctxt "Symbol" -msgid "Shelter" -msgstr "" +#: ../src/draw-context.cpp:764 +msgid "Creating single dot" +msgstr "Erzeuge einzelnen Punkt" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:188 -msgctxt "Symbol" -msgid "Motel" -msgstr "" +#: ../src/draw-context.cpp:765 +msgid "Create single dot" +msgstr "Einen einzelnen Punkt erzeugen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:189 -msgctxt "Symbol" -msgid "Hotel" -msgstr "" +#. alpha of color under cursor, to show in the statusbar +#. locale-sensitive printf is OK, since this goes to the UI, not into SVG +#: ../src/dropper-context.cpp:279 +#, c-format +msgid " alpha %.3g" +msgstr " Alpha %.3g" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:190 -msgctxt "Symbol" -msgid "Hostel" -msgstr "" +#. where the color is picked, to show in the statusbar +#: ../src/dropper-context.cpp:281 +#, c-format +msgid ", averaged with radius %d" +msgstr ", gemittelt mit Radius %d" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:191 -msgctxt "Symbol" -msgid "Chalet" -msgstr "" +#: ../src/dropper-context.cpp:281 +msgid " under cursor" +msgstr " unter Zeiger" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:192 -msgctxt "Symbol" -msgid "Caravan Park" -msgstr "" +#. message, to show in the statusbar +#: ../src/dropper-context.cpp:283 +msgid "Release mouse to set color." +msgstr "Maustaste loslassen, um die Farbe zu ĂĽbernehmen." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:193 -msgctxt "Symbol" -msgid "Camping" +#: ../src/dropper-context.cpp:283 ../src/tools-switch.cpp:108 +msgid "" +"Click to set fill, Shift+click to set stroke; drag to " +"average color in area; with Alt to pick inverse color; Ctrl+C " +"to copy the color under mouse to clipboard" msgstr "" +"Klick setzt FĂĽllfarbe, Umschalt+Klick setzt Linienfarbe; " +"Ziehen - Durchschnittsfarbe im Gebiet. Strg+C - Farbe nach " +"Zwischenablage" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:194 -msgctxt "Symbol" -msgid "Alpine Hut" -msgstr "" +#: ../src/dropper-context.cpp:331 +msgid "Set picked color" +msgstr "Ăśbernommene Farbe setzen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:195 -msgctxt "Symbol" -msgid "Bench or Park" +#: ../src/dyna-draw-context.cpp:539 +msgid "" +"Guide path selected; start drawing along the guide with Ctrl" msgstr "" +"FĂĽhrungspfad ausgewählt; starte Zeichnen entlang der FĂĽhrung mit " +"Strg" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:196 -msgctxt "Symbol" -msgid "Playground" -msgstr "" +#: ../src/dyna-draw-context.cpp:541 +msgid "Select a guide path to track with Ctrl" +msgstr "FĂĽhrungspfad auswählen mit Ctrl" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:197 -msgctxt "Symbol" -msgid "Fountain" -msgstr "" +#: ../src/dyna-draw-context.cpp:676 +msgid "Tracking: connection to guide path lost!" +msgstr "Verfolgen: Verbindung zum FĂĽhrungspfad verloren!" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:198 -msgctxt "Symbol" -msgid "Library" -msgstr "" +#: ../src/dyna-draw-context.cpp:676 +msgid "Tracking a guide path" +msgstr "Verfolge einen FĂĽhrungspfad" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:199 -msgctxt "Symbol" -msgid "Town Hall" -msgstr "" +#: ../src/dyna-draw-context.cpp:679 +msgid "Drawing a calligraphic stroke" +msgstr "Zeichne einen kalligrafischen Strich" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:200 -msgctxt "Symbol" -msgid "Court" -msgstr "" +#: ../src/dyna-draw-context.cpp:980 +msgid "Draw calligraphic stroke" +msgstr "Kalligrafischen Strich zeichnen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:201 -msgctxt "Symbol" -msgid "Fire Station / House" -msgstr "" +#: ../src/eraser-context.cpp:433 +msgid "Drawing an eraser stroke" +msgstr "Zeichne Löschstrich" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:202 -msgctxt "Symbol" -msgid "Police Station" -msgstr "" +#: ../src/eraser-context.cpp:766 +msgid "Draw eraser stroke" +msgstr "Radierer-Pfad zeichnen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:203 -msgctxt "Symbol" -msgid "Prison" -msgstr "" +#: ../src/event-context.cpp:708 +msgid "Space+mouse move to pan canvas" +msgstr "Leertaste+Mausziehen um die Leinwand zu verschieben" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:204 -msgctxt "Symbol" -msgid "Post Office" -msgstr "" +#: ../src/event-log.cpp:37 +msgid "[Unchanged]" +msgstr "[Unverändert]" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:205 -msgctxt "Symbol" -msgid "Public Building" -msgstr "" +#. Edit +#: ../src/event-log.cpp:275 ../src/event-log.cpp:278 ../src/verbs.cpp:2390 +msgid "_Undo" +msgstr "_RĂĽckgängig" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:206 -msgctxt "Symbol" -msgid "Recycling" -msgstr "" +#: ../src/event-log.cpp:285 ../src/event-log.cpp:289 ../src/verbs.cpp:2392 +msgid "_Redo" +msgstr "_Wiederherstellen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:207 -msgctxt "Symbol" -msgid "Survey Point" -msgstr "" +#: ../src/extension/dependency.cpp:235 +msgid "Dependency:" +msgstr "Abhängigkeit:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:208 -msgctxt "Symbol" -msgid "Toll Booth" -msgstr "" +#: ../src/extension/dependency.cpp:236 +msgid " type: " +msgstr " Typ: " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:209 -msgctxt "Symbol" -msgid "Lift Gate" -msgstr "" +#: ../src/extension/dependency.cpp:237 +msgid " location: " +msgstr " Speicherort: " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:210 -msgctxt "Symbol" -msgid "Steps" -msgstr "" +#: ../src/extension/dependency.cpp:238 +msgid " string: " +msgstr " Zeichenkette: " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:211 -msgctxt "Symbol" -msgid "Stile" -msgstr "" +#: ../src/extension/dependency.cpp:241 +msgid " description: " +msgstr " Beschreibung: " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:212 -msgctxt "Symbol" -msgid "Kissing Gate" -msgstr "" +#: ../src/extension/effect.cpp:41 +msgid " (No preferences)" +msgstr " (Keine Einstellungen)" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:213 -msgctxt "Symbol" -msgid "Gate" -msgstr "" +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2163 +msgid "Extensions" +msgstr "Erweiterungen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:215 -msgctxt "Symbol" -msgid "Entrance" +#. This is some filler text, needs to change before relase +#: ../src/extension/error-file.cpp:52 +msgid "" +"One or more extensions failed to load\n" +"\n" +"The failed extensions have been skipped. Inkscape will continue to run " +"normally but those extensions will be unavailable. For details to " +"troubleshoot this problem, please refer to the error log located at: " msgstr "" +"Eine oder mehrere Erweiterungen " +"konnten nicht geladen werden.\n" +"\n" +"Nicht verfĂĽgbare Eweiterungen wurden ausgelassen. Inkscape setzt seinen " +"normalen Ablauf fort, doch diese Erweiterungen können nicht benutzt werden. " +"Details zum Beheben des Problems finden sich in der Logdatei unter: " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:216 -msgctxt "Symbol" -msgid "Cycle Barrier" -msgstr "" +#: ../src/extension/error-file.cpp:66 +msgid "Show dialog on startup" +msgstr "Dialog beim Starten des Programmes anzeigen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:217 -msgctxt "Symbol" -msgid "Cattle Grid" -msgstr "" +#: ../src/extension/execution-env.cpp:144 +#, c-format +msgid "'%s' working, please wait..." +msgstr "»%s« arbeitet, bitte warten…" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:218 -msgctxt "Symbol" -msgid "Bollard" +#. static int i = 0; +#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; +#: ../src/extension/extension.cpp:263 +msgid "" +" This is caused by an improper .inx file for this extension. An improper ." +"inx file could have been caused by a faulty installation of Inkscape." msgstr "" +" Dies wurde durch eine fehlerhafte .inx Datei dieser Erweiterung verursacht. " +"Eine fehlerhafte .inx Datei kann Folge einer Fehlinstallation von Inkscape " +"sein." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:219 -msgctxt "Symbol" -msgid "University" -msgstr "" +#: ../src/extension/extension.cpp:266 +msgid "an ID was not defined for it." +msgstr "hierfĂĽr keine ID definiert wurde." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:220 -msgctxt "Symbol" -msgid "High/Secondary School" -msgstr "" +#: ../src/extension/extension.cpp:270 +msgid "there was no name defined for it." +msgstr "hierfĂĽr kein Name definiert wurde." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:221 -msgctxt "Symbol" -msgid "School" -msgstr "" +#: ../src/extension/extension.cpp:274 +msgid "the XML description of it got lost." +msgstr "die zugehörige XML-Beschreibung nicht auffindbar ist." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:222 -msgctxt "Symbol" -msgid "Kindergarten" -msgstr "" +#: ../src/extension/extension.cpp:278 +msgid "no implementation was defined for the extension." +msgstr "fĂĽr diese Erweiterung keine Implementierung existiert." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:225 -msgctxt "Symbol" -msgid "Pub" -msgstr "" +#. std::cout << "Failed: " << *(_deps[i]) << std::endl; +#: ../src/extension/extension.cpp:285 +msgid "a dependency was not met." +msgstr "eine Abhängigkeit nicht aufgelöst werden konnte." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:226 -msgctxt "Symbol" -msgid "Desserts/Cakes Shop" -msgstr "" +#: ../src/extension/extension.cpp:305 +msgid "Extension \"" +msgstr "Erweiterung »" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:227 -msgctxt "Symbol" -msgid "Fast Food" -msgstr "" +#: ../src/extension/extension.cpp:305 +msgid "\" failed to load because " +msgstr "«: Laden fehlgeschlagen, da " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:228 -msgctxt "Symbol" -msgid "Public Tap/Water" -msgstr "" +#: ../src/extension/extension.cpp:654 +#, c-format +msgid "Could not create extension error log file '%s'" +msgstr "Fehlerprotokolldatei »%s« konnte nicht erweitert oder erzeugt werden." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:229 -msgctxt "Symbol" -msgid "Cafe" -msgstr "" +#: ../src/extension/extension.cpp:762 +#: ../share/extensions/webslicer_create_rect.inx.h:2 +msgid "Name:" +msgstr "Name:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:230 -msgctxt "Symbol" -msgid "Beer Garden" -msgstr "" +#: ../src/extension/extension.cpp:763 +msgid "ID:" +msgstr "Kennung:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:231 -msgctxt "Symbol" -msgid "Wine Bar" -msgstr "" +#: ../src/extension/extension.cpp:764 +msgid "State:" +msgstr "Status:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:232 -msgctxt "Symbol" -msgid "Opticians/Eye Doctors" -msgstr "" +#: ../src/extension/extension.cpp:764 +msgid "Loaded" +msgstr "Geladen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:233 -msgctxt "Symbol" -msgid "Dentist" -msgstr "" +#: ../src/extension/extension.cpp:764 +msgid "Unloaded" +msgstr "Nicht geladen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:234 -msgctxt "Symbol" -msgid "Veterinarian" -msgstr "" +#: ../src/extension/extension.cpp:764 +msgid "Deactivated" +msgstr "Deaktiviert" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:235 -msgctxt "Symbol" -msgid "Drugs Dispensary" +#: ../src/extension/extension.cpp:804 +msgid "" +"Currently there is no help available for this Extension. Please look on the " +"Inkscape website or ask on the mailing lists if you have questions regarding " +"this extension." msgstr "" +"FĂĽr diese Erweiterung ist zur Zeit keine Hilfe verfĂĽgbar. Besuchen Sie die " +"Inkscape Webseite oder wenden Sie sich an die Mailing List wenn Sie Fragen " +"bezĂĽglich dieser Erweiterung haben." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:236 -msgctxt "Symbol" -msgid "Pharmacy" +#: ../src/extension/implementation/script.cpp:1037 +msgid "" +"Inkscape has received additional data from the script executed. The script " +"did not return an error, but this may indicate the results will not be as " +"expected." msgstr "" +"Das aufgerufene Skript hat zusätzliche Daten an Inkscape ĂĽbergeben. Es wurde " +"keine Fehlermeldung vom Skript zurĂĽckgegeben, doch das Resultat ist " +"möglicherweise unbrauchbar." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:237 -msgctxt "Symbol" -msgid "Accident & Emergency" -msgstr "" +#: ../src/extension/init.cpp:296 +msgid "Null external module directory name. Modules will not be loaded." +msgstr "Modulverzeichnis ist nicht verfĂĽgbar. Module werden nicht geladen." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:238 -msgctxt "Symbol" -msgid "Hospital" +#: ../src/extension/init.cpp:310 +#: ../src/extension/internal/filter/filter-file.cpp:59 +#, c-format +msgid "" +"Modules directory (%s) is unavailable. External modules in that directory " +"will not be loaded." msgstr "" +"Das Modulverzeichnis (%s) ist nicht verfĂĽgbar. Externe Module in diesem " +"Verzeichnis werden nicht geladen." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:239 -msgctxt "Symbol" -msgid "Doctors" -msgstr "" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 +msgid "Adaptive Threshold" +msgstr "Adaptiver Schwellwert" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:240 -msgctxt "Symbol" -msgid "Scrub Land" -msgstr "" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 +#: ../src/extension/internal/bitmap/raise.cpp:42 +#: ../src/extension/internal/bitmap/sample.cpp:41 +#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/ui/dialog/object-attributes.cpp:68 +#: ../src/ui/dialog/object-attributes.cpp:76 +#: ../src/widgets/calligraphy-toolbar.cpp:447 +#: ../src/widgets/eraser-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:128 +#: ../src/widgets/tweak-toolbar.cpp:142 +#: ../share/extensions/foldablebox.inx.h:2 +msgid "Width:" +msgstr "Breite:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:241 -msgctxt "Symbol" -msgid "Swamp" -msgstr "" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 +#: ../src/extension/internal/bitmap/raise.cpp:43 +#: ../src/extension/internal/bitmap/sample.cpp:42 +#: ../src/ui/dialog/object-attributes.cpp:69 +#: ../src/ui/dialog/object-attributes.cpp:77 +#: ../share/extensions/foldablebox.inx.h:3 +msgid "Height:" +msgstr "Höhe:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:242 -msgctxt "Symbol" -msgid "Hills" -msgstr "" +#. Label +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 +#: ../src/widgets/gradient-toolbar.cpp:1173 +#: ../src/widgets/gradient-vector.cpp:926 +#: ../share/extensions/printing_marks.inx.h:12 +msgid "Offset:" +msgstr "Versatz:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:243 -msgctxt "Symbol" -msgid "Grass Land" -msgstr "" +# name des Effekte-submenĂĽ, das alle bitmap-effekte beinhält! +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 +#: ../src/extension/internal/bitmap/addNoise.cpp:58 +#: ../src/extension/internal/bitmap/blur.cpp:45 +#: ../src/extension/internal/bitmap/channel.cpp:64 +#: ../src/extension/internal/bitmap/charcoal.cpp:45 +#: ../src/extension/internal/bitmap/colorize.cpp:56 +#: ../src/extension/internal/bitmap/contrast.cpp:46 +#: ../src/extension/internal/bitmap/crop.cpp:75 +#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 +#: ../src/extension/internal/bitmap/despeckle.cpp:41 +#: ../src/extension/internal/bitmap/edge.cpp:43 +#: ../src/extension/internal/bitmap/emboss.cpp:45 +#: ../src/extension/internal/bitmap/enhance.cpp:40 +#: ../src/extension/internal/bitmap/equalize.cpp:40 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 +#: ../src/extension/internal/bitmap/implode.cpp:43 +#: ../src/extension/internal/bitmap/levelChannel.cpp:71 +#: ../src/extension/internal/bitmap/level.cpp:49 +#: ../src/extension/internal/bitmap/medianFilter.cpp:43 +#: ../src/extension/internal/bitmap/modulate.cpp:48 +#: ../src/extension/internal/bitmap/negate.cpp:41 +#: ../src/extension/internal/bitmap/normalize.cpp:41 +#: ../src/extension/internal/bitmap/oilPaint.cpp:43 +#: ../src/extension/internal/bitmap/opacity.cpp:44 +#: ../src/extension/internal/bitmap/raise.cpp:48 +#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 +#: ../src/extension/internal/bitmap/sample.cpp:46 +#: ../src/extension/internal/bitmap/shade.cpp:48 +#: ../src/extension/internal/bitmap/sharpen.cpp:45 +#: ../src/extension/internal/bitmap/solarize.cpp:45 +#: ../src/extension/internal/bitmap/spread.cpp:43 +#: ../src/extension/internal/bitmap/swirl.cpp:43 +#: ../src/extension/internal/bitmap/threshold.cpp:44 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 +#: ../src/extension/internal/bitmap/wave.cpp:45 +msgid "Raster" +msgstr "Raster" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:244 -msgctxt "Symbol" -msgid "Deciduous Forest" -msgstr "" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 +msgid "Apply adaptive thresholding to selected bitmap(s)" +msgstr "Wende adaptiven Schwellwert auf ausgewählte(s) Bitmap(s) an" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:245 -msgctxt "Symbol" -msgid "Mixed Forest" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:45 +msgid "Add Noise" +msgstr "Rauschen hinzufĂĽgen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:246 -msgctxt "Symbol" -msgid "Coniferous Forest" -msgstr "" +#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); +#: ../src/extension/internal/bitmap/addNoise.cpp:47 +#: ../src/extension/internal/filter/color.h:426 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/distort.h:69 +#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2627 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2706 +#: ../src/ui/dialog/object-attributes.cpp:49 +#: ../share/extensions/jessyInk_effects.inx.h:5 +#: ../share/extensions/jessyInk_export.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:5 +#: ../share/extensions/webslicer_create_rect.inx.h:14 +msgid "Type:" +msgstr "Type:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:247 -msgctxt "Symbol" -msgid "Church or Place of Worship" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:48 +msgid "Uniform Noise" +msgstr "Gleichmäßiges Rauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:248 -msgctxt "Symbol" -msgid "Bank" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:49 +msgid "Gaussian Noise" +msgstr "GauĂźsches Rauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:249 -msgctxt "Symbol" -msgid "Power Lines" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:50 +msgid "Multiplicative Gaussian Noise" +msgstr "Multiplikatives GauĂźsches Rauschen " -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:250 -msgctxt "Symbol" -msgid "Watch Tower" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:51 +msgid "Impulse Noise" +msgstr "Störungsrauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:251 -msgctxt "Symbol" -msgid "Transmitter" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:52 +msgid "Laplacian Noise" +msgstr "Laplace-Rauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:252 -msgctxt "Symbol" -msgid "Village" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:53 +msgid "Poisson Noise" +msgstr "Schrotrauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:253 -msgctxt "Symbol" -msgid "Town" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:60 +msgid "Add random noise to selected bitmap(s)" +msgstr "FĂĽge den Bitmap(s) zufälliges Rauschen hinzu" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:254 -msgctxt "Symbol" -msgid "Hamlet" -msgstr "" +#: ../src/extension/internal/bitmap/blur.cpp:38 +#: ../src/extension/internal/filter/blurs.h:54 +#: ../src/extension/internal/filter/paint.h:710 +#: ../src/extension/internal/filter/transparency.h:343 +msgid "Blur" +msgstr "Unschärfe" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:255 -msgctxt "Symbol" -msgid "City" -msgstr "" +#: ../src/extension/internal/bitmap/blur.cpp:40 +#: ../src/extension/internal/bitmap/charcoal.cpp:40 +#: ../src/extension/internal/bitmap/edge.cpp:39 +#: ../src/extension/internal/bitmap/emboss.cpp:40 +#: ../src/extension/internal/bitmap/medianFilter.cpp:39 +#: ../src/extension/internal/bitmap/oilPaint.cpp:39 +#: ../src/extension/internal/bitmap/sharpen.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2684 +msgid "Radius:" +msgstr "Radius:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:256 -msgctxt "Symbol" -msgid "Peak" -msgstr "" +#: ../src/extension/internal/bitmap/blur.cpp:41 +#: ../src/extension/internal/bitmap/charcoal.cpp:41 +#: ../src/extension/internal/bitmap/emboss.cpp:41 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 +#: ../src/extension/internal/bitmap/sharpen.cpp:41 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 +msgid "Sigma:" +msgstr "Sigma" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:257 -msgctxt "Symbol" -msgid "Mountain Pass" -msgstr "" +#: ../src/extension/internal/bitmap/blur.cpp:47 +msgid "Blur selected bitmap(s)" +msgstr "Gewählte Bitmaps verunschärfen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:258 -msgctxt "Symbol" -msgid "Mine" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:48 +msgid "Channel" +msgstr "Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:259 -msgctxt "Symbol" -msgid "Military Complex" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:50 +msgid "Layer:" +msgstr "Ebene" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:260 -msgctxt "Symbol" -msgid "Embassy" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:51 +#: ../src/extension/internal/bitmap/levelChannel.cpp:55 +msgid "Red Channel" +msgstr "Rotkanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:261 -msgctxt "Symbol" -msgid "Toy Shop" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:52 +#: ../src/extension/internal/bitmap/levelChannel.cpp:56 +msgid "Green Channel" +msgstr "GrĂĽnkanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:262 -msgctxt "Symbol" -msgid "Supermarket" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:53 +#: ../src/extension/internal/bitmap/levelChannel.cpp:57 +msgid "Blue Channel" +msgstr "Blaukanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:263 -msgctxt "Symbol" -msgid "Jewlers" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:54 +#: ../src/extension/internal/bitmap/levelChannel.cpp:58 +msgid "Cyan Channel" +msgstr "Cyan-Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:264 -msgctxt "Symbol" -msgid "Hairdressers" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:55 +#: ../src/extension/internal/bitmap/levelChannel.cpp:59 +msgid "Magenta Channel" +msgstr "Magenta-Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:265 -msgctxt "Symbol" -msgid "Greengrocer" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:56 +#: ../src/extension/internal/bitmap/levelChannel.cpp:60 +msgid "Yellow Channel" +msgstr "Gelb-Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:266 -msgctxt "Symbol" -msgid "Gift Shop" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:57 +#: ../src/extension/internal/bitmap/levelChannel.cpp:61 +msgid "Black Channel" +msgstr "Schwarz-Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:267 -msgctxt "Symbol" -msgid "Garden Center" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:58 +#: ../src/extension/internal/bitmap/levelChannel.cpp:62 +msgid "Opacity Channel" +msgstr "Alpha-Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:268 -msgctxt "Symbol" -msgid "Florist" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:59 +#: ../src/extension/internal/bitmap/levelChannel.cpp:63 +msgid "Matte Channel" +msgstr "Matter Kanal" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:269 -msgctxt "Symbol" -msgid "Fish Monger" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:66 +msgid "Extract specific channel from image" +msgstr "Extrahiere bestimmen Farbkanal aus Bild" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:270 -msgctxt "Symbol" -msgid "Real Estate" -msgstr "" +#: ../src/extension/internal/bitmap/charcoal.cpp:38 +msgid "Charcoal" +msgstr "Kohlezeichnung" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:271 -msgctxt "Symbol" -msgid "Hardware / DIY" -msgstr "" +#: ../src/extension/internal/bitmap/charcoal.cpp:47 +msgid "Apply charcoal stylization to selected bitmap(s)" +msgstr "Kohlezeichnungseffekt auf Bitmap(s) anwenden" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:272 -msgctxt "Symbol" -msgid "Shop" -msgstr "" +#: ../src/extension/internal/bitmap/colorize.cpp:50 +#: ../src/extension/internal/filter/color.h:317 +msgid "Colorize" +msgstr "Einfärben" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:273 -msgctxt "Symbol" -msgid "Confectioner" -msgstr "" +#: ../src/extension/internal/bitmap/colorize.cpp:58 +msgid "Colorize selected bitmap(s) with specified color, using given opacity" +msgstr "Färbt ausgewählte Bitmap(s) mit gegebener Farbe und Deckkraft ein." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:274 -msgctxt "Symbol" -msgid "Computer Shop" -msgstr "" +#: ../src/extension/internal/bitmap/contrast.cpp:40 +#: ../src/extension/internal/filter/color.h:1114 +msgid "Contrast" +msgstr "Kontrast" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:275 -msgctxt "Symbol" -msgid "Clothing" -msgstr "" +#: ../src/extension/internal/bitmap/contrast.cpp:42 +msgid "Adjust:" +msgstr "Anpassen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:276 -msgctxt "Symbol" -msgid "Mechanic" -msgstr "" +#: ../src/extension/internal/bitmap/contrast.cpp:48 +msgid "Increase or decrease contrast in bitmap(s)" +msgstr "Erhöhe oder erniedrige Kontrast in Bitmap(s)" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:277 -msgctxt "Symbol" -msgid "Car Dealer" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:66 +#: ../src/extension/internal/filter/bumps.h:86 +#: ../src/extension/internal/filter/bumps.h:315 +msgid "Crop" +msgstr "Schneiden" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:278 -msgctxt "Symbol" -msgid "Butcher" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:68 +msgid "Top (px):" +msgstr "Oben (px):" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:279 -msgctxt "Symbol" -msgid "Meat Shop" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:69 +msgid "Bottom (px):" +msgstr "Unten (PX):" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:280 -msgctxt "Symbol" -msgid "Bicycle Shop" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:70 +msgid "Left (px):" +msgstr "Links (px):" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:281 -msgctxt "Symbol" -msgid "Baker" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:71 +msgid "Right (px):" +msgstr "Rechts (px):" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:282 -msgctxt "Symbol" -msgid "Off License / Liquor Store" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:77 +msgid "Crop selected bitmap(s)." +msgstr "Gewählte Bitmaps schneiden" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:283 -msgctxt "Symbol" -msgid "Wind Surfing" -msgstr "" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 +msgid "Cycle Colormap" +msgstr "Rotiere Farbpalette" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:284 -msgctxt "Symbol" -msgid "Tennis" -msgstr "" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 +#: ../src/extension/internal/bitmap/spread.cpp:39 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 +#: ../src/widgets/spray-toolbar.cpp:220 +msgid "Amount:" +msgstr "Menge" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:285 -msgctxt "Symbol" -msgid "Outdoor Pool" -msgstr "" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 +msgid "Cycle colormap(s) of selected bitmap(s)" +msgstr "Rotiere Farbpalette(n) der selektierten Bilder" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:286 -msgctxt "Symbol" -msgid "Indoor Pool" -msgstr "" +#: ../src/extension/internal/bitmap/despeckle.cpp:36 +msgid "Despeckle" +msgstr "Entflackern" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:287 -msgctxt "Symbol" -msgid "Skiing" -msgstr "" +#: ../src/extension/internal/bitmap/despeckle.cpp:43 +msgid "Reduce speckle noise of selected bitmap(s)" +msgstr "Verringert Flecken bei ausgewählten Bildern." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:288 -msgctxt "Symbol" -msgid "Sailing" -msgstr "" +#: ../src/extension/internal/bitmap/edge.cpp:37 +msgid "Edge" +msgstr "Kante" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:289 -msgctxt "Symbol" -msgid "Leisure Center" -msgstr "" +#: ../src/extension/internal/bitmap/edge.cpp:45 +msgid "Highlight edges of selected bitmap(s)" +msgstr "Betone Kanten der ausgewählten Bilder." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:290 -msgctxt "Symbol" -msgid "Ice Skating" -msgstr "" +#: ../src/extension/internal/bitmap/emboss.cpp:38 +msgid "Emboss" +msgstr "Kanten hervorheben" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:291 -msgctxt "Symbol" -msgid "Equine Sports" +#: ../src/extension/internal/bitmap/emboss.cpp:47 +msgid "Emboss selected bitmap(s); highlight edges with 3D effect" msgstr "" +"Kanten in Ausgewählten Bitmaps herausheben -- Hebt Kanten mit einem 3D-" +"Effekt hervor." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:292 -msgctxt "Symbol" -msgid "Rock Climbing" -msgstr "" +#: ../src/extension/internal/bitmap/enhance.cpp:35 +msgid "Enhance" +msgstr "Entrauschen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:293 -msgctxt "Symbol" -msgid "Gym" -msgstr "" +#: ../src/extension/internal/bitmap/enhance.cpp:42 +msgid "Enhance selected bitmap(s); minimize noise" +msgstr "Verbessert ausgewählte Bitmap(s) -- minimiert Rauschen." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:294 -msgctxt "Symbol" -msgid "Golf" -msgstr "" +#: ../src/extension/internal/bitmap/equalize.cpp:35 +msgid "Equalize" +msgstr "Ausgleichen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:295 -msgctxt "Symbol" -msgid "Diving" -msgstr "" +#: ../src/extension/internal/bitmap/equalize.cpp:42 +msgid "Equalize selected bitmap(s); histogram equalization" +msgstr "Gleicht ausgewählte Bitmap(s) aus -- Ausgleich anhand des Histogramms." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:296 -msgctxt "Symbol" -msgid "Archery" -msgstr "" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 +#: ../src/filter-enums.cpp:28 +msgid "Gaussian Blur" +msgstr "GauĂźscher Weichzeichner" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:297 -msgctxt "Symbol" -msgid "Zoo" -msgstr "" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 +#: ../src/extension/internal/bitmap/implode.cpp:39 +#: ../src/extension/internal/bitmap/solarize.cpp:41 +msgid "Factor:" +msgstr "Faktor" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:298 -msgctxt "Symbol" -msgid "Wreck" -msgstr "" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 +msgid "Gaussian blur selected bitmap(s)" +msgstr "GauĂźschen Weichzeichner auf gewählte Bitmaps anwenden." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:299 -msgctxt "Symbol" -msgid "Water Wheel" -msgstr "" +#: ../src/extension/internal/bitmap/implode.cpp:37 +msgid "Implode" +msgstr "Implodieren" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:300 -msgctxt "Symbol" -msgid "Point of Interest" -msgstr "" +#: ../src/extension/internal/bitmap/implode.cpp:45 +msgid "Implode selected bitmap(s)" +msgstr "Implodiert ausgewählte Bitmaps." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:301 -msgctxt "Symbol" -msgid "Theater" -msgstr "" +#: ../src/extension/internal/bitmap/levelChannel.cpp:52 +msgid "Level (with Channel)" +msgstr "Ebene (mit Kanal)" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:302 -msgctxt "Symbol" -msgid "Park / Picnic Area" -msgstr "" +#: ../src/extension/internal/bitmap/levelChannel.cpp:54 +#: ../src/extension/internal/filter/color.h:636 +msgid "Channel:" +msgstr "Kanal:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:303 -msgctxt "Symbol" -msgid "Monument" -msgstr "" +#: ../src/extension/internal/bitmap/levelChannel.cpp:65 +#: ../src/extension/internal/bitmap/level.cpp:43 +msgid "Black Point:" +msgstr "Schwarzer Punkt" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:305 -msgctxt "Symbol" -msgid "Beach" -msgstr "" +#: ../src/extension/internal/bitmap/levelChannel.cpp:66 +#: ../src/extension/internal/bitmap/level.cpp:44 +msgid "White Point:" +msgstr "WeiĂźer Punkt" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:306 -msgctxt "Symbol" -msgid "Battle Location" -msgstr "" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:307 -msgctxt "Symbol" -msgid "Archaeology / Ruins" -msgstr "" +#: ../src/extension/internal/bitmap/levelChannel.cpp:67 +#: ../src/extension/internal/bitmap/level.cpp:45 +msgid "Gamma Correction:" +msgstr "Gammakorrektur" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:308 -msgctxt "Symbol" -msgid "Walking" +#: ../src/extension/internal/bitmap/levelChannel.cpp:73 +msgid "" +"Level the specified channel of selected bitmap(s) by scaling values falling " +"between the given ranges to the full color range" msgstr "" +"Bestimmten Kanal in ausgewählten Bitmaps angleichen, indem Werte im " +"angegebenen Bereich zum vollen Farbumfang hochskaliert werden." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:309 -msgctxt "Symbol" -msgid "Train" -msgstr "" +#: ../src/extension/internal/bitmap/level.cpp:41 +#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/image.h:56 +#: ../src/extension/internal/filter/morphology.h:66 +#: ../src/extension/internal/filter/paint.h:345 +msgid "Level" +msgstr "Ebene" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:311 -msgctxt "Symbol" -msgid "Underground Rail" +#: ../src/extension/internal/bitmap/level.cpp:51 +msgid "" +"Level selected bitmap(s) by scaling values falling between the given ranges " +"to the full color range" msgstr "" +"Ausgewählte Bitmap(s) angleichen, in dem Werte im angegebenen Bereich auf " +"die volle Farbskala abgebildet werden" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:313 -msgctxt "Symbol" -msgid "Bike Rental" -msgstr "" +#: ../src/extension/internal/bitmap/medianFilter.cpp:37 +msgid "Median" +msgstr "Zentralwert" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:315 -msgctxt "Symbol" -msgid "Carpool" +#: ../src/extension/internal/bitmap/medianFilter.cpp:45 +msgid "" +"Replace each pixel component with the median color in a circular neighborhood" msgstr "" +"Jede Pixelkomponente mit dem Zentralwert aus einer kreisförmigen Umgebung " +"ersetzen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:316 -msgctxt "Symbol" -msgid "Flood Gate" -msgstr "" +#: ../src/extension/internal/bitmap/modulate.cpp:40 +msgid "HSB Adjust" +msgstr "HSB anpassen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:317 -msgctxt "Symbol" -msgid "Shipping" -msgstr "" +#: ../src/extension/internal/bitmap/modulate.cpp:42 +msgid "Hue:" +msgstr "Farbton" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:318 -msgctxt "Symbol" -msgid "Disabled Parking" -msgstr "" +#: ../src/extension/internal/bitmap/modulate.cpp:43 +msgid "Saturation:" +msgstr "Sättigung" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:319 -msgctxt "Symbol" -msgid "Paid Parking" -msgstr "" +#: ../src/extension/internal/bitmap/modulate.cpp:44 +msgid "Brightness:" +msgstr "Glanz:" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:320 -msgctxt "Symbol" -msgid "Bike Parking" -msgstr "" +#: ../src/extension/internal/bitmap/modulate.cpp:50 +msgid "" +"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" +msgstr "Farbwert, Sättigung und Helligkeit in ausgewählten Bitmaps anpassen" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:322 -msgctxt "Symbol" -msgid "Marina" -msgstr "" +#: ../src/extension/internal/bitmap/negate.cpp:36 +msgid "Negate" +msgstr "Negativ" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:323 -msgctxt "Symbol" -msgid "Fuel Station" -msgstr "" +#: ../src/extension/internal/bitmap/negate.cpp:43 +msgid "Negate (take inverse) selected bitmap(s)" +msgstr "Gewählte Bitmaps invertieren." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:324 -msgctxt "Symbol" -msgid "Bus Stop" -msgstr "" +#: ../src/extension/internal/bitmap/normalize.cpp:36 +msgid "Normalize" +msgstr "Normalisieren" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:325 -msgctxt "Symbol" -msgid "Bus Station" +#: ../src/extension/internal/bitmap/normalize.cpp:43 +msgid "" +"Normalize selected bitmap(s), expanding color range to the full possible " +"range of color" msgstr "" +"Normalisiert die ausgewählten Bitmaps, streckt das Farbspektrum auf die " +"volle Breite." -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:326 -msgctxt "Symbol" -msgid "Airport" -msgstr "" +#: ../src/extension/internal/bitmap/oilPaint.cpp:37 +msgid "Oil Paint" +msgstr "Ă–lgemälde" -#: ../share/templates/templates.h:1 -msgid "A4 Landscape Page" +#: ../src/extension/internal/bitmap/oilPaint.cpp:45 +msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" msgstr "" +"Lässt ausgewählte Bitmap(s) aussehen, als ob sie mit Ă–lfarbe gemalt seien." -#: ../share/templates/templates.h:1 -msgid "Empty A4 landscape sheet" -msgstr "" +#: ../src/extension/internal/bitmap/opacity.cpp:38 +#: ../src/extension/internal/filter/blurs.h:333 +#: ../src/extension/internal/filter/transparency.h:279 +#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 +#: ../src/widgets/tweak-toolbar.cpp:348 +#: ../share/extensions/interp_att_g.inx.h:16 +msgid "Opacity" +msgstr "Deckkraft" -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty landscape" -msgstr "" +#: ../src/extension/internal/bitmap/opacity.cpp:40 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2674 +#: ../src/widgets/dropper-toolbar.cpp:107 +msgid "Opacity:" +msgstr "Deckkraft:" -#: ../share/templates/templates.h:1 -msgid "A4 Page" -msgstr "" +#: ../src/extension/internal/bitmap/opacity.cpp:46 +msgid "Modify opacity channel(s) of selected bitmap(s)." +msgstr "Modifiziert den Alpha-Kanal der ausgewählten Bitmap(s)." -#: ../share/templates/templates.h:1 -msgid "Empty A4 sheet" -msgstr "" +#: ../src/extension/internal/bitmap/raise.cpp:40 +msgid "Raise" +msgstr "Anheben" -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty" -msgstr "" +#: ../src/extension/internal/bitmap/raise.cpp:44 +msgid "Raised" +msgstr "Angehoben" -#: ../share/templates/templates.h:1 -msgid "Black Opaque" +#: ../src/extension/internal/bitmap/raise.cpp:50 +msgid "" +"Alter lightness the edges of selected bitmap(s) to create a raised appearance" msgstr "" +"Helligkeit von Farbkanten in ausgewählten Bitmap(s) anpassen, um den " +"Anschein herausgehobener Ecken zu erwecken." -#: ../share/templates/templates.h:1 -msgid "Empty black page" -msgstr "" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 +msgid "Reduce Noise" +msgstr "Rauschen vermindern" -#: ../share/templates/templates.h:1 -msgid "black opaque empty" -msgstr "" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../share/extensions/jessyInk_effects.inx.h:3 +#: ../share/extensions/jessyInk_view.inx.h:3 +#: ../share/extensions/lindenmayer.inx.h:5 +msgid "Order:" +msgstr "Anordnung:" -#: ../share/templates/templates.h:1 -msgid "White Opaque" -msgstr "" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 +msgid "" +"Reduce noise in selected bitmap(s) using a noise peak elimination filter" +msgstr "Rauschen in ausgewählten Bitmaps durch Rauschspitzenfilter verringern" -#: ../share/templates/templates.h:1 -msgid "Empty white page" -msgstr "" +#: ../src/extension/internal/bitmap/sample.cpp:39 +msgid "Resample" +msgstr "Auflösung ändern" -#: ../share/templates/templates.h:1 -msgid "white opaque empty" +#: ../src/extension/internal/bitmap/sample.cpp:48 +msgid "" +"Alter the resolution of selected image by resizing it to the given pixel size" msgstr "" +"Ă„ndert die Auflösung des ausgewählten Bitmaps, indem es auf die gegebene " +"Größe skaliert wird." -#: ../share/templates/templates.h:1 -msgid "Business Card 85x54mm" -msgstr "" +#: ../src/extension/internal/bitmap/shade.cpp:40 +msgid "Shade" +msgstr "Schattieren" -#: ../share/templates/templates.h:1 -msgid "Empty business card template." -msgstr "" +#: ../src/extension/internal/bitmap/shade.cpp:42 +msgid "Azimuth:" +msgstr "Azimut" -#: ../share/templates/templates.h:1 -msgid "business card empty 85x54" -msgstr "" +#: ../src/extension/internal/bitmap/shade.cpp:43 +msgid "Elevation:" +msgstr "Anhebung" -#: ../share/templates/templates.h:1 -msgid "Business Card 90x50mm" -msgstr "" +#: ../src/extension/internal/bitmap/shade.cpp:44 +msgid "Colored Shading" +msgstr "Schattenfarbe" -#: ../share/templates/templates.h:1 -msgid "business card empty 90x50" -msgstr "" +#: ../src/extension/internal/bitmap/shade.cpp:50 +msgid "Shade selected bitmap(s) simulating distant light source" +msgstr "Ausgewählte Bitmaps mittels simulierter entfernter Lichtquelle tönen" -#: ../share/templates/templates.h:1 -msgid "CD Cover 300dpi" -msgstr "" +#: ../src/extension/internal/bitmap/sharpen.cpp:47 +msgid "Sharpen selected bitmap(s)" +msgstr "Schärft ausgewählte Bitmap(s)." -#: ../share/templates/templates.h:1 -msgid "Empty CD box cover." -msgstr "" +#: ../src/extension/internal/bitmap/solarize.cpp:39 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1498 +msgid "Solarize" +msgstr "Solarisieren" -#: ../share/templates/templates.h:1 -msgid "CD cover disc disk 300dpi box" -msgstr "" +#: ../src/extension/internal/bitmap/solarize.cpp:47 +msgid "Solarize selected bitmap(s), like overexposing photographic film" +msgstr "Ausgewählte Bitmaps solarisieren, wie ĂĽbersättigter Film" -#: ../share/templates/templates.h:1 -msgid "CD Label 120x120 " -msgstr "" +#: ../src/extension/internal/bitmap/spread.cpp:37 +msgid "Dither" +msgstr "Zittern" -#: ../share/templates/templates.h:1 -msgid "Simple CD Label template with disc's pattern." +#: ../src/extension/internal/bitmap/spread.cpp:45 +msgid "" +"Randomly scatter pixels in selected bitmap(s), within the given radius of " +"the original position" msgstr "" +"Verteilt die Pixel in ausgewählten Bitmap(s) zufällig im angegebenen Radius " +"um den Ursprung." -#: ../share/templates/templates.h:1 -msgid "CD label 120x120 disc disk" -msgstr "" +#: ../src/extension/internal/bitmap/swirl.cpp:39 +msgid "Degrees:" +msgstr "Grad" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Regular 300dpi " -msgstr "" +#: ../src/extension/internal/bitmap/swirl.cpp:45 +msgid "Swirl selected bitmap(s) around center point" +msgstr "Verwirbelt ausgewählte Bitmap(s) um den Mittelpunkt." -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD covers." -msgstr "" +#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html +#: ../src/extension/internal/bitmap/threshold.cpp:38 +msgid "Threshold" +msgstr "Schwellwert" -#: ../share/templates/templates.h:1 -msgid "DVD cover regular 300dpi" -msgstr "" +#: ../src/extension/internal/bitmap/threshold.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 +#: ../src/widgets/paintbucket-toolbar.cpp:167 +msgid "Threshold:" +msgstr "Schwellwert:" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Slim 300dpi " -msgstr "" +#: ../src/extension/internal/bitmap/threshold.cpp:46 +msgid "Threshold selected bitmap(s)" +msgstr "Schwellwert ausgewählter Bitmap(s)" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD slim covers." -msgstr "" +#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 +msgid "Unsharp Mask" +msgstr "Unscharfe Maske" -#: ../share/templates/templates.h:1 -msgid "DVD cover slim 300dpi" -msgstr "" +#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 +msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" +msgstr "Ausgewählte Bitmaps mittels Unscharfe-Maske-Algorithmen schärfen" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Superslim 300dpi " -msgstr "" +#: ../src/extension/internal/bitmap/wave.cpp:38 +msgid "Wave" +msgstr "Welle" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD superslim covers." -msgstr "" +#: ../src/extension/internal/bitmap/wave.cpp:40 +msgid "Amplitude:" +msgstr "Amplitude" -#: ../share/templates/templates.h:1 -msgid "DVD cover superslim 300dpi" -msgstr "" +#: ../src/extension/internal/bitmap/wave.cpp:41 +msgid "Wavelength:" +msgstr "Wellenlänge" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Ultraslim 300dpi " -msgstr "" +#: ../src/extension/internal/bitmap/wave.cpp:47 +msgid "Alter selected bitmap(s) along sine wave" +msgstr "Ausgewählte Bitmap(s) entlang Sinuskurve verformen" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD ultraslim covers." -msgstr "" +#: ../src/extension/internal/bluredge.cpp:136 +msgid "Inset/Outset Halo" +msgstr "Schrumpfen/Erweitern der Halo" -#: ../share/templates/templates.h:1 -msgid "DVD cover ultraslim 300dpi" -msgstr "" +#: ../src/extension/internal/bluredge.cpp:138 +msgid "Width in px of the halo" +msgstr "Breite der Halo in Pixeln" -#: ../share/templates/templates.h:1 -msgid "Desktop 1024x768" -msgstr "" +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of steps:" +msgstr "Anzahl der Schritte:" -#: ../share/templates/templates.h:1 -msgid "Empty desktop size sheet" -msgstr "" +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of inset/outset copies of the object to make" +msgstr "Anzahl der geschrumpften/erweiterten Kopien des Objekts" -#: ../share/templates/templates.h:1 -msgid "desktop 1024x768 wallpaper" -msgstr "" +#: ../src/extension/internal/bluredge.cpp:143 +#: ../share/extensions/extrude.inx.h:5 +#: ../share/extensions/generate_voronoi.inx.h:9 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 +#: ../share/extensions/pathalongpath.inx.h:18 +#: ../share/extensions/pathscatter.inx.h:20 +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Generate from Path" +msgstr "Aus Pfad erzeugen" -#: ../share/templates/templates.h:1 -msgid "Desktop 1600x1200" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:327 +#: ../share/extensions/ps_input.inx.h:3 +msgid "PostScript" +msgstr "Postscript" -#: ../share/templates/templates.h:1 -msgid "desktop 1600x1200 wallpaper" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:329 +#: ../src/extension/internal/cairo-ps-out.cpp:370 +msgid "Restrict to PS level:" +msgstr "Auf PostScript Level einschränken" -#: ../share/templates/templates.h:1 -msgid "Desktop 640x480" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:330 +#: ../src/extension/internal/cairo-ps-out.cpp:371 +msgid "PostScript level 3" +msgstr "PostScript Level 3" -#: ../share/templates/templates.h:1 -msgid "desktop 640x480 wallpaper" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:332 +#: ../src/extension/internal/cairo-ps-out.cpp:373 +msgid "PostScript level 2" +msgstr "Postscript Level 2" -#: ../share/templates/templates.h:1 -msgid "Desktop 800x600" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:335 +#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +#: ../src/extension/internal/emf-inout.cpp:3551 +#: ../src/extension/internal/wmf-inout.cpp:3236 +msgid "Convert texts to paths" +msgstr "Texte in Pfade umwandeln" -#: ../share/templates/templates.h:1 -msgid "desktop 800x600 wallpaper" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:336 +msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +msgstr "PS+LaTeX: Text in PS weglassen und LaTeX Datei erstellen" -#: ../share/templates/templates.h:1 -msgid "Fontforge Glyph" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:337 +#: ../src/extension/internal/cairo-ps-out.cpp:378 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 +msgid "Rasterize filter effects" +msgstr "Filtereffekte in Raster umwandeln" -#: ../share/templates/templates.h:1 -msgid "font fontforge glyph 1000x1000" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:379 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +msgid "Resolution for rasterization (dpi):" +msgstr "Auflösung des Rasters (dpi)" -#: ../share/templates/templates.h:1 -msgid "Icon 16x16" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:380 +msgid "Output page size" +msgstr "Seitengröße der Ausgabe" -#: ../share/templates/templates.h:1 -msgid "Small 16x16 icon template." -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:340 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Use document's page size" +msgstr "Seitengröße vom Dokument nutzen" -#: ../share/templates/templates.h:1 -msgid "icon 16x16 empty" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-ps-out.cpp:382 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +msgid "Use exported object's size" +msgstr "Nutze exportierte Objektgröße" -#: ../share/templates/templates.h:1 -msgid "Icon 32x32" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:343 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +msgid "Bleed/margin (mm):" +msgstr "Beschnitt/Umrandung (mm):" -#: ../share/templates/templates.h:1 -msgid "32x32 icon template." -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:344 +#: ../src/extension/internal/cairo-ps-out.cpp:385 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +msgid "Limit export to the object with ID:" +msgstr "Export einschränken auf das Objekt mit ID" -#: ../share/templates/templates.h:1 -msgid "icon 32x32 empty" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:348 +#: ../share/extensions/ps_input.inx.h:2 +msgid "PostScript (*.ps)" +msgstr "PostScript (*.ps)" -#: ../share/templates/templates.h:1 -msgid "Icon 48x48" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:349 +msgid "PostScript File" +msgstr "Postscript-Datei" -#: ../share/templates/templates.h:1 -msgid "48x48 icon template." -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:368 +#: ../share/extensions/eps_input.inx.h:3 +msgid "Encapsulated PostScript" +msgstr "Encapsulated Postscript" -#: ../share/templates/templates.h:1 -msgid "icon 48x48 empty" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:377 +msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +msgstr "EPS+LaTeX: Text in EPS weglassen und LaTeX Datei erstellen" -#: ../share/templates/templates.h:1 -msgid "Icon 64x64" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:384 +msgid "Bleed/margin (mm)" +msgstr "Beschnitt/Umrandung (mm)" -#: ../share/templates/templates.h:1 -msgid "64x64 icon template." -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:389 +#: ../share/extensions/eps_input.inx.h:2 +msgid "Encapsulated PostScript (*.eps)" +msgstr "Encapsulated Postscript (*.eps)" -#: ../share/templates/templates.h:1 -msgid "icon 64x64 empty" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:390 +msgid "Encapsulated PostScript File" +msgstr "Encapsulated-Postscript-Datei" -#: ../share/templates/templates.h:1 -msgid "Letter Landscape" -msgstr "" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 +msgid "Restrict to PDF version:" +msgstr "Auf PDF Version einschränken" -#: ../share/templates/templates.h:1 -msgid "Standard letter landscape sheet - 792x612" -msgstr "" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 +msgid "PDF 1.5" +msgstr "PDF 1.5" -#: ../share/templates/templates.h:1 -msgid "letter landscape 792x612 empty" -msgstr "" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 +msgid "PDF 1.4" +msgstr "PDF 1.4" -#: ../share/templates/templates.h:1 -msgid "Letter" -msgstr "" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +msgstr "PDF+LaTeX: Text in PDF weglassen und LaTeX Datei erstellen" -#: ../share/templates/templates.h:1 -msgid "Standard letter sheet - 612x792" -msgstr "" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +msgid "Output page size:" +msgstr "Seitengröße der Ausgabe:" -#: ../share/templates/templates.h:1 -msgid "letter 612x792 empty" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:102 +#: ../src/extension/internal/pdf-input-cairo.cpp:74 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 +#: ../src/extension/internal/vsd-input.cpp:101 +msgid "Select page:" +msgstr "Seite auswählen:" -#: ../share/templates/templates.h:1 -msgid "No Borders" -msgstr "" +#. Display total number of pages +#: ../src/extension/internal/cdr-input.cpp:114 +#: ../src/extension/internal/pdf-input-cairo.cpp:92 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 +#: ../src/extension/internal/vsd-input.cpp:113 +#, c-format +msgid "out of %i" +msgstr "von %i" -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no borders" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:145 +#: ../src/extension/internal/vsd-input.cpp:144 +#, fuzzy +msgid "Page Selector" +msgstr "Auswahlwerkzeug" -#: ../share/templates/templates.h:1 -msgid "no borders empty" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:274 +msgid "Corel DRAW Input" +msgstr "Corel DRAW einlesen" -#: ../share/templates/templates.h:1 -msgid "No Layers" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:279 +msgid "Corel DRAW 7-X4 files (*.cdr)" +msgstr "Corel DRAW 7-X4 Dateien (*.cdr)" -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no layers" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:280 +msgid "Open files saved in Corel DRAW 7-X4" +msgstr "In Corel DRAW 7-X4 gespeicherte Dateien öffnen" -#: ../share/templates/templates.h:1 -msgid "no layers empty" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:287 +msgid "Corel DRAW templates input" +msgstr "Corel DRAW Vorlagen einlesen" -#: ../share/templates/templates.h:1 -msgid "Video HDTV 1920x1080" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:292 +msgid "Corel DRAW 7-13 template files (*.cdt)" +msgstr "Corel DRAW 7-13 Vorlagendateien (.cdt)" -#: ../share/templates/templates.h:1 -msgid "HDTV video template for 1920x1080 resolution." -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:293 +msgid "Open files saved in Corel DRAW 7-13" +msgstr "In Corel DRAW 7-13 gespeicherte Dateien öffnen" -#: ../share/templates/templates.h:1 -msgid "HDTV video empty 1920x1080" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:300 +msgid "Corel DRAW Compressed Exchange files input" +msgstr "Corel DRAW Compressed Exchange Datei einlesen" -#: ../share/templates/templates.h:1 -msgid "Video NTSC 720x486" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:305 +msgid "Corel DRAW Compressed Exchange files (*.ccx)" +msgstr "Corel DRAW Komprimierte Exchange Datei (.ccx)" -#: ../share/templates/templates.h:1 -msgid "NTSC video template for 720x486 resolution." +#: ../src/extension/internal/cdr-input.cpp:306 +msgid "Open compressed exchange files saved in Corel DRAW" msgstr "" +"Ă–ffnen einer komprimierten Exchange Datei, die in Corel DRAW gespeichert " +"wurde" -#: ../share/templates/templates.h:1 -msgid "NTSC video empty 720x486" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:313 +msgid "Corel DRAW Presentation Exchange files input" +msgstr "Corel DRAW Presentations Exchange Datei einlesen" -#: ../share/templates/templates.h:1 -msgid "Video PAL 728x576" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:318 +msgid "Corel DRAW Presentation Exchange files (*.cmx)" +msgstr "Corel DRAW Presentations Exchange Datei (.cmx)" -#: ../share/templates/templates.h:1 -msgid "PAL video template for 728x576 resolution." +#: ../src/extension/internal/cdr-input.cpp:319 +msgid "Open presentation exchange files saved in Corel DRAW" msgstr "" +"Ă–ffnen einer Presentation Exchange Datei, die in Corel DRAW gespeichert wurde" -#: ../share/templates/templates.h:1 -msgid "PAL video empty 728x576" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3535 +msgid "EMF Input" +msgstr "EMF einlesen" -#: ../share/templates/templates.h:1 -msgid "Web Banner 468x60" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3540 +msgid "Enhanced Metafiles (*.emf)" +msgstr "Enhanced Windows-Metafile (*.emf)" -#: ../share/templates/templates.h:1 -msgid "Empty 468x60 web banner template." -msgstr "" +# !!! +#: ../src/extension/internal/emf-inout.cpp:3541 +msgid "Enhanced Metafiles" +msgstr "Enhanced Metafiles" -#: ../share/templates/templates.h:1 -msgid "web banner 468x60 empty" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3549 +msgid "EMF Output" +msgstr "EMF-Ausgabe" -#: ../share/templates/templates.h:1 -msgid "Web Banner 728x90" +#: ../src/extension/internal/emf-inout.cpp:3552 +#: ../src/extension/internal/wmf-inout.cpp:3237 +msgid "Map Unicode to Symbol font" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty 728x90 web banner template." +#: ../src/extension/internal/emf-inout.cpp:3553 +#: ../src/extension/internal/wmf-inout.cpp:3238 +msgid "Map Unicode to Wingdings" msgstr "" -#: ../share/templates/templates.h:1 -msgid "web banner 728x90 empty" +#: ../src/extension/internal/emf-inout.cpp:3554 +#: ../src/extension/internal/wmf-inout.cpp:3239 +msgid "Map Unicode to Zapf Dingbats" msgstr "" -#: ../share/templates/templates.h:1 -msgid "LaTeX Beamer" +#: ../src/extension/internal/emf-inout.cpp:3555 +#: ../src/extension/internal/wmf-inout.cpp:3240 +msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "" -#: ../share/templates/templates.h:1 -msgid "LaTeX beamer template with helping grid." +#: ../src/extension/internal/emf-inout.cpp:3556 +#: ../src/extension/internal/wmf-inout.cpp:3241 +msgid "Compensate for PPT font bug" msgstr "" -#: ../share/templates/templates.h:1 -msgid "LaTex LaTeX latex grid beamer" +#: ../src/extension/internal/emf-inout.cpp:3557 +#: ../src/extension/internal/wmf-inout.cpp:3242 +msgid "Convert dashed/dotted lines to single lines" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Typography Canvas" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3558 +#: ../src/extension/internal/wmf-inout.cpp:3243 +#, fuzzy +msgid "Convert gradients to colored polygon series" +msgstr "Farbverlauf invertieren" -#: ../share/templates/templates.h:1 -msgid "Empty typography canvas with helping guidelines." +#: ../src/extension/internal/emf-inout.cpp:3559 +msgid "Map all fill patterns to standard EMF hatches" msgstr "" -#: ../share/templates/templates.h:1 -msgid "guidelines typography canvas" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3560 +#, fuzzy +msgid "Ignore image rotations" +msgstr "Rotationszentrum" -#. 3D box -#: ../src/box3d.cpp:259 ../src/box3d.cpp:1329 -#: ../src/ui/dialog/inkscape-preferences.cpp:398 -msgid "3D Box" -msgstr "3D-Box" +#: ../src/extension/internal/emf-inout.cpp:3564 +msgid "Enhanced Metafile (*.emf)" +msgstr "Enhanced Metafile (*.emf)" -#: ../src/color-profile.cpp:852 -#, c-format -msgid "Color profiles directory (%s) is unavailable." -msgstr "Verzeichnis der Farbprofile (%s) nicht auffindbar." +#: ../src/extension/internal/emf-inout.cpp:3565 +msgid "Enhanced Metafile" +msgstr "Enhanced Metafile" -#: ../src/color-profile.cpp:911 ../src/color-profile.cpp:928 -msgid "(invalid UTF-8 string)" -msgstr "(ungĂĽltiger UTF-8 string)" +#: ../src/extension/internal/filter/bevels.h:53 +msgid "Diffuse Light" +msgstr "Diffuses Licht" -# CHECK -#: ../src/color-profile.cpp:913 ../src/filter-enums.cpp:119 -#: ../src/live_effects/lpe-ruler.cpp:32 -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 -#: ../src/ui/dialog/inkscape-preferences.cpp:332 -#: ../src/ui/dialog/inkscape-preferences.cpp:643 -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 -#: ../src/ui/dialog/inkscape-preferences.cpp:1837 -#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 -#: ../src/ui/dialog/input.cpp:1571 ../src/ui/dialog/input.cpp:1625 -#: ../src/verbs.cpp:2349 ../src/widgets/gradient-toolbar.cpp:1114 -#: ../src/widgets/pencil-toolbar.cpp:155 -#: ../src/widgets/stroke-marker-selector.cpp:388 -#: ../share/extensions/gcodetools_area.inx.h:48 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:26 -#: ../share/extensions/gcodetools_graffiti.inx.h:37 -#: ../share/extensions/gcodetools_lathe.inx.h:41 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 -#: ../share/extensions/grid_polar.inx.h:4 -#: ../share/extensions/guides_creator.inx.h:24 -#: ../share/extensions/plotter.inx.h:15 ../share/extensions/scour.inx.h:18 -msgid "None" -msgstr "Keine" +#: ../src/extension/internal/filter/bevels.h:55 +#: ../src/extension/internal/filter/bevels.h:135 +#: ../src/extension/internal/filter/bevels.h:219 +#: ../src/extension/internal/filter/paint.h:89 +#: ../src/extension/internal/filter/paint.h:340 +msgid "Smoothness" +msgstr "Glattheit" -#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 -msgid "Current layer is hidden. Unhide it to be able to draw on it." -msgstr "" -"Aktuelle Ebene ist ausgeblendet. Sichtbar schalten, um darauf zu " -"zeichnen." - -#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 -msgid "Current layer is locked. Unlock it to be able to draw on it." -msgstr "Aktuelle Ebene ist gesperrt. Entsperren, um darauf zu zeichnen." - -#: ../src/desktop-events.cpp:225 -msgid "Create guide" -msgstr "FĂĽhrungslinie erzeugen" - -#: ../src/desktop-events.cpp:471 -msgid "Move guide" -msgstr "FĂĽhrungslinie verschieben" - -#: ../src/desktop-events.cpp:478 ../src/desktop-events.cpp:537 -#: ../src/ui/dialog/guides.cpp:138 -msgid "Delete guide" -msgstr "FĂĽhrungslinie löschen" - -#: ../src/desktop-events.cpp:517 -#, c-format -msgid "Guideline: %s" -msgstr "FĂĽhrungslinie: %s" - -#: ../src/desktop.cpp:880 -msgid "No previous zoom." -msgstr "Kein vorheriger Zoomfaktor." - -#: ../src/desktop.cpp:901 -msgid "No next zoom." -msgstr "Kein nächster Zoomfaktor." - -#: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 -msgid "Grid _units:" -msgstr "Gitter-Raster_einheiten:" - -#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 -msgid "_Origin X:" -msgstr "_Ursprung X:" - -#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 -#: ../src/ui/dialog/inkscape-preferences.cpp:737 -#: ../src/ui/dialog/inkscape-preferences.cpp:762 -msgid "X coordinate of grid origin" -msgstr "X-Koordinate des Gitterursprungs" - -#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 -msgid "O_rigin Y:" -msgstr "U_rsprung Y:" - -#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -msgid "Y coordinate of grid origin" -msgstr "Y-Koordinate des Gitterursprungs" - -#: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 -msgid "Spacing _Y:" -msgstr "Abstand _Y:" - -#: ../src/display/canvas-axonomgrid.cpp:323 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 -msgid "Base length of z-axis" -msgstr "Basislänge der Z-Achse" - -#: ../src/display/canvas-axonomgrid.cpp:325 -#: ../src/ui/dialog/inkscape-preferences.cpp:769 -#: ../src/widgets/box3d-toolbar.cpp:299 -msgid "Angle X:" -msgstr "Winkel X:" - -#: ../src/display/canvas-axonomgrid.cpp:325 -#: ../src/ui/dialog/inkscape-preferences.cpp:769 -msgid "Angle of x-axis" -msgstr "Winkel der X-Achse" - -#: ../src/display/canvas-axonomgrid.cpp:327 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 -#: ../src/widgets/box3d-toolbar.cpp:378 -msgid "Angle Z:" -msgstr "Winkel Z:" - -#: ../src/display/canvas-axonomgrid.cpp:327 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 -msgid "Angle of z-axis" -msgstr "Winkel der Z-Achse" - -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -msgid "Minor grid line _color:" -msgstr "Nebengitter-Linienfarbe:" - -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -#: ../src/ui/dialog/inkscape-preferences.cpp:721 -msgid "Minor grid line color" -msgstr "Nebengitter-Linienfarbe:" - -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -msgid "Color of the minor grid lines" -msgstr "Farbe der Nebengitterlinien" - -#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 -msgid "Ma_jor grid line color:" -msgstr "Farbe der _dicken Gitterlinien:" - -#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 -#: ../src/ui/dialog/inkscape-preferences.cpp:723 -msgid "Major grid line color" -msgstr "Farbe der dicken Gitterlinien" - -#: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 -msgid "Color of the major (highlighted) grid lines" -msgstr "Farbe der dicken (hervorgehobenen) Gitterlinien" - -#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 -msgid "_Major grid line every:" -msgstr "D_icke Gitterlinien alle:" - -#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 -msgid "lines" -msgstr "Linien" - -#: ../src/display/canvas-grid.cpp:63 -msgid "Rectangular grid" -msgstr "Rechteckiges Gitter" - -#: ../src/display/canvas-grid.cpp:64 -msgid "Axonometric grid" -msgstr "Axonometrisches Gitter" - -#: ../src/display/canvas-grid.cpp:275 -msgid "Create new grid" -msgstr "Neues Gitter erzeugen" - -#: ../src/display/canvas-grid.cpp:341 -msgid "_Enabled" -msgstr "_Eingeschaltet" - -#: ../src/display/canvas-grid.cpp:342 -msgid "" -"Determines whether to snap to this grid or not. Can be 'on' for invisible " -"grids." -msgstr "" -"Legt fest, ob an diesem Raster eingerastet werden soll. Kann auch fĂĽr " -"unsichtbare Gitter gesetzt sein." - -#: ../src/display/canvas-grid.cpp:346 -msgid "Snap to visible _grid lines only" -msgstr "Nur an sichtbaren _Gitternlinien einrasten" - -#: ../src/display/canvas-grid.cpp:347 -msgid "" -"When zoomed out, not all grid lines will be displayed. Only the visible ones " -"will be snapped to" -msgstr "" -"Nicht alle Gitterlinien werden dargestellt, wenn stark heraus gezoomt wird. " -"Nur auf Sichtbare wird eingerastet." - -#: ../src/display/canvas-grid.cpp:351 -msgid "_Visible" -msgstr "Sichtbar" - -#: ../src/display/canvas-grid.cpp:352 -msgid "" -"Determines whether the grid is displayed or not. Objects are still snapped " -"to invisible grids." -msgstr "" -"Legt fest, ob das Raster angezeigt werden soll. Objekte rasten auch an " -"unsichtbaren Gittern ein." - -#: ../src/display/canvas-grid.cpp:699 -msgid "Spacing _X:" -msgstr "Abstand _X:" - -#: ../src/display/canvas-grid.cpp:699 -#: ../src/ui/dialog/inkscape-preferences.cpp:743 -msgid "Distance between vertical grid lines" -msgstr "Abstand der vertikalen Gitterlinien" - -#: ../src/display/canvas-grid.cpp:701 -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -msgid "Distance between horizontal grid lines" -msgstr "Abstand der horizontalen Gitterlinien" - -#: ../src/display/canvas-grid.cpp:732 -msgid "_Show dots instead of lines" -msgstr "Zeige Punkte anstatt Linien" - -#: ../src/display/canvas-grid.cpp:733 -msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "Wenn gesetzt, Punkte an Gitterpunkten anstelle Gitterlinien verwenden" - -#. TRANSLATORS: undefined target for snapping -#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 -#: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 -msgid "UNDEFINED" -msgstr "UNBESTIMMT" - -#: ../src/display/snap-indicator.cpp:79 -msgid "grid line" -msgstr "Gitternetzlinie" - -#: ../src/display/snap-indicator.cpp:82 -msgid "grid intersection" -msgstr "Gitter-Ăśberschneidung" - -#: ../src/display/snap-indicator.cpp:85 -msgid "grid line (perpendicular)" -msgstr "Gitterlinie (Senkrechte)" - -#: ../src/display/snap-indicator.cpp:88 -msgid "guide" -msgstr "FĂĽhrungslinie" - -#: ../src/display/snap-indicator.cpp:91 -msgid "guide intersection" -msgstr "Gitter-Ăśberschneidung" - -#: ../src/display/snap-indicator.cpp:94 -msgid "guide origin" -msgstr "FĂĽhrungslinienursprung" - -#: ../src/display/snap-indicator.cpp:97 -msgid "guide (perpendicular)" -msgstr "FĂĽhrungslinie (Senkrechte)" - -#: ../src/display/snap-indicator.cpp:100 -msgid "grid-guide intersection" -msgstr "Gitter-FĂĽhrungslinien-Ăśberschneidung" - -#: ../src/display/snap-indicator.cpp:103 -msgid "cusp node" -msgstr "spitzer Knoten" - -#: ../src/display/snap-indicator.cpp:106 -msgid "smooth node" -msgstr "weicher Knoten" - -#: ../src/display/snap-indicator.cpp:109 -msgid "path" -msgstr "Pfad" - -#: ../src/display/snap-indicator.cpp:112 -msgid "path (perpendicular)" -msgstr "Pfad (Senkrechte)" - -#: ../src/display/snap-indicator.cpp:115 -msgid "path (tangential)" -msgstr "Pfad (tangential)" - -#: ../src/display/snap-indicator.cpp:118 -msgid "path intersection" -msgstr "PfadĂĽberschneidung" - -#: ../src/display/snap-indicator.cpp:121 -msgid "guide-path intersection" -msgstr "FĂĽhrungslinie-Pfad-Ăśberschneidung" - -#: ../src/display/snap-indicator.cpp:124 -msgid "clip-path" -msgstr "Ausschneidungspfad" - -#: ../src/display/snap-indicator.cpp:127 -msgid "mask-path" -msgstr "Maskenpfad" - -#: ../src/display/snap-indicator.cpp:130 -msgid "bounding box corner" -msgstr "Ecken der Umrandungsbox" - -#: ../src/display/snap-indicator.cpp:133 -msgid "bounding box side" -msgstr "Seite der Umrandungsbox" - -#: ../src/display/snap-indicator.cpp:136 -msgid "page border" -msgstr "Seitenrand" - -#: ../src/display/snap-indicator.cpp:139 -msgid "line midpoint" -msgstr "Linienmittelpunkt" - -#: ../src/display/snap-indicator.cpp:142 -msgid "object midpoint" -msgstr "Objektmittelpunkt" - -#: ../src/display/snap-indicator.cpp:145 -msgid "object rotation center" -msgstr "Objekt-Rotationszentrum" - -#: ../src/display/snap-indicator.cpp:148 -msgid "bounding box side midpoint" -msgstr "Mitte der Umrandungslinie" - -#: ../src/display/snap-indicator.cpp:151 -msgid "bounding box midpoint" -msgstr "Mittelpunkt der Umrandung" - -#: ../src/display/snap-indicator.cpp:154 -msgid "page corner" -msgstr "Seitenecke" - -#: ../src/display/snap-indicator.cpp:157 -msgid "quadrant point" -msgstr "Viertelkreis-Punkt" - -#: ../src/display/snap-indicator.cpp:161 -msgid "corner" -msgstr "Ecken" - -#: ../src/display/snap-indicator.cpp:164 -msgid "text anchor" -msgstr "Textanker" - -#: ../src/display/snap-indicator.cpp:167 -msgid "text baseline" -msgstr "Text-Grundlinie" - -#: ../src/display/snap-indicator.cpp:170 -msgid "constrained angle" -msgstr "abhöängiger Winkel" - -#: ../src/display/snap-indicator.cpp:173 -msgid "constraint" -msgstr "erzwungen" - -#: ../src/display/snap-indicator.cpp:187 -msgid "Bounding box corner" -msgstr "Ecken der Umrandungsbox" - -#: ../src/display/snap-indicator.cpp:190 -msgid "Bounding box midpoint" -msgstr "Mittelpunkt der Umrandung" - -#: ../src/display/snap-indicator.cpp:193 -msgid "Bounding box side midpoint" -msgstr "Mitte der Umrandungslinie" - -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1319 -msgid "Smooth node" -msgstr "glatter Knoten" - -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1318 -msgid "Cusp node" -msgstr "Spitzer Knoten" - -#: ../src/display/snap-indicator.cpp:202 -msgid "Line midpoint" -msgstr "Linienmittelpunkt" - -#: ../src/display/snap-indicator.cpp:205 -msgid "Object midpoint" -msgstr "Objektmittelpunkt" - -#: ../src/display/snap-indicator.cpp:208 -msgid "Object rotation center" -msgstr "Objekt-Rotationszentrum" - -#: ../src/display/snap-indicator.cpp:212 -msgid "Handle" -msgstr "Anfasser" - -#: ../src/display/snap-indicator.cpp:215 -msgid "Path intersection" -msgstr "PfadĂĽberschneidung" - -#: ../src/display/snap-indicator.cpp:218 -msgid "Guide" -msgstr "FĂĽhrungslinien" - -#: ../src/display/snap-indicator.cpp:221 -msgid "Guide origin" -msgstr "FĂĽhrungslinienursprung" - -#: ../src/display/snap-indicator.cpp:224 -msgid "Convex hull corner" -msgstr "Konvexe HĂĽlllinienecke" - -#: ../src/display/snap-indicator.cpp:227 -msgid "Quadrant point" -msgstr "Quadrantenpunkt" - -#: ../src/display/snap-indicator.cpp:231 -msgid "Corner" -msgstr "Ecken" - -#: ../src/display/snap-indicator.cpp:234 -msgid "Text anchor" -msgstr "Text-anker" - -#: ../src/display/snap-indicator.cpp:237 -msgid "Multiple of grid spacing" -msgstr "Mehrfaches der Gitterweite" - -#: ../src/display/snap-indicator.cpp:268 -msgid " to " -msgstr " an " - -#: ../src/document.cpp:542 -#, c-format -msgid "New document %d" -msgstr "Neues Dokument %d" - -#: ../src/document.cpp:547 -#, fuzzy, c-format -msgid "Memory document %d" -msgstr "Dokument im Speicher %1" - -#: ../src/document.cpp:576 -msgid "Memory document %1" -msgstr "Dokument im Speicher %1" - -#: ../src/document.cpp:788 -#, c-format -msgid "Unnamed document %d" -msgstr "Unbenanntes Dokument %d" - -#: ../src/event-log.cpp:185 -msgid "[Unchanged]" -msgstr "[Unverändert]" - -#. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2386 -msgid "_Undo" -msgstr "_RĂĽckgängig" - -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2388 -msgid "_Redo" -msgstr "_Wiederherstellen" - -#: ../src/extension/dependency.cpp:235 -msgid "Dependency:" -msgstr "Abhängigkeit:" - -#: ../src/extension/dependency.cpp:236 -msgid " type: " -msgstr " Typ: " - -#: ../src/extension/dependency.cpp:237 -msgid " location: " -msgstr " Speicherort: " - -#: ../src/extension/dependency.cpp:238 -msgid " string: " -msgstr " Zeichenkette: " - -#: ../src/extension/dependency.cpp:241 -msgid " description: " -msgstr " Beschreibung: " - -#: ../src/extension/effect.cpp:41 -msgid " (No preferences)" -msgstr " (Keine Einstellungen)" - -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2160 -msgid "Extensions" -msgstr "Erweiterungen" - -#. This is some filler text, needs to change before relase -#: ../src/extension/error-file.cpp:52 -msgid "" -"One or more extensions failed to load\n" -"\n" -"The failed extensions have been skipped. Inkscape will continue to run " -"normally but those extensions will be unavailable. For details to " -"troubleshoot this problem, please refer to the error log located at: " -msgstr "" -"Eine oder mehrere Erweiterungen " -"konnten nicht geladen werden.\n" -"\n" -"Nicht verfĂĽgbare Eweiterungen wurden ausgelassen. Inkscape setzt seinen " -"normalen Ablauf fort, doch diese Erweiterungen können nicht benutzt werden. " -"Details zum Beheben des Problems finden sich in der Logdatei unter: " - -#: ../src/extension/error-file.cpp:66 -msgid "Show dialog on startup" -msgstr "Dialog beim Starten des Programmes anzeigen" - -#: ../src/extension/execution-env.cpp:144 -#, c-format -msgid "'%s' working, please wait..." -msgstr "»%s« arbeitet, bitte warten…" - -#. static int i = 0; -#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:263 -msgid "" -" This is caused by an improper .inx file for this extension. An improper ." -"inx file could have been caused by a faulty installation of Inkscape." -msgstr "" -" Dies wurde durch eine fehlerhafte .inx Datei dieser Erweiterung verursacht. " -"Eine fehlerhafte .inx Datei kann Folge einer Fehlinstallation von Inkscape " -"sein." - -#: ../src/extension/extension.cpp:273 -msgid "the extension is designed for Windows only." -msgstr "" - -#: ../src/extension/extension.cpp:278 -msgid "an ID was not defined for it." -msgstr "hierfĂĽr keine ID definiert wurde." - -#: ../src/extension/extension.cpp:282 -msgid "there was no name defined for it." -msgstr "hierfĂĽr kein Name definiert wurde." - -#: ../src/extension/extension.cpp:286 -msgid "the XML description of it got lost." -msgstr "die zugehörige XML-Beschreibung nicht auffindbar ist." - -#: ../src/extension/extension.cpp:290 -msgid "no implementation was defined for the extension." -msgstr "fĂĽr diese Erweiterung keine Implementierung existiert." - -#. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:297 -msgid "a dependency was not met." -msgstr "eine Abhängigkeit nicht aufgelöst werden konnte." - -#: ../src/extension/extension.cpp:317 -msgid "Extension \"" -msgstr "Erweiterung »" - -#: ../src/extension/extension.cpp:317 -msgid "\" failed to load because " -msgstr "«: Laden fehlgeschlagen, da " - -#: ../src/extension/extension.cpp:666 -#, c-format -msgid "Could not create extension error log file '%s'" -msgstr "Fehlerprotokolldatei »%s« konnte nicht erweitert oder erzeugt werden." - -#: ../src/extension/extension.cpp:774 -#: ../share/extensions/webslicer_create_rect.inx.h:2 -msgid "Name:" -msgstr "Name:" - -#: ../src/extension/extension.cpp:775 -msgid "ID:" -msgstr "Kennung:" - -#: ../src/extension/extension.cpp:776 -msgid "State:" -msgstr "Status:" - -#: ../src/extension/extension.cpp:776 -msgid "Loaded" -msgstr "Geladen" - -#: ../src/extension/extension.cpp:776 -msgid "Unloaded" -msgstr "Nicht geladen" - -#: ../src/extension/extension.cpp:776 -msgid "Deactivated" -msgstr "Deaktiviert" - -#: ../src/extension/extension.cpp:816 -msgid "" -"Currently there is no help available for this Extension. Please look on the " -"Inkscape website or ask on the mailing lists if you have questions regarding " -"this extension." -msgstr "" -"FĂĽr diese Erweiterung ist zur Zeit keine Hilfe verfĂĽgbar. Besuchen Sie die " -"Inkscape Webseite oder wenden Sie sich an die Mailing List wenn Sie Fragen " -"bezĂĽglich dieser Erweiterung haben." - -#: ../src/extension/implementation/script.cpp:1037 -msgid "" -"Inkscape has received additional data from the script executed. The script " -"did not return an error, but this may indicate the results will not be as " -"expected." -msgstr "" -"Das aufgerufene Skript hat zusätzliche Daten an Inkscape ĂĽbergeben. Es wurde " -"keine Fehlermeldung vom Skript zurĂĽckgegeben, doch das Resultat ist " -"möglicherweise unbrauchbar." - -#: ../src/extension/init.cpp:296 -msgid "Null external module directory name. Modules will not be loaded." -msgstr "Modulverzeichnis ist nicht verfĂĽgbar. Module werden nicht geladen." - -#: ../src/extension/init.cpp:310 -#: ../src/extension/internal/filter/filter-file.cpp:59 -#, c-format -msgid "" -"Modules directory (%s) is unavailable. External modules in that directory " -"will not be loaded." -msgstr "" -"Das Modulverzeichnis (%s) ist nicht verfĂĽgbar. Externe Module in diesem " -"Verzeichnis werden nicht geladen." - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 -msgid "Adaptive Threshold" -msgstr "Adaptiver Schwellwert" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 -#: ../src/extension/internal/bitmap/raise.cpp:42 -#: ../src/extension/internal/bitmap/sample.cpp:41 -#: ../src/extension/internal/bluredge.cpp:138 -#: ../src/ui/dialog/object-attributes.cpp:68 -#: ../src/ui/dialog/object-attributes.cpp:77 -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/foldablebox.inx.h:2 -msgid "Width:" -msgstr "Breite:" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 -#: ../src/extension/internal/bitmap/raise.cpp:43 -#: ../src/extension/internal/bitmap/sample.cpp:42 -#: ../src/ui/dialog/object-attributes.cpp:69 -#: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 -msgid "Height:" -msgstr "Höhe:" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 -#: ../share/extensions/printing_marks.inx.h:12 -msgid "Offset:" -msgstr "Versatz:" - -# name des Effekte-submenĂĽ, das alle bitmap-effekte beinhält! -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 -#: ../src/extension/internal/bitmap/addNoise.cpp:58 -#: ../src/extension/internal/bitmap/blur.cpp:45 -#: ../src/extension/internal/bitmap/channel.cpp:64 -#: ../src/extension/internal/bitmap/charcoal.cpp:45 -#: ../src/extension/internal/bitmap/colorize.cpp:56 -#: ../src/extension/internal/bitmap/contrast.cpp:46 -#: ../src/extension/internal/bitmap/crop.cpp:75 -#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 -#: ../src/extension/internal/bitmap/despeckle.cpp:41 -#: ../src/extension/internal/bitmap/edge.cpp:43 -#: ../src/extension/internal/bitmap/emboss.cpp:45 -#: ../src/extension/internal/bitmap/enhance.cpp:40 -#: ../src/extension/internal/bitmap/equalize.cpp:40 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 -#: ../src/extension/internal/bitmap/implode.cpp:43 -#: ../src/extension/internal/bitmap/level.cpp:49 -#: ../src/extension/internal/bitmap/levelChannel.cpp:71 -#: ../src/extension/internal/bitmap/medianFilter.cpp:43 -#: ../src/extension/internal/bitmap/modulate.cpp:48 -#: ../src/extension/internal/bitmap/negate.cpp:41 -#: ../src/extension/internal/bitmap/normalize.cpp:41 -#: ../src/extension/internal/bitmap/oilPaint.cpp:43 -#: ../src/extension/internal/bitmap/opacity.cpp:44 -#: ../src/extension/internal/bitmap/raise.cpp:48 -#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 -#: ../src/extension/internal/bitmap/sample.cpp:46 -#: ../src/extension/internal/bitmap/shade.cpp:48 -#: ../src/extension/internal/bitmap/sharpen.cpp:45 -#: ../src/extension/internal/bitmap/solarize.cpp:45 -#: ../src/extension/internal/bitmap/spread.cpp:43 -#: ../src/extension/internal/bitmap/swirl.cpp:43 -#: ../src/extension/internal/bitmap/threshold.cpp:44 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 -#: ../src/extension/internal/bitmap/wave.cpp:45 -msgid "Raster" -msgstr "Raster" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 -msgid "Apply adaptive thresholding to selected bitmap(s)" -msgstr "Wende adaptiven Schwellwert auf ausgewählte(s) Bitmap(s) an" - -#: ../src/extension/internal/bitmap/addNoise.cpp:45 -msgid "Add Noise" -msgstr "Rauschen hinzufĂĽgen" - -#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); -#: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 -#: ../src/extension/internal/filter/distort.h:69 -#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -#: ../src/ui/dialog/object-attributes.cpp:49 -#: ../share/extensions/jessyInk_effects.inx.h:5 -#: ../share/extensions/jessyInk_export.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:5 -#: ../share/extensions/webslicer_create_rect.inx.h:14 -msgid "Type:" -msgstr "Type:" - -#: ../src/extension/internal/bitmap/addNoise.cpp:48 -msgid "Uniform Noise" -msgstr "Gleichmäßiges Rauschen" - -#: ../src/extension/internal/bitmap/addNoise.cpp:49 -msgid "Gaussian Noise" -msgstr "GauĂźsches Rauschen" - -#: ../src/extension/internal/bitmap/addNoise.cpp:50 -msgid "Multiplicative Gaussian Noise" -msgstr "Multiplikatives GauĂźsches Rauschen " - -#: ../src/extension/internal/bitmap/addNoise.cpp:51 -msgid "Impulse Noise" -msgstr "Störungsrauschen" - -#: ../src/extension/internal/bitmap/addNoise.cpp:52 -msgid "Laplacian Noise" -msgstr "Laplace-Rauschen" - -#: ../src/extension/internal/bitmap/addNoise.cpp:53 -msgid "Poisson Noise" -msgstr "Schrotrauschen" - -#: ../src/extension/internal/bitmap/addNoise.cpp:60 -msgid "Add random noise to selected bitmap(s)" -msgstr "FĂĽge den Bitmap(s) zufälliges Rauschen hinzu" - -#: ../src/extension/internal/bitmap/blur.cpp:38 -#: ../src/extension/internal/filter/blurs.h:54 -#: ../src/extension/internal/filter/paint.h:710 -#: ../src/extension/internal/filter/transparency.h:343 -msgid "Blur" -msgstr "Unschärfe" - -#: ../src/extension/internal/bitmap/blur.cpp:40 -#: ../src/extension/internal/bitmap/charcoal.cpp:40 -#: ../src/extension/internal/bitmap/edge.cpp:39 -#: ../src/extension/internal/bitmap/emboss.cpp:40 -#: ../src/extension/internal/bitmap/medianFilter.cpp:39 -#: ../src/extension/internal/bitmap/oilPaint.cpp:39 -#: ../src/extension/internal/bitmap/sharpen.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 -msgid "Radius:" -msgstr "Radius:" - -#: ../src/extension/internal/bitmap/blur.cpp:41 -#: ../src/extension/internal/bitmap/charcoal.cpp:41 -#: ../src/extension/internal/bitmap/emboss.cpp:41 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 -#: ../src/extension/internal/bitmap/sharpen.cpp:41 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -msgid "Sigma:" -msgstr "Sigma" - -#: ../src/extension/internal/bitmap/blur.cpp:47 -msgid "Blur selected bitmap(s)" -msgstr "Gewählte Bitmaps verunschärfen" - -#: ../src/extension/internal/bitmap/channel.cpp:48 -msgid "Channel" -msgstr "Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:50 -msgid "Layer:" -msgstr "Ebene" - -#: ../src/extension/internal/bitmap/channel.cpp:51 -#: ../src/extension/internal/bitmap/levelChannel.cpp:55 -msgid "Red Channel" -msgstr "Rotkanal" - -#: ../src/extension/internal/bitmap/channel.cpp:52 -#: ../src/extension/internal/bitmap/levelChannel.cpp:56 -msgid "Green Channel" -msgstr "GrĂĽnkanal" - -#: ../src/extension/internal/bitmap/channel.cpp:53 -#: ../src/extension/internal/bitmap/levelChannel.cpp:57 -msgid "Blue Channel" -msgstr "Blaukanal" - -#: ../src/extension/internal/bitmap/channel.cpp:54 -#: ../src/extension/internal/bitmap/levelChannel.cpp:58 -msgid "Cyan Channel" -msgstr "Cyan-Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:55 -#: ../src/extension/internal/bitmap/levelChannel.cpp:59 -msgid "Magenta Channel" -msgstr "Magenta-Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:56 -#: ../src/extension/internal/bitmap/levelChannel.cpp:60 -msgid "Yellow Channel" -msgstr "Gelb-Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:57 -#: ../src/extension/internal/bitmap/levelChannel.cpp:61 -msgid "Black Channel" -msgstr "Schwarz-Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:58 -#: ../src/extension/internal/bitmap/levelChannel.cpp:62 -msgid "Opacity Channel" -msgstr "Alpha-Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:59 -#: ../src/extension/internal/bitmap/levelChannel.cpp:63 -msgid "Matte Channel" -msgstr "Matter Kanal" - -#: ../src/extension/internal/bitmap/channel.cpp:66 -msgid "Extract specific channel from image" -msgstr "Extrahiere bestimmen Farbkanal aus Bild" - -#: ../src/extension/internal/bitmap/charcoal.cpp:38 -msgid "Charcoal" -msgstr "Kohlezeichnung" - -#: ../src/extension/internal/bitmap/charcoal.cpp:47 -msgid "Apply charcoal stylization to selected bitmap(s)" -msgstr "Kohlezeichnungseffekt auf Bitmap(s) anwenden" - -#: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 -msgid "Colorize" -msgstr "Einfärben" - -#: ../src/extension/internal/bitmap/colorize.cpp:58 -msgid "Colorize selected bitmap(s) with specified color, using given opacity" -msgstr "Färbt ausgewählte Bitmap(s) mit gegebener Farbe und Deckkraft ein." - -#: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 -msgid "Contrast" -msgstr "Kontrast" - -#: ../src/extension/internal/bitmap/contrast.cpp:42 -msgid "Adjust:" -msgstr "Anpassen" - -#: ../src/extension/internal/bitmap/contrast.cpp:48 -msgid "Increase or decrease contrast in bitmap(s)" -msgstr "Erhöhe oder erniedrige Kontrast in Bitmap(s)" - -#: ../src/extension/internal/bitmap/crop.cpp:66 -#: ../src/extension/internal/filter/bumps.h:86 -#: ../src/extension/internal/filter/bumps.h:315 -msgid "Crop" -msgstr "Schneiden" - -#: ../src/extension/internal/bitmap/crop.cpp:68 -msgid "Top (px):" -msgstr "Oben (px):" - -#: ../src/extension/internal/bitmap/crop.cpp:69 -msgid "Bottom (px):" -msgstr "Unten (PX):" - -#: ../src/extension/internal/bitmap/crop.cpp:70 -msgid "Left (px):" -msgstr "Links (px):" - -#: ../src/extension/internal/bitmap/crop.cpp:71 -msgid "Right (px):" -msgstr "Rechts (px):" - -#: ../src/extension/internal/bitmap/crop.cpp:77 -msgid "Crop selected bitmap(s)." -msgstr "Gewählte Bitmaps schneiden" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 -msgid "Cycle Colormap" -msgstr "Rotiere Farbpalette" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 -#: ../src/extension/internal/bitmap/spread.cpp:39 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/widgets/spray-toolbar.cpp:208 -msgid "Amount:" -msgstr "Menge" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 -msgid "Cycle colormap(s) of selected bitmap(s)" -msgstr "Rotiere Farbpalette(n) der selektierten Bilder" - -#: ../src/extension/internal/bitmap/despeckle.cpp:36 -msgid "Despeckle" -msgstr "Entflackern" - -#: ../src/extension/internal/bitmap/despeckle.cpp:43 -msgid "Reduce speckle noise of selected bitmap(s)" -msgstr "Verringert Flecken bei ausgewählten Bildern." - -#: ../src/extension/internal/bitmap/edge.cpp:37 -msgid "Edge" -msgstr "Kante" - -#: ../src/extension/internal/bitmap/edge.cpp:45 -msgid "Highlight edges of selected bitmap(s)" -msgstr "Betone Kanten der ausgewählten Bilder." - -#: ../src/extension/internal/bitmap/emboss.cpp:38 -msgid "Emboss" -msgstr "Kanten hervorheben" - -#: ../src/extension/internal/bitmap/emboss.cpp:47 -msgid "Emboss selected bitmap(s); highlight edges with 3D effect" -msgstr "" -"Kanten in Ausgewählten Bitmaps herausheben -- Hebt Kanten mit einem 3D-" -"Effekt hervor." - -#: ../src/extension/internal/bitmap/enhance.cpp:35 -msgid "Enhance" -msgstr "Entrauschen" - -#: ../src/extension/internal/bitmap/enhance.cpp:42 -msgid "Enhance selected bitmap(s); minimize noise" -msgstr "Verbessert ausgewählte Bitmap(s) -- minimiert Rauschen." - -#: ../src/extension/internal/bitmap/equalize.cpp:35 -msgid "Equalize" -msgstr "Ausgleichen" - -#: ../src/extension/internal/bitmap/equalize.cpp:42 -msgid "Equalize selected bitmap(s); histogram equalization" -msgstr "Gleicht ausgewählte Bitmap(s) aus -- Ausgleich anhand des Histogramms." - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 -#: ../src/filter-enums.cpp:28 -msgid "Gaussian Blur" -msgstr "GauĂźscher Weichzeichner" - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 -#: ../src/extension/internal/bitmap/implode.cpp:39 -#: ../src/extension/internal/bitmap/solarize.cpp:41 -msgid "Factor:" -msgstr "Faktor" - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 -msgid "Gaussian blur selected bitmap(s)" -msgstr "GauĂźschen Weichzeichner auf gewählte Bitmaps anwenden." - -#: ../src/extension/internal/bitmap/implode.cpp:37 -msgid "Implode" -msgstr "Implodieren" - -#: ../src/extension/internal/bitmap/implode.cpp:45 -msgid "Implode selected bitmap(s)" -msgstr "Implodiert ausgewählte Bitmaps." - -#: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 -#: ../src/extension/internal/filter/image.h:56 -#: ../src/extension/internal/filter/morphology.h:66 -#: ../src/extension/internal/filter/paint.h:345 -msgid "Level" -msgstr "Ebene" - -#: ../src/extension/internal/bitmap/level.cpp:43 -#: ../src/extension/internal/bitmap/levelChannel.cpp:65 -msgid "Black Point:" -msgstr "Schwarzer Punkt" - -#: ../src/extension/internal/bitmap/level.cpp:44 -#: ../src/extension/internal/bitmap/levelChannel.cpp:66 -msgid "White Point:" -msgstr "WeiĂźer Punkt" - -#: ../src/extension/internal/bitmap/level.cpp:45 -#: ../src/extension/internal/bitmap/levelChannel.cpp:67 -msgid "Gamma Correction:" -msgstr "Gammakorrektur" - -#: ../src/extension/internal/bitmap/level.cpp:51 -msgid "" -"Level selected bitmap(s) by scaling values falling between the given ranges " -"to the full color range" -msgstr "" -"Ausgewählte Bitmap(s) angleichen, in dem Werte im angegebenen Bereich auf " -"die volle Farbskala abgebildet werden" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:52 -msgid "Level (with Channel)" -msgstr "Ebene (mit Kanal)" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 -msgid "Channel:" -msgstr "Kanal:" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:73 -msgid "" -"Level the specified channel of selected bitmap(s) by scaling values falling " -"between the given ranges to the full color range" -msgstr "" -"Bestimmten Kanal in ausgewählten Bitmaps angleichen, indem Werte im " -"angegebenen Bereich zum vollen Farbumfang hochskaliert werden." - -#: ../src/extension/internal/bitmap/medianFilter.cpp:37 -msgid "Median" -msgstr "Zentralwert" - -#: ../src/extension/internal/bitmap/medianFilter.cpp:45 -msgid "" -"Replace each pixel component with the median color in a circular neighborhood" -msgstr "" -"Jede Pixelkomponente mit dem Zentralwert aus einer kreisförmigen Umgebung " -"ersetzen" - -#: ../src/extension/internal/bitmap/modulate.cpp:40 -msgid "HSB Adjust" -msgstr "HSB anpassen" - -#: ../src/extension/internal/bitmap/modulate.cpp:42 -msgid "Hue:" -msgstr "Farbton" - -#: ../src/extension/internal/bitmap/modulate.cpp:43 -msgid "Saturation:" -msgstr "Sättigung" - -#: ../src/extension/internal/bitmap/modulate.cpp:44 -msgid "Brightness:" -msgstr "Glanz:" - -#: ../src/extension/internal/bitmap/modulate.cpp:50 -msgid "" -"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" -msgstr "Farbwert, Sättigung und Helligkeit in ausgewählten Bitmaps anpassen" - -#: ../src/extension/internal/bitmap/negate.cpp:36 -msgid "Negate" -msgstr "Negativ" - -#: ../src/extension/internal/bitmap/negate.cpp:43 -msgid "Negate (take inverse) selected bitmap(s)" -msgstr "Gewählte Bitmaps invertieren." - -#: ../src/extension/internal/bitmap/normalize.cpp:36 -msgid "Normalize" -msgstr "Normalisieren" - -#: ../src/extension/internal/bitmap/normalize.cpp:43 -msgid "" -"Normalize selected bitmap(s), expanding color range to the full possible " -"range of color" -msgstr "" -"Normalisiert die ausgewählten Bitmaps, streckt das Farbspektrum auf die " -"volle Breite." - -#: ../src/extension/internal/bitmap/oilPaint.cpp:37 -msgid "Oil Paint" -msgstr "Ă–lgemälde" - -#: ../src/extension/internal/bitmap/oilPaint.cpp:45 -msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" -msgstr "" -"Lässt ausgewählte Bitmap(s) aussehen, als ob sie mit Ă–lfarbe gemalt seien." - -#: ../src/extension/internal/bitmap/opacity.cpp:38 -#: ../src/extension/internal/filter/blurs.h:333 -#: ../src/extension/internal/filter/transparency.h:279 -#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 -#: ../src/widgets/tweak-toolbar.cpp:334 -#: ../share/extensions/interp_att_g.inx.h:16 -msgid "Opacity" -msgstr "Deckkraft" - -#: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/widgets/dropper-toolbar.cpp:83 -msgid "Opacity:" -msgstr "Deckkraft:" - -#: ../src/extension/internal/bitmap/opacity.cpp:46 -msgid "Modify opacity channel(s) of selected bitmap(s)." -msgstr "Modifiziert den Alpha-Kanal der ausgewählten Bitmap(s)." - -#: ../src/extension/internal/bitmap/raise.cpp:40 -msgid "Raise" -msgstr "Anheben" - -#: ../src/extension/internal/bitmap/raise.cpp:44 -msgid "Raised" -msgstr "Angehoben" - -#: ../src/extension/internal/bitmap/raise.cpp:50 -msgid "" -"Alter lightness the edges of selected bitmap(s) to create a raised appearance" -msgstr "" -"Helligkeit von Farbkanten in ausgewählten Bitmap(s) anpassen, um den " -"Anschein herausgehobener Ecken zu erwecken." - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 -msgid "Reduce Noise" -msgstr "Rauschen vermindern" - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 -#: ../share/extensions/jessyInk_effects.inx.h:3 -#: ../share/extensions/jessyInk_view.inx.h:3 -#: ../share/extensions/lindenmayer.inx.h:5 -msgid "Order:" -msgstr "Anordnung:" - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 -msgid "" -"Reduce noise in selected bitmap(s) using a noise peak elimination filter" -msgstr "Rauschen in ausgewählten Bitmaps durch Rauschspitzenfilter verringern" - -#: ../src/extension/internal/bitmap/sample.cpp:39 -msgid "Resample" -msgstr "Auflösung ändern" - -#: ../src/extension/internal/bitmap/sample.cpp:48 -msgid "" -"Alter the resolution of selected image by resizing it to the given pixel size" -msgstr "" -"Ă„ndert die Auflösung des ausgewählten Bitmaps, indem es auf die gegebene " -"Größe skaliert wird." - -#: ../src/extension/internal/bitmap/shade.cpp:40 -msgid "Shade" -msgstr "Schattieren" - -#: ../src/extension/internal/bitmap/shade.cpp:42 -msgid "Azimuth:" -msgstr "Azimut" - -#: ../src/extension/internal/bitmap/shade.cpp:43 -msgid "Elevation:" -msgstr "Anhebung" - -#: ../src/extension/internal/bitmap/shade.cpp:44 -msgid "Colored Shading" -msgstr "Schattenfarbe" - -#: ../src/extension/internal/bitmap/shade.cpp:50 -msgid "Shade selected bitmap(s) simulating distant light source" -msgstr "Ausgewählte Bitmaps mittels simulierter entfernter Lichtquelle tönen" - -#: ../src/extension/internal/bitmap/sharpen.cpp:47 -msgid "Sharpen selected bitmap(s)" -msgstr "Schärft ausgewählte Bitmap(s)." - -#: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 -msgid "Solarize" -msgstr "Solarisieren" - -#: ../src/extension/internal/bitmap/solarize.cpp:47 -msgid "Solarize selected bitmap(s), like overexposing photographic film" -msgstr "Ausgewählte Bitmaps solarisieren, wie ĂĽbersättigter Film" - -#: ../src/extension/internal/bitmap/spread.cpp:37 -msgid "Dither" -msgstr "Zittern" - -#: ../src/extension/internal/bitmap/spread.cpp:45 -msgid "" -"Randomly scatter pixels in selected bitmap(s), within the given radius of " -"the original position" -msgstr "" -"Verteilt die Pixel in ausgewählten Bitmap(s) zufällig im angegebenen Radius " -"um den Ursprung." - -#: ../src/extension/internal/bitmap/swirl.cpp:39 -msgid "Degrees:" -msgstr "Grad" - -#: ../src/extension/internal/bitmap/swirl.cpp:45 -msgid "Swirl selected bitmap(s) around center point" -msgstr "Verwirbelt ausgewählte Bitmap(s) um den Mittelpunkt." - -#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html -#: ../src/extension/internal/bitmap/threshold.cpp:38 -msgid "Threshold" -msgstr "Schwellwert" - -#: ../src/extension/internal/bitmap/threshold.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:146 -msgid "Threshold:" -msgstr "Schwellwert:" - -#: ../src/extension/internal/bitmap/threshold.cpp:46 -msgid "Threshold selected bitmap(s)" -msgstr "Schwellwert ausgewählter Bitmap(s)" - -#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 -msgid "Unsharp Mask" -msgstr "Unscharfe Maske" - -#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 -msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" -msgstr "Ausgewählte Bitmaps mittels Unscharfe-Maske-Algorithmen schärfen" - -#: ../src/extension/internal/bitmap/wave.cpp:38 -msgid "Wave" -msgstr "Welle" - -#: ../src/extension/internal/bitmap/wave.cpp:40 -msgid "Amplitude:" -msgstr "Amplitude" - -#: ../src/extension/internal/bitmap/wave.cpp:41 -msgid "Wavelength:" -msgstr "Wellenlänge" - -#: ../src/extension/internal/bitmap/wave.cpp:47 -msgid "Alter selected bitmap(s) along sine wave" -msgstr "Ausgewählte Bitmap(s) entlang Sinuskurve verformen" - -#: ../src/extension/internal/bluredge.cpp:136 -msgid "Inset/Outset Halo" -msgstr "Schrumpfen/Erweitern der Halo" - -#: ../src/extension/internal/bluredge.cpp:138 -msgid "Width in px of the halo" -msgstr "Breite der Halo in Pixeln" - -#: ../src/extension/internal/bluredge.cpp:139 -msgid "Number of steps:" -msgstr "Anzahl der Schritte:" - -#: ../src/extension/internal/bluredge.cpp:139 -msgid "Number of inset/outset copies of the object to make" -msgstr "Anzahl der geschrumpften/erweiterten Kopien des Objekts" - -#: ../src/extension/internal/bluredge.cpp:143 -#: ../share/extensions/extrude.inx.h:5 -#: ../share/extensions/generate_voronoi.inx.h:9 -#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 -#: ../share/extensions/pathalongpath.inx.h:18 -#: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 -msgid "Generate from Path" -msgstr "Aus Pfad erzeugen" - -#: ../src/extension/internal/cairo-ps-out.cpp:327 -#: ../share/extensions/ps_input.inx.h:3 -msgid "PostScript" -msgstr "Postscript" - -#: ../src/extension/internal/cairo-ps-out.cpp:329 -#: ../src/extension/internal/cairo-ps-out.cpp:368 -msgid "Restrict to PS level:" -msgstr "Auf PostScript Level einschränken" - -#: ../src/extension/internal/cairo-ps-out.cpp:330 -#: ../src/extension/internal/cairo-ps-out.cpp:369 -msgid "PostScript level 3" -msgstr "PostScript Level 3" - -#: ../src/extension/internal/cairo-ps-out.cpp:331 -#: ../src/extension/internal/cairo-ps-out.cpp:370 -msgid "PostScript level 2" -msgstr "Postscript Level 2" - -#: ../src/extension/internal/cairo-ps-out.cpp:333 -#: ../src/extension/internal/cairo-ps-out.cpp:372 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -#: ../src/extension/internal/emf-inout.cpp:3534 -#: ../src/extension/internal/wmf-inout.cpp:3126 -msgid "Convert texts to paths" -msgstr "Texte in Pfade umwandeln" - -#: ../src/extension/internal/cairo-ps-out.cpp:334 -msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -msgstr "PS+LaTeX: Text in PS weglassen und LaTeX Datei erstellen" - -#: ../src/extension/internal/cairo-ps-out.cpp:335 -#: ../src/extension/internal/cairo-ps-out.cpp:374 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -msgid "Rasterize filter effects" -msgstr "Filtereffekte in Raster umwandeln" - -#: ../src/extension/internal/cairo-ps-out.cpp:336 -#: ../src/extension/internal/cairo-ps-out.cpp:375 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 -msgid "Resolution for rasterization (dpi):" -msgstr "Auflösung des Rasters (dpi)" - -#: ../src/extension/internal/cairo-ps-out.cpp:337 -#: ../src/extension/internal/cairo-ps-out.cpp:376 -msgid "Output page size" -msgstr "Seitengröße der Ausgabe" - -#: ../src/extension/internal/cairo-ps-out.cpp:338 -#: ../src/extension/internal/cairo-ps-out.cpp:377 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 -msgid "Use document's page size" -msgstr "Seitengröße vom Dokument nutzen" - -#: ../src/extension/internal/cairo-ps-out.cpp:339 -#: ../src/extension/internal/cairo-ps-out.cpp:378 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 -msgid "Use exported object's size" -msgstr "Nutze exportierte Objektgröße" - -#: ../src/extension/internal/cairo-ps-out.cpp:341 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 -msgid "Bleed/margin (mm):" -msgstr "Beschnitt/Umrandung (mm):" - -#: ../src/extension/internal/cairo-ps-out.cpp:342 -#: ../src/extension/internal/cairo-ps-out.cpp:381 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 -msgid "Limit export to the object with ID:" -msgstr "Export einschränken auf das Objekt mit ID" - -#: ../src/extension/internal/cairo-ps-out.cpp:346 -#: ../share/extensions/ps_input.inx.h:2 -msgid "PostScript (*.ps)" -msgstr "PostScript (*.ps)" - -#: ../src/extension/internal/cairo-ps-out.cpp:347 -msgid "PostScript File" -msgstr "Postscript-Datei" - -#: ../src/extension/internal/cairo-ps-out.cpp:366 -#: ../share/extensions/eps_input.inx.h:3 -msgid "Encapsulated PostScript" -msgstr "Encapsulated Postscript" - -#: ../src/extension/internal/cairo-ps-out.cpp:373 -msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -msgstr "EPS+LaTeX: Text in EPS weglassen und LaTeX Datei erstellen" - -#: ../src/extension/internal/cairo-ps-out.cpp:380 -msgid "Bleed/margin (mm)" -msgstr "Beschnitt/Umrandung (mm)" - -#: ../src/extension/internal/cairo-ps-out.cpp:385 -#: ../share/extensions/eps_input.inx.h:2 -msgid "Encapsulated PostScript (*.eps)" -msgstr "Encapsulated Postscript (*.eps)" - -#: ../src/extension/internal/cairo-ps-out.cpp:386 -msgid "Encapsulated PostScript File" -msgstr "Encapsulated-Postscript-Datei" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 -msgid "Restrict to PDF version:" -msgstr "Auf PDF Version einschränken" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 -msgid "PDF 1.5" -msgstr "PDF 1.5" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 -msgid "PDF 1.4" -msgstr "PDF 1.4" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" -msgstr "PDF+LaTeX: Text in PDF weglassen und LaTeX Datei erstellen" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 -msgid "Output page size:" -msgstr "Seitengröße der Ausgabe:" - -#: ../src/extension/internal/cdr-input.cpp:102 -#: ../src/extension/internal/pdf-input-cairo.cpp:74 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 -#: ../src/extension/internal/vsd-input.cpp:101 -msgid "Select page:" -msgstr "Seite auswählen:" - -#. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:114 -#: ../src/extension/internal/pdf-input-cairo.cpp:92 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 -#: ../src/extension/internal/vsd-input.cpp:113 -#, c-format -msgid "out of %i" -msgstr "von %i" - -#: ../src/extension/internal/cdr-input.cpp:145 -#: ../src/extension/internal/vsd-input.cpp:144 -#, fuzzy -msgid "Page Selector" -msgstr "Auswahlwerkzeug" - -#: ../src/extension/internal/cdr-input.cpp:274 -msgid "Corel DRAW Input" -msgstr "Corel DRAW einlesen" - -#: ../src/extension/internal/cdr-input.cpp:279 -msgid "Corel DRAW 7-X4 files (*.cdr)" -msgstr "Corel DRAW 7-X4 Dateien (*.cdr)" - -#: ../src/extension/internal/cdr-input.cpp:280 -msgid "Open files saved in Corel DRAW 7-X4" -msgstr "In Corel DRAW 7-X4 gespeicherte Dateien öffnen" - -#: ../src/extension/internal/cdr-input.cpp:287 -msgid "Corel DRAW templates input" -msgstr "Corel DRAW Vorlagen einlesen" - -#: ../src/extension/internal/cdr-input.cpp:292 -msgid "Corel DRAW 7-13 template files (*.cdt)" -msgstr "Corel DRAW 7-13 Vorlagendateien (.cdt)" - -#: ../src/extension/internal/cdr-input.cpp:293 -msgid "Open files saved in Corel DRAW 7-13" -msgstr "In Corel DRAW 7-13 gespeicherte Dateien öffnen" - -#: ../src/extension/internal/cdr-input.cpp:300 -msgid "Corel DRAW Compressed Exchange files input" -msgstr "Corel DRAW Compressed Exchange Datei einlesen" - -#: ../src/extension/internal/cdr-input.cpp:305 -msgid "Corel DRAW Compressed Exchange files (*.ccx)" -msgstr "Corel DRAW Komprimierte Exchange Datei (.ccx)" - -#: ../src/extension/internal/cdr-input.cpp:306 -msgid "Open compressed exchange files saved in Corel DRAW" -msgstr "" -"Ă–ffnen einer komprimierten Exchange Datei, die in Corel DRAW gespeichert " -"wurde" - -#: ../src/extension/internal/cdr-input.cpp:313 -msgid "Corel DRAW Presentation Exchange files input" -msgstr "Corel DRAW Presentations Exchange Datei einlesen" - -#: ../src/extension/internal/cdr-input.cpp:318 -msgid "Corel DRAW Presentation Exchange files (*.cmx)" -msgstr "Corel DRAW Presentations Exchange Datei (.cmx)" - -#: ../src/extension/internal/cdr-input.cpp:319 -msgid "Open presentation exchange files saved in Corel DRAW" -msgstr "" -"Ă–ffnen einer Presentation Exchange Datei, die in Corel DRAW gespeichert wurde" - -#: ../src/extension/internal/emf-inout.cpp:3518 -msgid "EMF Input" -msgstr "EMF einlesen" - -#: ../src/extension/internal/emf-inout.cpp:3523 -msgid "Enhanced Metafiles (*.emf)" -msgstr "Enhanced Windows-Metafile (*.emf)" - -# !!! -#: ../src/extension/internal/emf-inout.cpp:3524 -msgid "Enhanced Metafiles" -msgstr "Enhanced Metafiles" - -#: ../src/extension/internal/emf-inout.cpp:3532 -msgid "EMF Output" -msgstr "EMF-Ausgabe" - -#: ../src/extension/internal/emf-inout.cpp:3535 -#: ../src/extension/internal/wmf-inout.cpp:3127 -msgid "Map Unicode to Symbol font" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3536 -#: ../src/extension/internal/wmf-inout.cpp:3128 -msgid "Map Unicode to Wingdings" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3537 -#: ../src/extension/internal/wmf-inout.cpp:3129 -msgid "Map Unicode to Zapf Dingbats" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3538 -#: ../src/extension/internal/wmf-inout.cpp:3130 -msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3539 -#: ../src/extension/internal/wmf-inout.cpp:3131 -msgid "Compensate for PPT font bug" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3540 -#: ../src/extension/internal/wmf-inout.cpp:3132 -msgid "Convert dashed/dotted lines to single lines" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3541 -#: ../src/extension/internal/wmf-inout.cpp:3133 -#, fuzzy -msgid "Convert gradients to colored polygon series" -msgstr "Farbverlauf invertieren" - -#: ../src/extension/internal/emf-inout.cpp:3542 -msgid "Use native rectangular linear gradients" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3543 -msgid "Map all fill patterns to standard EMF hatches" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3544 -#, fuzzy -msgid "Ignore image rotations" -msgstr "Rotationszentrum" - -#: ../src/extension/internal/emf-inout.cpp:3548 -msgid "Enhanced Metafile (*.emf)" -msgstr "Enhanced Metafile (*.emf)" - -#: ../src/extension/internal/emf-inout.cpp:3549 -msgid "Enhanced Metafile" -msgstr "Enhanced Metafile" - -#: ../src/extension/internal/filter/bevels.h:53 -msgid "Diffuse Light" -msgstr "Diffuses Licht" - -#: ../src/extension/internal/filter/bevels.h:55 -#: ../src/extension/internal/filter/bevels.h:135 -#: ../src/extension/internal/filter/bevels.h:219 -#: ../src/extension/internal/filter/paint.h:89 -#: ../src/extension/internal/filter/paint.h:340 -msgid "Smoothness" -msgstr "Glattheit" - -#: ../src/extension/internal/filter/bevels.h:56 -#: ../src/extension/internal/filter/bevels.h:137 -#: ../src/extension/internal/filter/bevels.h:221 -msgid "Elevation (°)" -msgstr "Anhebung (°)" +#: ../src/extension/internal/filter/bevels.h:56 +#: ../src/extension/internal/filter/bevels.h:137 +#: ../src/extension/internal/filter/bevels.h:221 +msgid "Elevation (°)" +msgstr "Anhebung (°)" #: ../src/extension/internal/filter/bevels.h:57 #: ../src/extension/internal/filter/bevels.h:138 @@ -6841,8 +5047,8 @@ msgstr "Hervorhebungsfarbe:" #: ../src/extension/internal/filter/color.h:1615 #: ../src/extension/internal/filter/distort.h:95 #: ../src/extension/internal/filter/distort.h:204 -#: ../src/extension/internal/filter/filter-file.cpp:151 #: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter-file.cpp:151 #: ../src/extension/internal/filter/image.h:61 #: ../src/extension/internal/filter/morphology.h:75 #: ../src/extension/internal/filter/morphology.h:202 @@ -7048,7 +5254,7 @@ msgstr "Erosion" #: ../src/extension/internal/filter/blurs.h:336 #: ../src/extension/internal/filter/color.h:1205 #: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:111 msgid "Background color" msgstr "Hintergrundfarbe" @@ -7072,7 +5278,7 @@ msgstr "Misch-Typ:" #: ../src/extension/internal/filter/paint.h:702 #: ../src/extension/internal/filter/textures.h:77 #: ../src/extension/internal/filter/transparency.h:61 -#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:644 +#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:642 msgid "Normal" msgstr "Normal" @@ -7109,7 +5315,7 @@ msgstr "StoĂź-Quelle" #: ../src/extension/internal/filter/color.h:637 #: ../src/extension/internal/filter/color.h:821 #: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:125 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/filter-enums.cpp:100 ../src/flood-context.cpp:194 #: ../src/widgets/sp-color-icc-selector.cpp:355 #: ../src/widgets/sp-color-scales.cpp:429 #: ../src/widgets/sp-color-scales.cpp:430 @@ -7122,7 +5328,7 @@ msgstr "Rot" #: ../src/extension/internal/filter/color.h:638 #: ../src/extension/internal/filter/color.h:822 #: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:126 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/filter-enums.cpp:101 ../src/flood-context.cpp:195 #: ../src/widgets/sp-color-icc-selector.cpp:356 #: ../src/widgets/sp-color-scales.cpp:432 #: ../src/widgets/sp-color-scales.cpp:433 @@ -7135,7 +5341,7 @@ msgstr "GrĂĽn" #: ../src/extension/internal/filter/color.h:639 #: ../src/extension/internal/filter/color.h:823 #: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:127 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/filter-enums.cpp:102 ../src/flood-context.cpp:196 #: ../src/widgets/sp-color-icc-selector.cpp:357 #: ../src/widgets/sp-color-scales.cpp:435 #: ../src/widgets/sp-color-scales.cpp:436 @@ -7159,9 +5365,9 @@ msgid "Diffuse" msgstr "Diffuses Licht" #: ../src/extension/internal/filter/bumps.h:98 -#: ../src/extension/internal/filter/bumps.h:329 -#: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:331 +#: ../src/extension/internal/filter/bumps.h:329 ../src/libgdl/gdl-dock.c:199 +#: ../src/libgdl/gdl-dock-placeholder.c:175 +#: ../src/widgets/rect-toolbar.cpp:338 #: ../share/extensions/interp_att_g.inx.h:11 msgid "Height" msgstr "Höhe" @@ -7173,11 +5379,10 @@ msgstr "Höhe" #: ../src/extension/internal/filter/color.h:1113 #: ../src/extension/internal/filter/paint.h:86 #: ../src/extension/internal/filter/paint.h:592 -#: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/extension/internal/filter/paint.h:707 ../src/flood-context.cpp:199 #: ../src/widgets/sp-color-icc-selector.cpp:366 #: ../src/widgets/sp-color-scales.cpp:461 -#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:318 +#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:332 #: ../share/extensions/color_randomize.inx.h:5 msgid "Lightness" msgstr "Helligkeit" @@ -7214,13 +5419,13 @@ msgstr "Entfernte Lichtoptionen" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1001 msgid "Azimuth" msgstr "Azimut" #: ../src/extension/internal/filter/bumps.h:111 #: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1002 msgid "Elevation" msgstr "Anhebung" @@ -7289,7 +5494,7 @@ msgstr "_Hintergrund:" #: ../src/extension/internal/filter/bumps.h:322 #: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:517 +#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:616 msgid "Image" msgstr "Bild" @@ -7328,14 +5533,14 @@ msgstr "Transparenztyp:" #: ../src/extension/internal/filter/bumps.h:353 #: ../src/extension/internal/filter/morphology.h:176 -#: ../src/filter-enums.cpp:88 +#: ../src/filter-enums.cpp:74 msgid "Atop" msgstr "Obenauf" #: ../src/extension/internal/filter/bumps.h:354 #: ../src/extension/internal/filter/distort.h:70 #: ../src/extension/internal/filter/morphology.h:174 -#: ../src/filter-enums.cpp:86 +#: ../src/filter-enums.cpp:72 msgid "In" msgstr "In" @@ -7372,20 +5577,19 @@ msgstr "Kanalfarbe" #: ../src/extension/internal/filter/color.h:156 #: ../src/extension/internal/filter/color.h:257 -#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/extension/internal/filter/paint.h:87 ../src/flood-context.cpp:198 +#: ../src/ui/dialog/inkscape-preferences.cpp:941 #: ../src/widgets/sp-color-icc-selector.cpp:362 #: ../src/widgets/sp-color-icc-selector.cpp:367 #: ../src/widgets/sp-color-scales.cpp:458 -#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:302 +#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:316 #: ../share/extensions/color_randomize.inx.h:4 msgid "Saturation" msgstr "Sättigung" #: ../src/extension/internal/filter/color.h:160 #: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:199 +#: ../src/filter-enums.cpp:103 ../src/flood-context.cpp:200 msgid "Alpha" msgstr "Alpha" @@ -7435,28 +5639,26 @@ msgstr "Mischt Bild oder Objekt mit einer flieĂźenden Farbe" msgid "Component Transfer" msgstr "Komponenten-Ăśbertragung" -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:107 +#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:82 msgid "Identity" msgstr "Identität" #: ../src/extension/internal/filter/color.h:428 -#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:108 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 +#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:83 msgid "Table" msgstr "Tabelle" #: ../src/extension/internal/filter/color.h:429 -#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:109 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 +#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:84 msgid "Discrete" msgstr "Getrennt" -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:110 +#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:85 #: ../src/live_effects/lpe-powerstroke.cpp:188 msgid "Linear" msgstr "Linie" -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:111 +#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:86 msgid "Gamma" msgstr "Gamma" @@ -7636,11 +5838,12 @@ msgstr "Lichter" msgid "Shadows" msgstr "Schatten" +#. initialise your parameters here: #: ../src/extension/internal/filter/color.h:1044 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:32 -#: ../src/live_effects/effect.cpp:95 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1158 +#: ../src/live_effects/effect.cpp:97 ../src/live_effects/lpe-offset.cpp:31 +#: ../src/live_effects/lpe-parallel.cpp:50 +#: ../src/widgets/gradient-toolbar.cpp:1173 msgid "Offset" msgstr "Versatz" @@ -7811,7 +6014,7 @@ msgstr "Filz-Feder" #: ../src/extension/internal/filter/distort.h:71 #: ../src/extension/internal/filter/morphology.h:175 -#: ../src/filter-enums.cpp:87 +#: ../src/filter-enums.cpp:73 msgid "Out" msgstr "Out" @@ -7851,7 +6054,7 @@ msgstr "Fraktales Rauschen" #: ../src/extension/internal/filter/distort.h:194 #: ../src/extension/internal/filter/overlays.h:62 #: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:35 -#: ../src/filter-enums.cpp:142 +#: ../src/filter-enums.cpp:117 msgid "Turbulence" msgstr "Turbulenz" @@ -7928,8 +6131,8 @@ msgid "Detect:" msgstr "Erkennen:" #: ../src/extension/internal/filter/image.h:52 -#: ../src/ui/dialog/template-load-tab.cpp:105 -#: ../src/ui/dialog/template-load-tab.cpp:142 +#: ../src/ui/dialog/template-load-tab.cpp:100 +#: ../src/ui/dialog/template-load-tab.cpp:135 msgid "All" msgstr "alles" @@ -7968,9 +6171,9 @@ msgid "Open" msgstr "Ă–ffnen" #: ../src/extension/internal/filter/morphology.h:65 -#: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:314 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../src/libgdl/gdl-dock.c:191 ../src/libgdl/gdl-dock-placeholder.c:167 +#: ../src/widgets/rect-toolbar.cpp:321 ../src/widgets/spray-toolbar.cpp:128 +#: ../src/widgets/tweak-toolbar.cpp:142 #: ../share/extensions/interp_att_g.inx.h:10 msgid "Width" msgstr "Breite" @@ -8005,12 +6208,12 @@ msgid "Composite type:" msgstr "Gemischter Typ" #: ../src/extension/internal/filter/morphology.h:173 -#: ../src/filter-enums.cpp:85 +#: ../src/filter-enums.cpp:71 msgid "Over" msgstr "Ăśber" #: ../src/extension/internal/filter/morphology.h:177 -#: ../src/filter-enums.cpp:89 +#: ../src/filter-enums.cpp:75 msgid "XOR" msgstr "XOR" @@ -8079,8 +6282,8 @@ msgstr "Rauschen" #: ../src/extension/internal/filter/paint.h:690 #: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 #: ../src/ui/dialog/tracedialog.cpp:747 -#: ../share/extensions/color_HSL_adjust.inx.h:2 #: ../share/extensions/color_custom.inx.h:2 +#: ../share/extensions/color_HSL_adjust.inx.h:2 #: ../share/extensions/color_randomize.inx.h:2 #: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 #: ../share/extensions/dxf_outlines.inx.h:2 @@ -8099,9 +6302,9 @@ msgstr "Rauschen" #: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 #: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 #: ../share/extensions/web-set-att.inx.h:2 -#: ../share/extensions/web-transmit-att.inx.h:2 #: ../share/extensions/webslicer_create_group.inx.h:2 #: ../share/extensions/webslicer_export.inx.h:2 +#: ../share/extensions/web-transmit-att.inx.h:2 msgid "Options" msgstr "Optionen" @@ -8207,14 +6410,14 @@ msgstr "Konvertiere Bild in eine Gravur aus vertikalen und horizontalen Linien" # not sure here -cm- #: ../src/extension/internal/filter/paint.h:331 #: ../src/ui/dialog/align-and-distribute.cpp:1004 -#: ../src/widgets/desktop-widget.cpp:1993 +#: ../src/widgets/desktop-widget.cpp:2007 msgid "Drawing" msgstr "Zeichnung" #: ../src/extension/internal/filter/paint.h:335 #: ../src/extension/internal/filter/paint.h:496 #: ../src/extension/internal/filter/paint.h:590 -#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2212 +#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2224 msgid "Simplify" msgstr "Vereinfachen" @@ -8494,15 +6697,15 @@ msgid "Source:" msgstr "Quelle:" #: ../src/extension/internal/filter/transparency.h:56 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1605 msgid "Background" msgstr "Hintergrund" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 -#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 -#: ../src/widgets/pencil-toolbar.cpp:127 ../src/widgets/spray-toolbar.cpp:186 -#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2624 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:123 +#: ../src/widgets/pencil-toolbar.cpp:156 ../src/widgets/spray-toolbar.cpp:198 +#: ../src/widgets/tweak-toolbar.cpp:268 ../share/extensions/extrude.inx.h:2 #: ../share/extensions/triangle.inx.h:8 msgid "Mode:" msgstr "Modus:" @@ -8548,82 +6751,39 @@ msgstr "Ausschneiden" msgid "Repaint anything visible monochrome" msgstr "Alles schwarzweiss nachmalen" -#: ../src/extension/internal/gdkpixbuf-input.cpp:184 +#: ../src/extension/internal/gdkpixbuf-input.cpp:152 #, c-format msgid "%s bitmap image import" msgstr "%s Bitmap Bild import" -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 -msgid "Image Import Type:" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 -msgid "" -"Embed results in stand-alone, larger SVG files. Link references a file " -"outside this SVG document and all files must be moved together." -msgstr "" -"Einbetten des Ergebnisses in eine eigenständige, größere SVG-Datei.Die " -"VerknĂĽpfung referenziert auf eine Datei auĂźerhalb des SVG-Dokuments und alle " -"Dateien mĂĽssen an einer Stelle liegen. " +#: ../src/extension/internal/gdkpixbuf-input.cpp:158 +msgid "Link or embed image:" +msgstr "Bild verknĂĽpfen oder einbetten:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:192 -#: ../src/ui/dialog/inkscape-preferences.cpp:1447 +#: ../src/extension/internal/gdkpixbuf-input.cpp:159 msgid "Embed" msgstr "%i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "%i ĂĽberflĂĽssiges Element aus <defs> entfernt." msgstr[1] "%i ĂĽberflĂĽssige Elemente aus <defs> entfernt." -#: ../src/file.cpp:635 +#: ../src/file.cpp:638 msgid "No unused definitions in <defs>." msgstr "Keine ĂĽberflĂĽssigen Elemente in <defs>." -#: ../src/file.cpp:667 +#: ../src/file.cpp:670 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " @@ -9128,12 +7290,12 @@ msgstr "" "Keine vorhandene Erweiterung von Inkscape kann das Dokument (%s) sichern. " "Dies Ursache dafĂĽr ist möglicherweise eine unbekannte Dateinamenendung." -#: ../src/file.cpp:668 ../src/file.cpp:676 ../src/file.cpp:684 -#: ../src/file.cpp:690 ../src/file.cpp:695 +#: ../src/file.cpp:671 ../src/file.cpp:679 ../src/file.cpp:687 +#: ../src/file.cpp:693 ../src/file.cpp:698 msgid "Document not saved." msgstr "Dokument wurde nicht gespeichert." -#: ../src/file.cpp:675 +#: ../src/file.cpp:678 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." @@ -9141,54 +7303,60 @@ msgstr "" "Datei %s ist schreibgeschĂĽtzt! Bitte entfernen Sie den Schreibschutz und " "versuchen es dann erneut." -#: ../src/file.cpp:683 +#: ../src/file.cpp:686 #, c-format msgid "File %s could not be saved." msgstr "Datei %s konnte nicht gespeichert werden." -#: ../src/file.cpp:713 ../src/file.cpp:715 +#: ../src/file.cpp:716 ../src/file.cpp:718 msgid "Document saved." msgstr "Dokument wurde gespeichert." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:858 ../src/file.cpp:1406 -msgid "drawing" -msgstr "" +#: ../src/file.cpp:866 ../src/file.cpp:1422 +#, c-format +msgid "drawing%s" +msgstr "Zeichnung%s" -#: ../src/file.cpp:863 -msgid "drawing-%1" -msgstr "" +#: ../src/file.cpp:872 +#, c-format +msgid "drawing-%d%s" +msgstr "Zeichnung-%d%s" + +#: ../src/file.cpp:876 +#, c-format +msgid "%s" +msgstr "%s" -#: ../src/file.cpp:880 +#: ../src/file.cpp:891 msgid "Select file to save a copy to" msgstr "Datei wählen, in die eine Kopie gespeichert werden soll" -#: ../src/file.cpp:882 +#: ../src/file.cpp:893 msgid "Select file to save to" msgstr "Datei wählen, in die gespeichert werden soll" -#: ../src/file.cpp:987 ../src/file.cpp:989 +#: ../src/file.cpp:999 ../src/file.cpp:1001 msgid "No changes need to be saved." msgstr "Es mĂĽssen keine Ă„nderungen gespeichert werden." -#: ../src/file.cpp:1008 +#: ../src/file.cpp:1020 msgid "Saving document..." msgstr "Dokument wird gespeichert…" -#: ../src/file.cpp:1244 ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../src/ui/dialog/ocaldialogs.cpp:1244 +#: ../src/file.cpp:1256 ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Importieren" -#: ../src/file.cpp:1294 +#: ../src/file.cpp:1306 msgid "Select file to import" msgstr "Wählen Sie die zu importierende Datei" -#: ../src/file.cpp:1427 +#: ../src/file.cpp:1444 msgid "Select file to export to" msgstr "Wählen Sie die Datei, in die exportiert werden soll" -#: ../src/file.cpp:1680 +#: ../src/file.cpp:1697 msgid "Import Clip Art" msgstr "Importiere Clipart" @@ -9252,140 +7420,149 @@ msgstr "FarbfĂĽllung" msgid "Stroke Paint" msgstr "Farbe der Kontur" -#. New in Compositing and Blending Level 1 -#: ../src/filter-enums.cpp:58 -msgid "Overlay" -msgstr "" - -#: ../src/filter-enums.cpp:59 -msgid "Color Dodge" -msgstr "" - -#: ../src/filter-enums.cpp:60 -msgid "Color Burn" -msgstr "" - #: ../src/filter-enums.cpp:61 -msgid "Hard Light" -msgstr "" - -#: ../src/filter-enums.cpp:62 -msgid "Soft Light" -msgstr "" - -#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 -msgid "Difference" -msgstr "Differenz" - -#: ../src/filter-enums.cpp:64 ../src/splivarot.cpp:100 -msgid "Exclusion" -msgstr "Exklusiv-Oder (Ausschluss)" - -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 -#: ../src/widgets/sp-color-icc-selector.cpp:361 -#: ../src/widgets/sp-color-icc-selector.cpp:365 -#: ../src/widgets/sp-color-scales.cpp:455 -#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:286 -#: ../share/extensions/color_randomize.inx.h:3 -msgid "Hue" -msgstr "Farbton" - -#: ../src/filter-enums.cpp:68 -msgid "Luminosity" -msgstr "" - -#: ../src/filter-enums.cpp:75 msgid "Matrix" msgstr "Matri_x" -#: ../src/filter-enums.cpp:76 +#: ../src/filter-enums.cpp:62 msgid "Saturate" msgstr "Sättigung" -#: ../src/filter-enums.cpp:77 +#: ../src/filter-enums.cpp:63 msgid "Hue Rotate" msgstr "Farbton rotieren" -#: ../src/filter-enums.cpp:78 +#: ../src/filter-enums.cpp:64 msgid "Luminance to Alpha" msgstr "Leuchtkraft zu Alpha" #. File -#: ../src/filter-enums.cpp:84 ../src/verbs.cpp:2352 +#: ../src/filter-enums.cpp:70 ../src/verbs.cpp:2355 #: ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 msgid "Default" msgstr "Vorgabe" -#. New CSS -#: ../src/filter-enums.cpp:92 -msgid "Clear" -msgstr "" - -#: ../src/filter-enums.cpp:93 -msgid "Copy" -msgstr "" - -#: ../src/filter-enums.cpp:94 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1571 -msgid "Destination" -msgstr "Ziel" - -#: ../src/filter-enums.cpp:95 -msgid "Destination Over" -msgstr "" - -#: ../src/filter-enums.cpp:96 -msgid "Destination In" -msgstr "" - -#: ../src/filter-enums.cpp:97 -msgid "Destination Out" -msgstr "" - -#: ../src/filter-enums.cpp:98 -msgid "Destination Atop" -msgstr "" - -#: ../src/filter-enums.cpp:99 -msgid "Lighter" -msgstr "" - -#: ../src/filter-enums.cpp:101 +#: ../src/filter-enums.cpp:76 msgid "Arithmetic" msgstr "Arithmetisch" -#: ../src/filter-enums.cpp:117 ../src/selection-chemistry.cpp:535 +#: ../src/filter-enums.cpp:92 ../src/selection-chemistry.cpp:532 msgid "Duplicate" msgstr "Duplizieren" -#: ../src/filter-enums.cpp:118 +#: ../src/filter-enums.cpp:93 msgid "Wrap" msgstr "Umbrechen" -#: ../src/filter-enums.cpp:134 +#: ../src/filter-enums.cpp:109 msgid "Erode" msgstr "Erodieren" -#: ../src/filter-enums.cpp:135 +#: ../src/filter-enums.cpp:110 msgid "Dilate" msgstr "Ausweiten" -#: ../src/filter-enums.cpp:141 +#: ../src/filter-enums.cpp:116 msgid "Fractal Noise" msgstr "Fraktales Rauschen" -#: ../src/filter-enums.cpp:148 +#: ../src/filter-enums.cpp:123 msgid "Distant Light" msgstr "Entfernte Lichtquelle" -#: ../src/filter-enums.cpp:149 +#: ../src/filter-enums.cpp:124 msgid "Point Light" msgstr "Punktförmige Lichtquelle" -#: ../src/filter-enums.cpp:150 +#: ../src/filter-enums.cpp:125 msgid "Spot Light" msgstr "Spotlight" +#: ../src/flood-context.cpp:193 +msgid "Visible Colors" +msgstr "Sichtbare Farben" + +#: ../src/flood-context.cpp:197 ../src/widgets/sp-color-icc-selector.cpp:361 +#: ../src/widgets/sp-color-icc-selector.cpp:365 +#: ../src/widgets/sp-color-scales.cpp:455 +#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:300 +#: ../share/extensions/color_randomize.inx.h:3 +msgid "Hue" +msgstr "Farbton" + +# CHECK +#: ../src/flood-context.cpp:211 +msgctxt "Flood autogap" +msgid "None" +msgstr "Keine" + +#: ../src/flood-context.cpp:212 +msgctxt "Flood autogap" +msgid "Small" +msgstr "Klein" + +#: ../src/flood-context.cpp:213 +msgctxt "Flood autogap" +msgid "Medium" +msgstr "Mittel" + +#: ../src/flood-context.cpp:214 +msgctxt "Flood autogap" +msgid "Large" +msgstr "GroĂź" + +#: ../src/flood-context.cpp:436 +msgid "Too much inset, the result is empty." +msgstr "Zu viel Schrumpfung, das Ergebnis ist leer." + +#: ../src/flood-context.cpp:477 +#, c-format +msgid "" +"Area filled, path with %d node created and unioned with selection." +msgid_plural "" +"Area filled, path with %d nodes created and unioned with selection." +msgstr[0] "" +"Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt und mit der Auswahl " +"vereinigt." +msgstr[1] "" +"Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt und mit der Auswahl " +"vereinigt." + +#: ../src/flood-context.cpp:483 +#, c-format +msgid "Area filled, path with %d node created." +msgid_plural "Area filled, path with %d nodes created." +msgstr[0] "Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt." +msgstr[1] "Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt." + +#: ../src/flood-context.cpp:751 ../src/flood-context.cpp:1061 +msgid "Area is not bounded, cannot fill." +msgstr "Gebiet ist nicht abgegrenzt, kann nicht fĂĽllen." + +#: ../src/flood-context.cpp:1066 +msgid "" +"Only the visible part of the bounded area was filled. If you want to " +"fill all of the area, undo, zoom out, and fill again." +msgstr "" +"Nur der sichtbare Teil des abgegrenzten Gebiets wurde gefĂĽllt. Wenn " +"Sie das gesamte Gebiet fĂĽllen wollen, dann machen Sie rĂĽckgängig, zoomen " +"heraus, und fĂĽllen Sie noch einmal." + +#: ../src/flood-context.cpp:1084 ../src/flood-context.cpp:1235 +msgid "Fill bounded area" +msgstr "FĂĽlle abgegrenztes Gebiet" + +#: ../src/flood-context.cpp:1100 +msgid "Set style on object" +msgstr "Stil auf Objekte anwenden" + +#: ../src/flood-context.cpp:1160 +msgid "Draw over areas to add to fill, hold Alt for touch fill" +msgstr "" +"Zeichne ĂĽber Flächen um zur FĂĽllung hinzuzufĂĽgen, Alt fĂĽr " +"FĂĽllen durch BerĂĽhrung" + #: ../src/gradient-chemistry.cpp:1568 msgid "Invert gradient colors" msgstr "Farbverlauf invertieren" @@ -9394,51 +7571,142 @@ msgstr "Farbverlauf invertieren" msgid "Reverse gradient" msgstr "Farbverlauf umkehren" -#: ../src/gradient-chemistry.cpp:1608 ../src/widgets/gradient-selector.cpp:245 +#: ../src/gradient-chemistry.cpp:1608 ../src/widgets/gradient-selector.cpp:228 msgid "Delete swatch" msgstr "Zwischenfarbe löschen" -#: ../src/gradient-drag.cpp:96 ../src/ui/tools/gradient-tool.cpp:100 +#: ../src/gradient-context.cpp:101 ../src/gradient-drag.cpp:96 msgid "Linear gradient start" msgstr "Anfang des linearen Farbverlaufs" #. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:101 +#: ../src/gradient-context.cpp:102 ../src/gradient-drag.cpp:97 msgid "Linear gradient end" msgstr "Ende des linearen Farbverlaufs" -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:102 +#: ../src/gradient-context.cpp:103 ../src/gradient-drag.cpp:98 msgid "Linear gradient mid stop" msgstr "Zwischenfarbe des linearen Farbverlaufs" -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:103 +#: ../src/gradient-context.cpp:104 ../src/gradient-drag.cpp:99 msgid "Radial gradient center" msgstr "Zentrum des radialen Farbverlaufs" +#: ../src/gradient-context.cpp:105 ../src/gradient-context.cpp:106 #: ../src/gradient-drag.cpp:100 ../src/gradient-drag.cpp:101 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 msgid "Radial gradient radius" msgstr "Radius des radialen Farbverlaufs" -#: ../src/gradient-drag.cpp:102 ../src/ui/tools/gradient-tool.cpp:106 +#: ../src/gradient-context.cpp:107 ../src/gradient-drag.cpp:102 msgid "Radial gradient focus" msgstr "Fokus des radialen Farbverlaufs" #. POINT_RG_FOCUS +#: ../src/gradient-context.cpp:108 ../src/gradient-context.cpp:109 #: ../src/gradient-drag.cpp:103 ../src/gradient-drag.cpp:104 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 msgid "Radial gradient mid stop" msgstr "Zwischenfarbe des radialen Farbverlaufs" -#: ../src/gradient-drag.cpp:105 ../src/ui/tools/mesh-tool.cpp:103 +#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message +#: ../src/gradient-context.cpp:132 ../src/mesh-context.cpp:129 +#, c-format +msgid "%s selected" +msgstr "%s ausgewählt" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/gradient-context.cpp:134 ../src/gradient-context.cpp:143 +#, c-format +msgid " out of %d gradient handle" +msgid_plural " out of %d gradient handles" +msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" +msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" + +#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message +#: ../src/gradient-context.cpp:135 ../src/gradient-context.cpp:144 +#: ../src/gradient-context.cpp:151 ../src/mesh-context.cpp:132 +#: ../src/mesh-context.cpp:143 ../src/mesh-context.cpp:151 +#, c-format +msgid " on %d selected object" +msgid_plural " on %d selected objects" +msgstr[0] "auf %d gewähltes Objekt" +msgstr[1] "auf %d gewählte Objekte" + +#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) +#: ../src/gradient-context.cpp:141 ../src/mesh-context.cpp:139 +#, c-format +msgid "" +"One handle merging %d stop (drag with Shift to separate) selected" +msgid_plural "" +"One handle merging %d stops (drag with Shift to separate) selected" +msgstr[0] "Ein Anfasser fĂĽr %d Endknoten" +msgstr[1] "" +"Ein Anfasser fĂĽr %d zusammenliegende Endknoten (Umschalt + Ziehen " +"trennt)" + +#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) +#: ../src/gradient-context.cpp:149 +#, c-format +msgid "%d gradient handle selected out of %d" +msgid_plural "%d gradient handles selected out of %d" +msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" +msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/gradient-context.cpp:156 +#, c-format +msgid "No gradient handles selected out of %d on %d selected object" +msgid_plural "" +"No gradient handles selected out of %d on %d selected objects" +msgstr[0] "" +"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" +msgstr[1] "" +"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" + +#: ../src/gradient-context.cpp:366 ../src/gradient-context.cpp:464 +#: ../src/ui/dialog/swatches.cpp:203 ../src/widgets/gradient-vector.cpp:814 +msgid "Add gradient stop" +msgstr "Zwischenfarbe zum Farbverlauf hinzufĂĽgen" + +#: ../src/gradient-context.cpp:439 +msgid "Simplify gradient" +msgstr "Farbverlauf vereinfachen" + +#: ../src/gradient-context.cpp:515 +msgid "Create default gradient" +msgstr "Standard-Farbverlauf erzeugen" + +#: ../src/gradient-context.cpp:574 ../src/mesh-context.cpp:569 +msgid "Draw around handles to select them" +msgstr "Zeichne um Anfasser um diese auszuwählen" + +#: ../src/gradient-context.cpp:697 +msgid "Ctrl: snap gradient angle" +msgstr "Strg: Winkel des Farbverlaufs einrasten" + +#: ../src/gradient-context.cpp:698 +msgid "Shift: draw gradient around the starting point" +msgstr "Umschalt: Farbverlauf ausgehend vom Mittelpunkt zeichnen" + +#: ../src/gradient-context.cpp:952 ../src/mesh-context.cpp:992 +#, c-format +msgid "Gradient for %d object; with Ctrl to snap angle" +msgid_plural "Gradient for %d objects; with Ctrl to snap angle" +msgstr[0] "Farbverlauf fĂĽr %d Objekte; mit Strg Winkel einrasten" +msgstr[1] "Farbverlauf fĂĽr %d Objekte; mit Strg Winkel einrasten" + +#: ../src/gradient-context.cpp:956 ../src/mesh-context.cpp:996 +msgid "Select objects on which to create gradient." +msgstr "Objekte auswählen, fĂĽr die ein Farbverlauf erzeugt werden soll." + +#: ../src/gradient-drag.cpp:105 ../src/mesh-context.cpp:102 msgid "Mesh gradient corner" msgstr "Gitterverlauf Ecke" -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:104 +#: ../src/gradient-drag.cpp:106 ../src/mesh-context.cpp:103 msgid "Mesh gradient handle" msgstr "Gitterverlauf Anfasser" -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:105 +#: ../src/gradient-drag.cpp:107 ../src/mesh-context.cpp:104 msgid "Mesh gradient tensor" msgstr "Gitterverlauf Tensor" @@ -9450,15 +7718,15 @@ msgstr "HinzugefĂĽgte Patchreihe oder Spalte" msgid "Merge gradient handles" msgstr "Farbverlaufs-Anfasser vereinigen" -#: ../src/gradient-drag.cpp:1101 +#: ../src/gradient-drag.cpp:1103 msgid "Move gradient handle" msgstr "Farbverlaufs-Anfasser verschieben" -#: ../src/gradient-drag.cpp:1160 ../src/widgets/gradient-vector.cpp:847 +#: ../src/gradient-drag.cpp:1162 ../src/widgets/gradient-vector.cpp:847 msgid "Delete gradient stop" msgstr "Zwischenfarbe des Farbverlaufs löschen" -#: ../src/gradient-drag.cpp:1423 +#: ../src/gradient-drag.cpp:1425 #, c-format msgid "" "%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" @@ -9467,11 +7735,11 @@ msgstr "" "%s %d fĂĽr %s%s; Ziehen mit Strg rastet Versatz ein, Klick mit Strg" "+Alt löscht Zwischenfarbe" -#: ../src/gradient-drag.cpp:1427 ../src/gradient-drag.cpp:1434 +#: ../src/gradient-drag.cpp:1429 ../src/gradient-drag.cpp:1436 msgid " (stroke)" msgstr " (Kontur)" -#: ../src/gradient-drag.cpp:1431 +#: ../src/gradient-drag.cpp:1433 #, c-format msgid "" "%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " @@ -9480,7 +7748,7 @@ msgstr "" "%s fĂĽr %s%s; Ziehen mit Strg rastet Winkel ein, Ziehen mit Strg" "+Alt behält Winkel bei; Strg+Umschalt skaliert um den Mittelpunkt" -#: ../src/gradient-drag.cpp:1439 +#: ../src/gradient-drag.cpp:1441 msgid "" "Radial gradient center and focus; drag with Shift to " "separate focus" @@ -9488,7 +7756,7 @@ msgstr "" "Zentrum und Fokus des radialen Farbverlaufs; Ziehen mit " "Umschalt, um den Fokus einzeln zu bewegen" -#: ../src/gradient-drag.cpp:1442 +#: ../src/gradient-drag.cpp:1444 #, c-format msgid "" "Gradient point shared by %d gradient; drag with Shift to " @@ -9503,58 +7771,58 @@ msgstr[1] "" "Farbverlaufspunkt ist %d weiteren Farbverläufen zugewiesen. Ziehen " "mit Umschalt trennt die Zuweisung" -#: ../src/gradient-drag.cpp:2374 +#: ../src/gradient-drag.cpp:2372 msgid "Move gradient handle(s)" msgstr "Farbverlaufs-Anfasser verschieben" -#: ../src/gradient-drag.cpp:2410 +#: ../src/gradient-drag.cpp:2408 msgid "Move gradient mid stop(s)" msgstr "Zwischenfarbe(n) des Farbverlaufs verschieben" -#: ../src/gradient-drag.cpp:2699 +#: ../src/gradient-drag.cpp:2697 msgid "Delete gradient stop(s)" msgstr "Zwischenfarbe(n) des Farbverlaufs löschen" -#: ../src/inkscape.cpp:344 +#: ../src/inkscape.cpp:341 msgid "Autosave failed! Cannot create directory %1." msgstr "Autospeicherung fehlgeschlagen! Kann Verzeichnis %1 nicht erstellen." -#: ../src/inkscape.cpp:353 +#: ../src/inkscape.cpp:350 msgid "Autosave failed! Cannot open directory %1." msgstr "Autospeicherung fehlgeschlagen! Kann Verzeichnis %1 nicht öffnen." -#: ../src/inkscape.cpp:369 +#: ../src/inkscape.cpp:366 msgid "Autosaving documents..." msgstr "Dokument wird automatisch gespeichert…" -#: ../src/inkscape.cpp:442 +#: ../src/inkscape.cpp:439 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" "Automatisches Speichern fehlgeschlagen! Inkscape-Endung konnte nicht " "gefunden werden." -#: ../src/inkscape.cpp:445 ../src/inkscape.cpp:452 +#: ../src/inkscape.cpp:442 ../src/inkscape.cpp:449 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "" "Automatisches Speichern fehlgeschlagen! Datei %s konnte nicht gespeichert " "werden." -#: ../src/inkscape.cpp:467 +#: ../src/inkscape.cpp:464 msgid "Autosave complete." msgstr "Automatisches Speichern abgeschlossen." -#: ../src/inkscape.cpp:715 +#: ../src/inkscape.cpp:712 msgid "Untitled document" msgstr "Unbenanntes Dokument" #. Show nice dialog box -#: ../src/inkscape.cpp:747 +#: ../src/inkscape.cpp:744 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "" "Inkscape ist auf einen internen Fehler gestoĂźen und wird nun geschlossen.\n" -#: ../src/inkscape.cpp:748 +#: ../src/inkscape.cpp:745 msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" @@ -9562,75 +7830,75 @@ msgstr "" "Unter folgenden Speicherorten wurden automatische Sicherungskopien nicht " "gespeicherter Dokumente angelegt:\n" -#: ../src/inkscape.cpp:749 +#: ../src/inkscape.cpp:746 msgid "Automatic backup of the following documents failed:\n" msgstr "" "Anlegen von automatischen Sicherungskopien folgender Dokumente " "fehlgeschlagen:\n" -#: ../src/interface.cpp:748 +#: ../src/interface.cpp:751 msgctxt "Interface setup" msgid "Default" msgstr "Vorgabe" -#: ../src/interface.cpp:748 +#: ../src/interface.cpp:751 msgid "Default interface setup" msgstr "Standard Schnittstellen-Setup" -#: ../src/interface.cpp:749 +#: ../src/interface.cpp:752 msgctxt "Interface setup" msgid "Custom" msgstr "Benutzerdefiniert" -#: ../src/interface.cpp:749 +#: ../src/interface.cpp:752 msgid "Setup for custom task" msgstr "Setup fĂĽr benutzerdefinierte Aufgabe" -#: ../src/interface.cpp:750 +#: ../src/interface.cpp:753 msgctxt "Interface setup" msgid "Wide" msgstr "Breit" -#: ../src/interface.cpp:750 +#: ../src/interface.cpp:753 msgid "Setup for widescreen work" msgstr "Setup fĂĽr die Breitbild-Arbeit" -#: ../src/interface.cpp:862 +#: ../src/interface.cpp:865 #, c-format msgid "Verb \"%s\" Unknown" msgstr "Verb \"%s\" unbekannt" -#: ../src/interface.cpp:901 +#: ../src/interface.cpp:904 msgid "Open _Recent" msgstr "Zuletzt _geöffnete Dateien" # !!! correct? -#: ../src/interface.cpp:1009 ../src/interface.cpp:1095 -#: ../src/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:528 +#: ../src/interface.cpp:1012 ../src/interface.cpp:1098 +#: ../src/interface.cpp:1201 ../src/ui/widget/selected-style.cpp:528 msgid "Drop color" msgstr "Farbe ablegen" -#: ../src/interface.cpp:1048 ../src/interface.cpp:1158 +#: ../src/interface.cpp:1051 ../src/interface.cpp:1161 msgid "Drop color on gradient" msgstr "Keine Zwischenfarben im Farbverlauf" -#: ../src/interface.cpp:1211 +#: ../src/interface.cpp:1214 msgid "Could not parse SVG data" msgstr "SVG-Daten konnten nicht analysiert werden" -#: ../src/interface.cpp:1250 +#: ../src/interface.cpp:1253 msgid "Drop SVG" msgstr "SVG ablegen" -#: ../src/interface.cpp:1263 +#: ../src/interface.cpp:1266 msgid "Drop Symbol" msgstr "Symbol fallenlassen" -#: ../src/interface.cpp:1294 +#: ../src/interface.cpp:1297 msgid "Drop bitmap image" msgstr "Bitmap-Bild ablegen" -#: ../src/interface.cpp:1386 +#: ../src/interface.cpp:1389 #, c-format msgid "" "A file named \"%s\" already exists. Do " @@ -9644,198 +7912,192 @@ msgstr "" "Die Datei existiert bereits in »%s«. Sie zu ersetzen wird ihren Inhalt " "ĂĽberschreiben." -#: ../src/interface.cpp:1392 ../src/ui/dialog/export.cpp:1302 -#: ../src/widgets/desktop-widget.cpp:1122 -#: ../src/widgets/desktop-widget.cpp:1184 -msgid "_Cancel" -msgstr "Abbrechen" - -#: ../src/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 +#: ../src/interface.cpp:1396 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 msgid "Replace" msgstr "Ersetzen" -#: ../src/interface.cpp:1464 +#: ../src/interface.cpp:1467 msgid "Go to parent" msgstr "Zum ĂĽbergeordneten Objekt gehen" #. TRANSLATORS: #%1 is the id of the group e.g. , not a number. -#: ../src/interface.cpp:1505 +#: ../src/interface.cpp:1508 msgid "Enter group #%1" msgstr "Gruppe #%1 beitreten" #. Item dialog -#: ../src/interface.cpp:1641 ../src/verbs.cpp:2849 +#: ../src/interface.cpp:1644 ../src/verbs.cpp:2851 msgid "_Object Properties..." msgstr "Objekt_eigenschaften…" -#: ../src/interface.cpp:1650 +#: ../src/interface.cpp:1653 msgid "_Select This" msgstr "_Dies auswählen" -#: ../src/interface.cpp:1661 +#: ../src/interface.cpp:1664 msgid "Select Same" msgstr "Das Gleiche auswählen" #. Select same fill and stroke -#: ../src/interface.cpp:1671 +#: ../src/interface.cpp:1674 msgid "Fill and Stroke" msgstr "FĂĽllung und _Kontur" #. Select same fill color -#: ../src/interface.cpp:1678 +#: ../src/interface.cpp:1681 msgid "Fill Color" msgstr "FĂĽllfarbe" #. Select same stroke color -#: ../src/interface.cpp:1685 +#: ../src/interface.cpp:1688 msgid "Stroke Color" msgstr "Konturfarbe" #. Select same stroke style -#: ../src/interface.cpp:1692 +#: ../src/interface.cpp:1695 msgid "Stroke Style" msgstr "Muster der Kontur" #. Select same stroke style -#: ../src/interface.cpp:1699 +#: ../src/interface.cpp:1702 msgid "Object type" msgstr "Objekttyp" #. Move to layer -#: ../src/interface.cpp:1706 +#: ../src/interface.cpp:1709 msgid "_Move to layer ..." msgstr "Verschiebe zu Ebene..." #. Create link -#: ../src/interface.cpp:1716 +#: ../src/interface.cpp:1719 msgid "Create _Link" msgstr "_VerknĂĽpfung erzeugen" #. Set mask -#: ../src/interface.cpp:1739 +#: ../src/interface.cpp:1742 msgid "Set Mask" msgstr "Maskierung setzen" #. Release mask -#: ../src/interface.cpp:1750 +#: ../src/interface.cpp:1753 msgid "Release Mask" msgstr "Maskierung entfernen" #. Set Clip -#: ../src/interface.cpp:1761 +#: ../src/interface.cpp:1764 msgid "Set Cl_ip" msgstr "_Clip setzen" #. Release Clip -#: ../src/interface.cpp:1772 +#: ../src/interface.cpp:1775 msgid "Release C_lip" msgstr "C_lip lösen" #. Group -#: ../src/interface.cpp:1783 ../src/verbs.cpp:2486 +#: ../src/interface.cpp:1786 ../src/verbs.cpp:2490 msgid "_Group" msgstr "_Gruppieren" -#: ../src/interface.cpp:1854 +#: ../src/interface.cpp:1857 msgid "Create link" msgstr "VerknĂĽpfung erzeugen" #. Ungroup -#: ../src/interface.cpp:1885 ../src/verbs.cpp:2488 +#: ../src/interface.cpp:1888 ../src/verbs.cpp:2492 msgid "_Ungroup" msgstr "Grupp_ierung aufheben" #. Link dialog -#: ../src/interface.cpp:1910 +#: ../src/interface.cpp:1913 msgid "Link _Properties..." msgstr "VerknĂĽpfungseigenschaften..." #. Select item -#: ../src/interface.cpp:1916 +#: ../src/interface.cpp:1919 msgid "_Follow Link" msgstr "VerknĂĽpfung _folgen" #. Reset transformations -#: ../src/interface.cpp:1922 +#: ../src/interface.cpp:1925 msgid "_Remove Link" msgstr "VerknĂĽpfung en_tfernen" -#: ../src/interface.cpp:1953 +#: ../src/interface.cpp:1956 msgid "Remove link" msgstr "VerknĂĽpfung en_tfernen" #. Image properties -#: ../src/interface.cpp:1964 +#: ../src/interface.cpp:1967 msgid "Image _Properties..." msgstr "Bildeigenschaften..." #. Edit externally -#: ../src/interface.cpp:1970 +#: ../src/interface.cpp:1973 msgid "Edit Externally..." msgstr "Extern bearbeiten…" #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/interface.cpp:1979 ../src/verbs.cpp:2549 +#: ../src/interface.cpp:1982 ../src/verbs.cpp:2553 msgid "_Trace Bitmap..." msgstr "Bitmap _vektorisieren…" #. Trace Pixel Art -#: ../src/interface.cpp:1988 +#: ../src/interface.cpp:1991 msgid "Trace Pixel Art" msgstr "" -#: ../src/interface.cpp:1998 +#: ../src/interface.cpp:2001 msgctxt "Context menu" msgid "Embed Image" msgstr "Bild einbetten" -#: ../src/interface.cpp:2009 +#: ../src/interface.cpp:2012 msgctxt "Context menu" msgid "Extract Image..." msgstr "Bild extrahieren..." #. Item dialog #. Fill and Stroke dialog -#: ../src/interface.cpp:2154 ../src/interface.cpp:2174 ../src/verbs.cpp:2812 +#: ../src/interface.cpp:2157 ../src/interface.cpp:2177 ../src/verbs.cpp:2816 msgid "_Fill and Stroke..." msgstr "FĂĽllung und _Kontur…" #. Edit Text dialog -#: ../src/interface.cpp:2180 ../src/verbs.cpp:2831 +#: ../src/interface.cpp:2183 ../src/verbs.cpp:2833 msgid "_Text and Font..." msgstr "_Schrift und Text…" #. Spellcheck dialog -#: ../src/interface.cpp:2186 ../src/verbs.cpp:2839 +#: ../src/interface.cpp:2189 ../src/verbs.cpp:2841 msgid "Check Spellin_g..." msgstr "RechtschreibprĂĽfun_g..." # !!! -#: ../src/knot.cpp:329 +#: ../src/knot.cpp:443 msgid "Node or handle drag canceled." msgstr "Verschieben von Knoten oder Knotenanfassern abgebrochen." -#: ../src/knotholder.cpp:158 +#: ../src/knotholder.cpp:160 msgid "Change handle" msgstr "Anfasser ändern" -#: ../src/knotholder.cpp:237 +#: ../src/knotholder.cpp:239 msgid "Move handle" msgstr "Anfasser verschieben" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:258 +#: ../src/knotholder.cpp:260 msgid "Move the pattern fill inside the object" msgstr "Bewegen des FĂĽllmusters innerhalb des Objektes" -#: ../src/knotholder.cpp:262 +#: ../src/knotholder.cpp:264 msgid "Scale the pattern fill; uniformly if with Ctrl" msgstr "" "Einheitliches Skalieren des FĂĽllmusters; gleichmäßig durch STRG" -#: ../src/knotholder.cpp:266 +#: ../src/knotholder.cpp:268 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "Drehen des FĂĽllmusters; Strg rastet Winkel ein" @@ -9857,28 +8119,55 @@ msgstr "Stil de Dockleiste" msgid "Dockbar style to show items on it" msgstr "Stil, in dem Objekte auf der Dockleiste gezeigt werden" -# "piktogrammifizieren" geht noch besser? -#: ../src/libgdl/gdl-dock-item-grip.c:399 -msgid "Iconify this dock" -msgstr "Dieses Dock auf Icongröße verkleinern" +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:674 +msgid "Floating" +msgstr "Schwebend." -#: ../src/libgdl/gdl-dock-item-grip.c:401 -msgid "Close this dock" -msgstr "Diesen Dok schlieĂźen" +#: ../src/libgdl/gdl-dock.c:177 +msgid "Whether the dock is floating in its own window" +msgstr "Schwebt Leiste in eigenem Fenster?" -# Zeit korrekt? -#: ../src/libgdl/gdl-dock-item-grip.c:720 -#: ../src/libgdl/gdl-dock-tablabel.c:125 -msgid "Controlling dock item" -msgstr "Verwaltet Dock-Objekt" +#: ../src/libgdl/gdl-dock.c:184 ../src/libgdl/gdl-dock-master.c:141 +msgid "Default title" +msgstr "Vorgegebener Titel" -#: ../src/libgdl/gdl-dock-item-grip.c:721 -msgid "Dockitem which 'owns' this grip" -msgstr "Dockobjekt, das diesen Griff \"besitzt\"" +#: ../src/libgdl/gdl-dock.c:185 +msgid "Default title for the newly created floating docks" +msgstr "Vorgegebener Titel fĂĽr neu erstellte schwebende Docks" + +#: ../src/libgdl/gdl-dock.c:192 +msgid "Width for the dock when it's of floating type" +msgstr "Breite des Docks im schwebenden Zustand" + +#: ../src/libgdl/gdl-dock.c:200 +msgid "Height for the dock when it's of floating type" +msgstr "Höhe des Docks im schwebenden Zustand" + +#: ../src/libgdl/gdl-dock.c:207 +msgid "Float X" +msgstr "X-Koordinate" + +#: ../src/libgdl/gdl-dock.c:208 +msgid "X coordinate for a floating dock" +msgstr "X-Koordinate eines schwebenden Docks" + +#: ../src/libgdl/gdl-dock.c:215 +msgid "Float Y" +msgstr "Y-Koordinate" + +#: ../src/libgdl/gdl-dock.c:216 +msgid "Y coordinate for a floating dock" +msgstr "Y-Koordinate eines schwebenden Docks" + +#: ../src/libgdl/gdl-dock.c:478 +#, c-format +msgid "Dock #%d" +msgstr "Andocken #%d" #. Name #: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 -#: ../src/widgets/text-toolbar.cpp:1414 +#: ../src/widgets/text-toolbar.cpp:1421 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -9980,9 +8269,24 @@ msgstr "Sperren" msgid "Attempt to bind an unbound item %p" msgstr "Versuch ein ungebundenes Objekt %p zu binden" -#: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 -msgid "Default title" -msgstr "Vorgegebener Titel" +# "piktogrammifizieren" geht noch besser? +#: ../src/libgdl/gdl-dock-item-grip.c:399 +msgid "Iconify this dock" +msgstr "Dieses Dock auf Icongröße verkleinern" + +#: ../src/libgdl/gdl-dock-item-grip.c:401 +msgid "Close this dock" +msgstr "Diesen Dok schlieĂźen" + +# Zeit korrekt? +#: ../src/libgdl/gdl-dock-item-grip.c:721 +#: ../src/libgdl/gdl-dock-tablabel.c:125 +msgid "Controlling dock item" +msgstr "Verwaltet Dock-Objekt" + +#: ../src/libgdl/gdl-dock-item-grip.c:722 +msgid "Dockitem which 'owns' this grip" +msgstr "Dockobjekt, das diesen Griff \"besitzt\"" #: ../src/libgdl/gdl-dock-master.c:142 msgid "Default title for newly created floating docks" @@ -10024,9 +8328,9 @@ msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:132 #: ../src/ui/dialog/align-and-distribute.cpp:1003 -#: ../src/ui/dialog/document-properties.cpp:152 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1497 -#: ../src/widgets/desktop-widget.cpp:1989 +#: ../src/ui/dialog/document-properties.cpp:149 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 +#: ../src/widgets/desktop-widget.cpp:2003 #: ../share/extensions/voronoi2svg.inx.h:9 msgid "Page" msgstr "Seite" @@ -10036,9 +8340,9 @@ msgid "The index of the current page" msgstr "Aktuelle Seitenzahl" #: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/ui/dialog/inkscape-preferences.cpp:1502 +#: ../src/ui/dialog/inkscape-preferences.cpp:1486 #: ../src/ui/widget/page-sizer.cpp:258 -#: ../src/widgets/gradient-selector.cpp:158 +#: ../src/widgets/gradient-selector.cpp:157 #: ../src/widgets/sp-xmlview-attr-list.cpp:54 msgid "Name" msgstr "Name" @@ -10208,196 +8512,154 @@ msgstr "" msgid "Dockitem which 'owns' this tablabel" msgstr "Dock-Objekt, dem dieser Tabbezeichner \"gehört\"." -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:633 -#: ../src/ui/dialog/inkscape-preferences.cpp:676 -msgid "Floating" -msgstr "Schwebend." - -#: ../src/libgdl/gdl-dock.c:177 -msgid "Whether the dock is floating in its own window" -msgstr "Schwebt Leiste in eigenem Fenster?" - -#: ../src/libgdl/gdl-dock.c:185 -msgid "Default title for the newly created floating docks" -msgstr "Vorgegebener Titel fĂĽr neu erstellte schwebende Docks" - -#: ../src/libgdl/gdl-dock.c:192 -msgid "Width for the dock when it's of floating type" -msgstr "Breite des Docks im schwebenden Zustand" - -#: ../src/libgdl/gdl-dock.c:200 -msgid "Height for the dock when it's of floating type" -msgstr "Höhe des Docks im schwebenden Zustand" - -#: ../src/libgdl/gdl-dock.c:207 -msgid "Float X" -msgstr "X-Koordinate" - -#: ../src/libgdl/gdl-dock.c:208 -msgid "X coordinate for a floating dock" -msgstr "X-Koordinate eines schwebenden Docks" - -#: ../src/libgdl/gdl-dock.c:215 -msgid "Float Y" -msgstr "Y-Koordinate" - -#: ../src/libgdl/gdl-dock.c:216 -msgid "Y coordinate for a floating dock" -msgstr "Y-Koordinate eines schwebenden Docks" - -#: ../src/libgdl/gdl-dock.c:476 -#, c-format -msgid "Dock #%d" -msgstr "Andocken #%d" - -#: ../src/libnrtype/FontFactory.cpp:966 +#: ../src/libnrtype/FontFactory.cpp:964 msgid "Ignoring font without family that will crash Pango" msgstr "" "Schrift ohne zugehörige Schriftfamilie wird ignoriert, damit Pango nicht " "abstĂĽrzt" -#: ../src/live_effects/effect.cpp:84 +#: ../src/live_effects/effect.cpp:86 msgid "doEffect stack test" msgstr "AusfĂĽhrenEffekt-Reihentest" -#: ../src/live_effects/effect.cpp:85 +#: ../src/live_effects/effect.cpp:87 msgid "Angle bisector" msgstr "Winkelhalbierende" #. TRANSLATORS: boolean operations -#: ../src/live_effects/effect.cpp:87 +#: ../src/live_effects/effect.cpp:89 msgid "Boolops" msgstr "Bool'sche Operationen" -#: ../src/live_effects/effect.cpp:88 +#: ../src/live_effects/effect.cpp:90 msgid "Circle (by center and radius)" msgstr "Kreis (Mittelpunkt+Radius)" -#: ../src/live_effects/effect.cpp:89 +#: ../src/live_effects/effect.cpp:91 msgid "Circle by 3 points" msgstr "Kreis durch 3 Punkte" -#: ../src/live_effects/effect.cpp:90 +#: ../src/live_effects/effect.cpp:92 msgid "Dynamic stroke" msgstr "Dynamischer Strich" -#: ../src/live_effects/effect.cpp:91 ../share/extensions/extrude.inx.h:1 +#: ../src/live_effects/effect.cpp:93 ../share/extensions/extrude.inx.h:1 msgid "Extrude" msgstr "Extrudieren" -#: ../src/live_effects/effect.cpp:92 +#: ../src/live_effects/effect.cpp:94 msgid "Lattice Deformation" msgstr "Gitterverformung" -#: ../src/live_effects/effect.cpp:93 +#: ../src/live_effects/effect.cpp:95 msgid "Line Segment" msgstr "Liniensegment" -#: ../src/live_effects/effect.cpp:94 +#: ../src/live_effects/effect.cpp:96 msgid "Mirror symmetry" msgstr "Spiegelsymmetrisch" -#: ../src/live_effects/effect.cpp:96 +#: ../src/live_effects/effect.cpp:98 msgid "Parallel" msgstr "Parallel" -#: ../src/live_effects/effect.cpp:97 +#: ../src/live_effects/effect.cpp:99 msgid "Path length" msgstr "Pfadlänge" -#: ../src/live_effects/effect.cpp:98 +#: ../src/live_effects/effect.cpp:100 msgid "Perpendicular bisector" msgstr "Senkrechte Winkelhalbierende" -#: ../src/live_effects/effect.cpp:99 +#: ../src/live_effects/effect.cpp:101 msgid "Perspective path" msgstr "Perspektivischer Pfad" -#: ../src/live_effects/effect.cpp:100 +#: ../src/live_effects/effect.cpp:102 msgid "Rotate copies" msgstr "Kopien rotieren" -#: ../src/live_effects/effect.cpp:101 +#: ../src/live_effects/effect.cpp:103 msgid "Recursive skeleton" msgstr "Rekursives Gitter" -#: ../src/live_effects/effect.cpp:102 +#: ../src/live_effects/effect.cpp:104 msgid "Tangent to curve" msgstr "Tangente an Kurve" -#: ../src/live_effects/effect.cpp:103 +#: ../src/live_effects/effect.cpp:105 msgid "Text label" msgstr "Text-Bezeichner" #. 0.46 -#: ../src/live_effects/effect.cpp:106 +#: ../src/live_effects/effect.cpp:108 msgid "Bend" msgstr "Biegen" -#: ../src/live_effects/effect.cpp:107 +#: ../src/live_effects/effect.cpp:109 msgid "Gears" msgstr "Zahnräder" -#: ../src/live_effects/effect.cpp:108 +#: ../src/live_effects/effect.cpp:110 msgid "Pattern Along Path" msgstr "Muster entlang Pfad" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:109 +#: ../src/live_effects/effect.cpp:111 msgid "Stitch Sub-Paths" msgstr "Unterpfade zusammenfĂĽgen" #. 0.47 -#: ../src/live_effects/effect.cpp:111 +#: ../src/live_effects/effect.cpp:113 msgid "VonKoch" msgstr "VonKoch" -#: ../src/live_effects/effect.cpp:112 +#: ../src/live_effects/effect.cpp:114 msgid "Knot" msgstr "Knoten" -#: ../src/live_effects/effect.cpp:113 +#: ../src/live_effects/effect.cpp:115 msgid "Construct grid" msgstr "Gitter erzeugen" -#: ../src/live_effects/effect.cpp:114 +#: ../src/live_effects/effect.cpp:116 msgid "Spiro spline" msgstr "Spiro spline" -#: ../src/live_effects/effect.cpp:115 +#: ../src/live_effects/effect.cpp:117 msgid "Envelope Deformation" msgstr "HĂĽllen-Verformung" -#: ../src/live_effects/effect.cpp:116 +#: ../src/live_effects/effect.cpp:118 msgid "Interpolate Sub-Paths" msgstr "Unterpfade interpolieren" -#: ../src/live_effects/effect.cpp:117 +#: ../src/live_effects/effect.cpp:119 msgid "Hatches (rough)" msgstr "Schraffur (grob)" -#: ../src/live_effects/effect.cpp:118 +#: ../src/live_effects/effect.cpp:120 msgid "Sketch" msgstr "Skizze" -#: ../src/live_effects/effect.cpp:119 +#: ../src/live_effects/effect.cpp:121 msgid "Ruler" msgstr "Lineal" #. 0.49 -#: ../src/live_effects/effect.cpp:121 +#: ../src/live_effects/effect.cpp:123 msgid "Power stroke" msgstr "Kräftige Kontur" -#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2835 +#: ../src/live_effects/effect.cpp:124 ../src/selection-chemistry.cpp:2789 msgid "Clone original path" msgstr "Originalpfad klonen" -#: ../src/live_effects/effect.cpp:284 +#: ../src/live_effects/effect.cpp:286 msgid "Is visible?" msgstr "Sichtbar?" -#: ../src/live_effects/effect.cpp:284 +#: ../src/live_effects/effect.cpp:286 msgid "" "If unchecked, the effect remains applied to the object but is temporarily " "disabled on canvas" @@ -10405,28 +8667,60 @@ msgstr "" "Wenn die Option deaktiviert ist, wird der Effekt auf das Objekt angewendet, " "jedoch temporär ausgeblendet." -#: ../src/live_effects/effect.cpp:305 +#: ../src/live_effects/effect.cpp:307 msgid "No effect" msgstr "Kein Effekt" -#: ../src/live_effects/effect.cpp:352 +#: ../src/live_effects/effect.cpp:354 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" "Bitte spezifizieren Sie einen Parameterpfad fĂĽr den Pfadeffekt \"%s\" mit %d " "Mausklicks. " -#: ../src/live_effects/effect.cpp:624 +#: ../src/live_effects/effect.cpp:632 #, c-format msgid "Editing parameter %s." msgstr "Editiere Parameter %s." -#: ../src/live_effects/effect.cpp:629 +#: ../src/live_effects/effect.cpp:637 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" "Keine Parameter der auf den Pfad angewandten Effekte können auf der " "Zeichenfläche verändert werden." +#: ../src/live_effects/lpe-angle_bisector.cpp:45 +#: ../src/live_effects/lpe-parallel.cpp:51 +#: ../src/live_effects/lpe-perp_bisector.cpp:97 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:63 +msgid "Length left:" +msgstr "Länge links:" + +#: ../src/live_effects/lpe-angle_bisector.cpp:45 +#: ../src/live_effects/lpe-perp_bisector.cpp:97 +msgid "Specifies the left end of the bisector" +msgstr "Legt das linke Ende der Halbierenden fest" + +#: ../src/live_effects/lpe-angle_bisector.cpp:46 +#: ../src/live_effects/lpe-parallel.cpp:52 +#: ../src/live_effects/lpe-perp_bisector.cpp:98 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:64 +msgid "Length right:" +msgstr "Länge rechts:" + +#: ../src/live_effects/lpe-angle_bisector.cpp:46 +#: ../src/live_effects/lpe-perp_bisector.cpp:98 +msgid "Specifies the right end of the bisector" +msgstr "Legt das rechte Ende der Halbierenden fest" + +#: ../src/live_effects/lpe-angle_bisector.cpp:86 +msgid "Adjust the \"left\" end of the bisector" +msgstr "Einstellen des \"linken\" Endes der Halbierenden" + +#: ../src/live_effects/lpe-angle_bisector.cpp:92 +msgid "Adjust the \"right\" of the bisector" +msgstr "Einstellen des \"rechten\" Endes der Halbierenden" + #: ../src/live_effects/lpe-bendpath.cpp:53 msgid "Bend path:" msgstr "Pfad verbiegen" @@ -10437,7 +8731,7 @@ msgstr "Pfad an den der Orginalpfad angelegt wird" #: ../src/live_effects/lpe-bendpath.cpp:54 #: ../src/live_effects/lpe-patternalongpath.cpp:62 -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/dialog/export.cpp:288 ../src/ui/dialog/transformation.cpp:80 #: ../src/ui/widget/page-sizer.cpp:236 msgid "_Width:" msgstr "_Breite:" @@ -10463,6 +8757,60 @@ msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "" "Rotiert das Original um 90 Grad bevor es entlang des Pfades gebogen wird" +#: ../src/live_effects/lpe-boolops.cpp:22 +msgid "Null" +msgstr "Null" + +#: ../src/live_effects/lpe-boolops.cpp:23 +msgid "Intersect" +msgstr "Ăśberschneidung" + +#: ../src/live_effects/lpe-boolops.cpp:24 +msgid "Subtract A-B" +msgstr "Subtrahiere A-B" + +#: ../src/live_effects/lpe-boolops.cpp:25 +msgid "Identity A" +msgstr "Identifikator A" + +#: ../src/live_effects/lpe-boolops.cpp:26 +msgid "Subtract B-A" +msgstr "Subtrahiere B-A" + +#: ../src/live_effects/lpe-boolops.cpp:27 +msgid "Identity B" +msgstr "Identifikator B" + +#: ../src/live_effects/lpe-boolops.cpp:28 ../src/splivarot.cpp:100 +msgid "Exclusion" +msgstr "Exklusiv-Oder (Ausschluss)" + +#: ../src/live_effects/lpe-boolops.cpp:29 ../src/splivarot.cpp:70 +#: ../src/splivarot.cpp:76 +msgid "Union" +msgstr "Vereinigung" + +#: ../src/live_effects/lpe-boolops.cpp:35 +msgid "2nd path:" +msgstr "2. Pfad:" + +#: ../src/live_effects/lpe-boolops.cpp:35 +#, fuzzy +msgid "Path to which the original path will be boolop'ed." +msgstr "" +"Dynamischen Versatz am Objekt erstellen. VerknĂĽpfung zum originalen Pfad " +"bleibt bestehen." + +#: ../src/live_effects/lpe-boolops.cpp:36 +#, fuzzy +msgid "Boolop type:" +msgstr "Werkzeugtyp:" + +#: ../src/live_effects/lpe-boolops.cpp:36 +msgid "Determines which kind of boolop will be performed." +msgstr "" +"Legt die Art der Bool'schen Operation fest, die angewendet werden soll." + #: ../src/live_effects/lpe-clone-original.cpp:18 msgid "Linked path:" msgstr "VerknĂĽpfter Pfad:" @@ -10487,6 +8835,46 @@ msgstr "Größe _Y:" msgid "The size of the grid in Y direction." msgstr "Die Größe des Gitters in Y-Richtung" +#: ../src/live_effects/lpe-copy_rotate.cpp:51 +msgid "Starting:" +msgstr "Anfang:" + +#: ../src/live_effects/lpe-copy_rotate.cpp:51 +msgid "Angle of the first copy" +msgstr "Winkel der ersten Kopie" + +#: ../src/live_effects/lpe-copy_rotate.cpp:52 +msgid "Rotation angle:" +msgstr "Rotationswinkel" + +#: ../src/live_effects/lpe-copy_rotate.cpp:52 +msgid "Angle between two successive copies" +msgstr "Winkel zwischen zwei aufeinander folgenden Kopien" + +#: ../src/live_effects/lpe-copy_rotate.cpp:53 +msgid "Number of copies:" +msgstr "Anzahl der Kopien" + +#: ../src/live_effects/lpe-copy_rotate.cpp:53 +msgid "Number of copies of the original path" +msgstr "Anzahl der Kopien des Originalpfades" + +#: ../src/live_effects/lpe-copy_rotate.cpp:54 +msgid "Origin" +msgstr "Ursprung" + +#: ../src/live_effects/lpe-copy_rotate.cpp:54 +msgid "Origin of the rotation" +msgstr "Rotationszentrum" + +#: ../src/live_effects/lpe-copy_rotate.cpp:135 +msgid "Adjust the starting angle" +msgstr "Anpassen des Startwinkels" + +#: ../src/live_effects/lpe-copy_rotate.cpp:141 +msgid "Adjust the rotation angle" +msgstr "Anpassen des Rotationswinkels" + #: ../src/live_effects/lpe-curvestitch.cpp:41 msgid "Stitch path:" msgstr "Stich-Pfad" @@ -10568,6 +8956,115 @@ msgstr "Skaliere die Breite relativ zur Länge" msgid "Scale the width of the stitch path relative to its length" msgstr "Skalieren der Breite des Stichpfades relativ zu seiner Länge" +#: ../src/live_effects/lpe-dynastroke.cpp:35 +msgid "Elliptic Pen" +msgstr "Elliptischer Stift" + +#: ../src/live_effects/lpe-dynastroke.cpp:36 +msgid "Thick-Thin strokes (fast)" +msgstr "Dick-DĂĽnn-Striche (schnell)" + +#: ../src/live_effects/lpe-dynastroke.cpp:37 +msgid "Thick-Thin strokes (slow)" +msgstr "Dick-DĂĽnn-Striche (langsam)" + +#: ../src/live_effects/lpe-dynastroke.cpp:42 +msgid "Sharp" +msgstr "Schärfen" + +#: ../src/live_effects/lpe-dynastroke.cpp:43 +#: ../src/live_effects/lpe-powerstroke.cpp:205 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +msgid "Round" +msgstr "Abrunden" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-dynastroke.cpp:50 +msgid "Method:" +msgstr "Methode" + +#: ../src/live_effects/lpe-dynastroke.cpp:50 +msgid "Choose pen type" +msgstr "Wähle den Stifttyp" + +#: ../src/live_effects/lpe-dynastroke.cpp:51 +msgid "Pen width:" +msgstr "Stiftbreite" + +#: ../src/live_effects/lpe-dynastroke.cpp:51 +msgid "Maximal stroke width" +msgstr "Maximale Strichbreite" + +#: ../src/live_effects/lpe-dynastroke.cpp:52 +msgid "Pen roundness:" +msgstr "Stiftabrundung" + +#: ../src/live_effects/lpe-dynastroke.cpp:52 +msgid "Min/Max width ratio" +msgstr "Min/Max Weitenverhältnis" + +#: ../src/live_effects/lpe-dynastroke.cpp:53 +#: ../src/live_effects/lpe-tangent_to_curve.cpp:61 +#: ../src/widgets/calligraphy-toolbar.cpp:480 +#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 +msgid "Angle:" +msgstr "Winkel:" + +#: ../src/live_effects/lpe-dynastroke.cpp:53 +msgid "direction of thickest strokes (opposite = thinest)" +msgstr "Richtung des dicksten Striches (entgegengesetzt = dĂĽnnster)" + +#. modulo_pi(_("modulo pi"), _("Give forward and backward moves in one direction the same thickness "), "modulo_pi", &wr, this, false), +#: ../src/live_effects/lpe-dynastroke.cpp:55 +#: ../src/widgets/arc-toolbar.cpp:336 +msgid "Start:" +msgstr "Anfang:" + +#: ../src/live_effects/lpe-dynastroke.cpp:55 +msgid "Choose start capping type" +msgstr "Anfangsmarkierung wählen" + +#: ../src/live_effects/lpe-dynastroke.cpp:56 +#: ../src/widgets/arc-toolbar.cpp:349 +msgid "End:" +msgstr "Ende:" + +#: ../src/live_effects/lpe-dynastroke.cpp:56 +msgid "Choose end capping type" +msgstr "Endmarkierung wählen" + +#: ../src/live_effects/lpe-dynastroke.cpp:57 +msgid "Grow for:" +msgstr "Wachse um" + +#: ../src/live_effects/lpe-dynastroke.cpp:57 +msgid "Make the stroke thiner near it's start" +msgstr "Strich dĂĽnner starten" + +#: ../src/live_effects/lpe-dynastroke.cpp:58 +msgid "Fade for:" +msgstr "Ausblenden zu:" + +#: ../src/live_effects/lpe-dynastroke.cpp:58 +msgid "Make the stroke thiner near it's end" +msgstr "Strich dĂĽnner beenden" + +#: ../src/live_effects/lpe-dynastroke.cpp:59 +msgid "Round ends" +msgstr "Runde Enden ab" + +#: ../src/live_effects/lpe-dynastroke.cpp:59 +msgid "Strokes end with a round end" +msgstr "Strich endet abgerundet" + +#: ../src/live_effects/lpe-dynastroke.cpp:60 +msgid "Capping:" +msgstr "Kappung" + +#: ../src/live_effects/lpe-dynastroke.cpp:60 +msgid "left capping" +msgstr "Linker Winkel" + #: ../src/live_effects/lpe-envelope.cpp:31 msgid "Top bend path:" msgstr "Oberen Pfad verbiegen" @@ -10673,63 +9170,297 @@ msgstr "" "Knoten des Trajektorienpfades ab." #. initialise your parameters here: -#: ../src/live_effects/lpe-knot.cpp:350 +#: ../src/live_effects/lpe-knot.cpp:347 msgid "Fi_xed width:" msgstr "Feste Breite" -#: ../src/live_effects/lpe-knot.cpp:350 +#: ../src/live_effects/lpe-knot.cpp:347 msgid "Size of hidden region of lower string" msgstr "Größe des versteckten Abschnitts der unteren Zeichenkette" -#: ../src/live_effects/lpe-knot.cpp:351 +#: ../src/live_effects/lpe-knot.cpp:348 msgid "_In units of stroke width" msgstr "In Einheiten der Strichbreite" -#: ../src/live_effects/lpe-knot.cpp:351 +#: ../src/live_effects/lpe-knot.cpp:348 msgid "Consider 'Interruption width' as a ratio of stroke width" msgstr "\"Unterbrechungsbreite\" in Vielfachen der Strichbreite" -#: ../src/live_effects/lpe-knot.cpp:352 +#: ../src/live_effects/lpe-knot.cpp:349 msgid "St_roke width" msgstr "Breite der Kontur" -#: ../src/live_effects/lpe-knot.cpp:352 +#: ../src/live_effects/lpe-knot.cpp:349 msgid "Add the stroke width to the interruption size" msgstr "Addiere Strichdicke zur Unterbrechungslänge." -#: ../src/live_effects/lpe-knot.cpp:353 +#: ../src/live_effects/lpe-knot.cpp:350 msgid "_Crossing path stroke width" msgstr "Breite gekreuzter Striche" -#: ../src/live_effects/lpe-knot.cpp:353 +#: ../src/live_effects/lpe-knot.cpp:350 msgid "Add crossed stroke width to the interruption size" msgstr "Addiere Dicke gekreuzter Striche zur Unterbrechungslänge." -#: ../src/live_effects/lpe-knot.cpp:354 +#: ../src/live_effects/lpe-knot.cpp:351 msgid "S_witcher size:" msgstr "Größe des Drehpfeiles" -#: ../src/live_effects/lpe-knot.cpp:354 +#: ../src/live_effects/lpe-knot.cpp:351 msgid "Orientation indicator/switcher size" msgstr "Größe des Orientierungszeigers/-schalters" -#: ../src/live_effects/lpe-knot.cpp:355 +#: ../src/live_effects/lpe-knot.cpp:352 msgid "Crossing Signs" msgstr "Kreuzungsmarkierung" -#: ../src/live_effects/lpe-knot.cpp:355 +#: ../src/live_effects/lpe-knot.cpp:352 msgid "Crossings signs" msgstr "Kreuzungsmarkierungen" -#: ../src/live_effects/lpe-knot.cpp:620 +#: ../src/live_effects/lpe-knot.cpp:617 msgid "Drag to select a crossing, click to flip it" msgstr "Ziehen, wählt eine Ăśberschneidung aus, Klicken dreht sie um" #. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:658 +#: ../src/live_effects/lpe-knot.cpp:655 msgid "Change knot crossing" msgstr "Knotenkreuz ändern" +#. initialise your parameters here: +#: ../src/live_effects/lpe-lattice.cpp:45 +msgid "Control handle 0:" +msgstr "Control handle 0:" + +#: ../src/live_effects/lpe-lattice.cpp:45 +msgid "Control handle 0" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:46 +msgid "Control handle 1:" +msgstr "Control handle 1:" + +#: ../src/live_effects/lpe-lattice.cpp:46 +msgid "Control handle 1" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:47 +msgid "Control handle 2:" +msgstr "Control handle 2:" + +#: ../src/live_effects/lpe-lattice.cpp:47 +msgid "Control handle 2" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:48 +msgid "Control handle 3:" +msgstr "Control handle 3:" + +#: ../src/live_effects/lpe-lattice.cpp:48 +msgid "Control handle 3" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:49 +msgid "Control handle 4:" +msgstr "Control handle 4:" + +#: ../src/live_effects/lpe-lattice.cpp:49 +msgid "Control handle 4" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:50 +msgid "Control handle 5:" +msgstr "Control handle 5:" + +#: ../src/live_effects/lpe-lattice.cpp:50 +msgid "Control handle 5" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:51 +msgid "Control handle 6:" +msgstr "Control handle 6:" + +#: ../src/live_effects/lpe-lattice.cpp:51 +msgid "Control handle 6" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:52 +msgid "Control handle 7:" +msgstr "Control handle 7:" + +#: ../src/live_effects/lpe-lattice.cpp:52 +msgid "Control handle 7" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:53 +msgid "Control handle 8:" +msgstr "Control handle 8:" + +#: ../src/live_effects/lpe-lattice.cpp:53 +msgid "Control handle 8" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:54 +msgid "Control handle 9:" +msgstr "Control handle 9:" + +#: ../src/live_effects/lpe-lattice.cpp:54 +msgid "Control handle 9" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:55 +msgid "Control handle 10:" +msgstr "Control handle 10:" + +#: ../src/live_effects/lpe-lattice.cpp:55 +msgid "Control handle 10" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:56 +msgid "Control handle 11:" +msgstr "Control handle 11:" + +#: ../src/live_effects/lpe-lattice.cpp:56 +msgid "Control handle 11" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:57 +msgid "Control handle 12:" +msgstr "Control handle 12:" + +#: ../src/live_effects/lpe-lattice.cpp:57 +msgid "Control handle 12" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:58 +msgid "Control handle 13:" +msgstr "Control handle 13:" + +#: ../src/live_effects/lpe-lattice.cpp:58 +msgid "Control handle 13" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:59 +msgid "Control handle 14:" +msgstr "Control handle 14:" + +#: ../src/live_effects/lpe-lattice.cpp:59 +msgid "Control handle 14" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-lattice.cpp:60 +msgid "Control handle 15:" +msgstr "Control handle 15:" + +#: ../src/live_effects/lpe-lattice.cpp:60 +msgid "Control handle 15" +msgstr "Knotenanfasser verschieben" + +#: ../src/live_effects/lpe-line_segment.cpp:25 +#: ../src/widgets/lpe-toolbar.cpp:252 +msgid "Closed" +msgstr "Geschlossen" + +#: ../src/live_effects/lpe-line_segment.cpp:26 +#: ../src/widgets/lpe-toolbar.cpp:254 +msgid "Open start" +msgstr "Offener Anfang" + +#: ../src/live_effects/lpe-line_segment.cpp:27 +#: ../src/widgets/lpe-toolbar.cpp:256 +msgid "Open end" +msgstr "Offenes Ende" + +#: ../src/live_effects/lpe-line_segment.cpp:28 +#: ../src/widgets/lpe-toolbar.cpp:258 +msgid "Open both" +msgstr "Ă–ffne beide" + +#: ../src/live_effects/lpe-line_segment.cpp:34 +msgid "End type:" +msgstr "Endtyp:" + +#: ../src/live_effects/lpe-line_segment.cpp:34 +msgid "Determines on which side the line or line segment is infinite." +msgstr "Bestimmt, welche Seite der Linie oder des Segments unendlich ist." + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:32 +#, fuzzy +msgid "Discard original path?" +msgstr "Originalpfad ersetzen" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:32 +msgid "Check this to only keep the mirrored part of the path" +msgstr "Aktivieren um den gespiegelten Teil des Pfades zu behalten" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:33 +#, fuzzy +msgid "Reflection line:" +msgstr "Auswahl" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:33 +msgid "Line which serves as 'mirror' for the reflection" +msgstr "Linie, die als 'Spiegel' fĂĽr die Rflektion dienen soll." + +#: ../src/live_effects/lpe-offset.cpp:31 +msgid "Handle to control the distance of the offset from the curve" +msgstr "Anfasser zum Einstellen der Entfernung des Offset der Kurve" + +#: ../src/live_effects/lpe-parallel.cpp:50 +msgid "Adjust the offset" +msgstr "Versatz-Abstand anpassen" + +#: ../src/live_effects/lpe-parallel.cpp:51 +msgid "Specifies the left end of the parallel" +msgstr "Legt das linke Ende der Parallele fest" + +#: ../src/live_effects/lpe-parallel.cpp:52 +#, fuzzy +msgid "Specifies the right end of the parallel" +msgstr "Legt das linke Ende der Parallele fest" + +#: ../src/live_effects/lpe-parallel.cpp:102 +msgid "Adjust the \"left\" end of the parallel" +msgstr "Einstellen des \"linken\" Endes der Parallele" + +#: ../src/live_effects/lpe-parallel.cpp:108 +msgid "Adjust the \"right\" end of the parallel" +msgstr "Einstellen des \"rechten\" Endes der Parallele" + +#: ../src/live_effects/lpe-path_length.cpp:26 +#: ../src/live_effects/lpe-sketch.cpp:58 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2668 +#: ../share/extensions/render_alphabetsoup.inx.h:3 +msgid "Scale:" +msgstr "Skalierung:" + +#: ../src/live_effects/lpe-path_length.cpp:26 +msgid "Scaling factor" +msgstr "Saklierungsfaktor" + +#: ../src/live_effects/lpe-path_length.cpp:28 +#: ../src/live_effects/lpe-ruler.cpp:42 +#: ../share/extensions/foldablebox.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:9 +#: ../share/extensions/layout_nup.inx.h:3 +#: ../share/extensions/printing_marks.inx.h:11 +msgid "Unit:" +msgstr "Einheit:" + +#: ../src/live_effects/lpe-path_length.cpp:28 +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 +msgid "Unit" +msgstr "Einheit" + +#: ../src/live_effects/lpe-path_length.cpp:29 +msgid "Display unit" +msgstr "Anzeige-Einheit" + +#: ../src/live_effects/lpe-path_length.cpp:29 +#, fuzzy +msgid "Print unit after path length" +msgstr "Breite der Halo in Pixeln" + #: ../src/live_effects/lpe-patternalongpath.cpp:50 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -10828,6 +9559,61 @@ msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "" "Verschmelze Enden näher zusammen als diese Zahl. 0 fĂĽr keine Verschmelzung." +#: ../src/live_effects/lpe-perp_bisector.cpp:159 +msgid "Adjust the bisector's \"left\" end" +msgstr "Stellt das \"linke\" Ende der Halbierenden ein" + +#: ../src/live_effects/lpe-perp_bisector.cpp:165 +msgid "Adjust the bisector's \"right\" end" +msgstr "Stellt das \"rechte\" Ende der Halbierenden ein" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-perspective_path.cpp:47 +msgid "Scale x" +msgstr "X Skalieren" + +#: ../src/live_effects/lpe-perspective_path.cpp:47 +msgid "Scale factor in x direction" +msgstr "Skaliere den Faktor in X-Richtung" + +#: ../src/live_effects/lpe-perspective_path.cpp:48 +msgid "Scale y" +msgstr "Y Skalieren" + +#: ../src/live_effects/lpe-perspective_path.cpp:48 +msgid "Scale factor in y direction" +msgstr "Skaliere den Faktor in Y-Richtung" + +#: ../src/live_effects/lpe-perspective_path.cpp:49 +msgid "Offset x" +msgstr "Versatz x" + +#: ../src/live_effects/lpe-perspective_path.cpp:49 +msgid "Offset in x direction" +msgstr "Versatz in X-Richtung" + +#: ../src/live_effects/lpe-perspective_path.cpp:50 +msgid "Offset y" +msgstr "Versatz y" + +#: ../src/live_effects/lpe-perspective_path.cpp:50 +msgid "Offset in y direction" +msgstr "Versatz in Y-Richtung" + +#: ../src/live_effects/lpe-perspective_path.cpp:51 +msgid "Uses XY plane?" +msgstr "XY-Ebene benutzen?" + +#: ../src/live_effects/lpe-perspective_path.cpp:51 +msgid "" +"If true, put the path on the left side of an imaginary box, otherwise on the " +"right side" +msgstr "" + +#: ../src/live_effects/lpe-perspective_path.cpp:145 +msgid "Adjust the origin" +msgstr "Einstellen des Ursprungs" + #: ../src/live_effects/lpe-powerstroke.cpp:189 msgid "CubicBezierFit" msgstr "CubicBezierFit" @@ -10848,11 +9634,6 @@ msgstr "StoĂź" msgid "Square" msgstr "Quadrat" -#: ../src/live_effects/lpe-powerstroke.cpp:205 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 -msgid "Round" -msgstr "Abrunden" - #: ../src/live_effects/lpe-powerstroke.cpp:206 msgid "Peak" msgstr "Spitze" @@ -10866,7 +9647,7 @@ msgid "Beveled" msgstr "Abgeschrägt" #: ../src/live_effects/lpe-powerstroke.cpp:221 -#: ../src/widgets/star-toolbar.cpp:534 +#: ../src/widgets/star-toolbar.cpp:542 msgid "Rounded" msgstr "Abgerundet" @@ -10879,7 +9660,7 @@ msgid "Miter" msgstr "Gehrung" #: ../src/live_effects/lpe-powerstroke.cpp:224 -#: ../src/widgets/pencil-toolbar.cpp:103 +#: ../src/widgets/pencil-toolbar.cpp:132 msgid "Spiro" msgstr "Spirale" @@ -10938,7 +9719,7 @@ msgstr "Bestimmt die Form des Pfad-Start" #. TRANSLATORS: The line join style specifies the shape to be used at the #. corners of paths. It can be "miter", "round" or "bevel". #: ../src/live_effects/lpe-powerstroke.cpp:238 -#: ../src/widgets/stroke-style.cpp:227 +#: ../src/widgets/stroke-style.cpp:226 msgid "Join:" msgstr "Verbindungsart:" @@ -10951,7 +9732,7 @@ msgid "Miter limit:" msgstr "Gehrungslimit:" #: ../src/live_effects/lpe-powerstroke.cpp:239 -#: ../src/widgets/stroke-style.cpp:278 +#: ../src/widgets/stroke-style.cpp:277 msgid "Maximum length of the miter (in units of stroke width)" msgstr "Maximale Länge der Spitze (in Vielfachen der Konturlinienbreite)" @@ -10963,6 +9744,14 @@ msgstr "Ende:" msgid "Determines the shape of the path's end" msgstr "Bestimmt die Form des Pfad-Endes" +#: ../src/live_effects/lpe-recursiveskeleton.cpp:30 +msgid "Iterations:" +msgstr "Iterationen" + +#: ../src/live_effects/lpe-recursiveskeleton.cpp:30 +msgid "recursivity" +msgstr "Rekursivität" + #: ../src/live_effects/lpe-rough-hatches.cpp:225 msgid "Frequency randomness:" msgstr "Zufalls-Frequenz" @@ -11169,11 +9958,11 @@ msgstr "Rechts" msgid "Both" msgstr "Beide" -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:326 +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:336 msgid "Start" msgstr "Anfang" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:339 +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:349 msgid "End" msgstr "Ende" @@ -11185,18 +9974,6 @@ msgstr "Markierungsdistanz:" msgid "Distance between successive ruler marks" msgstr "Abstand zwischen aufeinander folgenden Linealmarkierungen" -#: ../src/live_effects/lpe-ruler.cpp:42 -#: ../share/extensions/foldablebox.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:9 -#: ../share/extensions/layout_nup.inx.h:3 -#: ../share/extensions/printing_marks.inx.h:11 -msgid "Unit:" -msgstr "Einheit:" - -#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 -msgid "Unit" -msgstr "Einheit" - #: ../src/live_effects/lpe-ruler.cpp:43 msgid "Ma_jor length:" msgstr "GroĂźe Länge:" @@ -11253,6 +10030,16 @@ msgstr "Randmarkierungen:" msgid "Choose whether to draw marks at the beginning and end of the path" msgstr "Wählt Markierungen an Anfang und Ende des Pfades" +#. initialise your parameters here: +#: ../src/live_effects/lpe-skeleton.cpp:37 +#, fuzzy +msgid "Float parameter" +msgstr "Effektparameter" + +#: ../src/live_effects/lpe-skeleton.cpp:37 +msgid "just a real number like 1.4!" +msgstr "Nur reelle Zahlen wie 1,4!" + #. initialise your parameters here: #. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), #: ../src/live_effects/lpe-sketch.cpp:38 @@ -11341,12 +10128,6 @@ msgstr "Konstruktionslinien" msgid "How many construction lines (tangents) to draw" msgstr "Wie viele Konstruktionslinien (Tangenten) gezeichnet werden sollen" -#: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -#: ../share/extensions/render_alphabetsoup.inx.h:3 -msgid "Scale:" -msgstr "Skalierung:" - #: ../src/live_effects/lpe-sketch.cpp:59 msgid "" "Scale factor relating curvature and length of construction lines (try " @@ -11381,44 +10162,102 @@ msgstr "" "0: gleichmäßig verteilte Konstruktionslinien, 1: absolut zufällige " "Platzierung" -# !!! maybe use "verbinden" -#: ../src/live_effects/lpe-sketch.cpp:64 -msgid "k_min:" -msgstr "k_min:" +# !!! maybe use "verbinden" +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "k_min:" +msgstr "k_min:" + +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "min curvature" +msgstr "min. KrĂĽmmung" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "k_max:" +msgstr "k_max" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "max curvature" +msgstr "maximale KrĂĽmmung" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:61 +msgid "Additional angle between tangent and curve" +msgstr "Winkel, um den Tangente zu Kurve gedreht wird." + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:62 +#, fuzzy +msgid "Location along curve:" +msgstr "Ort des Benutzer-Caches" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:62 +msgid "" +"Location of the point of attachment along the curve (between 0.0 and number-" +"of-segments)" +msgstr "" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:63 +msgid "Specifies the left end of the tangent" +msgstr "Legt das linke Ende der Tangente fest" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:64 +msgid "Specifies the right end of the tangent" +msgstr "Legt das rechte Ende der Tangente fest" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:105 +#, fuzzy +msgid "Adjust the point of attachment of the tangent" +msgstr "Zwischenfarbe des Farbverlaufs bearbeiten" + +#: ../src/live_effects/lpe-tangent_to_curve.cpp:111 +msgid "Adjust the \"left\" end of the tangent" +msgstr "Einstellen des \"linken\" Endes der Tangente" -#: ../src/live_effects/lpe-sketch.cpp:64 -msgid "min curvature" -msgstr "min. KrĂĽmmung" +#: ../src/live_effects/lpe-tangent_to_curve.cpp:117 +msgid "Adjust the \"right\" end of the tangent" +msgstr "Einstellen des \"rechten\" Endes der Tangente" -#: ../src/live_effects/lpe-sketch.cpp:65 -msgid "k_max:" -msgstr "k_max" +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:22 +#, fuzzy +msgid "Stack step:" +msgstr "Scans stapeln" -#: ../src/live_effects/lpe-sketch.cpp:65 -msgid "max curvature" -msgstr "maximale KrĂĽmmung" +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:23 +msgid "Point param:" +msgstr "Punktparameter" + +#: ../src/live_effects/lpe-test-doEffect-stack.cpp:24 +msgid "Path param:" +msgstr "Pfadparameter" -#: ../src/live_effects/lpe-vonkoch.cpp:46 +#: ../src/live_effects/lpe-text_label.cpp:23 +#, fuzzy +msgid "Label:" +msgstr "_Bezeichner:" + +#: ../src/live_effects/lpe-text_label.cpp:23 +msgid "Text label attached to the path" +msgstr "Textmarkierung, die dem Pfad zugewiesen ist" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 msgid "N_r of generations:" msgstr "Anzahl der Generationen" -#: ../src/live_effects/lpe-vonkoch.cpp:46 +#: ../src/live_effects/lpe-vonkoch.cpp:47 msgid "Depth of the recursion --- keep low!!" msgstr "Tiefe der Rekursion --- Mit Bedacht!!" -#: ../src/live_effects/lpe-vonkoch.cpp:47 +#: ../src/live_effects/lpe-vonkoch.cpp:48 msgid "Generating path:" msgstr "Erzeuge neuen Pfad" -#: ../src/live_effects/lpe-vonkoch.cpp:47 +#: ../src/live_effects/lpe-vonkoch.cpp:48 msgid "Path whose segments define the iterated transforms" msgstr "Segmente des Pfades bestimmen die Iterationen der Transformation" -#: ../src/live_effects/lpe-vonkoch.cpp:48 +#: ../src/live_effects/lpe-vonkoch.cpp:49 msgid "_Use uniform transforms only" msgstr "Nur uniforme Transformationen verwenden" -#: ../src/live_effects/lpe-vonkoch.cpp:48 +#: ../src/live_effects/lpe-vonkoch.cpp:49 msgid "" "2 consecutive segments are used to reverse/preserve orientation only " "(otherwise, they define a general transform)." @@ -11426,31 +10265,31 @@ msgstr "" "Zwei aufeinander folgende Segmente klappen nur die Orientierung um " "(ansonsten definieren sie eine generelle Transformation)" -#: ../src/live_effects/lpe-vonkoch.cpp:49 +#: ../src/live_effects/lpe-vonkoch.cpp:50 msgid "Dra_w all generations" msgstr "Zeichne alle Generationen" -#: ../src/live_effects/lpe-vonkoch.cpp:49 +#: ../src/live_effects/lpe-vonkoch.cpp:50 msgid "If unchecked, draw only the last generation" msgstr "Wenn nicht ausgewählt, wird nur letzte Generation gezeichnet." #. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) -#: ../src/live_effects/lpe-vonkoch.cpp:51 +#: ../src/live_effects/lpe-vonkoch.cpp:52 msgid "Reference segment:" msgstr "Referenz-Segment" -#: ../src/live_effects/lpe-vonkoch.cpp:51 +#: ../src/live_effects/lpe-vonkoch.cpp:52 msgid "The reference segment. Defaults to the horizontal midline of the bbox." msgstr "Referenzsegment (Vorgabe ist horizontale Mittellinie der Umrandung)" #. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), #. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), #. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. -#: ../src/live_effects/lpe-vonkoch.cpp:55 +#: ../src/live_effects/lpe-vonkoch.cpp:56 msgid "_Max complexity:" msgstr "_Maximale Kompexität:" -#: ../src/live_effects/lpe-vonkoch.cpp:55 +#: ../src/live_effects/lpe-vonkoch.cpp:56 msgid "Disable effect if the output is too complex" msgstr "Deaktivieren Sie den Effekt, wenn die Ausgabe zu komplex wird." @@ -11462,12 +10301,12 @@ msgstr "Booleschen Parameter ändern" msgid "Change enumeration parameter" msgstr "Aufzählungsparameter ändern" -#: ../src/live_effects/parameter/originalpath.cpp:71 -#: ../src/live_effects/parameter/path.cpp:195 +#: ../src/live_effects/parameter/originalpath.cpp:70 +#: ../src/live_effects/parameter/path.cpp:194 msgid "Link to path" msgstr "Am Pfad verknĂĽpfen" -#: ../src/live_effects/parameter/originalpath.cpp:83 +#: ../src/live_effects/parameter/originalpath.cpp:82 msgid "Select original" msgstr "Original auswählen" @@ -11475,23 +10314,23 @@ msgstr "Original auswählen" msgid "Change scalar parameter" msgstr "Skalar-Parameter ändern" -#: ../src/live_effects/parameter/path.cpp:165 +#: ../src/live_effects/parameter/path.cpp:164 msgid "Edit on-canvas" msgstr "Auf der Zeichenfläche verändern" -#: ../src/live_effects/parameter/path.cpp:175 +#: ../src/live_effects/parameter/path.cpp:174 msgid "Copy path" msgstr "Pfad kopieren" -#: ../src/live_effects/parameter/path.cpp:185 +#: ../src/live_effects/parameter/path.cpp:184 msgid "Paste path" msgstr "Pfad einfĂĽgen" -#: ../src/live_effects/parameter/path.cpp:438 +#: ../src/live_effects/parameter/path.cpp:437 msgid "Paste path parameter" msgstr "Pfadparameter einfĂĽgen" -#: ../src/live_effects/parameter/path.cpp:470 +#: ../src/live_effects/parameter/path.cpp:469 msgid "Link path parameter to path" msgstr "Pfadparameter mit Pfad verbinden" @@ -11524,6 +10363,10 @@ msgstr "Einheiten-Parameter ändern" msgid "Change vector parameter" msgstr "Vektorparameter ändern" +#: ../src/lpe-tool-context.cpp:204 +msgid "Choose a construction tool from the toolbar." +msgstr "Ein Konstruktionswerkzeug von der Werkzeugleiste wählen." + #: ../src/main-cmdlineact.cpp:50 #, c-format msgid "Unable to find verb ID '%s' specified on the command line.\n" @@ -11536,42 +10379,42 @@ msgstr "" msgid "Unable to find node ID: '%s'\n" msgstr "Kann Knoten-Kennung »%s« nicht finden.\n" -#: ../src/main.cpp:295 +#: ../src/main.cpp:297 msgid "Print the Inkscape version number" msgstr "Versionsnummer von Inkscape ausgeben" -#: ../src/main.cpp:300 +#: ../src/main.cpp:302 msgid "Do not use X server (only process files from console)" msgstr "X-Server nicht verwenden (Dateien nur mittels Konsole verarbeiten)" -#: ../src/main.cpp:305 +#: ../src/main.cpp:307 msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "" "Versuche, den X-Server zu verwenden (auch wenn die Umgebungsvariable " "»$DISPLAY« nicht gesetzt wurde)" -#: ../src/main.cpp:310 +#: ../src/main.cpp:312 msgid "Open specified document(s) (option string may be excluded)" msgstr "" "Angegebene Dokumente öffnen (Optionszeichenkette muss nicht ĂĽbergeben werden)" -#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 -#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 -#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 +#: ../src/main.cpp:313 ../src/main.cpp:318 ../src/main.cpp:323 +#: ../src/main.cpp:395 ../src/main.cpp:400 ../src/main.cpp:405 +#: ../src/main.cpp:416 ../src/main.cpp:433 msgid "FILENAME" msgstr "DATEINAME" -#: ../src/main.cpp:315 +#: ../src/main.cpp:317 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" "Dokumente in angegebene Ausgabedatei drucken (verwenden Sie »| Programm« zur " "Weiterleitung)" -#: ../src/main.cpp:320 +#: ../src/main.cpp:322 msgid "Export document to a PNG file" msgstr "Das Dokument in eine PNG-Datei exportieren" -#: ../src/main.cpp:325 +#: ../src/main.cpp:327 msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 90)" @@ -11579,11 +10422,11 @@ msgstr "" "Auflösung beim Exportieren von Bitmaps und Rasterisierung von Filtern in PS/" "EPS/PDF (Vorgabe ist 90)" -#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:34 +#: ../src/main.cpp:328 ../src/ui/widget/rendering-options.cpp:34 msgid "DPI" msgstr "DPI" -#: ../src/main.cpp:330 +#: ../src/main.cpp:332 msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" @@ -11591,28 +10434,28 @@ msgstr "" "Exportierter Bereich in SVG-Benutzereinheiten (Vorgabe: gesamte " "Zeichenfläche, »0,0« ist die untere linke Ecke)" -#: ../src/main.cpp:331 +#: ../src/main.cpp:333 msgid "x0:y0:x1:y1" msgstr "X0:Y0:X1:Y1" -#: ../src/main.cpp:335 +#: ../src/main.cpp:337 msgid "Exported area is the entire drawing (not page)" msgstr "" "Exportierter Bereich ist die gesamte Zeichnung, nicht die Zeichenfläche" -#: ../src/main.cpp:340 +#: ../src/main.cpp:342 msgid "Exported area is the entire page" msgstr "Exportierter Bereich ist die gesamte Zeichenfläche" -#: ../src/main.cpp:345 +#: ../src/main.cpp:347 msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" msgstr "" -#: ../src/main.cpp:346 ../src/main.cpp:388 +#: ../src/main.cpp:348 ../src/main.cpp:390 msgid "VALUE" msgstr "WERT" -#: ../src/main.cpp:350 +#: ../src/main.cpp:352 msgid "" "Snap the bitmap export area outwards to the nearest integer values (in SVG " "user units)" @@ -11620,101 +10463,101 @@ msgstr "" "Die Fläche fĂĽr den Export einer Bitmap nach auĂźen auf die nächsten " "Ganzzahlen aufrunden (in SVG-Benutzereinheiten)" -#: ../src/main.cpp:355 +#: ../src/main.cpp:357 msgid "The width of exported bitmap in pixels (overrides export-dpi)" msgstr "Breite der erzeugten Bitmap in Pixeln (ĂĽberschreibt Export-dpi)" -#: ../src/main.cpp:356 +#: ../src/main.cpp:358 msgid "WIDTH" msgstr "BREITE" -#: ../src/main.cpp:360 +#: ../src/main.cpp:362 msgid "The height of exported bitmap in pixels (overrides export-dpi)" msgstr "Höhe der erzeugten Bitmap in Pixeln (ĂĽberschreibt Export-dpi)" -#: ../src/main.cpp:361 +#: ../src/main.cpp:363 msgid "HEIGHT" msgstr "HĂ–HE" -#: ../src/main.cpp:365 +#: ../src/main.cpp:367 msgid "The ID of the object to export" msgstr "Kennung des zu exportierenden Objektes" -#: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1505 +#: ../src/main.cpp:368 ../src/main.cpp:478 +#: ../src/ui/dialog/inkscape-preferences.cpp:1489 msgid "ID" msgstr "Kennung" #. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". #. See "man inkscape" for details. -#: ../src/main.cpp:372 +#: ../src/main.cpp:374 msgid "" "Export just the object with export-id, hide all others (only with export-id)" msgstr "" "Nur das Objekt mit der angegebenen Export-ID exportieren, alle anderen " "auslassen" -#: ../src/main.cpp:377 +#: ../src/main.cpp:379 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "" "Verwende gespeicherten Dateinamen und DPI-Hinweise zum Exportieren (nur mit " "Export-ID)" -#: ../src/main.cpp:382 +#: ../src/main.cpp:384 msgid "Background color of exported bitmap (any SVG-supported color string)" msgstr "" "Hintergrundfarbe der exportierten Bitmap (jede von SVG unterstĂĽtzte " "Farbzeichenkette)" -#: ../src/main.cpp:383 +#: ../src/main.cpp:385 msgid "COLOR" msgstr "FARBE" -#: ../src/main.cpp:387 +#: ../src/main.cpp:389 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "" "Hintergrunddeckkraft der exportierten Bitmap (0,0 bis 1,0 oder 1 bis 255)" -#: ../src/main.cpp:392 +#: ../src/main.cpp:394 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" "Dokument in reine SVG-Datei exportieren (ohne Sodipodi- oder Inkscape-" "Namensräume)" -#: ../src/main.cpp:397 +#: ../src/main.cpp:399 msgid "Export document to a PS file" msgstr "Das Dokument in eine PS-Datei exportieren" -#: ../src/main.cpp:402 +#: ../src/main.cpp:404 msgid "Export document to an EPS file" msgstr "Das Dokument in eine EPS-Datei exportieren" -#: ../src/main.cpp:407 +#: ../src/main.cpp:409 msgid "" "Choose the PostScript Level used to export. Possible choices are 2 (the " "default) and 3" msgstr "" -#: ../src/main.cpp:409 +#: ../src/main.cpp:411 msgid "PS Level" msgstr "PS Level" -#: ../src/main.cpp:413 +#: ../src/main.cpp:415 msgid "Export document to a PDF file" msgstr "Das Dokument in eine PDF-Datei exportieren" #. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:419 +#: ../src/main.cpp:421 msgid "" "Export PDF to given version. (hint: make sure to input the exact string " "found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" msgstr "" -#: ../src/main.cpp:420 +#: ../src/main.cpp:422 msgid "PDF_VERSION" msgstr "PDF_VERSION" -#: ../src/main.cpp:424 +#: ../src/main.cpp:426 msgid "" "Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is " "exported, putting the text on top of the PDF/PS/EPS file. Include the result " @@ -11724,26 +10567,22 @@ msgstr "" "exportiert, die den Text oben auf die PDF/PS/EPS Datei legt. Einbinden des " "Ergebnisses in Latex mit: \\input{latexfile.tex}" -#: ../src/main.cpp:429 +#: ../src/main.cpp:432 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "Das Dokument in eine EMF-Datei exportieren" -#: ../src/main.cpp:434 -msgid "Export document to a Windows Metafile (WMF) File" -msgstr "" - -#: ../src/main.cpp:439 +#: ../src/main.cpp:438 msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" msgstr "Textelemente beim Export (PS, EPS, PDF, SVG) in Pfade umwandeln " -#: ../src/main.cpp:444 +#: ../src/main.cpp:443 msgid "" "Render filtered objects without filters, instead of rasterizing (PS, EPS, " "PDF)" msgstr "Objekte ohne Filter zeichnen, statt Rasterisierung (PS, EPS, PDF)" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:450 +#: ../src/main.cpp:449 msgid "" "Query the X coordinate of the drawing or, if specified, of the object with --" "query-id" @@ -11752,7 +10591,7 @@ msgstr "" "Objektes" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:456 +#: ../src/main.cpp:455 msgid "" "Query the Y coordinate of the drawing or, if specified, of the object with --" "query-id" @@ -11761,7 +10600,7 @@ msgstr "" "Objektes" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:462 +#: ../src/main.cpp:461 msgid "" "Query the width of the drawing or, if specified, of the object with --query-" "id" @@ -11770,69 +10609,69 @@ msgstr "" "Objektes" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:468 +#: ../src/main.cpp:467 msgid "" "Query the height of the drawing or, if specified, of the object with --query-" "id" msgstr "" "Abfragen der Höhe der Zeichnung oder des mit --query-id angegebenen Objektes" -#: ../src/main.cpp:473 +#: ../src/main.cpp:472 msgid "List id,x,y,w,h for all objects" msgstr "id, x, y, w und h fĂĽr alle Objekte auflisten" -#: ../src/main.cpp:478 +#: ../src/main.cpp:477 msgid "The ID of the object whose dimensions are queried" msgstr "Objekt-ID-Kennung, dessen Abmessungen abgefragt werden" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory -#: ../src/main.cpp:484 +#: ../src/main.cpp:483 msgid "Print out the extension directory and exit" msgstr "Erweiterungsverzeichnis ausgeben und beenden" -#: ../src/main.cpp:489 +#: ../src/main.cpp:488 msgid "Remove unused definitions from the defs section(s) of the document" msgstr "Unbenutzte Elemente aus den <defs> des Dokuments entfernen" -#: ../src/main.cpp:495 +#: ../src/main.cpp:494 msgid "Enter a listening loop for D-Bus messages in console mode" msgstr "" -#: ../src/main.cpp:500 +#: ../src/main.cpp:499 msgid "" "Specify the D-Bus bus name to listen for messages on (default is org." "inkscape)" msgstr "" -#: ../src/main.cpp:501 +#: ../src/main.cpp:500 msgid "BUS-NAME" msgstr "BUS-NAME" -#: ../src/main.cpp:506 +#: ../src/main.cpp:505 msgid "List the IDs of all the verbs in Inkscape" msgstr "Liste die Kennungen von allen Verben in Inkscape" -#: ../src/main.cpp:511 +#: ../src/main.cpp:510 msgid "Verb to call when Inkscape opens." msgstr "Aufzurufendes Verb wenn Inkscape startet." -#: ../src/main.cpp:512 +#: ../src/main.cpp:511 msgid "VERB-ID" msgstr "VERB-ID" -#: ../src/main.cpp:516 +#: ../src/main.cpp:515 msgid "Object ID to select when Inkscape opens." msgstr "Auszuwählende Objekt-Kennung wenn Inkscape startet." -#: ../src/main.cpp:517 +#: ../src/main.cpp:516 msgid "OBJECT-ID" msgstr "OBJECT-ID" -#: ../src/main.cpp:521 +#: ../src/main.cpp:520 msgid "Start Inkscape in interactive shell mode." msgstr "Inkscape in interaktivem Konsolenmodus starten." -#: ../src/main.cpp:871 ../src/main.cpp:1282 +#: ../src/main.cpp:867 ../src/main.cpp:1255 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -11853,11 +10692,11 @@ msgstr "_Neu" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2634 ../src/verbs.cpp:2640 +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2638 ../src/verbs.cpp:2644 msgid "_Edit" msgstr "_Bearbeiten" -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2398 +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2402 msgid "Paste Si_ze" msgstr "_Größe einfĂĽgen" @@ -11891,11904 +10730,11398 @@ msgstr "Farb-Anzeigemodus" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:136 +#: ../src/menus-skeleton.h:137 msgid "Sh_ow/Hide" msgstr "Anzeigen/Ausblenden" #. Not quite ready to be in the menus. #. " \n" -#: ../src/menus-skeleton.h:156 +#: ../src/menus-skeleton.h:157 msgid "_Layer" msgstr "_Ebene" -#: ../src/menus-skeleton.h:180 +#: ../src/menus-skeleton.h:181 msgid "_Object" msgstr "_Objekt" -#: ../src/menus-skeleton.h:188 +#: ../src/menus-skeleton.h:189 msgid "Cli_p" msgstr "Ausschneide_pfad" -#: ../src/menus-skeleton.h:192 +#: ../src/menus-skeleton.h:193 msgid "Mas_k" msgstr "_Maskierung" -#: ../src/menus-skeleton.h:196 +#: ../src/menus-skeleton.h:197 msgid "Patter_n" msgstr "M_uster" -#: ../src/menus-skeleton.h:220 -msgid "_Path" -msgstr "_Pfad" - -#: ../src/menus-skeleton.h:248 ../src/ui/dialog/find.cpp:77 -#: ../src/ui/dialog/text-edit.cpp:72 -msgid "_Text" -msgstr "_Text" - -# !!! -#: ../src/menus-skeleton.h:266 -msgid "Filter_s" -msgstr "_Filter" - -#: ../src/menus-skeleton.h:272 -msgid "Exte_nsions" -msgstr "E_rweiterungen" - -#: ../src/menus-skeleton.h:278 -msgid "_Help" -msgstr "_Hilfe" - -#: ../src/menus-skeleton.h:282 -msgid "Tutorials" -msgstr "EinfĂĽhrungen" - -#: ../src/object-edit.cpp:439 -msgid "" -"Adjust the horizontal rounding radius; with Ctrl to make the " -"vertical radius the same" -msgstr "" -"Radius der horizontalen Rundung anpassen; Strg setzt vertikale " -"und horizontale Rundung gleich" - -#: ../src/object-edit.cpp:444 -msgid "" -"Adjust the vertical rounding radius; with Ctrl to make the " -"horizontal radius the same" -msgstr "" -"Radius der vertikalen Rundung anpassen; Strg setzt vertikale " -"und horizontale Rundung gleich" - -#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 -msgid "" -"Adjust the width and height of the rectangle; with Ctrl to " -"lock ratio or stretch in one dimension only" -msgstr "" -"Höhe/Breite des Rechtecks anpassen; Strg um Seitenverhältnis " -"bei zu behalten oder nur in eine Richtung zu strecken" - -#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 -#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 -msgid "" -"Resize box in X/Y direction; with Shift along the Z axis; with " -"Ctrl to constrain to the directions of edges or diagonals" -msgstr "" -"Größe der Box in X/Y-Richtung ändern; mit Umschalt entlang der Z-" -"Achse; Mit Strg auf Richtung der Seiten oder Diagonalen beschränkt" - -#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 -#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 -msgid "" -"Resize box along the Z axis; with Shift in X/Y direction; with " -"Ctrl to constrain to the directions of edges or diagonals" -msgstr "" -"Größe der Box entlang der Z-Achse ändern; mit Umschalt in X/Y-" -"Richtung; Mit Strg auf Richtung der Seiten und Diagonalen beschränkt" - -#: ../src/object-edit.cpp:721 -msgid "Move the box in perspective" -msgstr "Bewegen der Box in der Perspektive" - -#: ../src/object-edit.cpp:948 -msgid "Adjust ellipse width, with Ctrl to make circle" -msgstr "" -"Höhe/Breite der Ellipse anpassen; Strg erzeugt einen Kreis" - -#: ../src/object-edit.cpp:952 -msgid "Adjust ellipse height, with Ctrl to make circle" -msgstr "Höhe der Ellipse anpassen; Strg erzeugt einen Kreis" - -#: ../src/object-edit.cpp:956 -msgid "" -"Position the start point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" -msgstr "" -"Anfangspunkt des Bogens oder Kreissegments setzen; Strg rastet " -"den Winkel ein; ziehen innerhalb der Ellipse erzeugt einen Kreisbogen " -"- auĂźerhalb ein Kreissegment" - -#: ../src/object-edit.cpp:961 -msgid "" -"Position the end point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" -msgstr "" -"Endpunkt des Bogens/Kreissegments setzen; Strg rastet Winkel " -"ein; Ziehen innerhalb der Ellipse erzeugt einen Kreisbogen - " -"auĂźerhalb ein Kreissegment" - -#: ../src/object-edit.cpp:1101 -msgid "" -"Adjust the tip radius of the star or polygon; with Shift to " -"round; with Alt to randomize" -msgstr "" -"Spitzen des Sterns oder Polygons anpassen; Umschalt rundet ab; " -"Alt verändert nach Zufall" - -#: ../src/object-edit.cpp:1109 -msgid "" -"Adjust the base radius of the star; with Ctrl to keep star " -"rays radial (no skew); with Shift to round; with Alt to " -"randomize" -msgstr "" -"Innenradius des Sterns anpassen; Strg erhält radiale " -"Ausrichtung der Spitzen; Umschalt rundet; Alt verändert " -"zufällig" - -#: ../src/object-edit.cpp:1299 -msgid "" -"Roll/unroll the spiral from inside; with Ctrl to snap angle; " -"with Alt to converge/diverge" -msgstr "" -"Spirale von innen einrollen/ausrollen; Winkel mit Strg " -"einrasten; Alt konvergiert/divergiert" - -#: ../src/object-edit.cpp:1303 -msgid "" -"Roll/unroll the spiral from outside; with Ctrl to snap angle; " -"with Shift to scale/rotate; with Alt to lock radius" -msgstr "" -"Spirale von auĂźen ausrollen/einrollen; Winkel mit Strg " -"einrasten; Umschalt skaliert/rotiert; mit Alt Radius sperren" - -#: ../src/object-edit.cpp:1348 -msgid "Adjust the offset distance" -msgstr "Versatz-Abstand anpassen" - -#: ../src/object-edit.cpp:1384 -msgid "Drag to resize the flowed text frame" -msgstr "Ziehen, um die Größe des FlieĂźtext-Rahmens zu ändern" - -#: ../src/path-chemistry.cpp:53 -msgid "Select object(s) to combine." -msgstr "Objekte zum Kombinieren auswählen." - -#: ../src/path-chemistry.cpp:57 -msgid "Combining paths..." -msgstr "Kombiniere Pfade..." - -#: ../src/path-chemistry.cpp:170 -msgid "Combine" -msgstr "Kombinieren" - -#: ../src/path-chemistry.cpp:177 -msgid "No path(s) to combine in the selection." -msgstr "Die Auswahl enthält keine Pfade zum Kombinieren." - -#: ../src/path-chemistry.cpp:189 -msgid "Select path(s) to break apart." -msgstr "Pfadmuss zum Zerlegen ausgewählt sein." - -#: ../src/path-chemistry.cpp:193 -msgid "Breaking apart paths..." -msgstr "Zerlege Pfade..." - -#: ../src/path-chemistry.cpp:284 -msgid "Break apart" -msgstr "Zerlegen" - -#: ../src/path-chemistry.cpp:286 -msgid "No path(s) to break apart in the selection." -msgstr "Kein Pfad ausgewählt, der zerlegt werden könnte." - -#: ../src/path-chemistry.cpp:296 -msgid "Select object(s) to convert to path." -msgstr "Objekte auswählen, die in einen Pfad umgewandelt werden sollen." - -#: ../src/path-chemistry.cpp:302 -msgid "Converting objects to paths..." -msgstr "Wandle Objekte in Pfade um..." - -#: ../src/path-chemistry.cpp:324 -msgid "Object to path" -msgstr "Objekt in Pfad umwandeln" - -#: ../src/path-chemistry.cpp:326 -msgid "No objects to convert to path in the selection." -msgstr "" -"Keine Objekte ausgewählt, die in einen Pfad umgewandelt werden " -"könnten." - -#: ../src/path-chemistry.cpp:603 -msgid "Select path(s) to reverse." -msgstr "Mindestens einen Pfad zum Umkehren auswählen." - -#: ../src/path-chemistry.cpp:612 -msgid "Reversing paths..." -msgstr "Kehre Pfadrichtungen um..." - -#: ../src/path-chemistry.cpp:647 -msgid "Reverse path" -msgstr "Pfadrichtung umkehren" - -#: ../src/path-chemistry.cpp:649 -msgid "No paths to reverse in the selection." -msgstr "Die Auswahl enthält keine Pfade zum Umkehren." - -#: ../src/persp3d.cpp:293 -msgid "Toggle vanishing point" -msgstr "Fluchtpunkt umschalten" - -#: ../src/persp3d.cpp:304 -msgid "Toggle multiple vanishing points" -msgstr "Multiple Fluchtpunkte umschalten" - -# not sure here -cm- -#: ../src/preferences-skeleton.h:101 -msgid "Dip pen" -msgstr "Tuschstift" - -#: ../src/preferences-skeleton.h:102 -msgid "Marker" -msgstr "Filzstift" - -#: ../src/preferences-skeleton.h:103 -msgid "Brush" -msgstr "Pinsel" - -#: ../src/preferences-skeleton.h:104 -msgid "Wiggly" -msgstr "Wackelig" - -#: ../src/preferences-skeleton.h:105 -msgid "Splotchy" -msgstr "Klecksig" - -#: ../src/preferences-skeleton.h:106 -msgid "Tracing" -msgstr "Nachzeichnen" - -#: ../src/preferences.cpp:134 -msgid "" -"Inkscape will run with default settings, and new settings will not be saved. " -msgstr "" -"Inkscape läuft mit den Vorgabeeinstellungen.\n" -"Neue Einstellungen werden nicht gespeichert." - -#. the creation failed -#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:149 -#, c-format -msgid "Cannot create profile directory %s." -msgstr "Kann Profilverzeichnis %s nicht anlegen." - -#. The profile dir is not actually a directory -#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:167 -#, c-format -msgid "%s is not a valid directory." -msgstr "%s ist kein gĂĽltiges Verzeichnis." - -#. The write failed. -#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), -#. Glib::filename_to_utf8(_prefs_filename)), not_saved); -#: ../src/preferences.cpp:178 -#, c-format -msgid "Failed to create the preferences file %s." -msgstr "Fehler beim Erstellen der Einstellungs-Datei %s." - -#: ../src/preferences.cpp:214 -#, c-format -msgid "The preferences file %s is not a regular file." -msgstr "Die Einstellungs-Datei %s ist keine reguläre Datei." - -#: ../src/preferences.cpp:224 -#, c-format -msgid "The preferences file %s could not be read." -msgstr "Datei %s konnte nicht gelesen werden." - -#: ../src/preferences.cpp:235 -#, c-format -msgid "The preferences file %s is not a valid XML document." -msgstr "Die Vorgabendatei %s is kein gĂĽltiges XML-Dokument" - -#: ../src/preferences.cpp:244 -#, c-format -msgid "The file %s is not a valid Inkscape preferences file." -msgstr "%s ist keine gĂĽltige Einstellungsdatei." - -#: ../src/rdf.cpp:175 -msgid "CC Attribution" -msgstr "CC-Namensnennung" - -#: ../src/rdf.cpp:180 -msgid "CC Attribution-ShareAlike" -msgstr "CC-Namensnennung-Weitergabe unter gleichen Bedingungen" - -#: ../src/rdf.cpp:185 -msgid "CC Attribution-NoDerivs" -msgstr "CC-Namensnennung-KeineBearbeitung" - -#: ../src/rdf.cpp:190 -msgid "CC Attribution-NonCommercial" -msgstr "CC-Namensnennung-NichtKommerziell" - -#: ../src/rdf.cpp:195 -msgid "CC Attribution-NonCommercial-ShareAlike" -msgstr "" -"CC-Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen" - -#: ../src/rdf.cpp:200 -msgid "CC Attribution-NonCommercial-NoDerivs" -msgstr "CC-Namensnennung-NichtKommerziell-KeineBearbeitung" - -#: ../src/rdf.cpp:205 -#, fuzzy -msgid "CC0 Public Domain Dedication" -msgstr "Gemeinfrei (Public Domain)" - -#: ../src/rdf.cpp:210 -msgid "FreeArt" -msgstr "FreeArt" - -#: ../src/rdf.cpp:215 -msgid "Open Font License" -msgstr "Open-Font-Lizenz" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 -msgid "Title:" -msgstr "Title:" - -#: ../src/rdf.cpp:236 -msgid "A name given to the resource" -msgstr "" - -#: ../src/rdf.cpp:238 -msgid "Date:" -msgstr "Datum:" - -#: ../src/rdf.cpp:239 -msgid "" -"A point or period of time associated with an event in the lifecycle of the " -"resource" -msgstr "" - -#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 -msgid "Format:" -msgstr "Format:" - -#: ../src/rdf.cpp:242 -msgid "The file format, physical medium, or dimensions of the resource" -msgstr "" - -#: ../src/rdf.cpp:245 -#, fuzzy -msgid "The nature or genre of the resource" -msgstr "Die Einheiten, die fĂĽr die Messungen verwendet werden" - -# !!! Urheber? -#: ../src/rdf.cpp:248 -msgid "Creator:" -msgstr "Autor/Urheber:" - -#: ../src/rdf.cpp:249 -#, fuzzy -msgid "An entity primarily responsible for making the resource" -msgstr "" -"Name der Person oder Organisation, die hauptsächlich fĂĽr die Erstellung des " -"Dokumenteninhalts verantwortlich ist." - -#: ../src/rdf.cpp:251 -msgid "Rights:" -msgstr "Rechte:" - -#: ../src/rdf.cpp:252 -msgid "Information about rights held in and over the resource" -msgstr "" - -#: ../src/rdf.cpp:254 -msgid "Publisher:" -msgstr "Herausgeber:" - -#: ../src/rdf.cpp:255 -#, fuzzy -msgid "An entity responsible for making the resource available" -msgstr "" -"Name der Person oder Organisation, die fĂĽr die VerfĂĽgbarmachung des " -"Dokuments verantwortlich ist." - -#: ../src/rdf.cpp:258 -msgid "Identifier:" -msgstr "Identifikator:" - -#: ../src/rdf.cpp:259 -msgid "An unambiguous reference to the resource within a given context" -msgstr "" - -#: ../src/rdf.cpp:262 -msgid "A related resource from which the described resource is derived" -msgstr "" - -#: ../src/rdf.cpp:264 -msgid "Relation:" -msgstr "Beziehung:" - -#: ../src/rdf.cpp:265 -#, fuzzy -msgid "A related resource" -msgstr "Mischquelle:" - -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1857 -msgid "Language:" -msgstr "Sprache:" - -#: ../src/rdf.cpp:268 -#, fuzzy -msgid "A language of the resource" -msgstr "Winkel der ersten Kopie" - -#: ../src/rdf.cpp:270 -msgid "Keywords:" -msgstr "Schlagworte:" - -#: ../src/rdf.cpp:271 -#, fuzzy -msgid "The topic of the resource" -msgstr "Oberkante der Quelle" - -# !!! not the best translation -#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. -#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ -#: ../src/rdf.cpp:275 -msgid "Coverage:" -msgstr "Umfang:" - -#: ../src/rdf.cpp:276 -msgid "" -"The spatial or temporal topic of the resource, the spatial applicability of " -"the resource, or the jurisdiction under which the resource is relevant" -msgstr "" - -#: ../src/rdf.cpp:279 -msgid "Description:" -msgstr "Beschreibung:" - -#: ../src/rdf.cpp:280 -#, fuzzy -msgid "An account of the resource" -msgstr "Kurzer AbriĂź des Inhalts dieses Dokuments." - -#. FIXME: need to handle 1 agent per line of input -#: ../src/rdf.cpp:284 -msgid "Contributors:" -msgstr "Mitwirkende:" - -#: ../src/rdf.cpp:285 -#, fuzzy -msgid "An entity responsible for making contributions to the resource" -msgstr "" -"Namen von Personen oder Organisationen, die am Inhalt dieses Dokuments " -"mitgewirkt haben." - -#. TRANSLATORS: URL to a page that defines the license for the document -#: ../src/rdf.cpp:289 -msgid "URI:" -msgstr "URI:" - -#. TRANSLATORS: this is where you put a URL to a page that defines the license -#: ../src/rdf.cpp:291 -msgid "URI to this document's license's namespace definition" -msgstr "" -"URI, unter dem die Lizenzdefinition (license namespace) dieses Dokuments zu " -"finden ist." - -#. TRANSLATORS: fragment of XML representing the license of the document -#: ../src/rdf.cpp:295 -msgid "Fragment:" -msgstr "Fragment:" - -#: ../src/rdf.cpp:296 -msgid "XML fragment for the RDF 'License' section" -msgstr "XML-Fragment fĂĽr den RDF-Abschnitt »Lizenz«." - -#: ../src/resource-manager.cpp:332 -msgid "Fixup broken links" -msgstr "Defekte Links fixen" +#: ../src/menus-skeleton.h:221 +msgid "_Path" +msgstr "_Pfad" -#: ../src/selection-chemistry.cpp:396 -msgid "Delete text" -msgstr "Text löschen" +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/text-edit.cpp:72 +msgid "_Text" +msgstr "_Text" -#: ../src/selection-chemistry.cpp:404 -msgid "Nothing was deleted." -msgstr "Es wurde nichts gelöscht." +# !!! +#: ../src/menus-skeleton.h:267 +msgid "Filter_s" +msgstr "_Filter" -#: ../src/selection-chemistry.cpp:423 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:278 ../src/ui/tools/text-tool.cpp:974 -#: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1180 -#: ../src/widgets/gradient-toolbar.cpp:1194 -#: ../src/widgets/gradient-toolbar.cpp:1208 -#: ../src/widgets/node-toolbar.cpp:401 -msgid "Delete" -msgstr "Löschen" +#: ../src/menus-skeleton.h:273 +msgid "Exte_nsions" +msgstr "E_rweiterungen" -#: ../src/selection-chemistry.cpp:451 -msgid "Select object(s) to duplicate." -msgstr "Objekt(e) zum Duplizieren auswählen." +#: ../src/menus-skeleton.h:279 +msgid "_Help" +msgstr "_Hilfe" -#: ../src/selection-chemistry.cpp:560 -msgid "Delete all" -msgstr "Alles löschen" +#: ../src/menus-skeleton.h:283 +msgid "Tutorials" +msgstr "EinfĂĽhrungen" -#: ../src/selection-chemistry.cpp:750 -msgid "Select some objects to group." -msgstr "Einige Objekte zum Gruppieren auswählen." +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/mesh-context.cpp:131 ../src/mesh-context.cpp:142 +#, fuzzy, c-format +msgid " out of %d mesh handle" +msgid_plural " out of %d mesh handles" +msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" +msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" -#: ../src/selection-chemistry.cpp:765 ../src/sp-item-group.cpp:331 -msgid "Group" -msgstr "Gruppieren" +#: ../src/mesh-context.cpp:149 +#, fuzzy, c-format +msgid "%d mesh handle selected out of %d" +msgid_plural "%d mesh handles selected out of %d" +msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" +msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" -#: ../src/selection-chemistry.cpp:788 -msgid "Select a group to ungroup." -msgstr "" -"Eine Gruppe auswählen, deren Gruppierung aufgehoben werden soll." +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/mesh-context.cpp:156 +#, fuzzy, c-format +msgid "No mesh handles selected out of %d on %d selected object" +msgid_plural "No mesh handles selected out of %d on %d selected objects" +msgstr[0] "" +"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" +msgstr[1] "" +"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" -#: ../src/selection-chemistry.cpp:803 -msgid "No groups to ungroup in the selection." -msgstr "Keine Gruppe zum Aufheben in dieser Auswahl." +#: ../src/mesh-context.cpp:320 +msgid "Split mesh row/column" +msgstr "Teile Gitter Reihe/Spalte" -#: ../src/selection-chemistry.cpp:861 ../src/sp-item-group.cpp:564 -msgid "Ungroup" -msgstr "Gruppierung aufheben" +#: ../src/mesh-context.cpp:406 +msgid "Toggled mesh path type." +msgstr "Gitter-Pfadtyp umschalten" -#: ../src/selection-chemistry.cpp:942 -msgid "Select object(s) to raise." -msgstr "Objekte zum Anheben auswählen." +#: ../src/mesh-context.cpp:410 +msgid "Approximated arc for mesh side." +msgstr "Durchschnittlicher Winkel fĂĽr Gitterseite." -#: ../src/selection-chemistry.cpp:948 ../src/selection-chemistry.cpp:1004 -#: ../src/selection-chemistry.cpp:1032 ../src/selection-chemistry.cpp:1093 -msgid "" -"You cannot raise/lower objects from different groups or layers." +#: ../src/mesh-context.cpp:414 +msgid "Toggled mesh tensors." msgstr "" -"Objekte aus verschiedenen Gruppen oder Ebenen können nicht " -"angehoben oder abgesenkt werden." -#. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:988 -msgctxt "Undo action" -msgid "Raise" -msgstr "Anheben" +#: ../src/mesh-context.cpp:418 +#, fuzzy +msgid "Smoothed mesh corner color." +msgstr "Ecken glätten" -#: ../src/selection-chemistry.cpp:996 -msgid "Select object(s) to raise to top." -msgstr "" -"Objekt(e) auswählen, die in den Vordergrund angehoben werden sollen." +#: ../src/mesh-context.cpp:422 +#, fuzzy +msgid "Picked mesh corner color." +msgstr "Farbton des Farbwertes ĂĽbernehmen" -#: ../src/selection-chemistry.cpp:1019 -msgid "Raise to top" -msgstr "Nach ganz oben anheben" +#: ../src/mesh-context.cpp:497 +msgid "Create default mesh" +msgstr "Standard-Gitter erzeugen" -#: ../src/selection-chemistry.cpp:1026 -msgid "Select object(s) to lower." -msgstr "Objekt(e) zum Absenken auswählen." +#: ../src/mesh-context.cpp:717 +#, fuzzy +msgid "FIXMECtrl: snap mesh angle" +msgstr "Strg: Winkel einrasten" -#. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1077 +#: ../src/mesh-context.cpp:718 #, fuzzy -msgctxt "Undo action" -msgid "Lower" -msgstr "Absenken" +msgid "FIXMEShift: draw mesh around the starting point" +msgstr "Umschalt: Um Mittelpunkt zeichnen" -#: ../src/selection-chemistry.cpp:1085 -msgid "Select object(s) to lower to bottom." +#: ../src/object-edit.cpp:439 +msgid "" +"Adjust the horizontal rounding radius; with Ctrl to make the " +"vertical radius the same" msgstr "" -"Objekt(e) auswählen, die ganz in den Hintergrund abgesenkt werden " -"sollen." +"Radius der horizontalen Rundung anpassen; Strg setzt vertikale " +"und horizontale Rundung gleich" -#: ../src/selection-chemistry.cpp:1120 -msgid "Lower to bottom" -msgstr "Nach ganz unten absenken" +#: ../src/object-edit.cpp:444 +msgid "" +"Adjust the vertical rounding radius; with Ctrl to make the " +"horizontal radius the same" +msgstr "" +"Radius der vertikalen Rundung anpassen; Strg setzt vertikale " +"und horizontale Rundung gleich" -# !!! just make the menu item insensitive -#: ../src/selection-chemistry.cpp:1130 -msgid "Nothing to undo." -msgstr "Es gibt nichts rĂĽckgängig zu machen." +#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 +msgid "" +"Adjust the width and height of the rectangle; with Ctrl to " +"lock ratio or stretch in one dimension only" +msgstr "" +"Höhe/Breite des Rechtecks anpassen; Strg um Seitenverhältnis " +"bei zu behalten oder nur in eine Richtung zu strecken" -# # !!! just make the menu item insensitive -#: ../src/selection-chemistry.cpp:1141 -msgid "Nothing to redo." -msgstr "Es gibt nichts wiederherzustellen." +#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 +#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 +msgid "" +"Resize box in X/Y direction; with Shift along the Z axis; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" +"Größe der Box in X/Y-Richtung ändern; mit Umschalt entlang der Z-" +"Achse; Mit Strg auf Richtung der Seiten oder Diagonalen beschränkt" -#: ../src/selection-chemistry.cpp:1208 -msgid "Paste" -msgstr "EinfĂĽgen" +#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 +#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 +msgid "" +"Resize box along the Z axis; with Shift in X/Y direction; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" +"Größe der Box entlang der Z-Achse ändern; mit Umschalt in X/Y-" +"Richtung; Mit Strg auf Richtung der Seiten und Diagonalen beschränkt" -#: ../src/selection-chemistry.cpp:1216 -msgid "Paste style" -msgstr "Stil anwenden" +#: ../src/object-edit.cpp:721 +msgid "Move the box in perspective" +msgstr "Bewegen der Box in der Perspektive" -#: ../src/selection-chemistry.cpp:1226 -msgid "Paste live path effect" -msgstr "Pfad-Effekt einfĂĽgen" +#: ../src/object-edit.cpp:948 +msgid "Adjust ellipse width, with Ctrl to make circle" +msgstr "" +"Höhe/Breite der Ellipse anpassen; Strg erzeugt einen Kreis" -#: ../src/selection-chemistry.cpp:1248 -msgid "Select object(s) to remove live path effects from." -msgstr "Objekt(e) auswählen, um den Pfad-Effekt zu entfernen." +#: ../src/object-edit.cpp:952 +msgid "Adjust ellipse height, with Ctrl to make circle" +msgstr "Höhe der Ellipse anpassen; Strg erzeugt einen Kreis" -#: ../src/selection-chemistry.cpp:1260 -msgid "Remove live path effect" -msgstr "Pfad-Effekt entfernen" +#: ../src/object-edit.cpp:956 +msgid "" +"Position the start point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" +"Anfangspunkt des Bogens oder Kreissegments setzen; Strg rastet " +"den Winkel ein; ziehen innerhalb der Ellipse erzeugt einen Kreisbogen " +"- auĂźerhalb ein Kreissegment" -#: ../src/selection-chemistry.cpp:1271 -msgid "Select object(s) to remove filters from." -msgstr "Text auswählen, um Filter zu entfernen." +#: ../src/object-edit.cpp:961 +msgid "" +"Position the end point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" +"Endpunkt des Bogens/Kreissegments setzen; Strg rastet Winkel " +"ein; Ziehen innerhalb der Ellipse erzeugt einen Kreisbogen - " +"auĂźerhalb ein Kreissegment" -#: ../src/selection-chemistry.cpp:1281 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 -msgid "Remove filter" -msgstr "Filter entfernen" +#: ../src/object-edit.cpp:1101 +msgid "" +"Adjust the tip radius of the star or polygon; with Shift to " +"round; with Alt to randomize" +msgstr "" +"Spitzen des Sterns oder Polygons anpassen; Umschalt rundet ab; " +"Alt verändert nach Zufall" -#: ../src/selection-chemistry.cpp:1290 -msgid "Paste size" -msgstr "Größe einfĂĽgen" +#: ../src/object-edit.cpp:1109 +msgid "" +"Adjust the base radius of the star; with Ctrl to keep star " +"rays radial (no skew); with Shift to round; with Alt to " +"randomize" +msgstr "" +"Innenradius des Sterns anpassen; Strg erhält radiale " +"Ausrichtung der Spitzen; Umschalt rundet; Alt verändert " +"zufällig" -#: ../src/selection-chemistry.cpp:1299 -msgid "Paste size separately" -msgstr "Größe getrennt einfĂĽgen" +#: ../src/object-edit.cpp:1299 +msgid "" +"Roll/unroll the spiral from inside; with Ctrl to snap angle; " +"with Alt to converge/diverge" +msgstr "" +"Spirale von innen einrollen/ausrollen; Winkel mit Strg " +"einrasten; Alt konvergiert/divergiert" -#: ../src/selection-chemistry.cpp:1309 -msgid "Select object(s) to move to the layer above." +#: ../src/object-edit.cpp:1303 +msgid "" +"Roll/unroll the spiral from outside; with Ctrl to snap angle; " +"with Shift to scale/rotate; with Alt to lock radius" msgstr "" -"Objekt(e) auswählen, welche eine Ebene weiter nach oben verschoben " -"werden sollen." +"Spirale von auĂźen ausrollen/einrollen; Winkel mit Strg " +"einrasten; Umschalt skaliert/rotiert; mit Alt Radius sperren" -#: ../src/selection-chemistry.cpp:1335 -msgid "Raise to next layer" -msgstr "Auf nächste Ebene anheben" +#: ../src/object-edit.cpp:1348 +msgid "Adjust the offset distance" +msgstr "Versatz-Abstand anpassen" -#: ../src/selection-chemistry.cpp:1342 -msgid "No more layers above." -msgstr "Keine weiteren Ebenen ĂĽber dieser." +#: ../src/object-edit.cpp:1384 +msgid "Drag to resize the flowed text frame" +msgstr "Ziehen, um die Größe des FlieĂźtext-Rahmens zu ändern" -#: ../src/selection-chemistry.cpp:1354 -msgid "Select object(s) to move to the layer below." -msgstr "" -"Objekt(e) auswählen, welche in die Ebene darunter verschoben werden " -"sollen." +#: ../src/path-chemistry.cpp:53 +msgid "Select object(s) to combine." +msgstr "Objekte zum Kombinieren auswählen." -#: ../src/selection-chemistry.cpp:1380 -msgid "Lower to previous layer" -msgstr "Zur nächsten Ebene absenken" +#: ../src/path-chemistry.cpp:57 +msgid "Combining paths..." +msgstr "Kombiniere Pfade..." -#: ../src/selection-chemistry.cpp:1387 -msgid "No more layers below." -msgstr "Keine weiteren Ebenen unter dieser." +#: ../src/path-chemistry.cpp:175 +msgid "Combine" +msgstr "Kombinieren" -#: ../src/selection-chemistry.cpp:1399 -msgid "Select object(s) to move." -msgstr "Objekt(e) zum Verschieben auswählen." +#: ../src/path-chemistry.cpp:182 +msgid "No path(s) to combine in the selection." +msgstr "Die Auswahl enthält keine Pfade zum Kombinieren." -#: ../src/selection-chemistry.cpp:1416 ../src/verbs.cpp:2577 -msgid "Move selection to layer" -msgstr "Auswahl zur Ebene verschieben" +#: ../src/path-chemistry.cpp:194 +msgid "Select path(s) to break apart." +msgstr "Pfadmuss zum Zerlegen ausgewählt sein." -#. An SVG element cannot have a transform. We could change 'x' and 'y' in response -#. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1503 ../src/seltrans.cpp:393 -msgid "Cannot transform an embedded SVG." -msgstr "" +#: ../src/path-chemistry.cpp:198 +msgid "Breaking apart paths..." +msgstr "Zerlege Pfade..." -#: ../src/selection-chemistry.cpp:1647 -msgid "Remove transform" -msgstr "Transformationen zurĂĽcksetzen" +#: ../src/path-chemistry.cpp:289 +msgid "Break apart" +msgstr "Zerlegen" -#: ../src/selection-chemistry.cpp:1750 -msgid "Rotate 90° CCW" -msgstr "" +#: ../src/path-chemistry.cpp:291 +msgid "No path(s) to break apart in the selection." +msgstr "Kein Pfad ausgewählt, der zerlegt werden könnte." -#: ../src/selection-chemistry.cpp:1750 -msgid "Rotate 90° CW" -msgstr "" +#: ../src/path-chemistry.cpp:301 +msgid "Select object(s) to convert to path." +msgstr "Objekte auswählen, die in einen Pfad umgewandelt werden sollen." -#: ../src/selection-chemistry.cpp:1771 ../src/seltrans.cpp:488 -#: ../src/ui/dialog/transformation.cpp:894 -msgid "Rotate" -msgstr "Drehen" +#: ../src/path-chemistry.cpp:307 +msgid "Converting objects to paths..." +msgstr "Wandle Objekte in Pfade um..." -#: ../src/selection-chemistry.cpp:2142 -msgid "Rotate by pixels" -msgstr "Um Pixel rotieren" +#: ../src/path-chemistry.cpp:329 +msgid "Object to path" +msgstr "Objekt in Pfad umwandeln" -#: ../src/selection-chemistry.cpp:2172 ../src/seltrans.cpp:485 -#: ../src/ui/dialog/transformation.cpp:869 -#: ../share/extensions/interp_att_g.inx.h:12 -msgid "Scale" -msgstr "Skalieren" +#: ../src/path-chemistry.cpp:331 +msgid "No objects to convert to path in the selection." +msgstr "" +"Keine Objekte ausgewählt, die in einen Pfad umgewandelt werden " +"könnten." -#: ../src/selection-chemistry.cpp:2197 -msgid "Scale by whole factor" -msgstr "Um einen ganzzahligen Faktor skalieren" +#: ../src/path-chemistry.cpp:608 +msgid "Select path(s) to reverse." +msgstr "Mindestens einen Pfad zum Umkehren auswählen." -#: ../src/selection-chemistry.cpp:2212 -msgid "Move vertically" -msgstr "Vertikal verschieben" +#: ../src/path-chemistry.cpp:617 +msgid "Reversing paths..." +msgstr "Kehre Pfadrichtungen um..." -#: ../src/selection-chemistry.cpp:2215 -msgid "Move horizontally" -msgstr "Horizontal verschieben" +#: ../src/path-chemistry.cpp:652 +msgid "Reverse path" +msgstr "Pfadrichtung umkehren" -#: ../src/selection-chemistry.cpp:2218 ../src/selection-chemistry.cpp:2244 -#: ../src/seltrans.cpp:482 ../src/ui/dialog/transformation.cpp:807 -msgid "Move" -msgstr "Verschieben" +#: ../src/path-chemistry.cpp:654 +msgid "No paths to reverse in the selection." +msgstr "Die Auswahl enthält keine Pfade zum Umkehren." -#: ../src/selection-chemistry.cpp:2238 -msgid "Move vertically by pixels" -msgstr "Vertikal um einzelne Pixel verschieben" +# !!! make singular and plural forms +#: ../src/pencil-context.cpp:226 ../src/pen-context.cpp:411 +msgid "Continuing selected path" +msgstr "Gewählten Pfad verlängern" -#: ../src/selection-chemistry.cpp:2241 -msgid "Move horizontally by pixels" -msgstr "Horizontal um einzelne Pixel verschieben" +#: ../src/pencil-context.cpp:234 ../src/pen-context.cpp:421 +msgid "Creating new path" +msgstr "Erzeuge neuen Pfad" -#: ../src/selection-chemistry.cpp:2373 -msgid "The selection has no applied path effect." -msgstr "Auf die Selektion ist kein Pfad-Effekt angewandt." +#: ../src/pencil-context.cpp:237 ../src/pen-context.cpp:423 +msgid "Appending to selected path" +msgstr "Zu ausgewähltem Pfad hinzufĂĽgen" -#: ../src/selection-chemistry.cpp:2542 ../src/ui/dialog/clonetiler.cpp:2218 -msgid "Select an object to clone." -msgstr "Zu klonendes Objekt auswählen." +#: ../src/pencil-context.cpp:342 +msgid "Release here to close and finish the path." +msgstr "Hier loslassen, um den Pfad zu schlieĂźen und beenden." -#: ../src/selection-chemistry.cpp:2578 -msgctxt "Action" -msgid "Clone" -msgstr "Klone" +#: ../src/pencil-context.cpp:348 +msgid "Drawing a freehand path" +msgstr "Freihandlinien zeichnen" -#: ../src/selection-chemistry.cpp:2594 -msgid "Select clones to relink." -msgstr "Klon auswählen, um wieder zu verknĂĽpfen" +#: ../src/pencil-context.cpp:353 +msgid "Drag to continue the path from this point." +msgstr "Ziehen, um den Pfad von diesem Punkt aus fortzusetzen." -#: ../src/selection-chemistry.cpp:2601 -msgid "Copy an object to clipboard to relink clones to." -msgstr "Kopiert ein Objekt in die Ablage als Elter fĂĽr Klone." +# !!! +#. Write curves to object +#: ../src/pencil-context.cpp:445 +msgid "Finishing freehand" +msgstr "Fertig mit Freihandlinien" -#: ../src/selection-chemistry.cpp:2625 -msgid "No clones to relink in the selection." +#: ../src/pencil-context.cpp:501 ../src/pen-context.cpp:191 +msgid "Drawing cancelled" +msgstr "Zeichnen abgebrochen" + +#: ../src/pencil-context.cpp:551 +msgid "" +"Sketch mode: holding Alt interpolates between sketched paths. " +"Release Alt to finalize." msgstr "" -"Keine Klone in der Auswahl, deren VerknĂĽpfung erneut gesetzt werden " -"kann." +"Skizzenmodus: Halten von Alt interpoliert zwischen skizzierten " +"Pfaden. Zum Beenden Alt loslassen." -#: ../src/selection-chemistry.cpp:2628 -msgid "Relink clone" -msgstr "Klon wiederverbinden" +# !!! +#: ../src/pencil-context.cpp:579 +msgid "Finishing freehand sketch" +msgstr "Fertig mit Freihandlinien" -#: ../src/selection-chemistry.cpp:2642 -msgid "Select clones to unlink." -msgstr "Klon auswählen, dessen VerknĂĽpfung aufgehoben werden soll." +#: ../src/pen-context.cpp:583 +msgid "Click or click and drag to close and finish the path." +msgstr "Klick oder Klick und Ziehen, um den Pfad abzuschlieĂźen." -#: ../src/selection-chemistry.cpp:2696 -msgid "No clones to unlink in the selection." +#: ../src/pen-context.cpp:593 +msgid "" +"Click or click and drag to continue the path from this point." msgstr "" -"Keine Klone in der Auswahl, deren VerknĂĽpfung aufgehoben werden kann." +"Klick oder Klick und Ziehen, um den Pfad von diesem Punkt aus " +"fortzusetzen." -#: ../src/selection-chemistry.cpp:2700 -msgid "Unlink clone" -msgstr "Klonverbindung auftrennen" +#: ../src/pen-context.cpp:1193 +#, c-format +msgid "" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" +"Kurvensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " +"Winkel ein; Eingabe schlieĂźt den Pfad ab" -#: ../src/selection-chemistry.cpp:2713 +#: ../src/pen-context.cpp:1194 +#, c-format msgid "" -"Select a clone to go to its original. Select a linked offset " -"to go to its source. Select a text on path to go to the path. Select " -"a flowed text to go to its frame." +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" msgstr "" -"Klon auswählen, um das Original zu finden. Verbundenen Versatz " -"auswählen, um das Ausgangsobjekt zu finden. Textpfad auswählen, um " -"den Ausgangspfad zu finden. FlieĂźtextpfad auswählen, um seinen Rahmen " -"zu finden." +"Liniensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " +"Winkel ein; Eingabe schlieĂźt den Pfad ab" -#: ../src/selection-chemistry.cpp:2746 +#: ../src/pen-context.cpp:1211 +#, c-format msgid "" -"Cannot find the object to select (orphaned clone, offset, textpath, " -"flowed text?)" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle" msgstr "" -"Gesuchtes Objekt nicht gefunden - vielleicht ist der Klon, der " -"verbundene Versatz, der Textpfad oder der FlieĂźtext verwaist?" +"Kurvenanfasser: Winkel %3.2f°; Länge %s; Winkel mit Strg " +"einrasten" -#: ../src/selection-chemistry.cpp:2752 +#: ../src/pen-context.cpp:1233 +#, c-format msgid "" -"The object you're trying to select is not visible (it is in <" -"defs>)" +"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" msgstr "" -"Dieses Objekt kann nicht ausgewählt werden - es ist unsichtbar und " -"befindet sich in <defs>" +"Symmetrischer Kurvenanfasser: Winkel %3.2f°, Länge %s; Strg rastet den Winkel ein; Umschalt bewegt nur diesen Anfasser" -#: ../src/selection-chemistry.cpp:2797 -msgid "Select one path to clone." -msgstr "Wähle ein Pfad zum Klonen aus." +#: ../src/pen-context.cpp:1234 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle, with Shift to move this handle only" +msgstr "" +"Kurvenanfasser: Winkel %3.2f°, Länge %s; Strg rastet den " +"Winkel ein; Umschalt bewegt nur diesen Anfasser" -#: ../src/selection-chemistry.cpp:2801 -msgid "Select one path to clone." -msgstr "Wähle ein Pfad zum Klonen aus." +# not sure here -cm- +#: ../src/pen-context.cpp:1280 +msgid "Drawing finished" +msgstr "Zeichnen beendet" -#: ../src/selection-chemistry.cpp:2857 -msgid "Select object(s) to convert to marker." +#: ../src/persp3d.cpp:293 +msgid "Toggle vanishing point" +msgstr "Fluchtpunkt umschalten" + +#: ../src/persp3d.cpp:304 +msgid "Toggle multiple vanishing points" +msgstr "Multiple Fluchtpunkte umschalten" + +#: ../src/preferences.cpp:134 +msgid "" +"Inkscape will run with default settings, and new settings will not be saved. " msgstr "" -"Objekt(e) auswählen, die in ein FĂĽllmuster umgewandelt werden sollen." +"Inkscape läuft mit den Vorgabeeinstellungen.\n" +"Neue Einstellungen werden nicht gespeichert." -#: ../src/selection-chemistry.cpp:2924 -msgid "Objects to marker" -msgstr "Objekte in Linienmarkierungen umwandeln" +#. the creation failed +#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:149 +#, c-format +msgid "Cannot create profile directory %s." +msgstr "Kann Profilverzeichnis %s nicht anlegen." -#: ../src/selection-chemistry.cpp:2948 -msgid "Select object(s) to convert to guides." -msgstr "Objekt(e) auswählen, die in FĂĽhrungs umgewandelt werden sollen." +#. The profile dir is not actually a directory +#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:167 +#, c-format +msgid "%s is not a valid directory." +msgstr "%s ist kein gĂĽltiges Verzeichnis." -#: ../src/selection-chemistry.cpp:2971 -msgid "Objects to guides" -msgstr "Objekte in FĂĽhrungslinien umwandeln" +#. The write failed. +#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), +#. Glib::filename_to_utf8(_prefs_filename)), not_saved); +#: ../src/preferences.cpp:178 +#, c-format +msgid "Failed to create the preferences file %s." +msgstr "Fehler beim Erstellen der Einstellungs-Datei %s." -#: ../src/selection-chemistry.cpp:3007 -msgid "Select objects to convert to symbol." -msgstr "" +#: ../src/preferences.cpp:214 +#, c-format +msgid "The preferences file %s is not a regular file." +msgstr "Die Einstellungs-Datei %s ist keine reguläre Datei." -#: ../src/selection-chemistry.cpp:3113 -msgid "Group to symbol" -msgstr "Gruppieren zum Symbol" +#: ../src/preferences.cpp:224 +#, c-format +msgid "The preferences file %s could not be read." +msgstr "Datei %s konnte nicht gelesen werden." -#: ../src/selection-chemistry.cpp:3132 -msgid "Select a symbol to extract objects from." -msgstr "Wählen Sie ein Symbol, um Objekte daraus zu entnehmen." +#: ../src/preferences.cpp:235 +#, c-format +msgid "The preferences file %s is not a valid XML document." +msgstr "Die Vorgabendatei %s is kein gĂĽltiges XML-Dokument" -#: ../src/selection-chemistry.cpp:3141 -msgid "Select only one symbol in Symbol dialog to convert to group." -msgstr "" +#: ../src/preferences.cpp:244 +#, c-format +msgid "The file %s is not a valid Inkscape preferences file." +msgstr "%s ist keine gĂĽltige Einstellungsdatei." -#: ../src/selection-chemistry.cpp:3199 -msgid "Group from symbol" -msgstr "Gruppieren vom Symbol" +# not sure here -cm- +#: ../src/preferences-skeleton.h:101 +msgid "Dip pen" +msgstr "Tuschstift" + +#: ../src/preferences-skeleton.h:102 +msgid "Marker" +msgstr "Filzstift" + +#: ../src/preferences-skeleton.h:103 +msgid "Brush" +msgstr "Pinsel" + +#: ../src/preferences-skeleton.h:104 +msgid "Wiggly" +msgstr "Wackelig" + +#: ../src/preferences-skeleton.h:105 +msgid "Splotchy" +msgstr "Klecksig" + +#: ../src/preferences-skeleton.h:106 +msgid "Tracing" +msgstr "Nachzeichnen" + +#: ../src/rdf.cpp:175 +msgid "CC Attribution" +msgstr "CC-Namensnennung" + +#: ../src/rdf.cpp:180 +msgid "CC Attribution-ShareAlike" +msgstr "CC-Namensnennung-Weitergabe unter gleichen Bedingungen" -#: ../src/selection-chemistry.cpp:3217 -msgid "Select object(s) to convert to pattern." -msgstr "" -"Objekt(e) auswählen, die in ein FĂĽllmuster umgewandelt werden sollen." +#: ../src/rdf.cpp:185 +msgid "CC Attribution-NoDerivs" +msgstr "CC-Namensnennung-KeineBearbeitung" -#: ../src/selection-chemistry.cpp:3307 -msgid "Objects to pattern" -msgstr "Objekte in FĂĽllmuster umwandeln" +#: ../src/rdf.cpp:190 +msgid "CC Attribution-NonCommercial" +msgstr "CC-Namensnennung-NichtKommerziell" -#: ../src/selection-chemistry.cpp:3323 -msgid "Select an object with pattern fill to extract objects from." +#: ../src/rdf.cpp:195 +msgid "CC Attribution-NonCommercial-ShareAlike" msgstr "" -"Ein Objekt mit MusterfĂĽllung auswählen, um die FĂĽllung zu extrahieren." +"CC-Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen" -#: ../src/selection-chemistry.cpp:3378 -msgid "No pattern fills in the selection." -msgstr "Die Auswahl enthält keine MusterfĂĽllung." +#: ../src/rdf.cpp:200 +msgid "CC Attribution-NonCommercial-NoDerivs" +msgstr "CC-Namensnennung-NichtKommerziell-KeineBearbeitung" -#: ../src/selection-chemistry.cpp:3381 -msgid "Pattern to objects" -msgstr "FĂĽllmuster in Objekte umwandeln" +#: ../src/rdf.cpp:205 +#, fuzzy +msgid "CC0 Public Domain Dedication" +msgstr "Gemeinfrei (Public Domain)" -#: ../src/selection-chemistry.cpp:3472 -msgid "Select object(s) to make a bitmap copy." -msgstr "Objekt(e) auswählen, um eine Bitmap-Kopie zu erstellen." +#: ../src/rdf.cpp:210 +msgid "FreeArt" +msgstr "FreeArt" -#: ../src/selection-chemistry.cpp:3476 -msgid "Rendering bitmap..." -msgstr "Bitmap ausgeben" +#: ../src/rdf.cpp:215 +msgid "Open Font License" +msgstr "Open-Font-Lizenz" -#: ../src/selection-chemistry.cpp:3655 -msgid "Create bitmap" -msgstr "Bitmap erstellen" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute +#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +msgid "Title:" +msgstr "Title:" -#: ../src/selection-chemistry.cpp:3687 -msgid "Select object(s) to create clippath or mask from." +#: ../src/rdf.cpp:236 +msgid "A name given to the resource" msgstr "" -"Objekt(e) auswählen, um Ausschneidepfad oder Maskierung daraus zu " -"erzeugen." -#: ../src/selection-chemistry.cpp:3690 -msgid "Select mask object and object(s) to apply clippath or mask to." -msgstr "" -"Maskierungsobjekt und Objekt(e) auswählen, um Ausschneidepfad oder " -"Maskierung darauf anzuwenden." +#: ../src/rdf.cpp:238 +msgid "Date:" +msgstr "Datum:" -#: ../src/selection-chemistry.cpp:3873 -msgid "Set clipping path" -msgstr "Ausschneidepfad setzen" +#: ../src/rdf.cpp:239 +msgid "" +"A point or period of time associated with an event in the lifecycle of the " +"resource" +msgstr "" -#: ../src/selection-chemistry.cpp:3875 -msgid "Set mask" -msgstr "Maskierung setzen" +#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 +msgid "Format:" +msgstr "Format:" -#: ../src/selection-chemistry.cpp:3890 -msgid "Select object(s) to remove clippath or mask from." +#: ../src/rdf.cpp:242 +msgid "The file format, physical medium, or dimensions of the resource" msgstr "" -"Objekt(e) auswählen, um Ausschneidepfad oder Maskierung davon zu " -"entfernen." -#: ../src/selection-chemistry.cpp:4001 -msgid "Release clipping path" -msgstr "Ausschneidepfad entfernen" +#: ../src/rdf.cpp:245 +#, fuzzy +msgid "The nature or genre of the resource" +msgstr "Die Einheiten, die fĂĽr die Messungen verwendet werden" -#: ../src/selection-chemistry.cpp:4003 -msgid "Release mask" -msgstr "Maskierung entfernen" +# !!! Urheber? +#: ../src/rdf.cpp:248 +msgid "Creator:" +msgstr "Autor/Urheber:" -#: ../src/selection-chemistry.cpp:4022 -msgid "Select object(s) to fit canvas to." +#: ../src/rdf.cpp:249 +#, fuzzy +msgid "An entity primarily responsible for making the resource" msgstr "" -"Objekt(e) auswählen, auf die die Leinwand angepasst werden soll." +"Name der Person oder Organisation, die hauptsächlich fĂĽr die Erstellung des " +"Dokumenteninhalts verantwortlich ist." -#. Fit Page -#: ../src/selection-chemistry.cpp:4042 ../src/verbs.cpp:2905 -msgid "Fit Page to Selection" -msgstr "Seite in Auswahl einpassen" +#: ../src/rdf.cpp:251 +msgid "Rights:" +msgstr "Rechte:" -#: ../src/selection-chemistry.cpp:4071 ../src/verbs.cpp:2907 -msgid "Fit Page to Drawing" -msgstr "Seite in Zeichnungsgröße einpassen" +#: ../src/rdf.cpp:252 +msgid "Information about rights held in and over the resource" +msgstr "" -#: ../src/selection-chemistry.cpp:4092 ../src/verbs.cpp:2909 -msgid "Fit Page to Selection or Drawing" -msgstr "Seite in Auswahl oder ganze Zeichnung einpassen" +#: ../src/rdf.cpp:254 +msgid "Publisher:" +msgstr "Herausgeber:" -#: ../src/selection-describer.cpp:128 -msgid "root" -msgstr "Wurzel" +#: ../src/rdf.cpp:255 +#, fuzzy +msgid "An entity responsible for making the resource available" +msgstr "" +"Name der Person oder Organisation, die fĂĽr die VerfĂĽgbarmachung des " +"Dokuments verantwortlich ist." -# CHECK -#: ../src/selection-describer.cpp:130 ../src/widgets/ege-paint-def.cpp:66 -#: ../src/widgets/ege-paint-def.cpp:90 -msgid "none" -msgstr "keine" +#: ../src/rdf.cpp:258 +msgid "Identifier:" +msgstr "Identifikator:" -#: ../src/selection-describer.cpp:142 -#, c-format -msgid "layer %s" -msgstr "Ebene %s" +#: ../src/rdf.cpp:259 +msgid "An unambiguous reference to the resource within a given context" +msgstr "" -#: ../src/selection-describer.cpp:144 -#, c-format -msgid "layer %s" -msgstr "Ebene %s" +#: ../src/rdf.cpp:262 +msgid "A related resource from which the described resource is derived" +msgstr "" -# !!! -#: ../src/selection-describer.cpp:155 -#, c-format -msgid "%s" -msgstr "%s" +#: ../src/rdf.cpp:264 +msgid "Relation:" +msgstr "Beziehung:" -#: ../src/selection-describer.cpp:165 -#, c-format -msgid " in %s" -msgstr " in %s" +#: ../src/rdf.cpp:265 +#, fuzzy +msgid "A related resource" +msgstr "Mischquelle:" + +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1841 +msgid "Language:" +msgstr "Sprache:" -#: ../src/selection-describer.cpp:167 +#: ../src/rdf.cpp:268 #, fuzzy -msgid " hidden in definitions" -msgstr "Keine gemeinsamen Verlaufdefinitionen " +msgid "A language of the resource" +msgstr "Winkel der ersten Kopie" -#: ../src/selection-describer.cpp:169 -#, c-format -msgid " in group %s (%s)" -msgstr " in Gruppe %s (%s)" +#: ../src/rdf.cpp:270 +msgid "Keywords:" +msgstr "Schlagworte:" -#: ../src/selection-describer.cpp:171 -#, fuzzy, c-format -msgid " in unnamed group (%s)" -msgstr " in Gruppe %s (%s)" +#: ../src/rdf.cpp:271 +#, fuzzy +msgid "The topic of the resource" +msgstr "Oberkante der Quelle" -#: ../src/selection-describer.cpp:173 -#, fuzzy, c-format -msgid " in %i parent (%s)" -msgid_plural " in %i parents (%s)" -msgstr[0] " in %i Elter (%s)" -msgstr[1] " in %i Eltern (%s)" +# !!! not the best translation +#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. +#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ +#: ../src/rdf.cpp:275 +msgid "Coverage:" +msgstr "Umfang:" -#: ../src/selection-describer.cpp:176 -#, fuzzy, c-format -msgid " in %i layer" -msgid_plural " in %i layers" -msgstr[0] " in %i Ebene" -msgstr[1] " in %i Ebenen" +#: ../src/rdf.cpp:276 +msgid "" +"The spatial or temporal topic of the resource, the spatial applicability of " +"the resource, or the jurisdiction under which the resource is relevant" +msgstr "" -#: ../src/selection-describer.cpp:187 -msgid "Convert symbol to group to edit" -msgstr "Symbol zum Bearbeiten in eine Gruppe konvertieren" +#: ../src/rdf.cpp:279 +msgid "Description:" +msgstr "Beschreibung:" -#: ../src/selection-describer.cpp:191 +#: ../src/rdf.cpp:280 #, fuzzy -msgid "Remove from symbols tray to edit symbol" -msgstr "Symbol zum Bearbeiten in eine Gruppe konvertieren" +msgid "An account of the resource" +msgstr "Kurzer AbriĂź des Inhalts dieses Dokuments." -#: ../src/selection-describer.cpp:195 -msgid "Use Shift+D to look up original" -msgstr "Umschalt+D zum Finden des Originals verwenden" +#. FIXME: need to handle 1 agent per line of input +#: ../src/rdf.cpp:284 +msgid "Contributors:" +msgstr "Mitwirkende:" -#: ../src/selection-describer.cpp:199 -msgid "Use Shift+D to look up path" -msgstr "Umschalt+D zum Finden des Pfades verwenden" +#: ../src/rdf.cpp:285 +#, fuzzy +msgid "An entity responsible for making contributions to the resource" +msgstr "" +"Namen von Personen oder Organisationen, die am Inhalt dieses Dokuments " +"mitgewirkt haben." -#: ../src/selection-describer.cpp:203 -msgid "Use Shift+D to look up frame" -msgstr "Umschalt+D zum Finden des Rahmens verwenden" +#. TRANSLATORS: URL to a page that defines the license for the document +#: ../src/rdf.cpp:289 +msgid "URI:" +msgstr "URI:" -#: ../src/selection-describer.cpp:215 -#, c-format -msgid "%i objects selected of type %s" -msgid_plural "%i objects selected of types %s" -msgstr[0] "" -msgstr[1] "" +#. TRANSLATORS: this is where you put a URL to a page that defines the license +#: ../src/rdf.cpp:291 +msgid "URI to this document's license's namespace definition" +msgstr "" +"URI, unter dem die Lizenzdefinition (license namespace) dieses Dokuments zu " +"finden ist." -#: ../src/selection-describer.cpp:225 -#, c-format -msgid "; %d filtered object " -msgid_plural "; %d filtered objects " -msgstr[0] "; %d gefiltertes Objekt" -msgstr[1] "; %d gefilterte Objekte" +#. TRANSLATORS: fragment of XML representing the license of the document +#: ../src/rdf.cpp:295 +msgid "Fragment:" +msgstr "Fragment:" -#: ../src/seltrans-handles.cpp:9 +#: ../src/rdf.cpp:296 +msgid "XML fragment for the RDF 'License' section" +msgstr "XML-Fragment fĂĽr den RDF-Abschnitt »Lizenz«." + +#: ../src/rect-context.cpp:292 msgid "" -"Squeeze or stretch selection; with Ctrl to scale uniformly; " -"with Shift to scale around rotation center" +"Ctrl: make square or integer-ratio rect, lock a rounded corner " +"circular" msgstr "" -"Verzerren der Auswahl; Strg behält Höhen-/Breitenverhältnis " -"bei; Umschalt skaliert um den Rotationsmittelpunkt" +"Strg: Quadrat oder Rechteck mit ganzzahligem Kanten-Längenverhältnis, " +"abgerundete Kanten mit einheitlichen Radien" -#: ../src/seltrans-handles.cpp:10 +#: ../src/rect-context.cpp:453 +#, c-format msgid "" -"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" msgstr "" -"Skalieren der Auswahl; Strg behält Höhen-/Breitenverhältnis " -"bei; Umschalt skaliert um den Rotationsmittelpunkt" +"Rechteck: %s Ă— %s (beschränkt auf Seitenverhältnis %d:%d); " +"Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/seltrans-handles.cpp:11 +#: ../src/rect-context.cpp:456 +#, c-format msgid "" -"Skew selection; with Ctrl to snap angle; with Shift to " -"skew around the opposite side" +"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " +"Shift to draw around the starting point" msgstr "" -"Scheren der Auswahl; Winkel mit Strg einrasten; Umschalt schert entlang der gegenĂĽberliegenden Seite" +"Rechteck: %s Ă— %s (beschränkt auf Goldenen Schnitt 1,618 : 1); " +"Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/seltrans-handles.cpp:12 +#: ../src/rect-context.cpp:458 +#, c-format msgid "" -"Rotate selection; with Ctrl to snap angle; with Shift " -"to rotate around the opposite corner" +"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " +"Shift to draw around the starting point" msgstr "" -"Drehen der Auswahl; Winkel mit Strg einrasten; Umschalt " -"dreht entlang der gegenĂĽberliegenden Seite" +"Rechteck: %s Ă— %s (beschränkt auf Goldenen Schnitt 1 : 1,618); " +"Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/seltrans-handles.cpp:13 +#: ../src/rect-context.cpp:462 +#, c-format msgid "" -"Center of rotation and skewing: drag to reposition; scaling with " -"Shift also uses this center" +"Rectangle: %s × %s; with Ctrl to make square or integer-" +"ratio rectangle; with Shift to draw around the starting point" msgstr "" -"Mittelpunkt fĂĽr Drehen und Scheren: Ziehen verschiebt den " -"Mittelpunkt; Skalieren mit Umschalt verwendet diesen Mittelpunkt" - -#: ../src/seltrans.cpp:491 ../src/ui/dialog/transformation.cpp:982 -msgid "Skew" -msgstr "Scheren" - -#: ../src/seltrans.cpp:504 -msgid "Set center" -msgstr "Mittelpunkt setzen" +"Rechteck: %s Ă— %s; Strg erzeugt Quadrat oder ganzzahliges " +"Höhen/Breitenverhältnis; Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/seltrans.cpp:579 -msgid "Stamp" -msgstr "Stempeln" +#: ../src/rect-context.cpp:485 +msgid "Create rectangle" +msgstr "Rechteck erzeugen" -#: ../src/seltrans.cpp:728 -msgid "Reset center" -msgstr "Mittelpunkt zurĂĽcksetzen" +#: ../src/resource-manager.cpp:332 +msgid "Fixup broken links" +msgstr "Defekte Links fixen" -#: ../src/seltrans.cpp:960 ../src/seltrans.cpp:1065 -#, c-format -msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" +#: ../src/select-context.cpp:165 +msgid "Click selection to toggle scale/rotation handles" msgstr "" -"Skalierung: %0.2f%% Ă— %0.2f%%; Höhen-/Breitenverhältnis mit Strg beibehalten" +"Klicken Sie auf die Auswahl, um zwischen Skalieren und Rotieren umzuschalten" -#. TRANSLATORS: don't modify the first ";" -#. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1197 -#, c-format -msgid "Skew: %0.2f°; with Ctrl to snap angle" -msgstr "Scheren: %0.2f °; Winkel mit Strg einrasten" +#: ../src/select-context.cpp:166 +msgid "" +"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " +"or drag around objects to select." +msgstr "" +"Keine Objekte ausgewählt. Klick, Umschalt+Klick, oder Ziehen um Objekte " +"auszuwählen." -#. TRANSLATORS: don't modify the first ";" -#. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1272 -#, c-format -msgid "Rotate: %0.2f°; with Ctrl to snap angle" -msgstr "Drehen: %0.2f°; Winkel mit Strg einrasten" +# !!! +#: ../src/select-context.cpp:219 +msgid "Move canceled." +msgstr "Verschieben abgebrochen." -#: ../src/seltrans.cpp:1309 -#, c-format -msgid "Move center to %s, %s" -msgstr "Mittelpunkt verschieben nach %s, %s" +# !!! +#: ../src/select-context.cpp:227 +msgid "Selection canceled." +msgstr "Auswahl abgebrochen." -#: ../src/seltrans.cpp:1463 -#, c-format +#: ../src/select-context.cpp:644 msgid "" -"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " -"with Shift to disable snapping" +"Draw over objects to select them; release Alt to switch to " +"rubberband selection" msgstr "" -"Verschieben um %s, %s; mit Strg nur horizontale/vertikale " -"Verschiebung; Umschalt deaktiviert Einrasten." - -# !!! palettes, not swatches? -#: ../src/shortcuts.cpp:226 -#, c-format -msgid "Keyboard directory (%s) is unavailable." -msgstr "Tastatur-verzeichnis (%s) nicht verfĂĽgbar." - -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1299 -#: ../src/ui/dialog/export.cpp:1333 -msgid "Select a filename for exporting" -msgstr "Wählen Sie einen Namen fĂĽr die zu exportierende Datei" +"Zeichnen ĂĽber Objekten wählt sie aus; Alt loslassen, um mit " +"Gummiband auszuwählen" -#: ../src/shortcuts.cpp:370 -msgid "Select a file to import" -msgstr "Wählen Sie die zu importierende Datei" +#: ../src/select-context.cpp:646 +msgid "" +"Drag around objects to select them; press Alt to switch to " +"touch selection" +msgstr "" +"Ziehen um Objekte wählt sie aus; Alt drĂĽcken, um durch " +"BerĂĽhrung auszuwählen" -#: ../src/sp-anchor.cpp:125 -#, c-format -msgid "to %s" -msgstr "zu %s" +#: ../src/select-context.cpp:936 +msgid "Ctrl: click to select in groups; drag to move hor/vert" +msgstr "" +"Strg: Klick um in Gruppierung auszuwählen; Ziehen um horizontal/" +"vertikal bewegen" -#: ../src/sp-anchor.cpp:129 -msgid "without URI" -msgstr "ohne URI" +#: ../src/select-context.cpp:937 +msgid "Shift: click to toggle select; drag for rubberband selection" +msgstr "" +"Umschalt: Klick um Auswahl aktivieren/deaktivieren, Ziehen fĂĽr " +"Gummiband-Auswahl" -#: ../src/sp-ellipse.cpp:374 -msgid "Segment" -msgstr "Segment" +#: ../src/select-context.cpp:938 +msgid "" +"Alt: click to select under; scroll mouse-wheel to cycle-select; drag " +"to move selected or select by touch" +msgstr "" +"Alt: Klick um verdeckte Objekte auswählen; Ziehen um gewähltes Objekt " +"zu verschieben oder durch BerĂĽhren auszuwählen" -#: ../src/sp-ellipse.cpp:376 -msgid "Arc" -msgstr "Bogen" +#: ../src/select-context.cpp:1146 +msgid "Selected object is not a group. Cannot enter." +msgstr "Ausgewähltes Objekt ist keine Gruppe - kann diese nicht betreten." -#. Ellipse -#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 -#: ../src/ui/dialog/inkscape-preferences.cpp:403 -#: ../src/widgets/pencil-toolbar.cpp:158 -msgid "Ellipse" -msgstr "Ellipse" +#: ../src/selection-chemistry.cpp:393 +msgid "Delete text" +msgstr "Text löschen" -#: ../src/sp-ellipse.cpp:383 -msgid "Circle" -msgstr "Kreis" +#: ../src/selection-chemistry.cpp:401 +msgid "Nothing was deleted." +msgstr "Es wurde nichts gelöscht." -#. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:193 -#, fuzzy -msgid "Flow Region" -msgstr "FlieĂźtext-Bereich" +#: ../src/selection-chemistry.cpp:420 ../src/text-context.cpp:992 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 +#: ../src/ui/dialog/swatches.cpp:278 ../src/widgets/eraser-toolbar.cpp:110 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-toolbar.cpp:1209 +#: ../src/widgets/gradient-toolbar.cpp:1223 +#: ../src/widgets/node-toolbar.cpp:413 +msgid "Delete" +msgstr "Löschen" -#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the -#. * flow excluded region. flowRegionExclude in SVG 1.2: see -#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and -#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. -#: ../src/sp-flowregion.cpp:343 -#, fuzzy -msgid "Flow Excluded Region" -msgstr "Ausgeschlossenen Bereich umflieĂźen" +#: ../src/selection-chemistry.cpp:448 +msgid "Select object(s) to duplicate." +msgstr "Objekt(e) zum Duplizieren auswählen." -#: ../src/sp-flowtext.cpp:289 -msgid "Flowed Text" -msgstr "FlieĂźtext" +#: ../src/selection-chemistry.cpp:557 +msgid "Delete all" +msgstr "Alles löschen" -#: ../src/sp-flowtext.cpp:291 -msgid "Linked Flowed Text" -msgstr "VerknĂĽpfter FlieĂźtext" +#: ../src/selection-chemistry.cpp:747 +msgid "Select some objects to group." +msgstr "Einige Objekte zum Gruppieren auswählen." -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:357 -#: ../src/ui/tools/text-tool.cpp:1566 -msgid " [truncated]" -msgstr "[abgestumpft}" +#: ../src/selection-chemistry.cpp:762 ../src/sp-item-group.cpp:331 +msgid "Group" +msgstr "Gruppieren" -#: ../src/sp-flowtext.cpp:300 -#, fuzzy, c-format -msgid "(%d character%s)" -msgid_plural "(%d characters%s)" -msgstr[0] "Unicode-Zeichen:" -msgstr[1] "Unicode-Zeichen:" +#: ../src/selection-chemistry.cpp:771 +msgid "Select a group to ungroup." +msgstr "" +"Eine Gruppe auswählen, deren Gruppierung aufgehoben werden soll." -#: ../src/sp-guide.cpp:303 -msgid "Create Guides Around the Page" -msgstr "FĂĽhrungslinien an Seitenrändern erstellen" +#: ../src/selection-chemistry.cpp:814 +msgid "No groups to ungroup in the selection." +msgstr "Keine Gruppe zum Aufheben in dieser Auswahl." -#: ../src/sp-guide.cpp:315 ../src/verbs.cpp:2470 -msgid "Delete All Guides" -msgstr "FĂĽhrungslinien löschen" +#: ../src/selection-chemistry.cpp:820 ../src/sp-item-group.cpp:564 +msgid "Ungroup" +msgstr "Gruppierung aufheben" -#. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:475 -msgid "Deleted" -msgstr "Gelöscht" +#: ../src/selection-chemistry.cpp:901 +msgid "Select object(s) to raise." +msgstr "Objekte zum Anheben auswählen." -#: ../src/sp-guide.cpp:484 +#: ../src/selection-chemistry.cpp:907 ../src/selection-chemistry.cpp:963 +#: ../src/selection-chemistry.cpp:991 ../src/selection-chemistry.cpp:1052 msgid "" -"Shift+drag to rotate, Ctrl+drag to move origin, Del to " -"delete" +"You cannot raise/lower objects from different groups or layers." msgstr "" -"Umschalt+Ziehen rotiert, Strg+Ziehen bewegt Ursprung, Entf löscht." - -#: ../src/sp-guide.cpp:488 -#, c-format -msgid "vertical, at %s" -msgstr "Vertikale FĂĽhrungslinie bei %s" - -#: ../src/sp-guide.cpp:491 -#, c-format -msgid "horizontal, at %s" -msgstr "Horizontale FĂĽhrungslinie bei %s" - -#: ../src/sp-guide.cpp:496 -#, c-format -msgid "at %d degrees, through (%s,%s)" -msgstr "bei %d Grad, durch (%s, %s)" +"Objekte aus verschiedenen Gruppen oder Ebenen können nicht " +"angehoben oder abgesenkt werden." -#: ../src/sp-image.cpp:525 -msgid "embedded" -msgstr "eingebettet" +#. TRANSLATORS: "Raise" means "to raise an object" in the undo history +#: ../src/selection-chemistry.cpp:947 +msgctxt "Undo action" +msgid "Raise" +msgstr "Anheben" -#: ../src/sp-image.cpp:533 -#, fuzzy, c-format -msgid "[bad reference]: %s" -msgstr "Einstellungen fĂĽr Sternwerkzeug" +#: ../src/selection-chemistry.cpp:955 +msgid "Select object(s) to raise to top." +msgstr "" +"Objekt(e) auswählen, die in den Vordergrund angehoben werden sollen." -#: ../src/sp-image.cpp:534 -#, fuzzy, c-format -msgid "%d × %d: %s" -msgstr "Farbbild %d × %d: %s" +#: ../src/selection-chemistry.cpp:978 +msgid "Raise to top" +msgstr "Nach ganz oben anheben" -#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:82 -#, fuzzy, c-format -msgid "of %d object" -msgstr "Gruppe von %d Objekt" +#: ../src/selection-chemistry.cpp:985 +msgid "Select object(s) to lower." +msgstr "Objekt(e) zum Absenken auswählen." -#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:82 -#, fuzzy, c-format -msgid "of %d objects" -msgstr "Gruppe von %d Objekt" +#. TRANSLATORS: "Lower" means "to lower an object" in the undo history +#: ../src/selection-chemistry.cpp:1036 +#, fuzzy +msgctxt "Undo action" +msgid "Lower" +msgstr "Absenken" -#: ../src/sp-item.cpp:943 ../src/verbs.cpp:213 -msgid "Object" -msgstr "Objekt" +#: ../src/selection-chemistry.cpp:1044 +msgid "Select object(s) to lower to bottom." +msgstr "" +"Objekt(e) auswählen, die ganz in den Hintergrund abgesenkt werden " +"sollen." -#: ../src/sp-item.cpp:960 -#, c-format -msgid "%s; clipped" -msgstr "%s; ausgeschnitten" +#: ../src/selection-chemistry.cpp:1079 +msgid "Lower to bottom" +msgstr "Nach ganz unten absenken" -#: ../src/sp-item.cpp:966 -#, c-format -msgid "%s; masked" -msgstr "%s, maskiert" +# !!! just make the menu item insensitive +#: ../src/selection-chemistry.cpp:1086 +msgid "Nothing to undo." +msgstr "Es gibt nichts rĂĽckgängig zu machen." -#: ../src/sp-item.cpp:976 -#, c-format -msgid "%s; filtered (%s)" -msgstr "%s; gefiltert (%s)" +# # !!! just make the menu item insensitive +#: ../src/selection-chemistry.cpp:1094 +msgid "Nothing to redo." +msgstr "Es gibt nichts wiederherzustellen." -#: ../src/sp-item.cpp:978 -#, c-format -msgid "%s; filtered" -msgstr "%s; gefiltert" +#: ../src/selection-chemistry.cpp:1161 +msgid "Paste" +msgstr "EinfĂĽgen" -#: ../src/sp-line.cpp:126 -msgid "Line" -msgstr "Linie" +#: ../src/selection-chemistry.cpp:1169 +msgid "Paste style" +msgstr "Stil anwenden" -#: ../src/sp-lpe-item.cpp:255 -msgid "An exception occurred during execution of the Path Effect." -msgstr "Beim ausfĂĽhren des Pfad-Effektes ist ein Fehler aufgetreten." +#: ../src/selection-chemistry.cpp:1179 +msgid "Paste live path effect" +msgstr "Pfad-Effekt einfĂĽgen" -#: ../src/sp-offset.cpp:344 -msgid "Linked Offset" -msgstr "Verbundener Versatz" +#: ../src/selection-chemistry.cpp:1201 +msgid "Select object(s) to remove live path effects from." +msgstr "Objekt(e) auswählen, um den Pfad-Effekt zu entfernen." -#: ../src/sp-offset.cpp:346 -msgid "Dynamic Offset" -msgstr "Dynamischer Versatz" +#: ../src/selection-chemistry.cpp:1213 +msgid "Remove live path effect" +msgstr "Pfad-Effekt entfernen" -#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:352 -#, c-format -msgid "%s by %f pt" -msgstr "" +#: ../src/selection-chemistry.cpp:1224 +msgid "Select object(s) to remove filters from." +msgstr "Text auswählen, um Filter zu entfernen." -#: ../src/sp-offset.cpp:353 -msgid "outset" -msgstr "erweitert" +#: ../src/selection-chemistry.cpp:1234 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1462 +msgid "Remove filter" +msgstr "Filter entfernen" -#: ../src/sp-offset.cpp:353 -msgid "inset" -msgstr "geschrumpft" +#: ../src/selection-chemistry.cpp:1243 +msgid "Paste size" +msgstr "Größe einfĂĽgen" -#: ../src/sp-path.cpp:70 -msgid "Path" -msgstr "Pfad" +#: ../src/selection-chemistry.cpp:1252 +msgid "Paste size separately" +msgstr "Größe getrennt einfĂĽgen" -#: ../src/sp-path.cpp:95 -#, fuzzy, c-format -msgid ", path effect: %s" -msgstr "Pfad-Effekt hinzufĂĽgen" +#: ../src/selection-chemistry.cpp:1262 +msgid "Select object(s) to move to the layer above." +msgstr "" +"Objekt(e) auswählen, welche eine Ebene weiter nach oben verschoben " +"werden sollen." -#: ../src/sp-path.cpp:98 -#, fuzzy, c-format -msgid "%i node%s" -msgstr "Knoten verbinden" +#: ../src/selection-chemistry.cpp:1288 +msgid "Raise to next layer" +msgstr "Auf nächste Ebene anheben" -#: ../src/sp-path.cpp:98 -#, fuzzy, c-format -msgid "%i nodes%s" -msgstr "Knoten verbinden" +#: ../src/selection-chemistry.cpp:1295 +msgid "No more layers above." +msgstr "Keine weiteren Ebenen ĂĽber dieser." -# !!! -#: ../src/sp-polygon.cpp:185 -msgid "Polygon" -msgstr "Polygon" +#: ../src/selection-chemistry.cpp:1307 +msgid "Select object(s) to move to the layer below." +msgstr "" +"Objekt(e) auswählen, welche in die Ebene darunter verschoben werden " +"sollen." -# !!! -#: ../src/sp-polyline.cpp:131 -msgid "Polyline" -msgstr "Linienzug" +#: ../src/selection-chemistry.cpp:1333 +msgid "Lower to previous layer" +msgstr "Zur nächsten Ebene absenken" -#. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:393 -msgid "Rectangle" -msgstr "Rechteck" +#: ../src/selection-chemistry.cpp:1340 +msgid "No more layers below." +msgstr "Keine weiteren Ebenen unter dieser." -#. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:411 -#: ../share/extensions/gcodetools_area.inx.h:11 -msgid "Spiral" -msgstr "Spirale" +#: ../src/selection-chemistry.cpp:1352 +msgid "Select object(s) to move." +msgstr "Objekt(e) zum Verschieben auswählen." -#. TRANSLATORS: since turn count isn't an integer, please adjust the -#. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 -#, fuzzy, c-format -msgid "with %3f turns" -msgstr "Spirale mit %3f Windungen" +#: ../src/selection-chemistry.cpp:1369 ../src/verbs.cpp:2581 +msgid "Move selection to layer" +msgstr "Auswahl zur Ebene verschieben" -#. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:407 -#: ../src/widgets/star-toolbar.cpp:469 -msgid "Star" -msgstr "Stern" +#: ../src/selection-chemistry.cpp:1593 +msgid "Remove transform" +msgstr "Transformationen zurĂĽcksetzen" -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:462 -msgid "Polygon" -msgstr "Polygon" +#: ../src/selection-chemistry.cpp:1696 +msgid "Rotate 90° CCW" +msgstr "Um 90° entgegen Uhrzeigersinn rotieren" -#. while there will never be less than 3 vertices, we still need to -#. make calls to ngettext because the pluralization may be different -#. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:264 -#, fuzzy, c-format -msgid "with %d vertex" -msgstr "Stern mit %d Eckpunkt" +#: ../src/selection-chemistry.cpp:1696 +msgid "Rotate 90° CW" +msgstr "Um 90° im Uhrzeigersinn rotieren" -#: ../src/sp-star.cpp:264 -#, fuzzy, c-format -msgid "with %d vertices" -msgstr "Stern mit %d Eckpunkt" +#: ../src/selection-chemistry.cpp:1717 ../src/seltrans.cpp:468 +#: ../src/ui/dialog/transformation.cpp:893 +msgid "Rotate" +msgstr "Drehen" -#: ../src/sp-switch.cpp:76 -msgid "Conditional Group" -msgstr "" +#: ../src/selection-chemistry.cpp:2096 +msgid "Rotate by pixels" +msgstr "Um Pixel rotieren" -#: ../src/sp-text.cpp:330 ../src/verbs.cpp:328 -#: ../share/extensions/lorem_ipsum.inx.h:8 -#: ../share/extensions/replace_font.inx.h:11 -#: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 -#: ../share/extensions/text_extract.inx.h:14 -#: ../share/extensions/text_flipcase.inx.h:2 -#: ../share/extensions/text_lowercase.inx.h:2 -#: ../share/extensions/text_merge.inx.h:16 -#: ../share/extensions/text_randomcase.inx.h:2 -#: ../share/extensions/text_sentencecase.inx.h:2 -#: ../share/extensions/text_titlecase.inx.h:2 -#: ../share/extensions/text_uppercase.inx.h:2 -msgid "Text" -msgstr "Text" +#: ../src/selection-chemistry.cpp:2126 ../src/seltrans.cpp:465 +#: ../src/ui/dialog/transformation.cpp:868 +#: ../share/extensions/interp_att_g.inx.h:12 +msgid "Scale" +msgstr "Skalieren" -#. TRANSLATORS: For description of font with no name. -#: ../src/sp-text.cpp:347 -msgid "<no name found>" -msgstr "<kein Name gefunden>" +#: ../src/selection-chemistry.cpp:2151 +msgid "Scale by whole factor" +msgstr "Um einen ganzzahligen Faktor skalieren" -#: ../src/sp-text.cpp:361 -#, fuzzy, c-format -msgid "on path%s (%s, %s)" -msgstr "Text an Pfad%s (%s, %s)" +#: ../src/selection-chemistry.cpp:2166 +msgid "Move vertically" +msgstr "Vertikal verschieben" -#: ../src/sp-text.cpp:362 -#, fuzzy, c-format -msgid "%s (%s, %s)" -msgstr "Text%s (%s, %s)" +#: ../src/selection-chemistry.cpp:2169 +msgid "Move horizontally" +msgstr "Horizontal verschieben" -#: ../src/sp-tref.cpp:237 -#, fuzzy -msgid "Cloned Character Data" -msgstr "Geklonte Zeichendaten%s%s" +#: ../src/selection-chemistry.cpp:2172 ../src/selection-chemistry.cpp:2198 +#: ../src/seltrans.cpp:462 ../src/ui/dialog/transformation.cpp:807 +msgid "Move" +msgstr "Verschieben" -#: ../src/sp-tref.cpp:253 -msgid " from " -msgstr " von " +#: ../src/selection-chemistry.cpp:2192 +msgid "Move vertically by pixels" +msgstr "Vertikal um einzelne Pixel verschieben" -#: ../src/sp-tref.cpp:259 ../src/sp-use.cpp:249 -msgid "[orphaned]" -msgstr "[verwaist]" +#: ../src/selection-chemistry.cpp:2195 +msgid "Move horizontally by pixels" +msgstr "Horizontal um einzelne Pixel verschieben" -#: ../src/sp-tspan.cpp:220 -#, fuzzy -msgid "Text Span" -msgstr "Text-anker" +#: ../src/selection-chemistry.cpp:2327 +msgid "The selection has no applied path effect." +msgstr "Auf die Selektion ist kein Pfad-Effekt angewandt." -#: ../src/sp-use.cpp:214 -msgid "Symbol" -msgstr "Symbol" +#: ../src/selection-chemistry.cpp:2496 ../src/ui/dialog/clonetiler.cpp:2218 +msgid "Select an object to clone." +msgstr "Zu klonendes Objekt auswählen." -#: ../src/sp-use.cpp:217 +#: ../src/selection-chemistry.cpp:2532 +msgctxt "Action" msgid "Clone" msgstr "Klone" -#: ../src/sp-use.cpp:224 ../src/sp-use.cpp:226 -#, c-format -msgid "called %s" -msgstr "" - -#: ../src/sp-use.cpp:226 -msgid "Unnamed Symbol" -msgstr "" - -#. TRANSLATORS: Used for statusbar description for long chains: -#. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:235 -msgid "..." -msgstr "…" - -#: ../src/sp-use.cpp:244 -#, fuzzy, c-format -msgid "of: %s" -msgstr "Fehler: %s" +#: ../src/selection-chemistry.cpp:2548 +msgid "Select clones to relink." +msgstr "Klon auswählen, um wieder zu verknĂĽpfen" -#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 -msgid "Union" -msgstr "Vereinigung" +#: ../src/selection-chemistry.cpp:2555 +msgid "Copy an object to clipboard to relink clones to." +msgstr "Kopiert ein Objekt in die Ablage als Elter fĂĽr Klone." -#: ../src/splivarot.cpp:82 -msgid "Intersection" -msgstr "Ăśberschneidung" +#: ../src/selection-chemistry.cpp:2579 +msgid "No clones to relink in the selection." +msgstr "" +"Keine Klone in der Auswahl, deren VerknĂĽpfung erneut gesetzt werden " +"kann." -#: ../src/splivarot.cpp:105 -msgid "Division" -msgstr "Division" +#: ../src/selection-chemistry.cpp:2582 +msgid "Relink clone" +msgstr "Klon wiederverbinden" -#: ../src/splivarot.cpp:110 -msgid "Cut path" -msgstr "Pfad zerschneiden" +#: ../src/selection-chemistry.cpp:2596 +msgid "Select clones to unlink." +msgstr "Klon auswählen, dessen VerknĂĽpfung aufgehoben werden soll." -#: ../src/splivarot.cpp:333 -msgid "Select at least 2 paths to perform a boolean operation." +#: ../src/selection-chemistry.cpp:2650 +msgid "No clones to unlink in the selection." msgstr "" -"Wählen Sie mindestens 2 Pfade aus, um eine boole'sche Operation " -"auszufĂĽhren." +"Keine Klone in der Auswahl, deren VerknĂĽpfung aufgehoben werden kann." -#: ../src/splivarot.cpp:337 -msgid "Select at least 1 path to perform a boolean union." -msgstr "" -"Wählen Sie mindestens 1 Pfad aus, um eine boole'sche Vereinigung " -"auszufĂĽhren." +#: ../src/selection-chemistry.cpp:2654 +msgid "Unlink clone" +msgstr "Klonverbindung auftrennen" -#: ../src/splivarot.cpp:345 +#: ../src/selection-chemistry.cpp:2667 msgid "" -"Select exactly 2 paths to perform difference, division, or path cut." +"Select a clone to go to its original. Select a linked offset " +"to go to its source. Select a text on path to go to the path. Select " +"a flowed text to go to its frame." msgstr "" -"Wählen Sie genau 2 Pfade aus, um eine Differenz-, XOR-, Dvisions- " -"oder Pfadzuschneideoperation auszufĂĽhren." +"Klon auswählen, um das Original zu finden. Verbundenen Versatz " +"auswählen, um das Ausgangsobjekt zu finden. Textpfad auswählen, um " +"den Ausgangspfad zu finden. FlieĂźtextpfad auswählen, um seinen Rahmen " +"zu finden." -#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 +#: ../src/selection-chemistry.cpp:2700 msgid "" -"Unable to determine the z-order of the objects selected for " -"difference, XOR, division, or path cut." +"Cannot find the object to select (orphaned clone, offset, textpath, " +"flowed text?)" msgstr "" -"Die Z-Tiefe der ausgewählten Objekte konnte nicht fĂĽr die Differenz-, " -"XOR-, Division- oder Pfadzuschneideoperation ermittelt werden." +"Gesuchtes Objekt nicht gefunden - vielleicht ist der Klon, der " +"verbundene Versatz, der Textpfad oder der FlieĂźtext verwaist?" -#: ../src/splivarot.cpp:407 +#: ../src/selection-chemistry.cpp:2706 msgid "" -"One of the objects is not a path, cannot perform boolean operation." +"The object you're trying to select is not visible (it is in <" +"defs>)" msgstr "" -"Eines der ausgewählten Objekte ist kein Pfad. Boole'sche Operation " -"wird nicht ausgefĂĽhrt." +"Dieses Objekt kann nicht ausgewählt werden - es ist unsichtbar und " +"befindet sich in <defs>" -#: ../src/splivarot.cpp:1157 -msgid "Select stroked path(s) to convert stroke to path." +#: ../src/selection-chemistry.cpp:2751 +msgid "Select one path to clone." +msgstr "Wähle ein Pfad zum Klonen aus." + +#: ../src/selection-chemistry.cpp:2755 +msgid "Select one path to clone." +msgstr "Wähle ein Pfad zum Klonen aus." + +#: ../src/selection-chemistry.cpp:2810 +msgid "Select object(s) to convert to marker." msgstr "" -"Pfade mit Kontur auswählen, um die Konturlinie in einen Pfad " -"umzuwandeln." +"Objekt(e) auswählen, die in ein FĂĽllmuster umgewandelt werden sollen." -#: ../src/splivarot.cpp:1516 -msgid "Convert stroke to path" -msgstr "Kontur in Pfad umwandeln" +#: ../src/selection-chemistry.cpp:2878 +msgid "Objects to marker" +msgstr "Objekte in Linienmarkierungen umwandeln" -#. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 -msgid "No stroked paths in the selection." -msgstr "Keine Pfade mit Konturlinien in der Auswahl." +#: ../src/selection-chemistry.cpp:2906 +msgid "Select object(s) to convert to guides." +msgstr "Objekt(e) auswählen, die in FĂĽhrungs umgewandelt werden sollen." -#: ../src/splivarot.cpp:1590 -msgid "Selected object is not a path, cannot inset/outset." -msgstr "" -"Ausgewähltes Objekt ist kein Pfad - kann es nicht schrumpfen/" -"erweitern." +#: ../src/selection-chemistry.cpp:2918 +msgid "Objects to guides" +msgstr "Objekte in FĂĽhrungslinien umwandeln" -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 -msgid "Create linked offset" -msgstr "Verbundenen Versatz erzeugen" +#: ../src/selection-chemistry.cpp:2937 +#, fuzzy +msgid "Select groups to convert to symbols." +msgstr "Wählen Sie eine Gruppe, um zum Symbol zu konvertieren." -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 -msgid "Create dynamic offset" -msgstr "Dynamischen Versatz erzeugen" +#: ../src/selection-chemistry.cpp:2957 +#, fuzzy +msgid "No groups converted to symbols." +msgstr "Wählen Sie eine Gruppe, um zum Symbol zu konvertieren." -#: ../src/splivarot.cpp:1772 -msgid "Select path(s) to inset/outset." -msgstr "Pfad zum Schrumpfen/Erweitern auswählen." +#. Group just disappears, nothing to select. +#: ../src/selection-chemistry.cpp:2964 +msgid "Group to symbol" +msgstr "Gruppieren zum Symbol" -#: ../src/splivarot.cpp:1968 -msgid "Outset path" -msgstr "Pfad erweitern" +#: ../src/selection-chemistry.cpp:3030 +msgid "Select a symbol to extract objects from." +msgstr "Wählen Sie ein Symbol, um Objekte daraus zu entnehmen." -#: ../src/splivarot.cpp:1968 -msgid "Inset path" -msgstr "Pfad schrumpfen" +#: ../src/selection-chemistry.cpp:3039 +msgid "Select only one symbol to convert to group." +msgstr "" +"Wählen Sie nur einSymbol aus, um es in eine Gruppe zu konvertieren." -#: ../src/splivarot.cpp:1970 -msgid "No paths to inset/outset in the selection." -msgstr "Die Auswahl enthält keine Pfade zum Schrumpfen/Erweitern." +#: ../src/selection-chemistry.cpp:3080 +msgid "Group from symbol" +msgstr "Gruppieren vom Symbol" -#: ../src/splivarot.cpp:2132 -msgid "Simplifying paths (separately):" -msgstr "Vereinfache Pfade (getrennt):" +#: ../src/selection-chemistry.cpp:3097 +msgid "Select object(s) to convert to pattern." +msgstr "" +"Objekt(e) auswählen, die in ein FĂĽllmuster umgewandelt werden sollen." -#: ../src/splivarot.cpp:2134 -msgid "Simplifying paths:" -msgstr "Vereinfache Pfade:" +#: ../src/selection-chemistry.cpp:3187 +msgid "Objects to pattern" +msgstr "Objekte in FĂĽllmuster umwandeln" -#: ../src/splivarot.cpp:2171 -#, c-format -msgid "%s %d of %d paths simplified..." -msgstr "%s %d von %d Pfaden vereinfacht…" +#: ../src/selection-chemistry.cpp:3203 +msgid "Select an object with pattern fill to extract objects from." +msgstr "" +"Ein Objekt mit MusterfĂĽllung auswählen, um die FĂĽllung zu extrahieren." -#: ../src/splivarot.cpp:2184 -#, c-format -msgid "%d paths simplified." -msgstr "%d Pfade vereinfacht." +#: ../src/selection-chemistry.cpp:3258 +msgid "No pattern fills in the selection." +msgstr "Die Auswahl enthält keine MusterfĂĽllung." -#: ../src/splivarot.cpp:2198 -msgid "Select path(s) to simplify." -msgstr "Pfad zum Vereinfachen auswählen." +#: ../src/selection-chemistry.cpp:3261 +msgid "Pattern to objects" +msgstr "FĂĽllmuster in Objekte umwandeln" -#: ../src/splivarot.cpp:2214 -msgid "No paths to simplify in the selection." -msgstr "Die Auswahl enthält keine Pfade zum Vereinfachen." +#: ../src/selection-chemistry.cpp:3352 +msgid "Select object(s) to make a bitmap copy." +msgstr "Objekt(e) auswählen, um eine Bitmap-Kopie zu erstellen." -#: ../src/text-chemistry.cpp:94 -msgid "Select a text and a path to put text on path." -msgstr "Einen Text und Pfad auswählen, um Text an Pfad auszurichten." +#: ../src/selection-chemistry.cpp:3356 +msgid "Rendering bitmap..." +msgstr "Bitmap ausgeben" -#: ../src/text-chemistry.cpp:99 -msgid "" -"This text object is already put on a path. Remove it from the path " -"first. Use Shift+D to look up its path." -msgstr "" -"Dieses Textobjekt ist schon einem Pfad zugewiesen. Bitte erst vom " -"Pfad trennen. Umschalt+D zeigt den Pfad an." +#: ../src/selection-chemistry.cpp:3535 +msgid "Create bitmap" +msgstr "Bitmap erstellen" -#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 -msgid "" -"You cannot put text on a rectangle in this version. Convert rectangle to " -"path first." +#: ../src/selection-chemistry.cpp:3567 +msgid "Select object(s) to create clippath or mask from." msgstr "" -"FlieĂźtext auf einem Rechteck in dieser Version noch nicht unterstĂĽtzt. " -"Rechteck vorerst in einen Pfad umwandeln." +"Objekt(e) auswählen, um Ausschneidepfad oder Maskierung daraus zu " +"erzeugen." -#: ../src/text-chemistry.cpp:115 -msgid "The flowed text(s) must be visible in order to be put on a path." +#: ../src/selection-chemistry.cpp:3570 +msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -"Der FlieĂźtext muss sichtbar sein, um einem Pfad zugewiesen zu werden." - -#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2492 -msgid "Put text on path" -msgstr "Text an Pfad ausrichten" +"Maskierungsobjekt und Objekt(e) auswählen, um Ausschneidepfad oder " +"Maskierung darauf anzuwenden." -#: ../src/text-chemistry.cpp:197 -msgid "Select a text on path to remove it from path." -msgstr "Einen Text-Pfad zum Trennen vom Pfad auswählen." +#: ../src/selection-chemistry.cpp:3753 +msgid "Set clipping path" +msgstr "Ausschneidepfad setzen" -#: ../src/text-chemistry.cpp:218 -msgid "No texts-on-paths in the selection." -msgstr "Kein Text-Pfad in der Auswahl vorhanden." +#: ../src/selection-chemistry.cpp:3755 +msgid "Set mask" +msgstr "Maskierung setzen" -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2494 -msgid "Remove text from path" -msgstr "Text wird von Pfad getrennt" +#: ../src/selection-chemistry.cpp:3770 +msgid "Select object(s) to remove clippath or mask from." +msgstr "" +"Objekt(e) auswählen, um Ausschneidepfad oder Maskierung davon zu " +"entfernen." -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 -msgid "Select text(s) to remove kerns from." -msgstr "Text auswählen, um Kerning zu entfernen." +#: ../src/selection-chemistry.cpp:3881 +msgid "Release clipping path" +msgstr "Ausschneidepfad entfernen" -#: ../src/text-chemistry.cpp:286 -msgid "Remove manual kerns" -msgstr "Manuelle Unterschneidungen entfernen" +#: ../src/selection-chemistry.cpp:3883 +msgid "Release mask" +msgstr "Maskierung entfernen" -#: ../src/text-chemistry.cpp:306 -msgid "" -"Select a text and one or more paths or shapes to flow text " -"into frame." +#: ../src/selection-chemistry.cpp:3902 +msgid "Select object(s) to fit canvas to." msgstr "" -"Einen Text und Pfad oder Form zum Erzeugen eines " -"FlieĂźtextes auswählen." +"Objekt(e) auswählen, auf die die Leinwand angepasst werden soll." -#: ../src/text-chemistry.cpp:376 -msgid "Flow text into shape" -msgstr "Text in Form flieĂźen lassen" +#. Fit Page +#: ../src/selection-chemistry.cpp:3922 ../src/verbs.cpp:2907 +msgid "Fit Page to Selection" +msgstr "Seite in Auswahl einpassen" -#: ../src/text-chemistry.cpp:398 -msgid "Select a flowed text to unflow it." -msgstr "FlieĂźtext zum Aufheben auswählen." +#: ../src/selection-chemistry.cpp:3951 ../src/verbs.cpp:2909 +msgid "Fit Page to Drawing" +msgstr "Seite in Zeichnungsgröße einpassen" -#: ../src/text-chemistry.cpp:472 -msgid "Unflow flowed text" -msgstr "FlieĂźtext aufheben" +#: ../src/selection-chemistry.cpp:3972 ../src/verbs.cpp:2911 +msgid "Fit Page to Selection or Drawing" +msgstr "Seite in Auswahl oder ganze Zeichnung einpassen" -#: ../src/text-chemistry.cpp:484 -msgid "Select flowed text(s) to convert." -msgstr "FlieĂźtext zum Umwandeln auswählen." +#: ../src/selection-describer.cpp:113 +msgid "root" +msgstr "Wurzel" -#: ../src/text-chemistry.cpp:502 -msgid "The flowed text(s) must be visible in order to be converted." -msgstr "" -"Der FlieĂźtext muss sichtbar sein, um umgewandelt werden zu können." +# CHECK +#: ../src/selection-describer.cpp:115 ../src/widgets/ege-paint-def.cpp:67 +#: ../src/widgets/ege-paint-def.cpp:91 +msgid "none" +msgstr "keine" -#: ../src/text-chemistry.cpp:530 -msgid "Convert flowed text to text" -msgstr "FlieĂźtext in Text umwandeln" +#: ../src/selection-describer.cpp:127 +#, c-format +msgid "layer %s" +msgstr "Ebene %s" -#: ../src/text-chemistry.cpp:535 -msgid "No flowed text(s) to convert in the selection." -msgstr "Kein FlieĂźtext zum Umwandeln in der Auswahl." +#: ../src/selection-describer.cpp:129 +#, c-format +msgid "layer %s" +msgstr "Ebene %s" -#: ../src/text-editing.cpp:44 -msgid "You cannot edit cloned character data." -msgstr "Geklonte Zeichendaten können nicht editiert werden." +# !!! +#: ../src/selection-describer.cpp:140 +#, c-format +msgid "%s" +msgstr "%s" -#: ../src/tools-switch.cpp:91 +#: ../src/selection-describer.cpp:150 +#, c-format +msgid " in %s" +msgstr " in %s" + +#: ../src/selection-describer.cpp:152 #, fuzzy -msgid "" -"Click to Select and Transform objects, Drag to select many " -"objects." -msgstr "Klick wählt Knoten aus, Ziehen ordnet neu an." +msgid " hidden in definitions" +msgstr "Keine gemeinsamen Verlaufdefinitionen " -#: ../src/tools-switch.cpp:92 +#: ../src/selection-describer.cpp:154 +#, c-format +msgid " in group %s (%s)" +msgstr " in Gruppe %s (%s)" + +#: ../src/selection-describer.cpp:156 +#, fuzzy, c-format +msgid " in unnamed group (%s)" +msgstr " in Gruppe %s (%s)" + +#: ../src/selection-describer.cpp:158 +#, fuzzy, c-format +msgid " in %i parent (%s)" +msgid_plural " in %i parents (%s)" +msgstr[0] " in %i Elter (%s)" +msgstr[1] " in %i Eltern (%s)" + +#: ../src/selection-describer.cpp:161 +#, fuzzy, c-format +msgid " in %i layer" +msgid_plural " in %i layers" +msgstr[0] " in %i Ebene" +msgstr[1] " in %i Ebenen" + +#: ../src/selection-describer.cpp:172 +msgid "Convert symbol to group to edit" +msgstr "Symbol zum Bearbeiten in eine Gruppe konvertieren" + +#: ../src/selection-describer.cpp:176 #, fuzzy -msgid "Modify selected path points (nodes) directly." -msgstr "Ausgewählte Pfade vereinfachen (unnötige Punkte werden entfernt)" +msgid "Remove from symbols tray to edit symbol" +msgstr "Symbol zum Bearbeiten in eine Gruppe konvertieren" -#: ../src/tools-switch.cpp:93 -msgid "To tweak a path by pushing, select it and drag over it." -msgstr "" -"Um eine Pfadform zu justieren, selektieren Sie diesen und ziehen ĂĽber ihn." +#: ../src/selection-describer.cpp:180 +msgid "Use Shift+D to look up original" +msgstr "Umschalt+D zum Finden des Originals verwenden" + +#: ../src/selection-describer.cpp:184 +msgid "Use Shift+D to look up path" +msgstr "Umschalt+D zum Finden des Pfades verwenden" + +#: ../src/selection-describer.cpp:188 +msgid "Use Shift+D to look up frame" +msgstr "Umschalt+D zum Finden des Rahmens verwenden" -#: ../src/tools-switch.cpp:94 -msgid "" -"Drag, click or click and scroll to spray the selected " -"objects." -msgstr "" -"Ziehen, Klicken oder Klicken und Scrollen um das " -"ausgewählte Objekt zu sprĂĽhen." +#: ../src/selection-describer.cpp:207 +#, c-format +msgid "; %d filtered object " +msgid_plural "; %d filtered objects " +msgstr[0] "; %d gefiltertes Objekt" +msgstr[1] "; %d gefilterte Objekte" -#: ../src/tools-switch.cpp:95 -msgid "" -"Drag to create a rectangle. Drag controls to round corners and " -"resize. Click to select." -msgstr "" -"Ziehen erstellt ein Rechteck. Anfasser ziehen rundet Ecken ab " -"und ändert Größe. Klick wählt aus." +#: ../src/seltrans.cpp:471 ../src/ui/dialog/transformation.cpp:981 +msgid "Skew" +msgstr "Scheren" -#: ../src/tools-switch.cpp:96 -msgid "" -"Drag to create a 3D box. Drag controls to resize in " -"perspective. Click to select (with Ctrl+Alt for single faces)." -msgstr "" -"Ziehen erstellt eine 3D-Box. Anfasser ziehen fĂĽr " -"perspektivische Größenänderung. Klick wählt aus (mit Strg+Alt " -"fĂĽr einzelne Flächen)." +#: ../src/seltrans.cpp:483 +msgid "Set center" +msgstr "Mittelpunkt setzen" -#: ../src/tools-switch.cpp:97 -msgid "" -"Drag to create an ellipse. Drag controls to make an arc or " -"segment. Click to select." -msgstr "" -"Ziehen erstellt eine Ellipse. Anfasser ziehen erzeugt Bogen " -"oder Kreissegment. Klick wählt aus." +#: ../src/seltrans.cpp:558 +msgid "Stamp" +msgstr "Stempeln" -#: ../src/tools-switch.cpp:98 -msgid "" -"Drag to create a star. Drag controls to edit the star shape. " -"Click to select." -msgstr "" -"Ziehen erstellt einen Stern. Anfasser ziehen bearbeitet Form. " -"Klick wählt aus." +#: ../src/seltrans.cpp:711 +msgid "Reset center" +msgstr "Mittelpunkt zurĂĽcksetzen" -#: ../src/tools-switch.cpp:99 -msgid "" -"Drag to create a spiral. Drag controls to edit the spiral " -"shape. Click to select." +#: ../src/seltrans.cpp:938 ../src/seltrans.cpp:1035 +#, c-format +msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "" -"Ziehen erstellt eine Spirale. Anfasser ziehen bearbeitet die " -"Form. Klick wählt aus." +"Skalierung: %0.2f%% Ă— %0.2f%%; Höhen-/Breitenverhältnis mit Strg beibehalten" -#: ../src/tools-switch.cpp:100 -msgid "" -"Drag to create a freehand line. Shift appends to selected " -"path, Alt activates sketch mode." -msgstr "" -"Ziehen erzeugt eine Freihandlinie. Umschalt erweitert " -"ausgewählten Pfad. Alt wechselt in Skizzenmodus." +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1167 +#, c-format +msgid "Skew: %0.2f°; with Ctrl to snap angle" +msgstr "Scheren: %0.2f °; Winkel mit Strg einrasten" -#: ../src/tools-switch.cpp:101 -msgid "" -"Click or click and drag to start a path; with Shift to " -"append to selected path. Ctrl+click to create single dots (straight " -"line modes only)." -msgstr "" -"Klick oder Klick und Ziehen beginnt einen Pfad; Umschalt hängt an ausgewählten Pfad an. Strg+Klick erzeugt einzelne Punkte." +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1242 +#, c-format +msgid "Rotate: %0.2f°; with Ctrl to snap angle" +msgstr "Drehen: %0.2f°; Winkel mit Strg einrasten" -#: ../src/tools-switch.cpp:102 -msgid "" -"Drag to draw a calligraphic stroke; with Ctrl to track a guide " -"path. Arrow keys adjust width (left/right) and angle (up/down)." -msgstr "" -"Ziehen, um kalligrafische Linien zu zeichnen; Ctrl mit " -"FĂĽhrungspfad. Pfeiltasten verändern Breite (links/rechts) und Winkel " -"(hoch/runter)." +#: ../src/seltrans.cpp:1279 +#, c-format +msgid "Move center to %s, %s" +msgstr "Mittelpunkt verschieben nach %s, %s" -#: ../src/tools-switch.cpp:103 ../src/ui/tools/text-tool.cpp:1593 +#: ../src/seltrans.cpp:1433 +#, c-format msgid "" -"Click to select or create text, drag to create flowed text; " -"then type." +"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " +"with Shift to disable snapping" msgstr "" -"Zum Auswählen oder Erstellen eines Textobjekts klicken, Ziehen " -"um FlieĂźtext zu erstellen; anschlieĂźend schreiben." +"Verschieben um %s, %s; mit Strg nur horizontale/vertikale " +"Verschiebung; Umschalt deaktiviert Einrasten." -#: ../src/tools-switch.cpp:104 +#: ../src/seltrans-handles.cpp:9 msgid "" -"Drag or double click to create a gradient on selected objects, " -"drag handles to adjust gradients." +"Squeeze or stretch selection; with Ctrl to scale uniformly; " +"with Shift to scale around rotation center" msgstr "" -"Ziehen oder Doppelklicken erzeugt Farbverlauf fĂĽr gewählte " -"Objekte, Anfasser ziehen verändert Farbverlauf." +"Verzerren der Auswahl; Strg behält Höhen-/Breitenverhältnis " +"bei; Umschalt skaliert um den Rotationsmittelpunkt" -#: ../src/tools-switch.cpp:105 +#: ../src/seltrans-handles.cpp:10 msgid "" -"Drag or double click to create a mesh on selected objects, " -"drag handles to adjust meshes." +"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" msgstr "" -"Ziehen oder Doppelklicken erzeugt ein Gitter auf gewählten " -"Objekten, Anfasser ziehen um Gitter einzustellen." +"Skalieren der Auswahl; Strg behält Höhen-/Breitenverhältnis " +"bei; Umschalt skaliert um den Rotationsmittelpunkt" -#: ../src/tools-switch.cpp:106 +#: ../src/seltrans-handles.cpp:11 msgid "" -"Click or drag around an area to zoom in, Shift+click to " -"zoom out." +"Skew selection; with Ctrl to snap angle; with Shift to " +"skew around the opposite side" msgstr "" -"Klick oder Rechteck aufziehen vergrößert die Ansicht, " -"Umschalt+Klick verkleinert." - -#: ../src/tools-switch.cpp:107 -msgid "Drag to measure the dimensions of objects." -msgstr "Ziehen um die Dimensionen von Objekten zu messen." +"Scheren der Auswahl; Winkel mit Strg einrasten; Umschalt schert entlang der gegenĂĽberliegenden Seite" -#: ../src/tools-switch.cpp:108 ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/seltrans-handles.cpp:12 msgid "" -"Click to set fill, Shift+click to set stroke; drag to " -"average color in area; with Alt to pick inverse color; Ctrl+C " -"to copy the color under mouse to clipboard" +"Rotate selection; with Ctrl to snap angle; with Shift " +"to rotate around the opposite corner" msgstr "" -"Klick setzt FĂĽllfarbe, Umschalt+Klick setzt Linienfarbe; " -"Ziehen - Durchschnittsfarbe im Gebiet. Strg+C - Farbe nach " -"Zwischenablage" - -#: ../src/tools-switch.cpp:109 -msgid "Click and drag between shapes to create a connector." -msgstr "Klick und Ziehen zwischen Formen erzeugt einen Objektverbinder." +"Drehen der Auswahl; Winkel mit Strg einrasten; Umschalt " +"dreht entlang der gegenĂĽberliegenden Seite" -#: ../src/tools-switch.cpp:110 +#: ../src/seltrans-handles.cpp:13 msgid "" -"Click to paint a bounded area, Shift+click to union the new " -"fill with the current selection, Ctrl+click to change the clicked " -"object's fill and stroke to the current setting." +"Center of rotation and skewing: drag to reposition; scaling with " +"Shift also uses this center" msgstr "" -"Klick um ein abgegrenztes Gebiet fĂĽllen, Umschalt+Klick um die " -"neue FĂĽllung mit der aktuellen Auswahl zu vereinigen, Strg+Klick um " -"FĂĽllung und Kontur des geklickten Objekts zur aktuellen Einstellung zu " -"ändern." - -#: ../src/tools-switch.cpp:111 -msgid "Drag to erase." -msgstr "Ziehen um zu löschen." - -#: ../src/tools-switch.cpp:112 -msgid "Choose a subtool from the toolbar" -msgstr "Wählen Sie ein Werkzeug aus der Werkzeugleiste" - -#: ../src/trace/potrace/inkscape-potrace.cpp:512 -#: ../src/trace/potrace/inkscape-potrace.cpp:575 -msgid "Trace: %1. %2 nodes" -msgstr "Spur: %1. %2 Knoten" - -#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 -#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 -#: ../src/ui/dialog/pixelartdialog.cpp:370 -#: ../src/ui/dialog/pixelartdialog.cpp:402 -msgid "Select an image to trace" -msgstr "Bild zum Vektorisieren auswählen" - -#: ../src/trace/trace.cpp:94 -msgid "Select only one image to trace" -msgstr "Nur ein Bild zum Vektorisieren auswählen" - -#: ../src/trace/trace.cpp:112 -msgid "Select one image and one or more shapes above it" -msgstr "Wählen Sie ein Bild und eine oder mehrere Formen ĂĽber diesem" - -#: ../src/trace/trace.cpp:216 -msgid "Trace: No active desktop" -msgstr "Vektorisieren: Kein aktiver Desktop" - -#: ../src/trace/trace.cpp:313 -msgid "Invalid SIOX result" -msgstr "UngĂĽltiges SIOX-Ergebnis" - -#: ../src/trace/trace.cpp:406 -msgid "Trace: No active document" -msgstr "Vektorisieren: Kein Dokument aktiv" - -#: ../src/trace/trace.cpp:438 -msgid "Trace: Image has no bitmap data" -msgstr "Vektorisieren: Bild enthält keine Pixelinformation" - -#: ../src/trace/trace.cpp:445 -msgid "Trace: Starting trace..." -msgstr "Vektorisieren: Gestartet…" - -#. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 -msgid "Trace bitmap" -msgstr "Bitmap vektorisieren" +"Mittelpunkt fĂĽr Drehen und Scheren: Ziehen verschiebt den " +"Mittelpunkt; Skalieren mit Umschalt verwendet diesen Mittelpunkt" -#: ../src/trace/trace.cpp:552 +# !!! palettes, not swatches? +#: ../src/shortcuts.cpp:226 #, c-format -msgid "Trace: Done. %ld nodes created" -msgstr "Vektorisieren abgeschlossen: %ld Knoten erzeugt" - -#. check whether something is selected -#: ../src/ui/clipboard.cpp:261 -msgid "Nothing was copied." -msgstr "Es wurde nichts kopiert." - -#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 -#: ../src/ui/clipboard.cpp:606 -msgid "Nothing on the clipboard." -msgstr "Es ist nichts in der Zwischenablage." - -#: ../src/ui/clipboard.cpp:432 -msgid "Select object(s) to paste style to." -msgstr "Objekt(e) auswählen, um Stil darauf anzuwenden." +msgid "Keyboard directory (%s) is unavailable." +msgstr "Tastatur-verzeichnis (%s) nicht verfĂĽgbar." -#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 -msgid "No style on the clipboard." -msgstr "Kein Stil in der Zwischenablage." +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1295 +#: ../src/ui/dialog/export.cpp:1329 +msgid "Select a filename for exporting" +msgstr "Wählen Sie einen Namen fĂĽr die zu exportierende Datei" -#: ../src/ui/clipboard.cpp:485 -msgid "Select object(s) to paste size to." -msgstr "Objekt(e) auswählen, um Größe einzufĂĽgen." +#: ../src/shortcuts.cpp:370 +msgid "Select a file to import" +msgstr "Wählen Sie die zu importierende Datei" -#: ../src/ui/clipboard.cpp:492 -msgid "No size on the clipboard." -msgstr "Keine Größe in der Zwischenablage." +#: ../src/sp-anchor.cpp:125 +#, c-format +msgid "to %s" +msgstr "zu %s" -#: ../src/ui/clipboard.cpp:545 -msgid "Select object(s) to paste live path effect to." -msgstr "Objekt(e) auswählen, um den Pfad-Effekt einzufĂĽgen." +#: ../src/sp-anchor.cpp:129 +msgid "without URI" +msgstr "ohne URI" -#. no_effect: -#: ../src/ui/clipboard.cpp:570 -msgid "No effect on the clipboard." -msgstr "Kein Effekt in der Zwischenablage." +#: ../src/sp-ellipse.cpp:374 +msgid "Segment" +msgstr "Segment" -#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:617 -msgid "Clipboard does not contain a path." -msgstr "Die Zwischenablage enthält keinen Pfad." +#: ../src/sp-ellipse.cpp:376 +msgid "Arc" +msgstr "Bogen" -#. * -#. * Constructor -#. -#: ../src/ui/dialog/aboutbox.cpp:80 -msgid "About Inkscape" -msgstr "Informationen ĂĽber Inkscape" +#. Ellipse +#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 +#: ../src/ui/dialog/inkscape-preferences.cpp:403 +#: ../src/widgets/pencil-toolbar.cpp:187 +msgid "Ellipse" +msgstr "Ellipse" -# !!! -#: ../src/ui/dialog/aboutbox.cpp:91 -msgid "_Splash" -msgstr "_Splash" +#: ../src/sp-ellipse.cpp:383 +msgid "Circle" +msgstr "Kreis" -#: ../src/ui/dialog/aboutbox.cpp:95 -msgid "_Authors" -msgstr "_Autoren" +#. TRANSLATORS: "Flow region" is an area where text is allowed to flow +#: ../src/sp-flowregion.cpp:193 +#, fuzzy +msgid "Flow Region" +msgstr "FlieĂźtext-Bereich" -#: ../src/ui/dialog/aboutbox.cpp:97 -msgid "_Translators" -msgstr "Ăś_bersetzer" +#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the +#. * flow excluded region. flowRegionExclude in SVG 1.2: see +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. +#: ../src/sp-flowregion.cpp:343 +#, fuzzy +msgid "Flow Excluded Region" +msgstr "Ausgeschlossenen Bereich umflieĂźen" -#: ../src/ui/dialog/aboutbox.cpp:99 -msgid "_License" -msgstr "_Lizenz" +#: ../src/sp-flowtext.cpp:289 +msgid "Flowed Text" +msgstr "FlieĂźtext" -# Hier muss die deutsche Grafik, die bei der Inkscape-Info angezeigt werden soll, benannt werden! -#. TRANSLATORS: This is the filename of the `About Inkscape' picture in -#. the `screens' directory. Thus the translation of "about.svg" should be -#. the filename of its translated version, e.g. about.zh.svg for Chinese. -#. -#. N.B. about.svg changes once per release. (We should probably rename -#. the original to about-0.40.svg etc. as soon as we have a translation. -#. If we do so, then add an item to release-checklist saying that the -#. string here should be changed.) -#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the -#. native filename encoding... and the filename passed to sp_document_new -#. should be in UTF-*8.. -#: ../src/ui/dialog/aboutbox.cpp:166 -msgid "about.svg" -msgstr "about.svg" +#: ../src/sp-flowtext.cpp:291 +msgid "Linked Flowed Text" +msgstr "VerknĂĽpfter FlieĂźtext" -#. TRANSLATORS: Put here your name (and other national contributors') -#. one per line in the form of: name surname (email). Use \n for newline. -#: ../src/ui/dialog/aboutbox.cpp:416 -msgid "translator-credits" -msgstr "" -"Adib Taraben (theadib@gmail.com)\n" -"Alexander Senger (neutronenspalter@freenet.de)\n" -"Benedikt Roth (Benedikt.Roth@gmx.net)\n" -"Christian Meyer (chrisime@gnome.org)\n" -"Christian Neumair (chris@gnome-de.org)\n" -"Colin Marquardt (colin@marquardt-home.de)\n" -"Jörg MĂĽller (jfm@ram-brand.de)\n" -"Kai Lahmann (kailahmann@01019freenet.de)\n" -"Stefan Graubner (pflaumenmus92@gmx.net)\n" -"Stefan von Halenbach (vonHalenbach@users.sourceforge.net)\n" -"Uwe Schöler (uschoeler@yahoo.de)\n" -"Wolfram Strempfer (wolfram@strempfer.de)" +#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:357 +#: ../src/text-context.cpp:1597 +msgid " [truncated]" +msgstr "[abgestumpft}" -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:852 -msgid "Align" -msgstr "Ausrichten" +#: ../src/sp-flowtext.cpp:300 +#, fuzzy, c-format +msgid "(%d character%s)" +msgid_plural "(%d characters%s)" +msgstr[0] "Unicode-Zeichen:" +msgstr[1] "Unicode-Zeichen:" -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:853 -msgid "Distribute" -msgstr "Verteilen" +#: ../src/sp-guide.cpp:301 +msgid "Create Guides Around the Page" +msgstr "FĂĽhrungslinien an Seitenrändern erstellen" -#: ../src/ui/dialog/align-and-distribute.cpp:420 -msgid "Minimum horizontal gap (in px units) between bounding boxes" -msgstr "" -"Minimaler horizontaler Abstand (in px-Einheiten) zwischen Umrandungsboxen" +#: ../src/sp-guide.cpp:313 ../src/verbs.cpp:2474 +msgid "Delete All Guides" +msgstr "FĂĽhrungslinien löschen" -#. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:422 -msgctxt "Gap" -msgid "_H:" -msgstr "_H:" +#. Guide has probably been deleted and no longer has an attached namedview. +#: ../src/sp-guide.cpp:473 +msgid "Deleted" +msgstr "Gelöscht" -#: ../src/ui/dialog/align-and-distribute.cpp:430 -msgid "Minimum vertical gap (in px units) between bounding boxes" +#: ../src/sp-guide.cpp:482 +msgid "" +"Shift+drag to rotate, Ctrl+drag to move origin, Del to " +"delete" msgstr "" -"Minimaler vertikaler Abstand (in px-Einheiten) zwischen Umrandungsboxen" - -#. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 -msgctxt "Gap" -msgid "_V:" -msgstr "V:" - -#: ../src/ui/dialog/align-and-distribute.cpp:468 -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/connector-toolbar.cpp:411 -msgid "Remove overlaps" -msgstr "Ăśberlappungen entfernen" - -#: ../src/ui/dialog/align-and-distribute.cpp:499 -#: ../src/widgets/connector-toolbar.cpp:240 -msgid "Arrange connector network" -msgstr "Netzwerk von Objektverbindern anordnen" +"Umschalt+Ziehen rotiert, Strg+Ziehen bewegt Ursprung, Entf löscht." -#: ../src/ui/dialog/align-and-distribute.cpp:592 -msgid "Exchange Positions" -msgstr "Positionne verändern" +#: ../src/sp-guide.cpp:486 +#, c-format +msgid "vertical, at %s" +msgstr "Vertikale FĂĽhrungslinie bei %s" -#: ../src/ui/dialog/align-and-distribute.cpp:626 -msgid "Unclump" -msgstr "Entklumpen" +#: ../src/sp-guide.cpp:489 +#, c-format +msgid "horizontal, at %s" +msgstr "Horizontale FĂĽhrungslinie bei %s" -#: ../src/ui/dialog/align-and-distribute.cpp:698 -msgid "Randomize positions" -msgstr "Positionen zufällig machen" +#: ../src/sp-guide.cpp:494 +#, c-format +msgid "at %d degrees, through (%s,%s)" +msgstr "bei %d Grad, durch (%s, %s)" -#: ../src/ui/dialog/align-and-distribute.cpp:801 -msgid "Distribute text baselines" -msgstr "Textgrundlinien verteilen" +#: ../src/sp-image.cpp:624 +msgid "embedded" +msgstr "eingebettet" -#: ../src/ui/dialog/align-and-distribute.cpp:824 -msgid "Align text baselines" -msgstr "Grundlinien von Text ausrichten" +#: ../src/sp-image.cpp:632 +#, fuzzy, c-format +msgid "[bad reference]: %s" +msgstr "Einstellungen fĂĽr Sternwerkzeug" -#: ../src/ui/dialog/align-and-distribute.cpp:854 -msgid "Rearrange" -msgstr "Anordnen" +#: ../src/sp-image.cpp:633 +#, fuzzy, c-format +msgid "%d × %d: %s" +msgstr "Farbbild %d × %d: %s" -#: ../src/ui/dialog/align-and-distribute.cpp:856 -#: ../src/widgets/toolbox.cpp:1728 -msgid "Nodes" -msgstr "Knoten" +#: ../src/spiral-context.cpp:263 +msgid "Ctrl: snap angle" +msgstr "Strg: Winkel einrasten" -#: ../src/ui/dialog/align-and-distribute.cpp:870 -msgid "Relative to: " -msgstr "Relativ zu: " +#: ../src/spiral-context.cpp:265 +msgid "Alt: lock spiral radius" +msgstr "Alt: Radius der Spirale einrasten" -#: ../src/ui/dialog/align-and-distribute.cpp:871 -msgid "_Treat selection as group: " -msgstr "Auswahl als Gruppe behandeln:" +#: ../src/spiral-context.cpp:404 +#, c-format +msgid "" +"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" +"Spirale: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#. Align -#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2937 -#: ../src/verbs.cpp:2938 -msgid "Align right edges of objects to the left edge of the anchor" -msgstr "Rechte Objektkanten an linker Seite der Verankerung ausrichten" +#: ../src/spiral-context.cpp:425 +msgid "Create spiral" +msgstr "Spirale erstellen" -#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2939 -#: ../src/verbs.cpp:2940 -msgid "Align left edges" -msgstr "Linke Kanten ausrichten" +#: ../src/sp-item.cpp:940 ../src/verbs.cpp:213 +msgid "Object" +msgstr "Objekt" -#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2941 -#: ../src/verbs.cpp:2942 -msgid "Center on vertical axis" -msgstr "Vertikal zentrieren" +#: ../src/sp-item.cpp:957 +#, c-format +msgid "%s; clipped" +msgstr "%s; ausgeschnitten" -#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2943 -#: ../src/verbs.cpp:2944 -msgid "Align right sides" -msgstr "Rechte Kanten ausrichten" +#: ../src/sp-item.cpp:963 +#, c-format +msgid "%s; masked" +msgstr "%s, maskiert" -#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2945 -#: ../src/verbs.cpp:2946 -msgid "Align left edges of objects to the right edge of the anchor" -msgstr "Linke Objektkanten an rechter Seite der Verankerung ausrichten" +#: ../src/sp-item.cpp:973 +#, c-format +msgid "%s; filtered (%s)" +msgstr "%s; gefiltert (%s)" -#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2947 -#: ../src/verbs.cpp:2948 -msgid "Align bottom edges of objects to the top edge of the anchor" -msgstr "Objektunterkanten an Oberkante der Verankerung ausrichten" +#: ../src/sp-item.cpp:975 +#, c-format +msgid "%s; filtered" +msgstr "%s; gefiltert" -#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2949 -#: ../src/verbs.cpp:2950 -msgid "Align top edges" -msgstr "Oberkanten ausrichten" +#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:81 +#, fuzzy, c-format +msgid "of %d object" +msgstr "Gruppe von %d Objekt" -#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2951 -#: ../src/verbs.cpp:2952 -msgid "Center on horizontal axis" -msgstr "Zentren horizontal ausrichten" +#: ../src/sp-item-group.cpp:337 ../src/sp-switch.cpp:81 +#, fuzzy, c-format +msgid "of %d objects" +msgstr "Gruppe von %d Objekt" -#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2953 -#: ../src/verbs.cpp:2954 -msgid "Align bottom edges" -msgstr "Unterkanten ausrichten" +#: ../src/sp-line.cpp:126 +msgid "Line" +msgstr "Linie" -#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2955 -#: ../src/verbs.cpp:2956 -msgid "Align top edges of objects to the bottom edge of the anchor" -msgstr "Objektoberkanten an Unterkante der Verankerung ausrichten" +#: ../src/splivarot.cpp:82 +msgid "Intersection" +msgstr "Ăśberschneidung" -#: ../src/ui/dialog/align-and-distribute.cpp:909 -msgid "Align baseline anchors of texts horizontally" -msgstr "Grundlinien der Textelemente horizontal ausrichten" +#: ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 +msgid "Difference" +msgstr "Differenz" -#: ../src/ui/dialog/align-and-distribute.cpp:912 -msgid "Align baselines of texts" -msgstr "Grundlinien der Textelemente ausrichten" +#: ../src/splivarot.cpp:105 +msgid "Division" +msgstr "Division" -#: ../src/ui/dialog/align-and-distribute.cpp:917 -msgid "Make horizontal gaps between objects equal" -msgstr "Horizontale Abstände zwischen Objekten ausgleichen" +#: ../src/splivarot.cpp:110 +msgid "Cut path" +msgstr "Pfad zerschneiden" -#: ../src/ui/dialog/align-and-distribute.cpp:921 -msgid "Distribute left edges equidistantly" -msgstr "Linke Objektkanten gleichmäßig anordnen" +#: ../src/splivarot.cpp:333 +msgid "Select at least 2 paths to perform a boolean operation." +msgstr "" +"Wählen Sie mindestens 2 Pfade aus, um eine boole'sche Operation " +"auszufĂĽhren." -#: ../src/ui/dialog/align-and-distribute.cpp:924 -msgid "Distribute centers equidistantly horizontally" -msgstr "Objektmittelpunkten horizontal gleichmäßig anordnen" +#: ../src/splivarot.cpp:337 +msgid "Select at least 1 path to perform a boolean union." +msgstr "" +"Wählen Sie mindestens 1 Pfad aus, um eine boole'sche Vereinigung " +"auszufĂĽhren." -#: ../src/ui/dialog/align-and-distribute.cpp:927 -msgid "Distribute right edges equidistantly" -msgstr "Rechte Objektkanten gleichmäßig anordnen" +#: ../src/splivarot.cpp:343 +msgid "" +"Select exactly 2 paths to perform difference, division, or path cut." +msgstr "" +"Wählen Sie genau 2 Pfade aus, um eine Differenz-, XOR-, Dvisions- " +"oder Pfadzuschneideoperation auszufĂĽhren." -#: ../src/ui/dialog/align-and-distribute.cpp:931 -msgid "Make vertical gaps between objects equal" -msgstr "Vertikale Abstände zwischen Objekten ausgleichen" +#: ../src/splivarot.cpp:359 ../src/splivarot.cpp:374 +msgid "" +"Unable to determine the z-order of the objects selected for " +"difference, XOR, division, or path cut." +msgstr "" +"Die Z-Tiefe der ausgewählten Objekte konnte nicht fĂĽr die Differenz-, " +"XOR-, Division- oder Pfadzuschneideoperation ermittelt werden." -#: ../src/ui/dialog/align-and-distribute.cpp:935 -msgid "Distribute top edges equidistantly" -msgstr "Oberkanten der Objekte gleichmäßig anordnen" +#: ../src/splivarot.cpp:404 +msgid "" +"One of the objects is not a path, cannot perform boolean operation." +msgstr "" +"Eines der ausgewählten Objekte ist kein Pfad. Boole'sche Operation " +"wird nicht ausgefĂĽhrt." -#: ../src/ui/dialog/align-and-distribute.cpp:938 -msgid "Distribute centers equidistantly vertically" -msgstr "Objektmittelpunkten vertikal gleichmäßig anordnen" +#: ../src/splivarot.cpp:1153 +msgid "Select stroked path(s) to convert stroke to path." +msgstr "" +"Pfade mit Kontur auswählen, um die Konturlinie in einen Pfad " +"umzuwandeln." -#: ../src/ui/dialog/align-and-distribute.cpp:941 -msgid "Distribute bottom edges equidistantly" -msgstr "Unterkanten gleichmäßig anordnen" +#: ../src/splivarot.cpp:1506 +msgid "Convert stroke to path" +msgstr "Kontur in Pfad umwandeln" -#: ../src/ui/dialog/align-and-distribute.cpp:946 -msgid "Distribute baseline anchors of texts horizontally" -msgstr "Grundlinien von Textelementen horizontal verteilen" +#. TRANSLATORS: "to outline" means "to convert stroke to path" +#: ../src/splivarot.cpp:1509 +msgid "No stroked paths in the selection." +msgstr "Keine Pfade mit Konturlinien in der Auswahl." -#: ../src/ui/dialog/align-and-distribute.cpp:949 -msgid "Distribute baselines of texts vertically" -msgstr "Grundlinien von Textelementen vertikal verteilen" +#: ../src/splivarot.cpp:1580 +msgid "Selected object is not a path, cannot inset/outset." +msgstr "" +"Ausgewähltes Objekt ist kein Pfad - kann es nicht schrumpfen/" +"erweitern." -#: ../src/ui/dialog/align-and-distribute.cpp:955 -#: ../src/widgets/connector-toolbar.cpp:373 -msgid "Nicely arrange selected connector network" -msgstr "Das gewählte Netzwerk von Objektverbindern gefällig anordnen" +#: ../src/splivarot.cpp:1676 ../src/splivarot.cpp:1741 +msgid "Create linked offset" +msgstr "Verbundenen Versatz erzeugen" -#: ../src/ui/dialog/align-and-distribute.cpp:958 -msgid "Exchange positions of selected objects - selection order" -msgstr "Ă„ndern der Position der ausgewählten Objekte - Auswahlanordnung" +#: ../src/splivarot.cpp:1677 ../src/splivarot.cpp:1742 +msgid "Create dynamic offset" +msgstr "Dynamischen Versatz erzeugen" -#: ../src/ui/dialog/align-and-distribute.cpp:961 -msgid "Exchange positions of selected objects - stacking order" -msgstr "Ă„ndern der Position der ausgewählten Objekte - Stapelanordnung" +#: ../src/splivarot.cpp:1767 +msgid "Select path(s) to inset/outset." +msgstr "Pfad zum Schrumpfen/Erweitern auswählen." -#: ../src/ui/dialog/align-and-distribute.cpp:964 -msgid "Exchange positions of selected objects - clockwise rotate" -msgstr "" -"Ă„ndern der Position der ausgewählten Objekte - im Uhrzeigersinn rotierend" +#: ../src/splivarot.cpp:1980 +msgid "Outset path" +msgstr "Pfad erweitern" -#: ../src/ui/dialog/align-and-distribute.cpp:969 -msgid "Randomize centers in both dimensions" -msgstr "Mittelpunkte von Objekten zufällig horizontal und vertikal verteilen" +#: ../src/splivarot.cpp:1980 +msgid "Inset path" +msgstr "Pfad schrumpfen" -#: ../src/ui/dialog/align-and-distribute.cpp:972 -msgid "Unclump objects: try to equalize edge-to-edge distances" -msgstr "Objekte entklumpen: Versuche, die Zwischenabstände anzugleichen" +#: ../src/splivarot.cpp:1982 +msgid "No paths to inset/outset in the selection." +msgstr "Die Auswahl enthält keine Pfade zum Schrumpfen/Erweitern." -#: ../src/ui/dialog/align-and-distribute.cpp:977 -msgid "" -"Move objects as little as possible so that their bounding boxes do not " -"overlap" -msgstr "" -"Objekte gerade so weit bewegen, dass sich ihre Umrandungsboxen nicht mehr " -"ĂĽberlappen" +#: ../src/splivarot.cpp:2144 +msgid "Simplifying paths (separately):" +msgstr "Vereinfache Pfade (getrennt):" -#: ../src/ui/dialog/align-and-distribute.cpp:985 -msgid "Align selected nodes to a common horizontal line" -msgstr "Ausgewählte Knoten horizontal ausrichten" +#: ../src/splivarot.cpp:2146 +msgid "Simplifying paths:" +msgstr "Vereinfache Pfade:" -#: ../src/ui/dialog/align-and-distribute.cpp:988 -msgid "Align selected nodes to a common vertical line" -msgstr "Ausgewählte Knoten vertikal ausrichten" +#: ../src/splivarot.cpp:2183 +#, c-format +msgid "%s %d of %d paths simplified..." +msgstr "%s %d von %d Pfaden vereinfacht…" -#: ../src/ui/dialog/align-and-distribute.cpp:991 -msgid "Distribute selected nodes horizontally" -msgstr "Ausgewählte Knoten horizontal verteilen" +#: ../src/splivarot.cpp:2196 +#, c-format +msgid "%d paths simplified." +msgstr "%d Pfade vereinfacht." -#: ../src/ui/dialog/align-and-distribute.cpp:994 -msgid "Distribute selected nodes vertically" -msgstr "Ausgewählte Knoten vertikal verteilen" +#: ../src/splivarot.cpp:2210 +msgid "Select path(s) to simplify." +msgstr "Pfad zum Vereinfachen auswählen." -#. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:999 -msgid "Last selected" -msgstr "Zuletzt gewählt" +#: ../src/splivarot.cpp:2226 +msgid "No paths to simplify in the selection." +msgstr "Die Auswahl enthält keine Pfade zum Vereinfachen." -#: ../src/ui/dialog/align-and-distribute.cpp:1000 -msgid "First selected" -msgstr "Zuerst gewählt" +#: ../src/sp-lpe-item.cpp:249 +msgid "An exception occurred during execution of the Path Effect." +msgstr "Beim ausfĂĽhren des Pfad-Effektes ist ein Fehler aufgetreten." -#: ../src/ui/dialog/align-and-distribute.cpp:1001 -msgid "Biggest object" -msgstr "Größtes Objekt" +#: ../src/sp-offset.cpp:344 +msgid "Linked Offset" +msgstr "Verbundener Versatz" -#: ../src/ui/dialog/align-and-distribute.cpp:1002 -msgid "Smallest object" -msgstr "Kleinstes Objekt" +#: ../src/sp-offset.cpp:346 +msgid "Dynamic Offset" +msgstr "Dynamischer Versatz" -#: ../src/ui/dialog/align-and-distribute.cpp:1005 -msgid "Selection Area" +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:352 +#, c-format +msgid "%s by %f pt" msgstr "" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 -msgid "Edit profile" -msgstr "Profil bearbeiten" +#: ../src/sp-offset.cpp:353 +msgid "outset" +msgstr "erweitert" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 -msgid "Profile name:" -msgstr "Profilname:" +#: ../src/sp-offset.cpp:353 +msgid "inset" +msgstr "geschrumpft" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 -msgid "Save" -msgstr "_Speichern" +#: ../src/sp-path.cpp:70 +msgid "Path" +msgstr "Pfad" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 -msgid "Add profile" -msgstr "Profil hinzufĂĽgen" +#: ../src/sp-path.cpp:95 +#, fuzzy, c-format +msgid ", path effect: %s" +msgstr "Pfad-Effekt hinzufĂĽgen" -#: ../src/ui/dialog/clonetiler.cpp:112 -msgid "_Symmetry" -msgstr "_Symmetrie" +#: ../src/sp-path.cpp:98 +#, fuzzy, c-format +msgid "%i node%s" +msgstr "Knoten verbinden" -#. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/ui/dialog/clonetiler.cpp:124 -msgid "P1: simple translation" -msgstr "P1: einfache Verschiebung" +#: ../src/sp-path.cpp:98 +#, fuzzy, c-format +msgid "%i nodes%s" +msgstr "Knoten verbinden" -#: ../src/ui/dialog/clonetiler.cpp:125 -msgid "P2: 180° rotation" -msgstr "P2: 180° Rotation" +# !!! +#: ../src/sp-polygon.cpp:182 +msgid "Polygon" +msgstr "Polygon" -#: ../src/ui/dialog/clonetiler.cpp:126 -msgid "PM: reflection" -msgstr "PM: Reflektion" +# !!! +#: ../src/sp-polyline.cpp:131 +msgid "Polyline" +msgstr "Linienzug" -#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. -#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/ui/dialog/clonetiler.cpp:129 -msgid "PG: glide reflection" -msgstr "PG: gleitende Reflektion" +#: ../src/spray-context.cpp:188 ../src/tweak-context.cpp:170 +#, c-format +msgid "%i object selected" +msgid_plural "%i objects selected" +msgstr[0] "%i Objekt ausgewählt" +msgstr[1] "%i Objekte ausgewählt" -#: ../src/ui/dialog/clonetiler.cpp:130 -msgid "CM: reflection + glide reflection" -msgstr "CM: Reflektion + gleitende Reflektion" +#: ../src/spray-context.cpp:190 ../src/tweak-context.cpp:172 +msgid "Nothing selected" +msgstr "Es wurde nichts gewählt" -#: ../src/ui/dialog/clonetiler.cpp:131 -msgid "PMM: reflection + reflection" -msgstr "PMM: Reflektion + Reflektion" +#: ../src/spray-context.cpp:195 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray copies of the initial " +"selection." +msgstr "" +"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen von Kopien " +"der ersten Auswahl." -#: ../src/ui/dialog/clonetiler.cpp:132 -msgid "PMG: reflection + 180° rotation" -msgstr "PMG: Reflektion + 180° Rotation" +#: ../src/spray-context.cpp:198 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray clones of the initial " +"selection." +msgstr "" +"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen von Klonen " +"der ersten Auswahl." -#: ../src/ui/dialog/clonetiler.cpp:133 -msgid "PGG: glide reflection + 180° rotation" -msgstr "PGG: gleitende Reflektion + 180° Rotation" +#: ../src/spray-context.cpp:201 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray in a single path of the " +"initial selection." +msgstr "" +"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen in einen " +"Einzelpfad der ersten Auswahl." -#: ../src/ui/dialog/clonetiler.cpp:134 -msgid "CMM: reflection + reflection + 180° rotation" -msgstr "CMM: Reflektion + Reflektion + 180° Rotation" +#: ../src/spray-context.cpp:641 +msgid "Nothing selected! Select objects to spray." +msgstr "Nichts ausgewählt! Wähle Objekte zum SprĂĽhen aus." -#: ../src/ui/dialog/clonetiler.cpp:135 -msgid "P4: 90° rotation" -msgstr "P4: 90° Rotation" +#: ../src/spray-context.cpp:716 ../src/widgets/spray-toolbar.cpp:178 +msgid "Spray with copies" +msgstr "SprĂĽhen mit Kopien" -#: ../src/ui/dialog/clonetiler.cpp:136 -msgid "P4M: 90° rotation + 45° reflection" -msgstr "P4M: 90° Rotation + 45° Reflektion" +#: ../src/spray-context.cpp:720 ../src/widgets/spray-toolbar.cpp:185 +msgid "Spray with clones" +msgstr "SprĂĽhen mit Klonen" -#: ../src/ui/dialog/clonetiler.cpp:137 -msgid "P4G: 90° rotation + 90° reflection" -msgstr "P4G: 90° Rotation + 90° Reflektion" +#: ../src/spray-context.cpp:724 +msgid "Spray in single path" +msgstr "SprĂĽhen in einen einzelnen Pfad" -#: ../src/ui/dialog/clonetiler.cpp:138 -msgid "P3: 120° rotation" -msgstr "P3: 120° Rotation" +#. Rectangle +#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:393 +msgid "Rectangle" +msgstr "Rechteck" -#: ../src/ui/dialog/clonetiler.cpp:139 -msgid "P31M: reflection + 120° rotation, dense" -msgstr "P31M: Reflektion + 120° Rotation, dicht" +#. Spiral +#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../share/extensions/gcodetools_area.inx.h:11 +msgid "Spiral" +msgstr "Spirale" -#: ../src/ui/dialog/clonetiler.cpp:140 -msgid "P3M1: reflection + 120° rotation, sparse" -msgstr "P3M1: Reflektion + 120° Rotation, dĂĽnn" +#. TRANSLATORS: since turn count isn't an integer, please adjust the +#. string as needed to deal with an localized plural forms. +#: ../src/sp-spiral.cpp:236 +#, fuzzy, c-format +msgid "with %3f turns" +msgstr "Spirale mit %3f Windungen" -#: ../src/ui/dialog/clonetiler.cpp:141 -msgid "P6: 60° rotation" -msgstr "P6: 60° Rotation" +#. Star +#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:407 +#: ../src/widgets/star-toolbar.cpp:477 +msgid "Star" +msgstr "Stern" -#: ../src/ui/dialog/clonetiler.cpp:142 -msgid "P6M: reflection + 60° rotation" -msgstr "P6M: Reflektion + 60° Rotation" +#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:470 +msgid "Polygon" +msgstr "Polygon" -#: ../src/ui/dialog/clonetiler.cpp:162 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "Eine der 17 Symmetrie-Gruppen zum Kacheln auswählen" +#. while there will never be less than 3 vertices, we still need to +#. make calls to ngettext because the pluralization may be different +#. for various numbers >=3. The singular form is used as the index. +#: ../src/sp-star.cpp:264 +#, fuzzy, c-format +msgid "with %d vertex" +msgstr "Stern mit %d Eckpunkt" -#: ../src/ui/dialog/clonetiler.cpp:180 -msgid "S_hift" -msgstr "Versc_hiebung" +#: ../src/sp-star.cpp:264 +#, fuzzy, c-format +msgid "with %d vertices" +msgstr "Stern mit %d Eckpunkt" -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/ui/dialog/clonetiler.cpp:190 -#, no-c-format -msgid "Shift X:" -msgstr "Verschiebung X:" +#: ../src/sp-switch.cpp:75 +msgid "Conditional Group" +msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:198 -#, no-c-format -msgid "Horizontal shift per row (in % of tile width)" -msgstr "Horizontale Verschiebung pro Reihe (in % der Kachelbreite)" +#: ../src/sp-text.cpp:330 ../src/verbs.cpp:328 +#: ../share/extensions/lorem_ipsum.inx.h:8 +#: ../share/extensions/replace_font.inx.h:11 +#: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 +#: ../share/extensions/text_extract.inx.h:14 +#: ../share/extensions/text_flipcase.inx.h:2 +#: ../share/extensions/text_lowercase.inx.h:2 +#: ../share/extensions/text_merge.inx.h:16 +#: ../share/extensions/text_randomcase.inx.h:2 +#: ../share/extensions/text_sentencecase.inx.h:2 +#: ../share/extensions/text_titlecase.inx.h:2 +#: ../share/extensions/text_uppercase.inx.h:2 +msgid "Text" +msgstr "Text" -#: ../src/ui/dialog/clonetiler.cpp:206 -#, no-c-format -msgid "Horizontal shift per column (in % of tile width)" -msgstr "Horizontale Verschiebung pro Spalte (in % der Kachelbreite)" +#. TRANSLATORS: For description of font with no name. +#: ../src/sp-text.cpp:347 +msgid "<no name found>" +msgstr "<kein Name gefunden>" -#: ../src/ui/dialog/clonetiler.cpp:212 -msgid "Randomize the horizontal shift by this percentage" -msgstr "Zufällige horizontale Verschiebung um diesen Prozentsatz" +#: ../src/sp-text.cpp:361 +#, fuzzy, c-format +msgid "on path%s (%s, %s)" +msgstr "Text an Pfad%s (%s, %s)" -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/ui/dialog/clonetiler.cpp:222 -#, no-c-format -msgid "Shift Y:" -msgstr "Verschiebung X:" +#: ../src/sp-text.cpp:362 +#, fuzzy, c-format +msgid "%s (%s, %s)" +msgstr "Text%s (%s, %s)" -#: ../src/ui/dialog/clonetiler.cpp:230 -#, no-c-format -msgid "Vertical shift per row (in % of tile height)" -msgstr "Vertikale Verschiebung pro Reihe (in % der Kachelhöhe)" +#: ../src/sp-tref.cpp:237 +#, fuzzy +msgid "Cloned Character Data" +msgstr "Geklonte Zeichendaten%s%s" -#: ../src/ui/dialog/clonetiler.cpp:238 -#, no-c-format -msgid "Vertical shift per column (in % of tile height)" -msgstr "Vertikale Verschiebung pro Spalte (in % der Kachelhöhe)" +#: ../src/sp-tref.cpp:253 +msgid " from " +msgstr " von " -#: ../src/ui/dialog/clonetiler.cpp:245 -msgid "Randomize the vertical shift by this percentage" -msgstr "Zufällige vertikale Verschiebung um diesen Prozentsatz" +#: ../src/sp-tref.cpp:259 ../src/sp-use.cpp:244 +msgid "[orphaned]" +msgstr "[verwaist]" -#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 -msgid "Exponent:" -msgstr "Exponent:" +#: ../src/sp-tspan.cpp:220 +#, fuzzy +msgid "Text Span" +msgstr "Text-anker" -#: ../src/ui/dialog/clonetiler.cpp:260 -msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" -msgstr "" -"Reihenabstände bleiben gleich (1), laufen zusammen (<1) oder auseinander (>1)" +#: ../src/sp-use.cpp:213 +msgid "Symbol" +msgstr "Symbol" -#: ../src/ui/dialog/clonetiler.cpp:267 -msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" +#: ../src/sp-use.cpp:216 +msgid "Clone" +msgstr "Klone" + +#: ../src/sp-use.cpp:222 +#, c-format +msgid "called %s" msgstr "" -"Spaltenabstände bleiben gleich (1), laufen zusammen (<1) oder auseinander " -"(>1)" -#. TRANSLATORS: "Alternate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 -#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 -#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 -msgid "Alternate:" -msgstr "Abwechseln:" +#. TRANSLATORS: Used for statusbar description for long chains: +#. * "Clone of: Clone of: ... in Layer 1". +#: ../src/sp-use.cpp:230 +msgid "..." +msgstr "…" -#: ../src/ui/dialog/clonetiler.cpp:281 -msgid "Alternate the sign of shifts for each row" -msgstr "Vorzeichenumkehrung der Verschiebungen fĂĽr jede Reihe" +#: ../src/sp-use.cpp:239 +#, fuzzy, c-format +msgid "of: %s" +msgstr "Fehler: %s" -#: ../src/ui/dialog/clonetiler.cpp:286 -msgid "Alternate the sign of shifts for each column" -msgstr "Vorzeichenumkehrung der Verschiebungen fĂĽr jede Spalte" +#: ../src/star-context.cpp:277 +msgid "Ctrl: snap angle; keep rays radial" +msgstr "Strg: Winkel einrasten; Strahlen bleiben radial ausgerichtet" -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 -#: ../src/ui/dialog/clonetiler.cpp:533 -msgid "Cumulate:" -msgstr "Anhäufen:" +#: ../src/star-context.cpp:423 +#, c-format +msgid "" +"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" +"Polygon: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#: ../src/ui/dialog/clonetiler.cpp:299 -msgid "Cumulate the shifts for each row" -msgstr "Verschiebungen fĂĽr sukzessive Reihen aufaddieren" +#: ../src/star-context.cpp:424 +#, c-format +msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" +"Stern: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#: ../src/ui/dialog/clonetiler.cpp:304 -msgid "Cumulate the shifts for each column" -msgstr "Verschiebungen fĂĽr sukzessive Spalten aufaddieren" +#: ../src/star-context.cpp:452 +msgid "Create star" +msgstr "Stern erstellen" -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:311 -msgid "Exclude tile:" -msgstr "Kachel ausschlieĂźen:" +#: ../src/text-chemistry.cpp:94 +msgid "Select a text and a path to put text on path." +msgstr "Einen Text und Pfad auswählen, um Text an Pfad auszurichten." + +#: ../src/text-chemistry.cpp:99 +msgid "" +"This text object is already put on a path. Remove it from the path " +"first. Use Shift+D to look up its path." +msgstr "" +"Dieses Textobjekt ist schon einem Pfad zugewiesen. Bitte erst vom " +"Pfad trennen. Umschalt+D zeigt den Pfad an." + +#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it +#: ../src/text-chemistry.cpp:105 +msgid "" +"You cannot put text on a rectangle in this version. Convert rectangle to " +"path first." +msgstr "" +"FlieĂźtext auf einem Rechteck in dieser Version noch nicht unterstĂĽtzt. " +"Rechteck vorerst in einen Pfad umwandeln." -#: ../src/ui/dialog/clonetiler.cpp:317 -msgid "Exclude tile height in shift" -msgstr "Kachelhöhe in Verschiebung nicht einberechnen" +#: ../src/text-chemistry.cpp:115 +msgid "The flowed text(s) must be visible in order to be put on a path." +msgstr "" +"Der FlieĂźtext muss sichtbar sein, um einem Pfad zugewiesen zu werden." -#: ../src/ui/dialog/clonetiler.cpp:322 -msgid "Exclude tile width in shift" -msgstr "Kachelbreite in Verschiebung nicht einberechnen" +#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2496 +msgid "Put text on path" +msgstr "Text an Pfad ausrichten" -#: ../src/ui/dialog/clonetiler.cpp:331 -msgid "Sc_ale" -msgstr "_MaĂźstab" +#: ../src/text-chemistry.cpp:197 +msgid "Select a text on path to remove it from path." +msgstr "Einen Text-Pfad zum Trennen vom Pfad auswählen." -#: ../src/ui/dialog/clonetiler.cpp:339 -msgid "Scale X:" -msgstr "X-Skalierung:" +#: ../src/text-chemistry.cpp:218 +msgid "No texts-on-paths in the selection." +msgstr "Kein Text-Pfad in der Auswahl vorhanden." -#: ../src/ui/dialog/clonetiler.cpp:347 -#, no-c-format -msgid "Horizontal scale per row (in % of tile width)" -msgstr "Horizontale Skalierung pro Reihe (in % der Kachelbreite)" +#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2498 +msgid "Remove text from path" +msgstr "Text wird von Pfad getrennt" -#: ../src/ui/dialog/clonetiler.cpp:355 -#, no-c-format -msgid "Horizontal scale per column (in % of tile width)" -msgstr "Horizontale Skalierung pro Spalte (in % der Kachelbreite)" +#: ../src/text-chemistry.cpp:261 ../src/text-chemistry.cpp:282 +msgid "Select text(s) to remove kerns from." +msgstr "Text auswählen, um Kerning zu entfernen." -#: ../src/ui/dialog/clonetiler.cpp:361 -msgid "Randomize the horizontal scale by this percentage" -msgstr "Horizontale Skalierung um diesen Prozentsatz zufällig verändern" +#: ../src/text-chemistry.cpp:285 +msgid "Remove manual kerns" +msgstr "Manuelle Unterschneidungen entfernen" -#: ../src/ui/dialog/clonetiler.cpp:369 -msgid "Scale Y:" -msgstr "Y-Skalierung:" +#: ../src/text-chemistry.cpp:305 +msgid "" +"Select a text and one or more paths or shapes to flow text " +"into frame." +msgstr "" +"Einen Text und Pfad oder Form zum Erzeugen eines " +"FlieĂźtextes auswählen." -#: ../src/ui/dialog/clonetiler.cpp:377 -#, no-c-format -msgid "Vertical scale per row (in % of tile height)" -msgstr "Vertikale Skalierung pro Reihe (in % der Kachelhöhe)" +#: ../src/text-chemistry.cpp:375 +msgid "Flow text into shape" +msgstr "Text in Form flieĂźen lassen" -#: ../src/ui/dialog/clonetiler.cpp:385 -#, no-c-format -msgid "Vertical scale per column (in % of tile height)" -msgstr "Vertikale Skalierung pro Spalte (in % der Kachelhöhe)" +#: ../src/text-chemistry.cpp:397 +msgid "Select a flowed text to unflow it." +msgstr "FlieĂźtext zum Aufheben auswählen." -#: ../src/ui/dialog/clonetiler.cpp:391 -msgid "Randomize the vertical scale by this percentage" -msgstr "Vertikale Skalierung um diesen Prozentsatz zufällig verändern" +#: ../src/text-chemistry.cpp:471 +msgid "Unflow flowed text" +msgstr "FlieĂźtext aufheben" -#: ../src/ui/dialog/clonetiler.cpp:405 -msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" -msgstr "" -"Reihenabstände bleiben gleich (1), laufen zusammen (<1) oder vergrößern sich " -"(>1)" +#: ../src/text-chemistry.cpp:483 +msgid "Select flowed text(s) to convert." +msgstr "FlieĂźtext zum Umwandeln auswählen." -#: ../src/ui/dialog/clonetiler.cpp:411 -msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" +#: ../src/text-chemistry.cpp:501 +msgid "The flowed text(s) must be visible in order to be converted." msgstr "" -"Spaltenabstände bleiben gleich (1), laufen zusammen (<1) oder vergrößern " -"sich (>1)" +"Der FlieĂźtext muss sichtbar sein, um umgewandelt werden zu können." -#: ../src/ui/dialog/clonetiler.cpp:419 -msgid "Base:" -msgstr "Basis:" +#: ../src/text-chemistry.cpp:529 +msgid "Convert flowed text to text" +msgstr "FlieĂźtext in Text umwandeln" -#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 +#: ../src/text-chemistry.cpp:534 +msgid "No flowed text(s) to convert in the selection." +msgstr "Kein FlieĂźtext zum Umwandeln in der Auswahl." + +#: ../src/text-context.cpp:390 +msgid "Click to edit the text, drag to select part of the text." +msgstr "" +"Klick zum Ă„ndern des Textes, Ziehen, um einen Teil des Textes " +"zu ändern." + +#: ../src/text-context.cpp:392 msgid "" -"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" +"Click to edit the flowed text, drag to select part of the text." msgstr "" -"Basis einer logarithmischen Spirale: 0 - nicht benutzt, (<1) - konvergent, " -"(>1) - divergent" +"Klick zum Ă„ndern des FlieĂźtextes, Ziehen, um einen Teil des " +"Textes zu ändern." -#: ../src/ui/dialog/clonetiler.cpp:445 -msgid "Alternate the sign of scales for each row" -msgstr "Vorzeichen der Skalierungen fĂĽr jede Reihe umkehren" +#: ../src/text-context.cpp:446 +msgid "Create text" +msgstr "Text erstellen" -#: ../src/ui/dialog/clonetiler.cpp:450 -msgid "Alternate the sign of scales for each column" -msgstr "Vorzeichen der Skalierungen fĂĽr jede Spalte umkehren" +#: ../src/text-context.cpp:471 +msgid "Non-printable character" +msgstr "Nicht druckbares Zeichen" -#: ../src/ui/dialog/clonetiler.cpp:463 -msgid "Cumulate the scales for each row" -msgstr "Skalierung fĂĽr sukzessive Reihen aufaddieren" +#: ../src/text-context.cpp:486 +msgid "Insert Unicode character" +msgstr "Unicode-Zeichen einfĂĽgen" -#: ../src/ui/dialog/clonetiler.cpp:468 -msgid "Cumulate the scales for each column" -msgstr "Skalierung fĂĽr sukzessive Spalten aufaddieren" +#: ../src/text-context.cpp:521 +#, c-format +msgid "Unicode (Enter to finish): %s: %s" +msgstr "Unicode (Eingabe zum Abschliessen): %s: %s" -#: ../src/ui/dialog/clonetiler.cpp:477 -msgid "_Rotation" -msgstr "_Rotation" +#: ../src/text-context.cpp:523 ../src/text-context.cpp:830 +msgid "Unicode (Enter to finish): " +msgstr "Unicode (Eingabe zum Abschliessen): " -#: ../src/ui/dialog/clonetiler.cpp:485 -msgid "Angle:" -msgstr "Winkel:" +#: ../src/text-context.cpp:606 +#, c-format +msgid "Flowed text frame: %s × %s" +msgstr "FlieĂźtext-Rahmen: %s Ă— %s" -#: ../src/ui/dialog/clonetiler.cpp:493 -#, no-c-format -msgid "Rotate tiles by this angle for each row" -msgstr "Kacheln um diesen Winkel fĂĽr jede Reihe drehen" +#: ../src/text-context.cpp:664 +msgid "Type text; Enter to start new line." +msgstr "Text schreiben; Eingabe, um eine neue Zeile zu beginnen." -#: ../src/ui/dialog/clonetiler.cpp:501 -#, no-c-format -msgid "Rotate tiles by this angle for each column" -msgstr "Kacheln um diesen Winkel fĂĽr jede Spalte drehen" +#: ../src/text-context.cpp:675 +msgid "Flowed text is created." +msgstr "FlieĂźtext wird erzeugt." -#: ../src/ui/dialog/clonetiler.cpp:507 -msgid "Randomize the rotation angle by this percentage" -msgstr "Rotationswinkel um diesen Prozentsatz zufällig verändern" +#: ../src/text-context.cpp:677 +msgid "Create flowed text" +msgstr "FlieĂźtext erstellen" -#: ../src/ui/dialog/clonetiler.cpp:521 -msgid "Alternate the rotation direction for each row" -msgstr "Vorzeichenumkehr des Rotationsfaktors bei jeder Reihe" +#: ../src/text-context.cpp:679 +msgid "" +"The frame is too small for the current font size. Flowed text not " +"created." +msgstr "" +"Der Rahmen ist zu klein fĂĽr die aktuelle Schriftgröße. Der FlieĂźtext " +"wurde nicht erzeugt." -#: ../src/ui/dialog/clonetiler.cpp:526 -msgid "Alternate the rotation direction for each column" -msgstr "Vorzeichenumkehr des Rotationsfaktors bei jeder Spalte" +#: ../src/text-context.cpp:815 +msgid "No-break space" +msgstr "Untrennbares Leerzeichen" -#: ../src/ui/dialog/clonetiler.cpp:539 -msgid "Cumulate the rotation for each row" -msgstr "Rotation fĂĽr sukzessive Reihen aufaddieren" +#: ../src/text-context.cpp:817 +msgid "Insert no-break space" +msgstr "Untrennbares Leerzeichen einfĂĽgen" -#: ../src/ui/dialog/clonetiler.cpp:544 -msgid "Cumulate the rotation for each column" -msgstr "Rotation fĂĽr sukzessive Spalten aufaddieren" +#: ../src/text-context.cpp:854 +msgid "Make bold" +msgstr "Fett" -#: ../src/ui/dialog/clonetiler.cpp:553 -msgid "_Blur & opacity" -msgstr "_Weichzeichner und Deckkraft" +#: ../src/text-context.cpp:872 +msgid "Make italic" +msgstr "Kursiv" -#: ../src/ui/dialog/clonetiler.cpp:562 -msgid "Blur:" -msgstr "Weichzeichner:" +#: ../src/text-context.cpp:911 +msgid "New line" +msgstr "Neue Zeile" -#: ../src/ui/dialog/clonetiler.cpp:568 -msgid "Blur tiles by this percentage for each row" -msgstr "Weichzeichnen der Kacheln um diesen Prozentsatz fĂĽr jede Reihe" +#: ../src/text-context.cpp:953 +msgid "Backspace" +msgstr "RĂĽckschritt" -#: ../src/ui/dialog/clonetiler.cpp:574 -msgid "Blur tiles by this percentage for each column" -msgstr "Weichzeichnen der Kacheln um diesen Prozentsatz fĂĽr jede Spalte" +#: ../src/text-context.cpp:1009 +msgid "Kern to the left" +msgstr "Unterschneidung nach links" -#: ../src/ui/dialog/clonetiler.cpp:580 -msgid "Randomize the tile blur by this percentage" -msgstr "Kachel-Weichzeichnung zufällig um diesen Prozentsatz verändern" +#: ../src/text-context.cpp:1034 +msgid "Kern to the right" +msgstr "Unterschneidung nach rechts" -#: ../src/ui/dialog/clonetiler.cpp:594 -msgid "Alternate the sign of blur change for each row" -msgstr "Vorzeichen der Weichzeichnungs-Ă„nderungen bei jeder Reihe umkehren" +#: ../src/text-context.cpp:1059 +msgid "Kern up" +msgstr "Unterschneidung nach oben" -#: ../src/ui/dialog/clonetiler.cpp:599 -msgid "Alternate the sign of blur change for each column" -msgstr "Vorzeichen der Weichzeichnungs-Ă„nderungen bei jeder Spalte umkehren" +#: ../src/text-context.cpp:1084 +msgid "Kern down" +msgstr "Unterschneidung nach unten" -#: ../src/ui/dialog/clonetiler.cpp:608 -msgid "Opacity:" -msgstr "Deckkraft:" +#: ../src/text-context.cpp:1160 +msgid "Rotate counterclockwise" +msgstr "Entgegen Uhrzeigersinn drehen" -#: ../src/ui/dialog/clonetiler.cpp:614 -msgid "Decrease tile opacity by this percentage for each row" -msgstr "" -"Verringern der Deckkraft der Kacheln um diesen Prozentsatz fĂĽr jede Reihe" +#: ../src/text-context.cpp:1181 +msgid "Rotate clockwise" +msgstr "Im Uhrzeigersinn drehen" -#: ../src/ui/dialog/clonetiler.cpp:620 -msgid "Decrease tile opacity by this percentage for each column" -msgstr "" -"Verringern der Deckkraft der Kacheln um diesen Prozentsatz fĂĽr jede Spalte" +#: ../src/text-context.cpp:1198 +msgid "Contract line spacing" +msgstr "Zeilenabstand vermindern" -#: ../src/ui/dialog/clonetiler.cpp:626 -msgid "Randomize the tile opacity by this percentage" -msgstr "Deckkraft der Kacheln um diesen Prozentsatz zufällig verändern" +#: ../src/text-context.cpp:1205 +msgid "Contract letter spacing" +msgstr "Zeichenabstand vermindern" -#: ../src/ui/dialog/clonetiler.cpp:640 -msgid "Alternate the sign of opacity change for each row" -msgstr "Vorzeichen des Deckkraftfaktors bei jeder Reihe umkehren" +#: ../src/text-context.cpp:1223 +msgid "Expand line spacing" +msgstr "Zeilenabstand vergrößern" -#: ../src/ui/dialog/clonetiler.cpp:645 -msgid "Alternate the sign of opacity change for each column" -msgstr "Vorzeichen des Deckkraftfaktors bei jeder Spalte umkehren" +#: ../src/text-context.cpp:1230 +msgid "Expand letter spacing" +msgstr "Zeichenabstand vergrößern" -#: ../src/ui/dialog/clonetiler.cpp:653 -msgid "Co_lor" -msgstr "_Farbe" +#: ../src/text-context.cpp:1360 +msgid "Paste text" +msgstr "Text einfĂĽgen" -#: ../src/ui/dialog/clonetiler.cpp:663 -msgid "Initial color: " -msgstr "UrsprĂĽngliche Farbe: " +#: ../src/text-context.cpp:1485 ../src/ui/dialog/text-edit.cpp:588 +#: ../src/ui/dialog/text-edit.cpp:662 +msgid "Set text style" +msgstr "Textstil setzen" -#: ../src/ui/dialog/clonetiler.cpp:667 -msgid "Initial color of tiled clones" -msgstr "UrsprĂĽngliche Farbe der gekachelten Klone" +#: ../src/text-context.cpp:1614 +#, fuzzy, c-format +msgid "" +"Type or edit flowed text (%d character%s); Enter to start new " +"paragraph." +msgid_plural "" +"Type or edit flowed text (%d characters%s); Enter to start new " +"paragraph." +msgstr[0] "" +"FlieĂźtext schreiben (%d Zeichen%s); Eingabe, um einen neuen Absatz zu " +"beginnen." +msgstr[1] "" +"FlieĂźtext schreiben (%d Zeichen%s); Eingabe, um einen neuen Absatz zu " +"beginnen." -#: ../src/ui/dialog/clonetiler.cpp:667 +#: ../src/text-context.cpp:1616 +#, fuzzy, c-format +msgid "Type or edit text (%d character%s); Enter to start new line." +msgid_plural "" +"Type or edit text (%d characters%s); Enter to start new line." +msgstr[0] "" +"Text schreiben (%d Zeichen%s); Eingabe, um eine neue Zeile zu " +"beginnen." +msgstr[1] "" +"Text schreiben (%d Zeichen%s); Eingabe, um eine neue Zeile zu " +"beginnen." + +#: ../src/text-context.cpp:1624 ../src/tools-switch.cpp:103 msgid "" -"Initial color for clones (works only if the original has unset fill or " -"stroke)" +"Click to select or create text, drag to create flowed text; " +"then type." msgstr "" -"UrsprĂĽngliche Farbe der Klone (FĂĽllung oder Kontur des Originals dĂĽrfen " -"nicht gesetzt sein )" +"Zum Auswählen oder Erstellen eines Textobjekts klicken, Ziehen " +"um FlieĂźtext zu erstellen; anschlieĂźend schreiben." -#: ../src/ui/dialog/clonetiler.cpp:682 -msgid "H:" -msgstr "H:" +#: ../src/text-context.cpp:1726 +msgid "Type text" +msgstr "Text eingeben" -#: ../src/ui/dialog/clonetiler.cpp:688 -msgid "Change the tile hue by this percentage for each row" -msgstr "Farbton der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" +#: ../src/text-editing.cpp:44 +msgid "You cannot edit cloned character data." +msgstr "Geklonte Zeichendaten können nicht editiert werden." -#: ../src/ui/dialog/clonetiler.cpp:694 -msgid "Change the tile hue by this percentage for each column" -msgstr "Farbton der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" +#: ../src/tools-switch.cpp:91 +#, fuzzy +msgid "" +"Click to Select and Transform objects, Drag to select many " +"objects." +msgstr "Klick wählt Knoten aus, Ziehen ordnet neu an." -#: ../src/ui/dialog/clonetiler.cpp:700 -msgid "Randomize the tile hue by this percentage" -msgstr "Farbton der Kachel zufällig um diesen Prozentsatz verändern" +#: ../src/tools-switch.cpp:92 +#, fuzzy +msgid "Modify selected path points (nodes) directly." +msgstr "Ausgewählte Pfade vereinfachen (unnötige Punkte werden entfernt)" -#: ../src/ui/dialog/clonetiler.cpp:709 -msgid "S:" -msgstr "S:" +#: ../src/tools-switch.cpp:93 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" +"Um eine Pfadform zu justieren, selektieren Sie diesen und ziehen ĂĽber ihn." -#: ../src/ui/dialog/clonetiler.cpp:715 -msgid "Change the color saturation by this percentage for each row" +#: ../src/tools-switch.cpp:94 +msgid "" +"Drag, click or click and scroll to spray the selected " +"objects." msgstr "" -"Farbsättigung der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" +"Ziehen, Klicken oder Klicken und Scrollen um das " +"ausgewählte Objekt zu sprĂĽhen." -#: ../src/ui/dialog/clonetiler.cpp:721 -msgid "Change the color saturation by this percentage for each column" +#: ../src/tools-switch.cpp:95 +msgid "" +"Drag to create a rectangle. Drag controls to round corners and " +"resize. Click to select." msgstr "" -"Farbsättigung der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" +"Ziehen erstellt ein Rechteck. Anfasser ziehen rundet Ecken ab " +"und ändert Größe. Klick wählt aus." -#: ../src/ui/dialog/clonetiler.cpp:727 -msgid "Randomize the color saturation by this percentage" -msgstr "Farbsättigung um diesen Prozentsatz zufällig verändern" +#: ../src/tools-switch.cpp:96 +msgid "" +"Drag to create a 3D box. Drag controls to resize in " +"perspective. Click to select (with Ctrl+Alt for single faces)." +msgstr "" +"Ziehen erstellt eine 3D-Box. Anfasser ziehen fĂĽr " +"perspektivische Größenänderung. Klick wählt aus (mit Strg+Alt " +"fĂĽr einzelne Flächen)." -#: ../src/ui/dialog/clonetiler.cpp:735 -msgid "L:" -msgstr "L:" +#: ../src/tools-switch.cpp:97 +msgid "" +"Drag to create an ellipse. Drag controls to make an arc or " +"segment. Click to select." +msgstr "" +"Ziehen erstellt eine Ellipse. Anfasser ziehen erzeugt Bogen " +"oder Kreissegment. Klick wählt aus." -#: ../src/ui/dialog/clonetiler.cpp:741 -msgid "Change the color lightness by this percentage for each row" -msgstr "Helligkeit der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" +#: ../src/tools-switch.cpp:98 +msgid "" +"Drag to create a star. Drag controls to edit the star shape. " +"Click to select." +msgstr "" +"Ziehen erstellt einen Stern. Anfasser ziehen bearbeitet Form. " +"Klick wählt aus." -#: ../src/ui/dialog/clonetiler.cpp:747 -msgid "Change the color lightness by this percentage for each column" -msgstr "Helligkeit der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" +#: ../src/tools-switch.cpp:99 +msgid "" +"Drag to create a spiral. Drag controls to edit the spiral " +"shape. Click to select." +msgstr "" +"Ziehen erstellt eine Spirale. Anfasser ziehen bearbeitet die " +"Form. Klick wählt aus." -#: ../src/ui/dialog/clonetiler.cpp:753 -msgid "Randomize the color lightness by this percentage" -msgstr "Helligkeitsanteil der Farbe zufällig um diesen Prozentsatz verändern" +#: ../src/tools-switch.cpp:100 +msgid "" +"Drag to create a freehand line. Shift appends to selected " +"path, Alt activates sketch mode." +msgstr "" +"Ziehen erzeugt eine Freihandlinie. Umschalt erweitert " +"ausgewählten Pfad. Alt wechselt in Skizzenmodus." -#: ../src/ui/dialog/clonetiler.cpp:767 -msgid "Alternate the sign of color changes for each row" -msgstr "Vorzeichen der Farbänderungen bei jeder Reihe umkehren" +#: ../src/tools-switch.cpp:101 +msgid "" +"Click or click and drag to start a path; with Shift to " +"append to selected path. Ctrl+click to create single dots (straight " +"line modes only)." +msgstr "" +"Klick oder Klick und Ziehen beginnt einen Pfad; Umschalt hängt an ausgewählten Pfad an. Strg+Klick erzeugt einzelne Punkte." -#: ../src/ui/dialog/clonetiler.cpp:772 -msgid "Alternate the sign of color changes for each column" -msgstr "Vorzeichen der Farbänderungen bei jeder Spalte umkehren" +#: ../src/tools-switch.cpp:102 +msgid "" +"Drag to draw a calligraphic stroke; with Ctrl to track a guide " +"path. Arrow keys adjust width (left/right) and angle (up/down)." +msgstr "" +"Ziehen, um kalligrafische Linien zu zeichnen; Ctrl mit " +"FĂĽhrungspfad. Pfeiltasten verändern Breite (links/rechts) und Winkel " +"(hoch/runter)." -#: ../src/ui/dialog/clonetiler.cpp:780 -msgid "_Trace" -msgstr "Bild _vektorisieren" +#: ../src/tools-switch.cpp:104 +msgid "" +"Drag or double click to create a gradient on selected objects, " +"drag handles to adjust gradients." +msgstr "" +"Ziehen oder Doppelklicken erzeugt Farbverlauf fĂĽr gewählte " +"Objekte, Anfasser ziehen verändert Farbverlauf." -#: ../src/ui/dialog/clonetiler.cpp:792 -msgid "Trace the drawing under the tiles" -msgstr "Zeichnung unter den Kacheln vektorisieren" +#: ../src/tools-switch.cpp:105 +msgid "" +"Drag or double click to create a mesh on selected objects, " +"drag handles to adjust meshes." +msgstr "" +"Ziehen oder Doppelklicken erzeugt ein Gitter auf gewählten " +"Objekten, Anfasser ziehen um Gitter einzustellen." -#: ../src/ui/dialog/clonetiler.cpp:796 +#: ../src/tools-switch.cpp:106 msgid "" -"For each clone, pick a value from the drawing in that clone's location and " -"apply it to the clone" +"Click or drag around an area to zoom in, Shift+click to " +"zoom out." msgstr "" -"FĂĽr jeden Klon den entsprechenden Wert an dessen Stelle aus der Zeichnung " -"anwenden" +"Klick oder Rechteck aufziehen vergrößert die Ansicht, " +"Umschalt+Klick verkleinert." -#: ../src/ui/dialog/clonetiler.cpp:815 -msgid "1. Pick from the drawing:" -msgstr "1. Von der Zeichnung ĂĽbernehmen:" +#: ../src/tools-switch.cpp:107 +msgid "Drag to measure the dimensions of objects." +msgstr "Ziehen um die Dimensionen von Objekten zu messen." -#: ../src/ui/dialog/clonetiler.cpp:833 -msgid "Pick the visible color and opacity" -msgstr "Sichtbare Farbe und Deckkraft ĂĽbernehmen" +#: ../src/tools-switch.cpp:109 +msgid "Click and drag between shapes to create a connector." +msgstr "Klick und Ziehen zwischen Formen erzeugt einen Objektverbinder." -#: ../src/ui/dialog/clonetiler.cpp:841 -msgid "Pick the total accumulated opacity" -msgstr "Zusammengerechnete Deckkraft ĂĽbernehmen" +#: ../src/tools-switch.cpp:110 +msgid "" +"Click to paint a bounded area, Shift+click to union the new " +"fill with the current selection, Ctrl+click to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" +"Klick um ein abgegrenztes Gebiet fĂĽllen, Umschalt+Klick um die " +"neue FĂĽllung mit der aktuellen Auswahl zu vereinigen, Strg+Klick um " +"FĂĽllung und Kontur des geklickten Objekts zur aktuellen Einstellung zu " +"ändern." -#: ../src/ui/dialog/clonetiler.cpp:848 -msgid "R" -msgstr "R" +#: ../src/tools-switch.cpp:111 +msgid "Drag to erase." +msgstr "Ziehen um zu löschen." -#: ../src/ui/dialog/clonetiler.cpp:849 -msgid "Pick the Red component of the color" -msgstr "Rotanteil der Farbe ĂĽbernehmen" +#: ../src/tools-switch.cpp:112 +msgid "Choose a subtool from the toolbar" +msgstr "Wählen Sie ein Werkzeug aus der Werkzeugleiste" -#: ../src/ui/dialog/clonetiler.cpp:856 -msgid "G" -msgstr "G" +#: ../src/trace/potrace/inkscape-potrace.cpp:512 +#: ../src/trace/potrace/inkscape-potrace.cpp:575 +msgid "Trace: %1. %2 nodes" +msgstr "Spur: %1. %2 Knoten" -#: ../src/ui/dialog/clonetiler.cpp:857 -msgid "Pick the Green component of the color" -msgstr "GrĂĽnanteil der Farbe ĂĽbernehmen" +#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 +#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 +#: ../src/ui/dialog/pixelartdialog.cpp:338 +#: ../src/ui/dialog/pixelartdialog.cpp:356 +msgid "Select an image to trace" +msgstr "Bild zum Vektorisieren auswählen" -#: ../src/ui/dialog/clonetiler.cpp:864 -msgid "B" -msgstr "B" +#: ../src/trace/trace.cpp:94 +msgid "Select only one image to trace" +msgstr "Nur ein Bild zum Vektorisieren auswählen" + +#: ../src/trace/trace.cpp:112 +msgid "Select one image and one or more shapes above it" +msgstr "Wählen Sie ein Bild und eine oder mehrere Formen ĂĽber diesem" + +#: ../src/trace/trace.cpp:216 +msgid "Trace: No active desktop" +msgstr "Vektorisieren: Kein aktiver Desktop" + +#: ../src/trace/trace.cpp:313 +msgid "Invalid SIOX result" +msgstr "UngĂĽltiges SIOX-Ergebnis" + +#: ../src/trace/trace.cpp:406 +msgid "Trace: No active document" +msgstr "Vektorisieren: Kein Dokument aktiv" -#: ../src/ui/dialog/clonetiler.cpp:865 -msgid "Pick the Blue component of the color" -msgstr "Blauanteil der Farbe ĂĽbernehmen" +#: ../src/trace/trace.cpp:438 +msgid "Trace: Image has no bitmap data" +msgstr "Vektorisieren: Bild enthält keine Pixelinformation" -#: ../src/ui/dialog/clonetiler.cpp:872 -msgctxt "Clonetiler color hue" -msgid "H" -msgstr "H" +#: ../src/trace/trace.cpp:445 +msgid "Trace: Starting trace..." +msgstr "Vektorisieren: Gestartet…" -#: ../src/ui/dialog/clonetiler.cpp:873 -msgid "Pick the hue of the color" -msgstr "Farbton des Farbwertes ĂĽbernehmen" +#. ## inform the document, so we can undo +#: ../src/trace/trace.cpp:548 +msgid "Trace bitmap" +msgstr "Bitmap vektorisieren" -#: ../src/ui/dialog/clonetiler.cpp:880 -msgctxt "Clonetiler color saturation" -msgid "S" -msgstr "S" +#: ../src/trace/trace.cpp:552 +#, c-format +msgid "Trace: Done. %ld nodes created" +msgstr "Vektorisieren abgeschlossen: %ld Knoten erzeugt" -#: ../src/ui/dialog/clonetiler.cpp:881 -msgid "Pick the saturation of the color" -msgstr "Sättigung des Farbwertes ĂĽbernehmen" +#: ../src/tweak-context.cpp:177 +#, c-format +msgid "%s. Drag to move." +msgstr "%s. Ziehen zum verschieben." -#: ../src/ui/dialog/clonetiler.cpp:888 -msgctxt "Clonetiler color lightness" -msgid "L" -msgstr "L" +#: ../src/tweak-context.cpp:181 +#, c-format +msgid "%s. Drag or click to move in; with Shift to move out." +msgstr "" +"%s. Ziehen oder Klicken zum verschieben hinein ; mit Umschalttaste " +"zum verschieben hinaus." -#: ../src/ui/dialog/clonetiler.cpp:889 -msgid "Pick the lightness of the color" -msgstr "Helligkeit des Farbwertes ĂĽbernehmen" +#: ../src/tweak-context.cpp:189 +#, c-format +msgid "%s. Drag or click to move randomly." +msgstr "%s. Ziehen oder Klicken zum zufälligen verschieben." -#: ../src/ui/dialog/clonetiler.cpp:899 -msgid "2. Tweak the picked value:" -msgstr "2. Ăśbernommenen Wert feinjustieren:" +#: ../src/tweak-context.cpp:193 +#, c-format +msgid "%s. Drag or click to scale down; with Shift to scale up." +msgstr "" +"%s. Ziehen oder Klicken zum kleiner skalieren; mit Umschalttaste zum " +"größer skalieren." -#: ../src/ui/dialog/clonetiler.cpp:916 -msgid "Gamma-correct:" -msgstr "Gammakorrektur:" +#: ../src/tweak-context.cpp:201 +#, c-format +msgid "" +"%s. Drag or click to rotate clockwise; with Shift, " +"counterclockwise." +msgstr "" +"%s. Ziehen oder Klicken zum Drehen im Uhrzeigersinn; mit " +"Umschalttaste zum gegen den Uhrzeigersinn." -#: ../src/ui/dialog/clonetiler.cpp:920 -msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +#: ../src/tweak-context.cpp:209 +#, c-format +msgid "%s. Drag or click to duplicate; with Shift, delete." msgstr "" -"Mittenbereich des ĂĽbernommenen Wertes verschieben; nach oben (>0) oder unten " -"(<0)" +"%s. Ziehen oder Klicken zum Duplizieren; mit Umschalttaste zum " +"Löschen." -#: ../src/ui/dialog/clonetiler.cpp:927 -msgid "Randomize:" -msgstr "Zufallsänderung:" +#: ../src/tweak-context.cpp:217 +#, c-format +msgid "%s. Drag to push paths." +msgstr "%s. Ziehen zum Schieben der Pfade." -#: ../src/ui/dialog/clonetiler.cpp:931 -msgid "Randomize the picked value by this percentage" -msgstr "Ăśbernommenen Wert um diesen Prozentsatz zufällig verändern" +#: ../src/tweak-context.cpp:221 +#, c-format +msgid "%s. Drag or click to inset paths; with Shift to outset." +msgstr "" +"%s. Ziehen oder Klicken zieht Pfade zusammen; mit Umschalt " +"schiebt sie auseinander." -#: ../src/ui/dialog/clonetiler.cpp:938 -msgid "Invert:" -msgstr "Invertieren:" +#: ../src/tweak-context.cpp:229 +#, c-format +msgid "%s. Drag or click to attract paths; with Shift to repel." +msgstr "" +"%s. Ziehen oder Klicken zieht Pfade an; mit Umschalt stößt es sie " +"ab." -#: ../src/ui/dialog/clonetiler.cpp:942 -msgid "Invert the picked value" -msgstr "Ăśbernommenen Wert invertieren" +#: ../src/tweak-context.cpp:237 +#, c-format +msgid "%s. Drag or click to roughen paths." +msgstr "%s. Ziehen oder Klicken um Pfad aufzurauen." -#: ../src/ui/dialog/clonetiler.cpp:948 -msgid "3. Apply the value to the clones':" -msgstr "3. Wert auf die Klone anwenden:" +#: ../src/tweak-context.cpp:241 +#, c-format +msgid "%s. Drag or click to paint objects with color." +msgstr "%s. Ziehen oder Klicken um Objekte zu bemalen mit Farbe." -#: ../src/ui/dialog/clonetiler.cpp:963 -msgid "Presence" -msgstr "Anwesenheit" +#: ../src/tweak-context.cpp:245 +#, c-format +msgid "%s. Drag or click to randomize colors." +msgstr "%s. Ziehen oder Klicken um Farben zufällig zu setzen." -#: ../src/ui/dialog/clonetiler.cpp:966 +#: ../src/tweak-context.cpp:249 +#, c-format msgid "" -"Each clone is created with the probability determined by the picked value in " -"that point" +"%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -"Jeder Klon wird mit der Wahrscheinlichkeit erzeugt, welche sich aus dem Wert " -"an dieser Stelle ergibt" +"%s. Ziehen oder Klicken um Weichheit zu erhöhen; mit Shift " +"verringern." -#: ../src/ui/dialog/clonetiler.cpp:973 -msgid "Size" -msgstr "Größe" +#: ../src/tweak-context.cpp:1196 +msgid "Nothing selected! Select objects to tweak." +msgstr "Nichts ausgewählt! Wähle Objekte zum Justieren aus." -#: ../src/ui/dialog/clonetiler.cpp:976 -msgid "Each clone's size is determined by the picked value in that point" -msgstr "Die jeweilige Größe der Klone hängt vom Wert an diesem Punkt ab" +#: ../src/tweak-context.cpp:1230 +msgid "Move tweak" +msgstr "Verschieben-Justage" -#: ../src/ui/dialog/clonetiler.cpp:986 -msgid "" -"Each clone is painted by the picked color (the original must have unset fill " -"or stroke)" -msgstr "" -"Jeder Klon wird in der ĂĽbernommenen Farbe gezeichnet (FĂĽllung oder Kontur " -"des Originals dĂĽrfen nicht gesetzt sein)" +# Was bewegt sich? +#: ../src/tweak-context.cpp:1234 +msgid "Move in/out tweak" +msgstr "Optimieren durch Zusammen-/Auseinanderbewegen" -#: ../src/ui/dialog/clonetiler.cpp:996 -msgid "Each clone's opacity is determined by the picked value in that point" -msgstr "" -"Die Deckkraft jedes Klons wird durch den Wert an dieser Stelle bestimmt" +#: ../src/tweak-context.cpp:1238 +msgid "Move jitter tweak" +msgstr "Bewegungsversatz-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1044 -msgid "How many rows in the tiling" -msgstr "Anzahl der Reihen beim Kacheln" +#: ../src/tweak-context.cpp:1242 +msgid "Scale tweak" +msgstr "Skalieren-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1074 -msgid "How many columns in the tiling" -msgstr "Anzahl der Spalten beim Kacheln" +#: ../src/tweak-context.cpp:1246 +msgid "Rotate tweak" +msgstr "Rotieren-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1119 -msgid "Width of the rectangle to be filled" -msgstr "Breite des zu fĂĽllenden Rechtecks" +#: ../src/tweak-context.cpp:1250 +msgid "Duplicate/delete tweak" +msgstr "Dulizieren-/Löschen-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1152 -msgid "Height of the rectangle to be filled" -msgstr "Höhe des zu fĂĽllenden Rechtecks" +#: ../src/tweak-context.cpp:1254 +msgid "Push path tweak" +msgstr "Pfad-Verschieben-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1169 -msgid "Rows, columns: " -msgstr "Reihen, Spalten: " +#: ../src/tweak-context.cpp:1258 +msgid "Shrink/grow path tweak" +msgstr "Schrumpfen-/Weiten-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1170 -msgid "Create the specified number of rows and columns" -msgstr "Angegeben Anzahl von Reihen und Spalten erzeugen" +#: ../src/tweak-context.cpp:1262 +msgid "Attract/repel path tweak" +msgstr "Pfad-Anziehen-/-AbstoĂźen-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1179 -msgid "Width, height: " -msgstr "Breite, Höhe: " +#: ../src/tweak-context.cpp:1266 +msgid "Roughen path tweak" +msgstr "Pfadrauheit-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1180 -msgid "Fill the specified width and height with the tiling" -msgstr "Durch Höhe und Breite angegeben Bereich mit FĂĽllmuster versehen" +#: ../src/tweak-context.cpp:1270 +msgid "Color paint tweak" +msgstr "Farb-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1201 -msgid "Use saved size and position of the tile" -msgstr "Gespeicherte Größe und Position der Kachel verwenden" +#: ../src/tweak-context.cpp:1274 +msgid "Color jitter tweak" +msgstr "Farbrauschen-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1204 -msgid "" -"Pretend that the size and position of the tile are the same as the last time " -"you tiled it (if any), instead of using the current size" -msgstr "" -"Anstelle der aktuellen Größe die letzte Position und Größe der Kachel/" -"MusterfĂĽllung vorgeben" +#: ../src/tweak-context.cpp:1278 +msgid "Blur tweak" +msgstr "Unschärfe-Justage" -#: ../src/ui/dialog/clonetiler.cpp:1238 -msgid " _Create " -msgstr " _Erzeugen " +#. check whether something is selected +#: ../src/ui/clipboard.cpp:261 +msgid "Nothing was copied." +msgstr "Es wurde nichts kopiert." -#: ../src/ui/dialog/clonetiler.cpp:1240 -msgid "Create and tile the clones of the selection" -msgstr "Klone der Auswahl erzeugen und kacheln" +#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 +#: ../src/ui/clipboard.cpp:606 +msgid "Nothing on the clipboard." +msgstr "Es ist nichts in der Zwischenablage." -#. TRANSLATORS: if a group of objects are "clumped" together, then they -#. are unevenly spread in the given amount of space - as shown in the -#. diagrams on the left in the following screenshot: -#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png -#. So unclumping is the process of spreading a number of objects out more evenly. -#: ../src/ui/dialog/clonetiler.cpp:1260 -msgid " _Unclump " -msgstr " Entkl_umpen " +#: ../src/ui/clipboard.cpp:432 +msgid "Select object(s) to paste style to." +msgstr "Objekt(e) auswählen, um Stil darauf anzuwenden." -#: ../src/ui/dialog/clonetiler.cpp:1261 -msgid "Spread out clones to reduce clumping; can be applied repeatedly" -msgstr "" -"Klone gleichmäßiger verteilen, um das Verklumpen zu verringern; mehrmals " -"anwendbar" +#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 +msgid "No style on the clipboard." +msgstr "Kein Stil in der Zwischenablage." -#: ../src/ui/dialog/clonetiler.cpp:1267 -msgid " Re_move " -msgstr " _Entfernen " +#: ../src/ui/clipboard.cpp:485 +msgid "Select object(s) to paste size to." +msgstr "Objekt(e) auswählen, um Größe einzufĂĽgen." -#: ../src/ui/dialog/clonetiler.cpp:1268 -msgid "Remove existing tiled clones of the selected object (siblings only)" -msgstr "" -"Vorhandene gekachelte Klone des ausgewählten Objektes entfernen (nur " -"Geschwister)" +#: ../src/ui/clipboard.cpp:492 +msgid "No size on the clipboard." +msgstr "Keine Größe in der Zwischenablage." -#: ../src/ui/dialog/clonetiler.cpp:1284 -msgid " R_eset " -msgstr " _ZurĂĽcksetzen " +#: ../src/ui/clipboard.cpp:545 +msgid "Select object(s) to paste live path effect to." +msgstr "Objekt(e) auswählen, um den Pfad-Effekt einzufĂĽgen." -#. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1286 -msgid "" -"Reset all shifts, scales, rotates, opacity and color changes in the dialog " -"to zero" -msgstr "" -"RĂĽcksetzen aller Verschiebungen, Skalierungen, Rotationen und Deckkraft- und " -"Farbanpassungen im Dialogfenster" +#. no_effect: +#: ../src/ui/clipboard.cpp:570 +msgid "No effect on the clipboard." +msgstr "Kein Effekt in der Zwischenablage." -#: ../src/ui/dialog/clonetiler.cpp:1359 -msgid "Nothing selected." -msgstr "Es wurde nichts ausgewählt." +#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:617 +msgid "Clipboard does not contain a path." +msgstr "Die Zwischenablage enthält keinen Pfad." -#: ../src/ui/dialog/clonetiler.cpp:1365 -msgid "More than one object selected." -msgstr "Mehr als ein Objekt ausgewählt." +#. * +#. * Constructor +#. +#: ../src/ui/dialog/aboutbox.cpp:80 +msgid "About Inkscape" +msgstr "Informationen ĂĽber Inkscape" -#: ../src/ui/dialog/clonetiler.cpp:1372 -#, c-format -msgid "Object has %d tiled clones." -msgstr "Das Objekt hat %d gekachelte Klone." +# !!! +#: ../src/ui/dialog/aboutbox.cpp:91 +msgid "_Splash" +msgstr "_Splash" -#: ../src/ui/dialog/clonetiler.cpp:1377 -msgid "Object has no tiled clones." -msgstr "Das Objekt hat keine gekachelten Klone." +#: ../src/ui/dialog/aboutbox.cpp:95 +msgid "_Authors" +msgstr "_Autoren" -#: ../src/ui/dialog/clonetiler.cpp:2097 -msgid "Select one object whose tiled clones to unclump." -msgstr "Ein Objekt auswählen, dessen gekachelte Klone entklumpt werden." +#: ../src/ui/dialog/aboutbox.cpp:97 +msgid "_Translators" +msgstr "Ăś_bersetzer" -#: ../src/ui/dialog/clonetiler.cpp:2119 -msgid "Unclump tiled clones" -msgstr "Gekachelte Klone entklumpen" +#: ../src/ui/dialog/aboutbox.cpp:99 +msgid "_License" +msgstr "_Lizenz" -#: ../src/ui/dialog/clonetiler.cpp:2148 -msgid "Select one object whose tiled clones to remove." -msgstr "Ein Objekt auswählen, dessen gekachelte Klone entfernt werden." +# Hier muss die deutsche Grafik, die bei der Inkscape-Info angezeigt werden soll, benannt werden! +#. TRANSLATORS: This is the filename of the `About Inkscape' picture in +#. the `screens' directory. Thus the translation of "about.svg" should be +#. the filename of its translated version, e.g. about.zh.svg for Chinese. +#. +#. N.B. about.svg changes once per release. (We should probably rename +#. the original to about-0.40.svg etc. as soon as we have a translation. +#. If we do so, then add an item to release-checklist saying that the +#. string here should be changed.) +#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the +#. native filename encoding... and the filename passed to sp_document_new +#. should be in UTF-*8.. +#: ../src/ui/dialog/aboutbox.cpp:166 +msgid "about.svg" +msgstr "about.svg" -#: ../src/ui/dialog/clonetiler.cpp:2171 -msgid "Delete tiled clones" -msgstr "Gekachelte Klone löschen" +#. TRANSLATORS: Put here your name (and other national contributors') +#. one per line in the form of: name surname (email). Use \n for newline. +#: ../src/ui/dialog/aboutbox.cpp:416 +msgid "translator-credits" +msgstr "" +"Adib Taraben (theadib@gmail.com)\n" +"Alexander Senger (neutronenspalter@freenet.de)\n" +"Benedikt Roth (Benedikt.Roth@gmx.net)\n" +"Christian Meyer (chrisime@gnome.org)\n" +"Christian Neumair (chris@gnome-de.org)\n" +"Colin Marquardt (colin@marquardt-home.de)\n" +"Jörg MĂĽller (jfm@ram-brand.de)\n" +"Kai Lahmann (kailahmann@01019freenet.de)\n" +"Stefan Graubner (pflaumenmus92@gmx.net)\n" +"Stefan von Halenbach (vonHalenbach@users.sourceforge.net)\n" +"Uwe Schöler (uschoeler@yahoo.de)\n" +"Wolfram Strempfer (wolfram@strempfer.de)" -#: ../src/ui/dialog/clonetiler.cpp:2224 -msgid "" -"If you want to clone several objects, group them and clone the " -"group." +#: ../src/ui/dialog/align-and-distribute.cpp:171 +#: ../src/ui/dialog/align-and-distribute.cpp:852 +msgid "Align" +msgstr "Ausrichten" + +#: ../src/ui/dialog/align-and-distribute.cpp:341 +#: ../src/ui/dialog/align-and-distribute.cpp:853 +msgid "Distribute" +msgstr "Verteilen" + +#: ../src/ui/dialog/align-and-distribute.cpp:420 +msgid "Minimum horizontal gap (in px units) between bounding boxes" msgstr "" -"Wenn mehrere Objekte geklont werden sollen, sollten sie gruppiert und " -"dann die Gruppe geklont werden." +"Minimaler horizontaler Abstand (in px-Einheiten) zwischen Umrandungsboxen" -#: ../src/ui/dialog/clonetiler.cpp:2233 -msgid "Creating tiled clones..." -msgstr "Geschachtelte Klone erstellen..." +#. TRANSLATORS: "H:" stands for horizontal gap +#: ../src/ui/dialog/align-and-distribute.cpp:422 +msgctxt "Gap" +msgid "_H:" +msgstr "_H:" -#: ../src/ui/dialog/clonetiler.cpp:2638 -msgid "Create tiled clones" -msgstr "Gekachelte Klone erzeugen" +#: ../src/ui/dialog/align-and-distribute.cpp:430 +msgid "Minimum vertical gap (in px units) between bounding boxes" +msgstr "" +"Minimaler vertikaler Abstand (in px-Einheiten) zwischen Umrandungsboxen" -#: ../src/ui/dialog/clonetiler.cpp:2871 -msgid "Per row:" -msgstr "Pro Reihe:" +#. TRANSLATORS: Vertical gap +#: ../src/ui/dialog/align-and-distribute.cpp:432 +msgctxt "Gap" +msgid "_V:" +msgstr "V:" -#: ../src/ui/dialog/clonetiler.cpp:2889 -msgid "Per column:" -msgstr "Pro Spalte:" +#: ../src/ui/dialog/align-and-distribute.cpp:468 +#: ../src/ui/dialog/align-and-distribute.cpp:855 +#: ../src/widgets/connector-toolbar.cpp:423 +msgid "Remove overlaps" +msgstr "Ăśberlappungen entfernen" -#: ../src/ui/dialog/clonetiler.cpp:2897 -msgid "Randomize:" -msgstr "Zufallsfaktor:" +#: ../src/ui/dialog/align-and-distribute.cpp:499 +#: ../src/widgets/connector-toolbar.cpp:252 +msgid "Arrange connector network" +msgstr "Netzwerk von Objektverbindern anordnen" -#: ../src/ui/dialog/color-item.cpp:131 -#, c-format -msgid "" -"Color: %s; Click to set fill, Shift+click to set stroke" -msgstr "" -"Farbe: %s; Klick setzt die FĂĽllung, Shift+Klick legt " -"die Konturfarbe fest" +#: ../src/ui/dialog/align-and-distribute.cpp:592 +msgid "Exchange Positions" +msgstr "Positionne verändern" -#: ../src/ui/dialog/color-item.cpp:509 -msgid "Change color definition" -msgstr "Farbdefinition ändern" +#: ../src/ui/dialog/align-and-distribute.cpp:626 +msgid "Unclump" +msgstr "Entklumpen" -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove stroke color" -msgstr "Konturfarbe entfernen" +#: ../src/ui/dialog/align-and-distribute.cpp:698 +msgid "Randomize positions" +msgstr "Positionen zufällig machen" -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove fill color" -msgstr "FĂĽllfarbe entfernen" +#: ../src/ui/dialog/align-and-distribute.cpp:801 +msgid "Distribute text baselines" +msgstr "Textgrundlinien verteilen" -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set stroke color to none" -msgstr "Farbe der Kontur auf nichts setzen" +#: ../src/ui/dialog/align-and-distribute.cpp:824 +msgid "Align text baselines" +msgstr "Grundlinien von Text ausrichten" -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set fill color to none" -msgstr "FĂĽllungsfarbe auf nichts setzen" +#: ../src/ui/dialog/align-and-distribute.cpp:854 +msgid "Rearrange" +msgstr "Anordnen" -#: ../src/ui/dialog/color-item.cpp:700 -msgid "Set stroke color from swatch" -msgstr "Konturfarbe aus der Farbfelder-Palette auswählen" +#: ../src/ui/dialog/align-and-distribute.cpp:856 +#: ../src/widgets/toolbox.cpp:1726 +msgid "Nodes" +msgstr "Knoten" -#: ../src/ui/dialog/color-item.cpp:700 -msgid "Set fill color from swatch" -msgstr "FĂĽllfarbe aus der Farbfelder-Palette auswählen" +#: ../src/ui/dialog/align-and-distribute.cpp:870 +msgid "Relative to: " +msgstr "Relativ zu: " -#: ../src/ui/dialog/debug.cpp:73 -msgid "Messages" -msgstr "Meldungen" +#: ../src/ui/dialog/align-and-distribute.cpp:871 +msgid "_Treat selection as group: " +msgstr "Auswahl als Gruppe behandeln:" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 -msgid "_Clear" -msgstr "_Leeren" +#. Align +#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2940 +msgid "Align right edges of objects to the left edge of the anchor" +msgstr "Rechte Objektkanten an linker Seite der Verankerung ausrichten" -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 -msgid "Capture log messages" -msgstr "Fehlerprotokoll mitschreiben" +#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2942 +msgid "Align left edges" +msgstr "Linke Kanten ausrichten" -#: ../src/ui/dialog/debug.cpp:95 -msgid "Release log messages" -msgstr "Fehlerprotokoll verwerfen" +#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2944 +msgid "Center on vertical axis" +msgstr "Vertikal zentrieren" -#: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:158 -msgid "Metadata" -msgstr "Metadaten" +#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2946 +msgid "Align right sides" +msgstr "Rechte Kanten ausrichten" -#: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:159 -msgid "License" -msgstr "Nutzungsbedingungen - Lizenz" +#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2948 +msgid "Align left edges of objects to the right edge of the anchor" +msgstr "Linke Objektkanten an rechter Seite der Verankerung ausrichten" -# !!! -#: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1005 -msgid "Dublin Core Entities" -msgstr "Dublin-Core-Entities" +#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2950 +msgid "Align bottom edges of objects to the top edge of the anchor" +msgstr "Objektunterkanten an Oberkante der Verankerung ausrichten" + +#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2952 +msgid "Align top edges" +msgstr "Oberkanten ausrichten" + +#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2954 +msgid "Center on horizontal axis" +msgstr "Zentren horizontal ausrichten" + +#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2956 +msgid "Align bottom edges" +msgstr "Unterkanten ausrichten" -#: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1067 -msgid "License" -msgstr "Lizenz" +#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2958 +msgid "Align top edges of objects to the bottom edge of the anchor" +msgstr "Objektoberkanten an Unterkante der Verankerung ausrichten" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:110 -msgid "Use antialiasing" -msgstr "" +#: ../src/ui/dialog/align-and-distribute.cpp:909 +msgid "Align baseline anchors of texts horizontally" +msgstr "Grundlinien der Textelemente horizontal ausrichten" -#: ../src/ui/dialog/document-properties.cpp:110 -msgid "If unset, no antialiasing will be done on the drawing" -msgstr "" +#: ../src/ui/dialog/align-and-distribute.cpp:912 +msgid "Align baselines of texts" +msgstr "Grundlinien der Textelemente ausrichten" -#: ../src/ui/dialog/document-properties.cpp:111 -msgid "Show page _border" -msgstr "_Rand der Seite anzeigen" +#: ../src/ui/dialog/align-and-distribute.cpp:917 +msgid "Make horizontal gaps between objects equal" +msgstr "Horizontale Abstände zwischen Objekten ausgleichen" -#: ../src/ui/dialog/document-properties.cpp:111 -msgid "If set, rectangular page border is shown" -msgstr "Wenn gesetzt, dann wird ein rechteckiger Seitenrand gezeigt" +#: ../src/ui/dialog/align-and-distribute.cpp:921 +msgid "Distribute left edges equidistantly" +msgstr "Linke Objektkanten gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "Border on _top of drawing" -msgstr "Rand im _Vordergrund anzeigen" +#: ../src/ui/dialog/align-and-distribute.cpp:924 +msgid "Distribute centers equidistantly horizontally" +msgstr "Objektmittelpunkten horizontal gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "If set, border is always on top of the drawing" -msgstr "Wenn gesetzt, dann ist der Rand immmer im Vordergrund" +#: ../src/ui/dialog/align-and-distribute.cpp:927 +msgid "Distribute right edges equidistantly" +msgstr "Rechte Objektkanten gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "_Show border shadow" -msgstr "Rand_schatten anzeigen" +#: ../src/ui/dialog/align-and-distribute.cpp:931 +msgid "Make vertical gaps between objects equal" +msgstr "Vertikale Abstände zwischen Objekten ausgleichen" -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "If set, page border shows a shadow on its right and lower side" -msgstr "" -"Wenn gesetzt, dann zeigt der Seitenrand einen Schatten an der rechten und " -"unteren Seite" +#: ../src/ui/dialog/align-and-distribute.cpp:935 +msgid "Distribute top edges equidistantly" +msgstr "Oberkanten der Objekte gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "Back_ground color:" -msgstr "Hintergrundfarbe:" +#: ../src/ui/dialog/align-and-distribute.cpp:938 +msgid "Distribute centers equidistantly vertically" +msgstr "Objektmittelpunkten vertikal gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "" -"Color of the page background. Note: transparency setting ignored while " -"editing but used when exporting to bitmap." -msgstr "" -"Farbe des Seitenhintergrundes. Hinweis: Transparenzeinstellungen werden " -"während der Bearbeitung ignoriert, aber genutzt, wenn es als Bitmap " -"exportiert wird." +#: ../src/ui/dialog/align-and-distribute.cpp:941 +msgid "Distribute bottom edges equidistantly" +msgstr "Unterkanten gleichmäßig anordnen" -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Border _color:" -msgstr "_Randfarbe:" +#: ../src/ui/dialog/align-and-distribute.cpp:946 +msgid "Distribute baseline anchors of texts horizontally" +msgstr "Grundlinien von Textelementen horizontal verteilen" -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Page border color" -msgstr "Randfarbe der Zeichenfläche" +#: ../src/ui/dialog/align-and-distribute.cpp:949 +msgid "Distribute baselines of texts vertically" +msgstr "Grundlinien von Textelementen vertikal verteilen" -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Color of the page border" -msgstr "Randfarbe der Zeichenfläche" +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/widgets/connector-toolbar.cpp:385 +msgid "Nicely arrange selected connector network" +msgstr "Das gewählte Netzwerk von Objektverbindern gefällig anordnen" -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Default _units:" -msgstr "_Standard-Einheiten:" +#: ../src/ui/dialog/align-and-distribute.cpp:958 +msgid "Exchange positions of selected objects - selection order" +msgstr "Ă„ndern der Position der ausgewählten Objekte - Auswahlanordnung" -#. --------------------------------------------------------------- -#. General snap options -#: ../src/ui/dialog/document-properties.cpp:120 -msgid "Show _guides" -msgstr "_FĂĽhrungslinien anzeigen" +#: ../src/ui/dialog/align-and-distribute.cpp:961 +msgid "Exchange positions of selected objects - stacking order" +msgstr "Ă„ndern der Position der ausgewählten Objekte - Stapelanordnung" -#: ../src/ui/dialog/document-properties.cpp:120 -msgid "Show or hide guides" -msgstr "FĂĽhrungslinien anzeigen oder ausblenden" +#: ../src/ui/dialog/align-and-distribute.cpp:964 +msgid "Exchange positions of selected objects - clockwise rotate" +msgstr "" +"Ă„ndern der Position der ausgewählten Objekte - im Uhrzeigersinn rotierend" -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Guide co_lor:" -msgstr "F_arbe der FĂĽhrungslinien:" +#: ../src/ui/dialog/align-and-distribute.cpp:969 +msgid "Randomize centers in both dimensions" +msgstr "Mittelpunkte von Objekten zufällig horizontal und vertikal verteilen" -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Guideline color" -msgstr "Farbe der FĂĽhrungslinien" +#: ../src/ui/dialog/align-and-distribute.cpp:972 +msgid "Unclump objects: try to equalize edge-to-edge distances" +msgstr "Objekte entklumpen: Versuche, die Zwischenabstände anzugleichen" -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Color of guidelines" -msgstr "Farbe der FĂĽhrungslinien" +#: ../src/ui/dialog/align-and-distribute.cpp:977 +msgid "" +"Move objects as little as possible so that their bounding boxes do not " +"overlap" +msgstr "" +"Objekte gerade so weit bewegen, dass sich ihre Umrandungsboxen nicht mehr " +"ĂĽberlappen" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "_Highlight color:" -msgstr "_Hervorhebungsfarbe:" +#: ../src/ui/dialog/align-and-distribute.cpp:985 +msgid "Align selected nodes to a common horizontal line" +msgstr "Ausgewählte Knoten horizontal ausrichten" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Highlighted guideline color" -msgstr "Farbe der hervorgehobenen FĂĽhrungslinien" +#: ../src/ui/dialog/align-and-distribute.cpp:988 +msgid "Align selected nodes to a common vertical line" +msgstr "Ausgewählte Knoten vertikal ausrichten" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Color of a guideline when it is under mouse" -msgstr "Farbe der FĂĽhrungslinie falls unter dem Mauszeiger" +#: ../src/ui/dialog/align-and-distribute.cpp:991 +msgid "Distribute selected nodes horizontally" +msgstr "Ausgewählte Knoten horizontal verteilen" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:124 -msgid "Snap _distance" -msgstr "Einrastabstand" +#: ../src/ui/dialog/align-and-distribute.cpp:994 +msgid "Distribute selected nodes vertically" +msgstr "Ausgewählte Knoten vertikal verteilen" -#: ../src/ui/dialog/document-properties.cpp:124 -msgid "Snap only when _closer than:" -msgstr "Nur einrasten, wenn _näher als:" +#. Rest of the widgetry +#: ../src/ui/dialog/align-and-distribute.cpp:999 +msgid "Last selected" +msgstr "Zuletzt gewählt" -#: ../src/ui/dialog/document-properties.cpp:124 -#: ../src/ui/dialog/document-properties.cpp:129 -#: ../src/ui/dialog/document-properties.cpp:134 -msgid "Always snap" -msgstr "Immer einrasten" +#: ../src/ui/dialog/align-and-distribute.cpp:1000 +msgid "First selected" +msgstr "Zuerst gewählt" -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Snapping distance, in screen pixels, for snapping to objects" -msgstr "Einrastabstand in Bildschirmpixeln, um an Objekten einzurasten" +#: ../src/ui/dialog/align-and-distribute.cpp:1001 +msgid "Biggest object" +msgstr "Größtes Objekt" -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Always snap to objects, regardless of their distance" -msgstr "" -"Wenn gesetzt, dann rasten Objekte am nahesten Objekt ein, unabhängig von der " -"Entfernung" +#: ../src/ui/dialog/align-and-distribute.cpp:1002 +msgid "Smallest object" +msgstr "Kleinstes Objekt" -#: ../src/ui/dialog/document-properties.cpp:126 -msgid "" -"If set, objects only snap to another object when it's within the range " -"specified below" -msgstr "" -"Nur an anderen Objekten einrasten, wenn diese innerhalb der unten " -"definierten Reichweite sind." +#: ../src/ui/dialog/align-and-distribute.cpp:1005 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1555 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:2011 +#: ../share/extensions/printing_marks.inx.h:18 +msgid "Selection" +msgstr "Auswahl" -#. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:129 -msgid "Snap d_istance" -msgstr "Einrastabstand:" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 +msgid "Edit profile" +msgstr "Profil bearbeiten" -#: ../src/ui/dialog/document-properties.cpp:129 -msgid "Snap only when c_loser than:" -msgstr "Nur einrasten, wenn _näher als:" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 +msgid "Profile name:" +msgstr "Profilname:" -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Snapping distance, in screen pixels, for snapping to grid" -msgstr "Einrastabstand in Bildschirmpixeln, um in das Gitter einzurasten" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 +msgid "Save" +msgstr "_Speichern" -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Always snap to grids, regardless of the distance" -msgstr "" -"Wenn gesetzt, dann rasten Objekte an der nahesten Gitterslinie ein, " -"unabhängig von der Entfernung" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 +msgid "Add profile" +msgstr "Profil hinzufĂĽgen" -#: ../src/ui/dialog/document-properties.cpp:131 -msgid "" -"If set, objects only snap to a grid line when it's within the range " -"specified below" -msgstr "" -"Nur an Gitterlinien einrasten, wenn diese innerhalb der unten definierten " -"Reichweite sind." +#: ../src/ui/dialog/clonetiler.cpp:112 +msgid "_Symmetry" +msgstr "_Symmetrie" -#. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:134 -msgid "Snap dist_ance" -msgstr "Einrastabstand" +#. TRANSLATORS: "translation" means "shift" / "displacement" here. +#: ../src/ui/dialog/clonetiler.cpp:124 +msgid "P1: simple translation" +msgstr "P1: einfache Verschiebung" -#: ../src/ui/dialog/document-properties.cpp:134 -msgid "Snap only when close_r than:" -msgstr "Nur einrasten, wenn _näher als:" +#: ../src/ui/dialog/clonetiler.cpp:125 +msgid "P2: 180° rotation" +msgstr "P2: 180° Rotation" -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "Einrastabstand in Bildschirmpixeln, um an FĂĽhrungslinien einzurasten" +#: ../src/ui/dialog/clonetiler.cpp:126 +msgid "PM: reflection" +msgstr "PM: Reflektion" -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Always snap to guides, regardless of the distance" -msgstr "" -"Objekte rasten immer an der nächsten FĂĽhrungslinie ein, unabhängig von der " -"Entfernung" +#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. +#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html +#: ../src/ui/dialog/clonetiler.cpp:129 +msgid "PG: glide reflection" +msgstr "PG: gleitende Reflektion" -#: ../src/ui/dialog/document-properties.cpp:136 -msgid "" -"If set, objects only snap to a guide when it's within the range specified " -"below" -msgstr "" -"Nur an FĂĽhrungslinien einrasten, wenn diese innerhalb der unten definierten " -"Reichweite sind." +#: ../src/ui/dialog/clonetiler.cpp:130 +msgid "CM: reflection + glide reflection" +msgstr "CM: Reflektion + gleitende Reflektion" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:139 -msgid "Snap to clip paths" -msgstr "An Ausschneidepfaden einrasten" +#: ../src/ui/dialog/clonetiler.cpp:131 +msgid "PMM: reflection + reflection" +msgstr "PMM: Reflektion + Reflektion" -#: ../src/ui/dialog/document-properties.cpp:139 -msgid "When snapping to paths, then also try snapping to clip paths" -msgstr "" -"Neben dem Einrasten an Pfaden, auch versuchen an Ausschbeidepfaden " -"einzurasten" +#: ../src/ui/dialog/clonetiler.cpp:132 +msgid "PMG: reflection + 180° rotation" +msgstr "PMG: Reflektion + 180° Rotation" -#: ../src/ui/dialog/document-properties.cpp:140 -msgid "Snap to mask paths" -msgstr "An Maskierungspfaden einrasten" +#: ../src/ui/dialog/clonetiler.cpp:133 +msgid "PGG: glide reflection + 180° rotation" +msgstr "PGG: gleitende Reflektion + 180° Rotation" -#: ../src/ui/dialog/document-properties.cpp:140 -msgid "When snapping to paths, then also try snapping to mask paths" -msgstr "" -"Neben dem Einrasten an Pfaden, auch versuchen an Maskierungspfaden " -"einzurasten" +#: ../src/ui/dialog/clonetiler.cpp:134 +msgid "CMM: reflection + reflection + 180° rotation" +msgstr "CMM: Reflektion + Reflektion + 180° Rotation" -#: ../src/ui/dialog/document-properties.cpp:141 -msgid "Snap perpendicularly" -msgstr "Senkrecht einrasten" +#: ../src/ui/dialog/clonetiler.cpp:135 +msgid "P4: 90° rotation" +msgstr "P4: 90° Rotation" -#: ../src/ui/dialog/document-properties.cpp:141 -msgid "" -"When snapping to paths or guides, then also try snapping perpendicularly" -msgstr "" -"Neben dem Einrasten an Pfaden oder FĂĽhrungslinien, auch versuchen senkrecht " -"einzurasten" +#: ../src/ui/dialog/clonetiler.cpp:136 +msgid "P4M: 90° rotation + 45° reflection" +msgstr "P4M: 90° Rotation + 45° Reflektion" -#: ../src/ui/dialog/document-properties.cpp:142 -msgid "Snap tangentially" -msgstr "Tangential einrasten" +#: ../src/ui/dialog/clonetiler.cpp:137 +msgid "P4G: 90° rotation + 90° reflection" +msgstr "P4G: 90° Rotation + 90° Reflektion" -#: ../src/ui/dialog/document-properties.cpp:142 -msgid "When snapping to paths or guides, then also try snapping tangentially" -msgstr "" -"Neben dem Einrasten an Pfaden oder FĂĽhrungslinien, auch versuchen tangential " -"einzurasten" +#: ../src/ui/dialog/clonetiler.cpp:138 +msgid "P3: 120° rotation" +msgstr "P3: 120° Rotation" -#: ../src/ui/dialog/document-properties.cpp:145 -msgctxt "Grid" -msgid "_New" -msgstr "_Neu" +#: ../src/ui/dialog/clonetiler.cpp:139 +msgid "P31M: reflection + 120° rotation, dense" +msgstr "P31M: Reflektion + 120° Rotation, dicht" -#: ../src/ui/dialog/document-properties.cpp:145 -msgid "Create new grid." -msgstr "Neues Gitter erzeugen." +#: ../src/ui/dialog/clonetiler.cpp:140 +msgid "P3M1: reflection + 120° rotation, sparse" +msgstr "P3M1: Reflektion + 120° Rotation, dĂĽnn" -#: ../src/ui/dialog/document-properties.cpp:146 -msgctxt "Grid" -msgid "_Remove" -msgstr "_Entfernen" +#: ../src/ui/dialog/clonetiler.cpp:141 +msgid "P6: 60° rotation" +msgstr "P6: 60° Rotation" -#: ../src/ui/dialog/document-properties.cpp:146 -msgid "Remove selected grid." -msgstr "Ausgewähltes Gitter entfernen." +#: ../src/ui/dialog/clonetiler.cpp:142 +msgid "P6M: reflection + 60° rotation" +msgstr "P6M: Reflektion + 60° Rotation" -#: ../src/ui/dialog/document-properties.cpp:153 -#: ../src/widgets/toolbox.cpp:1835 -msgid "Guides" -msgstr "FĂĽhrungslinien" +#: ../src/ui/dialog/clonetiler.cpp:162 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "Eine der 17 Symmetrie-Gruppen zum Kacheln auswählen" -#: ../src/ui/dialog/document-properties.cpp:155 ../src/verbs.cpp:2744 -msgid "Snap" -msgstr "Einrasten" +#: ../src/ui/dialog/clonetiler.cpp:180 +msgid "S_hift" +msgstr "Versc_hiebung" -#: ../src/ui/dialog/document-properties.cpp:157 -msgid "Scripting" -msgstr "Skripte" +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount +#: ../src/ui/dialog/clonetiler.cpp:190 +#, no-c-format +msgid "Shift X:" +msgstr "Verschiebung X:" -# !!! -#: ../src/ui/dialog/document-properties.cpp:321 -msgid "General" -msgstr "Allgemein" +#: ../src/ui/dialog/clonetiler.cpp:198 +#, no-c-format +msgid "Horizontal shift per row (in % of tile width)" +msgstr "Horizontale Verschiebung pro Reihe (in % der Kachelbreite)" -# !!! -#: ../src/ui/dialog/document-properties.cpp:323 -msgid "Page Size" -msgstr "Seitengröße" +#: ../src/ui/dialog/clonetiler.cpp:206 +#, no-c-format +msgid "Horizontal shift per column (in % of tile width)" +msgstr "Horizontale Verschiebung pro Spalte (in % der Kachelbreite)" -#: ../src/ui/dialog/document-properties.cpp:325 -msgid "Display" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:212 +msgid "Randomize the horizontal shift by this percentage" +msgstr "Zufällige horizontale Verschiebung um diesen Prozentsatz" -# !!! -#: ../src/ui/dialog/document-properties.cpp:360 -msgid "Guides" -msgstr "FĂĽhrungslinien" +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount +#: ../src/ui/dialog/clonetiler.cpp:222 +#, no-c-format +msgid "Shift Y:" +msgstr "Verschiebung X:" -#: ../src/ui/dialog/document-properties.cpp:378 -msgid "Snap to objects" -msgstr "An Objekten einrasten" +#: ../src/ui/dialog/clonetiler.cpp:230 +#, no-c-format +msgid "Vertical shift per row (in % of tile height)" +msgstr "Vertikale Verschiebung pro Reihe (in % der Kachelhöhe)" -#: ../src/ui/dialog/document-properties.cpp:380 -msgid "Snap to grids" -msgstr "Am Gitter einrasten" +#: ../src/ui/dialog/clonetiler.cpp:238 +#, no-c-format +msgid "Vertical shift per column (in % of tile height)" +msgstr "Vertikale Verschiebung pro Spalte (in % der Kachelhöhe)" -#: ../src/ui/dialog/document-properties.cpp:382 -msgid "Snap to guides" -msgstr "An FĂĽhrungslinien einrasten" +#: ../src/ui/dialog/clonetiler.cpp:245 +msgid "Randomize the vertical shift by this percentage" +msgstr "Zufällige vertikale Verschiebung um diesen Prozentsatz" -#: ../src/ui/dialog/document-properties.cpp:384 -msgid "Miscellaneous" -msgstr "Verschiedenes" +#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 +msgid "Exponent:" +msgstr "Exponent:" -#. TODO check if this next line was sometimes needed. It being there caused an assertion. -#. Inkscape::GC::release(defsRepr); -#. inform the document, so we can undo -#. Color Management -#: ../src/ui/dialog/document-properties.cpp:497 ../src/verbs.cpp:2921 -msgid "Link Color Profile" -msgstr "Farb-Profil verknĂĽpfen" +#: ../src/ui/dialog/clonetiler.cpp:260 +msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" +"Reihenabstände bleiben gleich (1), laufen zusammen (<1) oder auseinander (>1)" -#: ../src/ui/dialog/document-properties.cpp:598 -msgid "Remove linked color profile" -msgstr "VerknĂĽpftes Farb-Profil entfernen" +#: ../src/ui/dialog/clonetiler.cpp:267 +msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" +"Spaltenabstände bleiben gleich (1), laufen zusammen (<1) oder auseinander " +"(>1)" -#: ../src/ui/dialog/document-properties.cpp:611 -msgid "Linked Color Profiles:" -msgstr "VerknĂĽpfte Farb-Profile:" +#. TRANSLATORS: "Alternate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 +#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 +#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 +msgid "Alternate:" +msgstr "Abwechseln:" -#: ../src/ui/dialog/document-properties.cpp:613 -msgid "Available Color Profiles:" -msgstr "VerfĂĽgbare Farb-Profile:" +#: ../src/ui/dialog/clonetiler.cpp:281 +msgid "Alternate the sign of shifts for each row" +msgstr "Vorzeichenumkehrung der Verschiebungen fĂĽr jede Reihe" -#: ../src/ui/dialog/document-properties.cpp:615 -msgid "Link Profile" -msgstr "Profil verknĂĽpfen" +#: ../src/ui/dialog/clonetiler.cpp:286 +msgid "Alternate the sign of shifts for each column" +msgstr "Vorzeichenumkehrung der Verschiebungen fĂĽr jede Spalte" -#: ../src/ui/dialog/document-properties.cpp:624 -msgid "Unlink Profile" -msgstr "Profil entknĂĽpfen" +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 +#: ../src/ui/dialog/clonetiler.cpp:533 +msgid "Cumulate:" +msgstr "Anhäufen:" -#: ../src/ui/dialog/document-properties.cpp:708 -msgid "Profile Name" -msgstr "Profil-Name" +#: ../src/ui/dialog/clonetiler.cpp:299 +msgid "Cumulate the shifts for each row" +msgstr "Verschiebungen fĂĽr sukzessive Reihen aufaddieren" -#: ../src/ui/dialog/document-properties.cpp:744 -msgid "External scripts" -msgstr "Externe Scripte" +#: ../src/ui/dialog/clonetiler.cpp:304 +msgid "Cumulate the shifts for each column" +msgstr "Verschiebungen fĂĽr sukzessive Spalten aufaddieren" -#: ../src/ui/dialog/document-properties.cpp:745 -msgid "Embedded scripts" -msgstr "Eingebettete Scripte" +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:311 +msgid "Exclude tile:" +msgstr "Kachel ausschlieĂźen:" -#: ../src/ui/dialog/document-properties.cpp:750 -msgid "External script files:" -msgstr "Externe Script-Dateien:" +#: ../src/ui/dialog/clonetiler.cpp:317 +msgid "Exclude tile height in shift" +msgstr "Kachelhöhe in Verschiebung nicht einberechnen" -#: ../src/ui/dialog/document-properties.cpp:752 -msgid "Add the current file name or browse for a file" -msgstr "" -"FĂĽgen Sie den aktuellen Dateinamen hinzu oder suchen Sie nach einer Datei" +#: ../src/ui/dialog/clonetiler.cpp:322 +msgid "Exclude tile width in shift" +msgstr "Kachelbreite in Verschiebung nicht einberechnen" -#: ../src/ui/dialog/document-properties.cpp:761 -#: ../src/ui/dialog/document-properties.cpp:850 -#: ../src/ui/widget/selected-style.cpp:339 -msgid "Remove" -msgstr "Entfernen" +#: ../src/ui/dialog/clonetiler.cpp:331 +msgid "Sc_ale" +msgstr "_MaĂźstab" -#: ../src/ui/dialog/document-properties.cpp:831 -msgid "Filename" -msgstr "Dateiname" +#: ../src/ui/dialog/clonetiler.cpp:339 +msgid "Scale X:" +msgstr "X-Skalierung:" -#: ../src/ui/dialog/document-properties.cpp:839 -msgid "Embedded script files:" -msgstr "Eingebettete Script-Dateien:" +#: ../src/ui/dialog/clonetiler.cpp:347 +#, no-c-format +msgid "Horizontal scale per row (in % of tile width)" +msgstr "Horizontale Skalierung pro Reihe (in % der Kachelbreite)" -#: ../src/ui/dialog/document-properties.cpp:841 -msgid "New" -msgstr "Neu" +#: ../src/ui/dialog/clonetiler.cpp:355 +#, no-c-format +msgid "Horizontal scale per column (in % of tile width)" +msgstr "Horizontale Skalierung pro Spalte (in % der Kachelbreite)" -#: ../src/ui/dialog/document-properties.cpp:920 -msgid "Script id" -msgstr "Skript id" +#: ../src/ui/dialog/clonetiler.cpp:361 +msgid "Randomize the horizontal scale by this percentage" +msgstr "Horizontale Skalierung um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/document-properties.cpp:926 -msgid "Content:" -msgstr "Inhalt:" +#: ../src/ui/dialog/clonetiler.cpp:369 +msgid "Scale Y:" +msgstr "Y-Skalierung:" -#: ../src/ui/dialog/document-properties.cpp:1043 -msgid "_Save as default" -msgstr "Zur Vorgabe machen" +#: ../src/ui/dialog/clonetiler.cpp:377 +#, no-c-format +msgid "Vertical scale per row (in % of tile height)" +msgstr "Vertikale Skalierung pro Reihe (in % der Kachelhöhe)" -#: ../src/ui/dialog/document-properties.cpp:1044 -msgid "Save this metadata as the default metadata" -msgstr "Metadaten als Standard-Metadaten abspeichern" +#: ../src/ui/dialog/clonetiler.cpp:385 +#, no-c-format +msgid "Vertical scale per column (in % of tile height)" +msgstr "Vertikale Skalierung pro Spalte (in % der Kachelhöhe)" -#: ../src/ui/dialog/document-properties.cpp:1045 -msgid "Use _default" -msgstr "Standardeinstellungen benutzen" +#: ../src/ui/dialog/clonetiler.cpp:391 +msgid "Randomize the vertical scale by this percentage" +msgstr "Vertikale Skalierung um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/document-properties.cpp:1046 -msgid "Use the previously saved default metadata here" -msgstr "Verwenden Sie hier die zuvor gespeicherte Standardmetadaten" +#: ../src/ui/dialog/clonetiler.cpp:405 +msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" +"Reihenabstände bleiben gleich (1), laufen zusammen (<1) oder vergrößern sich " +"(>1)" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1119 -msgid "Add external script..." -msgstr "FĂĽge externes Script hinzu..." +#: ../src/ui/dialog/clonetiler.cpp:411 +msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" +"Spaltenabstände bleiben gleich (1), laufen zusammen (<1) oder vergrößern " +"sich (>1)" -#: ../src/ui/dialog/document-properties.cpp:1158 -msgid "Select a script to load" -msgstr "Skript zum Laden auswählen" +#: ../src/ui/dialog/clonetiler.cpp:419 +msgid "Base:" +msgstr "Basis:" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1186 -msgid "Add embedded script..." -msgstr "FĂĽge eingebettetes Script hinzu..." +#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 +msgid "" +"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" +msgstr "" +"Basis einer logarithmischen Spirale: 0 - nicht benutzt, (<1) - konvergent, " +"(>1) - divergent" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1217 -msgid "Remove external script" -msgstr "Lösche externes Script" +#: ../src/ui/dialog/clonetiler.cpp:445 +msgid "Alternate the sign of scales for each row" +msgstr "Vorzeichen der Skalierungen fĂĽr jede Reihe umkehren" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1247 -msgid "Remove embedded script" -msgstr "Eingebettetes Script entfernen" +#: ../src/ui/dialog/clonetiler.cpp:450 +msgid "Alternate the sign of scales for each column" +msgstr "Vorzeichen der Skalierungen fĂĽr jede Spalte umkehren" -#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1344 -msgid "Edit embedded script" -msgstr "Eingebettetes Script bearbeiten" +#: ../src/ui/dialog/clonetiler.cpp:463 +msgid "Cumulate the scales for each row" +msgstr "Skalierung fĂĽr sukzessive Reihen aufaddieren" -#: ../src/ui/dialog/document-properties.cpp:1427 -msgid "Creation" -msgstr "Erzeugen" +#: ../src/ui/dialog/clonetiler.cpp:468 +msgid "Cumulate the scales for each column" +msgstr "Skalierung fĂĽr sukzessive Spalten aufaddieren" -#: ../src/ui/dialog/document-properties.cpp:1428 -msgid "Defined grids" -msgstr "Definierte Gitter" +#: ../src/ui/dialog/clonetiler.cpp:477 +msgid "_Rotation" +msgstr "_Rotation" -#: ../src/ui/dialog/document-properties.cpp:1675 -msgid "Remove grid" -msgstr "Gitter entfernen" +#: ../src/ui/dialog/clonetiler.cpp:485 +msgid "Angle:" +msgstr "Winkel:" -#: ../src/ui/dialog/document-properties.cpp:1754 -#, fuzzy -msgid "Changed document unit" -msgstr "Unbenanntes Dokument %d" +#: ../src/ui/dialog/clonetiler.cpp:493 +#, no-c-format +msgid "Rotate tiles by this angle for each row" +msgstr "Kacheln um diesen Winkel fĂĽr jede Reihe drehen" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2796 -msgid "_Page" -msgstr "_Seite" +#: ../src/ui/dialog/clonetiler.cpp:501 +#, no-c-format +msgid "Rotate tiles by this angle for each column" +msgstr "Kacheln um diesen Winkel fĂĽr jede Spalte drehen" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2800 -msgid "_Drawing" -msgstr "_Zeichnung" +#: ../src/ui/dialog/clonetiler.cpp:507 +msgid "Randomize the rotation angle by this percentage" +msgstr "Rotationswinkel um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2802 -msgid "_Selection" -msgstr "_Auswahl" +#: ../src/ui/dialog/clonetiler.cpp:521 +msgid "Alternate the rotation direction for each row" +msgstr "Vorzeichenumkehr des Rotationsfaktors bei jeder Reihe" -#: ../src/ui/dialog/export.cpp:152 -msgid "_Custom" -msgstr "_Benutzerdefiniert" +#: ../src/ui/dialog/clonetiler.cpp:526 +msgid "Alternate the rotation direction for each column" +msgstr "Vorzeichenumkehr des Rotationsfaktors bei jeder Spalte" -#: ../src/ui/dialog/export.cpp:170 ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 -#: ../share/extensions/render_gears.inx.h:6 -msgid "Units:" -msgstr "Einheiten:" +#: ../src/ui/dialog/clonetiler.cpp:539 +msgid "Cumulate the rotation for each row" +msgstr "Rotation fĂĽr sukzessive Reihen aufaddieren" -#: ../src/ui/dialog/export.cpp:172 -msgid "_Export As..." -msgstr "_exportieren als…" +#: ../src/ui/dialog/clonetiler.cpp:544 +msgid "Cumulate the rotation for each column" +msgstr "Rotation fĂĽr sukzessive Spalten aufaddieren" -#: ../src/ui/dialog/export.cpp:175 -msgid "B_atch export all selected objects" -msgstr "Alle gewählten Objekte auf einmal exportieren" +#: ../src/ui/dialog/clonetiler.cpp:553 +msgid "_Blur & opacity" +msgstr "_Weichzeichner und Deckkraft" -# !!! "export hints" are not clear to the user I guess -#: ../src/ui/dialog/export.cpp:175 -msgid "" -"Export each selected object into its own PNG file, using export hints if any " -"(caution, overwrites without asking!)" -msgstr "" -"Exportiert jedes gewählte Objekt in eine eigene PNG-Datei, unter " -"BerĂĽcksichtigung von Exporthinweisen, wenn vorhanden (Vorsicht, ĂĽberschreibt " -"ohne Warnung!)" +#: ../src/ui/dialog/clonetiler.cpp:562 +msgid "Blur:" +msgstr "Weichzeichner:" -#: ../src/ui/dialog/export.cpp:177 -msgid "Hide a_ll except selected" -msgstr "Alle auĂźer Ausgewählte verstecken" +#: ../src/ui/dialog/clonetiler.cpp:568 +msgid "Blur tiles by this percentage for each row" +msgstr "Weichzeichnen der Kacheln um diesen Prozentsatz fĂĽr jede Reihe" -#: ../src/ui/dialog/export.cpp:177 -msgid "In the exported image, hide all objects except those that are selected" -msgstr "Verstecke alle Objekte auĂźer den gerade gewählten im exportierten Bild" +#: ../src/ui/dialog/clonetiler.cpp:574 +msgid "Blur tiles by this percentage for each column" +msgstr "Weichzeichnen der Kacheln um diesen Prozentsatz fĂĽr jede Spalte" -#: ../src/ui/dialog/export.cpp:178 -msgid "Close when complete" -msgstr "SchlieĂźen wenn fertig" +#: ../src/ui/dialog/clonetiler.cpp:580 +msgid "Randomize the tile blur by this percentage" +msgstr "Kachel-Weichzeichnung zufällig um diesen Prozentsatz verändern" -#: ../src/ui/dialog/export.cpp:178 -msgid "Once the export completes, close this dialog" -msgstr "Wenn der Export fertig ist, schlieĂźe den Dialog." +#: ../src/ui/dialog/clonetiler.cpp:594 +msgid "Alternate the sign of blur change for each row" +msgstr "Vorzeichen der Weichzeichnungs-Ă„nderungen bei jeder Reihe umkehren" -#: ../src/ui/dialog/export.cpp:180 -msgid "_Export" -msgstr "_Exportieren" +#: ../src/ui/dialog/clonetiler.cpp:599 +msgid "Alternate the sign of blur change for each column" +msgstr "Vorzeichen der Weichzeichnungs-Ă„nderungen bei jeder Spalte umkehren" -#: ../src/ui/dialog/export.cpp:198 -msgid "Export area" -msgstr "Exportbereich" +#: ../src/ui/dialog/clonetiler.cpp:608 +msgid "Opacity:" +msgstr "Deckkraft:" -#: ../src/ui/dialog/export.cpp:237 -msgid "_x0:" -msgstr "_x0:" +#: ../src/ui/dialog/clonetiler.cpp:614 +msgid "Decrease tile opacity by this percentage for each row" +msgstr "" +"Verringern der Deckkraft der Kacheln um diesen Prozentsatz fĂĽr jede Reihe" -#: ../src/ui/dialog/export.cpp:241 -msgid "x_1:" -msgstr "x_1:" +#: ../src/ui/dialog/clonetiler.cpp:620 +msgid "Decrease tile opacity by this percentage for each column" +msgstr "" +"Verringern der Deckkraft der Kacheln um diesen Prozentsatz fĂĽr jede Spalte" -#: ../src/ui/dialog/export.cpp:245 -msgid "Wid_th:" -msgstr "Brei_te:" +#: ../src/ui/dialog/clonetiler.cpp:626 +msgid "Randomize the tile opacity by this percentage" +msgstr "Deckkraft der Kacheln um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/export.cpp:249 -msgid "_y0:" -msgstr "_y0:" +#: ../src/ui/dialog/clonetiler.cpp:640 +msgid "Alternate the sign of opacity change for each row" +msgstr "Vorzeichen des Deckkraftfaktors bei jeder Reihe umkehren" -#: ../src/ui/dialog/export.cpp:253 -msgid "y_1:" -msgstr "y_1:" +#: ../src/ui/dialog/clonetiler.cpp:645 +msgid "Alternate the sign of opacity change for each column" +msgstr "Vorzeichen des Deckkraftfaktors bei jeder Spalte umkehren" -#: ../src/ui/dialog/export.cpp:257 -msgid "Hei_ght:" -msgstr "Höhe:" +#: ../src/ui/dialog/clonetiler.cpp:653 +msgid "Co_lor" +msgstr "_Farbe" -#: ../src/ui/dialog/export.cpp:272 -msgid "Image size" -msgstr "Bildgröße" +#: ../src/ui/dialog/clonetiler.cpp:663 +msgid "Initial color: " +msgstr "UrsprĂĽngliche Farbe: " -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/export.cpp:301 -msgid "pixels at" -msgstr "Pixel bei" +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "Initial color of tiled clones" +msgstr "UrsprĂĽngliche Farbe der gekachelten Klone" -#: ../src/ui/dialog/export.cpp:296 -msgid "dp_i" -msgstr "dp_i" +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "" +"Initial color for clones (works only if the original has unset fill or " +"stroke)" +msgstr "" +"UrsprĂĽngliche Farbe der Klone (FĂĽllung oder Kontur des Originals dĂĽrfen " +"nicht gesetzt sein )" -#: ../src/ui/dialog/export.cpp:301 ../src/ui/dialog/transformation.cpp:82 -#: ../src/ui/widget/page-sizer.cpp:237 -msgid "_Height:" -msgstr "_Höhe:" +#: ../src/ui/dialog/clonetiler.cpp:682 +msgid "H:" +msgstr "H:" -#: ../src/ui/dialog/export.cpp:309 -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 -#: ../src/ui/dialog/inkscape-preferences.cpp:1438 -#: ../src/ui/dialog/inkscape-preferences.cpp:1462 -msgid "dpi" -msgstr "dpi" +#: ../src/ui/dialog/clonetiler.cpp:688 +msgid "Change the tile hue by this percentage for each row" +msgstr "Farbton der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" -#: ../src/ui/dialog/export.cpp:317 -msgid "_Filename" -msgstr "_Dateiname" +#: ../src/ui/dialog/clonetiler.cpp:694 +msgid "Change the tile hue by this percentage for each column" +msgstr "Farbton der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" -#: ../src/ui/dialog/export.cpp:359 -msgid "Export the bitmap file with these settings" -msgstr "Bitmapdatei mit diesen Einstellungen exportieren" +#: ../src/ui/dialog/clonetiler.cpp:700 +msgid "Randomize the tile hue by this percentage" +msgstr "Farbton der Kachel zufällig um diesen Prozentsatz verändern" -#: ../src/ui/dialog/export.cpp:612 -#, c-format -msgid "B_atch export %d selected object" -msgid_plural "B_atch export %d selected objects" -msgstr[0] "B_atch-Export von %d gewähltem Objekt" -msgstr[1] "B_atch-Export von %d gewählten Objekten" +#: ../src/ui/dialog/clonetiler.cpp:709 +msgid "S:" +msgstr "S:" -#: ../src/ui/dialog/export.cpp:928 -msgid "Export in progress" -msgstr "Exportieren läuft" +#: ../src/ui/dialog/clonetiler.cpp:715 +msgid "Change the color saturation by this percentage for each row" +msgstr "" +"Farbsättigung der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" -#: ../src/ui/dialog/export.cpp:1018 -msgid "No items selected." -msgstr "Kein Element gewählt." +#: ../src/ui/dialog/clonetiler.cpp:721 +msgid "Change the color saturation by this percentage for each column" +msgstr "" +"Farbsättigung der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" -#: ../src/ui/dialog/export.cpp:1022 ../src/ui/dialog/export.cpp:1024 -msgid "Exporting %1 files" -msgstr "Exportiere %1 Dateien" +#: ../src/ui/dialog/clonetiler.cpp:727 +msgid "Randomize the color saturation by this percentage" +msgstr "Farbsättigung um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/export.cpp:1064 ../src/ui/dialog/export.cpp:1066 -#, c-format -msgid "Exporting file %s..." -msgstr "Exportiere Dateie %s..." +#: ../src/ui/dialog/clonetiler.cpp:735 +msgid "L:" +msgstr "L:" -#: ../src/ui/dialog/export.cpp:1075 ../src/ui/dialog/export.cpp:1166 -#, c-format -msgid "Could not export to filename %s.\n" -msgstr "Konnte nicht als Datei %s exportieren.\n" +#: ../src/ui/dialog/clonetiler.cpp:741 +msgid "Change the color lightness by this percentage for each row" +msgstr "Helligkeit der Kacheln um diesen Prozentsatz fĂĽr jede Reihe verändern" -#: ../src/ui/dialog/export.cpp:1078 -#, c-format -msgid "Could not export to filename %s." -msgstr "Konnte nicht als Datei %s exportieren." +#: ../src/ui/dialog/clonetiler.cpp:747 +msgid "Change the color lightness by this percentage for each column" +msgstr "Helligkeit der Kacheln um diesen Prozentsatz fĂĽr jede Spalte verändern" -#: ../src/ui/dialog/export.cpp:1093 -#, c-format -msgid "Successfully exported %d files from %d selected items." -msgstr "" -"Erfolgreich %d Dateien aus %d ausgewählten Artikeln exportiert." +#: ../src/ui/dialog/clonetiler.cpp:753 +msgid "Randomize the color lightness by this percentage" +msgstr "Helligkeitsanteil der Farbe zufällig um diesen Prozentsatz verändern" -#: ../src/ui/dialog/export.cpp:1104 -msgid "You have to enter a filename." -msgstr "Sie mĂĽssen einen Dateinamen angeben" +#: ../src/ui/dialog/clonetiler.cpp:767 +msgid "Alternate the sign of color changes for each row" +msgstr "Vorzeichen der Farbänderungen bei jeder Reihe umkehren" -#: ../src/ui/dialog/export.cpp:1105 -msgid "You have to enter a filename" -msgstr "Sie mĂĽssen einen Dateinamen angeben" +#: ../src/ui/dialog/clonetiler.cpp:772 +msgid "Alternate the sign of color changes for each column" +msgstr "Vorzeichen der Farbänderungen bei jeder Spalte umkehren" -#: ../src/ui/dialog/export.cpp:1119 -msgid "The chosen area to be exported is invalid." -msgstr "Der zum Exportieren gewählte Bereich ist ungĂĽltig" +#: ../src/ui/dialog/clonetiler.cpp:780 +msgid "_Trace" +msgstr "Bild _vektorisieren" -#: ../src/ui/dialog/export.cpp:1120 -msgid "The chosen area to be exported is invalid" -msgstr "Der zum Exportieren gewählte Bereich ist ungĂĽltig" +#: ../src/ui/dialog/clonetiler.cpp:792 +msgid "Trace the drawing under the tiles" +msgstr "Zeichnung unter den Kacheln vektorisieren" -#: ../src/ui/dialog/export.cpp:1135 -#, c-format -msgid "Directory %s does not exist or is not a directory.\n" -msgstr "Das Verzeichnis %s existiert nicht oder ist kein Verzeichnis.\n" +#: ../src/ui/dialog/clonetiler.cpp:796 +msgid "" +"For each clone, pick a value from the drawing in that clone's location and " +"apply it to the clone" +msgstr "" +"FĂĽr jeden Klon den entsprechenden Wert an dessen Stelle aus der Zeichnung " +"anwenden" -#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image -#: ../src/ui/dialog/export.cpp:1149 ../src/ui/dialog/export.cpp:1151 -msgid "Exporting %1 (%2 x %3)" -msgstr "Exportiere %1 (%2 x %3)" +#: ../src/ui/dialog/clonetiler.cpp:815 +msgid "1. Pick from the drawing:" +msgstr "1. Von der Zeichnung ĂĽbernehmen:" -#: ../src/ui/dialog/export.cpp:1177 -#, c-format -msgid "Drawing exported to %s." -msgstr "Zeichnung exportiert zu %s." +#: ../src/ui/dialog/clonetiler.cpp:833 +msgid "Pick the visible color and opacity" +msgstr "Sichtbare Farbe und Deckkraft ĂĽbernehmen" -#: ../src/ui/dialog/export.cpp:1181 -msgid "Export aborted." -msgstr "Export abgebochen." +#: ../src/ui/dialog/clonetiler.cpp:841 +msgid "Pick the total accumulated opacity" +msgstr "Zusammengerechnete Deckkraft ĂĽbernehmen" -#: ../src/ui/dialog/export.cpp:1303 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2358 ../src/widgets/desktop-widget.cpp:1123 -msgid "_Save" -msgstr "_Speichern" +#: ../src/ui/dialog/clonetiler.cpp:848 +msgid "R" +msgstr "R" -#: ../src/ui/dialog/extension-editor.cpp:81 -msgid "Information" -msgstr "Information" +#: ../src/ui/dialog/clonetiler.cpp:849 +msgid "Pick the Red component of the color" +msgstr "Rotanteil der Farbe ĂĽbernehmen" -#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 -#: ../src/verbs.cpp:309 ../share/extensions/color_HSL_adjust.inx.h:11 -#: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:6 -#: ../share/extensions/dots.inx.h:7 -#: ../share/extensions/draw_from_triangle.inx.h:35 -#: ../share/extensions/dxf_input.inx.h:10 -#: ../share/extensions/dxf_outlines.inx.h:24 -#: ../share/extensions/gcodetools_about.inx.h:3 -#: ../share/extensions/gcodetools_area.inx.h:53 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:25 -#: ../share/extensions/gcodetools_engraving.inx.h:31 -#: ../share/extensions/gcodetools_graffiti.inx.h:42 -#: ../share/extensions/gcodetools_lathe.inx.h:46 -#: ../share/extensions/gcodetools_orientation_points.inx.h:14 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 -#: ../share/extensions/generate_voronoi.inx.h:5 -#: ../share/extensions/gimp_xcf.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:27 -#: ../share/extensions/jessyInk_autoTexts.inx.h:8 -#: ../share/extensions/jessyInk_effects.inx.h:13 -#: ../share/extensions/jessyInk_export.inx.h:7 -#: ../share/extensions/jessyInk_install.inx.h:2 -#: ../share/extensions/jessyInk_keyBindings.inx.h:44 -#: ../share/extensions/jessyInk_masterSlide.inx.h:5 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 -#: ../share/extensions/jessyInk_summary.inx.h:2 -#: ../share/extensions/jessyInk_transitions.inx.h:12 -#: ../share/extensions/jessyInk_uninstall.inx.h:10 -#: ../share/extensions/jessyInk_video.inx.h:2 -#: ../share/extensions/jessyInk_view.inx.h:7 -#: ../share/extensions/layout_nup.inx.h:24 -#: ../share/extensions/lindenmayer.inx.h:13 -#: ../share/extensions/lorem_ipsum.inx.h:6 -#: ../share/extensions/measure.inx.h:16 -#: ../share/extensions/pathalongpath.inx.h:16 -#: ../share/extensions/pathscatter.inx.h:18 -#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 -#: ../share/extensions/voronoi2svg.inx.h:11 -#: ../share/extensions/web-set-att.inx.h:25 -#: ../share/extensions/web-transmit-att.inx.h:23 -#: ../share/extensions/webslicer_create_group.inx.h:11 -#: ../share/extensions/webslicer_export.inx.h:6 -msgid "Help" -msgstr "Hilfe" +#: ../src/ui/dialog/clonetiler.cpp:856 +msgid "G" +msgstr "G" -#: ../src/ui/dialog/extension-editor.cpp:83 -msgid "Parameters" -msgstr "Parameter" +#: ../src/ui/dialog/clonetiler.cpp:857 +msgid "Pick the Green component of the color" +msgstr "GrĂĽnanteil der Farbe ĂĽbernehmen" -#. Fill in the template -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:376 -msgid "No preview" -msgstr "Keine Vorschau" +#: ../src/ui/dialog/clonetiler.cpp:864 +msgid "B" +msgstr "B" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:480 -msgid "too large for preview" -msgstr "zu groĂź fĂĽr Vorschau" +#: ../src/ui/dialog/clonetiler.cpp:865 +msgid "Pick the Blue component of the color" +msgstr "Blauanteil der Farbe ĂĽbernehmen" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:565 -msgid "Enable preview" -msgstr "Vorschau einschalten" +#: ../src/ui/dialog/clonetiler.cpp:872 +msgctxt "Clonetiler color hue" +msgid "H" +msgstr "H" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:715 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:728 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:732 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:735 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:743 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:759 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:774 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:282 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:413 -msgid "All Files" -msgstr "Alle Dateitypen" +#: ../src/ui/dialog/clonetiler.cpp:873 +msgid "Pick the hue of the color" +msgstr "Farbton des Farbwertes ĂĽbernehmen" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:740 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:756 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:283 -msgid "All Inkscape Files" -msgstr "Alle Inkscape-Dateien" +#: ../src/ui/dialog/clonetiler.cpp:880 +msgctxt "Clonetiler color saturation" +msgid "S" +msgstr "S" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:747 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:763 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:777 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:284 -msgid "All Images" -msgstr "Alle Bilder" +#: ../src/ui/dialog/clonetiler.cpp:881 +msgid "Pick the saturation of the color" +msgstr "Sättigung des Farbwertes ĂĽbernehmen" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:750 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:766 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:285 -msgid "All Vectors" -msgstr "Alle Vektorgrafiken" +#: ../src/ui/dialog/clonetiler.cpp:888 +msgctxt "Clonetiler color lightness" +msgid "L" +msgstr "L" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:753 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:769 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 -msgid "All Bitmaps" -msgstr "Alle Bitmaps" +#: ../src/ui/dialog/clonetiler.cpp:889 +msgid "Pick the lightness of the color" +msgstr "Helligkeit des Farbwertes ĂĽbernehmen" -#. ###### File options -#. ###### Do we want the .xxx extension automatically added? -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1002 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1560 -msgid "Append filename extension automatically" -msgstr "Dateinamenserweiterung automatisch anhängen" +#: ../src/ui/dialog/clonetiler.cpp:899 +msgid "2. Tweak the picked value:" +msgstr "2. Ăśbernommenen Wert feinjustieren:" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1175 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1428 -msgid "Guess from extension" -msgstr "Automatisch bestimmen" +#: ../src/ui/dialog/clonetiler.cpp:916 +msgid "Gamma-correct:" +msgstr "Gammakorrektur:" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1447 -msgid "Left edge of source" -msgstr "Linke Kante der Quelle" +#: ../src/ui/dialog/clonetiler.cpp:920 +msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +msgstr "" +"Mittenbereich des ĂĽbernommenen Wertes verschieben; nach oben (>0) oder unten " +"(<0)" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1448 -msgid "Top edge of source" -msgstr "Oberkante der Quelle" +#: ../src/ui/dialog/clonetiler.cpp:927 +msgid "Randomize:" +msgstr "Zufallsänderung:" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1449 -msgid "Right edge of source" -msgstr "Rechte Kante der Quelle" +#: ../src/ui/dialog/clonetiler.cpp:931 +msgid "Randomize the picked value by this percentage" +msgstr "Ăśbernommenen Wert um diesen Prozentsatz zufällig verändern" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1450 -msgid "Bottom edge of source" -msgstr "Unterkante der Quelle" +#: ../src/ui/dialog/clonetiler.cpp:938 +msgid "Invert:" +msgstr "Invertieren:" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1451 -msgid "Source width" -msgstr "Quellenbreite" +#: ../src/ui/dialog/clonetiler.cpp:942 +msgid "Invert the picked value" +msgstr "Ăśbernommenen Wert invertieren" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1452 -msgid "Source height" -msgstr "Quellenhöhe" +#: ../src/ui/dialog/clonetiler.cpp:948 +msgid "3. Apply the value to the clones':" +msgstr "3. Wert auf die Klone anwenden:" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1453 -msgid "Destination width" -msgstr "Zielbreite" +#: ../src/ui/dialog/clonetiler.cpp:963 +msgid "Presence" +msgstr "Anwesenheit" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1454 -msgid "Destination height" -msgstr "Zielhöhe" +#: ../src/ui/dialog/clonetiler.cpp:966 +msgid "" +"Each clone is created with the probability determined by the picked value in " +"that point" +msgstr "" +"Jeder Klon wird mit der Wahrscheinlichkeit erzeugt, welche sich aus dem Wert " +"an dieser Stelle ergibt" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1455 -msgid "Resolution (dots per inch)" -msgstr "Auflösung (Punkte pro Zoll)" +#: ../src/ui/dialog/clonetiler.cpp:973 +msgid "Size" +msgstr "Größe" -#. ######################################### -#. ## EXTRA WIDGET -- SOURCE SIDE -#. ######################################### -#. ##### Export options buttons/spinners, etc -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 -msgid "Document" -msgstr "Dokument" +#: ../src/ui/dialog/clonetiler.cpp:976 +msgid "Each clone's size is determined by the picked value in that point" +msgstr "Die jeweilige Größe der Klone hängt vom Wert an diesem Punkt ab" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 ../src/verbs.cpp:175 -#: ../src/widgets/desktop-widget.cpp:1997 -#: ../share/extensions/printing_marks.inx.h:18 -msgid "Selection" -msgstr "Auswahl" +#: ../src/ui/dialog/clonetiler.cpp:986 +msgid "" +"Each clone is painted by the picked color (the original must have unset fill " +"or stroke)" +msgstr "" +"Jeder Klon wird in der ĂĽbernommenen Farbe gezeichnet (FĂĽllung oder Kontur " +"des Originals dĂĽrfen nicht gesetzt sein)" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 -msgctxt "Export dialog" -msgid "Custom" -msgstr "Benutzerdefiniert" +#: ../src/ui/dialog/clonetiler.cpp:996 +msgid "Each clone's opacity is determined by the picked value in that point" +msgstr "" +"Die Deckkraft jedes Klons wird durch den Wert an dieser Stelle bestimmt" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1525 -msgid "Source" -msgstr "Quelle" +#: ../src/ui/dialog/clonetiler.cpp:1044 +msgid "How many rows in the tiling" +msgstr "Anzahl der Reihen beim Kacheln" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 -msgid "Cairo" -msgstr "Cairo" +#: ../src/ui/dialog/clonetiler.cpp:1074 +msgid "How many columns in the tiling" +msgstr "Anzahl der Spalten beim Kacheln" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1548 -msgid "Antialias" -msgstr "Kantenglättung" +#: ../src/ui/dialog/clonetiler.cpp:1119 +msgid "Width of the rectangle to be filled" +msgstr "Breite des zu fĂĽllenden Rechtecks" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 -msgid "All Executable Files" -msgstr "Alle ausfĂĽhrbaren Dateien" +#: ../src/ui/dialog/clonetiler.cpp:1152 +msgid "Height of the rectangle to be filled" +msgstr "Höhe des zu fĂĽllenden Rechtecks" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 -msgid "Show Preview" -msgstr "Zeige Vorschau" +#: ../src/ui/dialog/clonetiler.cpp:1169 +msgid "Rows, columns: " +msgstr "Reihen, Spalten: " -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 -msgid "No file selected" -msgstr "Keine Datei ausgewählt" +#: ../src/ui/dialog/clonetiler.cpp:1170 +msgid "Create the specified number of rows and columns" +msgstr "Angegeben Anzahl von Reihen und Spalten erzeugen" -#: ../src/ui/dialog/fill-and-stroke.cpp:62 -msgid "_Fill" -msgstr "_FĂĽllen" +#: ../src/ui/dialog/clonetiler.cpp:1179 +msgid "Width, height: " +msgstr "Breite, Höhe: " -#: ../src/ui/dialog/fill-and-stroke.cpp:63 -msgid "Stroke _paint" -msgstr "_Farbe der Kontur" +#: ../src/ui/dialog/clonetiler.cpp:1180 +msgid "Fill the specified width and height with the tiling" +msgstr "Durch Höhe und Breite angegeben Bereich mit FĂĽllmuster versehen" -#: ../src/ui/dialog/fill-and-stroke.cpp:64 -msgid "Stroke st_yle" -msgstr "_Muster der Kontur" +#: ../src/ui/dialog/clonetiler.cpp:1201 +msgid "Use saved size and position of the tile" +msgstr "Gespeicherte Größe und Position der Kachel verwenden" -#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +#: ../src/ui/dialog/clonetiler.cpp:1204 msgid "" -"This matrix determines a linear transform on color space. Each line affects " -"one of the color components. Each column determines how much of each color " -"component from the input is passed to the output. The last column does not " -"depend on input colors, so can be used to adjust a constant component value." +"Pretend that the size and position of the tile are the same as the last time " +"you tiled it (if any), instead of using the current size" msgstr "" -"Diese Matrix definiert eine lineare Transformation im Farbraum. Jede Zeile " -"wirkt auf eine der Farbkomponenten des Ausgangs, jede Spalte bestimmt den " -"EinfluĂź der jeweiligen Eingangskomponente. Die letzte Spalte gibt einen " -"konstanten Grundwert der Ausgangskomponenten vor. " - -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 -msgid "Image File" -msgstr "Bild-Datei" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 -msgid "Selected SVG Element" -msgstr "Gewähltes SVG Element" +"Anstelle der aktuellen Größe die letzte Position und Größe der Kachel/" +"MusterfĂĽllung vorgeben" -#. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 -msgid "Select an image to be used as feImage input" -msgstr "Wählt ein Bild als Eingabe fĂĽr feBild" +#: ../src/ui/dialog/clonetiler.cpp:1238 +msgid " _Create " +msgstr " _Erzeugen " -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 -msgid "This SVG filter effect does not require any parameters." -msgstr "Dieser SVG-Filtereffekt benötigt keine Parameter." +#: ../src/ui/dialog/clonetiler.cpp:1240 +msgid "Create and tile the clones of the selection" +msgstr "Klone der Auswahl erzeugen und kacheln" -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 -msgid "This SVG filter effect is not yet implemented in Inkscape." -msgstr "Dieser SVG-Filtereffekt ist noch nicht in Inkscape implementiert." +#. TRANSLATORS: if a group of objects are "clumped" together, then they +#. are unevenly spread in the given amount of space - as shown in the +#. diagrams on the left in the following screenshot: +#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png +#. So unclumping is the process of spreading a number of objects out more evenly. +#: ../src/ui/dialog/clonetiler.cpp:1260 +msgid " _Unclump " +msgstr " Entkl_umpen " -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 -msgid "Slope" +#: ../src/ui/dialog/clonetiler.cpp:1261 +msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" +"Klone gleichmäßiger verteilen, um das Verklumpen zu verringern; mehrmals " +"anwendbar" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 -msgid "Intercept" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1267 +msgid " Re_move " +msgstr " _Entfernen " -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 -msgid "Amplitude" +#: ../src/ui/dialog/clonetiler.cpp:1268 +msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "" +"Vorhandene gekachelte Klone des ausgewählten Objektes entfernen (nur " +"Geschwister)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 -msgid "Exponent" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1284 +msgid " R_eset " +msgstr " _ZurĂĽcksetzen " -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 -msgid "New transfer function type" +#. TRANSLATORS: "change" is a noun here +#: ../src/ui/dialog/clonetiler.cpp:1286 +msgid "" +"Reset all shifts, scales, rotates, opacity and color changes in the dialog " +"to zero" msgstr "" +"RĂĽcksetzen aller Verschiebungen, Skalierungen, Rotationen und Deckkraft- und " +"Farbanpassungen im Dialogfenster" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 -msgid "Light Source:" -msgstr "Lichtquelle:" +#: ../src/ui/dialog/clonetiler.cpp:1359 +msgid "Nothing selected." +msgstr "Es wurde nichts ausgewählt." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 -msgid "Direction angle for the light source on the XY plane, in degrees" -msgstr "Winkel, aus dem das Licht in der XY-Ebene kommt, in °" +#: ../src/ui/dialog/clonetiler.cpp:1365 +msgid "More than one object selected." +msgstr "Mehr als ein Objekt ausgewählt." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -msgid "Direction angle for the light source on the YZ plane, in degrees" -msgstr "Winkel, aus dem das Licht in der YZ-Ebene kommt, in °" +#: ../src/ui/dialog/clonetiler.cpp:1372 +#, c-format +msgid "Object has %d tiled clones." +msgstr "Das Objekt hat %d gekachelte Klone." -#. default x: -#. default y: -#. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -msgid "Location:" -msgstr "Ort:" +#: ../src/ui/dialog/clonetiler.cpp:1377 +msgid "Object has no tiled clones." +msgstr "Das Objekt hat keine gekachelten Klone." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "X coordinate" -msgstr "X-Koordinate" +#: ../src/ui/dialog/clonetiler.cpp:2097 +msgid "Select one object whose tiled clones to unclump." +msgstr "Ein Objekt auswählen, dessen gekachelte Klone entklumpt werden." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Y coordinate" -msgstr "Y-Koordinate" +#: ../src/ui/dialog/clonetiler.cpp:2119 +msgid "Unclump tiled clones" +msgstr "Gekachelte Klone entklumpen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Z coordinate" -msgstr "X-Koordinate" +#: ../src/ui/dialog/clonetiler.cpp:2148 +msgid "Select one object whose tiled clones to remove." +msgstr "Ein Objekt auswählen, dessen gekachelte Klone entfernt werden." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Points At" -msgstr "Zeigt auf" +#: ../src/ui/dialog/clonetiler.cpp:2171 +msgid "Delete tiled clones" +msgstr "Gekachelte Klone löschen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Specular Exponent" -msgstr "Glanzpunkt-Exponent" +#: ../src/ui/dialog/clonetiler.cpp:2224 +msgid "" +"If you want to clone several objects, group them and clone the " +"group." +msgstr "" +"Wenn mehrere Objekte geklont werden sollen, sollten sie gruppiert und " +"dann die Gruppe geklont werden." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Exponent value controlling the focus for the light source" -msgstr "Exponent bestimmt den Fokus der Lichtquelle" +#: ../src/ui/dialog/clonetiler.cpp:2233 +msgid "Creating tiled clones..." +msgstr "Geschachtelte Klone erstellen..." -#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "Cone Angle" -msgstr "Konuswinkel" +#: ../src/ui/dialog/clonetiler.cpp:2638 +msgid "Create tiled clones" +msgstr "Gekachelte Klone erzeugen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "" -"This is the angle between the spot light axis (i.e. the axis between the " -"light source and the point to which it is pointing at) and the spot light " -"cone. No light is projected outside this cone." -msgstr "" -"Ă–ffnungswinkel des Lichtkonus. AuĂźerhalb des Konus gibt es kein Licht. " +#: ../src/ui/dialog/clonetiler.cpp:2871 +msgid "Per row:" +msgstr "Pro Reihe:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 -msgid "New light source" -msgstr "Neue Lichtquelle" +#: ../src/ui/dialog/clonetiler.cpp:2889 +msgid "Per column:" +msgstr "Pro Spalte:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 -msgid "_Duplicate" -msgstr "_Duplizieren" +#: ../src/ui/dialog/clonetiler.cpp:2897 +msgid "Randomize:" +msgstr "Zufallsfaktor:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 -msgid "_Filter" -msgstr "_Filter" +#: ../src/ui/dialog/color-item.cpp:131 +#, c-format +msgid "" +"Color: %s; Click to set fill, Shift+click to set stroke" +msgstr "" +"Farbe: %s; Klick setzt die FĂĽllung, Shift+Klick legt " +"die Konturfarbe fest" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 -msgid "R_ename" -msgstr "Umb_enennen" +#: ../src/ui/dialog/color-item.cpp:509 +msgid "Change color definition" +msgstr "Farbdefinition ändern" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 -msgid "Rename filter" -msgstr "Filter umbenennen" +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove stroke color" +msgstr "Konturfarbe entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 -msgid "Apply filter" -msgstr "Filter anwenden" +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove fill color" +msgstr "FĂĽllfarbe entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 -msgid "filter" -msgstr "Filter" +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set stroke color to none" +msgstr "Farbe der Kontur auf nichts setzen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 -msgid "Add filter" -msgstr "Filter hinzufĂĽgen" +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set fill color to none" +msgstr "FĂĽllungsfarbe auf nichts setzen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 -msgid "Duplicate filter" -msgstr "Filter duplizieren" +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set stroke color from swatch" +msgstr "Konturfarbe aus der Farbfelder-Palette auswählen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 -msgid "_Effect" -msgstr "_Effekt" +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set fill color from swatch" +msgstr "FĂĽllfarbe aus der Farbfelder-Palette auswählen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 -msgid "Connections" -msgstr "Verbindungen" +#: ../src/ui/dialog/debug.cpp:73 +msgid "Messages" +msgstr "Meldungen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 -msgid "Remove filter primitive" -msgstr "Filterbaustein entfernen" +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +msgid "_Clear" +msgstr "_Leeren" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 -msgid "Remove merge node" -msgstr "Zusammengefassten Knoten löschen" +#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +msgid "Capture log messages" +msgstr "Fehlerprotokoll mitschreiben" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 -msgid "Reorder filter primitive" -msgstr "Filterbausteine umordnen" +#: ../src/ui/dialog/debug.cpp:95 +msgid "Release log messages" +msgstr "Fehlerprotokoll verwerfen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 -msgid "Add Effect:" -msgstr "Effekt hinzufĂĽgen:" +#: ../src/ui/dialog/document-metadata.cpp:88 +#: ../src/ui/dialog/document-properties.cpp:155 +msgid "Metadata" +msgstr "Metadaten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 -msgid "No effect selected" -msgstr "Kein Effekt gewählt" +#: ../src/ui/dialog/document-metadata.cpp:89 +#: ../src/ui/dialog/document-properties.cpp:156 +msgid "License" +msgstr "Nutzungsbedingungen - Lizenz" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 -msgid "No filter selected" -msgstr "Kein Filter gewählt" +# !!! +#: ../src/ui/dialog/document-metadata.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:966 +msgid "Dublin Core Entities" +msgstr "Dublin-Core-Entities" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 -msgid "Effect parameters" -msgstr "Effektparameter" +#: ../src/ui/dialog/document-metadata.cpp:168 +#: ../src/ui/dialog/document-properties.cpp:1028 +msgid "License" +msgstr "Lizenz" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 -msgid "Filter General Settings" -msgstr "Allgemeine Filtereinstellungen" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:108 +msgid "Show page _border" +msgstr "_Rand der Seite anzeigen" -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Coordinates:" -msgstr "Koordinaten:" +#: ../src/ui/dialog/document-properties.cpp:108 +msgid "If set, rectangular page border is shown" +msgstr "Wenn gesetzt, dann wird ein rechteckiger Seitenrand gezeigt" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "X coordinate of the left corners of filter effects region" -msgstr "X-Koordinate der linken Ecke des Ausschnitts, auf den Filter wirkt" +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "Border on _top of drawing" +msgstr "Rand im _Vordergrund anzeigen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Y coordinate of the upper corners of filter effects region" -msgstr "Y-Koordinate der obere Ecke des Ausschnitts, auf den Filter wirkt" +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "If set, border is always on top of the drawing" +msgstr "Wenn gesetzt, dann ist der Rand immmer im Vordergrund" -#. default width: -#. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Dimensions:" -msgstr "Dimensionen:" +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "_Show border shadow" +msgstr "Rand_schatten anzeigen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Width of filter effects region" -msgstr "Breite des Filtereffekts" +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "If set, page border shows a shadow on its right and lower side" +msgstr "" +"Wenn gesetzt, dann zeigt der Seitenrand einen Schatten an der rechten und " +"unteren Seite" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Height of filter effects region" -msgstr "Höhe des Filtereffekts" +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "Back_ground color:" +msgstr "Hintergrundfarbe:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/document-properties.cpp:111 msgid "" -"Indicates the type of matrix operation. The keyword 'matrix' indicates that " -"a full 5x4 matrix of values will be provided. The other keywords represent " -"convenience shortcuts to allow commonly used color operations to be " -"performed without specifying a complete matrix." +"Color of the page background. Note: transparency setting ignored while " +"editing but used when exporting to bitmap." msgstr "" -"Gibt den Typ der Matrix vor. Das SchlĂĽsselwort \"matrix\" erzwingt eine " -"volle 5x4-Wertematrix, während andere SchlĂĽsselwörter bequeme AbkĂĽrzungen " -"fĂĽr oft verwendete Farboperationen bereitstellen, ohne eine komplette Matrix " -"angeben zu mĂĽssen." +"Farbe des Seitenhintergrundes. Hinweis: Transparenzeinstellungen werden " +"während der Bearbeitung ignoriert, aber genutzt, wenn es als Bitmap " +"exportiert wird." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 -msgid "Value(s):" -msgstr "Wert(e):" +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Border _color:" +msgstr "_Randfarbe:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 -msgid "R:" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Page border color" +msgstr "Randfarbe der Zeichenfläche" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 -#: ../src/widgets/sp-color-icc-selector.cpp:359 -msgid "G:" -msgstr "G:" +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Color of the page border" +msgstr "Randfarbe der Zeichenfläche" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 -msgid "B:" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Default _units:" +msgstr "_Standard-Einheiten:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 -msgid "A:" -msgstr "" +#. --------------------------------------------------------------- +#. General snap options +#: ../src/ui/dialog/document-properties.cpp:117 +msgid "Show _guides" +msgstr "_FĂĽhrungslinien anzeigen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "Operator:" -msgstr "Operator:" +#: ../src/ui/dialog/document-properties.cpp:117 +msgid "Show or hide guides" +msgstr "FĂĽhrungslinien anzeigen oder ausblenden" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -msgid "K1:" -msgstr "K1:" +#: ../src/ui/dialog/document-properties.cpp:118 +msgid "Guide co_lor:" +msgstr "F_arbe der FĂĽhrungslinien:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 -msgid "" -"If the arithmetic operation is chosen, each result pixel is computed using " -"the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " -"values of the first and second inputs respectively." -msgstr "" -"Bei gewählter Arithmetischer VerknĂĽpfung wird jeder Zielbildpunkt durch die " -"Formel k1*i1*i2 + k2*i1 + k3*i2 + k4 berechnet, wobei i1 und i2 die Werte " -"der Eingangsbildpunkte sind." +#: ../src/ui/dialog/document-properties.cpp:118 +msgid "Guideline color" +msgstr "Farbe der FĂĽhrungslinien" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -msgid "K2:" -msgstr "K2:" +#: ../src/ui/dialog/document-properties.cpp:118 +msgid "Color of guidelines" +msgstr "Farbe der FĂĽhrungslinien" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -msgid "K3:" -msgstr "K3:" +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "_Highlight color:" +msgstr "_Hervorhebungsfarbe:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 -msgid "K4:" -msgstr "K4:" +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "Highlighted guideline color" +msgstr "Farbe der hervorgehobenen FĂĽhrungslinien" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "Size:" -msgstr "Größe:" +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "Color of a guideline when it is under mouse" +msgstr "Farbe der FĂĽhrungslinie falls unter dem Mauszeiger" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "width of the convolve matrix" -msgstr "Breite der Faltungsmatrix" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Snap _distance" +msgstr "Einrastabstand" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "height of the convolve matrix" -msgstr "Höhe der Faltungsmatrix" +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Snap only when _closer than:" +msgstr "Nur einrasten, wenn _näher als:" -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -#: ../src/ui/dialog/object-attributes.cpp:48 -msgid "Target:" -msgstr "Target:" +#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Always snap" +msgstr "Immer einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -msgid "" -"X coordinate of the target point in the convolve matrix. The convolution is " -"applied to pixels around this point." +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Snapping distance, in screen pixels, for snapping to objects" +msgstr "Einrastabstand in Bildschirmpixeln, um an Objekten einzurasten" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Always snap to objects, regardless of their distance" msgstr "" -"X-Koordinate des Zielpunktes der Faltung. Die Faltungsmatrix wirkt auf Pixel " -"um diesen Punkt herum." +"Wenn gesetzt, dann rasten Objekte am nahesten Objekt ein, unabhängig von der " +"Entfernung" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "" -"Y coordinate of the target point in the convolve matrix. The convolution is " -"applied to pixels around this point." +"If set, objects only snap to another object when it's within the range " +"specified below" msgstr "" -"Y-Koordinate des Zielpunktes der Faltung. Die Faltungsmatrix wirkt auf Pixel " -"um diesen Punkt herum." +"Nur an anderen Objekten einrasten, wenn diese innerhalb der unten " +"definierten Reichweite sind." -#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 -msgid "Kernel:" -msgstr "Faltungsmatrix:" +#. Options for snapping to grids +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Snap d_istance" +msgstr "Einrastabstand:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 -msgid "" -"This matrix describes the convolve operation that is applied to the input " -"image in order to calculate the pixel colors at the output. Different " -"arrangements of values in this matrix result in various possible visual " -"effects. An identity matrix would lead to a motion blur effect (parallel to " -"the matrix diagonal) while a matrix filled with a constant non-zero value " -"would lead to a common blur effect." -msgstr "" -"Diese Matrize beschreibt die Faltungsoperation, die auf das Eingangsbild " -"angewendet wird, um die Pixelfarben im Ausgang zu erhalten. Verschiedene " -"Anordnungen der Werte in der Matrix resultieren in unterschiedlichen " -"visuellen Effekten. Die 1-Matrix ergibt einen Bewegungsunschärfe-Effekt " -"(entlang der Richtung der Matrixdiagonalen), während eine Matrix mit " -"konstanten Einträgen eine isotrope Unschärfe erzeugt." +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Snap only when c_loser than:" +msgstr "Nur einrasten, wenn _näher als:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 -msgid "Divisor:" -msgstr "Teiler:" +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "Snapping distance, in screen pixels, for snapping to grid" +msgstr "Einrastabstand in Bildschirmpixeln, um in das Gitter einzurasten" + +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "Always snap to grids, regardless of the distance" +msgstr "" +"Wenn gesetzt, dann rasten Objekte an der nahesten Gitterslinie ein, " +"unabhängig von der Entfernung" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/document-properties.cpp:128 msgid "" -"After applying the kernelMatrix to the input image to yield a number, that " -"number is divided by divisor to yield the final destination color value. A " -"divisor that is the sum of all the matrix values tends to have an evening " -"effect on the overall color intensity of the result." +"If set, objects only snap to a grid line when it's within the range " +"specified below" msgstr "" -"Durch diesen Wert wird das Ergebnis der Faltung angewendet auf das " -"Eingangsbild geteilt, um den endgĂĽltigen Farbwert des Ausgangspixels zu " -"erhalten. Ist der Divisor die Summe der Matrixeinträge, so wird das Ergebnis " -"eine gemittelte Farbintensität aufweisen." +"Nur an Gitterlinien einrasten, wenn diese innerhalb der unten definierten " +"Reichweite sind." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -msgid "Bias:" -msgstr "Grundwert:" +#. Options for snapping to guides +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Snap dist_ance" +msgstr "Einrastabstand" + +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Snap only when close_r than:" +msgstr "Nur einrasten, wenn _näher als:" + +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "Snapping distance, in screen pixels, for snapping to guides" +msgstr "Einrastabstand in Bildschirmpixeln, um an FĂĽhrungslinien einzurasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -msgid "" -"This value is added to each component. This is useful to define a constant " -"value as the zero response of the filter." +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "Always snap to guides, regardless of the distance" msgstr "" -"Dieser Wert wird zu jeder Komponente hinzu addiert. Dies ergibt eine " -"Grundantwort des Filters bei leerer Eingabe." - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 -msgid "Edge Mode:" -msgstr "Kanten-Modus:" +"Objekte rasten immer an der nächsten FĂĽhrungslinie ein, unabhängig von der " +"Entfernung" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "" -"Determines how to extend the input image as necessary with color values so " -"that the matrix operations can be applied when the kernel is positioned at " -"or near the edge of the input image." +"If set, objects only snap to a guide when it's within the range specified " +"below" msgstr "" -"Legt fest, wie das Eingabebild durch kĂĽnstliche Farbwerte ĂĽber die Ränder " -"erweitert wird, damit die Faltungsmatrix bis an die Kanten des Originals " -"angewendet werden kann." +"Nur an FĂĽhrungslinien einrasten, wenn diese innerhalb der unten definierten " +"Reichweite sind." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -msgid "Preserve Alpha" -msgstr "Alphawert beibehalten" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "Snap to clip paths" +msgstr "An Ausschneidepfaden einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -msgid "If set, the alpha channel won't be altered by this filter primitive." +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "When snapping to paths, then also try snapping to clip paths" msgstr "" -"Wenn gesetzt, wird der Alphakanal von diesem Filterbaustein nicht " -"beeinflusst." +"Neben dem Einrasten an Pfaden, auch versuchen an Ausschbeidepfaden " +"einzurasten" -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -msgid "Diffuse Color:" -msgstr "Diffusreflektierende Farbe:" +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "Snap to mask paths" +msgstr "An Maskierungspfaden einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Defines the color of the light source" -msgstr "Definiert die Farbe der Lichtquelle" +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "When snapping to paths, then also try snapping to mask paths" +msgstr "" +"Neben dem Einrasten an Pfaden, auch versuchen an Maskierungspfaden " +"einzurasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -msgid "Surface Scale:" -msgstr "Oberflächenskalierung:" +#: ../src/ui/dialog/document-properties.cpp:138 +msgid "Snap perpendicularly" +msgstr "Senkrecht einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "" -"This value amplifies the heights of the bump map defined by the input alpha " -"channel" +"When snapping to paths or guides, then also try snapping perpendicularly" msgstr "" -"Dieser Wert multipliziert die Oberflächenstruktur, die aus dem Alphakanal " -"der Eingabe gewonnen wird." +"Neben dem Einrasten an Pfaden oder FĂĽhrungslinien, auch versuchen senkrecht " +"einzurasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "Constant:" -msgstr "Konstante:" +#: ../src/ui/dialog/document-properties.cpp:139 +msgid "Snap tangentially" +msgstr "Tangential einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "This constant affects the Phong lighting model." -msgstr "Diese Größe beeinflusst die Phong-Beleuchtung." +#: ../src/ui/dialog/document-properties.cpp:139 +msgid "When snapping to paths or guides, then also try snapping tangentially" +msgstr "" +"Neben dem Einrasten an Pfaden oder FĂĽhrungslinien, auch versuchen tangential " +"einzurasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 -msgid "Kernel Unit Length:" -msgstr "Größe der Faltungsmatrixeinheit:" +#: ../src/ui/dialog/document-properties.cpp:142 +msgctxt "Grid" +msgid "_New" +msgstr "_Neu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -msgid "This defines the intensity of the displacement effect." -msgstr "Dies bestimmt die Stärke des Versatzeffekts." +#: ../src/ui/dialog/document-properties.cpp:142 +msgid "Create new grid." +msgstr "Neues Gitter erzeugen." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "X displacement:" -msgstr "X-Verschiebung:" +#: ../src/ui/dialog/document-properties.cpp:143 +msgctxt "Grid" +msgid "_Remove" +msgstr "_Entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "Color component that controls the displacement in the X direction" -msgstr "Farbkomponente, die den Versatz in X-Richtung bestimmt" +#: ../src/ui/dialog/document-properties.cpp:143 +msgid "Remove selected grid." +msgstr "Ausgewähltes Gitter entfernen." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Y displacement:" -msgstr "Y-Verschiebung:" +#: ../src/ui/dialog/document-properties.cpp:150 +#: ../src/widgets/toolbox.cpp:1833 +msgid "Guides" +msgstr "FĂĽhrungslinien" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Color component that controls the displacement in the Y direction" -msgstr "Farbkomponente, die den Versatz in Y-Richtung bestimmt" +#: ../src/ui/dialog/document-properties.cpp:152 ../src/verbs.cpp:2748 +msgid "Snap" +msgstr "Einrasten" -#. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "Flood Color:" -msgstr "FĂĽllfarbe:" +#: ../src/ui/dialog/document-properties.cpp:154 +msgid "Scripting" +msgstr "Skripte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "The whole filter region will be filled with this color." -msgstr "Die gesamte Filterregion wird mit dieser Farbe gefĂĽllt." +# !!! +#: ../src/ui/dialog/document-properties.cpp:317 +msgid "General" +msgstr "Allgemein" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "Standard Deviation:" -msgstr "Standard Abweichung:" +# !!! +#: ../src/ui/dialog/document-properties.cpp:319 +msgid "Color" +msgstr "Farbe" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "The standard deviation for the blur operation." -msgstr "Standardabweichung fĂĽr die Unschärfeoperation" +# !!! +#: ../src/ui/dialog/document-properties.cpp:321 +msgid "Border" +msgstr "Rand" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "" -"Erode: performs \"thinning\" of input image.\n" -"Dilate: performs \"fattenning\" of input image." -msgstr "" -"Erodieren: \"VerdĂĽnnt\" das Eingangsbild.\n" -"Weiten:\"Verdickt\" das Eingangsbild." +# !!! +#: ../src/ui/dialog/document-properties.cpp:323 +msgid "Page Size" +msgstr "Seitengröße" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 -msgid "Source of Image:" -msgstr "Bild-Quelle:" +# !!! +#: ../src/ui/dialog/document-properties.cpp:356 +msgid "Guides" +msgstr "FĂĽhrungslinien" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "Delta X:" -msgstr "Delta X:" +#: ../src/ui/dialog/document-properties.cpp:374 +msgid "Snap to objects" +msgstr "An Objekten einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "This is how far the input image gets shifted to the right" -msgstr "Um diesen Betrag wird das Eingangsbild nach rechts verschoben." +#: ../src/ui/dialog/document-properties.cpp:376 +msgid "Snap to grids" +msgstr "Am Gitter einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "Delta Y:" -msgstr "Delta Y:" +#: ../src/ui/dialog/document-properties.cpp:378 +msgid "Snap to guides" +msgstr "An FĂĽhrungslinien einrasten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "This is how far the input image gets shifted downwards" -msgstr "Um diesen Betrag wird das Eingangsbild nach unten verschoben." +#: ../src/ui/dialog/document-properties.cpp:380 +msgid "Miscellaneous" +msgstr "Verschiedenes" -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Specular Color:" -msgstr "Glanzpunktfarbe:" +#. TODO check if this next line was sometimes needed. It being there caused an assertion. +#. Inkscape::GC::release(defsRepr); +#. inform the document, so we can undo +#. Color Management +#: ../src/ui/dialog/document-properties.cpp:493 ../src/verbs.cpp:2923 +msgid "Link Color Profile" +msgstr "Farb-Profil verknĂĽpfen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -#: ../share/extensions/interp.inx.h:2 -msgid "Exponent:" -msgstr "Exponent:" +#: ../src/ui/dialog/document-properties.cpp:594 +msgid "Remove linked color profile" +msgstr "VerknĂĽpftes Farb-Profil entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -msgid "Exponent for specular term, larger is more \"shiny\"." -msgstr "Exponent bestimmt Glanzlicht, größer ist \"glänzender\"" +#: ../src/ui/dialog/document-properties.cpp:607 +msgid "Linked Color Profiles:" +msgstr "VerknĂĽpfte Farb-Profile:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -msgid "" -"Indicates whether the filter primitive should perform a noise or turbulence " -"function." -msgstr "Zeigt an, ob der Filterbaustein Rauschen oder Turbulenz erzeugt." +#: ../src/ui/dialog/document-properties.cpp:609 +msgid "Available Color Profiles:" +msgstr "VerfĂĽgbare Farb-Profile:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 -msgid "Base Frequency:" -msgstr "Basisfrequenz:" +#: ../src/ui/dialog/document-properties.cpp:611 +msgid "Link Profile" +msgstr "Profil verknĂĽpfen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 -msgid "Octaves:" -msgstr "Oktaven:" +#: ../src/ui/dialog/document-properties.cpp:614 +msgid "Unlink Profile" +msgstr "Profil entknĂĽpfen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "Seed:" -msgstr "Startwert:" +#: ../src/ui/dialog/document-properties.cpp:692 +msgid "Profile Name" +msgstr "Profil-Name" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "The starting number for the pseudo random number generator." -msgstr "Startwert des Pseudozufallsgenerators" +#: ../src/ui/dialog/document-properties.cpp:728 +msgid "External scripts" +msgstr "Externe Scripte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 -msgid "Add filter primitive" -msgstr "Filterbaustein hinzufĂĽgen" +#: ../src/ui/dialog/document-properties.cpp:729 +msgid "Embedded scripts" +msgstr "Eingebettete Scripte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 -msgid "" -"The feBlend filter primitive provides 4 image blending modes: screen, " -"multiply, darken and lighten." -msgstr "" -"Der Mischen Filterbaustein sieht 4 Bild-Misch-Modi vor: Screen, " -"Multiplizieren, Verdunkeln und Aufhellen." +#: ../src/ui/dialog/document-properties.cpp:734 +msgid "External script files:" +msgstr "Externe Script-Dateien:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 -msgid "" -"The feColorMatrix filter primitive applies a matrix transformation to " -"color of each rendered pixel. This allows for effects like turning object to " -"grayscale, modifying color saturation and changing color hue." +#: ../src/ui/dialog/document-properties.cpp:736 +msgid "Add the current file name or browse for a file" msgstr "" -"Der Filterbaustein Farbmatrix wendet eine Matrix-Transformation auf " -"die Farben der gerenderten Pixel an. Dies erlaubt Effekte wie Umwandeln in " -"Graustufen, Modifizieren der Sättigung und Ă„nderung des Farbwerts." +"FĂĽgen Sie den aktuellen Dateinamen hinzu oder suchen Sie nach einer Datei" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 -msgid "" -"The feComponentTransfer filter primitive manipulates the input's " -"color components (red, green, blue, and alpha) according to particular " -"transfer functions, allowing operations like brightness and contrast " -"adjustment, color balance, and thresholding." -msgstr "" -"Der Filterbaustein Komponententransfer beeinflusst die " -"Farbkomponenten des Eingangs (rot, grĂĽn, blau und alpha) gemäß " -"festzulegender Transferfunktionen. Dies erlaubt Operationen wie Helligkeits- " -"und Kontrasteinstellung, Farbbalance und Schwellenwerte." +#: ../src/ui/dialog/document-properties.cpp:739 +#: ../src/ui/dialog/document-properties.cpp:817 +#: ../src/ui/widget/selected-style.cpp:339 +msgid "Remove" +msgstr "Entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 -msgid "" -"The feComposite filter primitive composites two images using one of " -"the Porter-Duff blending modes or the arithmetic mode described in SVG " -"standard. Porter-Duff blending modes are essentially logical operations " -"between the corresponding pixel values of the images." -msgstr "" -"Der Filterbaustein Kombinieren kombiniert zwei Bilder mittels einer " -"der Porter-Duff-Misch-Modi oder dem arithmetischen Modus, wie sie im SVG-" -"Standard beschrieben sind. Die Porter-Duff-Misch-Modi bestehen im " -"Wesentlichen aus logischen Operationen zwischen den korrespondierenden Pixel-" -"Werten der Bilder." +#: ../src/ui/dialog/document-properties.cpp:804 +msgid "Filename" +msgstr "Dateiname" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 -msgid "" -"The feConvolveMatrix lets you specify a Convolution to be applied on " -"the image. Common effects created using convolution matrices are blur, " -"sharpening, embossing and edge detection. Note that while gaussian blur can " -"be created using this filter primitive, the special gaussian blur primitive " -"is faster and resolution-independent." -msgstr "" -"Bei dem Filterbaustein Faltungsmatrix können Sie eine Faltung " -"spezifizieren, die auf das Bild angewendet wird. Mögliche Ergebnisse sind " -"Weichzeichnen, Schärfen, Prägen und Kantenerkennung. Achtung: Zwar kann der " -"gleiche Effekt wie mit dem GauĂźschen Weichzeichner erreicht werden, " -"allerdings ist der spezialisierte Effekt schneller und von der Auflösung " -"unabhängig. " +#: ../src/ui/dialog/document-properties.cpp:812 +msgid "Embedded script files:" +msgstr "Eingebettete Script-Dateien:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives create " -"\"embossed\" shadings. The input's alpha channel is used to provide depth " -"information: higher opacity areas are raised toward the viewer and lower " -"opacity areas recede away from the viewer." -msgstr "" -"Die Filterbausteine DiffuseBeleuchtung und Punktlichtbeleuchtung " -"erzeugen \"Relief-Schattierungen\". Der Alphakanal des Eingangs wird " -"verwendet, um Höheninformationen zu erhalten: opakere Gebiete werden " -"angehoben, weniger opake abgesenkt." +#: ../src/ui/dialog/document-properties.cpp:814 +msgid "New" +msgstr "Neu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 -msgid "" -"The feDisplacementMap filter primitive displaces the pixels in the " -"first input using the second input as a displacement map, that shows from " -"how far the pixel should come from. Classical examples are whirl and pinch " -"effects." -msgstr "" -"Der Filterbaustein VersatzKarte verschiebt die Pixel des ersten " -"Eingangs unter Verwendung des zweiten Eingangs als Versatzkarte. Letztere " -"definiert, woher die Pixel kommen sollen. Klassische Beispiele sind Wirbel- " -"und Quetscheffekte." +#: ../src/ui/dialog/document-properties.cpp:881 +msgid "Script id" +msgstr "Skript id" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 -msgid "" -"The feFlood filter primitive fills the region with a given color and " -"opacity. It is usually used as an input to other filters to apply color to " -"a graphic." -msgstr "" -"Der Filterbaustein FĂĽllung fĂĽllt einen Bereich mit vorgegebener Farbe " -"und Opazität. Normalerweise wird dies als Eingang fĂĽr andere Filter " -"verwendet, um so Farben ins Spiel zu bringen." +#: ../src/ui/dialog/document-properties.cpp:887 +msgid "Content:" +msgstr "Inhalt:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 -msgid "" -"The feGaussianBlur filter primitive uniformly blurs its input. It is " -"commonly used together with feOffset to create a drop shadow effect." -msgstr "" -"Der Filterbaustein GauĂźscher Weichzeichner zeichnet die Quelle weich. " -"Er wird normalerweise zusammen mit dem Filterbaustein Versatz benutzt, um " -"abgesetzte Schatten zu erzeugen." +#: ../src/ui/dialog/document-properties.cpp:1004 +msgid "_Save as default" +msgstr "Zur Vorgabe machen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 -msgid "" -"The feImage filter primitive fills the region with an external image " -"or another part of the document." -msgstr "" -"Der Filterbaustein Bild fĂĽllt eine Region mit einem externen Bild " -"oder einem anderen Teil des Dokuments." +#: ../src/ui/dialog/document-properties.cpp:1005 +msgid "Save this metadata as the default metadata" +msgstr "Metadaten als Standard-Metadaten abspeichern" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 -msgid "" -"The feMerge filter primitive composites several temporary images " -"inside the filter primitive to a single image. It uses normal alpha " -"compositing for this. This is equivalent to using several feBlend primitives " -"in 'normal' mode or several feComposite primitives in 'over' mode." -msgstr "" -"Der Filterbaustein Verschmelzen fĂĽhrt mehrere einzelne Bilder unter " -"Verwendung des Alphakanals zu einem einzigen zusammen. Dies ist äquivalent " -"zu den Bausteinen Ăśberblenden im Normalmodus oder Verbund im \"Ăśberlagern\"-" -"Modus." +#: ../src/ui/dialog/document-properties.cpp:1006 +msgid "Use _default" +msgstr "Standardeinstellungen benutzen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 -msgid "" -"The feMorphology filter primitive provides erode and dilate effects. " -"For single-color objects erode makes the object thinner and dilate makes it " -"thicker." -msgstr "" -"Der Filterbaustein Morphologie stellt die Effekte \"Erodieren\" und " -"\"Weiten\" zur VerfĂĽgung. FĂĽr einfarbige Objekte wirkt \"Erodieren\" " -"ausdĂĽnnend und \"Weiten\" verdickend." +#: ../src/ui/dialog/document-properties.cpp:1007 +msgid "Use the previously saved default metadata here" +msgstr "Verwenden Sie hier die zuvor gespeicherte Standardmetadaten" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 -msgid "" -"The feOffset filter primitive offsets the image by an user-defined " -"amount. For example, this is useful for drop shadows, where the shadow is in " -"a slightly different position than the actual object." -msgstr "" -"Der Filterbaustein Versatz verschiebt das Bild um einen " -"benutzerdefinierten Betrag. Dies ist z. B. fĂĽr abgesetzte Schatten nĂĽtzlich, " -"die sich an einer leicht anderen Position als das eigentliche Objekt " -"befinden." +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1080 +msgid "Add external script..." +msgstr "FĂĽge externes Script hinzu..." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives " -"create \"embossed\" shadings. The input's alpha channel is used to provide " -"depth information: higher opacity areas are raised toward the viewer and " -"lower opacity areas recede away from the viewer." -msgstr "" -"Die Filterbausteine DiffuseBeleuchtung und Punktlichtbeleuchtung erzeugen \"Relief\"-Schattierungen. Der Alphakanal des Eingangs wird " -"verwendet, um Tiefeninformationen zu erhalten: opakere Gebiete werden " -"angehoben, weniger opake abgesenkt." +#: ../src/ui/dialog/document-properties.cpp:1119 +msgid "Select a script to load" +msgstr "Skript zum Laden auswählen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 -msgid "" -"The feTile filter primitive tiles a region with its input graphic" -msgstr "" -"Der Filterbaustein Kacheln belegt einen Bereich mit Kopien einer " -"Graphik." +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1147 +msgid "Add embedded script..." +msgstr "FĂĽge eingebettetes Script hinzu..." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 -msgid "" -"The feTurbulence filter primitive renders Perlin noise. This kind of " -"noise is useful in simulating several nature phenomena like clouds, fire and " -"smoke and in generating complex textures like marble or granite." -msgstr "" -"Der Filterbaustein Turbulenz zeichnet Perlin-Rauschen. Diese Art von " -"Rauschen kann verwendet werden, um natĂĽrliche Phänomene wie Wolken, Feuer " -"oder Rauch, sowie komplexe Texturen wie Marmor oder Granit nachzubilden." +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1178 +msgid "Remove external script" +msgstr "Lösche externes Script" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 -msgid "Duplicate filter primitive" -msgstr "Filterbaustein duplizieren" +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1212 +msgid "Remove embedded script" +msgstr "Eingebettetes Script entfernen" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 -msgid "Set filter primitive attribute" -msgstr "Attribut fĂĽr Filterbaustein setzen" +#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1312 +msgid "Edit embedded script" +msgstr "Eingebettetes Script bearbeiten" -#: ../src/ui/dialog/find.cpp:71 -msgid "F_ind:" -msgstr "Finden:" +#: ../src/ui/dialog/document-properties.cpp:1395 +msgid "Creation" +msgstr "Erzeugen" -#: ../src/ui/dialog/find.cpp:71 -msgid "Find objects by their content or properties (exact or partial match)" -msgstr "" -"Objekte nach ihrem Inhalt oder Eigenschaften finden (exakte oder partielle " -"Ăśbereinstimmung)" +#: ../src/ui/dialog/document-properties.cpp:1396 +msgid "Defined grids" +msgstr "Definierte Gitter" -#: ../src/ui/dialog/find.cpp:72 -msgid "R_eplace:" -msgstr "Ersetzen:" +#: ../src/ui/dialog/document-properties.cpp:1639 +msgid "Remove grid" +msgstr "Gitter entfernen" -#: ../src/ui/dialog/find.cpp:72 -msgid "Replace match with this value" -msgstr "Ăśbereinstimmung mit diesem Wert ersetzen" +#: ../src/ui/dialog/document-properties.cpp:1707 +#, fuzzy +msgid "Changed document unit" +msgstr "Unbenanntes Dokument %d" -#: ../src/ui/dialog/find.cpp:74 -msgid "_All" -msgstr "_Alles" +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2800 +msgid "_Page" +msgstr "_Seite" -#: ../src/ui/dialog/find.cpp:74 -msgid "Search in all layers" -msgstr "In allen Ebenen suchen" +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2804 +msgid "_Drawing" +msgstr "_Zeichnung" -#: ../src/ui/dialog/find.cpp:75 -msgid "Current _layer" -msgstr "Aktuelle Ebene" +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2806 +msgid "_Selection" +msgstr "_Auswahl" -#: ../src/ui/dialog/find.cpp:75 -msgid "Limit search to the current layer" -msgstr "Suche auf aktuelle Ebene beschränken" +#: ../src/ui/dialog/export.cpp:151 +msgid "_Custom" +msgstr "_Benutzerdefiniert" -#: ../src/ui/dialog/find.cpp:76 -msgid "Sele_ction" -msgstr "Auswahl" +#: ../src/ui/dialog/export.cpp:168 ../src/widgets/measure-toolbar.cpp:116 +#: ../src/widgets/measure-toolbar.cpp:124 +#: ../share/extensions/render_gears.inx.h:6 +msgid "Units:" +msgstr "Einheiten:" -#: ../src/ui/dialog/find.cpp:76 -msgid "Limit search to the current selection" -msgstr "Suche auf aktuelle Auswahl beschränken" +#: ../src/ui/dialog/export.cpp:170 +msgid "_Export As..." +msgstr "_exportieren als…" -#: ../src/ui/dialog/find.cpp:77 -msgid "Search in text objects" -msgstr "Textobjekte durchsuchen" +#: ../src/ui/dialog/export.cpp:173 +msgid "B_atch export all selected objects" +msgstr "Alle gewählten Objekte auf einmal exportieren" -#: ../src/ui/dialog/find.cpp:78 -msgid "_Properties" -msgstr "Eigenschaften" +# !!! "export hints" are not clear to the user I guess +#: ../src/ui/dialog/export.cpp:173 +msgid "" +"Export each selected object into its own PNG file, using export hints if any " +"(caution, overwrites without asking!)" +msgstr "" +"Exportiert jedes gewählte Objekt in eine eigene PNG-Datei, unter " +"BerĂĽcksichtigung von Exporthinweisen, wenn vorhanden (Vorsicht, ĂĽberschreibt " +"ohne Warnung!)" -#: ../src/ui/dialog/find.cpp:78 -msgid "Search in object properties, styles, attributes and IDs" -msgstr "Suche in Objekt-Eigenschaften, Stilen, Attributen und IDs" +#: ../src/ui/dialog/export.cpp:175 +msgid "Hide a_ll except selected" +msgstr "Alle auĂźer Ausgewählte verstecken" -#: ../src/ui/dialog/find.cpp:80 -msgid "Search in" -msgstr "Suchen in" +#: ../src/ui/dialog/export.cpp:175 +msgid "In the exported image, hide all objects except those that are selected" +msgstr "Verstecke alle Objekte auĂźer den gerade gewählten im exportierten Bild" -#: ../src/ui/dialog/find.cpp:81 -msgid "Scope" -msgstr "Umfang" +#: ../src/ui/dialog/export.cpp:176 +msgid "Close when complete" +msgstr "SchlieĂźen wenn fertig" -#: ../src/ui/dialog/find.cpp:83 -msgid "Case sensiti_ve" -msgstr "schreibungsabhängig" +#: ../src/ui/dialog/export.cpp:176 +msgid "Once the export completes, close this dialog" +msgstr "Wenn der Export fertig ist, schlieĂźe den Dialog." -#: ../src/ui/dialog/find.cpp:83 -msgid "Match upper/lower case" -msgstr "Entspricht GroĂź-/ Kleinschreibung" +#: ../src/ui/dialog/export.cpp:178 +msgid "_Export" +msgstr "_Exportieren" -#: ../src/ui/dialog/find.cpp:84 -msgid "E_xact match" -msgstr "Exakte Ăśbereinstimmung" +#: ../src/ui/dialog/export.cpp:196 +msgid "Export area" +msgstr "Exportbereich" -#: ../src/ui/dialog/find.cpp:84 -msgid "Match whole objects only" -msgstr "Ăśbereinstimmung nur mit kompletten Objekten" +#: ../src/ui/dialog/export.cpp:235 +msgid "_x0:" +msgstr "_x0:" -#: ../src/ui/dialog/find.cpp:85 -msgid "Include _hidden" -msgstr "EinschlieĂźlich _Ausgeblendete" +#: ../src/ui/dialog/export.cpp:239 +msgid "x_1:" +msgstr "x_1:" -#: ../src/ui/dialog/find.cpp:85 -msgid "Include hidden objects in search" -msgstr "Ausgeblendete Objekte bei Suche berĂĽcksichtigen" +#: ../src/ui/dialog/export.cpp:243 +msgid "Wid_th:" +msgstr "Brei_te:" -#: ../src/ui/dialog/find.cpp:86 -msgid "Include loc_ked" -msgstr "EinschlieĂźlich _Gesperrte" +#: ../src/ui/dialog/export.cpp:247 +msgid "_y0:" +msgstr "_y0:" -#: ../src/ui/dialog/find.cpp:86 -msgid "Include locked objects in search" -msgstr "Gesperrte Objekte bei Suche berĂĽcksichtigen" +#: ../src/ui/dialog/export.cpp:251 +msgid "y_1:" +msgstr "y_1:" + +#: ../src/ui/dialog/export.cpp:255 +msgid "Hei_ght:" +msgstr "Höhe:" + +#: ../src/ui/dialog/export.cpp:270 +msgid "Image size" +msgstr "Bildgröße" -# !!! -#: ../src/ui/dialog/find.cpp:88 -msgid "General" -msgstr "Allgemein" +#: ../src/ui/dialog/export.cpp:288 ../src/ui/dialog/export.cpp:299 +msgid "pixels at" +msgstr "Pixel bei" -#: ../src/ui/dialog/find.cpp:90 -msgid "_ID" -msgstr "_ID" +#: ../src/ui/dialog/export.cpp:294 +msgid "dp_i" +msgstr "dp_i" -#: ../src/ui/dialog/find.cpp:90 -msgid "Search id name" -msgstr "Suche nach id Name" +#: ../src/ui/dialog/export.cpp:299 ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "_Height:" +msgstr "_Höhe:" -#: ../src/ui/dialog/find.cpp:91 -msgid "Attribute _name" -msgstr "Attributname" +#: ../src/ui/dialog/export.cpp:307 +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +msgid "dpi" +msgstr "dpi" -#: ../src/ui/dialog/find.cpp:91 -msgid "Search attribute name" -msgstr "Attributnamen suchen" +#: ../src/ui/dialog/export.cpp:315 +msgid "_Filename" +msgstr "_Dateiname" -#: ../src/ui/dialog/find.cpp:92 -msgid "Attri_bute value" -msgstr "Attributwert" +#: ../src/ui/dialog/export.cpp:357 +msgid "Export the bitmap file with these settings" +msgstr "Bitmapdatei mit diesen Einstellungen exportieren" -#: ../src/ui/dialog/find.cpp:92 -msgid "Search attribute value" -msgstr "Attributwert suchen" +#: ../src/ui/dialog/export.cpp:608 +#, c-format +msgid "B_atch export %d selected object" +msgid_plural "B_atch export %d selected objects" +msgstr[0] "B_atch-Export von %d gewähltem Objekt" +msgstr[1] "B_atch-Export von %d gewählten Objekten" -#: ../src/ui/dialog/find.cpp:93 -msgid "_Style" -msgstr "_Stil" +#: ../src/ui/dialog/export.cpp:924 +msgid "Export in progress" +msgstr "Exportieren läuft" -#: ../src/ui/dialog/find.cpp:93 -msgid "Search style" -msgstr "Suchstil" +#: ../src/ui/dialog/export.cpp:1014 +msgid "No items selected." +msgstr "Kein Element gewählt." -#: ../src/ui/dialog/find.cpp:94 -msgid "F_ont" -msgstr "Schrift" +#: ../src/ui/dialog/export.cpp:1018 ../src/ui/dialog/export.cpp:1020 +msgid "Exporting %1 files" +msgstr "Exportiere %1 Dateien" -#: ../src/ui/dialog/find.cpp:94 -msgid "Search fonts" -msgstr "Schriftarten suchen" +#: ../src/ui/dialog/export.cpp:1060 ../src/ui/dialog/export.cpp:1062 +#, c-format +msgid "Exporting file %s..." +msgstr "Exportiere Dateie %s..." -#: ../src/ui/dialog/find.cpp:95 -msgid "Properties" -msgstr "Eigenschaften" +#: ../src/ui/dialog/export.cpp:1071 ../src/ui/dialog/export.cpp:1162 +#, c-format +msgid "Could not export to filename %s.\n" +msgstr "Konnte nicht als Datei %s exportieren.\n" -#: ../src/ui/dialog/find.cpp:97 -msgid "All types" -msgstr "Alle Typen" +#: ../src/ui/dialog/export.cpp:1074 +#, c-format +msgid "Could not export to filename %s." +msgstr "Konnte nicht als Datei %s exportieren." -#: ../src/ui/dialog/find.cpp:97 -msgid "Search all object types" -msgstr "Alle Objekttypen durchsuchen" +#: ../src/ui/dialog/export.cpp:1089 +#, c-format +msgid "Successfully exported %d files from %d selected items." +msgstr "" +"Erfolgreich %d Dateien aus %d ausgewählten Artikeln exportiert." -#: ../src/ui/dialog/find.cpp:98 -msgid "Rectangles" -msgstr "Rechtecke" +#: ../src/ui/dialog/export.cpp:1100 +msgid "You have to enter a filename." +msgstr "Sie mĂĽssen einen Dateinamen angeben" -#: ../src/ui/dialog/find.cpp:98 -msgid "Search rectangles" -msgstr "Rechtecke durchsuchen" +#: ../src/ui/dialog/export.cpp:1101 +msgid "You have to enter a filename" +msgstr "Sie mĂĽssen einen Dateinamen angeben" -#: ../src/ui/dialog/find.cpp:99 -msgid "Ellipses" -msgstr "Ellipsen" +#: ../src/ui/dialog/export.cpp:1115 +msgid "The chosen area to be exported is invalid." +msgstr "Der zum Exportieren gewählte Bereich ist ungĂĽltig" -#: ../src/ui/dialog/find.cpp:99 -msgid "Search ellipses, arcs, circles" -msgstr "Ellipsen, Bögen und Kreise durchsuchen" +#: ../src/ui/dialog/export.cpp:1116 +msgid "The chosen area to be exported is invalid" +msgstr "Der zum Exportieren gewählte Bereich ist ungĂĽltig" -#: ../src/ui/dialog/find.cpp:100 -msgid "Stars" -msgstr "Sterne" +#: ../src/ui/dialog/export.cpp:1131 +#, c-format +msgid "Directory %s does not exist or is not a directory.\n" +msgstr "Das Verzeichnis %s existiert nicht oder ist kein Verzeichnis.\n" -#: ../src/ui/dialog/find.cpp:100 -msgid "Search stars and polygons" -msgstr "Sterne und Polygone suchen" +#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image +#: ../src/ui/dialog/export.cpp:1145 ../src/ui/dialog/export.cpp:1147 +msgid "Exporting %1 (%2 x %3)" +msgstr "Exportiere %1 (%2 x %3)" -#: ../src/ui/dialog/find.cpp:101 -msgid "Spirals" -msgstr "Spiralen" +#: ../src/ui/dialog/export.cpp:1173 +#, c-format +msgid "Drawing exported to %s." +msgstr "Zeichnung exportiert zu %s." -#: ../src/ui/dialog/find.cpp:101 -msgid "Search spirals" -msgstr "Spiralen durchsuchen" +#: ../src/ui/dialog/export.cpp:1177 +msgid "Export aborted." +msgstr "Export abgebochen." -#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1736 -msgid "Paths" -msgstr "Pfade" +#: ../src/ui/dialog/extension-editor.cpp:81 +msgid "Information" +msgstr "Information" -#: ../src/ui/dialog/find.cpp:102 -msgid "Search paths, lines, polylines" -msgstr "Pfade, Linien oder LinienzĂĽge suchen" +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 +#: ../src/verbs.cpp:309 ../share/extensions/color_custom.inx.h:7 +#: ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/dots.inx.h:7 +#: ../share/extensions/draw_from_triangle.inx.h:35 +#: ../share/extensions/dxf_input.inx.h:10 +#: ../share/extensions/dxf_outlines.inx.h:24 +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:53 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/generate_voronoi.inx.h:5 +#: ../share/extensions/gimp_xcf.inx.h:6 +#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/jessyInk_autoTexts.inx.h:8 +#: ../share/extensions/jessyInk_effects.inx.h:13 +#: ../share/extensions/jessyInk_export.inx.h:7 +#: ../share/extensions/jessyInk_install.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:44 +#: ../share/extensions/jessyInk_masterSlide.inx.h:5 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 +#: ../share/extensions/jessyInk_summary.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:12 +#: ../share/extensions/jessyInk_uninstall.inx.h:10 +#: ../share/extensions/jessyInk_video.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:7 +#: ../share/extensions/layout_nup.inx.h:24 +#: ../share/extensions/lindenmayer.inx.h:13 +#: ../share/extensions/lorem_ipsum.inx.h:6 +#: ../share/extensions/measure.inx.h:15 +#: ../share/extensions/pathalongpath.inx.h:16 +#: ../share/extensions/pathscatter.inx.h:18 +#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/web-set-att.inx.h:25 +#: ../share/extensions/webslicer_create_group.inx.h:11 +#: ../share/extensions/webslicer_export.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:23 +msgid "Help" +msgstr "Hilfe" -#: ../src/ui/dialog/find.cpp:103 -msgid "Texts" -msgstr "Texte" +#: ../src/ui/dialog/extension-editor.cpp:83 +msgid "Parameters" +msgstr "Parameter" -#: ../src/ui/dialog/find.cpp:103 -msgid "Search text objects" -msgstr "Textobjekte durchsuchen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:398 +msgid "No preview" +msgstr "Keine Vorschau" -#: ../src/ui/dialog/find.cpp:104 -msgid "Groups" -msgstr "Gruppen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:504 +msgid "too large for preview" +msgstr "zu groĂź fĂĽr Vorschau" -#: ../src/ui/dialog/find.cpp:104 -msgid "Search groups" -msgstr "Gruppen durchsuchen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:594 +msgid "Enable preview" +msgstr "Vorschau einschalten" -#. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:107 -msgctxt "Find dialog" -msgid "Clones" -msgstr "Klone" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:751 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:764 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:768 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:779 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:795 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:810 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:289 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:420 +msgid "All Files" +msgstr "Alle Dateitypen" -#: ../src/ui/dialog/find.cpp:107 -msgid "Search clones" -msgstr "Klone durchsuchen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:776 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:792 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:807 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:290 +msgid "All Inkscape Files" +msgstr "Alle Inkscape-Dateien" -#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 -#: ../share/extensions/extractimage.inx.h:5 -msgid "Images" -msgstr "Bilder" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:813 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:291 +msgid "All Images" +msgstr "Alle Bilder" -#: ../src/ui/dialog/find.cpp:109 -msgid "Search images" -msgstr "Bilder durchsuchen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:786 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:802 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:816 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:292 +msgid "All Vectors" +msgstr "Alle Vektorgrafiken" -#: ../src/ui/dialog/find.cpp:110 -msgid "Offsets" -msgstr "Versatz" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:789 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:805 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:819 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:293 +msgid "All Bitmaps" +msgstr "Alle Bitmaps" -#: ../src/ui/dialog/find.cpp:110 -msgid "Search offset objects" -msgstr "Objekte mit Versatz finden" +#. ###### File options +#. ###### Do we want the .xxx extension automatically added? +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1048 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1616 +msgid "Append filename extension automatically" +msgstr "Dateinamenserweiterung automatisch anhängen" -#: ../src/ui/dialog/find.cpp:111 -msgid "Object types" -msgstr "Objekttypen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1226 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1480 +msgid "Guess from extension" +msgstr "Automatisch bestimmen" -#: ../src/ui/dialog/find.cpp:114 -msgid "_Find" -msgstr "_Suchen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 +msgid "Left edge of source" +msgstr "Linke Kante der Quelle" -#: ../src/ui/dialog/find.cpp:114 -msgid "Select all objects matching the selection criteria" -msgstr "Wähle Objekte aus, die zu allen angegebene Feldern passen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1502 +msgid "Top edge of source" +msgstr "Oberkante der Quelle" -#: ../src/ui/dialog/find.cpp:115 -msgid "_Replace All" -msgstr "Alles e_rsetzen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1503 +msgid "Right edge of source" +msgstr "Rechte Kante der Quelle" -#: ../src/ui/dialog/find.cpp:115 -msgid "Replace all matches" -msgstr "Ersetze alle Ăśbereinstimmungen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1504 +msgid "Bottom edge of source" +msgstr "Unterkante der Quelle" -# # !!! just make the menu item insensitive -#: ../src/ui/dialog/find.cpp:775 -msgid "Nothing to replace" -msgstr "Es gibt nichts zu ersetzen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 +msgid "Source width" +msgstr "Quellenbreite" -#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:816 -#, c-format -msgid "%d object found (out of %d), %s match." -msgid_plural "%d objects found (out of %d), %s match." -msgstr[0] "%d (von %d) Objekt gefunden, %s passend." -msgstr[1] "%d (von %d) Objekten gefunden, %s passend." +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1506 +msgid "Source height" +msgstr "Quellenhöhe" -#: ../src/ui/dialog/find.cpp:819 -msgid "exact" -msgstr "exakt" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1507 +msgid "Destination width" +msgstr "Zielbreite" -#: ../src/ui/dialog/find.cpp:819 -msgid "partial" -msgstr "teilweise" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1508 +msgid "Destination height" +msgstr "Zielhöhe" -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:822 -msgid "%1 match replaced" -msgid_plural "%1 matches replaced" -msgstr[0] "%1 Ăśbereinstimmung ersetzt" -msgstr[1] "%1 Ăśbereinstimmungen ersetzt" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1509 +msgid "Resolution (dots per inch)" +msgstr "Auflösung (Punkte pro Zoll)" -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:826 -msgid "%1 object found" -msgid_plural "%1 objects found" -msgstr[0] "%1 Objekt gefunden" -msgstr[1] "%1 Objekte gefunden" +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1547 +msgid "Document" +msgstr "Dokument" -#: ../src/ui/dialog/find.cpp:837 -msgid "Replace text or property" -msgstr "Text oder Eigenschaft ersetzen" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1559 +msgctxt "Export dialog" +msgid "Custom" +msgstr "Benutzerdefiniert" -# !!! just make the menu item insensitive -#: ../src/ui/dialog/find.cpp:841 -msgid "Nothing found" -msgstr "Nichts gefunden" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1579 +msgid "Source" +msgstr "Quelle" -#: ../src/ui/dialog/find.cpp:846 -msgid "No objects found" -msgstr "Keine Objekte gefunden" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1599 +msgid "Cairo" +msgstr "Cairo" -#: ../src/ui/dialog/find.cpp:867 -msgid "Select an object type" -msgstr "Wählen Sie ein Objekttyp" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1602 +msgid "Antialias" +msgstr "Kantenglättung" -#: ../src/ui/dialog/find.cpp:885 -msgid "Select a property" -msgstr "Wählen Sie eine Eigenschaft aus" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1628 +msgid "Destination" +msgstr "Ziel" -#: ../src/ui/dialog/font-substitution.cpp:87 -msgid "" -"\n" -"Some fonts are not available and have been substituted." -msgstr "" +#: ../src/ui/dialog/filedialogimpl-win32.cpp:421 +msgid "All Executable Files" +msgstr "Alle ausfĂĽhrbaren Dateien" -#: ../src/ui/dialog/font-substitution.cpp:90 -msgid "Font substitution" -msgstr "Schriftartersetzung" +#: ../src/ui/dialog/filedialogimpl-win32.cpp:613 +msgid "Show Preview" +msgstr "Zeige Vorschau" -#: ../src/ui/dialog/font-substitution.cpp:109 -#, fuzzy -msgid "Select all the affected items" -msgstr "Wählen Sie ein Objekttyp" +#: ../src/ui/dialog/filedialogimpl-win32.cpp:751 +msgid "No file selected" +msgstr "Keine Datei ausgewählt" -#: ../src/ui/dialog/font-substitution.cpp:114 -msgid "Don't show this warning again" -msgstr "Diese Warnung nicht erneut zeigen" +#: ../src/ui/dialog/fill-and-stroke.cpp:62 +msgid "_Fill" +msgstr "_FĂĽllen" -#: ../src/ui/dialog/font-substitution.cpp:255 -msgid "Font '%1' substituted with '%2'" -msgstr "Schrift '%1' ersetzt durch '%2'" +#: ../src/ui/dialog/fill-and-stroke.cpp:63 +msgid "Stroke _paint" +msgstr "_Farbe der Kontur" -#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 -msgid "all" -msgstr "alles" +#: ../src/ui/dialog/fill-and-stroke.cpp:64 +msgid "Stroke st_yle" +msgstr "_Muster der Kontur" -#: ../src/ui/dialog/glyphs.cpp:61 -msgid "common" -msgstr "allgemein" +#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor +#: ../src/ui/dialog/filter-effects-dialog.cpp:515 +msgid "" +"This matrix determines a linear transform on color space. Each line affects " +"one of the color components. Each column determines how much of each color " +"component from the input is passed to the output. The last column does not " +"depend on input colors, so can be used to adjust a constant component value." +msgstr "" +"Diese Matrix definiert eine lineare Transformation im Farbraum. Jede Zeile " +"wirkt auf eine der Farbkomponenten des Ausgangs, jede Spalte bestimmt den " +"EinfluĂź der jeweiligen Eingangskomponente. Die letzte Spalte gibt einen " +"konstanten Grundwert der Ausgangskomponenten vor. " -#: ../src/ui/dialog/glyphs.cpp:62 -msgid "inherited" -msgstr "geerbt" +#: ../src/ui/dialog/filter-effects-dialog.cpp:625 +msgid "Image File" +msgstr "Bild-Datei" -#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 -msgid "Arabic" -msgstr "Arabisch (ar)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:628 +msgid "Selected SVG Element" +msgstr "Gewähltes SVG Element" -#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 -msgid "Armenian" -msgstr "Armenisch (hy)" +#. TODO: any image, not just svg +#: ../src/ui/dialog/filter-effects-dialog.cpp:698 +msgid "Select an image to be used as feImage input" +msgstr "Wählt ein Bild als Eingabe fĂĽr feBild" -#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 -msgid "Bengali" -msgstr "Bengalesisch (bn)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:790 +msgid "This SVG filter effect does not require any parameters." +msgstr "Dieser SVG-Filtereffekt benötigt keine Parameter." -#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 -msgid "Bopomofo" -msgstr "Bopomofo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:796 +msgid "This SVG filter effect is not yet implemented in Inkscape." +msgstr "Dieser SVG-Filtereffekt ist noch nicht in Inkscape implementiert." -#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 -msgid "Cherokee" -msgstr "Cherokee" +#: ../src/ui/dialog/filter-effects-dialog.cpp:984 +msgid "Light Source:" +msgstr "Lichtquelle:" -#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 -msgid "Coptic" -msgstr "Koptisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1001 +msgid "Direction angle for the light source on the XY plane, in degrees" +msgstr "Winkel, aus dem das Licht in der XY-Ebene kommt, in °" -#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 -#: ../share/extensions/hershey.inx.h:22 -msgid "Cyrillic" -msgstr "Kyrillisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1002 +msgid "Direction angle for the light source on the YZ plane, in degrees" +msgstr "Winkel, aus dem das Licht in der YZ-Ebene kommt, in °" -#: ../src/ui/dialog/glyphs.cpp:70 -msgid "Deseret" -msgstr "Deseret" +#. default x: +#. default y: +#. default z: +#: ../src/ui/dialog/filter-effects-dialog.cpp:1005 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1008 +msgid "Location:" +msgstr "Ort:" -#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 -msgid "Devanagari" -msgstr "Devanagari" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1005 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1011 +msgid "X coordinate" +msgstr "X-Koordinate" -#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 -msgid "Ethiopic" -msgstr "Ă„thiopisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1005 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1011 +msgid "Y coordinate" +msgstr "Y-Koordinate" -#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 -msgid "Georgian" -msgstr "Georgisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1005 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1011 +msgid "Z coordinate" +msgstr "X-Koordinate" -#: ../src/ui/dialog/glyphs.cpp:74 -msgid "Gothic" -msgstr "Gotisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1011 +msgid "Points At" +msgstr "Zeigt auf" -#: ../src/ui/dialog/glyphs.cpp:75 -msgid "Greek" -msgstr "Griechisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1012 +msgid "Specular Exponent" +msgstr "Glanzpunkt-Exponent" -#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 -msgid "Gujarati" -msgstr "Gujarati" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1012 +msgid "Exponent value controlling the focus for the light source" +msgstr "Exponent bestimmt den Fokus der Lichtquelle" -#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 -msgid "Gurmukhi" -msgstr "Gurmukhi" +#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. +#: ../src/ui/dialog/filter-effects-dialog.cpp:1014 +msgid "Cone Angle" +msgstr "Konuswinkel" -#: ../src/ui/dialog/glyphs.cpp:78 -msgid "Han" -msgstr "Han" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1014 +msgid "" +"This is the angle between the spot light axis (i.e. the axis between the " +"light source and the point to which it is pointing at) and the spot light " +"cone. No light is projected outside this cone." +msgstr "" +"Ă–ffnungswinkel des Lichtkonus. AuĂźerhalb des Konus gibt es kein Licht. " -#: ../src/ui/dialog/glyphs.cpp:79 -msgid "Hangul" -msgstr "Hangul" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1077 +msgid "New light source" +msgstr "Neue Lichtquelle" -#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 -msgid "Hebrew" -msgstr "Hebräisch (he)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1118 +msgid "_Duplicate" +msgstr "_Duplizieren" -#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 -msgid "Hiragana" -msgstr "Hiragana" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1152 +msgid "_Filter" +msgstr "_Filter" -#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 -msgid "Kannada" -msgstr "Kannada" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1174 +msgid "R_ename" +msgstr "Umb_enennen" -#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 -msgid "Katakana" -msgstr "Katakana" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1304 +msgid "Rename filter" +msgstr "Filter umbenennen" -#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 -msgid "Khmer" -msgstr "Khmer (km)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1349 +msgid "Apply filter" +msgstr "Filter anwenden" -#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 -msgid "Lao" -msgstr "Lao" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1419 +msgid "filter" +msgstr "Filter" -#: ../src/ui/dialog/glyphs.cpp:86 -msgid "Latin" -msgstr "Latein" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1426 +msgid "Add filter" +msgstr "Filter hinzufĂĽgen" -#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 -msgid "Malayalam" -msgstr "Malayalam" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1478 +msgid "Duplicate filter" +msgstr "Filter duplizieren" -#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 -msgid "Mongolian" -msgstr "Mongolisch (mn)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1577 +msgid "_Effect" +msgstr "_Effekt" -#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 -msgid "Myanmar" -msgstr "Myanmar" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1587 +msgid "Connections" +msgstr "Verbindungen" -#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 -msgid "Ogham" -msgstr "Oghamschrift" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1725 +msgid "Remove filter primitive" +msgstr "Filterbaustein entfernen" -#: ../src/ui/dialog/glyphs.cpp:91 -msgid "Old Italic" -msgstr "Kursiv" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2313 +msgid "Remove merge node" +msgstr "Zusammengefassten Knoten löschen" -#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 -msgid "Oriya" -msgstr "Oriya" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2433 +msgid "Reorder filter primitive" +msgstr "Filterbausteine umordnen" -#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 -msgid "Runic" -msgstr "Runic" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2513 +msgid "Add Effect:" +msgstr "Effekt hinzufĂĽgen:" -#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 -msgid "Sinhala" -msgstr "Singhalesisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2514 +msgid "No effect selected" +msgstr "Kein Effekt gewählt" -#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 -msgid "Syriac" -msgstr "Syriac" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2515 +msgid "No filter selected" +msgstr "Kein Filter gewählt" -#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 -msgid "Tamil" -msgstr "Tamilisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2561 +msgid "Effect parameters" +msgstr "Effektparameter" -#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 -msgid "Telugu" -msgstr "Telugu" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2562 +msgid "Filter General Settings" +msgstr "Allgemeine Filtereinstellungen" -#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 -msgid "Thaana" -msgstr "Thaana" +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2620 +msgid "Coordinates:" +msgstr "Koordinaten:" -#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 -msgid "Thai" -msgstr "Thai (th)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2620 +msgid "X coordinate of the left corners of filter effects region" +msgstr "X-Koordinate der linken Ecke des Ausschnitts, auf den Filter wirkt" -#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 -msgid "Tibetan" -msgstr "Tibetisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2620 +msgid "Y coordinate of the upper corners of filter effects region" +msgstr "Y-Koordinate der obere Ecke des Ausschnitts, auf den Filter wirkt" -#: ../src/ui/dialog/glyphs.cpp:101 -msgid "Canadian Aboriginal" -msgstr "Kanadisch Aborigini" +#. default width: +#. default height: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2621 +msgid "Dimensions:" +msgstr "Dimensionen:" -#: ../src/ui/dialog/glyphs.cpp:102 -msgid "Yi" -msgstr "Yi" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2621 +msgid "Width of filter effects region" +msgstr "Breite des Filtereffekts" -#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 -msgid "Tagalog" -msgstr "Tagalog" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2621 +msgid "Height of filter effects region" +msgstr "Höhe des Filtereffekts" -#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 -msgid "Hanunoo" -msgstr "Hanunoo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2627 +msgid "" +"Indicates the type of matrix operation. The keyword 'matrix' indicates that " +"a full 5x4 matrix of values will be provided. The other keywords represent " +"convenience shortcuts to allow commonly used color operations to be " +"performed without specifying a complete matrix." +msgstr "" +"Gibt den Typ der Matrix vor. Das SchlĂĽsselwort \"matrix\" erzwingt eine " +"volle 5x4-Wertematrix, während andere SchlĂĽsselwörter bequeme AbkĂĽrzungen " +"fĂĽr oft verwendete Farboperationen bereitstellen, ohne eine komplette Matrix " +"angeben zu mĂĽssen." -#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 -msgid "Buhid" -msgstr "Buhid" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2628 +msgid "Value(s):" +msgstr "Wert(e):" -#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 -msgid "Tagbanwa" -msgstr "Tagbanwa" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2643 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2683 +msgid "Operator:" +msgstr "Operator:" -#: ../src/ui/dialog/glyphs.cpp:107 -msgid "Braille" -msgstr "Braille (Blindenschrift)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2644 +msgid "K1:" +msgstr "K1:" -#: ../src/ui/dialog/glyphs.cpp:108 -msgid "Cypriot" -msgstr "Zypriotisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2644 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2645 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2646 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2647 +msgid "" +"If the arithmetic operation is chosen, each result pixel is computed using " +"the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " +"values of the first and second inputs respectively." +msgstr "" +"Bei gewählter Arithmetischer VerknĂĽpfung wird jeder Zielbildpunkt durch die " +"Formel k1*i1*i2 + k2*i1 + k3*i2 + k4 berechnet, wobei i1 und i2 die Werte " +"der Eingangsbildpunkte sind." -#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 -msgid "Limbu" -msgstr "Limbu" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2645 +msgid "K2:" +msgstr "K2:" -#: ../src/ui/dialog/glyphs.cpp:110 -msgid "Osmanya" -msgstr "Osmaniya" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2646 +msgid "K3:" +msgstr "K3:" -#: ../src/ui/dialog/glyphs.cpp:111 -msgid "Shavian" -msgstr "Schaw" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2647 +msgid "K4:" +msgstr "K4:" -#: ../src/ui/dialog/glyphs.cpp:112 -msgid "Linear B" -msgstr "Linearschrift B" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2650 +msgid "Size:" +msgstr "Größe:" -#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 -msgid "Tai Le" -msgstr "Tai Le" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2650 +msgid "width of the convolve matrix" +msgstr "Breite der Faltungsmatrix" -#: ../src/ui/dialog/glyphs.cpp:114 -msgid "Ugaritic" -msgstr "Ugaritisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2650 +msgid "height of the convolve matrix" +msgstr "Höhe der Faltungsmatrix" -#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 -msgid "New Tai Lue" -msgstr "Neu Tai-Lue" +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2651 +#: ../src/ui/dialog/object-attributes.cpp:48 +msgid "Target:" +msgstr "Target:" -#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 -msgid "Buginese" -msgstr "Buginesisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2651 +msgid "" +"X coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" +"X-Koordinate des Zielpunktes der Faltung. Die Faltungsmatrix wirkt auf Pixel " +"um diesen Punkt herum." -#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 -msgid "Glagolitic" -msgstr "Glagolitisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2651 +msgid "" +"Y coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" +"Y-Koordinate des Zielpunktes der Faltung. Die Faltungsmatrix wirkt auf Pixel " +"um diesen Punkt herum." -#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 -msgid "Tifinagh" -msgstr "Tifinagh" +#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) +#: ../src/ui/dialog/filter-effects-dialog.cpp:2653 +msgid "Kernel:" +msgstr "Faltungsmatrix:" -#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 -msgid "Syloti Nagri" -msgstr "Sylheti Nagari" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2653 +msgid "" +"This matrix describes the convolve operation that is applied to the input " +"image in order to calculate the pixel colors at the output. Different " +"arrangements of values in this matrix result in various possible visual " +"effects. An identity matrix would lead to a motion blur effect (parallel to " +"the matrix diagonal) while a matrix filled with a constant non-zero value " +"would lead to a common blur effect." +msgstr "" +"Diese Matrize beschreibt die Faltungsoperation, die auf das Eingangsbild " +"angewendet wird, um die Pixelfarben im Ausgang zu erhalten. Verschiedene " +"Anordnungen der Werte in der Matrix resultieren in unterschiedlichen " +"visuellen Effekten. Die 1-Matrix ergibt einen Bewegungsunschärfe-Effekt " +"(entlang der Richtung der Matrixdiagonalen), während eine Matrix mit " +"konstanten Einträgen eine isotrope Unschärfe erzeugt." -#: ../src/ui/dialog/glyphs.cpp:120 -msgid "Old Persian" -msgstr "Alt Persisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2655 +msgid "Divisor:" +msgstr "Teiler:" -#: ../src/ui/dialog/glyphs.cpp:121 -msgid "Kharoshthi" -msgstr "Kharoshthi" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2655 +msgid "" +"After applying the kernelMatrix to the input image to yield a number, that " +"number is divided by divisor to yield the final destination color value. A " +"divisor that is the sum of all the matrix values tends to have an evening " +"effect on the overall color intensity of the result." +msgstr "" +"Durch diesen Wert wird das Ergebnis der Faltung angewendet auf das " +"Eingangsbild geteilt, um den endgĂĽltigen Farbwert des Ausgangspixels zu " +"erhalten. Ist der Divisor die Summe der Matrixeinträge, so wird das Ergebnis " +"eine gemittelte Farbintensität aufweisen." -#: ../src/ui/dialog/glyphs.cpp:122 -msgid "unassigned" -msgstr "nicht zugeordnet" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2656 +msgid "Bias:" +msgstr "Grundwert:" -#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 -msgid "Balinese" -msgstr "Balinesisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2656 +msgid "" +"This value is added to each component. This is useful to define a constant " +"value as the zero response of the filter." +msgstr "" +"Dieser Wert wird zu jeder Komponente hinzu addiert. Dies ergibt eine " +"Grundantwort des Filters bei leerer Eingabe." -#: ../src/ui/dialog/glyphs.cpp:124 -msgid "Cuneiform" -msgstr "Keilschrift" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2657 +msgid "Edge Mode:" +msgstr "Kanten-Modus:" -#: ../src/ui/dialog/glyphs.cpp:125 -msgid "Phoenician" -msgstr "Phönizisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2657 +msgid "" +"Determines how to extend the input image as necessary with color values so " +"that the matrix operations can be applied when the kernel is positioned at " +"or near the edge of the input image." +msgstr "" +"Legt fest, wie das Eingabebild durch kĂĽnstliche Farbwerte ĂĽber die Ränder " +"erweitert wird, damit die Faltungsmatrix bis an die Kanten des Originals " +"angewendet werden kann." -#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 -msgid "Phags-pa" -msgstr "Phagpa" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2658 +msgid "Preserve Alpha" +msgstr "Alphawert beibehalten" -#: ../src/ui/dialog/glyphs.cpp:127 -msgid "N'Ko" -msgstr "N'Ko" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2658 +msgid "If set, the alpha channel won't be altered by this filter primitive." +msgstr "" +"Wenn gesetzt, wird der Alphakanal von diesem Filterbaustein nicht " +"beeinflusst." -#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 -msgid "Kayah Li" -msgstr "Kayah Li" +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2661 +msgid "Diffuse Color:" +msgstr "Diffusreflektierende Farbe:" -#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 -msgid "Lepcha" -msgstr "Lepcha" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2661 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2694 +msgid "Defines the color of the light source" +msgstr "Definiert die Farbe der Lichtquelle" -#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 -msgid "Rejang" -msgstr "Rejang" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2662 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2695 +msgid "Surface Scale:" +msgstr "Oberflächenskalierung:" -#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 -msgid "Sundanese" -msgstr "Sundanesisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2662 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2695 +msgid "" +"This value amplifies the heights of the bump map defined by the input alpha " +"channel" +msgstr "" +"Dieser Wert multipliziert die Oberflächenstruktur, die aus dem Alphakanal " +"der Eingabe gewonnen wird." -#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 -msgid "Saurashtra" -msgstr "Saurashtra" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2663 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2696 +msgid "Constant:" +msgstr "Konstante:" -#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 -msgid "Cham" -msgstr "Cham" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2663 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2696 +msgid "This constant affects the Phong lighting model." +msgstr "Diese Größe beeinflusst die Phong-Beleuchtung." -#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 -msgid "Ol Chiki" -msgstr "Ol Chiki" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2664 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2698 +msgid "Kernel Unit Length:" +msgstr "Größe der Faltungsmatrixeinheit:" -#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 -msgid "Vai" -msgstr "Vai" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2668 +msgid "This defines the intensity of the displacement effect." +msgstr "Dies bestimmt die Stärke des Versatzeffekts." -#: ../src/ui/dialog/glyphs.cpp:136 -msgid "Carian" -msgstr "Karisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2669 +msgid "X displacement:" +msgstr "X-Verschiebung:" -#: ../src/ui/dialog/glyphs.cpp:137 -msgid "Lycian" -msgstr "Lykisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2669 +msgid "Color component that controls the displacement in the X direction" +msgstr "Farbkomponente, die den Versatz in X-Richtung bestimmt" -#: ../src/ui/dialog/glyphs.cpp:138 -msgid "Lydian" -msgstr "Lydisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2670 +msgid "Y displacement:" +msgstr "Y-Verschiebung:" -#: ../src/ui/dialog/glyphs.cpp:153 -msgid "Basic Latin" -msgstr "Latein" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2670 +msgid "Color component that controls the displacement in the Y direction" +msgstr "Farbkomponente, die den Versatz in Y-Richtung bestimmt" -#: ../src/ui/dialog/glyphs.cpp:154 -msgid "Latin-1 Supplement" -msgstr "Latein-1 Ergänzung" +#. default: black +#: ../src/ui/dialog/filter-effects-dialog.cpp:2673 +msgid "Flood Color:" +msgstr "FĂĽllfarbe:" -#: ../src/ui/dialog/glyphs.cpp:155 -msgid "Latin Extended-A" -msgstr "Latein Erweitert-A" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2673 +msgid "The whole filter region will be filled with this color." +msgstr "Die gesamte Filterregion wird mit dieser Farbe gefĂĽllt." -#: ../src/ui/dialog/glyphs.cpp:156 -msgid "Latin Extended-B" -msgstr "Latein Erweitert-B" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2677 +msgid "Standard Deviation:" +msgstr "Standard Abweichung:" -#: ../src/ui/dialog/glyphs.cpp:157 -msgid "IPA Extensions" -msgstr "IPA Erweiterungen" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2677 +msgid "The standard deviation for the blur operation." +msgstr "Standardabweichung fĂĽr die Unschärfeoperation" -#: ../src/ui/dialog/glyphs.cpp:158 -msgid "Spacing Modifier Letters" -msgstr "Spacing Modifier Letters" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2683 +msgid "" +"Erode: performs \"thinning\" of input image.\n" +"Dilate: performs \"fattenning\" of input image." +msgstr "" +"Erodieren: \"VerdĂĽnnt\" das Eingangsbild.\n" +"Weiten:\"Verdickt\" das Eingangsbild." -#: ../src/ui/dialog/glyphs.cpp:159 -msgid "Combining Diacritical Marks" -msgstr "Kombination diaktritischer Zeichen" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2687 +msgid "Source of Image:" +msgstr "Bild-Quelle:" -#: ../src/ui/dialog/glyphs.cpp:160 -msgid "Greek and Coptic" -msgstr "Griechisch und Koptisch" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2690 +msgid "Delta X:" +msgstr "Delta X:" -#: ../src/ui/dialog/glyphs.cpp:162 -msgid "Cyrillic Supplement" -msgstr "Kyrillisch Ergänzend" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2690 +msgid "This is how far the input image gets shifted to the right" +msgstr "Um diesen Betrag wird das Eingangsbild nach rechts verschoben." -#: ../src/ui/dialog/glyphs.cpp:167 -msgid "Arabic Supplement" -msgstr "Arabisch Ergänzend" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2691 +msgid "Delta Y:" +msgstr "Delta Y:" -#: ../src/ui/dialog/glyphs.cpp:169 -msgid "NKo" -msgstr "N'Ko" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2691 +msgid "This is how far the input image gets shifted downwards" +msgstr "Um diesen Betrag wird das Eingangsbild nach unten verschoben." -#: ../src/ui/dialog/glyphs.cpp:170 -msgid "Samaritan" -msgstr "Samaritanisch" +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2694 +msgid "Specular Color:" +msgstr "Glanzpunktfarbe:" -#: ../src/ui/dialog/glyphs.cpp:186 -msgid "Hangul Jamo" -msgstr "Hangul Jamo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2697 +#: ../share/extensions/interp.inx.h:2 +msgid "Exponent:" +msgstr "Exponent:" -#: ../src/ui/dialog/glyphs.cpp:188 -msgid "Ethiopic Supplement" -msgstr "Ă„thiopisch Ergänzend" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2697 +msgid "Exponent for specular term, larger is more \"shiny\"." +msgstr "Exponent bestimmt Glanzlicht, größer ist \"glänzender\"" -#: ../src/ui/dialog/glyphs.cpp:190 -msgid "Unified Canadian Aboriginal Syllabics" -msgstr "Einheitliches Kanadisch Aborigini Symbole" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2706 +msgid "" +"Indicates whether the filter primitive should perform a noise or turbulence " +"function." +msgstr "Zeigt an, ob der Filterbaustein Rauschen oder Turbulenz erzeugt." -#: ../src/ui/dialog/glyphs.cpp:199 -msgid "Unified Canadian Aboriginal Syllabics Extended" -msgstr "Einheitliche Kanadisch-Aborigini-Syllabisch Erweitert" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2707 +msgid "Base Frequency:" +msgstr "Basisfrequenz:" -#: ../src/ui/dialog/glyphs.cpp:203 -msgid "Khmer Symbols" -msgstr "Khmer (km) Symbole" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2708 +msgid "Octaves:" +msgstr "Oktaven:" -#: ../src/ui/dialog/glyphs.cpp:205 -msgid "Tai Tham" -msgstr "Tai Tham" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2709 +msgid "Seed:" +msgstr "Startwert:" -#: ../src/ui/dialog/glyphs.cpp:210 -msgid "Vedic Extensions" -msgstr "Verdic Erweiterung" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2709 +msgid "The starting number for the pseudo random number generator." +msgstr "Startwert des Pseudozufallsgenerators" -#: ../src/ui/dialog/glyphs.cpp:211 -msgid "Phonetic Extensions" -msgstr "Phonetische Erweiterungen" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2721 +msgid "Add filter primitive" +msgstr "Filterbaustein hinzufĂĽgen" -#: ../src/ui/dialog/glyphs.cpp:212 -msgid "Phonetic Extensions Supplement" -msgstr "Phonetische Zusatz -rweiterungen" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2738 +msgid "" +"The feBlend filter primitive provides 4 image blending modes: screen, " +"multiply, darken and lighten." +msgstr "" +"Der Mischen Filterbaustein sieht 4 Bild-Misch-Modi vor: Screen, " +"Multiplizieren, Verdunkeln und Aufhellen." -#: ../src/ui/dialog/glyphs.cpp:213 -msgid "Combining Diacritical Marks Supplement" -msgstr "Kombiation diakritischer Zeichen Ergänzung" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 +msgid "" +"The feColorMatrix filter primitive applies a matrix transformation to " +"color of each rendered pixel. This allows for effects like turning object to " +"grayscale, modifying color saturation and changing color hue." +msgstr "" +"Der Filterbaustein Farbmatrix wendet eine Matrix-Transformation auf " +"die Farben der gerenderten Pixel an. Dies erlaubt Effekte wie Umwandeln in " +"Graustufen, Modifizieren der Sättigung und Ă„nderung des Farbwerts." -#: ../src/ui/dialog/glyphs.cpp:214 -msgid "Latin Extended Additional" -msgstr "Latein Erweitert Zusatz" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 +msgid "" +"The feComponentTransfer filter primitive manipulates the input's " +"color components (red, green, blue, and alpha) according to particular " +"transfer functions, allowing operations like brightness and contrast " +"adjustment, color balance, and thresholding." +msgstr "" +"Der Filterbaustein Komponententransfer beeinflusst die " +"Farbkomponenten des Eingangs (rot, grĂĽn, blau und alpha) gemäß " +"festzulegender Transferfunktionen. Dies erlaubt Operationen wie Helligkeits- " +"und Kontrasteinstellung, Farbbalance und Schwellenwerte." -#: ../src/ui/dialog/glyphs.cpp:215 -msgid "Greek Extended" -msgstr "Griechisch Erweitert" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2750 +msgid "" +"The feComposite filter primitive composites two images using one of " +"the Porter-Duff blending modes or the arithmetic mode described in SVG " +"standard. Porter-Duff blending modes are essentially logical operations " +"between the corresponding pixel values of the images." +msgstr "" +"Der Filterbaustein Kombinieren kombiniert zwei Bilder mittels einer " +"der Porter-Duff-Misch-Modi oder dem arithmetischen Modus, wie sie im SVG-" +"Standard beschrieben sind. Die Porter-Duff-Misch-Modi bestehen im " +"Wesentlichen aus logischen Operationen zwischen den korrespondierenden Pixel-" +"Werten der Bilder." -#: ../src/ui/dialog/glyphs.cpp:216 -msgid "General Punctuation" -msgstr "Generelle Punktierung" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2754 +msgid "" +"The feConvolveMatrix lets you specify a Convolution to be applied on " +"the image. Common effects created using convolution matrices are blur, " +"sharpening, embossing and edge detection. Note that while gaussian blur can " +"be created using this filter primitive, the special gaussian blur primitive " +"is faster and resolution-independent." +msgstr "" +"Bei dem Filterbaustein Faltungsmatrix können Sie eine Faltung " +"spezifizieren, die auf das Bild angewendet wird. Mögliche Ergebnisse sind " +"Weichzeichnen, Schärfen, Prägen und Kantenerkennung. Achtung: Zwar kann der " +"gleiche Effekt wie mit dem GauĂźschen Weichzeichner erreicht werden, " +"allerdings ist der spezialisierte Effekt schneller und von der Auflösung " +"unabhängig. " + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2758 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" +"Die Filterbausteine DiffuseBeleuchtung und Punktlichtbeleuchtung " +"erzeugen \"Relief-Schattierungen\". Der Alphakanal des Eingangs wird " +"verwendet, um Höheninformationen zu erhalten: opakere Gebiete werden " +"angehoben, weniger opake abgesenkt." -#: ../src/ui/dialog/glyphs.cpp:217 -msgid "Superscripts and Subscripts" -msgstr "Hoch- und Tiefgestellt" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2762 +msgid "" +"The feDisplacementMap filter primitive displaces the pixels in the " +"first input using the second input as a displacement map, that shows from " +"how far the pixel should come from. Classical examples are whirl and pinch " +"effects." +msgstr "" +"Der Filterbaustein VersatzKarte verschiebt die Pixel des ersten " +"Eingangs unter Verwendung des zweiten Eingangs als Versatzkarte. Letztere " +"definiert, woher die Pixel kommen sollen. Klassische Beispiele sind Wirbel- " +"und Quetscheffekte." -#: ../src/ui/dialog/glyphs.cpp:218 -msgid "Currency Symbols" -msgstr "Währungssymbole" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2766 +msgid "" +"The feFlood filter primitive fills the region with a given color and " +"opacity. It is usually used as an input to other filters to apply color to " +"a graphic." +msgstr "" +"Der Filterbaustein FĂĽllung fĂĽllt einen Bereich mit vorgegebener Farbe " +"und Opazität. Normalerweise wird dies als Eingang fĂĽr andere Filter " +"verwendet, um so Farben ins Spiel zu bringen." -#: ../src/ui/dialog/glyphs.cpp:219 -msgid "Combining Diacritical Marks for Symbols" -msgstr "Kombiation diakritischer Zeichen fĂĽr Symbole" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2770 +msgid "" +"The feGaussianBlur filter primitive uniformly blurs its input. It is " +"commonly used together with feOffset to create a drop shadow effect." +msgstr "" +"Der Filterbaustein GauĂźscher Weichzeichner zeichnet die Quelle weich. " +"Er wird normalerweise zusammen mit dem Filterbaustein Versatz benutzt, um " +"abgesetzte Schatten zu erzeugen." -#: ../src/ui/dialog/glyphs.cpp:220 -msgid "Letterlike Symbols" -msgstr "Buchstabenartige Symbole" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2774 +msgid "" +"The feImage filter primitive fills the region with an external image " +"or another part of the document." +msgstr "" +"Der Filterbaustein Bild fĂĽllt eine Region mit einem externen Bild " +"oder einem anderen Teil des Dokuments." -#: ../src/ui/dialog/glyphs.cpp:221 -msgid "Number Forms" -msgstr "Zahlenformen" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2778 +msgid "" +"The feMerge filter primitive composites several temporary images " +"inside the filter primitive to a single image. It uses normal alpha " +"compositing for this. This is equivalent to using several feBlend primitives " +"in 'normal' mode or several feComposite primitives in 'over' mode." +msgstr "" +"Der Filterbaustein Verschmelzen fĂĽhrt mehrere einzelne Bilder unter " +"Verwendung des Alphakanals zu einem einzigen zusammen. Dies ist äquivalent " +"zu den Bausteinen Ăśberblenden im Normalmodus oder Verbund im \"Ăśberlagern\"-" +"Modus." -#: ../src/ui/dialog/glyphs.cpp:222 -msgid "Arrows" -msgstr "Pfeile" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2782 +msgid "" +"The feMorphology filter primitive provides erode and dilate effects. " +"For single-color objects erode makes the object thinner and dilate makes it " +"thicker." +msgstr "" +"Der Filterbaustein Morphologie stellt die Effekte \"Erodieren\" und " +"\"Weiten\" zur VerfĂĽgung. FĂĽr einfarbige Objekte wirkt \"Erodieren\" " +"ausdĂĽnnend und \"Weiten\" verdickend." -#: ../src/ui/dialog/glyphs.cpp:223 -msgid "Mathematical Operators" -msgstr "Mathematische Operatoren" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2786 +msgid "" +"The feOffset filter primitive offsets the image by an user-defined " +"amount. For example, this is useful for drop shadows, where the shadow is in " +"a slightly different position than the actual object." +msgstr "" +"Der Filterbaustein Versatz verschiebt das Bild um einen " +"benutzerdefinierten Betrag. Dies ist z. B. fĂĽr abgesetzte Schatten nĂĽtzlich, " +"die sich an einer leicht anderen Position als das eigentliche Objekt " +"befinden." -#: ../src/ui/dialog/glyphs.cpp:224 -msgid "Miscellaneous Technical" -msgstr "Verschiedenes Technisches" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2790 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives " +"create \"embossed\" shadings. The input's alpha channel is used to provide " +"depth information: higher opacity areas are raised toward the viewer and " +"lower opacity areas recede away from the viewer." +msgstr "" +"Die Filterbausteine DiffuseBeleuchtung und Punktlichtbeleuchtung erzeugen \"Relief\"-Schattierungen. Der Alphakanal des Eingangs wird " +"verwendet, um Tiefeninformationen zu erhalten: opakere Gebiete werden " +"angehoben, weniger opake abgesenkt." -#: ../src/ui/dialog/glyphs.cpp:225 -msgid "Control Pictures" -msgstr "Bildkontrolle" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2794 +msgid "" +"The feTile filter primitive tiles a region with its input graphic" +msgstr "" +"Der Filterbaustein Kacheln belegt einen Bereich mit Kopien einer " +"Graphik." -#: ../src/ui/dialog/glyphs.cpp:226 -msgid "Optical Character Recognition" -msgstr "Optische Zeichenerkennung" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2798 +msgid "" +"The feTurbulence filter primitive renders Perlin noise. This kind of " +"noise is useful in simulating several nature phenomena like clouds, fire and " +"smoke and in generating complex textures like marble or granite." +msgstr "" +"Der Filterbaustein Turbulenz zeichnet Perlin-Rauschen. Diese Art von " +"Rauschen kann verwendet werden, um natĂĽrliche Phänomene wie Wolken, Feuer " +"oder Rauch, sowie komplexe Texturen wie Marmor oder Granit nachzubilden." -#: ../src/ui/dialog/glyphs.cpp:227 -msgid "Enclosed Alphanumerics" -msgstr "Eingeschlossene Alphanumerik" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2817 +msgid "Duplicate filter primitive" +msgstr "Filterbaustein duplizieren" -# not sure here -cm- -#: ../src/ui/dialog/glyphs.cpp:228 -msgid "Box Drawing" -msgstr "Box Zeichnung" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 +msgid "Set filter primitive attribute" +msgstr "Attribut fĂĽr Filterbaustein setzen" -#: ../src/ui/dialog/glyphs.cpp:229 -msgid "Block Elements" -msgstr "Blockelemente" +#: ../src/ui/dialog/find.cpp:71 +msgid "F_ind:" +msgstr "Finden:" -#: ../src/ui/dialog/glyphs.cpp:230 -msgid "Geometric Shapes" -msgstr "Geometrische Formen" +#: ../src/ui/dialog/find.cpp:71 +msgid "Find objects by their content or properties (exact or partial match)" +msgstr "" +"Objekte nach ihrem Inhalt oder Eigenschaften finden (exakte oder partielle " +"Ăśbereinstimmung)" -#: ../src/ui/dialog/glyphs.cpp:231 -msgid "Miscellaneous Symbols" -msgstr "Verschiedene Symbole" +#: ../src/ui/dialog/find.cpp:72 +msgid "R_eplace:" +msgstr "Ersetzen:" -#: ../src/ui/dialog/glyphs.cpp:232 -msgid "Dingbats" -msgstr "Dingbats" +#: ../src/ui/dialog/find.cpp:72 +msgid "Replace match with this value" +msgstr "Ăśbereinstimmung mit diesem Wert ersetzen" -#: ../src/ui/dialog/glyphs.cpp:233 -msgid "Miscellaneous Mathematical Symbols-A" -msgstr "Verschiedene mathematische Symbole-A" +#: ../src/ui/dialog/find.cpp:74 +msgid "_All" +msgstr "_Alles" -#: ../src/ui/dialog/glyphs.cpp:234 -msgid "Supplemental Arrows-A" -msgstr "Ergänzende Pfeile-A" +#: ../src/ui/dialog/find.cpp:74 +msgid "Search in all layers" +msgstr "In allen Ebenen suchen" -#: ../src/ui/dialog/glyphs.cpp:235 -msgid "Braille Patterns" -msgstr "Braille Muster" +#: ../src/ui/dialog/find.cpp:75 +msgid "Current _layer" +msgstr "Aktuelle Ebene" -#: ../src/ui/dialog/glyphs.cpp:236 -msgid "Supplemental Arrows-B" -msgstr "Ergänzende Pfeile-B" +#: ../src/ui/dialog/find.cpp:75 +msgid "Limit search to the current layer" +msgstr "Suche auf aktuelle Ebene beschränken" -#: ../src/ui/dialog/glyphs.cpp:237 -msgid "Miscellaneous Mathematical Symbols-B" -msgstr "Verschiedene mathematische Symbole-B" +#: ../src/ui/dialog/find.cpp:76 +msgid "Sele_ction" +msgstr "Auswahl" -#: ../src/ui/dialog/glyphs.cpp:238 -msgid "Supplemental Mathematical Operators" -msgstr "ergänzende mathematische Operatoren" +#: ../src/ui/dialog/find.cpp:76 +msgid "Limit search to the current selection" +msgstr "Suche auf aktuelle Auswahl beschränken" -#: ../src/ui/dialog/glyphs.cpp:239 -msgid "Miscellaneous Symbols and Arrows" -msgstr "Verschiedene Symbole und Pfeile" +#: ../src/ui/dialog/find.cpp:77 +msgid "Search in text objects" +msgstr "Textobjekte durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:241 -msgid "Latin Extended-C" -msgstr "Latein Erweitert-C" +#: ../src/ui/dialog/find.cpp:78 +msgid "_Properties" +msgstr "Eigenschaften" -# !!! -#: ../src/ui/dialog/glyphs.cpp:243 -msgid "Georgian Supplement" -msgstr "Georgisch Ergänzend" +#: ../src/ui/dialog/find.cpp:78 +msgid "Search in object properties, styles, attributes and IDs" +msgstr "Suche in Objekt-Eigenschaften, Stilen, Attributen und IDs" -#: ../src/ui/dialog/glyphs.cpp:245 -msgid "Ethiopic Extended" -msgstr "Ă„thiopisch Erweitert" +#: ../src/ui/dialog/find.cpp:80 +msgid "Search in" +msgstr "Suchen in" -#: ../src/ui/dialog/glyphs.cpp:246 -msgid "Cyrillic Extended-A" -msgstr "Kyrillisch Erweitert-A" +#: ../src/ui/dialog/find.cpp:81 +msgid "Scope" +msgstr "Umfang" -#: ../src/ui/dialog/glyphs.cpp:247 -msgid "Supplemental Punctuation" -msgstr "Ergänzende Punktierung" +#: ../src/ui/dialog/find.cpp:83 +msgid "Case sensiti_ve" +msgstr "schreibungsabhängig" -#: ../src/ui/dialog/glyphs.cpp:248 -msgid "CJK Radicals Supplement" -msgstr "CJK Radikal Ergänzend" +#: ../src/ui/dialog/find.cpp:83 +msgid "Match upper/lower case" +msgstr "Entspricht GroĂź-/ Kleinschreibung" -#: ../src/ui/dialog/glyphs.cpp:249 -msgid "Kangxi Radicals" -msgstr "Kangxi Radikal" +#: ../src/ui/dialog/find.cpp:84 +msgid "E_xact match" +msgstr "Exakte Ăśbereinstimmung" -#: ../src/ui/dialog/glyphs.cpp:250 -msgid "Ideographic Description Characters" -msgstr "Sinnbildliche Beschreibungsbuchstaben" +#: ../src/ui/dialog/find.cpp:84 +msgid "Match whole objects only" +msgstr "Ăśbereinstimmung nur mit kompletten Objekten" -#: ../src/ui/dialog/glyphs.cpp:251 -msgid "CJK Symbols and Punctuation" -msgstr "CJK Symbole und Punktierungen" +#: ../src/ui/dialog/find.cpp:85 +msgid "Include _hidden" +msgstr "EinschlieĂźlich _Ausgeblendete" -#: ../src/ui/dialog/glyphs.cpp:255 -msgid "Hangul Compatibility Jamo" -msgstr "Hangul Kompatibel Jamo" +#: ../src/ui/dialog/find.cpp:85 +msgid "Include hidden objects in search" +msgstr "Ausgeblendete Objekte bei Suche berĂĽcksichtigen" -#: ../src/ui/dialog/glyphs.cpp:256 -msgid "Kanbun" -msgstr "Kanbun" +#: ../src/ui/dialog/find.cpp:86 +msgid "Include loc_ked" +msgstr "EinschlieĂźlich _Gesperrte" -#: ../src/ui/dialog/glyphs.cpp:257 -msgid "Bopomofo Extended" -msgstr "Bopomofo Erweitert" +#: ../src/ui/dialog/find.cpp:86 +msgid "Include locked objects in search" +msgstr "Gesperrte Objekte bei Suche berĂĽcksichtigen" -#: ../src/ui/dialog/glyphs.cpp:258 -msgid "CJK Strokes" -msgstr "CJK Konturen" +# !!! +#: ../src/ui/dialog/find.cpp:88 +msgid "General" +msgstr "Allgemein" -#: ../src/ui/dialog/glyphs.cpp:259 -msgid "Katakana Phonetic Extensions" -msgstr "Katakana Phonetische Erweiterungen" +#: ../src/ui/dialog/find.cpp:90 +msgid "_ID" +msgstr "_ID" -#: ../src/ui/dialog/glyphs.cpp:260 -msgid "Enclosed CJK Letters and Months" -msgstr "Eingeschlossene CJK Buchstaben und Monate" +#: ../src/ui/dialog/find.cpp:90 +msgid "Search id name" +msgstr "Suche nach id Name" -#: ../src/ui/dialog/glyphs.cpp:261 -msgid "CJK Compatibility" -msgstr "CJK Kompatibilität" +#: ../src/ui/dialog/find.cpp:91 +msgid "Attribute _name" +msgstr "Attributname" -#: ../src/ui/dialog/glyphs.cpp:262 -msgid "CJK Unified Ideographs Extension A" -msgstr "CJK einheitliche Sinnbilder Erweiterung A" +#: ../src/ui/dialog/find.cpp:91 +msgid "Search attribute name" +msgstr "Attributnamen suchen" -#: ../src/ui/dialog/glyphs.cpp:263 -msgid "Yijing Hexagram Symbols" -msgstr "Yijing Hexagram Symbole" +#: ../src/ui/dialog/find.cpp:92 +msgid "Attri_bute value" +msgstr "Attributwert" -#: ../src/ui/dialog/glyphs.cpp:264 -msgid "CJK Unified Ideographs" -msgstr "CJK einheitliche Schriftzeichen" +#: ../src/ui/dialog/find.cpp:92 +msgid "Search attribute value" +msgstr "Attributwert suchen" -#: ../src/ui/dialog/glyphs.cpp:265 -msgid "Yi Syllables" -msgstr "Yi Silben" +#: ../src/ui/dialog/find.cpp:93 +msgid "_Style" +msgstr "_Stil" -#: ../src/ui/dialog/glyphs.cpp:266 -msgid "Yi Radicals" -msgstr "Yi Radikal" +#: ../src/ui/dialog/find.cpp:93 +msgid "Search style" +msgstr "Suchstil" -#: ../src/ui/dialog/glyphs.cpp:267 -msgid "Lisu" -msgstr "Lisu" +#: ../src/ui/dialog/find.cpp:94 +msgid "F_ont" +msgstr "Schrift" -#: ../src/ui/dialog/glyphs.cpp:269 -msgid "Cyrillic Extended-B" -msgstr "Kyrillisch Erweitert-B" +#: ../src/ui/dialog/find.cpp:94 +msgid "Search fonts" +msgstr "Schriftarten suchen" -#: ../src/ui/dialog/glyphs.cpp:270 -msgid "Bamum" -msgstr "Bamum" +#: ../src/ui/dialog/find.cpp:95 +msgid "Properties" +msgstr "Eigenschaften" -#: ../src/ui/dialog/glyphs.cpp:271 -msgid "Modifier Tone Letters" -msgstr "Modifier Tone Letters" +#: ../src/ui/dialog/find.cpp:97 +msgid "All types" +msgstr "Alle Typen" -#: ../src/ui/dialog/glyphs.cpp:272 -msgid "Latin Extended-D" -msgstr "Latein Erweitert-D" +#: ../src/ui/dialog/find.cpp:97 +msgid "Search all object types" +msgstr "Alle Objekttypen durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:274 -msgid "Common Indic Number Forms" -msgstr "grbäuchliche indische Zahlformen" +#: ../src/ui/dialog/find.cpp:98 +msgid "Rectangles" +msgstr "Rechtecke" -#: ../src/ui/dialog/glyphs.cpp:277 -msgid "Devanagari Extended" -msgstr "Devanagari Erweitert" +#: ../src/ui/dialog/find.cpp:98 +msgid "Search rectangles" +msgstr "Rechtecke durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:280 -msgid "Hangul Jamo Extended-A" -msgstr "Hangul Jamo Erweitert-A" +#: ../src/ui/dialog/find.cpp:99 +msgid "Ellipses" +msgstr "Ellipsen" -#: ../src/ui/dialog/glyphs.cpp:281 -msgid "Javanese" -msgstr "Javanesisch" +#: ../src/ui/dialog/find.cpp:99 +msgid "Search ellipses, arcs, circles" +msgstr "Ellipsen, Bögen und Kreise durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:283 -msgid "Myanmar Extended-A" -msgstr "Myanmar-Erweitert-A" +#: ../src/ui/dialog/find.cpp:100 +msgid "Stars" +msgstr "Sterne" -#: ../src/ui/dialog/glyphs.cpp:284 -msgid "Tai Viet" -msgstr "Tai Viet" +#: ../src/ui/dialog/find.cpp:100 +msgid "Search stars and polygons" +msgstr "Sterne und Polygone suchen" -#: ../src/ui/dialog/glyphs.cpp:285 -msgid "Meetei Mayek" -msgstr "Meitei-Mayek" +#: ../src/ui/dialog/find.cpp:101 +msgid "Spirals" +msgstr "Spiralen" -#: ../src/ui/dialog/glyphs.cpp:286 -msgid "Hangul Syllables" -msgstr "Hangul Silben" +#: ../src/ui/dialog/find.cpp:101 +msgid "Search spirals" +msgstr "Spiralen durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:287 -msgid "Hangul Jamo Extended-B" -msgstr "Hangul Jamo Erweitert-B" +#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1734 +msgid "Paths" +msgstr "Pfade" -#: ../src/ui/dialog/glyphs.cpp:288 -msgid "High Surrogates" -msgstr "Oberer Ersatz" +#: ../src/ui/dialog/find.cpp:102 +msgid "Search paths, lines, polylines" +msgstr "Pfade, Linien oder LinienzĂĽge suchen" -#: ../src/ui/dialog/glyphs.cpp:289 -msgid "High Private Use Surrogates" -msgstr "Oberer privatgenutzter Ersatz" +#: ../src/ui/dialog/find.cpp:103 +msgid "Texts" +msgstr "Texte" -#: ../src/ui/dialog/glyphs.cpp:290 -msgid "Low Surrogates" -msgstr "Unterer Ersatz" +#: ../src/ui/dialog/find.cpp:103 +msgid "Search text objects" +msgstr "Textobjekte durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:291 -msgid "Private Use Area" -msgstr "Privatgenutzter Bereich" +#: ../src/ui/dialog/find.cpp:104 +msgid "Groups" +msgstr "Gruppen" -#: ../src/ui/dialog/glyphs.cpp:292 -msgid "CJK Compatibility Ideographs" -msgstr "CJK Kombatibilitätssinnbilder" +#: ../src/ui/dialog/find.cpp:104 +msgid "Search groups" +msgstr "Gruppen durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:293 -msgid "Alphabetic Presentation Forms" -msgstr "Alphabetische Präsentationsformen" +#. TRANSLATORS: "Clones" is a noun indicating type of object to find +#: ../src/ui/dialog/find.cpp:107 +msgctxt "Find dialog" +msgid "Clones" +msgstr "Klone" -#: ../src/ui/dialog/glyphs.cpp:294 -msgid "Arabic Presentation Forms-A" -msgstr "Arabische Präsentationsformen-A" +#: ../src/ui/dialog/find.cpp:107 +msgid "Search clones" +msgstr "Klone durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:295 -msgid "Variation Selectors" -msgstr "Varianten-Auswahl" +#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 +#: ../share/extensions/extractimage.inx.h:5 +msgid "Images" +msgstr "Bilder" -#: ../src/ui/dialog/glyphs.cpp:296 -msgid "Vertical Forms" -msgstr "Vertikale Formen" +#: ../src/ui/dialog/find.cpp:109 +msgid "Search images" +msgstr "Bilder durchsuchen" -#: ../src/ui/dialog/glyphs.cpp:297 -msgid "Combining Half Marks" -msgstr "Halbzeichen kombinieren" +#: ../src/ui/dialog/find.cpp:110 +msgid "Offsets" +msgstr "Versatz" -#: ../src/ui/dialog/glyphs.cpp:298 -msgid "CJK Compatibility Forms" -msgstr "CJK Kompatible Formen" +#: ../src/ui/dialog/find.cpp:110 +msgid "Search offset objects" +msgstr "Objekte mit Versatz finden" -#: ../src/ui/dialog/glyphs.cpp:299 -msgid "Small Form Variants" -msgstr "Kleine Formvarianten" +#: ../src/ui/dialog/find.cpp:111 +msgid "Object types" +msgstr "Objekttypen" -#: ../src/ui/dialog/glyphs.cpp:300 -msgid "Arabic Presentation Forms-B" -msgstr "Arabische Präsentationsformen-B" +#: ../src/ui/dialog/find.cpp:114 +msgid "_Find" +msgstr "_Suchen" -#: ../src/ui/dialog/glyphs.cpp:301 -msgid "Halfwidth and Fullwidth Forms" -msgstr "Halbbreite und Vollbreite Formen" +#: ../src/ui/dialog/find.cpp:114 +msgid "Select all objects matching the selection criteria" +msgstr "Wähle Objekte aus, die zu allen angegebene Feldern passen" -#: ../src/ui/dialog/glyphs.cpp:302 -msgid "Specials" -msgstr "Besonderes" +#: ../src/ui/dialog/find.cpp:115 +msgid "_Replace All" +msgstr "Alles e_rsetzen" -#: ../src/ui/dialog/glyphs.cpp:377 -msgid "Script: " -msgstr "Skript:" +#: ../src/ui/dialog/find.cpp:115 +msgid "Replace all matches" +msgstr "Ersetze alle Ăśbereinstimmungen" -#: ../src/ui/dialog/glyphs.cpp:414 -msgid "Range: " -msgstr "Bereich:" +# # !!! just make the menu item insensitive +#: ../src/ui/dialog/find.cpp:775 +msgid "Nothing to replace" +msgstr "Es gibt nichts zu ersetzen" -# not sure here -cm- -#: ../src/ui/dialog/glyphs.cpp:497 -msgid "Append" -msgstr "HinzufĂĽgen" +#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed +#: ../src/ui/dialog/find.cpp:816 +#, c-format +msgid "%d object found (out of %d), %s match." +msgid_plural "%d objects found (out of %d), %s match." +msgstr[0] "%d (von %d) Objekt gefunden, %s passend." +msgstr[1] "%d (von %d) Objekten gefunden, %s passend." -#: ../src/ui/dialog/glyphs.cpp:618 -msgid "Append text" -msgstr "Text hinzufĂĽgen" +#: ../src/ui/dialog/find.cpp:819 +msgid "exact" +msgstr "exakt" -#: ../src/ui/dialog/grid-arrange-tab.cpp:351 -msgid "Arrange in a grid" -msgstr "In Raster anordnen:" +#: ../src/ui/dialog/find.cpp:819 +msgid "partial" +msgstr "teilweise" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 -#: ../src/ui/dialog/object-attributes.cpp:66 -#: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 -msgid "X:" -msgstr "X:" +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:822 +msgid "%1 match replaced" +msgid_plural "%1 matches replaced" +msgstr[0] "%1 Ăśbereinstimmung ersetzt" +msgstr[1] "%1 Ăśbereinstimmungen ersetzt" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 -msgid "Horizontal spacing between columns." -msgstr "Horizontale Abstände zwischen Spalten (px-Einheiten)" +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:826 +msgid "%1 object found" +msgid_plural "%1 objects found" +msgstr[0] "%1 Objekt gefunden" +msgstr[1] "%1 Objekte gefunden" -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 -#: ../src/ui/dialog/object-attributes.cpp:67 -#: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 -msgid "Y:" -msgstr "Y:" +#: ../src/ui/dialog/find.cpp:837 +msgid "Replace text or property" +msgstr "Text oder Eigenschaft ersetzen" -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 -msgid "Vertical spacing between rows." -msgstr "Vertikale Abstände zwischen Reihen (px-Einheiten)" +# !!! just make the menu item insensitive +#: ../src/ui/dialog/find.cpp:841 +msgid "Nothing found" +msgstr "Nichts gefunden" -#: ../src/ui/dialog/grid-arrange-tab.cpp:637 -msgid "_Rows:" -msgstr "_Reihen:" +#: ../src/ui/dialog/find.cpp:846 +msgid "No objects found" +msgstr "Keine Objekte gefunden" -#: ../src/ui/dialog/grid-arrange-tab.cpp:646 -msgid "Number of rows" -msgstr "Anzahl der Zeilen" +#: ../src/ui/dialog/find.cpp:867 +msgid "Select an object type" +msgstr "Wählen Sie ein Objekttyp" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 -msgid "Equal _height" -msgstr "Gleiche Höhe" +#: ../src/ui/dialog/find.cpp:885 +msgid "Select a property" +msgstr "Wählen Sie eine Eigenschaft aus" -#: ../src/ui/dialog/grid-arrange-tab.cpp:661 -msgid "If not set, each row has the height of the tallest object in it" +#: ../src/ui/dialog/font-substitution.cpp:87 +msgid "" +"\n" +"Some fonts are not available and have been substituted." msgstr "" -"Wenn nicht gesetzt, dann hat jede Zeile die Höhe seines größten Objektes" - -#. #### Number of columns #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:677 -msgid "_Columns:" -msgstr "Spalten:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:686 -msgid "Number of columns" -msgstr "Anzahl der Spalten" +#: ../src/ui/dialog/font-substitution.cpp:90 +msgid "Font substitution" +msgstr "Schriftartersetzung" -#: ../src/ui/dialog/grid-arrange-tab.cpp:690 -msgid "Equal _width" -msgstr "Gleiche Breite" +#: ../src/ui/dialog/font-substitution.cpp:109 +#, fuzzy +msgid "Select all the affected items" +msgstr "Wählen Sie ein Objekttyp" -#: ../src/ui/dialog/grid-arrange-tab.cpp:700 -msgid "If not set, each column has the width of the widest object in it" -msgstr "" -"Wenn nicht gesetzt, dann hat jede Spalte die Breite seines breitesten " -"Objektes" +#: ../src/ui/dialog/font-substitution.cpp:114 +msgid "Don't show this warning again" +msgstr "Diese Warnung nicht erneut zeigen" -#. Anchor selection widget -#: ../src/ui/dialog/grid-arrange-tab.cpp:711 -msgid "Alignment:" -msgstr "" +#: ../src/ui/dialog/font-substitution.cpp:255 +msgid "Font '%1' substituted with '%2'" +msgstr "Schrift '%1' ersetzt durch '%2'" -#. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:720 -msgid "_Fit into selection box" -msgstr "In den Auswahlrahmen einpassen" +#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 +msgid "all" +msgstr "alles" -#: ../src/ui/dialog/grid-arrange-tab.cpp:727 -msgid "_Set spacing:" -msgstr "Abstand setzen:" +#: ../src/ui/dialog/glyphs.cpp:61 +msgid "common" +msgstr "allgemein" -#: ../src/ui/dialog/guides.cpp:47 -msgid "Rela_tive change" -msgstr "_Relative Bewegung" +#: ../src/ui/dialog/glyphs.cpp:62 +msgid "inherited" +msgstr "geerbt" -#: ../src/ui/dialog/guides.cpp:47 -msgid "Move and/or rotate the guide relative to current settings" -msgstr "FĂĽhrungslinie relativ zur aktuellen Position verschieben/rotieren" +#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 +msgid "Arabic" +msgstr "Arabisch (ar)" -#: ../src/ui/dialog/guides.cpp:48 -msgctxt "Guides" -msgid "_X:" -msgstr "_X: [FĂĽhrungslinien]" +#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 +msgid "Armenian" +msgstr "Armenisch (hy)" -#: ../src/ui/dialog/guides.cpp:49 -msgctxt "Guides" -msgid "_Y:" -msgstr "_Y: [FĂĽhrungslinien]" +#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 +msgid "Bengali" +msgstr "Bengalesisch (bn)" -#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 -msgid "_Label:" -msgstr "_Bezeichner:" +#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 +msgid "Bopomofo" +msgstr "Bopomofo" -#: ../src/ui/dialog/guides.cpp:50 -msgid "Optionally give this guideline a name" -msgstr "Vergeben Sie optional einen Namen fĂĽr die FĂĽhrungslinie" +#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 +msgid "Cherokee" +msgstr "Cherokee" -#: ../src/ui/dialog/guides.cpp:51 -msgid "_Angle:" -msgstr "Winkel:" +#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 +msgid "Coptic" +msgstr "Koptisch" -#: ../src/ui/dialog/guides.cpp:130 -msgid "Set guide properties" -msgstr "FĂĽhrungslinien-Eigenschaften setzen" +#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 +#: ../share/extensions/hershey.inx.h:22 +msgid "Cyrillic" +msgstr "Kyrillisch" -#: ../src/ui/dialog/guides.cpp:160 -msgid "Guideline" -msgstr "FĂĽhrungslinien" +#: ../src/ui/dialog/glyphs.cpp:70 +msgid "Deseret" +msgstr "Deseret" -#: ../src/ui/dialog/guides.cpp:310 -#, c-format -msgid "Guideline ID: %s" -msgstr "FĂĽhrungslinien ID: %s" +#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 +msgid "Devanagari" +msgstr "Devanagari" -#: ../src/ui/dialog/guides.cpp:316 -#, c-format -msgid "Current: %s" -msgstr "Aktuell: %s" +#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 +msgid "Ethiopic" +msgstr "Ă„thiopisch" -#: ../src/ui/dialog/icon-preview.cpp:159 -#, c-format -msgid "%d x %d" -msgstr "%d Ă— %d" +#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 +msgid "Georgian" +msgstr "Georgisch" -#: ../src/ui/dialog/icon-preview.cpp:171 -msgid "Magnified:" -msgstr "Vergrößert:" +#: ../src/ui/dialog/glyphs.cpp:74 +msgid "Gothic" +msgstr "Gotisch" -#: ../src/ui/dialog/icon-preview.cpp:240 -msgid "Actual Size:" -msgstr "Aktuelle Größe:" +#: ../src/ui/dialog/glyphs.cpp:75 +msgid "Greek" +msgstr "Griechisch" -#: ../src/ui/dialog/icon-preview.cpp:245 -msgctxt "Icon preview window" -msgid "Sele_ction" -msgstr "Auswahl" +#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 +msgid "Gujarati" +msgstr "Gujarati" -#: ../src/ui/dialog/icon-preview.cpp:247 -msgid "Selection only or whole document" -msgstr "Nur Auswahl oder ganzes Dokument" +#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 +msgid "Gurmukhi" +msgstr "Gurmukhi" -#: ../src/ui/dialog/inkscape-preferences.cpp:181 -msgid "Show selection cue" -msgstr "Auswahlmarkierung anzeigen" +#: ../src/ui/dialog/glyphs.cpp:78 +msgid "Han" +msgstr "Han" -# !!! Frage? Passiv formulieren? -#: ../src/ui/dialog/inkscape-preferences.cpp:182 -msgid "" -"Whether selected objects display a selection cue (the same as in selector)" -msgstr "" -"Sind die ausgewählten Objekte visuell hervorgehoben (wie beim " -"Auswahlwerkzeug) " +#: ../src/ui/dialog/glyphs.cpp:79 +msgid "Hangul" +msgstr "Hangul" -#: ../src/ui/dialog/inkscape-preferences.cpp:188 -msgid "Enable gradient editing" -msgstr "Farbverlaufs-Editor aktiviert" +#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 +msgid "Hebrew" +msgstr "Hebräisch (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:189 -msgid "Whether selected objects display gradient editing controls" -msgstr "Ausgewählten Objekte zeigen Farbverlaufs-Anfasser an" +#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 +msgid "Hiragana" +msgstr "Hiragana" -#: ../src/ui/dialog/inkscape-preferences.cpp:194 -msgid "Conversion to guides uses edges instead of bounding box" -msgstr "Umwandlung zu FĂĽhrungslinien nutzt Ecken anstelle von Umrandungsboxen" +#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 +msgid "Kannada" +msgstr "Kannada" -#: ../src/ui/dialog/inkscape-preferences.cpp:195 -msgid "" -"Converting an object to guides places these along the object's true edges " -"(imitating the object's shape), not along the bounding box" -msgstr "" -"Wird ein Objekt zu FĂĽhrungslinien umgewandelt, so gelten die tatsächlichen " -"Umrisse des Objekts, nicht die rechteckige Umrandung." +#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 +msgid "Katakana" +msgstr "Katakana" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -msgid "Ctrl+click _dot size:" -msgstr "Strg+Klick Punktgröße:" +#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 +msgid "Khmer" +msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -msgid "times current stroke width" -msgstr "(Faktor zur Kontur)" +#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 +msgid "Lao" +msgstr "Lao" -#: ../src/ui/dialog/inkscape-preferences.cpp:203 -msgid "Size of dots created with Ctrl+click (relative to current stroke width)" -msgstr "" -"Größe der Punkte, die durch Strg+Klick erzeugt werden (Relativ zur aktuellen " -"Strichdicke)" +#: ../src/ui/dialog/glyphs.cpp:86 +msgid "Latin" +msgstr "Latein" -#: ../src/ui/dialog/inkscape-preferences.cpp:218 -msgid "No objects selected to take the style from." -msgstr "Objekte auswählen, um Stil zu ĂĽbernehmen." +#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 +msgid "Malayalam" +msgstr "Malayalam" -#: ../src/ui/dialog/inkscape-preferences.cpp:227 -msgid "" -"More than one object selected. Cannot take style from multiple " -"objects." -msgstr "" -"Mehr als ein Objekt ausgewählt. Ein Stil kann nicht von mehreren " -"Objekten ĂĽbernommen werden." +#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 +msgid "Mongolian" +msgstr "Mongolisch (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:260 -msgid "Style of new objects" -msgstr "Stil von neuen Objekten" +#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 +msgid "Myanmar" +msgstr "Myanmar" -#: ../src/ui/dialog/inkscape-preferences.cpp:262 -msgid "Last used style" -msgstr "Zuletzt benutzter Stil" +#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 +msgid "Ogham" +msgstr "Oghamschrift" -#: ../src/ui/dialog/inkscape-preferences.cpp:264 -msgid "Apply the style you last set on an object" -msgstr "Stil anwenden, der zuletzt fĂĽr ein Objekt gesetzt wurde" +#: ../src/ui/dialog/glyphs.cpp:91 +msgid "Old Italic" +msgstr "Kursiv" -#: ../src/ui/dialog/inkscape-preferences.cpp:269 -msgid "This tool's own style:" -msgstr "Stilvorgaben fĂĽr dieses Werkzeug:" +#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 +msgid "Oriya" +msgstr "Oriya" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 -msgid "" -"Each tool may store its own style to apply to the newly created objects. Use " -"the button below to set it." -msgstr "" -"Werkzeuge können eigene Stilvorgaben behalten, die auf neu erzeugte Objekte " -"angewendet werden. Stilvorgabe mit dem unteren Knopf festlegen." +#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 +msgid "Runic" +msgstr "Runic" -#. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:277 -msgid "Take from selection" -msgstr "Aus Auswahl ĂĽbernehmen" +#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 +msgid "Sinhala" +msgstr "Singhalesisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:282 -msgid "This tool's style of new objects" -msgstr "Stilvorgaben fĂĽr dieses Werkzeug fĂĽr neue Objekte:" +#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 +msgid "Syriac" +msgstr "Syriac" -#: ../src/ui/dialog/inkscape-preferences.cpp:289 -msgid "Remember the style of the (first) selected object as this tool's style" -msgstr "" -"Stil des (ersten) ausgewählten Objektes zur Vorgabe fĂĽr dieses Werkzeug " -"machen" +#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 +msgid "Tamil" +msgstr "Tamilisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:294 -msgid "Tools" -msgstr "Werkzeuge" +#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 +msgid "Telugu" +msgstr "Telugu" -#: ../src/ui/dialog/inkscape-preferences.cpp:297 -msgid "Bounding box to use" -msgstr "Zu verwendende Umrandungsbox:" +#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 +msgid "Thaana" +msgstr "Thaana" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 -msgid "Visual bounding box" -msgstr "Visuelle Umrandungsbox" +#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 +msgid "Thai" +msgstr "Thai (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:300 -msgid "This bounding box includes stroke width, markers, filter margins, etc." -msgstr "" -"Diese Umrandungsbox berĂĽcksichtigt Strichbreiten, Markierungen, Filterränder " -"usw." +#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 +msgid "Tibetan" +msgstr "Tibetisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:301 -msgid "Geometric bounding box" -msgstr "Geometrische Umrandungsbox" +#: ../src/ui/dialog/glyphs.cpp:101 +msgid "Canadian Aboriginal" +msgstr "Kanadisch Aborigini" -#: ../src/ui/dialog/inkscape-preferences.cpp:303 -msgid "This bounding box includes only the bare path" -msgstr "Diese Umrandungsbox berĂĽcksichtigt nur den reinen Pfad" +#: ../src/ui/dialog/glyphs.cpp:102 +msgid "Yi" +msgstr "Yi" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 -msgid "Conversion to guides" -msgstr "Umwandlung in FĂĽhrungslinien" +#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 +msgid "Tagalog" +msgstr "Tagalog" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 -msgid "Keep objects after conversion to guides" -msgstr "Behalte Objekte nach Umwandlung in FĂĽhrungslinien" +#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 +msgid "Hanunoo" +msgstr "Hanunoo" -#: ../src/ui/dialog/inkscape-preferences.cpp:308 -msgid "" -"When converting an object to guides, don't delete the object after the " -"conversion" -msgstr "Objekt bleibt erhalten, wenn es in FĂĽhrungslinien umgewandelt wird." +#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 +msgid "Buhid" +msgstr "Buhid" -#: ../src/ui/dialog/inkscape-preferences.cpp:309 -msgid "Treat groups as a single object" -msgstr "Behandle Gruppen als Einzelobjekte" +#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 +msgid "Tagbanwa" +msgstr "Tagbanwa" -#: ../src/ui/dialog/inkscape-preferences.cpp:311 -msgid "" -"Treat groups as a single object during conversion to guides rather than " -"converting each child separately" -msgstr "" -"Gruppen werden als Ganzes (statt der Einzelteile) zu FĂĽhrungslinien " -"umgewandelt." +#: ../src/ui/dialog/glyphs.cpp:107 +msgid "Braille" +msgstr "Braille (Blindenschrift)" -#: ../src/ui/dialog/inkscape-preferences.cpp:313 -msgid "Average all sketches" -msgstr "Durchschnittliche Qualität der Sketche" +#: ../src/ui/dialog/glyphs.cpp:108 +msgid "Cypriot" +msgstr "Zypriotisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:314 -msgid "Width is in absolute units" -msgstr "Breitenangabe in absoluten Einheiten" +#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 +msgid "Limbu" +msgstr "Limbu" -#: ../src/ui/dialog/inkscape-preferences.cpp:315 -msgid "Select new path" -msgstr "Neuen Pfad auswählen" +#: ../src/ui/dialog/glyphs.cpp:110 +msgid "Osmanya" +msgstr "Osmaniya" -#: ../src/ui/dialog/inkscape-preferences.cpp:316 -msgid "Don't attach connectors to text objects" -msgstr "Objektverbinder nicht mit Textobjekten verbinden" +#: ../src/ui/dialog/glyphs.cpp:111 +msgid "Shavian" +msgstr "Schaw" -#. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:319 -msgid "Selector" -msgstr "Auswahlwerkzeug" +#: ../src/ui/dialog/glyphs.cpp:112 +msgid "Linear B" +msgstr "Linearschrift B" -#: ../src/ui/dialog/inkscape-preferences.cpp:324 -msgid "When transforming, show" -msgstr "Zeige beim Transformieren" +#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 +msgid "Tai Le" +msgstr "Tai Le" -#: ../src/ui/dialog/inkscape-preferences.cpp:325 -msgid "Objects" -msgstr "Objekte" +#: ../src/ui/dialog/glyphs.cpp:114 +msgid "Ugaritic" +msgstr "Ugaritisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:327 -msgid "Show the actual objects when moving or transforming" -msgstr "Zeige Objekte mit Inhalt beim Verschieben oder Verändern" +#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 +msgid "New Tai Lue" +msgstr "Neu Tai-Lue" -#: ../src/ui/dialog/inkscape-preferences.cpp:328 -msgid "Box outline" -msgstr "Objektumriss" +#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 +msgid "Buginese" +msgstr "Buginesisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:330 -msgid "Show only a box outline of the objects when moving or transforming" -msgstr "Zeige rechteckige Objektumrisse beim Verschieben oder Verändern" +#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 +msgid "Glagolitic" +msgstr "Glagolitisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:331 -msgid "Per-object selection cue" -msgstr "Pro Objekt-Auswahl" +#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 +msgid "Tifinagh" +msgstr "Tifinagh" -#: ../src/ui/dialog/inkscape-preferences.cpp:334 -msgid "No per-object selection indication" -msgstr "Keine Auswahlmarkierung fĂĽr Objekte" +#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 +msgid "Syloti Nagri" +msgstr "Sylheti Nagari" -#: ../src/ui/dialog/inkscape-preferences.cpp:335 -msgid "Mark" -msgstr "Markierung" +#: ../src/ui/dialog/glyphs.cpp:120 +msgid "Old Persian" +msgstr "Alt Persisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:337 -msgid "Each selected object has a diamond mark in the top left corner" -msgstr "" -"Jedes ausgewählte Objekt hat eine diamantförmige Markierung in der linken " -"oberen Ecke" +#: ../src/ui/dialog/glyphs.cpp:121 +msgid "Kharoshthi" +msgstr "Kharoshthi" -#: ../src/ui/dialog/inkscape-preferences.cpp:338 -msgid "Box" -msgstr "UmschlieĂźendes Rechteck" +#: ../src/ui/dialog/glyphs.cpp:122 +msgid "unassigned" +msgstr "nicht zugeordnet" -#: ../src/ui/dialog/inkscape-preferences.cpp:340 -msgid "Each selected object displays its bounding box" -msgstr "" -"Jedes gewählte Objekt zeigt sein umschlieĂźendes Rechteck (Umrandungsbox)" +#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 +msgid "Balinese" +msgstr "Balinesisch" -#. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:343 -msgid "Node" -msgstr "Knoten" +#: ../src/ui/dialog/glyphs.cpp:124 +msgid "Cuneiform" +msgstr "Keilschrift" -#: ../src/ui/dialog/inkscape-preferences.cpp:346 -msgid "Path outline" -msgstr "Pfadumriss" +#: ../src/ui/dialog/glyphs.cpp:125 +msgid "Phoenician" +msgstr "Phönizisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:347 -msgid "Path outline color" -msgstr "Entwurfspfad Farbe" +#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 +msgid "Phags-pa" +msgstr "Phagpa" -#: ../src/ui/dialog/inkscape-preferences.cpp:348 -msgid "Selects the color used for showing the path outline" -msgstr "Die Farbe in der der Entwurfspfad angezeigt wird." +#: ../src/ui/dialog/glyphs.cpp:127 +msgid "N'Ko" +msgstr "N'Ko" -#: ../src/ui/dialog/inkscape-preferences.cpp:349 -msgid "Always show outline" -msgstr "Umriss zeigen" +#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 +msgid "Kayah Li" +msgstr "Kayah Li" -#: ../src/ui/dialog/inkscape-preferences.cpp:350 -msgid "Show outlines for all paths, not only invisible paths" -msgstr "Zeigt Umrandung aller Pfade an, nicht nur von unsichtbaren Pfaden" +#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 +msgid "Lepcha" +msgstr "Lepcha" -#: ../src/ui/dialog/inkscape-preferences.cpp:351 -msgid "Update outline when dragging nodes" -msgstr "Umriss beim Ziehen von Knoten aktualisieren" +#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 +msgid "Rejang" +msgstr "Rejang" -#: ../src/ui/dialog/inkscape-preferences.cpp:352 -msgid "" -"Update the outline when dragging or transforming nodes; if this is off, the " -"outline will only update when completing a drag" -msgstr "" -"Aktualisiert die Umrandung beim Ziehen oder transformieren der Knoten. Wenn " -"es deaktiviert ist, wird die Umrandung erst wieder aktualisiert, wenn die " -"Aktion abgeschlossen ist." +#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 +msgid "Sundanese" +msgstr "Sundanesisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:353 -msgid "Update paths when dragging nodes" -msgstr "Pfad beim Ziehen von Knoten aktualisieren" +#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 +msgid "Saurashtra" +msgstr "Saurashtra" -#: ../src/ui/dialog/inkscape-preferences.cpp:354 -msgid "" -"Update paths when dragging or transforming nodes; if this is off, paths will " -"only be updated when completing a drag" -msgstr "" -"Aktualisiert Pfade beim Ziehen oder Transformieren der Knoten. Wenn es " -"deaktiviert ist, wird der Pfad erst aktualisiert, wenn die Aktion " -"abgeschlossen ist." +#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 +msgid "Cham" +msgstr "Cham" -#: ../src/ui/dialog/inkscape-preferences.cpp:355 -msgid "Show path direction on outlines" -msgstr "Zeige die Pfadrichtung an AuĂźenlinine" +#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 +msgid "Ol Chiki" +msgstr "Ol Chiki" -#: ../src/ui/dialog/inkscape-preferences.cpp:356 -msgid "" -"Visualize the direction of selected paths by drawing small arrows in the " -"middle of each outline segment" -msgstr "" -"Veranschaulichen Sie die Richtung der ausgewählten Pfade, in dem Sie kleine " -"Pfeile in die Mitte jedes Rand-Segments zeichnen." +#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 +msgid "Vai" +msgstr "Vai" -#: ../src/ui/dialog/inkscape-preferences.cpp:357 -msgid "Show temporary path outline" -msgstr "Zeige temporär Pfadumrandung" +#: ../src/ui/dialog/glyphs.cpp:136 +msgid "Carian" +msgstr "Karisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:358 -msgid "When hovering over a path, briefly flash its outline" -msgstr "" -"Wenn die Maus ĂĽber den Pfad bewegt wird, wird dessen Entwurfspfad kurz " -"angezeigt." +#: ../src/ui/dialog/glyphs.cpp:137 +msgid "Lycian" +msgstr "Lykisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:359 -msgid "Show temporary outline for selected paths" -msgstr "Zeige temporär Umrandung fĂĽr ausgewählte Pfade" +#: ../src/ui/dialog/glyphs.cpp:138 +msgid "Lydian" +msgstr "Lydisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:360 -msgid "Show temporary outline even when a path is selected for editing" -msgstr "" -"Zeigt temporäre Umrandung an, wenn der Pfad zum Bearbeiten ausgewählt wurde." +#: ../src/ui/dialog/glyphs.cpp:153 +msgid "Basic Latin" +msgstr "Latein" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 -msgid "_Flash time:" -msgstr "Anzeigedauer" +#: ../src/ui/dialog/glyphs.cpp:154 +msgid "Latin-1 Supplement" +msgstr "Latein-1 Ergänzung" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 -msgid "" -"Specifies how long the path outline will be visible after a mouse-over (in " -"milliseconds); specify 0 to have the outline shown until mouse leaves the " -"path" -msgstr "" -"Bestimmt die Dauer der Pfad anzeige (in Millisekunden). Bei 0 wird der " -"Entwurfspfad angezeigt bis die Maus den Bereich verlassen hat." +#: ../src/ui/dialog/glyphs.cpp:155 +msgid "Latin Extended-A" +msgstr "Latein Erweitert-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 -msgid "Editing preferences" -msgstr "Einstellungen bearbeiten" +#: ../src/ui/dialog/glyphs.cpp:156 +msgid "Latin Extended-B" +msgstr "Latein Erweitert-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:364 -msgid "Show transform handles for single nodes" -msgstr "Zeige Anfasser fĂĽr einzelne Knoten" +#: ../src/ui/dialog/glyphs.cpp:157 +msgid "IPA Extensions" +msgstr "IPA Erweiterungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 -msgid "Show transform handles even when only a single node is selected" -msgstr "Anfasser anzeigen, wenn nur ein einzelner Knoten ausgewählt ist." +#: ../src/ui/dialog/glyphs.cpp:158 +msgid "Spacing Modifier Letters" +msgstr "Spacing Modifier Letters" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 -msgid "Deleting nodes preserves shape" -msgstr "Knoten löschen, Form beibehalten" +#: ../src/ui/dialog/glyphs.cpp:159 +msgid "Combining Diacritical Marks" +msgstr "Kombination diaktritischer Zeichen" -#: ../src/ui/dialog/inkscape-preferences.cpp:367 -msgid "" -"Move handles next to deleted nodes to resemble original shape; hold Ctrl to " -"get the other behavior" -msgstr "" -"Verschieben des Anfassers zum nächsten gelöschten Knoten, damit es der " -"Origianlform ähnelt; drĂĽcken Sie STRG fĂĽr das andere Verhalten" +#: ../src/ui/dialog/glyphs.cpp:160 +msgid "Greek and Coptic" +msgstr "Griechisch und Koptisch" -#. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:370 -msgid "Tweak" -msgstr "Modellieren" +#: ../src/ui/dialog/glyphs.cpp:162 +msgid "Cyrillic Supplement" +msgstr "Kyrillisch Ergänzend" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 -msgid "Object paint style" -msgstr "Objekt-Farbstil" +#: ../src/ui/dialog/glyphs.cpp:167 +msgid "Arabic Supplement" +msgstr "Arabisch Ergänzend" -#. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:376 -#: ../src/widgets/desktop-widget.cpp:631 -msgid "Zoom" -msgstr "Zoomfaktor" +#: ../src/ui/dialog/glyphs.cpp:169 +msgid "NKo" +msgstr "N'Ko" -#. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:381 ../src/verbs.cpp:2678 -msgctxt "ContextVerb" -msgid "Measure" -msgstr "Ausmessen" +#: ../src/ui/dialog/glyphs.cpp:170 +msgid "Samaritan" +msgstr "Samaritanisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:383 -msgid "Ignore first and last points" -msgstr "Ersten und letzen Punkt ignorieren" +#: ../src/ui/dialog/glyphs.cpp:186 +msgid "Hangul Jamo" +msgstr "Hangul Jamo" -#: ../src/ui/dialog/inkscape-preferences.cpp:384 -msgid "" -"The start and end of the measurement tool's control line will not be " -"considered for calculating lengths. Only lengths between actual curve " -"intersections will be displayed." -msgstr "" -"Der Beginn und das Ende des Mess-Werkzeugs-Steuerungszeile wird nicht zum " -"Berechnen Längen betrachtet. Nur Längen zwischen aktuellen Kurven-Kreuzungen " -"werden angezeigt." +#: ../src/ui/dialog/glyphs.cpp:188 +msgid "Ethiopic Supplement" +msgstr "Ă„thiopisch Ergänzend" -#. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:387 -msgid "Shapes" -msgstr "Formen" +#: ../src/ui/dialog/glyphs.cpp:190 +msgid "Unified Canadian Aboriginal Syllabics" +msgstr "Einheitliches Kanadisch Aborigini Symbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:419 -msgid "Sketch mode" -msgstr "Freihandmodus" +#: ../src/ui/dialog/glyphs.cpp:199 +msgid "Unified Canadian Aboriginal Syllabics Extended" +msgstr "Einheitliche Kanadisch-Aborigini-Syllabisch Erweitert" -#: ../src/ui/dialog/inkscape-preferences.cpp:421 -msgid "" -"If on, the sketch result will be the normal average of all sketches made, " -"instead of averaging the old result with the new sketch" -msgstr "" -"Wenn gewählt, dann ist das Resultat das Mittel aus allen Skizzen, statt das " -"alte Ergebnis mit der neuen Skizze zu mitteln." +#: ../src/ui/dialog/glyphs.cpp:203 +msgid "Khmer Symbols" +msgstr "Khmer (km) Symbole" -#. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:424 -#: ../src/ui/dialog/input.cpp:1485 -msgid "Pen" -msgstr "FĂĽller (Linien & BĂ©zierkurven)" +#: ../src/ui/dialog/glyphs.cpp:205 +msgid "Tai Tham" +msgstr "Tai Tham" -#. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:430 -msgid "Calligraphy" -msgstr "Kalligrafie" +#: ../src/ui/dialog/glyphs.cpp:210 +msgid "Vedic Extensions" +msgstr "Verdic Erweiterung" -#: ../src/ui/dialog/inkscape-preferences.cpp:434 -msgid "" -"If on, pen width is in absolute units (px) independent of zoom; otherwise " -"pen width depends on zoom so that it looks the same at any zoom" -msgstr "" -"Wenn eingeschaltet, dann ist die Stiftbreite in absoluten Einheiten (px) " -"unabhängig vom Zoom; ansonsten hängt die Stiftbreite vom Zoom ab, so dass " -"sie bei jeder Zoomeinstellung gleich aussieht" +#: ../src/ui/dialog/glyphs.cpp:211 +msgid "Phonetic Extensions" +msgstr "Phonetische Erweiterungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:436 -msgid "" -"If on, each newly created object will be selected (deselecting previous " -"selection)" -msgstr "" -"Wenn eingeschaltet, dann wird jedes neu erzeugte Objekt ausgewählt " -"(vorherige Auswahl ist nicht mehr aktiv)" +#: ../src/ui/dialog/glyphs.cpp:212 +msgid "Phonetic Extensions Supplement" +msgstr "Phonetische Zusatz -rweiterungen" -#. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:439 ../src/verbs.cpp:2670 -msgctxt "ContextVerb" -msgid "Text" -msgstr "Text" +#: ../src/ui/dialog/glyphs.cpp:213 +msgid "Combining Diacritical Marks Supplement" +msgstr "Kombiation diakritischer Zeichen Ergänzung" -#: ../src/ui/dialog/inkscape-preferences.cpp:444 -msgid "Show font samples in the drop-down list" -msgstr "Zeigt Schriftart-Beispiele in der Auswahl-Liste" +#: ../src/ui/dialog/glyphs.cpp:214 +msgid "Latin Extended Additional" +msgstr "Latein Erweitert Zusatz" -#: ../src/ui/dialog/inkscape-preferences.cpp:445 -msgid "" -"Show font samples alongside font names in the drop-down list in Text bar" -msgstr "" -"Zeigt Schriftart-Beispiele neben den Schriftartnamen in der Auswahl-Liste " -"in der Textleiste" +#: ../src/ui/dialog/glyphs.cpp:215 +msgid "Greek Extended" +msgstr "Griechisch Erweitert" -#: ../src/ui/dialog/inkscape-preferences.cpp:447 -msgid "Show font substitution warning dialog" -msgstr "Zeige Warnungsdialog fĂĽr Schriftersetzung" +#: ../src/ui/dialog/glyphs.cpp:216 +msgid "General Punctuation" +msgstr "Generelle Punktierung" -#: ../src/ui/dialog/inkscape-preferences.cpp:448 -msgid "" -"Show font substitution warning dialog when requested fonts are not available " -"on the system" -msgstr "" -"Zeigt Schriftartenersetzungs-Warnmeldung, wenn angeforderte Schriftartenauf " -"dem System nicht verfĂĽgbar sind" +#: ../src/ui/dialog/glyphs.cpp:217 +msgid "Superscripts and Subscripts" +msgstr "Hoch- und Tiefgestellt" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Pixel" -msgstr "Pixel" +#: ../src/ui/dialog/glyphs.cpp:218 +msgid "Currency Symbols" +msgstr "Währungssymbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Pica" -msgstr "Pica" +#: ../src/ui/dialog/glyphs.cpp:219 +msgid "Combining Diacritical Marks for Symbols" +msgstr "Kombiation diakritischer Zeichen fĂĽr Symbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Millimeter" -msgstr "Millimeter" +#: ../src/ui/dialog/glyphs.cpp:220 +msgid "Letterlike Symbols" +msgstr "Buchstabenartige Symbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Centimeter" -msgstr "Zentimeter" +#: ../src/ui/dialog/glyphs.cpp:221 +msgid "Number Forms" +msgstr "Zahlenformen" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Inch" -msgstr "Zoll" +#: ../src/ui/dialog/glyphs.cpp:222 +msgid "Arrows" +msgstr "Pfeile" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Em square" -msgstr "Em-Quadrat" +#: ../src/ui/dialog/glyphs.cpp:223 +msgid "Mathematical Operators" +msgstr "Mathematische Operatoren" -#. , _("Ex square"), _("Percent") -#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:454 -msgid "Text units" -msgstr "Texteinheiten" +#: ../src/ui/dialog/glyphs.cpp:224 +msgid "Miscellaneous Technical" +msgstr "Verschiedenes Technisches" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 -msgid "Text size unit type:" -msgstr "Textgrößen-Einheitstyp:" +#: ../src/ui/dialog/glyphs.cpp:225 +msgid "Control Pictures" +msgstr "Bildkontrolle" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 -msgid "Set the type of unit used in the text toolbar and text dialogs" -msgstr "" -"Setzt den Typ der Einheit, die in der Text-Werkzeugleiste und in " -"Textdialogen verwendet werden" +#: ../src/ui/dialog/glyphs.cpp:226 +msgid "Optical Character Recognition" +msgstr "Optische Zeichenerkennung" -#: ../src/ui/dialog/inkscape-preferences.cpp:458 -msgid "Always output text size in pixels (px)" -msgstr "Ausgabe-Textgröße immer in Pixeln (px)" +#: ../src/ui/dialog/glyphs.cpp:227 +msgid "Enclosed Alphanumerics" +msgstr "Eingeschlossene Alphanumerik" -#: ../src/ui/dialog/inkscape-preferences.cpp:459 -msgid "" -"Always convert the text size units above into pixels (px) before saving to " -"file" -msgstr "" -"Die Textgrößen-Einheiten oben in Pixel (px) vor dem Speichern einer Datei " -"immer umwandeln" +# not sure here -cm- +#: ../src/ui/dialog/glyphs.cpp:228 +msgid "Box Drawing" +msgstr "Box Zeichnung" -#. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:464 -msgid "Spray" -msgstr "Spray" +#: ../src/ui/dialog/glyphs.cpp:229 +msgid "Block Elements" +msgstr "Blockelemente" -# Name des Effekte-submenĂĽ, das alle Bitmap-Effekte beinhaltet. -#. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:469 -msgid "Eraser" -msgstr "Radierer" +#: ../src/ui/dialog/glyphs.cpp:230 +msgid "Geometric Shapes" +msgstr "Geometrische Formen" -#. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:473 -msgid "Paint Bucket" -msgstr "Farbeimer" +#: ../src/ui/dialog/glyphs.cpp:231 +msgid "Miscellaneous Symbols" +msgstr "Verschiedene Symbole" -#. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:478 -#: ../src/widgets/gradient-selector.cpp:152 -#: ../src/widgets/gradient-selector.cpp:320 -msgid "Gradient" -msgstr "Farbverlauf" +#: ../src/ui/dialog/glyphs.cpp:232 +msgid "Dingbats" +msgstr "Dingbats" -#: ../src/ui/dialog/inkscape-preferences.cpp:480 -msgid "Prevent sharing of gradient definitions" -msgstr "Keine gemeinsamen Verlaufdefinitionen " +#: ../src/ui/dialog/glyphs.cpp:233 +msgid "Miscellaneous Mathematical Symbols-A" +msgstr "Verschiedene mathematische Symbole-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:482 -msgid "" -"When on, shared gradient definitions are automatically forked on change; " -"uncheck to allow sharing of gradient definitions so that editing one object " -"may affect other objects using the same gradient" -msgstr "" -"Wenn aktiviert werden gemeinsam genutzte Verläufe automatisch aufgeteilt, " -"sobald einer geändert wird. Andernfalls werden bei der Ă„nderung eines " -"Verlaufes sämtliche Objekte mit dem gleichen Verlauf ebenfalls geändert." +#: ../src/ui/dialog/glyphs.cpp:234 +msgid "Supplemental Arrows-A" +msgstr "Ergänzende Pfeile-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:483 -msgid "Use legacy Gradient Editor" -msgstr "Nutze den alten Farbverlaufs-Editor" +#: ../src/ui/dialog/glyphs.cpp:235 +msgid "Braille Patterns" +msgstr "Braille Muster" -#: ../src/ui/dialog/inkscape-preferences.cpp:485 -msgid "" -"When on, the Gradient Edit button in the Fill & Stroke dialog will show the " -"legacy Gradient Editor dialog, when off the Gradient Tool will be used" -msgstr "" -"Wenn eingeschaltet, zeigt die Schaltfläche Verlaufsbearbeitung im FĂĽllung & " -"Kontur Dialog den alten Verlaufs-Editor Dialog, wenn ausgeschaltet, wird das " -"Verlaufswerkzeug verwendet." +#: ../src/ui/dialog/glyphs.cpp:236 +msgid "Supplemental Arrows-B" +msgstr "Ergänzende Pfeile-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:488 -msgid "Linear gradient _angle:" -msgstr "Winkel des linearen Farbverlaufs" +#: ../src/ui/dialog/glyphs.cpp:237 +msgid "Miscellaneous Mathematical Symbols-B" +msgstr "Verschiedene mathematische Symbole-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 -msgid "" -"Default angle of new linear gradients in degrees (clockwise from horizontal)" -msgstr "" -"Standard-Winkel von neuen linearen Verläufen in Grad (von der Horizontalen " -"im Uhrzeigersinn)" +#: ../src/ui/dialog/glyphs.cpp:238 +msgid "Supplemental Mathematical Operators" +msgstr "ergänzende mathematische Operatoren" -#. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:493 -msgid "Dropper" -msgstr "Farbpipette" +#: ../src/ui/dialog/glyphs.cpp:239 +msgid "Miscellaneous Symbols and Arrows" +msgstr "Verschiedene Symbole und Pfeile" -#. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:498 -msgid "Connector" -msgstr "Objektverbinder" +#: ../src/ui/dialog/glyphs.cpp:241 +msgid "Latin Extended-C" +msgstr "Latein Erweitert-C" -#: ../src/ui/dialog/inkscape-preferences.cpp:501 -msgid "If on, connector attachment points will not be shown for text objects" -msgstr "" -"Wenn eingeschaltet, dann werden die Einrastpunkte nicht fĂĽr Textobjekte " -"angezeigt" +# !!! +#: ../src/ui/dialog/glyphs.cpp:243 +msgid "Georgian Supplement" +msgstr "Georgisch Ergänzend" -#. LPETool -#. disabled, because the LPETool is not finished yet. -#: ../src/ui/dialog/inkscape-preferences.cpp:506 -msgid "LPE Tool" -msgstr "" +#: ../src/ui/dialog/glyphs.cpp:245 +msgid "Ethiopic Extended" +msgstr "Ă„thiopisch Erweitert" -#: ../src/ui/dialog/inkscape-preferences.cpp:513 -msgid "Interface" -msgstr "Benutzeroberfläche" +#: ../src/ui/dialog/glyphs.cpp:246 +msgid "Cyrillic Extended-A" +msgstr "Kyrillisch Erweitert-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "System default" -msgstr "Standardeinstellungen" +#: ../src/ui/dialog/glyphs.cpp:247 +msgid "Supplemental Punctuation" +msgstr "Ergänzende Punktierung" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Albanian (sq)" -msgstr "Albanisch (sq)" +#: ../src/ui/dialog/glyphs.cpp:248 +msgid "CJK Radicals Supplement" +msgstr "CJK Radikal Ergänzend" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Amharic (am)" -msgstr "Amharisch (am)" +#: ../src/ui/dialog/glyphs.cpp:249 +msgid "Kangxi Radicals" +msgstr "Kangxi Radikal" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Arabic (ar)" -msgstr "Arabisch (ar)" +#: ../src/ui/dialog/glyphs.cpp:250 +msgid "Ideographic Description Characters" +msgstr "Sinnbildliche Beschreibungsbuchstaben" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Armenian (hy)" -msgstr "Armenisch (hy)" +#: ../src/ui/dialog/glyphs.cpp:251 +msgid "CJK Symbols and Punctuation" +msgstr "CJK Symbole und Punktierungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Azerbaijani (az)" -msgstr "Aserbeidschanisch (az)" +#: ../src/ui/dialog/glyphs.cpp:255 +msgid "Hangul Compatibility Jamo" +msgstr "Hangul Kompatibel Jamo" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Basque (eu)" -msgstr "Baskisch (eu)" +#: ../src/ui/dialog/glyphs.cpp:256 +msgid "Kanbun" +msgstr "Kanbun" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Belarusian (be)" -msgstr "Belorussisch (be)" +#: ../src/ui/dialog/glyphs.cpp:257 +msgid "Bopomofo Extended" +msgstr "Bopomofo Erweitert" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Bulgarian (bg)" -msgstr "Bulgarisch (bg)" +#: ../src/ui/dialog/glyphs.cpp:258 +msgid "CJK Strokes" +msgstr "CJK Konturen" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Bengali (bn)" -msgstr "Bengalesisch (bn)" +#: ../src/ui/dialog/glyphs.cpp:259 +msgid "Katakana Phonetic Extensions" +msgstr "Katakana Phonetische Erweiterungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Bengali/Bangladesh (bn_BD)" -msgstr "Bengalesisch (bn_BD)" +#: ../src/ui/dialog/glyphs.cpp:260 +msgid "Enclosed CJK Letters and Months" +msgstr "Eingeschlossene CJK Buchstaben und Monate" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Breton (br)" -msgstr "Bretonisch (br)" +#: ../src/ui/dialog/glyphs.cpp:261 +msgid "CJK Compatibility" +msgstr "CJK Kompatibilität" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Catalan (ca)" -msgstr "Katalanisch (ca)" +#: ../src/ui/dialog/glyphs.cpp:262 +msgid "CJK Unified Ideographs Extension A" +msgstr "CJK einheitliche Sinnbilder Erweiterung A" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Valencian Catalan (ca@valencia)" -msgstr "Valencianisches Katalan (ca@valencia)" +#: ../src/ui/dialog/glyphs.cpp:263 +msgid "Yijing Hexagram Symbols" +msgstr "Yijing Hexagram Symbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Chinese/China (zh_CN)" -msgstr "Chinesisch/china (zh_CN)" +#: ../src/ui/dialog/glyphs.cpp:264 +msgid "CJK Unified Ideographs" +msgstr "CJK einheitliche Schriftzeichen" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Chinese/Taiwan (zh_TW)" -msgstr "Chinesisch/Taiwan (zh_TW)" +#: ../src/ui/dialog/glyphs.cpp:265 +msgid "Yi Syllables" +msgstr "Yi Silben" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Croatian (hr)" -msgstr "Kroatisch (hr)" +#: ../src/ui/dialog/glyphs.cpp:266 +msgid "Yi Radicals" +msgstr "Yi Radikal" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Czech (cs)" -msgstr "Tschechisch (cs)" +#: ../src/ui/dialog/glyphs.cpp:267 +msgid "Lisu" +msgstr "Lisu" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Danish (da)" -msgstr "Dänisch (da)" +#: ../src/ui/dialog/glyphs.cpp:269 +msgid "Cyrillic Extended-B" +msgstr "Kyrillisch Erweitert-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Dutch (nl)" -msgstr "Niderländisch (nl)" +#: ../src/ui/dialog/glyphs.cpp:270 +msgid "Bamum" +msgstr "Bamum" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Dzongkha (dz)" -msgstr "Dzongkha (dz)" +#: ../src/ui/dialog/glyphs.cpp:271 +msgid "Modifier Tone Letters" +msgstr "Modifier Tone Letters" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "German (de)" -msgstr "Deutsch (de)" +#: ../src/ui/dialog/glyphs.cpp:272 +msgid "Latin Extended-D" +msgstr "Latein Erweitert-D" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Greek (el)" -msgstr "Griechisch (el)" +#: ../src/ui/dialog/glyphs.cpp:274 +msgid "Common Indic Number Forms" +msgstr "grbäuchliche indische Zahlformen" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "English (en)" -msgstr "Englisch (en)" +#: ../src/ui/dialog/glyphs.cpp:277 +msgid "Devanagari Extended" +msgstr "Devanagari Erweitert" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "English/Australia (en_AU)" -msgstr "Englisch/Australien (en_AU)" +#: ../src/ui/dialog/glyphs.cpp:280 +msgid "Hangul Jamo Extended-A" +msgstr "Hangul Jamo Erweitert-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "English/Canada (en_CA)" -msgstr "Englisch/Kanada (en_CA)" +#: ../src/ui/dialog/glyphs.cpp:281 +msgid "Javanese" +msgstr "Javanesisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "English/Great Britain (en_GB)" -msgstr "Englisch/GroĂźbritannien (en_GB)" +#: ../src/ui/dialog/glyphs.cpp:283 +msgid "Myanmar Extended-A" +msgstr "Myanmar-Erweitert-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "Pig Latin (en_US@piglatin)" -msgstr "Pig Latin (en_US@piglatin)" +#: ../src/ui/dialog/glyphs.cpp:284 +msgid "Tai Viet" +msgstr "Tai Viet" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Esperanto (eo)" -msgstr "Esperanto (eo)" +#: ../src/ui/dialog/glyphs.cpp:285 +msgid "Meetei Mayek" +msgstr "Meitei-Mayek" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Estonian (et)" -msgstr "Estnisch (et)" +#: ../src/ui/dialog/glyphs.cpp:286 +msgid "Hangul Syllables" +msgstr "Hangul Silben" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Farsi (fa)" -msgstr "Farsi (fa)" +#: ../src/ui/dialog/glyphs.cpp:287 +msgid "Hangul Jamo Extended-B" +msgstr "Hangul Jamo Erweitert-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Finnish (fi)" -msgstr "Finnisch (fi)" +#: ../src/ui/dialog/glyphs.cpp:288 +msgid "High Surrogates" +msgstr "Oberer Ersatz" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "French (fr)" -msgstr "Französisch (fr)" +#: ../src/ui/dialog/glyphs.cpp:289 +msgid "High Private Use Surrogates" +msgstr "Oberer privatgenutzter Ersatz" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Irish (ga)" -msgstr "Irisch (ga)" +#: ../src/ui/dialog/glyphs.cpp:290 +msgid "Low Surrogates" +msgstr "Unterer Ersatz" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Galician (gl)" -msgstr "Galizisch (gl)" +#: ../src/ui/dialog/glyphs.cpp:291 +msgid "Private Use Area" +msgstr "Privatgenutzter Bereich" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Hebrew (he)" -msgstr "Hebräisch (he)" +#: ../src/ui/dialog/glyphs.cpp:292 +msgid "CJK Compatibility Ideographs" +msgstr "CJK Kombatibilitätssinnbilder" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Hungarian (hu)" -msgstr "Ungarisch (hu)" +#: ../src/ui/dialog/glyphs.cpp:293 +msgid "Alphabetic Presentation Forms" +msgstr "Alphabetische Präsentationsformen" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Indonesian (id)" -msgstr "Indonesisch (id)" +#: ../src/ui/dialog/glyphs.cpp:294 +msgid "Arabic Presentation Forms-A" +msgstr "Arabische Präsentationsformen-A" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Italian (it)" -msgstr "Italienisch (it)" +#: ../src/ui/dialog/glyphs.cpp:295 +msgid "Variation Selectors" +msgstr "Varianten-Auswahl" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Japanese (ja)" -msgstr "Japanisch (ja)" +#: ../src/ui/dialog/glyphs.cpp:296 +msgid "Vertical Forms" +msgstr "Vertikale Formen" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Khmer (km)" -msgstr "Khmer (km)" +#: ../src/ui/dialog/glyphs.cpp:297 +msgid "Combining Half Marks" +msgstr "Halbzeichen kombinieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Kinyarwanda (rw)" -msgstr "Kinyarwanda (rw)" +#: ../src/ui/dialog/glyphs.cpp:298 +msgid "CJK Compatibility Forms" +msgstr "CJK Kompatible Formen" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Korean (ko)" -msgstr "Koreanisch (ko)" +#: ../src/ui/dialog/glyphs.cpp:299 +msgid "Small Form Variants" +msgstr "Kleine Formvarianten" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Lithuanian (lt)" -msgstr "Litauisch (lt)" +#: ../src/ui/dialog/glyphs.cpp:300 +msgid "Arabic Presentation Forms-B" +msgstr "Arabische Präsentationsformen-B" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Latvian (lv)" -msgstr "Lettisch (lv)" +#: ../src/ui/dialog/glyphs.cpp:301 +msgid "Halfwidth and Fullwidth Forms" +msgstr "Halbbreite und Vollbreite Formen" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Macedonian (mk)" -msgstr "Mazedonisch (mk)" +#: ../src/ui/dialog/glyphs.cpp:302 +msgid "Specials" +msgstr "Besonderes" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Mongolian (mn)" -msgstr "Mongolisch (mn)" +#: ../src/ui/dialog/glyphs.cpp:377 +msgid "Script: " +msgstr "Skript:" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Nepali (ne)" -msgstr "Nepalesisch (ne)" +#: ../src/ui/dialog/glyphs.cpp:414 +msgid "Range: " +msgstr "Bereich:" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Norwegian BokmĂĄl (nb)" -msgstr "Norwegisch/BokmĂĄl (nb)" +# not sure here -cm- +#: ../src/ui/dialog/glyphs.cpp:497 +msgid "Append" +msgstr "HinzufĂĽgen" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Norwegian Nynorsk (nn)" -msgstr "Norwegisch/Nynorsk (nn)" +#: ../src/ui/dialog/glyphs.cpp:618 +msgid "Append text" +msgstr "Text hinzufĂĽgen" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Panjabi (pa)" -msgstr "Panjabi (pa)" +#: ../src/ui/dialog/guides.cpp:47 +msgid "Rela_tive change" +msgstr "_Relative Bewegung" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Polish (pl)" -msgstr "Polnisch (pl)" +#: ../src/ui/dialog/guides.cpp:47 +msgid "Move and/or rotate the guide relative to current settings" +msgstr "FĂĽhrungslinie relativ zur aktuellen Position verschieben/rotieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Portuguese (pt)" -msgstr "Portugisisch(pt)" +#: ../src/ui/dialog/guides.cpp:48 +msgctxt "Guides" +msgid "_X:" +msgstr "_X: [FĂĽhrungslinien]" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Portuguese/Brazil (pt_BR)" -msgstr "Portugisisch/Brasilien (pt_BR)" +#: ../src/ui/dialog/guides.cpp:49 +msgctxt "Guides" +msgid "_Y:" +msgstr "_Y: [FĂĽhrungslinien]" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Romanian (ro)" -msgstr "Rumänisch (ro)" +#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:62 +msgid "_Label:" +msgstr "_Bezeichner:" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Russian (ru)" -msgstr "Russisch (ru)" +#: ../src/ui/dialog/guides.cpp:50 +msgid "Optionally give this guideline a name" +msgstr "Vergeben Sie optional einen Namen fĂĽr die FĂĽhrungslinie" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Serbian (sr)" -msgstr "Serbisch (sr)" +#: ../src/ui/dialog/guides.cpp:51 +msgid "_Angle:" +msgstr "Winkel:" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Serbian in Latin script (sr@latin)" -msgstr "Serbisch in lateinischer Schrift (sr@latin)" +#: ../src/ui/dialog/guides.cpp:131 +msgid "Set guide properties" +msgstr "FĂĽhrungslinien-Eigenschaften setzen" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Slovak (sk)" -msgstr "Slovakisch (sk)" +#: ../src/ui/dialog/guides.cpp:170 +msgid "Guideline" +msgstr "FĂĽhrungslinien" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Slovenian (sl)" -msgstr "Slovenisch (sl)" +#: ../src/ui/dialog/guides.cpp:323 +#, c-format +msgid "Guideline ID: %s" +msgstr "FĂĽhrungslinien ID: %s" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Spanish (es)" -msgstr "Spanisch (es)" +#: ../src/ui/dialog/guides.cpp:329 +#, c-format +msgid "Current: %s" +msgstr "Aktuell: %s" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Spanish/Mexico (es_MX)" -msgstr "Spanisch/Mexico (es_MX)" +#: ../src/ui/dialog/icon-preview.cpp:159 +#, c-format +msgid "%d x %d" +msgstr "%d Ă— %d" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Swedish (sv)" -msgstr "Schwedisch (sv)" +#: ../src/ui/dialog/icon-preview.cpp:171 +msgid "Magnified:" +msgstr "Vergrößert:" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Telugu (te_IN)" -msgstr "Telugu (te_IN)" +#: ../src/ui/dialog/icon-preview.cpp:240 +msgid "Actual Size:" +msgstr "Aktuelle Größe:" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Thai (th)" -msgstr "Thai (th)" +#: ../src/ui/dialog/icon-preview.cpp:245 +msgctxt "Icon preview window" +msgid "Sele_ction" +msgstr "Auswahl" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Turkish (tr)" -msgstr "TĂĽrkisch (tr)" +#: ../src/ui/dialog/icon-preview.cpp:247 +msgid "Selection only or whole document" +msgstr "Nur Auswahl oder ganzes Dokument" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Ukrainian (uk)" -msgstr "Ukrainisch (uk)" +#: ../src/ui/dialog/inkscape-preferences.cpp:181 +msgid "Show selection cue" +msgstr "Auswahlmarkierung anzeigen" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Vietnamese (vi)" -msgstr "Vietnamesisch (vi)" +# !!! Frage? Passiv formulieren? +#: ../src/ui/dialog/inkscape-preferences.cpp:182 +msgid "" +"Whether selected objects display a selection cue (the same as in selector)" +msgstr "" +"Sind die ausgewählten Objekte visuell hervorgehoben (wie beim " +"Auswahlwerkzeug) " -#: ../src/ui/dialog/inkscape-preferences.cpp:559 -msgid "Language (requires restart):" -msgstr "Sprache (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:188 +msgid "Enable gradient editing" +msgstr "Farbverlaufs-Editor aktiviert" -#: ../src/ui/dialog/inkscape-preferences.cpp:560 -msgid "Set the language for menus and number formats" -msgstr "Sprache fĂĽr MenĂĽs und Zahlenformate setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:189 +msgid "Whether selected objects display gradient editing controls" +msgstr "Ausgewählten Objekte zeigen Farbverlaufs-Anfasser an" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Large" -msgstr "GroĂź" +#: ../src/ui/dialog/inkscape-preferences.cpp:194 +msgid "Conversion to guides uses edges instead of bounding box" +msgstr "Umwandlung zu FĂĽhrungslinien nutzt Ecken anstelle von Umrandungsboxen" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Small" -msgstr "Klein" +#: ../src/ui/dialog/inkscape-preferences.cpp:195 +msgid "" +"Converting an object to guides places these along the object's true edges " +"(imitating the object's shape), not along the bounding box" +msgstr "" +"Wird ein Objekt zu FĂĽhrungslinien umgewandelt, so gelten die tatsächlichen " +"Umrisse des Objekts, nicht die rechteckige Umrandung." -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -msgid "Smaller" -msgstr "Kleiner" +#: ../src/ui/dialog/inkscape-preferences.cpp:202 +msgid "Ctrl+click _dot size:" +msgstr "Strg+Klick Punktgröße:" -# !!! called "Commands Bar" in other places -#: ../src/ui/dialog/inkscape-preferences.cpp:567 -msgid "Toolbox icon size:" -msgstr "Symbolgröße in der Werkzeugleiste" +#: ../src/ui/dialog/inkscape-preferences.cpp:202 +msgid "times current stroke width" +msgstr "(Faktor zur Kontur)" -#: ../src/ui/dialog/inkscape-preferences.cpp:568 -msgid "Set the size for the tool icons (requires restart)" -msgstr "Größe der Werkzeugsymbole verändern (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +msgid "Size of dots created with Ctrl+click (relative to current stroke width)" +msgstr "" +"Größe der Punkte, die durch Strg+Klick erzeugt werden (Relativ zur aktuellen " +"Strichdicke)" -#: ../src/ui/dialog/inkscape-preferences.cpp:571 -msgid "Control bar icon size:" -msgstr "Symbolgröße in Einstellungsleiste" +#: ../src/ui/dialog/inkscape-preferences.cpp:218 +msgid "No objects selected to take the style from." +msgstr "Objekte auswählen, um Stil zu ĂĽbernehmen." -#: ../src/ui/dialog/inkscape-preferences.cpp:572 +#: ../src/ui/dialog/inkscape-preferences.cpp:227 msgid "" -"Set the size for the icons in tools' control bars to use (requires restart)" +"More than one object selected. Cannot take style from multiple " +"objects." msgstr "" -"Bestimmt die Größe der Piktogramme auf der Werkzeugleiste (erfordert " -"Neustart)" +"Mehr als ein Objekt ausgewählt. Ein Stil kann nicht von mehreren " +"Objekten ĂĽbernommen werden." -# !!! called "Commands Bar" in other places -#: ../src/ui/dialog/inkscape-preferences.cpp:575 -msgid "Secondary toolbar icon size:" -msgstr "Symbolgröße in zweiter Werkzeugleiste" +#: ../src/ui/dialog/inkscape-preferences.cpp:260 +msgid "Style of new objects" +msgstr "Stil von neuen Objekten" + +#: ../src/ui/dialog/inkscape-preferences.cpp:262 +msgid "Last used style" +msgstr "Zuletzt benutzter Stil" + +#: ../src/ui/dialog/inkscape-preferences.cpp:264 +msgid "Apply the style you last set on an object" +msgstr "Stil anwenden, der zuletzt fĂĽr ein Objekt gesetzt wurde" + +#: ../src/ui/dialog/inkscape-preferences.cpp:269 +msgid "This tool's own style:" +msgstr "Stilvorgaben fĂĽr dieses Werkzeug:" -#: ../src/ui/dialog/inkscape-preferences.cpp:576 +#: ../src/ui/dialog/inkscape-preferences.cpp:273 msgid "" -"Set the size for the icons in secondary toolbars to use (requires restart)" +"Each tool may store its own style to apply to the newly created objects. Use " +"the button below to set it." msgstr "" -"Bestimmt die Größe der Piktogramme in untergeordneten Werkzeugleisten " -"(erfordert Neustart)" +"Werkzeuge können eigene Stilvorgaben behalten, die auf neu erzeugte Objekte " +"angewendet werden. Stilvorgabe mit dem unteren Knopf festlegen." -#: ../src/ui/dialog/inkscape-preferences.cpp:579 -msgid "Work-around color sliders not drawing" -msgstr "Abhilfe fĂĽr nicht gezeichnete Farb-Schieberegler" +#. style swatch +#: ../src/ui/dialog/inkscape-preferences.cpp:277 +msgid "Take from selection" +msgstr "Aus Auswahl ĂĽbernehmen" -#: ../src/ui/dialog/inkscape-preferences.cpp:581 -msgid "" -"When on, will attempt to work around bugs in certain GTK themes drawing " -"color sliders" +#: ../src/ui/dialog/inkscape-preferences.cpp:282 +msgid "This tool's style of new objects" +msgstr "Stilvorgaben fĂĽr dieses Werkzeug fĂĽr neue Objekte:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:289 +msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" -"Wenn gewählt, wird versucht, den Fehler bzgl. nicht gezeichneter Farb-" -"Schieberegler in manchen GTK-Themen zu umgehen." +"Stil des (ersten) ausgewählten Objektes zur Vorgabe fĂĽr dieses Werkzeug " +"machen" -#: ../src/ui/dialog/inkscape-preferences.cpp:586 -msgid "Clear list" -msgstr "Liste löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:294 +msgid "Tools" +msgstr "Werkzeuge" -#: ../src/ui/dialog/inkscape-preferences.cpp:589 -msgid "Maximum documents in Open _Recent:" -msgstr "Länge der \"letzte Dokumente\"-Liste:" +#: ../src/ui/dialog/inkscape-preferences.cpp:297 +msgid "Bounding box to use" +msgstr "Zu verwendende Umrandungsbox:" -#: ../src/ui/dialog/inkscape-preferences.cpp:590 -msgid "" -"Set the maximum length of the Open Recent list in the File menu, or clear " -"the list" +#: ../src/ui/dialog/inkscape-preferences.cpp:298 +msgid "Visual bounding box" +msgstr "Visuelle Umrandungsbox" + +#: ../src/ui/dialog/inkscape-preferences.cpp:300 +msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" -"Die maximale Länge der Liste zuletzt geöffneter Dokumente im MenĂĽ »Datei«" +"Diese Umrandungsbox berĂĽcksichtigt Strichbreiten, Markierungen, Filterränder " +"usw." -#: ../src/ui/dialog/inkscape-preferences.cpp:593 -msgid "_Zoom correction factor (in %):" -msgstr "_Zoom Korrektur (in %)" +#: ../src/ui/dialog/inkscape-preferences.cpp:301 +msgid "Geometric bounding box" +msgstr "Geometrische Umrandungsbox" -#: ../src/ui/dialog/inkscape-preferences.cpp:594 -msgid "" -"Adjust the slider until the length of the ruler on your screen matches its " -"real length. This information is used when zooming to 1:1, 1:2, etc., to " -"display objects in their true sizes" -msgstr "" -"Verschieben Sie den Schieberegler, bis die Länge der MaĂźbandes auf ihrem " -"Bildschirm der echten Größe entspricht. Diese Information wird genutzt, um " -"beim Zoom auf 1:1, 1:2, usw. das Objekt in realistischen Größen darzustellen." +#: ../src/ui/dialog/inkscape-preferences.cpp:303 +msgid "This bounding box includes only the bare path" +msgstr "Diese Umrandungsbox berĂĽcksichtigt nur den reinen Pfad" -#: ../src/ui/dialog/inkscape-preferences.cpp:597 -msgid "Enable dynamic relayout for incomplete sections" -msgstr "Dynamischer Neu-Entwurf fĂĽr unvollständige Abschnitte" +#: ../src/ui/dialog/inkscape-preferences.cpp:305 +msgid "Conversion to guides" +msgstr "Umwandlung in FĂĽhrungslinien" + +#: ../src/ui/dialog/inkscape-preferences.cpp:306 +msgid "Keep objects after conversion to guides" +msgstr "Behalte Objekte nach Umwandlung in FĂĽhrungslinien" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:308 msgid "" -"When on, will allow dynamic layout of components that are not completely " -"finished being refactored" -msgstr "" -"Wenn aktiviert, erlaubt es einen dynamischen Entwurf von veränderten " -"Komponenten, die noch nicht komplett beendet sind." +"When converting an object to guides, don't delete the object after the " +"conversion" +msgstr "Objekt bleibt erhalten, wenn es in FĂĽhrungslinien umgewandelt wird." -#. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:602 -msgid "Show filter primitives infobox (requires restart)" -msgstr "Zeigt Informationen zu den Filterbausteinen (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:309 +msgid "Treat groups as a single object" +msgstr "Behandle Gruppen als Einzelobjekte" -#: ../src/ui/dialog/inkscape-preferences.cpp:604 +#: ../src/ui/dialog/inkscape-preferences.cpp:311 msgid "" -"Show icons and descriptions for the filter primitives available at the " -"filter effects dialog" +"Treat groups as a single object during conversion to guides rather than " +"converting each child separately" msgstr "" -"Zeigt Symbole und Beschreibungen fĂĽr die verfĂĽgbaren Filterbausteine im " -"Filtereffektdialog." +"Gruppen werden als Ganzes (statt der Einzelteile) zu FĂĽhrungslinien " +"umgewandelt." -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 -msgid "Icons only" -msgstr "nur Symbole" +#: ../src/ui/dialog/inkscape-preferences.cpp:313 +msgid "Average all sketches" +msgstr "Durchschnittliche Qualität der Sketche" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 -msgid "Text only" -msgstr "nur Text" +#: ../src/ui/dialog/inkscape-preferences.cpp:314 +msgid "Width is in absolute units" +msgstr "Breitenangabe in absoluten Einheiten" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 -msgid "Icons and text" -msgstr "Symbole und Text" +#: ../src/ui/dialog/inkscape-preferences.cpp:315 +msgid "Select new path" +msgstr "Neuen Pfad auswählen" -#: ../src/ui/dialog/inkscape-preferences.cpp:612 -msgid "Dockbar style (requires restart):" -msgstr "Dockleistenstil (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:316 +msgid "Don't attach connectors to text objects" +msgstr "Objektverbinder nicht mit Textobjekten verbinden" -#: ../src/ui/dialog/inkscape-preferences.cpp:613 -msgid "" -"Selects whether the vertical bars on the dockbar will show text labels, " -"icons, or both" -msgstr "" -"Wählt, ob vertikale Leisten auf der Dockleiste Beschriftungen, Symbole oder " -"beides angezeigen" +#. Selector +#: ../src/ui/dialog/inkscape-preferences.cpp:319 +msgid "Selector" +msgstr "Auswahlwerkzeug" -#: ../src/ui/dialog/inkscape-preferences.cpp:620 -msgid "Switcher style (requires restart):" -msgstr "Stil des Umschalters (erfordert Neustart):" +#: ../src/ui/dialog/inkscape-preferences.cpp:324 +msgid "When transforming, show" +msgstr "Zeige beim Transformieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 -msgid "" -"Selects whether the dockbar switcher will show text labels, icons, or both" -msgstr "" -"Wählt aus, ob der Dockleisten-Umschalter Beschriftungen, Symbole oder beides " -"zeigt" +#: ../src/ui/dialog/inkscape-preferences.cpp:325 +msgid "Objects" +msgstr "Objekte" -#. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:625 -msgid "Save and restore window geometry for each document" -msgstr "Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen" +#: ../src/ui/dialog/inkscape-preferences.cpp:327 +msgid "Show the actual objects when moving or transforming" +msgstr "Zeige Objekte mit Inhalt beim Verschieben oder Verändern" -#: ../src/ui/dialog/inkscape-preferences.cpp:626 -msgid "Remember and use last window's geometry" -msgstr "Geometrie des letzten Fensters merken und verwenden" +#: ../src/ui/dialog/inkscape-preferences.cpp:328 +msgid "Box outline" +msgstr "Objektumriss" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 -msgid "Don't save window geometry" -msgstr "Fenstergeometrie nicht speichern" +#: ../src/ui/dialog/inkscape-preferences.cpp:330 +msgid "Show only a box outline of the objects when moving or transforming" +msgstr "Zeige rechteckige Objektumrisse beim Verschieben oder Verändern" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 -msgid "Save and restore dialogs status" -msgstr "Speichern und Wiederherstellen von Dialog-Status" +#: ../src/ui/dialog/inkscape-preferences.cpp:331 +msgid "Per-object selection cue" +msgstr "Pro Objekt-Auswahl" -#: ../src/ui/dialog/inkscape-preferences.cpp:630 -#: ../src/ui/dialog/inkscape-preferences.cpp:666 -msgid "Don't save dialogs status" -msgstr "Dialogstatus nicht speichern" +#: ../src/ui/dialog/inkscape-preferences.cpp:334 +msgid "No per-object selection indication" +msgstr "Keine Auswahlmarkierung fĂĽr Objekte" -#: ../src/ui/dialog/inkscape-preferences.cpp:632 -#: ../src/ui/dialog/inkscape-preferences.cpp:674 -msgid "Dockable" -msgstr "Andockbar" +#: ../src/ui/dialog/inkscape-preferences.cpp:335 +msgid "Mark" +msgstr "Markierung" -#: ../src/ui/dialog/inkscape-preferences.cpp:636 -msgid "Native open/save dialogs" -msgstr "UrsprĂĽngliche Ă–ffnen/Speichern-Dialoge" +#: ../src/ui/dialog/inkscape-preferences.cpp:337 +msgid "Each selected object has a diamond mark in the top left corner" +msgstr "" +"Jedes ausgewählte Objekt hat eine diamantförmige Markierung in der linken " +"oberen Ecke" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 -msgid "GTK open/save dialogs" -msgstr "GTk Ă–ffnen/Speichern-Dialog" +#: ../src/ui/dialog/inkscape-preferences.cpp:338 +msgid "Box" +msgstr "UmschlieĂźendes Rechteck" -#: ../src/ui/dialog/inkscape-preferences.cpp:639 -msgid "Dialogs are hidden in taskbar" -msgstr "Dialoge werden in der Fensterliste nicht angezeigt" +#: ../src/ui/dialog/inkscape-preferences.cpp:340 +msgid "Each selected object displays its bounding box" +msgstr "" +"Jedes gewählte Objekt zeigt sein umschlieĂźendes Rechteck (Umrandungsbox)" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 -msgid "Save and restore documents viewport" -msgstr "Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen" +#. Node +#: ../src/ui/dialog/inkscape-preferences.cpp:343 +msgid "Node" +msgstr "Knoten" -#: ../src/ui/dialog/inkscape-preferences.cpp:641 -msgid "Zoom when window is resized" -msgstr "Zeichnungsgröße ändern, wenn die Fenstergröße verändert wird" +#: ../src/ui/dialog/inkscape-preferences.cpp:346 +msgid "Path outline" +msgstr "Pfadumriss" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 -msgid "Show close button on dialogs" -msgstr "SchlieĂźknöpfe in Dialogen zeigen" +#: ../src/ui/dialog/inkscape-preferences.cpp:347 +msgid "Path outline color" +msgstr "Entwurfspfad Farbe" -#: ../src/ui/dialog/inkscape-preferences.cpp:645 -msgid "Aggressive" -msgstr "Aggressiv" +#: ../src/ui/dialog/inkscape-preferences.cpp:348 +msgid "Selects the color used for showing the path outline" +msgstr "Die Farbe in der der Entwurfspfad angezeigt wird." -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Maximized" -msgstr "Maximiert" +#: ../src/ui/dialog/inkscape-preferences.cpp:349 +msgid "Always show outline" +msgstr "Umriss zeigen" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 -msgid "Default window size:" -msgstr "Standard Fenstergröße:" +#: ../src/ui/dialog/inkscape-preferences.cpp:350 +msgid "Show outlines for all paths, not only invisible paths" +msgstr "Zeigt Umrandung aller Pfade an, nicht nur von unsichtbaren Pfaden" -#: ../src/ui/dialog/inkscape-preferences.cpp:653 -msgid "Set the default window size" -msgstr "Standard Fenstergröße setzen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:351 +msgid "Update outline when dragging nodes" +msgstr "Umriss beim Ziehen von Knoten aktualisieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 -msgid "Saving window geometry (size and position)" -msgstr "Fenstergeometrie speichern (Größe und Position):" +#: ../src/ui/dialog/inkscape-preferences.cpp:352 +msgid "" +"Update the outline when dragging or transforming nodes; if this is off, the " +"outline will only update when completing a drag" +msgstr "" +"Aktualisiert die Umrandung beim Ziehen oder transformieren der Knoten. Wenn " +"es deaktiviert ist, wird die Umrandung erst wieder aktualisiert, wenn die " +"Aktion abgeschlossen ist." -#: ../src/ui/dialog/inkscape-preferences.cpp:658 -msgid "Let the window manager determine placement of all windows" -msgstr "Dem Fenstermanager die Platzierung aller Fenster entscheiden lassen" +#: ../src/ui/dialog/inkscape-preferences.cpp:353 +msgid "Update paths when dragging nodes" +msgstr "Pfad beim Ziehen von Knoten aktualisieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 +#: ../src/ui/dialog/inkscape-preferences.cpp:354 msgid "" -"Remember and use the last window's geometry (saves geometry to user " -"preferences)" +"Update paths when dragging or transforming nodes; if this is off, paths will " +"only be updated when completing a drag" msgstr "" -"Geometrie des letzten Fensters merken und verwenden (speichert Geometrie in " -"Benutzereinstellungen)" +"Aktualisiert Pfade beim Ziehen oder Transformieren der Knoten. Wenn es " +"deaktiviert ist, wird der Pfad erst aktualisiert, wenn die Aktion " +"abgeschlossen ist." -#: ../src/ui/dialog/inkscape-preferences.cpp:662 +#: ../src/ui/dialog/inkscape-preferences.cpp:355 +msgid "Show path direction on outlines" +msgstr "Zeige die Pfadrichtung an AuĂźenlinine" + +#: ../src/ui/dialog/inkscape-preferences.cpp:356 msgid "" -"Save and restore window geometry for each document (saves geometry in the " -"document)" +"Visualize the direction of selected paths by drawing small arrows in the " +"middle of each outline segment" msgstr "" -"Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen " -"(speichert Geometrie im Dokument)" +"Veranschaulichen Sie die Richtung der ausgewählten Pfade, in dem Sie kleine " +"Pfeile in die Mitte jedes Rand-Segments zeichnen." -#: ../src/ui/dialog/inkscape-preferences.cpp:664 -msgid "Saving dialogs status" -msgstr "Speichere Dialogstatud" +#: ../src/ui/dialog/inkscape-preferences.cpp:357 +msgid "Show temporary path outline" +msgstr "Zeige temporär Pfadumrandung" -#: ../src/ui/dialog/inkscape-preferences.cpp:668 -msgid "" -"Save and restore dialogs status (the last open windows dialogs are saved " -"when it closes)" +#: ../src/ui/dialog/inkscape-preferences.cpp:358 +msgid "When hovering over a path, briefly flash its outline" msgstr "" -"Speichern und Wiederherstellen von Dialog-Status (die letzten offenen " -"Fenster Dialoge werden gespeichert, wenn sie geschlossen werden)" +"Wenn die Maus ĂĽber den Pfad bewegt wird, wird dessen Entwurfspfad kurz " +"angezeigt." -#: ../src/ui/dialog/inkscape-preferences.cpp:672 -msgid "Dialog behavior (requires restart)" -msgstr "Dialogfensterverhalten (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:359 +msgid "Show temporary outline for selected paths" +msgstr "Zeige temporär Umrandung fĂĽr ausgewählte Pfade" -#: ../src/ui/dialog/inkscape-preferences.cpp:678 -msgid "Desktop integration" -msgstr "Desktopintegration" +#: ../src/ui/dialog/inkscape-preferences.cpp:360 +msgid "Show temporary outline even when a path is selected for editing" +msgstr "" +"Zeigt temporäre Umrandung an, wenn der Pfad zum Bearbeiten ausgewählt wurde." -#: ../src/ui/dialog/inkscape-preferences.cpp:680 -msgid "Use Windows like open and save dialogs" -msgstr "Nutze Windows-artige Ă–ffnen- und Speichern-Dialoge" +#: ../src/ui/dialog/inkscape-preferences.cpp:362 +msgid "_Flash time:" +msgstr "Anzeigedauer" -#: ../src/ui/dialog/inkscape-preferences.cpp:682 -msgid "Use GTK open and save dialogs " -msgstr "Nutze GTK-Ă–ffnen- und Speichern-Dialoge" +#: ../src/ui/dialog/inkscape-preferences.cpp:362 +msgid "" +"Specifies how long the path outline will be visible after a mouse-over (in " +"milliseconds); specify 0 to have the outline shown until mouse leaves the " +"path" +msgstr "" +"Bestimmt die Dauer der Pfad anzeige (in Millisekunden). Bei 0 wird der " +"Entwurfspfad angezeigt bis die Maus den Bereich verlassen hat." -#: ../src/ui/dialog/inkscape-preferences.cpp:686 -msgid "Dialogs on top:" -msgstr "Dialoge im Vordergrund:" +#: ../src/ui/dialog/inkscape-preferences.cpp:363 +msgid "Editing preferences" +msgstr "Einstellungen bearbeiten" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 -msgid "Dialogs are treated as regular windows" -msgstr "Dialoge werden wie normale Fenster behandelt" +#: ../src/ui/dialog/inkscape-preferences.cpp:364 +msgid "Show transform handles for single nodes" +msgstr "Zeige Anfasser fĂĽr einzelne Knoten" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 -msgid "Dialogs stay on top of document windows" -msgstr "Dialoge bleiben vor Dokumentenfenstern" +#: ../src/ui/dialog/inkscape-preferences.cpp:365 +msgid "Show transform handles even when only a single node is selected" +msgstr "Anfasser anzeigen, wenn nur ein einzelner Knoten ausgewählt ist." -#: ../src/ui/dialog/inkscape-preferences.cpp:693 -msgid "Same as Normal but may work better with some window managers" +#: ../src/ui/dialog/inkscape-preferences.cpp:366 +msgid "Deleting nodes preserves shape" +msgstr "Knoten löschen, Form beibehalten" + +#: ../src/ui/dialog/inkscape-preferences.cpp:367 +msgid "" +"Move handles next to deleted nodes to resemble original shape; hold Ctrl to " +"get the other behavior" msgstr "" -"Wie »Normal«, aber funktioniert evtl. besser mit manchen Fenstermanagern" +"Verschieben des Anfassers zum nächsten gelöschten Knoten, damit es der " +"Origianlform ähnelt; drĂĽcken Sie STRG fĂĽr das andere Verhalten" -#: ../src/ui/dialog/inkscape-preferences.cpp:696 -msgid "Dialog Transparency" -msgstr "Dialog Transparenz:" +#. Tweak +#: ../src/ui/dialog/inkscape-preferences.cpp:370 +msgid "Tweak" +msgstr "Modellieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 -msgid "_Opacity when focused:" -msgstr "Deckkraft bei Focus:" +#: ../src/ui/dialog/inkscape-preferences.cpp:371 +msgid "Object paint style" +msgstr "Objekt-Farbstil" -#: ../src/ui/dialog/inkscape-preferences.cpp:700 -msgid "Opacity when _unfocused:" -msgstr "TrĂĽbung wenn nicht fokussiert:" +#. Zoom +#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/widgets/desktop-widget.cpp:635 +msgid "Zoom" +msgstr "Zoomfaktor" -#: ../src/ui/dialog/inkscape-preferences.cpp:702 -msgid "_Time of opacity change animation:" -msgstr "Zeit fĂĽr Deckkraft-Ă„nderungsanimation" +#. Measure +#: ../src/ui/dialog/inkscape-preferences.cpp:381 ../src/verbs.cpp:2682 +msgctxt "ContextVerb" +msgid "Measure" +msgstr "Ausmessen" -#: ../src/ui/dialog/inkscape-preferences.cpp:705 -msgid "Miscellaneous" -msgstr "Verschiedenes:" +#: ../src/ui/dialog/inkscape-preferences.cpp:383 +msgid "Ignore first and last points" +msgstr "Ersten und letzen Punkt ignorieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 -msgid "Whether dialog windows are to be hidden in the window manager taskbar" -msgstr "Sollen Dialogfenster in der Fensterliste nicht angezeigt werden?" +#: ../src/ui/dialog/inkscape-preferences.cpp:384 +msgid "" +"The start and end of the measurement tool's control line will not be " +"considered for calculating lengths. Only lengths between actual curve " +"intersections will be displayed." +msgstr "" +"Der Beginn und das Ende des Mess-Werkzeugs-Steuerungszeile wird nicht zum " +"Berechnen Längen betrachtet. Nur Längen zwischen aktuellen Kurven-Kreuzungen " +"werden angezeigt." -#: ../src/ui/dialog/inkscape-preferences.cpp:711 +#. Shapes +#: ../src/ui/dialog/inkscape-preferences.cpp:387 +msgid "Shapes" +msgstr "Formen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:419 +msgid "Sketch mode" +msgstr "Freihandmodus" + +#: ../src/ui/dialog/inkscape-preferences.cpp:421 msgid "" -"Zoom drawing when document window is resized, to keep the same area visible " -"(this is the default which can be changed in any window using the button " -"above the right scrollbar)" +"If on, the sketch result will be the normal average of all sketches made, " +"instead of averaging the old result with the new sketch" msgstr "" -"Darstellungsgröße des Dokuments anpassen, wenn sich die Fenstergröße ändert " -"- der selbe Bereich bleibt sichtbar (Vorgabe, die in jedem Fenster mit dem " -"Knopf ĂĽber dem rechten Rollbalken geändert wird)" +"Wenn gewählt, dann ist das Resultat das Mittel aus allen Skizzen, statt das " +"alte Ergebnis mit der neuen Skizze zu mitteln." -#: ../src/ui/dialog/inkscape-preferences.cpp:713 +#. Pen +#: ../src/ui/dialog/inkscape-preferences.cpp:424 +#: ../src/ui/dialog/input.cpp:1485 +msgid "Pen" +msgstr "FĂĽller (Linien & BĂ©zierkurven)" + +#. Calligraphy +#: ../src/ui/dialog/inkscape-preferences.cpp:430 +msgid "Calligraphy" +msgstr "Kalligrafie" + +#: ../src/ui/dialog/inkscape-preferences.cpp:434 msgid "" -"Save documents viewport (zoom and panning position). Useful to turn off when " -"sharing version controlled files." +"If on, pen width is in absolute units (px) independent of zoom; otherwise " +"pen width depends on zoom so that it looks the same at any zoom" msgstr "" -"Speichern von Dokumenten Ansichtsfenstern (Zoom-und Verschiebungs-Position). " -"NĂĽtzlich abzuschalten, wenn gemeinsame Versionskontrolle von Dateien " -"verwendet wird." +"Wenn eingeschaltet, dann ist die Stiftbreite in absoluten Einheiten (px) " +"unabhängig vom Zoom; ansonsten hängt die Stiftbreite vom Zoom ab, so dass " +"sie bei jeder Zoomeinstellung gleich aussieht" -#: ../src/ui/dialog/inkscape-preferences.cpp:715 -msgid "Whether dialog windows have a close button (requires restart)" -msgstr "Dialogfenster haben Knöpfe zum SchlieĂźen (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:436 +msgid "" +"If on, each newly created object will be selected (deselecting previous " +"selection)" +msgstr "" +"Wenn eingeschaltet, dann wird jedes neu erzeugte Objekt ausgewählt " +"(vorherige Auswahl ist nicht mehr aktiv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:716 -msgid "Windows" -msgstr "Fenster" +#. Text +#: ../src/ui/dialog/inkscape-preferences.cpp:439 ../src/verbs.cpp:2674 +msgctxt "ContextVerb" +msgid "Text" +msgstr "Text" -#. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:719 -msgid "Line color when zooming out" -msgstr "Linienfarbe beim Herauszoomen" +#: ../src/ui/dialog/inkscape-preferences.cpp:444 +msgid "Show font samples in the drop-down list" +msgstr "Zeigt Schriftart-Beispiele in der Auswahl-Liste" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 -msgid "The gridlines will be shown in minor grid line color" -msgstr "Die Gitterlinien werden in der Nebengitterlinienfarbe angezeigt" +#: ../src/ui/dialog/inkscape-preferences.cpp:445 +msgid "" +"Show font samples alongside font names in the drop-down list in Text bar" +msgstr "" +"Zeigt Schriftart-Beispiele neben den Schriftartnamen in der Auswahl-Liste " +"in der Textleiste" -#: ../src/ui/dialog/inkscape-preferences.cpp:724 -msgid "The gridlines will be shown in major grid line color" -msgstr "Die Gitterlinien werden in der Hauptgitterlinienfarbe angezeigt" +#: ../src/ui/dialog/inkscape-preferences.cpp:447 +msgid "Show font substitution warning dialog" +msgstr "Zeige Warnungsdialog fĂĽr Schriftersetzung" -#: ../src/ui/dialog/inkscape-preferences.cpp:726 -msgid "Default grid settings" -msgstr "Vorgabe Gittereinstellungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:448 +msgid "" +"Show font substitution warning dialog when requested fonts are not available " +"on the system" +msgstr "" +"Zeigt Schriftartenersetzungs-Warnmeldung, wenn angeforderte Schriftartenauf " +"dem System nicht verfĂĽgbar sind" -#: ../src/ui/dialog/inkscape-preferences.cpp:732 -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -msgid "Grid units:" -msgstr "Gitter Einheiten:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Pixel" +msgstr "Pixel" -#: ../src/ui/dialog/inkscape-preferences.cpp:737 -#: ../src/ui/dialog/inkscape-preferences.cpp:762 -msgid "Origin X:" -msgstr "Ursprung X:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Pica" +msgstr "Pica" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -msgid "Origin Y:" -msgstr "Ursprung Y:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Millimeter" +msgstr "Millimeter" -#: ../src/ui/dialog/inkscape-preferences.cpp:743 -msgid "Spacing X:" -msgstr "Abstand X:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Centimeter" +msgstr "Zentimeter" -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 -msgid "Spacing Y:" -msgstr "Abstand Y:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Inch" +msgstr "Zoll" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -msgid "Minor grid line color:" -msgstr "Farbe der Nebengitterlinien:" +#: ../src/ui/dialog/inkscape-preferences.cpp:451 +msgid "Em square" +msgstr "Em-Quadrat" -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -msgid "Color used for normal grid lines" -msgstr "Farbe der normalen Gitterlinien" +#. , _("Ex square"), _("Percent") +#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT +#: ../src/ui/dialog/inkscape-preferences.cpp:454 +msgid "Text units" +msgstr "Texteinheiten" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:749 -#: ../src/ui/dialog/inkscape-preferences.cpp:773 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 -msgid "Major grid line color:" -msgstr "Farbe der Hauptgitterlinien:" +#: ../src/ui/dialog/inkscape-preferences.cpp:456 +msgid "Text size unit type:" +msgstr "Textgrößen-Einheitstyp:" -#: ../src/ui/dialog/inkscape-preferences.cpp:749 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 -msgid "Color used for major (highlighted) grid lines" -msgstr "Farbe der dicken (hervorgehobenen) Gitterlinien" +#: ../src/ui/dialog/inkscape-preferences.cpp:457 +msgid "Set the type of unit used in the text toolbar and text dialogs" +msgstr "" +"Setzt den Typ der Einheit, die in der Text-Werkzeugleiste und in " +"Textdialogen verwendet werden" -#: ../src/ui/dialog/inkscape-preferences.cpp:751 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 -msgid "Major grid line every:" -msgstr "Hauptgitterlinien alle:" +#: ../src/ui/dialog/inkscape-preferences.cpp:458 +msgid "Always output text size in pixels (px)" +msgstr "Ausgabe-Textgröße immer in Pixeln (px)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:459 +msgid "" +"Always convert the text size units above into pixels (px) before saving to " +"file" +msgstr "" +"Die Textgrößen-Einheiten oben in Pixel (px) vor dem Speichern einer Datei " +"immer umwandeln" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -msgid "Show dots instead of lines" -msgstr "Zeige Punkte anstelle von Linien" +#. Spray +#: ../src/ui/dialog/inkscape-preferences.cpp:464 +msgid "Spray" +msgstr "Spray" -#: ../src/ui/dialog/inkscape-preferences.cpp:753 -msgid "If set, display dots at gridpoints instead of gridlines" -msgstr "Punkte anstelle von Gitterlinien verwenden" +# Name des Effekte-submenĂĽ, das alle Bitmap-Effekte beinhaltet. +#. Eraser +#: ../src/ui/dialog/inkscape-preferences.cpp:469 +msgid "Eraser" +msgstr "Radierer" -#: ../src/ui/dialog/inkscape-preferences.cpp:834 -msgid "Input/Output" -msgstr "Eingabe/Ausgabe" +#. Paint Bucket +#: ../src/ui/dialog/inkscape-preferences.cpp:473 +msgid "Paint Bucket" +msgstr "Farbeimer" -#: ../src/ui/dialog/inkscape-preferences.cpp:837 -msgid "Use current directory for \"Save As ...\"" -msgstr "Verwende aktuelles Verzeichnis fĂĽr \"Speichern unter...\"" +#. Gradient +#: ../src/ui/dialog/inkscape-preferences.cpp:478 +#: ../src/widgets/gradient-selector.cpp:151 +#: ../src/widgets/gradient-selector.cpp:303 +msgid "Gradient" +msgstr "Farbverlauf" -#: ../src/ui/dialog/inkscape-preferences.cpp:839 +#: ../src/ui/dialog/inkscape-preferences.cpp:480 +msgid "Prevent sharing of gradient definitions" +msgstr "Keine gemeinsamen Verlaufdefinitionen " + +#: ../src/ui/dialog/inkscape-preferences.cpp:482 msgid "" -"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " -"always open in the directory where the currently open document is; when it's " -"off, each will open in the directory where you last saved a file using it" +"When on, shared gradient definitions are automatically forked on change; " +"uncheck to allow sharing of gradient definitions so that editing one object " +"may affect other objects using the same gradient" msgstr "" -"Wenn diese Option aktiviert ist, wird der \"Speichern unter\"- und \"Kopie " -"speichern unter\"-Dialog immer das Verzeichnis öffnen, in dem das aktuell " -"offene Dokument liegt. Ist sie deaktiviert, wird das Verzeichnis der letzten " -"Speicherung ĂĽber diesen Dialog geöffnet." +"Wenn aktiviert werden gemeinsam genutzte Verläufe automatisch aufgeteilt, " +"sobald einer geändert wird. Andernfalls werden bei der Ă„nderung eines " +"Verlaufes sämtliche Objekte mit dem gleichen Verlauf ebenfalls geändert." -#: ../src/ui/dialog/inkscape-preferences.cpp:841 -msgid "Add label comments to printing output" -msgstr "Beim Ausdruck Bezeichnerkommentare mitdrucken" +#: ../src/ui/dialog/inkscape-preferences.cpp:483 +msgid "Use legacy Gradient Editor" +msgstr "Nutze den alten Farbverlaufs-Editor" -#: ../src/ui/dialog/inkscape-preferences.cpp:843 +#: ../src/ui/dialog/inkscape-preferences.cpp:485 msgid "" -"When on, a comment will be added to the raw print output, marking the " -"rendered output for an object with its label" +"When on, the Gradient Edit button in the Fill & Stroke dialog will show the " +"legacy Gradient Editor dialog, when off the Gradient Tool will be used" msgstr "" -"Diese Option fĂĽgt der unbehandelten Druckausgabe einen Kommentar hinzu.\n" -"Das zu druckende Objekt wird mit einem Bezeichner markiert." +"Wenn eingeschaltet, zeigt die Schaltfläche Verlaufsbearbeitung im FĂĽllung & " +"Kontur Dialog den alten Verlaufs-Editor Dialog, wenn ausgeschaltet, wird das " +"Verlaufswerkzeug verwendet." -#: ../src/ui/dialog/inkscape-preferences.cpp:845 -msgid "Add default metadata to new documents" -msgstr "FĂĽgt Standard Metadaten neuen Dokumenten hinzu" +#: ../src/ui/dialog/inkscape-preferences.cpp:488 +msgid "Linear gradient _angle:" +msgstr "Winkel des linearen Farbverlaufs" -#: ../src/ui/dialog/inkscape-preferences.cpp:847 +#: ../src/ui/dialog/inkscape-preferences.cpp:489 msgid "" -"Add default metadata to new documents. Default metadata can be set from " -"Document Properties->Metadata." +"Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" -"FĂĽgt Standardmetadaten in neue Dokumente ein. Standard-Metadaten können ĂĽber " -"Dokument-Eigenschaften-> Metadaten gesetzt werden." +"Standard-Winkel von neuen linearen Verläufen in Grad (von der Horizontalen " +"im Uhrzeigersinn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:851 -msgid "_Grab sensitivity:" -msgstr "Anfass-Empfindlichkeit:" +#. Dropper +#: ../src/ui/dialog/inkscape-preferences.cpp:493 +msgid "Dropper" +msgstr "Farbpipette" -#: ../src/ui/dialog/inkscape-preferences.cpp:851 -msgid "pixels (requires restart)" -msgstr "Pixel (erfordert Neustart)" +#. Connector +#: ../src/ui/dialog/inkscape-preferences.cpp:498 +msgid "Connector" +msgstr "Objektverbinder" -#: ../src/ui/dialog/inkscape-preferences.cpp:852 -msgid "" -"How close on the screen you need to be to an object to be able to grab it " -"with mouse (in screen pixels)" +#: ../src/ui/dialog/inkscape-preferences.cpp:501 +msgid "If on, connector attachment points will not be shown for text objects" msgstr "" -"Mindestentfernung des Mauszeigers zu einem Objekt, um es zu erfassen (in " -"Pixeln)" +"Wenn eingeschaltet, dann werden die Einrastpunkte nicht fĂĽr Textobjekte " +"angezeigt" -#: ../src/ui/dialog/inkscape-preferences.cpp:854 -msgid "_Click/drag threshold:" -msgstr "Schwellwert fĂĽr Klicken/Ziehen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:511 +msgid "Interface" +msgstr "Benutzeroberfläche" -#: ../src/ui/dialog/inkscape-preferences.cpp:854 -#: ../src/ui/dialog/inkscape-preferences.cpp:1196 -#: ../src/ui/dialog/inkscape-preferences.cpp:1200 -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 -msgid "pixels" -msgstr "Pixel" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "System default" +msgstr "Standardeinstellungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:855 -msgid "" -"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" -msgstr "" -"Maximale Bewegung des Zeigers (in Pixeln), bei der noch Klicken statt Ziehen " -"interpretiert wird" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Albanian (sq)" +msgstr "Albanisch (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:858 -msgid "_Handle size:" -msgstr "Anfassergröße:" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Amharic (am)" +msgstr "Amharisch (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:859 -msgid "Set the relative size of node handles" -msgstr "Relative Größe der Knotenanfasser setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Arabic (ar)" +msgstr "Arabisch (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:861 -msgid "Use pressure-sensitive tablet (requires restart)" -msgstr "Druckempfindliches Grafiktablett verwenden (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Armenian (hy)" +msgstr "Armenisch (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:863 -msgid "" -"Use the capabilities of a tablet or other pressure-sensitive device. Disable " -"this only if you have problems with the tablet (you can still use it as a " -"mouse)" -msgstr "" -"Die Möglichkeiten eines Grafiktabletts oder anderen druckempfindlichen " -"Geräts verwenden. Schalten Sie dies nur aus, wenn Sie Probleme mit dem Gerät " -"haben (Sie können es immer noch als Maus verwenden)." +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Azerbaijani (az)" +msgstr "Aserbeidschanisch (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:865 -msgid "Switch tool based on tablet device (requires restart)" -msgstr "Wechsel Werkzeug abhängig von Tablett-Werkzeug (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Basque (eu)" +msgstr "Baskisch (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:867 -msgid "" -"Change tool as different devices are used on the tablet (pen, eraser, mouse)" -msgstr "" -"Wechselt das Werkzeug wenn auf dem Grafiktablett ein anderes Gerät verwendet " -"wird (Stift, Radierer, Maus)" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Belarusian (be)" +msgstr "Belorussisch (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:868 -msgid "Input devices" -msgstr "_Eingabegeräte…" +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bulgarian (bg)" +msgstr "Bulgarisch (bg)" -#. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:871 -msgid "Use named colors" -msgstr "Benutze Farbnamen" +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bengali (bn)" +msgstr "Bengalesisch (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:872 -msgid "" -"If set, write the CSS name of the color when available (e.g. 'red' or " -"'magenta') instead of the numeric value" -msgstr "" -"Benutzt, wenn möglich, die CSS-Farbnamen (z.B. 'red', 'magenta') anstelle " -"von nummerischen Werten." +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Bengali/Bangladesh (bn_BD)" +msgstr "Bengalesisch (bn_BD)" -#: ../src/ui/dialog/inkscape-preferences.cpp:874 -msgid "XML formatting" -msgstr "XML Format" +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Breton (br)" +msgstr "Bretonisch (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:876 -msgid "Inline attributes" -msgstr "Attribute kĂĽrzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Catalan (ca)" +msgstr "Katalanisch (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:877 -msgid "Put attributes on the same line as the element tag" -msgstr "Schreibt Attribute in die gleiche Zeile wie das Element-Tag." +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Valencian Catalan (ca@valencia)" +msgstr "Valencianisches Katalan (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 -msgid "_Indent, spaces:" -msgstr "E_inzug, Leerzeichen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:515 +msgid "Chinese/China (zh_CN)" +msgstr "Chinesisch/china (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 -msgid "" -"The number of spaces to use for indenting nested elements; set to 0 for no " -"indentation" -msgstr "" -"Die Anzahl an Leerstellen die zum einrĂĽcken untergeordneter Elemente genutzt " -"werden soll. Mit 0 werden keine Leerstellen eingefĂĽgt." +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Chinese/Taiwan (zh_TW)" +msgstr "Chinesisch/Taiwan (zh_TW)" -#: ../src/ui/dialog/inkscape-preferences.cpp:882 -msgid "Path data" -msgstr "Pfad Daten" +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Croatian (hr)" +msgstr "Kroatisch (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -msgid "Absolute" -msgstr "Absolut" +#: ../src/ui/dialog/inkscape-preferences.cpp:516 +msgid "Czech (cs)" +msgstr "Tschechisch (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -msgid "Relative" -msgstr "Relativ zu: " +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Danish (da)" +msgstr "Dänisch (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 -msgid "Optimized" -msgstr "Optimiert" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Dutch (nl)" +msgstr "Niderländisch (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -#, fuzzy -msgid "Path string format:" -msgstr "Entwurfspfad Farbe" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Dzongkha (dz)" +msgstr "Dzongkha (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -msgid "" -"Path data should be written: only with absolute coordinates, only with " -"relative coordinates, or optimized for string length (mixed absolute and " -"relative coordinates)" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "German (de)" +msgstr "Deutsch (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:891 -msgid "Force repeat commands" -msgstr "Erzwinge Kommandowiederholung" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Greek (el)" +msgstr "Griechisch (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:892 -msgid "" -"Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " -"of 'L 1,2 3,4')" -msgstr "" -"Erzwingt die Wiederholung von Pfad-Kommandos (z.B. 'L 1,2 L 3,4' anstatt 'L " -"1,2 3,4')" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "English (en)" +msgstr "Englisch (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:894 -msgid "Numbers" -msgstr "Zahlen" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "English/Australia (en_AU)" +msgstr "Englisch/Australien (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:897 -msgid "_Numeric precision:" -msgstr "Genauigkeit:" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "English/Canada (en_CA)" +msgstr "Englisch/Kanada (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:897 -msgid "Significant figures of the values written to the SVG file" -msgstr "MaĂźgebliche Zahlen der Werte, die in die SVG-Datei geschrieben werden" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "English/Great Britain (en_GB)" +msgstr "Englisch/GroĂźbritannien (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 -msgid "Minimum _exponent:" -msgstr "Minimal _Exponent:" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Pig Latin (en_US@piglatin)" +msgstr "Pig Latin (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 -msgid "" -"The smallest number written to SVG is 10 to the power of this exponent; " -"anything smaller is written as zero" -msgstr "" -"Alle Zahlen die kleiner als 10 hoch diesen Exponenten sind, werden als 0 in " -"SVG Dateien geschrieben." +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Esperanto (eo)" +msgstr "Esperanto (eo)" -#. Code to add controls for attribute checking options -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:905 -msgid "Improper Attributes Actions" -msgstr "Unsachgemäße Attribut-Aktionen" +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Estonian (et)" +msgstr "Estnisch (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:907 -#: ../src/ui/dialog/inkscape-preferences.cpp:915 -#: ../src/ui/dialog/inkscape-preferences.cpp:923 -msgid "Print warnings" -msgstr "Drucke Warnungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Farsi (fa)" +msgstr "Farsi (fa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:908 -msgid "" -"Print warning if invalid or non-useful attributes found. Database files " -"located in inkscape_data_dir/attributes." -msgstr "" -"Gebe Warnung aus, wenn ungĂĽltige oder nicht-nĂĽtzliche Attribute gefunden " -"werden. Datenbank-Dateien liegen in inkscape_data_dir/Attribute." +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Finnish (fi)" +msgstr "Finnisch (fi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:909 -msgid "Remove attributes" -msgstr "Attribute löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "French (fr)" +msgstr "Französisch (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:910 -msgid "Delete invalid or non-useful attributes from element tag" -msgstr "Löscht ungĂĽltige oder nicht-nĂĽtzliche Attribute vom Element Tag" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Irish (ga)" +msgstr "Irisch (ga)" -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:913 -msgid "Inappropriate Style Properties Actions" -msgstr "Unangemessene Stileigenschaften-Aktionen" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Galician (gl)" +msgstr "Galizisch (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 -msgid "" -"Print warning if inappropriate style properties found (i.e. 'font-family' " -"set on a ). Database files located in inkscape_data_dir/attributes." -msgstr "" -"Gebe Warnung aus, wenn ungeeignete Stil-Eigenschaften gefunden werden (dh " -"'Schrift-Familie' auf einem gesetzt). Datenbank-Dateien liegen in " -"inkscape_data_dir/Attribute." +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Hebrew (he)" +msgstr "Hebräisch (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 -#: ../src/ui/dialog/inkscape-preferences.cpp:925 -msgid "Remove style properties" -msgstr "Stileigenschaften löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Hungarian (hu)" +msgstr "Ungarisch (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:918 -msgid "Delete inappropriate style properties" -msgstr "Unpassende Stileigenschaften löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Indonesian (id)" +msgstr "Indonesisch (id)" -#. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:921 -msgid "Non-useful Style Properties Actions" -msgstr "Nicht-nĂĽtzliche Stileigenschafts-Aktionen" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Italian (it)" +msgstr "Italienisch (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:924 -msgid "" -"Print warning if redundant style properties found (i.e. if a property has " -"the default value and a different value is not inherited or if value is the " -"same as would be inherited). Database files located in inkscape_data_dir/" -"attributes." -msgstr "" -"Gibt Warnung aus, wenn redundante Stil-Eigenschaften gefunden wurden (dh, " -"wenn eine Eigenschaft den Standardwert hat und ein anderer Wert wird nicht " -"vererbt wird oder wenn ein Wert der gleiche ist, wenn er vererbt wĂĽrde). " -"Datenbank-Dateien liegen in inkscape_data_dir/Attribute." +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Japanese (ja)" +msgstr "Japanisch (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:926 -msgid "Delete redundant style properties" -msgstr "Redundante Stileigenschaften löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Khmer (km)" +msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:928 -msgid "Check Attributes and Style Properties on" -msgstr "ĂśberprĂĽfen Sie Attribute und Style-Eigenschaften auf" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Kinyarwanda (rw)" +msgstr "Kinyarwanda (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:930 -msgid "Reading" -msgstr "Lesen" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Korean (ko)" +msgstr "Koreanisch (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:931 -msgid "" -"Check attributes and style properties on reading in SVG files (including " -"those internal to Inkscape which will slow down startup)" -msgstr "" -"ĂśberprĂĽfen Sie die Attribute und Style-Eigenschaften beim Lesen von SVG-" -"Dateien (einschlieĂźlich derjenigen internen von Inkscape die den Start " -"verlangsamen)" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Lithuanian (lt)" +msgstr "Litauisch (lt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 -msgid "Editing" -msgstr "Bearbeiten" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Latvian (lv)" +msgstr "Lettisch (lv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 -msgid "" -"Check attributes and style properties while editing SVG files (may slow down " -"Inkscape, mostly useful for debugging)" -msgstr "" -"ĂśberprĂĽfen Sie die Attribute und Style-Eigenschaften während der Bearbeitung " -"von SVG-Dateien (kann Inkscape verlangsamen, meist nĂĽtzlich zur Fehlersuche)" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Macedonian (mk)" +msgstr "Mazedonisch (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:934 -msgid "Writing" -msgstr "Schreiben" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Mongolian (mn)" +msgstr "Mongolisch (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 -msgid "Check attributes and style properties on writing out SVG files" -msgstr "" -"ĂśberprĂĽfen Sie die Attribut- und Style-Eigenschaften beim Schreiben von SVG-" -"Dateien" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Nepali (ne)" +msgstr "Nepalesisch (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 -msgid "SVG output" -msgstr "SVG-Ausgabe" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Norwegian BokmĂĄl (nb)" +msgstr "Norwegisch/BokmĂĄl (nb)" -#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Perceptual" -msgstr "Wahrnehmung" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Norwegian Nynorsk (nn)" +msgstr "Norwegisch/Nynorsk (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Relative Colorimetric" -msgstr "Relative Farbmetrik" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Panjabi (pa)" +msgstr "Panjabi (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Absolute Colorimetric" -msgstr "Absolute Farbmetrik" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Polish (pl)" +msgstr "Polnisch (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:947 -msgid "(Note: Color management has been disabled in this build)" -msgstr "(Hinweis: Farbmanagement wurde in diesem Build deaktiviert)" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Portuguese (pt)" +msgstr "Portugisisch(pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 -msgid "Display adjustment" -msgstr "Anzeige Anpassungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Portuguese/Brazil (pt_BR)" +msgstr "Portugisisch/Brasilien (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:961 -#, c-format -msgid "" -"The ICC profile to use to calibrate display output.\n" -"Searched directories:%s" -msgstr "" -"ICC-Profil, das zum Kalibrieren der Anzeige genutzt werden soll.\n" -"Durchsuchte Verzeichnisse:%s" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Romanian (ro)" +msgstr "Rumänisch (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 -msgid "Display profile:" -msgstr "Anzeigeprofil:" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Russian (ru)" +msgstr "Russisch (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 -msgid "Retrieve profile from display" -msgstr "Profil von Anzeige ermitteln" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Serbian (sr)" +msgstr "Serbisch (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:970 -msgid "Retrieve profiles from those attached to displays via XICC" -msgstr "Ermittle Profil von angeschlossenen Anzeigegeräten mittels XICC." +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Serbian in Latin script (sr@latin)" +msgstr "Serbisch in lateinischer Schrift (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:972 -msgid "Retrieve profiles from those attached to displays" -msgstr "Ermittle Profil von angeschlossenen Anzeigegeräten." +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Slovak (sk)" +msgstr "Slovakisch (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:977 -msgid "Display rendering intent:" -msgstr "Anzeigenversatz" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Slovenian (sl)" +msgstr "Slovenisch (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:978 -msgid "The rendering intent to use to calibrate display output" -msgstr "" -"Geräte-Wiedergabe-Bedeutung wird genutzt, um die Ausgabe zu kalibrieren." +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Spanish (es)" +msgstr "Spanisch (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:980 -msgid "Proofing" -msgstr "Druckprobe" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Spanish/Mexico (es_MX)" +msgstr "Spanisch/Mexico (es_MX)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Swedish (sv)" +msgstr "Schwedisch (sv)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Telugu (te_IN)" +msgstr "Telugu (te_IN)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Thai (th)" +msgstr "Thai (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:982 -msgid "Simulate output on screen" -msgstr "Simulieren der Ausgabe auf dem Bildschirm" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Turkish (tr)" +msgstr "TĂĽrkisch (tr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:984 -msgid "Simulates output of target device" -msgstr "Simulieren der Ausgabe auf dem Zielgerät" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Ukrainian (uk)" +msgstr "Ukrainisch (uk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:986 -msgid "Mark out of gamut colors" -msgstr "Farben der Farbskala hervorheben" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Vietnamese (vi)" +msgstr "Vietnamesisch (vi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:988 -msgid "Highlights colors that are out of gamut for the target device" -msgstr "Hebe Farben hervor die nicht im Farbbereich des Ausgabegerätes liegen." +#: ../src/ui/dialog/inkscape-preferences.cpp:557 +msgid "Language (requires restart):" +msgstr "Sprache (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1000 -msgid "Out of gamut warning color:" -msgstr "Farbbereichswarnung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:558 +msgid "Set the language for menus and number formats" +msgstr "Sprache fĂĽr MenĂĽs und Zahlenformate setzen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1001 -msgid "Selects the color used for out of gamut warning" -msgstr "Bestimmt die Farbe die fĂĽr Farbbereichswarnungen genutzt werden soll." +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Large" +msgstr "GroĂź" -#: ../src/ui/dialog/inkscape-preferences.cpp:1003 -msgid "Device profile:" -msgstr "Geräteprofil:" +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Small" +msgstr "Klein" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 -msgid "The ICC profile to use to simulate device output" -msgstr "ICC-Profil fĂĽr Simulation der Geräteausgabe." +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +msgid "Smaller" +msgstr "Kleiner" -#: ../src/ui/dialog/inkscape-preferences.cpp:1007 -msgid "Device rendering intent:" -msgstr "Gerätewiedergabe-Bedeutung" +# !!! called "Commands Bar" in other places +#: ../src/ui/dialog/inkscape-preferences.cpp:565 +msgid "Toolbox icon size:" +msgstr "Symbolgröße in der Werkzeugleiste" -#: ../src/ui/dialog/inkscape-preferences.cpp:1008 -msgid "The rendering intent to use to calibrate device output" -msgstr "" -"Geräte-Wiedergabe-Bedeutung wird genutzt, um die Ausgabe zu kalibrieren." +#: ../src/ui/dialog/inkscape-preferences.cpp:566 +msgid "Set the size for the tool icons (requires restart)" +msgstr "Größe der Werkzeugsymbole verändern (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1010 -msgid "Black point compensation" -msgstr "Schwarzpunktanpassung" +#: ../src/ui/dialog/inkscape-preferences.cpp:569 +msgid "Control bar icon size:" +msgstr "Symbolgröße in Einstellungsleiste" -#: ../src/ui/dialog/inkscape-preferences.cpp:1012 -msgid "Enables black point compensation" -msgstr "Ermöglicht Schwarzpunktkompensation" +#: ../src/ui/dialog/inkscape-preferences.cpp:570 +msgid "" +"Set the size for the icons in tools' control bars to use (requires restart)" +msgstr "" +"Bestimmt die Größe der Piktogramme auf der Werkzeugleiste (erfordert " +"Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1014 -msgid "Preserve black" -msgstr "Schwarzwert beibehalten" +# !!! called "Commands Bar" in other places +#: ../src/ui/dialog/inkscape-preferences.cpp:573 +msgid "Secondary toolbar icon size:" +msgstr "Symbolgröße in zweiter Werkzeugleiste" -#: ../src/ui/dialog/inkscape-preferences.cpp:1021 -msgid "(LittleCMS 1.15 or later required)" -msgstr "(LittleCMS 1.15 oder neuer wird benötigt)" +#: ../src/ui/dialog/inkscape-preferences.cpp:574 +msgid "" +"Set the size for the icons in secondary toolbars to use (requires restart)" +msgstr "" +"Bestimmt die Größe der Piktogramme in untergeordneten Werkzeugleisten " +"(erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1023 -msgid "Preserve K channel in CMYK -> CMYK transforms" -msgstr "Lässt K-Kanal in CMYK -> CMYK Transformation unverändert." +#: ../src/ui/dialog/inkscape-preferences.cpp:577 +msgid "Work-around color sliders not drawing" +msgstr "Abhilfe fĂĽr nicht gezeichnete Farb-Schieberegler" -# CHECK -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 -#: ../src/widgets/sp-color-icc-selector.cpp:474 -#: ../src/widgets/sp-color-icc-selector.cpp:766 -msgid "" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:579 +msgid "" +"When on, will attempt to work around bugs in certain GTK themes drawing " +"color sliders" +msgstr "" +"Wenn gewählt, wird versucht, den Fehler bzgl. nicht gezeichneter Farb-" +"Schieberegler in manchen GTK-Themen zu umgehen." -#: ../src/ui/dialog/inkscape-preferences.cpp:1082 -msgid "Color management" -msgstr "Farb-Management" +#: ../src/ui/dialog/inkscape-preferences.cpp:584 +msgid "Clear list" +msgstr "Liste löschen" -#. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1085 -msgid "Enable autosave (requires restart)" -msgstr "Automatisches Speichern (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:587 +msgid "Maximum documents in Open _Recent:" +msgstr "Länge der \"letzte Dokumente\"-Liste:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1086 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "" -"Automatically save the current document(s) at a given interval, thus " -"minimizing loss in case of a crash" +"Set the maximum length of the Open Recent list in the File menu, or clear " +"the list" msgstr "" -"Speichert das Dokument in bestimmten Zeitabständen. Dadurch kann der " -"Verlust, der durch ProgrammabstĂĽrze entsteht, verringert werden." +"Die maximale Länge der Liste zuletzt geöffneter Dokumente im MenĂĽ »Datei«" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 -msgctxt "Filesystem" -msgid "Autosave _directory:" -msgstr "Ort fĂĽr automatisches Speichern:" +#: ../src/ui/dialog/inkscape-preferences.cpp:591 +msgid "_Zoom correction factor (in %):" +msgstr "_Zoom Korrektur (in %)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +#: ../src/ui/dialog/inkscape-preferences.cpp:592 msgid "" -"The directory where autosaves will be written. This should be an absolute " -"path (starts with / on UNIX or a drive letter such as C: on Windows). " +"Adjust the slider until the length of the ruler on your screen matches its " +"real length. This information is used when zooming to 1:1, 1:2, etc., to " +"display objects in their true sizes" msgstr "" -"Das Verzeichnis, wo automatisch gespeicherte Dokumente geschrieben werden, " -"sollte ein absoluter Pfad sein (startet mit / bei UNIX und einem " -"Laufwerksbuchstaben wir C: bei Windows)." +"Verschieben Sie den Schieberegler, bis die Länge der MaĂźbandes auf ihrem " +"Bildschirm der echten Größe entspricht. Diese Information wird genutzt, um " +"beim Zoom auf 1:1, 1:2, usw. das Objekt in realistischen Größen darzustellen." -#: ../src/ui/dialog/inkscape-preferences.cpp:1094 -msgid "_Interval (in minutes):" -msgstr "Zeitabstand (in Minuten):" +#: ../src/ui/dialog/inkscape-preferences.cpp:595 +msgid "Enable dynamic relayout for incomplete sections" +msgstr "Dynamischer Neu-Entwurf fĂĽr unvollständige Abschnitte" -#: ../src/ui/dialog/inkscape-preferences.cpp:1094 -msgid "Interval (in minutes) at which document will be autosaved" +#: ../src/ui/dialog/inkscape-preferences.cpp:597 +msgid "" +"When on, will allow dynamic layout of components that are not completely " +"finished being refactored" msgstr "" -"In diesen Zeitabständen (in Minuten) wird das Dokument automatisch " -"gespeichert." +"Wenn aktiviert, erlaubt es einen dynamischen Entwurf von veränderten " +"Komponenten, die noch nicht komplett beendet sind." -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 -msgid "_Maximum number of autosaves:" -msgstr "Maximale Anzahl an Sicherungen:" +#. show infobox +#: ../src/ui/dialog/inkscape-preferences.cpp:600 +msgid "Show filter primitives infobox (requires restart)" +msgstr "Zeigt Informationen zu den Filterbausteinen (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:602 msgid "" -"Maximum number of autosaved files; use this to limit the storage space used" +"Show icons and descriptions for the filter primitives available at the " +"filter effects dialog" msgstr "" -"Maximale Anzahl an Sicherungsdateien. Hiermit läßt sich der genutzte " -"Speicherplatz einschränken." +"Zeigt Symbole und Beschreibungen fĂĽr die verfĂĽgbaren Filterbausteine im " +"Filtereffektdialog." -#. When changing the interval or enabling/disabling the autosave function, -#. * update our running configuration -#. * -#. * FIXME! -#. * the inkscape_autosave_init should be called AFTER the values have been changed -#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere -#. -#. -#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. -#. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1111 -msgid "Autosave" -msgstr "Automatische Sicherung" +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Icons only" +msgstr "nur Symbole" -#: ../src/ui/dialog/inkscape-preferences.cpp:1115 -msgid "Open Clip Art Library _Server Name:" -msgstr "Open Clip Art Library Servername:" +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Text only" +msgstr "nur Text" -#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Icons and text" +msgstr "Symbole und Text" + +#: ../src/ui/dialog/inkscape-preferences.cpp:610 +msgid "Dockbar style (requires restart):" +msgstr "Dockleistenstil (erfordert Neustart)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:611 msgid "" -"The server name of the Open Clip Art Library webdav server; it's used by the " -"Import and Export to OCAL function" +"Selects whether the vertical bars on the dockbar will show text labels, " +"icons, or both" msgstr "" -"Der Servername des \"Open Clip Art Library\" Webdav Servers. Dieser wird " -"beim Im- und Export zur OCAL verwendet." - -#: ../src/ui/dialog/inkscape-preferences.cpp:1118 -msgid "Open Clip Art Library _Username:" -msgstr "Open Clip Art Library Benutzername:" +"Wählt, ob vertikale Leisten auf der Dockleiste Beschriftungen, Symbole oder " +"beides angezeigen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 -msgid "The username used to log into Open Clip Art Library" -msgstr "Der Benutzername zum einloggen in die Open Clip Art Library." +#: ../src/ui/dialog/inkscape-preferences.cpp:618 +msgid "Switcher style (requires restart):" +msgstr "Stil des Umschalters (erfordert Neustart):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 -msgid "Open Clip Art Library _Password:" -msgstr "Open Clip Art Library Kennwort:" +#: ../src/ui/dialog/inkscape-preferences.cpp:619 +msgid "" +"Selects whether the dockbar switcher will show text labels, icons, or both" +msgstr "" +"Wählt aus, ob der Dockleisten-Umschalter Beschriftungen, Symbole oder beides " +"zeigt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 -msgid "The password used to log into Open Clip Art Library" -msgstr "Das Passwort zum einloggen in die Open Clip Art Library." +#. Windows +#: ../src/ui/dialog/inkscape-preferences.cpp:623 +msgid "Save and restore window geometry for each document" +msgstr "Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 -msgid "Open Clip Art" -msgstr "Login bei Open Clip Art" +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +msgid "Remember and use last window's geometry" +msgstr "Geometrie des letzten Fensters merken und verwenden" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 -msgid "Behavior" -msgstr "Verhalten" +#: ../src/ui/dialog/inkscape-preferences.cpp:625 +msgid "Don't save window geometry" +msgstr "Fenstergeometrie nicht speichern" -#: ../src/ui/dialog/inkscape-preferences.cpp:1132 -msgid "_Simplification threshold:" -msgstr "Schwellwert fĂĽr Vereinfachungen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:627 +msgid "Save and restore dialogs status" +msgstr "Speichern und Wiederherstellen von Dialog-Status" -#: ../src/ui/dialog/inkscape-preferences.cpp:1133 -msgid "" -"How strong is the Node tool's Simplify command by default. If you invoke " -"this command several times in quick succession, it will act more and more " -"aggressively; invoking it again after a pause restores the default threshold." -msgstr "" -"Vorgabeschwelle der Vereinfachung im Knotenwerkzeug. Wird diese Operation " -"mehrmals schnell hintereinander ausgefĂĽhrt, erhöht sich die Stärke; kurze " -"Pause dazwischen setzt den Schwellwert zurĂĽck." +#: ../src/ui/dialog/inkscape-preferences.cpp:628 +#: ../src/ui/dialog/inkscape-preferences.cpp:664 +msgid "Don't save dialogs status" +msgstr "Dialogstatus nicht speichern" -#: ../src/ui/dialog/inkscape-preferences.cpp:1135 -msgid "Color stock markers the same color as object" -msgstr "Farbe Standard-Marker in der gleichen Farbe wie das Objekt" +#: ../src/ui/dialog/inkscape-preferences.cpp:630 +#: ../src/ui/dialog/inkscape-preferences.cpp:672 +msgid "Dockable" +msgstr "Andockbar" -#: ../src/ui/dialog/inkscape-preferences.cpp:1136 -msgid "Color custom markers the same color as object" -msgstr "" -"Färbe die benutzerdefinierten Markierungen in der gleichen Farbe wie das " -"Objekt" +#: ../src/ui/dialog/inkscape-preferences.cpp:634 +msgid "Native open/save dialogs" +msgstr "UrsprĂĽngliche Ă–ffnen/Speichern-Dialoge" -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 -msgid "Update marker color when object color changes" -msgstr "Aktualisiert die Markierungsfarbe, wenn das Objekt die Farbe ändert" +#: ../src/ui/dialog/inkscape-preferences.cpp:635 +msgid "GTK open/save dialogs" +msgstr "GTk Ă–ffnen/Speichern-Dialog" -#. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1140 -msgid "Select in all layers" -msgstr "In allen Ebenen auswählen" +#: ../src/ui/dialog/inkscape-preferences.cpp:637 +msgid "Dialogs are hidden in taskbar" +msgstr "Dialoge werden in der Fensterliste nicht angezeigt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1141 -msgid "Select only within current layer" -msgstr "Nur innerhalb der aktuellen Ebene auswählen" +#: ../src/ui/dialog/inkscape-preferences.cpp:638 +msgid "Save and restore documents viewport" +msgstr "Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1142 -msgid "Select in current layer and sublayers" -msgstr "Nur innerhalb der aktuellen Ebene und Unterebenen auswählen" +#: ../src/ui/dialog/inkscape-preferences.cpp:639 +msgid "Zoom when window is resized" +msgstr "Zeichnungsgröße ändern, wenn die Fenstergröße verändert wird" -#: ../src/ui/dialog/inkscape-preferences.cpp:1143 -msgid "Ignore hidden objects and layers" -msgstr "Ausgeblendete Objekte und Ebenen ignorieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:640 +msgid "Show close button on dialogs" +msgstr "SchlieĂźknöpfe in Dialogen zeigen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1144 -msgid "Ignore locked objects and layers" -msgstr "Gesperrte Objekte und Ebenen ignorieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:643 +msgid "Aggressive" +msgstr "Aggressiv" -#: ../src/ui/dialog/inkscape-preferences.cpp:1145 -msgid "Deselect upon layer change" -msgstr "Auswahl bei Ebenenwechsel aufheben" +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Maximized" +msgstr "Maximiert" -#: ../src/ui/dialog/inkscape-preferences.cpp:1148 -msgid "" -"Uncheck this to be able to keep the current objects selected when the " -"current layer changes" -msgstr "" -"Dieses abwählen um Objekte ausgewählt zu lassen, wenn die aktuelle Ebene " -"geändert wird" +#: ../src/ui/dialog/inkscape-preferences.cpp:650 +msgid "Default window size:" +msgstr "Standard Fenstergröße:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1150 -msgid "Ctrl+A, Tab, Shift+Tab" -msgstr "Strg+A, Tabulator, Umschalt+Tabulator:" +#: ../src/ui/dialog/inkscape-preferences.cpp:651 +msgid "Set the default window size" +msgstr "Standard Fenstergröße setzen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1152 -msgid "Make keyboard selection commands work on objects in all layers" -msgstr "Tastaturkommandos zur Auswahl wirken auf Objekte aller Ebenen" +#: ../src/ui/dialog/inkscape-preferences.cpp:654 +msgid "Saving window geometry (size and position)" +msgstr "Fenstergeometrie speichern (Größe und Position):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1154 -msgid "Make keyboard selection commands work on objects in current layer only" -msgstr "" -"Tastaturkommandos zur Auswahl wirken nur auf Objekte in der aktuellen Ebene" +#: ../src/ui/dialog/inkscape-preferences.cpp:656 +msgid "Let the window manager determine placement of all windows" +msgstr "Dem Fenstermanager die Platzierung aller Fenster entscheiden lassen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1156 +#: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "" -"Make keyboard selection commands work on objects in current layer and all " -"its sublayers" +"Remember and use the last window's geometry (saves geometry to user " +"preferences)" msgstr "" -"Tastaturkommandos zur Auswahl wirken auf Objekte in der aktuellen Ebene und " -"aller ihrer Unterebenen" +"Geometrie des letzten Fensters merken und verwenden (speichert Geometrie in " +"Benutzereinstellungen)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +#: ../src/ui/dialog/inkscape-preferences.cpp:660 msgid "" -"Uncheck this to be able to select objects that are hidden (either by " -"themselves or by being in a hidden layer)" +"Save and restore window geometry for each document (saves geometry in the " +"document)" msgstr "" -"Dieses abwählen, damit ausgeblendete Objekte ausgewählt werden können (gilt " -"auch fĂĽr Objekte in ausgeblendeten Ebenen/Gruppierungen)" +"Fenstergeometrie fĂĽr jedes Dokument speichern und wiederherstellen " +"(speichert Geometrie im Dokument)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1160 +#: ../src/ui/dialog/inkscape-preferences.cpp:662 +msgid "Saving dialogs status" +msgstr "Speichere Dialogstatud" + +#: ../src/ui/dialog/inkscape-preferences.cpp:666 msgid "" -"Uncheck this to be able to select objects that are locked (either by " -"themselves or by being in a locked layer)" +"Save and restore dialogs status (the last open windows dialogs are saved " +"when it closes)" msgstr "" -"Dieses abwählen damit gesperrte Objekte ausgewählt werden können (gilt auch " -"fĂĽr Objekte in gesperrten Ebenen/Gruppierungen)" +"Speichern und Wiederherstellen von Dialog-Status (die letzten offenen " +"Fenster Dialoge werden gespeichert, wenn sie geschlossen werden)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 -msgid "Wrap when cycling objects in z-order" -msgstr "Beim drehen von Objekten in Z-Ordnung einwickeln." +#: ../src/ui/dialog/inkscape-preferences.cpp:670 +msgid "Dialog behavior (requires restart)" +msgstr "Dialogfensterverhalten (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1164 -msgid "Alt+Scroll Wheel" -msgstr "Alt+Scroll-Rad" +#: ../src/ui/dialog/inkscape-preferences.cpp:676 +msgid "Desktop integration" +msgstr "Desktopintegration" -#: ../src/ui/dialog/inkscape-preferences.cpp:1166 -msgid "Wrap around at start and end when cycling objects in z-order" -msgstr "" -"Beim drehen von Objekten in Z-Ordnung um den Start- und Endpunkt einwickeln." +#: ../src/ui/dialog/inkscape-preferences.cpp:678 +msgid "Use Windows like open and save dialogs" +msgstr "Nutze Windows-artige Ă–ffnen- und Speichern-Dialoge" -#: ../src/ui/dialog/inkscape-preferences.cpp:1168 -msgid "Selecting" -msgstr "Auswählen" +#: ../src/ui/dialog/inkscape-preferences.cpp:680 +msgid "Use GTK open and save dialogs " +msgstr "Nutze GTK-Ă–ffnen- und Speichern-Dialoge" -#. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1171 -#: ../src/widgets/select-toolbar.cpp:570 -msgid "Scale stroke width" -msgstr "Breite der Kontur skalieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:684 +msgid "Dialogs on top:" +msgstr "Dialoge im Vordergrund:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1172 -msgid "Scale rounded corners in rectangles" -msgstr "Abgerundete Ecken in Rechtecken mitskalieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:687 +msgid "Dialogs are treated as regular windows" +msgstr "Dialoge werden wie normale Fenster behandelt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 -msgid "Transform gradients" -msgstr "Farbverläufe transformieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:689 +msgid "Dialogs stay on top of document windows" +msgstr "Dialoge bleiben vor Dokumentenfenstern" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 -msgid "Transform patterns" -msgstr "FĂĽllmuster transformieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:691 +msgid "Same as Normal but may work better with some window managers" +msgstr "" +"Wie »Normal«, aber funktioniert evtl. besser mit manchen Fenstermanagern" -#: ../src/ui/dialog/inkscape-preferences.cpp:1176 -msgid "Preserved" -msgstr "Beibehalten" +#: ../src/ui/dialog/inkscape-preferences.cpp:694 +msgid "Dialog Transparency" +msgstr "Dialog Transparenz:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1179 -#: ../src/widgets/select-toolbar.cpp:571 -msgid "When scaling objects, scale the stroke width by the same proportion" -msgstr "" -"Wenn Objekte skaliert werden, dann wird die Breite der Kontur ebenso " -"skaliert." +#: ../src/ui/dialog/inkscape-preferences.cpp:696 +msgid "_Opacity when focused:" +msgstr "Deckkraft bei Focus:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 -#: ../src/widgets/select-toolbar.cpp:582 -msgid "When scaling rectangles, scale the radii of rounded corners" -msgstr "" -"Wenn Rechtecke skaliert werden, dann werden die Radien von abgerundeten " -"Ecken ebenso mitskaliert." +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +msgid "Opacity when _unfocused:" +msgstr "TrĂĽbung wenn nicht fokussiert:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 -#: ../src/widgets/select-toolbar.cpp:593 -msgid "Move gradients (in fill or stroke) along with the objects" -msgstr "" -"Farbverläufe (in FĂĽllung oder Konturen) zusammen mit den Objekten " -"transformieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:700 +msgid "_Time of opacity change animation:" +msgstr "Zeit fĂĽr Deckkraft-Ă„nderungsanimation" -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 -#: ../src/widgets/select-toolbar.cpp:604 -msgid "Move patterns (in fill or stroke) along with the objects" -msgstr "" -"Muster (in FĂĽllung oder Konturen) zusammen mit den Objekten transformieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:703 +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:40 +msgid "Miscellaneous" +msgstr "Verschiedenes:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1186 -msgid "Store transformation" -msgstr "Transformation speichern:" +#: ../src/ui/dialog/inkscape-preferences.cpp:706 +msgid "Whether dialog windows are to be hidden in the window manager taskbar" +msgstr "Sollen Dialogfenster in der Fensterliste nicht angezeigt werden?" -#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +#: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "" -"If possible, apply transformation to objects without adding a transform= " -"attribute" +"Zoom drawing when document window is resized, to keep the same area visible " +"(this is the default which can be changed in any window using the button " +"above the right scrollbar)" msgstr "" -"Wenn möglich, dann werden Transformationen auf Objekte angewendet, ohne ein " -"transform=-Attribut hinzuzufĂĽgen." - -#: ../src/ui/dialog/inkscape-preferences.cpp:1190 -msgid "Always store transformation as a transform= attribute on objects" -msgstr "Transformationen immer als transform=-Attribute speichern." - -#: ../src/ui/dialog/inkscape-preferences.cpp:1192 -msgid "Transforms" -msgstr "Transformationen" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1196 -msgid "Mouse _wheel scrolls by:" -msgstr "Mausrad rollt um:" +"Darstellungsgröße des Dokuments anpassen, wenn sich die Fenstergröße ändert " +"- der selbe Bereich bleibt sichtbar (Vorgabe, die in jedem Fenster mit dem " +"Knopf ĂĽber dem rechten Rollbalken geändert wird)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "" -"One mouse wheel notch scrolls by this distance in screen pixels " -"(horizontally with Shift)" +"Save documents viewport (zoom and panning position). Useful to turn off when " +"sharing version controlled files." msgstr "" -"Eine Stufe des Maus-Rades rollt um die angegebene Distanz in Pixeln " -"(horizontal mit Umschalttaste)" +"Speichern von Dokumenten Ansichtsfenstern (Zoom-und Verschiebungs-Position). " +"NĂĽtzlich abzuschalten, wenn gemeinsame Versionskontrolle von Dateien " +"verwendet wird." -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 -msgid "Ctrl+arrows" -msgstr "Strg+Pfeile" +#: ../src/ui/dialog/inkscape-preferences.cpp:713 +msgid "Whether dialog windows have a close button (requires restart)" +msgstr "Dialogfenster haben Knöpfe zum SchlieĂźen (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1200 -msgid "Sc_roll by:" -msgstr "Rolle um:" +#: ../src/ui/dialog/inkscape-preferences.cpp:714 +msgid "Windows" +msgstr "Fenster" -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 -msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" -msgstr "Strg+Pfeiltasten rollen um diese Distanz (in Pixeln)" +#. Grids +#: ../src/ui/dialog/inkscape-preferences.cpp:717 +msgid "Line color when zooming out" +msgstr "Linienfarbe beim Herauszoomen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1203 -msgid "_Acceleration:" -msgstr "Beschleunigung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:720 +msgid "The gridlines will be shown in minor grid line color" +msgstr "Die Gitterlinien werden in der Nebengitterlinienfarbe angezeigt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 -msgid "" -"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " -"acceleration)" -msgstr "" -"DrĂĽcken von Strg+Pfeiltaste erhöht zunehmend die Rollgeschwindigkeit (0 " -"bedeutet »keine Beschleunigung«)" +#: ../src/ui/dialog/inkscape-preferences.cpp:722 +msgid "The gridlines will be shown in major grid line color" +msgstr "Die Gitterlinien werden in der Hauptgitterlinienfarbe angezeigt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 -msgid "Autoscrolling" -msgstr "Automatisches Rollen" +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +msgid "Default grid settings" +msgstr "Vorgabe Gittereinstellungen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/ui/dialog/inkscape-preferences.cpp:755 +msgid "Grid units:" +msgstr "Gitter Einheiten:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:735 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +msgid "Origin X:" +msgstr "Ursprung X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 -msgid "_Speed:" -msgstr "Geschwindigkeit:" +#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Origin Y:" +msgstr "Ursprung Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1208 -msgid "" -"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " -"autoscroll off)" -msgstr "" -"Geschwindigkeit mit der die Arbeitsfläche verschoben wird, wenn der Zeiger " -"ihren Rand ĂĽberschreitet (0: Autorollen ist deaktiviert)" +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +msgid "Spacing X:" +msgstr "Abstand X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 -#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 -msgid "_Threshold:" -msgstr "Schwellwert:" +#: ../src/ui/dialog/inkscape-preferences.cpp:742 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Spacing Y:" +msgstr "Abstand Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 -msgid "" -"How far (in screen pixels) you need to be from the canvas edge to trigger " -"autoscroll; positive is outside the canvas, negative is within the canvas" -msgstr "" -"Pixelabstand des Mauszeigers zum Rand der Arbeitsfläche, bei der das " -"Autorollen aktiv ist: positive Werte liegen auĂźerhalb, negative Werte " -"innerhalb der Arbeitsfläche" +#: ../src/ui/dialog/inkscape-preferences.cpp:744 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +msgid "Minor grid line color:" +msgstr "Farbe der Nebengitterlinien:" -#. -#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); -#. _page_scrolling.add_line( false, "", _scroll_space, "", -#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); -#. -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 -msgid "Mouse wheel zooms by default" -msgstr "Standardmäßig zoomt das Mausrad" +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +msgid "Color used for normal grid lines" +msgstr "Farbe der normalen Gitterlinien" -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 -msgid "" -"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " -"off, it zooms with Ctrl and scrolls without Ctrl" -msgstr "" -"Wenn aktiviert kann mit dem Mausrad die Ansicht vergrößert/verkleinert " -"werden. Ist dies deaktiviert benötigt man dazu Strg+Mausrad. " +#: ../src/ui/dialog/inkscape-preferences.cpp:746 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Major grid line color:" +msgstr "Farbe der Hauptgitterlinien:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 -msgid "Scrolling" -msgstr "Rollen" +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Color used for major (highlighted) grid lines" +msgstr "Farbe der dicken (hervorgehobenen) Gitterlinien" -#. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1223 -msgid "Enable snap indicator" -msgstr "Einrast-Indikator aktivieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:774 +msgid "Major grid line every:" +msgstr "Hauptgitterlinien alle:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1225 -msgid "After snapping, a symbol is drawn at the point that has snapped" -msgstr "" -"Nach dem Einrasten wird ein Symbol an der Stelle, die einrastete, gezeichnet." +#: ../src/ui/dialog/inkscape-preferences.cpp:750 +msgid "Show dots instead of lines" +msgstr "Zeige Punkte anstelle von Linien" -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 -msgid "_Delay (in ms):" -msgstr "Verzögerung (in msec):" +#: ../src/ui/dialog/inkscape-preferences.cpp:751 +msgid "If set, display dots at gridpoints instead of gridlines" +msgstr "Punkte anstelle von Gitterlinien verwenden" -#: ../src/ui/dialog/inkscape-preferences.cpp:1229 -msgid "" -"Postpone snapping as long as the mouse is moving, and then wait an " -"additional fraction of a second. This additional delay is specified here. " -"When set to zero or to a very small number, snapping will be immediate." -msgstr "" -"UnterdrĂĽckt das Einrasten, so lange sich die Maus bewegt plus einen " -"zusätzlichen Sekundenbruchteil. Diese additive Verzögerung wird hier " -"festgelegt. Ist sie sehr klein, passiert das Einrasten sofort." +#: ../src/ui/dialog/inkscape-preferences.cpp:832 +msgid "Input/Output" +msgstr "Eingabe/Ausgabe" -#: ../src/ui/dialog/inkscape-preferences.cpp:1231 -msgid "Only snap the node closest to the pointer" -msgstr "Nur an dem Knoten einrasten, der dem Zeiger am nähesten ist." +#: ../src/ui/dialog/inkscape-preferences.cpp:835 +msgid "Use current directory for \"Save As ...\"" +msgstr "Verwende aktuelles Verzeichnis fĂĽr \"Speichern unter...\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1233 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 msgid "" -"Only try to snap the node that is initially closest to the mouse pointer" +"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " +"always open in the directory where the currently open document is; when it's " +"off, each will open in the directory where you last saved a file using it" msgstr "" -"Nur versuchen an dem Knoten einzurasten, der dem Mauszeiger zu Beginn am " -"nächsten ist." +"Wenn diese Option aktiviert ist, wird der \"Speichern unter\"- und \"Kopie " +"speichern unter\"-Dialog immer das Verzeichnis öffnen, in dem das aktuell " +"offene Dokument liegt. Ist sie deaktiviert, wird das Verzeichnis der letzten " +"Speicherung ĂĽber diesen Dialog geöffnet." -#: ../src/ui/dialog/inkscape-preferences.cpp:1236 -msgid "_Weight factor:" -msgstr "Gewichtsfaktor:" +#: ../src/ui/dialog/inkscape-preferences.cpp:839 +msgid "Add label comments to printing output" +msgstr "Beim Ausdruck Bezeichnerkommentare mitdrucken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/ui/dialog/inkscape-preferences.cpp:841 msgid "" -"When multiple snap solutions are found, then Inkscape can either prefer the " -"closest transformation (when set to 0), or prefer the node that was " -"initially the closest to the pointer (when set to 1)" +"When on, a comment will be added to the raw print output, marking the " +"rendered output for an object with its label" msgstr "" -"Wurden mehrere Einrastmöglichkeiten gefunden, kann Inkscape die näheste " -"Transformation anwenden (wenn auf 0 gesetzt) oder am Knoten, der dem " -"Mauszeiger am nähesten ist (wenn auf 1 gesetzt) einrasten." +"Diese Option fĂĽgt der unbehandelten Druckausgabe einen Kommentar hinzu.\n" +"Das zu druckende Objekt wird mit einem Bezeichner markiert." -#: ../src/ui/dialog/inkscape-preferences.cpp:1239 -msgid "Snap the mouse pointer when dragging a constrained knot" -msgstr "Rastet den Mauszeiger ein, wenn ein festgesetzter Knoten gezogen wird." +#: ../src/ui/dialog/inkscape-preferences.cpp:843 +msgid "Add default metadata to new documents" +msgstr "FĂĽgt Standard Metadaten neuen Dokumenten hinzu" -#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +#: ../src/ui/dialog/inkscape-preferences.cpp:845 msgid "" -"When dragging a knot along a constraint line, then snap the position of the " -"mouse pointer instead of snapping the projection of the knot onto the " -"constraint line" +"Add default metadata to new documents. Default metadata can be set from " +"Document Properties->Metadata." msgstr "" -"Wird ein Knoten entlang einer festgesetzten Linie gezogen, dann rastet der " -"Mauszeiger statt der Projektion des Knotens auf der Linie ein." +"FĂĽgt Standardmetadaten in neue Dokumente ein. Standard-Metadaten können ĂĽber " +"Dokument-Eigenschaften-> Metadaten gesetzt werden." -#: ../src/ui/dialog/inkscape-preferences.cpp:1243 -msgid "Snapping" -msgstr "Einrasten" +#: ../src/ui/dialog/inkscape-preferences.cpp:849 +msgid "_Grab sensitivity:" +msgstr "Anfass-Empfindlichkeit:" -#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 -msgid "_Arrow keys move by:" -msgstr "Pfeiltasten bewegen um:" +#: ../src/ui/dialog/inkscape-preferences.cpp:849 +msgid "pixels (requires restart)" +msgstr "Pixel (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:850 msgid "" -"Pressing an arrow key moves selected object(s) or node(s) by this distance" -msgstr "" -"DrĂĽcken einer Pfeiltaste verschiebt die ausgewählten Elemente (Objekte oder " -"Knoten) um diese Entfernung (in SVG-Pixeln)" - -#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 -msgid "> and < _scale by:" -msgstr "> und < skalieren um:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 -msgid "Pressing > or < scales selection up or down by this increment" +"How close on the screen you need to be to an object to be able to grab it " +"with mouse (in screen pixels)" msgstr "" -"DrĂĽcken von > oder < skaliert die ausgewählten Elemente um diesen Wert " -"größer oder kleiner (in SVG-Pixeln) " - -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 -msgid "_Inset/Outset by:" -msgstr "Schrumpfen/Erweitern um:" +"Mindestentfernung des Mauszeigers zu einem Objekt, um es zu erfassen (in " +"Pixeln)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1256 -msgid "Inset and Outset commands displace the path by this distance" -msgstr "" -"Schrumpfungs- und Erweiterungsbefehle verändern den Pfad um diese Distanz " -"(in SVG-Pixeln)" +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +msgid "_Click/drag threshold:" +msgstr "Schwellwert fĂĽr Klicken/Ziehen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 -msgid "Compass-like display of angles" -msgstr "Anzeige von Winkeln wie bei einem KompaĂź" +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +msgid "pixels" +msgstr "Pixel" -#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:853 msgid "" -"When on, angles are displayed with 0 at north, 0 to 360 range, positive " -"clockwise; otherwise with 0 at east, -180 to 180 range, positive " -"counterclockwise" +"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" -"Aktiviert bedeutet, dass Winkel mit 0 fĂĽr Norden dargestellt werden, Bereich " -"0 bis 360, positiv im Uhrzeigersinn; anderenfalls mit 0 fĂĽr Osten, Bereich " -"-180 bis 180, positiv entgegen dem Uhrzeigersinn" +"Maximale Bewegung des Zeigers (in Pixeln), bei der noch Klicken statt Ziehen " +"interpretiert wird" -# !!! need %s -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 -msgid "_Rotation snaps every:" -msgstr "Rotation rastet ein alle:" +#: ../src/ui/dialog/inkscape-preferences.cpp:856 +msgid "_Handle size:" +msgstr "Anfassergröße:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 -msgid "degrees" -msgstr "Grad" +#: ../src/ui/dialog/inkscape-preferences.cpp:857 +msgid "Set the relative size of node handles" +msgstr "Relative Größe der Knotenanfasser setzen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:859 +msgid "Use pressure-sensitive tablet (requires restart)" +msgstr "Druckempfindliches Grafiktablett verwenden (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#: ../src/ui/dialog/inkscape-preferences.cpp:861 msgid "" -"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " -"[ or ] rotates by this amount" +"Use the capabilities of a tablet or other pressure-sensitive device. Disable " +"this only if you have problems with the tablet (you can still use it as a " +"mouse)" msgstr "" -"Rotation mit gedrĂĽckter Strg-Taste lässt das Objekt mit dieser Gradrastung " -"einrasten; die Tasten [ oder ] haben den gleichen Effekt" +"Die Möglichkeiten eines Grafiktabletts oder anderen druckempfindlichen " +"Geräts verwenden. Schalten Sie dies nur aus, wenn Sie Probleme mit dem Gerät " +"haben (Sie können es immer noch als Maus verwenden)." -#: ../src/ui/dialog/inkscape-preferences.cpp:1267 -msgid "Relative snapping of guideline angles" -msgstr "Relatives Einrasten von FĂĽhrungslininen-Winkeln" +#: ../src/ui/dialog/inkscape-preferences.cpp:863 +msgid "Switch tool based on tablet device (requires restart)" +msgstr "Wechsel Werkzeug abhängig von Tablett-Werkzeug (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +#: ../src/ui/dialog/inkscape-preferences.cpp:865 msgid "" -"When on, the snap angles when rotating a guideline will be relative to the " -"original angle" +"Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" -"Wenn eingeschaltet, wird der Einrastwinkel beim Drehen einer FĂĽhrungslinie " -"relativ zum ursprĂĽnglichen Winkel" +"Wechselt das Werkzeug wenn auf dem Grafiktablett ein anderes Gerät verwendet " +"wird (Stift, Radierer, Maus)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1271 -msgid "_Zoom in/out by:" -msgstr "Zoomfaktor vergrößern/verkleinern um:" +#: ../src/ui/dialog/inkscape-preferences.cpp:866 +msgid "Input devices" +msgstr "_Eingabegeräte…" -#: ../src/ui/dialog/inkscape-preferences.cpp:1271 -msgid "%" -msgstr "%" +#. SVG output options +#: ../src/ui/dialog/inkscape-preferences.cpp:869 +msgid "Use named colors" +msgstr "Benutze Farbnamen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +#: ../src/ui/dialog/inkscape-preferences.cpp:870 msgid "" -"Zoom tool click, +/- keys, and middle click zoom in and out by this " -"multiplier" +"If set, write the CSS name of the color when available (e.g. 'red' or " +"'magenta') instead of the numeric value" msgstr "" -"Mit dem Zoomwerkzeug klicken, die + oder - Taste drĂĽcken, oder die mittlere " -"Maustaste betätigen, damit sich die Zoomgröße um diesen Faktor ändert" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1273 -msgid "Steps" -msgstr "Schritte" - -#. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1276 -msgid "Move in parallel" -msgstr "parallel verschoben" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 -msgid "Stay unmoved" -msgstr "unbewegt bleiben" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1280 -msgid "Move according to transform" -msgstr "sich entsprechend des transform=-Attributs bewegen" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1282 -msgid "Are unlinked" -msgstr "ihre Verbindung zum Original verlieren" +"Benutzt, wenn möglich, die CSS-Farbnamen (z.B. 'red', 'magenta') anstelle " +"von nummerischen Werten." -#: ../src/ui/dialog/inkscape-preferences.cpp:1284 -msgid "Are deleted" -msgstr "ebenso gelöscht" +#: ../src/ui/dialog/inkscape-preferences.cpp:872 +msgid "XML formatting" +msgstr "XML Format" -#: ../src/ui/dialog/inkscape-preferences.cpp:1287 -msgid "Moving original: clones and linked offsets" -msgstr "Verschiebe Original: Klone und verbundener Versatz" +#: ../src/ui/dialog/inkscape-preferences.cpp:874 +msgid "Inline attributes" +msgstr "Attribute kĂĽrzen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1289 -msgid "Clones are translated by the same vector as their original" -msgstr "Klone werden mit demselben Vektor wie das Original verschoben." +#: ../src/ui/dialog/inkscape-preferences.cpp:875 +msgid "Put attributes on the same line as the element tag" +msgstr "Schreibt Attribute in die gleiche Zeile wie das Element-Tag." -#: ../src/ui/dialog/inkscape-preferences.cpp:1291 -msgid "Clones preserve their positions when their original is moved" -msgstr "" -"Klone bleiben an ihren Positionen, während das Original verschoben wird." +#: ../src/ui/dialog/inkscape-preferences.cpp:878 +msgid "_Indent, spaces:" +msgstr "E_inzug, Leerzeichen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +#: ../src/ui/dialog/inkscape-preferences.cpp:878 msgid "" -"Each clone moves according to the value of its transform= attribute; for " -"example, a rotated clone will move in a different direction than its original" +"The number of spaces to use for indenting nested elements; set to 0 for no " +"indentation" msgstr "" -"Jeder Klon verschiebt sich entsprechend des Wertes seines transform=-" -"Attributs. Ein rotierter Klon wird sich zum Beispiel in eine andere Richtung " -"als das Original drehen." +"Die Anzahl an Leerstellen die zum einrĂĽcken untergeordneter Elemente genutzt " +"werden soll. Mit 0 werden keine Leerstellen eingefĂĽgt." -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 -msgid "Deleting original: clones" -msgstr "Lösche Original: Klone" +#: ../src/ui/dialog/inkscape-preferences.cpp:880 +msgid "Path data" +msgstr "Pfad Daten" -#: ../src/ui/dialog/inkscape-preferences.cpp:1296 -msgid "Orphaned clones are converted to regular objects" -msgstr "Klone ohne Original werden zu regulären Objekten umgewandelt." +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Absolute" +msgstr "Absolut" -#: ../src/ui/dialog/inkscape-preferences.cpp:1298 -msgid "Orphaned clones are deleted along with their original" -msgstr "Klone werden zusammen mit ihrem Original gelöscht." +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Relative" +msgstr "Relativ zu: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1300 -msgid "Duplicating original+clones/linked offset" -msgstr "Duplizieren Original+Klone/verbundener Versatz" +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +msgid "Optimized" +msgstr "Optimiert" -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 -msgid "Relink duplicated clones" -msgstr "Duplizierte Klone neu verbinden" +#: ../src/ui/dialog/inkscape-preferences.cpp:887 +#, fuzzy +msgid "Path string format:" +msgstr "Entwurfspfad Farbe" -#: ../src/ui/dialog/inkscape-preferences.cpp:1304 +#: ../src/ui/dialog/inkscape-preferences.cpp:887 msgid "" -"When duplicating a selection containing both a clone and its original " -"(possibly in groups), relink the duplicated clone to the duplicated original " -"instead of the old original" +"Path data should be written: only with absolute coordinates, only with " +"relative coordinates, or optimized for string length (mixed absolute and " +"relative coordinates)" msgstr "" -"Wenn eine Auswahl kopiert wird in der Klone und dessen Originale enthalten " -"sind verbinde die kopierten Klone mit den kopierten Originalen anstatt mit " -"den alten Originalen." - -#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1307 -msgid "Clones" -msgstr "Klone" -#. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1310 -msgid "When applying, use the topmost selected object as clippath/mask" -msgstr "" -"Verwende das oberste ausgewählte Objekt beim Anwenden als Ausschneidepfad " -"oder Maskierung" +#: ../src/ui/dialog/inkscape-preferences.cpp:889 +msgid "Force repeat commands" +msgstr "Erzwinge Kommandowiederholung" -#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +#: ../src/ui/dialog/inkscape-preferences.cpp:890 msgid "" -"Uncheck this to use the bottom selected object as the clipping path or mask" +"Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " +"of 'L 1,2 3,4')" msgstr "" -"Nicht auswählen, um das unterste ausgewählte Objekt als Ausschneidepfad oder " -"Maskierung zu verwenden" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1313 -msgid "Remove clippath/mask object after applying" -msgstr "Ausschneidepfad oder Maskierungsobjekt nach dem Anwenden entfernen" +"Erzwingt die Wiederholung von Pfad-Kommandos (z.B. 'L 1,2 L 3,4' anstatt 'L " +"1,2 3,4')" -#: ../src/ui/dialog/inkscape-preferences.cpp:1315 -msgid "" -"After applying, remove the object used as the clipping path or mask from the " -"drawing" -msgstr "" -"Entferne das Objekt von der Zeichnung, welches als Ausschneidepfad oder " -"Maskierung verwendet wird, nach dem Anwenden" +#: ../src/ui/dialog/inkscape-preferences.cpp:892 +msgid "Numbers" +msgstr "Zahlen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1317 -msgid "Before applying" -msgstr "Vor dem Anwenden:" +#: ../src/ui/dialog/inkscape-preferences.cpp:895 +msgid "_Numeric precision:" +msgstr "Genauigkeit:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1319 -msgid "Do not group clipped/masked objects" -msgstr "Kein Gruppieren ausgeschnittener/maskierter Objekte" +#: ../src/ui/dialog/inkscape-preferences.cpp:895 +msgid "Significant figures of the values written to the SVG file" +msgstr "MaĂźgebliche Zahlen der Werte, die in die SVG-Datei geschrieben werden" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 -msgid "Put every clipped/masked object in its own group" -msgstr "" -"Jedes ausgeschnittene/maskierte Objekt in seiner eigenen Gruppe anlegen" +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "Minimum _exponent:" +msgstr "Minimal _Exponent:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 -msgid "Put all clipped/masked objects into one group" +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "" +"The smallest number written to SVG is 10 to the power of this exponent; " +"anything smaller is written as zero" msgstr "" -"Alle ausgeschnittenen/maskierten Objekte in einer einzelne Gruppe ablegen" +"Alle Zahlen die kleiner als 10 hoch diesen Exponenten sind, werden als 0 in " +"SVG Dateien geschrieben." -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 -msgid "Apply clippath/mask to every object" -msgstr "Ausschneidungspfad/Maske auf jedes Objekt anwenden" +#. Code to add controls for attribute checking options +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:903 +msgid "Improper Attributes Actions" +msgstr "Unsachgemäße Attribut-Aktionen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 -msgid "Apply clippath/mask to groups containing single object" -msgstr "" -"Ausschneidungspfad/Maske auf Gruppen anwenden, die Einzelobjekte beinhalten" +#: ../src/ui/dialog/inkscape-preferences.cpp:905 +#: ../src/ui/dialog/inkscape-preferences.cpp:913 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 +msgid "Print warnings" +msgstr "Drucke Warnungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1330 -msgid "Apply clippath/mask to group containing all objects" +#: ../src/ui/dialog/inkscape-preferences.cpp:906 +msgid "" +"Print warning if invalid or non-useful attributes found. Database files " +"located in inkscape_data_dir/attributes." msgstr "" -"Ausschneidungspfad/Maske auf Gruppen anwenden, die alle Objekte beinhalten" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1332 -msgid "After releasing" -msgstr "Nach dem Lösen:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1334 -msgid "Ungroup automatically created groups" -msgstr "Gruppierung automatisch erstellter Gruppen aufheben" +"Gebe Warnung aus, wenn ungĂĽltige oder nicht-nĂĽtzliche Attribute gefunden " +"werden. Datenbank-Dateien liegen in inkscape_data_dir/Attribute." -#: ../src/ui/dialog/inkscape-preferences.cpp:1336 -msgid "Ungroup groups created when setting clip/mask" -msgstr "Gruppierung aufheben beim Setzen der Ausschneidung/Maske" +#: ../src/ui/dialog/inkscape-preferences.cpp:907 +msgid "Remove attributes" +msgstr "Attribute löschen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1338 -msgid "Clippaths and masks" -msgstr "Ausschneidepfade und Maskierungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +msgid "Delete invalid or non-useful attributes from element tag" +msgstr "Löscht ungĂĽltige oder nicht-nĂĽtzliche Attribute vom Element Tag" -#: ../src/ui/dialog/inkscape-preferences.cpp:1341 -msgid "Stroke Style Markers" -msgstr "Strich-Stilmarkierungen" +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:911 +msgid "Inappropriate Style Properties Actions" +msgstr "Unangemessene Stileigenschaften-Aktionen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1343 -#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +#: ../src/ui/dialog/inkscape-preferences.cpp:914 msgid "" -"Stroke color same as object, fill color either object fill color or marker " -"fill color" +"Print warning if inappropriate style properties found (i.e. 'font-family' " +"set on a ). Database files located in inkscape_data_dir/attributes." msgstr "" -"Konturfarbe wie Objekt, FĂĽllfarbe entweder Objekt-FĂĽllfarbe oder Marker-" -"FĂĽllfarbe" +"Gebe Warnung aus, wenn ungeeignete Stil-Eigenschaften gefunden werden (dh " +"'Schrift-Familie' auf einem gesetzt). Datenbank-Dateien liegen in " +"inkscape_data_dir/Attribute." -#: ../src/ui/dialog/inkscape-preferences.cpp:1349 -#: ../share/extensions/hershey.inx.h:27 -msgid "Markers" -msgstr "Markierungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:915 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 +msgid "Remove style properties" +msgstr "Stileigenschaften löschen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1352 -msgid "Document cleanup" -msgstr "Dokumentbereinigung" +#: ../src/ui/dialog/inkscape-preferences.cpp:916 +msgid "Delete inappropriate style properties" +msgstr "Unpassende Stileigenschaften löschen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1353 -#: ../src/ui/dialog/inkscape-preferences.cpp:1355 -msgid "Remove unused swatches when doing a document cleanup" +#. Add default or inherited style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:919 +msgid "Non-useful Style Properties Actions" +msgstr "Nicht-nĂĽtzliche Stileigenschafts-Aktionen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:922 +msgid "" +"Print warning if redundant style properties found (i.e. if a property has " +"the default value and a different value is not inherited or if value is the " +"same as would be inherited). Database files located in inkscape_data_dir/" +"attributes." msgstr "" +"Gibt Warnung aus, wenn redundante Stil-Eigenschaften gefunden wurden (dh, " +"wenn eine Eigenschaft den Standardwert hat und ein anderer Wert wird nicht " +"vererbt wird oder wenn ein Wert der gleiche ist, wenn er vererbt wĂĽrde). " +"Datenbank-Dateien liegen in inkscape_data_dir/Attribute." -#. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 -msgid "Cleanup" -msgstr "Bereinigen" +#: ../src/ui/dialog/inkscape-preferences.cpp:924 +msgid "Delete redundant style properties" +msgstr "Redundante Stileigenschaften löschen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 -msgid "Number of _Threads:" -msgstr "Anzahl der Threads:" +#: ../src/ui/dialog/inkscape-preferences.cpp:926 +msgid "Check Attributes and Style Properties on" +msgstr "ĂśberprĂĽfen Sie Attribute und Style-Eigenschaften auf" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1896 -msgid "(requires restart)" -msgstr "(erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:928 +msgid "Reading" +msgstr "Lesen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 -msgid "Configure number of processors/threads to use when rendering filters" +#: ../src/ui/dialog/inkscape-preferences.cpp:929 +msgid "" +"Check attributes and style properties on reading in SVG files (including " +"those internal to Inkscape which will slow down startup)" msgstr "" -"Konfiguration der Anzahl an Prozessoren/Threads, die fĂĽr das Rendern genutzt " -"werden sollen." +"ĂśberprĂĽfen Sie die Attribute und Style-Eigenschaften beim Lesen von SVG-" +"Dateien (einschlieĂźlich derjenigen internen von Inkscape die den Start " +"verlangsamen)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:930 +msgid "Editing" +msgstr "Bearbeiten" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 -msgid "Rendering _cache size:" -msgstr "Rendering-Cachegröße:" +#: ../src/ui/dialog/inkscape-preferences.cpp:931 +msgid "" +"Check attributes and style properties while editing SVG files (may slow down " +"Inkscape, mostly useful for debugging)" +msgstr "" +"ĂśberprĂĽfen Sie die Attribute und Style-Eigenschaften während der Bearbeitung " +"von SVG-Dateien (kann Inkscape verlangsamen, meist nĂĽtzlich zur Fehlersuche)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 -msgctxt "mebibyte (2^20 bytes) abbreviation" -msgid "MiB" -msgstr "MiB" +#: ../src/ui/dialog/inkscape-preferences.cpp:932 +msgid "Writing" +msgstr "Schreiben" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 -msgid "" -"Set the amount of memory per document which can be used to store rendered " -"parts of the drawing for later reuse; set to zero to disable caching" +#: ../src/ui/dialog/inkscape-preferences.cpp:933 +msgid "Check attributes and style properties on writing out SVG files" msgstr "" -"Setzt die Größe des Speichers pro Dokument, die verwendet werden kann, um " -"gerenderte Teile der Zeichnung zur späteren Wiederverwendungzu sichern; auf " -"Null setzen um Cachen auszuschalten" +"ĂśberprĂĽfen Sie die Attribut- und Style-Eigenschaften beim Schreiben von SVG-" +"Dateien" -#. blur quality -#. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 -msgid "Best quality (slowest)" -msgstr "Beste Qualität (am langsamsten)" +#: ../src/ui/dialog/inkscape-preferences.cpp:935 +msgid "SVG output" +msgstr "SVG-Ausgabe" -#: ../src/ui/dialog/inkscape-preferences.cpp:1374 -#: ../src/ui/dialog/inkscape-preferences.cpp:1398 -msgid "Better quality (slower)" -msgstr "Gute Qualität (langsamer)" +#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Perceptual" +msgstr "Wahrnehmung" -#: ../src/ui/dialog/inkscape-preferences.cpp:1376 -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 -msgid "Average quality" -msgstr "Durchschnittliche Qualität" +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Relative Colorimetric" +msgstr "Relative Farbmetrik" -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 -#: ../src/ui/dialog/inkscape-preferences.cpp:1402 -msgid "Lower quality (faster)" -msgstr "Niedrigere Qualität (schneller)" +#: ../src/ui/dialog/inkscape-preferences.cpp:941 +msgid "Absolute Colorimetric" +msgstr "Absolute Farbmetrik" -#: ../src/ui/dialog/inkscape-preferences.cpp:1380 -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 -msgid "Lowest quality (fastest)" -msgstr "Niedrigste Qualität (am schnellsten)" +#: ../src/ui/dialog/inkscape-preferences.cpp:945 +msgid "(Note: Color management has been disabled in this build)" +msgstr "(Hinweis: Farbmanagement wurde in diesem Build deaktiviert)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 -msgid "Gaussian blur quality for display" -msgstr "Anzeige Qualität des GauĂźschen Weichzeichners:" +#: ../src/ui/dialog/inkscape-preferences.cpp:949 +msgid "Display adjustment" +msgstr "Anzeige Anpassungen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1385 -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 +#, c-format msgid "" -"Best quality, but display may be very slow at high zooms (bitmap export " -"always uses best quality)" +"The ICC profile to use to calibrate display output.\n" +"Searched directories:%s" msgstr "" -"Beste Qualität, aber die Anzeige kann bei hohen Zoomstufen sehr langsam sein " -"(Bitmap-Export verwendet immer diese Einstellung)" +"ICC-Profil, das zum Kalibrieren der Anzeige genutzt werden soll.\n" +"Durchsuchte Verzeichnisse:%s" -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 -#: ../src/ui/dialog/inkscape-preferences.cpp:1411 -msgid "Better quality, but slower display" -msgstr "Bessere Qualität, aber langsamere Anzeige" +#: ../src/ui/dialog/inkscape-preferences.cpp:960 +msgid "Display profile:" +msgstr "Anzeigeprofil:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1389 -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 -msgid "Average quality, acceptable display speed" -msgstr "Durchschnittliche Qualität, akzeptable Geschwindigkeit der Anzeige" +#: ../src/ui/dialog/inkscape-preferences.cpp:965 +msgid "Retrieve profile from display" +msgstr "Profil von Anzeige ermitteln" -#: ../src/ui/dialog/inkscape-preferences.cpp:1391 -#: ../src/ui/dialog/inkscape-preferences.cpp:1415 -msgid "Lower quality (some artifacts), but display is faster" -msgstr "Niedrigere Qualität (einige Artefakte), aber schnellere Anzeige" +#: ../src/ui/dialog/inkscape-preferences.cpp:968 +msgid "Retrieve profiles from those attached to displays via XICC" +msgstr "Ermittle Profil von angeschlossenen Anzeigegeräten mittels XICC." -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 -#: ../src/ui/dialog/inkscape-preferences.cpp:1417 -msgid "Lowest quality (considerable artifacts), but display is fastest" -msgstr "Niedrigste Qualität (beträchtliche Artefakte), aber schnellste Anzeige" +#: ../src/ui/dialog/inkscape-preferences.cpp:970 +msgid "Retrieve profiles from those attached to displays" +msgstr "Ermittle Profil von angeschlossenen Anzeigegeräten." -#: ../src/ui/dialog/inkscape-preferences.cpp:1407 -msgid "Filter effects quality for display" -msgstr "Effekt-Qualität fĂĽr Anzeige:" +#: ../src/ui/dialog/inkscape-preferences.cpp:975 +msgid "Display rendering intent:" +msgstr "Anzeigenversatz" -#. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1419 -#: ../src/ui/dialog/print.cpp:224 -msgid "Rendering" -msgstr "Rendern" +#: ../src/ui/dialog/inkscape-preferences.cpp:976 +msgid "The rendering intent to use to calibrate display output" +msgstr "" +"Geräte-Wiedergabe-Bedeutung wird genutzt, um die Ausgabe zu kalibrieren." -#. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1425 ../src/verbs.cpp:156 -#: ../src/widgets/calligraphy-toolbar.cpp:626 -msgid "Edit" -msgstr "Bearbeiten" +#: ../src/ui/dialog/inkscape-preferences.cpp:978 +msgid "Proofing" +msgstr "Druckprobe" -#: ../src/ui/dialog/inkscape-preferences.cpp:1426 -msgid "Automatically reload bitmaps" -msgstr "Automatisches Aktualisieren von Bildern" +#: ../src/ui/dialog/inkscape-preferences.cpp:980 +msgid "Simulate output on screen" +msgstr "Simulieren der Ausgabe auf dem Bildschirm" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 -msgid "Automatically reload linked images when file is changed on disk" -msgstr "Bilder neu laden, wenn diese auf dem Datenträger geändert wurden." +#: ../src/ui/dialog/inkscape-preferences.cpp:982 +msgid "Simulates output of target device" +msgstr "Simulieren der Ausgabe auf dem Zielgerät" -#: ../src/ui/dialog/inkscape-preferences.cpp:1430 -msgid "_Bitmap editor:" -msgstr "_Bitmap-Editor:" +#: ../src/ui/dialog/inkscape-preferences.cpp:984 +msgid "Mark out of gamut colors" +msgstr "Farben der Farbskala hervorheben" -#: ../src/ui/dialog/inkscape-preferences.cpp:1432 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 -#: ../share/extensions/print_win32_vector.inx.h:2 -msgid "Export" -msgstr "Exportieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:986 +msgid "Highlights colors that are out of gamut for the target device" +msgstr "Hebe Farben hervor die nicht im Farbbereich des Ausgabegerätes liegen." -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 -msgid "Default export _resolution:" -msgstr "Standard-Exportauflösung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:998 +msgid "Out of gamut warning color:" +msgstr "Farbbereichswarnung:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -msgid "Default bitmap resolution (in dots per inch) in the Export dialog" -msgstr "" -"Bevorzugte Auflösung der Bitmap (Punkte pro Zoll) im Exportieren-Dialog" +#: ../src/ui/dialog/inkscape-preferences.cpp:999 +msgid "Selects the color used for out of gamut warning" +msgstr "Bestimmt die Farbe die fĂĽr Farbbereichswarnungen genutzt werden soll." -#: ../src/ui/dialog/inkscape-preferences.cpp:1436 -#: ../src/ui/dialog/xml-tree.cpp:912 -msgid "Create" -msgstr "Erstellen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 +msgid "Device profile:" +msgstr "Geräteprofil:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1438 -msgid "Resolution for Create Bitmap _Copy:" -msgstr "Auflösung von Bitmap Kopien:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +msgid "The ICC profile to use to simulate device output" +msgstr "ICC-Profil fĂĽr Simulation der Geräteausgabe." -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 -msgid "Resolution used by the Create Bitmap Copy command" -msgstr "Auflösung von Bildern die mit \"Kopiere als Bitmap\" erstellt werden." +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +msgid "Device rendering intent:" +msgstr "Gerätewiedergabe-Bedeutung" -#: ../src/ui/dialog/inkscape-preferences.cpp:1442 -msgid "Ask about linking and scaling when importing" +#: ../src/ui/dialog/inkscape-preferences.cpp:1006 +msgid "The rendering intent to use to calibrate device output" msgstr "" +"Geräte-Wiedergabe-Bedeutung wird genutzt, um die Ausgabe zu kalibrieren." -#: ../src/ui/dialog/inkscape-preferences.cpp:1444 -msgid "Pop-up linking and scaling dialog when importing bitmap image." -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +msgid "Black point compensation" +msgstr "Schwarzpunktanpassung" -#: ../src/ui/dialog/inkscape-preferences.cpp:1450 -msgid "Bitmap link:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +msgid "Enables black point compensation" +msgstr "Ermöglicht Schwarzpunktkompensation" -#: ../src/ui/dialog/inkscape-preferences.cpp:1457 -msgid "Bitmap scale (image-rendering):" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +msgid "Preserve black" +msgstr "Schwarzwert beibehalten" -#: ../src/ui/dialog/inkscape-preferences.cpp:1462 -msgid "Default _import resolution:" -msgstr "Standard-Importauflösung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1019 +msgid "(LittleCMS 1.15 or later required)" +msgstr "(LittleCMS 1.15 oder neuer wird benötigt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -msgid "Default bitmap resolution (in dots per inch) for bitmap import" -msgstr "Standard-Bitmapauflösung (Punkte pro Zoll) fĂĽr Bitmap-Import" +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 +msgid "Preserve K channel in CMYK -> CMYK transforms" +msgstr "Lässt K-Kanal in CMYK -> CMYK Transformation unverändert." -#: ../src/ui/dialog/inkscape-preferences.cpp:1464 -msgid "Override file resolution" -msgstr "Datei-Auflösung ĂĽberschreiben" +# CHECK +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/widgets/sp-color-icc-selector.cpp:474 +#: ../src/widgets/sp-color-icc-selector.cpp:766 +msgid "" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1466 -msgid "Use default bitmap resolution in favor of information from file" -msgstr "" -"Verwenden Sie Standard-Bitmap-Auflösung zu Gunsten von Informationen aus der " -"Datei" +#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +msgid "Color management" +msgstr "Farb-Management" -#. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1470 -msgid "Images in Outline Mode" -msgstr "" +#. Autosave options +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +msgid "Enable autosave (requires restart)" +msgstr "Automatisches Speichern (erfordert Neustart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1471 +#: ../src/ui/dialog/inkscape-preferences.cpp:1084 msgid "" -"When active will render images while in outline mode instead of a red box " -"with an x. This is useful for manual tracing." +"Automatically save the current document(s) at a given interval, thus " +"minimizing loss in case of a crash" msgstr "" +"Speichert das Dokument in bestimmten Zeitabständen. Dadurch kann der " +"Verlust, der durch ProgrammabstĂĽrze entsteht, verringert werden." -#: ../src/ui/dialog/inkscape-preferences.cpp:1473 -msgid "Bitmaps" -msgstr "Bitmaps" +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +msgctxt "Filesystem" +msgid "Autosave _directory:" +msgstr "Ort fĂĽr automatisches Speichern:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1485 +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 msgid "" -"Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added seperately to " +"The directory where autosaves will be written. This should be an absolute " +"path (starts with / on UNIX or a drive letter such as C: on Windows). " msgstr "" -"Wählen Sie eine Datei mit vorderfinierten TastaturkĂĽrzeln. Jeder " -"benutzerdefinierte KĂĽrzel der erstellt wird, wird separat hinzugefĂĽgt zu" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1488 -msgid "Shortcut file:" -msgstr "TastenkĂĽrzel-Datei:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1491 -#: ../src/ui/dialog/template-load-tab.cpp:48 -msgid "Search:" -msgstr "Suchen:" +"Das Verzeichnis, wo automatisch gespeicherte Dokumente geschrieben werden, " +"sollte ein absoluter Pfad sein (startet mit / bei UNIX und einem " +"Laufwerksbuchstaben wir C: bei Windows)." -#: ../src/ui/dialog/inkscape-preferences.cpp:1503 -msgid "Shortcut" -msgstr "TastenkĂĽrzel" +#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +msgid "_Interval (in minutes):" +msgstr "Zeitabstand (in Minuten):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1504 -#: ../src/ui/widget/page-sizer.cpp:260 -msgid "Description" -msgstr "Beschreibung" +#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +msgid "Interval (in minutes) at which document will be autosaved" +msgstr "" +"In diesen Zeitabständen (in Minuten) wird das Dokument automatisch " +"gespeichert." -#: ../src/ui/dialog/inkscape-preferences.cpp:1559 -#: ../src/ui/dialog/pixelartdialog.cpp:296 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 -#: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:749 -msgid "Reset" -msgstr " _ZurĂĽcksetzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 +msgid "_Maximum number of autosaves:" +msgstr "Maximale Anzahl an Sicherungen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1559 +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 msgid "" -"Remove all your customized keyboard shortcuts, and revert to the shortcuts " -"in the shortcut file listed above" +"Maximum number of autosaved files; use this to limit the storage space used" msgstr "" -"Alle individuellen TastaturkĂĽrzel entfernen und zurĂĽck zu den VerknĂĽpfungen " -"in der Shortcut-Datei der oben aufgefĂĽhrten" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1563 -msgid "Import ..." -msgstr "_Importieren…" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1563 -msgid "Import custom keyboard shortcuts from a file" -msgstr "Importieren einer benutzerdefinierten TastaturkĂĽrzel-Datei" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1566 -msgid "Export ..." -msgstr "_Exportieren…" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1566 -msgid "Export custom keyboard shortcuts to a file" -msgstr "Benutzerdefinierte TastaturkĂĽrzel in eine Datei exportieren" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1576 -msgid "Keyboard Shortcuts" -msgstr "TastaturkĂĽrzel" - -#. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1739 -msgid "Misc" -msgstr "Sonstiges" +"Maximale Anzahl an Sicherungsdateien. Hiermit läßt sich der genutzte " +"Speicherplatz einschränken." -#: ../src/ui/dialog/inkscape-preferences.cpp:1858 -msgid "Set the main spell check language" -msgstr "Setzen der Hauptsprache der RechtschreibprĂĽfung" +#. When changing the interval or enabling/disabling the autosave function, +#. * update our running configuration +#. * +#. * FIXME! +#. * the inkscape_autosave_init should be called AFTER the values have been changed +#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere +#. +#. +#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. +#. ----------- +#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +msgid "Autosave" +msgstr "Automatische Sicherung" -#: ../src/ui/dialog/inkscape-preferences.cpp:1861 -msgid "Second language:" -msgstr "Zweite Sprache:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 +msgid "Open Clip Art Library _Server Name:" +msgstr "Open Clip Art Library Servername:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1862 +#: ../src/ui/dialog/inkscape-preferences.cpp:1114 msgid "" -"Set the second spell check language; checking will only stop on words " -"unknown in ALL chosen languages" +"The server name of the Open Clip Art Library webdav server; it's used by the " +"Import and Export to OCAL function" msgstr "" -"Setzen der zweiten Sprache der RechtschreibprĂĽfung; die PrĂĽfung stoppt nur " -"bei Wörtern, die in allen ausgewählten Sprachen unbekannt sind." - -#: ../src/ui/dialog/inkscape-preferences.cpp:1865 -msgid "Third language:" -msgstr "Dritte Sprache:" +"Der Servername des \"Open Clip Art Library\" Webdav Servers. Dieser wird " +"beim Im- und Export zur OCAL verwendet." -#: ../src/ui/dialog/inkscape-preferences.cpp:1866 -msgid "" -"Set the third spell check language; checking will only stop on words unknown " -"in ALL chosen languages" -msgstr "" -"Setzen der dritten Sprache der RechtschreibprĂĽfung; die PrĂĽfung stoppt nur " -"bei Wörtern, die in allen ausgewählten Sprachen unbekannt sind." +#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +msgid "Open Clip Art Library _Username:" +msgstr "Open Clip Art Library Benutzername:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1868 -msgid "Ignore words with digits" -msgstr "Ignoriere Wörter mit Zahlen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1117 +msgid "The username used to log into Open Clip Art Library" +msgstr "Der Benutzername zum einloggen in die Open Clip Art Library." -#: ../src/ui/dialog/inkscape-preferences.cpp:1870 -msgid "Ignore words containing digits, such as \"R2D2\"" -msgstr "Ignoriere Wörter mit Zahlen, wie \"R2D2\"" +#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +msgid "Open Clip Art Library _Password:" +msgstr "Open Clip Art Library Kennwort:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1872 -msgid "Ignore words in ALL CAPITALS" -msgstr "Ignoriere Wörter die GROSSGESCHRIEBEN sind" +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +msgid "The password used to log into Open Clip Art Library" +msgstr "Das Passwort zum einloggen in die Open Clip Art Library." -#: ../src/ui/dialog/inkscape-preferences.cpp:1874 -msgid "Ignore words in all capitals, such as \"IUPAC\"" -msgstr "Ignoriere Wörter die GROSSGESCHRIEBEN sind, wie \"IUPAC\"" +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +msgid "Open Clip Art" +msgstr "Login bei Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1876 -msgid "Spellcheck" -msgstr "RechtschreibprĂĽfung" +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +msgid "Behavior" +msgstr "Verhalten" -#: ../src/ui/dialog/inkscape-preferences.cpp:1896 -msgid "Latency _skew:" -msgstr "Latenz-Schrägstellung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +msgid "_Simplification threshold:" +msgstr "Schwellwert fĂĽr Vereinfachungen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1897 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "" -"Factor by which the event clock is skewed from the actual time (0.9766 on " -"some systems)" +"How strong is the Node tool's Simplify command by default. If you invoke " +"this command several times in quick succession, it will act more and more " +"aggressively; invoking it again after a pause restores the default threshold." msgstr "" -"Faktor, um den die Ereigniszeit gegenĂĽber der Systemzeit verlangsamt wird " -"(0,9766 auf manchen Systemen)" +"Vorgabeschwelle der Vereinfachung im Knotenwerkzeug. Wird diese Operation " +"mehrmals schnell hintereinander ausgefĂĽhrt, erhöht sich die Stärke; kurze " +"Pause dazwischen setzt den Schwellwert zurĂĽck." -#: ../src/ui/dialog/inkscape-preferences.cpp:1899 -msgid "Pre-render named icons" -msgstr "Symbole mit Namen im Voraus rendern" +#: ../src/ui/dialog/inkscape-preferences.cpp:1133 +msgid "Color stock markers the same color as object" +msgstr "Farbe Standard-Marker in der gleichen Farbe wie das Objekt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1901 -msgid "" -"When on, named icons will be rendered before displaying the ui. This is for " -"working around bugs in GTK+ named icon notification" +#: ../src/ui/dialog/inkscape-preferences.cpp:1134 +msgid "Color custom markers the same color as object" msgstr "" -"Benannte Icons werden gerendert, bevor die Benutzeroberfläche dargestellt " -"wird. Damit werden Fehler in der GTK+-Hinweisen zu benannten Icons umgangen." +"Färbe die benutzerdefinierten Markierungen in der gleichen Farbe wie das " +"Objekt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1909 -msgid "System info" -msgstr "System-Information" +#: ../src/ui/dialog/inkscape-preferences.cpp:1135 +#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +msgid "Update marker color when object color changes" +msgstr "Aktualisiert die Markierungsfarbe, wenn das Objekt die Farbe ändert" -#: ../src/ui/dialog/inkscape-preferences.cpp:1913 -msgid "User config: " -msgstr "Benutzerkonfiguration:" +#. Selecting options +#: ../src/ui/dialog/inkscape-preferences.cpp:1138 +msgid "Select in all layers" +msgstr "In allen Ebenen auswählen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1913 -msgid "Location of users configuration" -msgstr "Ort der Benutzerkonfiguration" +#: ../src/ui/dialog/inkscape-preferences.cpp:1139 +msgid "Select only within current layer" +msgstr "Nur innerhalb der aktuellen Ebene auswählen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1917 -msgid "User preferences: " -msgstr "Benutzereinstellungen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1140 +msgid "Select in current layer and sublayers" +msgstr "Nur innerhalb der aktuellen Ebene und Unterebenen auswählen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1917 -msgid "Location of the users preferences file" -msgstr "Ort der Benutzer-Einstellungsdatei" +#: ../src/ui/dialog/inkscape-preferences.cpp:1141 +msgid "Ignore hidden objects and layers" +msgstr "Ausgeblendete Objekte und Ebenen ignorieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:1921 -msgid "User extensions: " -msgstr "Benutzererweiterungen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +msgid "Ignore locked objects and layers" +msgstr "Gesperrte Objekte und Ebenen ignorieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:1921 -msgid "Location of the users extensions" -msgstr "Ort der Benutzer-Erweiterungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1143 +msgid "Deselect upon layer change" +msgstr "Auswahl bei Ebenenwechsel aufheben" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 -msgid "User cache: " -msgstr "Benutzer Cache:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +msgid "" +"Uncheck this to be able to keep the current objects selected when the " +"current layer changes" +msgstr "" +"Dieses abwählen um Objekte ausgewählt zu lassen, wenn die aktuelle Ebene " +"geändert wird" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 -msgid "Location of users cache" -msgstr "Ort des Benutzer-Caches" +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 +msgid "Ctrl+A, Tab, Shift+Tab" +msgstr "Strg+A, Tabulator, Umschalt+Tabulator:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 -msgid "Temporary files: " -msgstr "Temporäre Dateien:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 +msgid "Make keyboard selection commands work on objects in all layers" +msgstr "Tastaturkommandos zur Auswahl wirken auf Objekte aller Ebenen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 -msgid "Location of the temporary files used for autosave" -msgstr "Ort der temp. Dateien, die fĂĽr Auto-Speicherung verwendet werden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1152 +msgid "Make keyboard selection commands work on objects in current layer only" +msgstr "" +"Tastaturkommandos zur Auswahl wirken nur auf Objekte in der aktuellen Ebene" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 -msgid "Inkscape data: " -msgstr "Inkscapedaten:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1154 +msgid "" +"Make keyboard selection commands work on objects in current layer and all " +"its sublayers" +msgstr "" +"Tastaturkommandos zur Auswahl wirken auf Objekte in der aktuellen Ebene und " +"aller ihrer Unterebenen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 -msgid "Location of Inkscape data" -msgstr "Ort der Inkscapedaten" +#: ../src/ui/dialog/inkscape-preferences.cpp:1156 +msgid "" +"Uncheck this to be able to select objects that are hidden (either by " +"themselves or by being in a hidden layer)" +msgstr "" +"Dieses abwählen, damit ausgeblendete Objekte ausgewählt werden können (gilt " +"auch fĂĽr Objekte in ausgeblendeten Ebenen/Gruppierungen)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 -msgid "Inkscape extensions: " -msgstr "Inkscape-Erweiterungen:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +msgid "" +"Uncheck this to be able to select objects that are locked (either by " +"themselves or by being in a locked layer)" +msgstr "" +"Dieses abwählen damit gesperrte Objekte ausgewählt werden können (gilt auch " +"fĂĽr Objekte in gesperrten Ebenen/Gruppierungen)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 -msgid "Location of the Inkscape extensions" -msgstr "Ort der Inkscape-Erweiterungen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1160 +msgid "Wrap when cycling objects in z-order" +msgstr "Beim drehen von Objekten in Z-Ordnung einwickeln." -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "System data: " -msgstr "System" +#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +msgid "Alt+Scroll Wheel" +msgstr "Alt+Scroll-Rad" -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "Locations of system data" -msgstr "Ort der Systemdaten" +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 +msgid "Wrap around at start and end when cycling objects in z-order" +msgstr "" +"Beim drehen von Objekten in Z-Ordnung um den Start- und Endpunkt einwickeln." -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 -msgid "Icon theme: " -msgstr "Icon Thema:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 +msgid "Selecting" +msgstr "Auswählen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 -msgid "Locations of icon themes" -msgstr "Ort der Icon-Themen" +#. Transforms options +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/widgets/select-toolbar.cpp:577 +msgid "Scale stroke width" +msgstr "Breite der Kontur skalieren" -#: ../src/ui/dialog/inkscape-preferences.cpp:1976 -msgid "System" -msgstr "System" +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +msgid "Scale rounded corners in rectangles" +msgstr "Abgerundete Ecken in Rechtecken mitskalieren" -#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 -#: ../src/ui/dialog/input.cpp:1641 -msgid "Disabled" -msgstr "Ausgeschaltet" +#: ../src/ui/dialog/inkscape-preferences.cpp:1171 +msgid "Transform gradients" +msgstr "Farbverläufe transformieren" -#: ../src/ui/dialog/input.cpp:361 -msgctxt "Input device" -msgid "Screen" -msgstr "Screen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 +msgid "Transform patterns" +msgstr "FĂĽllmuster transformieren" -#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 -msgid "Window" -msgstr "Fenster" +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +msgid "Preserved" +msgstr "Beibehalten" -#: ../src/ui/dialog/input.cpp:618 -msgid "Test Area" -msgstr "Testgebiet" +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/widgets/select-toolbar.cpp:578 +msgid "When scaling objects, scale the stroke width by the same proportion" +msgstr "" +"Wenn Objekte skaliert werden, dann wird die Breite der Kontur ebenso " +"skaliert." -#: ../src/ui/dialog/input.cpp:619 -msgid "Axis" -msgstr "Achse" +#: ../src/ui/dialog/inkscape-preferences.cpp:1179 +#: ../src/widgets/select-toolbar.cpp:589 +msgid "When scaling rectangles, scale the radii of rounded corners" +msgstr "" +"Wenn Rechtecke skaliert werden, dann werden die Radien von abgerundeten " +"Ecken ebenso mitskaliert." -#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 -msgid "Configuration" -msgstr "Konfiguration" +#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/widgets/select-toolbar.cpp:600 +msgid "Move gradients (in fill or stroke) along with the objects" +msgstr "" +"Farbverläufe (in FĂĽllung oder Konturen) zusammen mit den Objekten " +"transformieren" -#: ../src/ui/dialog/input.cpp:709 -msgid "Hardware" -msgstr "Hardware" +#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/widgets/select-toolbar.cpp:611 +msgid "Move patterns (in fill or stroke) along with the objects" +msgstr "" +"Muster (in FĂĽllung oder Konturen) zusammen mit den Objekten transformieren" -#: ../src/ui/dialog/input.cpp:732 -msgid "Link:" -msgstr "VerknĂĽpfung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 +msgid "Store transformation" +msgstr "Transformation speichern:" -#: ../src/ui/dialog/input.cpp:758 -msgid "Axes count:" -msgstr "Achsenanzahl:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 +msgid "" +"If possible, apply transformation to objects without adding a transform= " +"attribute" +msgstr "" +"Wenn möglich, dann werden Transformationen auf Objekte angewendet, ohne ein " +"transform=-Attribut hinzuzufĂĽgen." -#: ../src/ui/dialog/input.cpp:788 -msgid "axis:" -msgstr "Achse:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +msgid "Always store transformation as a transform= attribute on objects" +msgstr "Transformationen immer als transform=-Attribute speichern." -#: ../src/ui/dialog/input.cpp:812 -msgid "Button count:" -msgstr "Anzahl Tasten:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 +msgid "Transforms" +msgstr "Transformationen" -#: ../src/ui/dialog/input.cpp:1010 -msgid "Tablet" -msgstr "Grafiktablet" +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +msgid "Mouse _wheel scrolls by:" +msgstr "Mausrad rollt um:" -#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 -msgid "pad" -msgstr "Unterlage" +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +msgid "" +"One mouse wheel notch scrolls by this distance in screen pixels " +"(horizontally with Shift)" +msgstr "" +"Eine Stufe des Maus-Rades rollt um die angegebene Distanz in Pixeln " +"(horizontal mit Umschalttaste)" -#: ../src/ui/dialog/input.cpp:1081 -msgid "_Use pressure-sensitive tablet (requires restart)" -msgstr "Druckempfindliches Grafiktablett verwenden (erfordert Neustart)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 +msgid "Ctrl+arrows" +msgstr "Strg+Pfeile" -#: ../src/ui/dialog/input.cpp:1086 -msgid "Axes" -msgstr "Achsen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +msgid "Sc_roll by:" +msgstr "Rolle um:" -#: ../src/ui/dialog/input.cpp:1087 -msgid "Keys" -msgstr "SchlĂĽssel" +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" +msgstr "Strg+Pfeiltasten rollen um diese Distanz (in Pixeln)" -#: ../src/ui/dialog/input.cpp:1170 +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +msgid "_Acceleration:" +msgstr "Beschleunigung:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 msgid "" -"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " -"or to a single (usually focused) 'Window'" +"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " +"acceleration)" msgstr "" -"Ein Gerät kann 'deaktiviert' werden. Seine Koordinaten werden auf den " -"gesamten 'Bildschirm' gemappt oder in ein einzelnes (normalerweise das " -"aktive) 'Fenster'" +"DrĂĽcken von Strg+Pfeiltaste erhöht zunehmend die Rollgeschwindigkeit (0 " +"bedeutet »keine Beschleunigung«)" -#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 -#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 -msgid "Pressure" -msgstr "Druck" +#: ../src/ui/dialog/inkscape-preferences.cpp:1203 +msgid "Autoscrolling" +msgstr "Automatisches Rollen" -#: ../src/ui/dialog/input.cpp:1616 -msgid "X tilt" -msgstr "X-Neigung" +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +msgid "_Speed:" +msgstr "Geschwindigkeit:" -#: ../src/ui/dialog/input.cpp:1616 -msgid "Y tilt" -msgstr "Y-Neigung" +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +msgid "" +"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " +"autoscroll off)" +msgstr "" +"Geschwindigkeit mit der die Arbeitsfläche verschoben wird, wenn der Zeiger " +"ihren Rand ĂĽberschreitet (0: Autorollen ist deaktiviert)" -#: ../src/ui/dialog/input.cpp:1616 -#: ../src/widgets/sp-color-wheel-selector.cpp:59 -msgid "Wheel" -msgstr "Farbrad" +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 +msgid "_Threshold:" +msgstr "Schwellwert:" -#: ../src/ui/dialog/layer-properties.cpp:55 -msgid "Layer name:" -msgstr "Ebenenname:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +msgid "" +"How far (in screen pixels) you need to be from the canvas edge to trigger " +"autoscroll; positive is outside the canvas, negative is within the canvas" +msgstr "" +"Pixelabstand des Mauszeigers zum Rand der Arbeitsfläche, bei der das " +"Autorollen aktiv ist: positive Werte liegen auĂźerhalb, negative Werte " +"innerhalb der Arbeitsfläche" -#: ../src/ui/dialog/layer-properties.cpp:136 -msgid "Add layer" -msgstr "Ebene hinzufĂĽgen" +#. +#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); +#. _page_scrolling.add_line( false, "", _scroll_space, "", +#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); +#. +#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +msgid "Mouse wheel zooms by default" +msgstr "Standardmäßig zoomt das Mausrad" -#: ../src/ui/dialog/layer-properties.cpp:176 -msgid "Above current" -msgstr "Ăśber aktueller" +#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +msgid "" +"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " +"off, it zooms with Ctrl and scrolls without Ctrl" +msgstr "" +"Wenn aktiviert kann mit dem Mausrad die Ansicht vergrößert/verkleinert " +"werden. Ist dies deaktiviert benötigt man dazu Strg+Mausrad. " -#: ../src/ui/dialog/layer-properties.cpp:180 -msgid "Below current" -msgstr "Unter aktueller" +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 +msgid "Scrolling" +msgstr "Rollen" -#: ../src/ui/dialog/layer-properties.cpp:183 -msgid "As sublayer of current" -msgstr "Als Unterebene der aktuellen" +#. Snapping options +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 +msgid "Enable snap indicator" +msgstr "Einrast-Indikator aktivieren" -#: ../src/ui/dialog/layer-properties.cpp:352 -msgid "Rename Layer" -msgstr "Ebene umbenennen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 +msgid "After snapping, a symbol is drawn at the point that has snapped" +msgstr "" +"Nach dem Einrasten wird ein Symbol an der Stelle, die einrastete, gezeichnet." -#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" -#: ../src/ui/dialog/layer-properties.cpp:354 -#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 -#: ../src/verbs.cpp:2289 -msgid "Layer" -msgstr "Ebene" +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +msgid "_Delay (in ms):" +msgstr "Verzögerung (in msec):" -#: ../src/ui/dialog/layer-properties.cpp:355 -msgid "_Rename" -msgstr "_Umbenennen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 +msgid "" +"Postpone snapping as long as the mouse is moving, and then wait an " +"additional fraction of a second. This additional delay is specified here. " +"When set to zero or to a very small number, snapping will be immediate." +msgstr "" +"UnterdrĂĽckt das Einrasten, so lange sich die Maus bewegt plus einen " +"zusätzlichen Sekundenbruchteil. Diese additive Verzögerung wird hier " +"festgelegt. Ist sie sehr klein, passiert das Einrasten sofort." -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 -msgid "Rename layer" -msgstr "Ebene umbenennen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 +msgid "Only snap the node closest to the pointer" +msgstr "Nur an dem Knoten einrasten, der dem Zeiger am nähesten ist." -#. TRANSLATORS: This means "The layer has been renamed" -#: ../src/ui/dialog/layer-properties.cpp:370 -msgid "Renamed layer" -msgstr "Ebene umbenannt" +#: ../src/ui/dialog/inkscape-preferences.cpp:1231 +msgid "" +"Only try to snap the node that is initially closest to the mouse pointer" +msgstr "" +"Nur versuchen an dem Knoten einzurasten, der dem Mauszeiger zu Beginn am " +"nächsten ist." -#: ../src/ui/dialog/layer-properties.cpp:374 -msgid "Add Layer" -msgstr "Ebene hinzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +msgid "_Weight factor:" +msgstr "Gewichtsfaktor:" -#: ../src/ui/dialog/layer-properties.cpp:380 -msgid "_Add" -msgstr "_HinzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +msgid "" +"When multiple snap solutions are found, then Inkscape can either prefer the " +"closest transformation (when set to 0), or prefer the node that was " +"initially the closest to the pointer (when set to 1)" +msgstr "" +"Wurden mehrere Einrastmöglichkeiten gefunden, kann Inkscape die näheste " +"Transformation anwenden (wenn auf 0 gesetzt) oder am Knoten, der dem " +"Mauszeiger am nähesten ist (wenn auf 1 gesetzt) einrasten." -#: ../src/ui/dialog/layer-properties.cpp:404 -msgid "New layer created." -msgstr "Neue Ebene angelegt." +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +msgid "Snap the mouse pointer when dragging a constrained knot" +msgstr "Rastet den Mauszeiger ein, wenn ein festgesetzter Knoten gezogen wird." -#: ../src/ui/dialog/layer-properties.cpp:408 -msgid "Move to Layer" -msgstr "Zur Ebene verschieben" +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +msgid "" +"When dragging a knot along a constraint line, then snap the position of the " +"mouse pointer instead of snapping the projection of the knot onto the " +"constraint line" +msgstr "" +"Wird ein Knoten entlang einer festgesetzten Linie gezogen, dann rastet der " +"Mauszeiger statt der Projektion des Knotens auf der Linie ein." -#: ../src/ui/dialog/layer-properties.cpp:411 -#: ../src/ui/dialog/transformation.cpp:114 -msgid "_Move" -msgstr "_Verschieben" +#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +msgid "Snapping" +msgstr "Einrasten" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Unhide layer" -msgstr "Ebene einblenden" +#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 +msgid "_Arrow keys move by:" +msgstr "Pfeiltasten bewegen um:" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Hide layer" -msgstr "Ebene ausblenden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1247 +msgid "" +"Pressing an arrow key moves selected object(s) or node(s) by this distance" +msgstr "" +"DrĂĽcken einer Pfeiltaste verschiebt die ausgewählten Elemente (Objekte oder " +"Knoten) um diese Entfernung (in SVG-Pixeln)" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Lock layer" -msgstr "Ebene sperren" +#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +msgid "> and < _scale by:" +msgstr "> und < skalieren um:" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Unlock layer" -msgstr "Ebene entsperren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 +msgid "Pressing > or < scales selection up or down by this increment" +msgstr "" +"DrĂĽcken von > oder < skaliert die ausgewählten Elemente um diesen Wert " +"größer oder kleiner (in SVG-Pixeln) " -#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1405 -msgid "Toggle layer solo" -msgstr "Sichbarkeit der aktuellen Ebene umschalten" +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +msgid "_Inset/Outset by:" +msgstr "Schrumpfen/Erweitern um:" -#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1429 -msgid "Lock other layers" -msgstr "Anderen Ebene sperren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +msgid "Inset and Outset commands displace the path by this distance" +msgstr "" +"Schrumpfungs- und Erweiterungsbefehle verändern den Pfad um diese Distanz " +"(in SVG-Pixeln)" -#: ../src/ui/dialog/layers.cpp:721 -msgid "Moved layer" -msgstr "Verschobene Ebene" +#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +msgid "Compass-like display of angles" +msgstr "Anzeige von Winkeln wie bei einem KompaĂź" -#: ../src/ui/dialog/layers.cpp:884 -msgctxt "Layers" -msgid "New" -msgstr "Neu" +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +msgid "" +"When on, angles are displayed with 0 at north, 0 to 360 range, positive " +"clockwise; otherwise with 0 at east, -180 to 180 range, positive " +"counterclockwise" +msgstr "" +"Aktiviert bedeutet, dass Winkel mit 0 fĂĽr Norden dargestellt werden, Bereich " +"0 bis 360, positiv im Uhrzeigersinn; anderenfalls mit 0 fĂĽr Osten, Bereich " +"-180 bis 180, positiv entgegen dem Uhrzeigersinn" -#: ../src/ui/dialog/layers.cpp:889 -msgctxt "Layers" -msgid "Bot" -msgstr "Unten" +# !!! need %s +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +msgid "_Rotation snaps every:" +msgstr "Rotation rastet ein alle:" -#: ../src/ui/dialog/layers.cpp:895 -msgctxt "Layers" -msgid "Dn" -msgstr "Runter" +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +msgid "degrees" +msgstr "Grad" -#: ../src/ui/dialog/layers.cpp:901 -msgctxt "Layers" -msgid "Up" -msgstr "Hoch" +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +msgid "" +"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " +"[ or ] rotates by this amount" +msgstr "" +"Rotation mit gedrĂĽckter Strg-Taste lässt das Objekt mit dieser Gradrastung " +"einrasten; die Tasten [ oder ] haben den gleichen Effekt" -#: ../src/ui/dialog/layers.cpp:907 -msgctxt "Layers" -msgid "Top" -msgstr "Oben" +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 +msgid "Relative snapping of guideline angles" +msgstr "Relatives Einrasten von FĂĽhrungslininen-Winkeln" -#: ../src/ui/dialog/livepatheffect-add.cpp:32 -msgid "Add Path Effect" -msgstr "Pfad-Effekt hinzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +msgid "" +"When on, the snap angles when rotating a guideline will be relative to the " +"original angle" +msgstr "" +"Wenn eingeschaltet, wird der Einrastwinkel beim Drehen einer FĂĽhrungslinie " +"relativ zum ursprĂĽnglichen Winkel" -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 -msgid "Add path effect" -msgstr "Pfad-Effekt hinzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +msgid "_Zoom in/out by:" +msgstr "Zoomfaktor vergrößern/verkleinern um:" -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 -msgid "Delete current path effect" -msgstr "Aktuellen Pfadeffekt löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +msgid "%" +msgstr "%" -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 -msgid "Raise the current path effect" -msgstr "Aktuellen Pfadeffekt vergrößern" +#: ../src/ui/dialog/inkscape-preferences.cpp:1270 +msgid "" +"Zoom tool click, +/- keys, and middle click zoom in and out by this " +"multiplier" +msgstr "" +"Mit dem Zoomwerkzeug klicken, die + oder - Taste drĂĽcken, oder die mittlere " +"Maustaste betätigen, damit sich die Zoomgröße um diesen Faktor ändert" -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 -msgid "Lower the current path effect" -msgstr "Aktuellen Pfadeffekt verringern" +#: ../src/ui/dialog/inkscape-preferences.cpp:1271 +msgid "Steps" +msgstr "Schritte" -#: ../src/ui/dialog/livepatheffect-editor.cpp:313 -msgid "Unknown effect is applied" -msgstr "Unbekannter Effekt wurde angewendet" +#. Clones options +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +msgid "Move in parallel" +msgstr "parallel verschoben" -#: ../src/ui/dialog/livepatheffect-editor.cpp:316 -msgid "Click button to add an effect" -msgstr "Schaltfläche klicken, um Effekt hinzuzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1276 +msgid "Stay unmoved" +msgstr "unbewegt bleiben" -#: ../src/ui/dialog/livepatheffect-editor.cpp:329 -msgid "Click add button to convert clone" -msgstr "Klicken Sie auf HinzufĂĽgen, um Klon zu konvertieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +msgid "Move according to transform" +msgstr "sich entsprechend des transform=-Attributs bewegen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:334 -#: ../src/ui/dialog/livepatheffect-editor.cpp:338 -#: ../src/ui/dialog/livepatheffect-editor.cpp:346 -msgid "Select a path or shape" -msgstr "Wähle einen Pfad oder Form" +#: ../src/ui/dialog/inkscape-preferences.cpp:1280 +msgid "Are unlinked" +msgstr "ihre Verbindung zum Original verlieren" -#: ../src/ui/dialog/livepatheffect-editor.cpp:342 -msgid "Only one item can be selected" -msgstr "Nur ein Element kann ausgewählt werden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1282 +msgid "Are deleted" +msgstr "ebenso gelöscht" -#: ../src/ui/dialog/livepatheffect-editor.cpp:374 -msgid "Unknown effect" -msgstr "Unbekannter Effekt wurde angewendet" +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +msgid "Moving original: clones and linked offsets" +msgstr "Verschiebe Original: Klone und verbundener Versatz" -#: ../src/ui/dialog/livepatheffect-editor.cpp:450 -msgid "Create and apply path effect" -msgstr "Pfad-Effekt erstellen und anwenden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +msgid "Clones are translated by the same vector as their original" +msgstr "Klone werden mit demselben Vektor wie das Original verschoben." -#: ../src/ui/dialog/livepatheffect-editor.cpp:485 -msgid "Create and apply Clone original path effect" -msgstr "Erstellen und Anwenden des Klon-Original-Pfadeffekts" +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 +msgid "Clones preserve their positions when their original is moved" +msgstr "" +"Klone bleiben an ihren Positionen, während das Original verschoben wird." -#: ../src/ui/dialog/livepatheffect-editor.cpp:505 -msgid "Remove path effect" -msgstr "Pfad-Effekt entfernen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 +msgid "" +"Each clone moves according to the value of its transform= attribute; for " +"example, a rotated clone will move in a different direction than its original" +msgstr "" +"Jeder Klon verschiebt sich entsprechend des Wertes seines transform=-" +"Attributs. Ein rotierter Klon wird sich zum Beispiel in eine andere Richtung " +"als das Original drehen." -#: ../src/ui/dialog/livepatheffect-editor.cpp:522 -msgid "Move path effect up" -msgstr "Pfad-Effekt nach oben verschieben" +#: ../src/ui/dialog/inkscape-preferences.cpp:1292 +msgid "Deleting original: clones" +msgstr "Lösche Original: Klone" -#: ../src/ui/dialog/livepatheffect-editor.cpp:538 -msgid "Move path effect down" -msgstr "Pfad-Effekt nach unten verschieben" +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +msgid "Orphaned clones are converted to regular objects" +msgstr "Klone ohne Original werden zu regulären Objekten umgewandelt." -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 -msgid "Activate path effect" -msgstr "Pfad-Effekt aktivieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +msgid "Orphaned clones are deleted along with their original" +msgstr "Klone werden zusammen mit ihrem Original gelöscht." -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 -msgid "Deactivate path effect" -msgstr "Pfad-Effekt deaktivieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 +msgid "Duplicating original+clones/linked offset" +msgstr "Duplizieren Original+Klone/verbundener Versatz" -#: ../src/ui/dialog/memory.cpp:96 -msgid "Heap" -msgstr "Heap" +#: ../src/ui/dialog/inkscape-preferences.cpp:1300 +msgid "Relink duplicated clones" +msgstr "Duplizierte Klone neu verbinden" -#: ../src/ui/dialog/memory.cpp:97 -msgid "In Use" -msgstr "Benutzt" +#: ../src/ui/dialog/inkscape-preferences.cpp:1302 +msgid "" +"When duplicating a selection containing both a clone and its original " +"(possibly in groups), relink the duplicated clone to the duplicated original " +"instead of the old original" +msgstr "" +"Wenn eine Auswahl kopiert wird in der Klone und dessen Originale enthalten " +"sind verbinde die kopierten Klone mit den kopierten Originalen anstatt mit " +"den alten Originalen." -#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. -#. More typical usage is to call this memory "free" rather than "slack". -#: ../src/ui/dialog/memory.cpp:100 -msgid "Slack" -msgstr "Ungenutzt; reserviert" +#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "Clones" +msgstr "Klone" -#: ../src/ui/dialog/memory.cpp:101 -msgid "Total" -msgstr "Gesamt" +#. Clip paths and masks options +#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +msgid "When applying, use the topmost selected object as clippath/mask" +msgstr "" +"Verwende das oberste ausgewählte Objekt beim Anwenden als Ausschneidepfad " +"oder Maskierung" -#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 -#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 -msgid "Unknown" -msgstr "Unbekannt" +#: ../src/ui/dialog/inkscape-preferences.cpp:1310 +msgid "" +"Uncheck this to use the bottom selected object as the clipping path or mask" +msgstr "" +"Nicht auswählen, um das unterste ausgewählte Objekt als Ausschneidepfad oder " +"Maskierung zu verwenden" -#: ../src/ui/dialog/memory.cpp:167 -msgid "Combined" -msgstr "Kombiniert" +#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +msgid "Remove clippath/mask object after applying" +msgstr "Ausschneidepfad oder Maskierungsobjekt nach dem Anwenden entfernen" -#: ../src/ui/dialog/memory.cpp:209 -msgid "Recalculate" -msgstr "Neu berechnen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +msgid "" +"After applying, remove the object used as the clipping path or mask from the " +"drawing" +msgstr "" +"Entferne das Objekt von der Zeichnung, welches als Ausschneidepfad oder " +"Maskierung verwendet wird, nach dem Anwenden" -#: ../src/ui/dialog/messages.cpp:47 -msgid "Clear log messages" -msgstr "Protokoll löschen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1315 +msgid "Before applying" +msgstr "Vor dem Anwenden:" -#: ../src/ui/dialog/messages.cpp:81 -msgid "Ready." -msgstr "Bereit." +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +msgid "Do not group clipped/masked objects" +msgstr "Kein Gruppieren ausgeschnittener/maskierter Objekte" -#: ../src/ui/dialog/messages.cpp:174 -msgid "Log capture started." -msgstr "Log-Erfassung gestartet." +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +msgid "Put every clipped/masked object in its own group" +msgstr "" +"Jedes ausgeschnittene/maskierte Objekt in seiner eigenen Gruppe anlegen" -#: ../src/ui/dialog/messages.cpp:203 -msgid "Log capture stopped." -msgstr "Log-Erfassung gestoppt." +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +msgid "Put all clipped/masked objects into one group" +msgstr "" +"Alle ausgeschnittenen/maskierten Objekte in einer einzelne Gruppe ablegen" -#: ../src/ui/dialog/new-from-template.cpp:24 -msgid "Create from template" -msgstr "Erstellen von Vorlage" +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +msgid "Apply clippath/mask to every object" +msgstr "Ausschneidungspfad/Maske auf jedes Objekt anwenden" -#: ../src/ui/dialog/new-from-template.cpp:26 -msgid "New From Template" -msgstr "Neu aus Vorlage" +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +msgid "Apply clippath/mask to groups containing single object" +msgstr "" +"Ausschneidungspfad/Maske auf Gruppen anwenden, die Einzelobjekte beinhalten" -#: ../src/ui/dialog/object-attributes.cpp:47 -msgid "Href:" -msgstr "Href:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +msgid "Apply clippath/mask to group containing all objects" +msgstr "" +"Ausschneidungspfad/Maske auf Gruppen anwenden, die alle Objekte beinhalten" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute -#. Identifies the type of the related resource with an absolute URI -#: ../src/ui/dialog/object-attributes.cpp:52 -msgid "Role:" -msgstr "Role:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 +msgid "After releasing" +msgstr "Nach dem Lösen:" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute -#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. -#: ../src/ui/dialog/object-attributes.cpp:55 -msgid "Arcrole:" -msgstr "Arcrole:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 +msgid "Ungroup automatically created groups" +msgstr "Gruppierung automatisch erstellter Gruppen aufheben" -#: ../src/ui/dialog/object-attributes.cpp:58 -#: ../share/extensions/polyhedron_3d.inx.h:47 -msgid "Show:" -msgstr "Zeige:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1334 +msgid "Ungroup groups created when setting clip/mask" +msgstr "Gruppierung aufheben beim Setzen der Ausschneidung/Maske" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute -#: ../src/ui/dialog/object-attributes.cpp:60 -msgid "Actuate:" -msgstr "Actuate:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 +msgid "Clippaths and masks" +msgstr "Ausschneidepfade und Maskierungen" -#: ../src/ui/dialog/object-attributes.cpp:65 -msgid "URL:" -msgstr "URL:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +msgid "Stroke Style Markers" +msgstr "Strich-Stilmarkierungen" -#: ../src/ui/dialog/object-attributes.cpp:70 -msgid "Image Rendering:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1341 +#: ../src/ui/dialog/inkscape-preferences.cpp:1343 +msgid "" +"Stroke color same as object, fill color either object fill color or marker " +"fill color" msgstr "" +"Konturfarbe wie Objekt, FĂĽllfarbe entweder Objekt-FĂĽllfarbe oder Marker-" +"FĂĽllfarbe" -#: ../src/ui/dialog/object-properties.cpp:58 -#: ../src/ui/dialog/object-properties.cpp:399 -#: ../src/ui/dialog/object-properties.cpp:470 -#: ../src/ui/dialog/object-properties.cpp:477 -msgid "_ID:" -msgstr "_ID: " +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +#: ../share/extensions/hershey.inx.h:27 +msgid "Markers" +msgstr "Markierungen" -#: ../src/ui/dialog/object-properties.cpp:60 -msgid "_Title:" -msgstr "_Titel:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +msgid "Document cleanup" +msgstr "Dokumentbereinigung" -#: ../src/ui/dialog/object-properties.cpp:61 -msgid "_Image Rendering:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1351 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +msgid "Remove unused swatches when doing a document cleanup" msgstr "" -#: ../src/ui/dialog/object-properties.cpp:62 -msgid "_Hide" -msgstr "_Ausblenden" +#. tooltip +#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +msgid "Cleanup" +msgstr "Bereinigen" -#: ../src/ui/dialog/object-properties.cpp:63 -msgid "L_ock" -msgstr "_Sperren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 +msgid "Number of _Threads:" +msgstr "Anzahl der Threads:" -#. Create the entry box for the object id -#: ../src/ui/dialog/object-properties.cpp:139 -msgid "" -"The id= attribute (only letters, digits, and the characters .-_: allowed)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 +#: ../src/ui/dialog/inkscape-preferences.cpp:1880 +msgid "(requires restart)" +msgstr "(erfordert Neustart)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +msgid "Configure number of processors/threads to use when rendering filters" msgstr "" -"Das Kennungsattribut \"id=\" (nur Buchstaben, Ziffern und die Zeichen \".-_:" -"\" zulässig)" +"Konfiguration der Anzahl an Prozessoren/Threads, die fĂĽr das Rendern genutzt " +"werden sollen." -#. Create the entry box for the object label -#: ../src/ui/dialog/object-properties.cpp:174 -msgid "A freeform label for the object" -msgstr "Freiform-Bezeichner des Objektes" +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +msgid "Rendering _cache size:" +msgstr "Rendering-Cachegröße:" -#. Create the frame for the object description -#: ../src/ui/dialog/object-properties.cpp:225 -msgid "_Description:" -msgstr "Beschreibung:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +msgctxt "mebibyte (2^20 bytes) abbreviation" +msgid "MiB" +msgstr "MiB" -#: ../src/ui/dialog/object-properties.cpp:260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 msgid "" -"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" -"\t'auto' no preference;\n" -"\t'optimizeQuality' smooth;\n" -"\t'optimizeSpeed' blocky.\n" -"Note that this behaviour is not defined in the SVG 1.1 specification and not " -"all browsers follow this interpretation." +"Set the amount of memory per document which can be used to store rendered " +"parts of the drawing for later reuse; set to zero to disable caching" msgstr "" +"Setzt die Größe des Speichers pro Dokument, die verwendet werden kann, um " +"gerenderte Teile der Zeichnung zur späteren Wiederverwendungzu sichern; auf " +"Null setzen um Cachen auszuschalten" -#. Hide -#: ../src/ui/dialog/object-properties.cpp:293 -msgid "Check to make the object invisible" -msgstr "Aktivieren macht das Objekt unsichtbar" +#. blur quality +#. filter quality +#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 +msgid "Best quality (slowest)" +msgstr "Beste Qualität (am langsamsten)" -#. Lock -#. TRANSLATORS: "Lock" is a verb here -#: ../src/ui/dialog/object-properties.cpp:309 -msgid "Check to make the object insensitive (not selectable by mouse)" -msgstr "Aktivieren macht das Objekt unempfindlich (nicht durch Maus anwählbar)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +msgid "Better quality (slower)" +msgstr "Gute Qualität (langsamer)" -#. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2632 -#: ../src/verbs.cpp:2638 -msgid "_Set" -msgstr "_Setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 +msgid "Average quality" +msgstr "Durchschnittliche Qualität" -#. Create the frame for interactivity options -#: ../src/ui/dialog/object-properties.cpp:339 -msgid "_Interactivity" -msgstr "_Interaktivität" +#: ../src/ui/dialog/inkscape-preferences.cpp:1376 +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +msgid "Lower quality (faster)" +msgstr "Niedrigere Qualität (schneller)" -#: ../src/ui/dialog/object-properties.cpp:386 -#: ../src/ui/dialog/object-properties.cpp:391 -msgid "Ref" -msgstr "Ref" +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 +msgid "Lowest quality (fastest)" +msgstr "Niedrigste Qualität (am schnellsten)" -#: ../src/ui/dialog/object-properties.cpp:472 -msgid "Id invalid! " -msgstr "ID-Kennung ungĂĽltig!" +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 +msgid "Gaussian blur quality for display" +msgstr "Anzeige Qualität des GauĂźschen Weichzeichners:" -#: ../src/ui/dialog/object-properties.cpp:474 -msgid "Id exists! " -msgstr "ID-Kennung existiert!" +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +msgid "" +"Best quality, but display may be very slow at high zooms (bitmap export " +"always uses best quality)" +msgstr "" +"Beste Qualität, aber die Anzeige kann bei hohen Zoomstufen sehr langsam sein " +"(Bitmap-Export verwendet immer diese Einstellung)" -#: ../src/ui/dialog/object-properties.cpp:480 -msgid "Set object ID" -msgstr "Objektkennung setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +msgid "Better quality, but slower display" +msgstr "Bessere Qualität, aber langsamere Anzeige" -#: ../src/ui/dialog/object-properties.cpp:494 -msgid "Set object label" -msgstr "Objektbezeichner setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 +msgid "Average quality, acceptable display speed" +msgstr "Durchschnittliche Qualität, akzeptable Geschwindigkeit der Anzeige" -#: ../src/ui/dialog/object-properties.cpp:500 -msgid "Set object title" -msgstr "Objekttitel setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1389 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +msgid "Lower quality (some artifacts), but display is faster" +msgstr "Niedrigere Qualität (einige Artefakte), aber schnellere Anzeige" -#: ../src/ui/dialog/object-properties.cpp:509 -msgid "Set object description" -msgstr "Objektbeschreibung setzen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 +#: ../src/ui/dialog/inkscape-preferences.cpp:1415 +msgid "Lowest quality (considerable artifacts), but display is fastest" +msgstr "Niedrigste Qualität (beträchtliche Artefakte), aber schnellste Anzeige" -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Lock object" -msgstr "Objekt sperren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +msgid "Filter effects quality for display" +msgstr "Effekt-Qualität fĂĽr Anzeige:" -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Unlock object" -msgstr "Objektsperrung aufheben" +#. build custom preferences tab +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/print.cpp:224 +msgid "Rendering" +msgstr "Rendern" -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Hide object" -msgstr "Objekte ausblenden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 +msgid "2x2" +msgstr "2Ă—2" -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Unhide object" -msgstr "Ausgeblendete Objekte anzeigen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 +msgid "4x4" +msgstr "4Ă—4" -#: ../src/ui/dialog/ocaldialogs.cpp:715 -msgid "Clipart found" -msgstr "Clipart gefunden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 +msgid "8x8" +msgstr "8Ă—8" -#: ../src/ui/dialog/ocaldialogs.cpp:764 -msgid "Downloading image..." -msgstr "Herunterladen des Bildes" +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 +msgid "16x16" +msgstr "16Ă—16" -#: ../src/ui/dialog/ocaldialogs.cpp:912 -msgid "Could not download image" -msgstr "Konnte Bild nicht herunterladen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1427 +msgid "Oversample bitmaps:" +msgstr "Bitmap Ăśberabtastung:" -#: ../src/ui/dialog/ocaldialogs.cpp:922 -msgid "Clipart downloaded successfully" -msgstr "Clipart erfolgreich heruntergeladen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1430 +msgid "Automatically reload bitmaps" +msgstr "Automatisches Aktualisieren von Bildern" -#: ../src/ui/dialog/ocaldialogs.cpp:936 -msgid "Could not download thumbnail file" -msgstr "Konnte Vorschaubild nicht herunterladen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +msgid "Automatically reload linked images when file is changed on disk" +msgstr "Bilder neu laden, wenn diese auf dem Datenträger geändert wurden." -#: ../src/ui/dialog/ocaldialogs.cpp:1011 -msgid "No description" -msgstr "Keine Beschreibung" +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 +msgid "_Bitmap editor:" +msgstr "_Bitmap-Editor:" -#: ../src/ui/dialog/ocaldialogs.cpp:1079 -msgid "Searching clipart..." -msgstr "Suche Clipart..." +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +msgid "Default export _resolution:" +msgstr "Standard-Exportauflösung:" -#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 -msgid "Could not connect to the Open Clip Art Library" -msgstr "Konnte nicht zu Open Clip Art Library verbinden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1437 +msgid "Default bitmap resolution (in dots per inch) in the Export dialog" +msgstr "" +"Bevorzugte Auflösung der Bitmap (Punkte pro Zoll) im Exportieren-Dialog" -#: ../src/ui/dialog/ocaldialogs.cpp:1145 -msgid "Could not parse search results" -msgstr "Konnte Suchergebnisse nicht analysieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +msgid "Resolution for Create Bitmap _Copy:" +msgstr "Auflösung von Bitmap Kopien:" -#: ../src/ui/dialog/ocaldialogs.cpp:1177 -msgid "No clipart named %1 was found." -msgstr "Kein Clipart mit Namen %1 gefunden." +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +msgid "Resolution used by the Create Bitmap Copy command" +msgstr "Auflösung von Bildern die mit \"Kopiere als Bitmap\" erstellt werden." -#: ../src/ui/dialog/ocaldialogs.cpp:1179 -msgid "" -"Please make sure all keywords are spelled correctly, or try again with " -"different keywords." -msgstr "" -"Bitte stellen Sie sicher, dass alle SchlĂĽsselwörter richtig eingegeben " -"wurden, oder versuchen Sie es mit anderen Suchbegriffen." +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +msgid "Always embed" +msgstr "Immer einbetten" -#: ../src/ui/dialog/ocaldialogs.cpp:1231 -msgid "Search" -msgstr "Suchen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +msgid "Always link" +msgstr "Immer verlinken" -#: ../src/ui/dialog/ocaldialogs.cpp:1243 -msgid "Close" -msgstr "SchlieĂźen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +msgid "Ask" +msgstr "Fragen" -#: ../src/ui/dialog/pixelartdialog.cpp:190 -msgid "_Curves (multiplier):" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +msgid "Bitmap import:" +msgstr "Bitmap-Import:" -#: ../src/ui/dialog/pixelartdialog.cpp:193 -msgid "Favors connections that are part of a long curve" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +msgid "Bitmap import quality:" +msgstr "Bitmap-Import-Qualität:" -#: ../src/ui/dialog/pixelartdialog.cpp:204 -msgid "_Islands (weight):" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +msgid "Default _import resolution:" +msgstr "Standard-Importauflösung:" -#: ../src/ui/dialog/pixelartdialog.cpp:207 -msgid "Avoid single disconnected pixels" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1452 +msgid "Default bitmap resolution (in dots per inch) for bitmap import" +msgstr "Standard-Bitmapauflösung (Punkte pro Zoll) fĂĽr Bitmap-Import" -#: ../src/ui/dialog/pixelartdialog.cpp:209 -#, fuzzy -msgid "A constant vote value" -msgstr "abhöängiger Winkel" +#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +msgid "Override file resolution" +msgstr "Datei-Auflösung ĂĽberschreiben" -#: ../src/ui/dialog/pixelartdialog.cpp:219 -msgid "Sparse pixels (window _radius):" +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +msgid "Use default bitmap resolution in favor of information from file" msgstr "" +"Verwenden Sie Standard-Bitmap-Auflösung zu Gunsten von Informationen aus der " +"Datei" -#: ../src/ui/dialog/pixelartdialog.cpp:228 -msgid "The radius of the window analyzed" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +msgid "Bitmaps" +msgstr "Bitmaps" -#: ../src/ui/dialog/pixelartdialog.cpp:229 -msgid "Sparse pixels (_multiplier):" +#: ../src/ui/dialog/inkscape-preferences.cpp:1469 +msgid "" +"Select a file of predefined shortcuts to use. Any customized shortcuts you " +"create will be added seperately to " msgstr "" +"Wählen Sie eine Datei mit vorderfinierten TastaturkĂĽrzeln. Jeder " +"benutzerdefinierte KĂĽrzel der erstellt wird, wird separat hinzugefĂĽgt zu" -#: ../src/ui/dialog/pixelartdialog.cpp:240 -msgid "Favors connections that are part of foreground color" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +msgid "Shortcut file:" +msgstr "TastenkĂĽrzel-Datei:" -#: ../src/ui/dialog/pixelartdialog.cpp:246 -msgid "The heuristic computed vote will be multiplied by this value" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 +#: ../src/ui/dialog/template-load-tab.cpp:50 +msgid "Search:" +msgstr "Suchen:" -#: ../src/ui/dialog/pixelartdialog.cpp:259 -msgid "Heuristics" -msgstr "Heuristik" +#: ../src/ui/dialog/inkscape-preferences.cpp:1487 +msgid "Shortcut" +msgstr "TastenkĂĽrzel" -#: ../src/ui/dialog/pixelartdialog.cpp:266 -#, fuzzy -msgid "_Voronoi diagram" -msgstr "Voronoi Diagramm" +#: ../src/ui/dialog/inkscape-preferences.cpp:1488 +#: ../src/ui/widget/page-sizer.cpp:260 +msgid "Description" +msgstr "Beschreibung" -#: ../src/ui/dialog/pixelartdialog.cpp:267 -msgid "Output composed of straight lines" +#: ../src/ui/dialog/inkscape-preferences.cpp:1543 +#: ../src/ui/dialog/pixelartdialog.cpp:268 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 +#: ../src/ui/dialog/tracedialog.cpp:813 +#: ../src/ui/widget/preferences-widget.cpp:749 +msgid "Reset" +msgstr " _ZurĂĽcksetzen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1543 +msgid "" +"Remove all your customized keyboard shortcuts, and revert to the shortcuts " +"in the shortcut file listed above" msgstr "" +"Alle individuellen TastaturkĂĽrzel entfernen und zurĂĽck zu den VerknĂĽpfungen " +"in der Shortcut-Datei der oben aufgefĂĽhrten" -#: ../src/ui/dialog/pixelartdialog.cpp:273 -#, fuzzy -msgid "Convert to _B-spline curves" -msgstr "Umwandeln in Blindenschrift" +#: ../src/ui/dialog/inkscape-preferences.cpp:1547 +msgid "Import ..." +msgstr "_Importieren…" -#: ../src/ui/dialog/pixelartdialog.cpp:274 -#, fuzzy -msgid "Preserve staircasing artifacts" -msgstr "Bewahren Sie ID-Namen, die starten mit:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1547 +msgid "Import custom keyboard shortcuts from a file" +msgstr "Importieren einer benutzerdefinierten TastaturkĂĽrzel-Datei" -#: ../src/ui/dialog/pixelartdialog.cpp:281 -#, fuzzy -msgid "_Smooth curves" -msgstr "Ecken glätten" +#: ../src/ui/dialog/inkscape-preferences.cpp:1550 +msgid "Export ..." +msgstr "_Exportieren…" -#: ../src/ui/dialog/pixelartdialog.cpp:282 -msgid "The Kopf-Lischinski algorithm" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1550 +msgid "Export custom keyboard shortcuts to a file" +msgstr "Benutzerdefinierte TastaturkĂĽrzel in eine Datei exportieren" -#: ../src/ui/dialog/pixelartdialog.cpp:289 -msgid "Output" -msgstr "Ausgabe" +#: ../src/ui/dialog/inkscape-preferences.cpp:1560 +msgid "Keyboard Shortcuts" +msgstr "TastaturkĂĽrzel" -#: ../src/ui/dialog/pixelartdialog.cpp:297 -#: ../src/ui/dialog/tracedialog.cpp:814 -msgid "Reset all settings to defaults" -msgstr "Alle Einstellungen auf Vorgabewerte zurĂĽcksetzen" +#. Find this group in the tree +#: ../src/ui/dialog/inkscape-preferences.cpp:1723 +msgid "Misc" +msgstr "Sonstiges" -#: ../src/ui/dialog/pixelartdialog.cpp:302 -#: ../src/ui/dialog/tracedialog.cpp:819 -msgid "Abort a trace in progress" -msgstr "Nachzeichnen abbrechen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1842 +msgid "Set the main spell check language" +msgstr "Setzen der Hauptsprache der RechtschreibprĂĽfung" -#: ../src/ui/dialog/pixelartdialog.cpp:306 -#: ../src/ui/dialog/tracedialog.cpp:823 -msgid "Execute the trace" -msgstr "Nachzeichnen ausfĂĽhren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1845 +msgid "Second language:" +msgstr "Zweite Sprache:" -#: ../src/ui/dialog/pixelartdialog.cpp:388 +#: ../src/ui/dialog/inkscape-preferences.cpp:1846 msgid "" -"Image looks too big. Process may take a while and is wise to save your " -"document before continue.\n" -"\n" -"Continue the procedure (without saving)?" +"Set the second spell check language; checking will only stop on words " +"unknown in ALL chosen languages" msgstr "" +"Setzen der zweiten Sprache der RechtschreibprĂĽfung; die PrĂĽfung stoppt nur " +"bei Wörtern, die in allen ausgewählten Sprachen unbekannt sind." -#: ../src/ui/dialog/pixelartdialog.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:1849 +msgid "Third language:" +msgstr "Dritte Sprache:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1850 msgid "" -"Image looks too big. Process may take a while and it is wise to save your " -"document before continuing.\n" -"\n" -"Continue the procedure (without saving)?" +"Set the third spell check language; checking will only stop on words unknown " +"in ALL chosen languages" msgstr "" +"Setzen der dritten Sprache der RechtschreibprĂĽfung; die PrĂĽfung stoppt nur " +"bei Wörtern, die in allen ausgewählten Sprachen unbekannt sind." -#: ../src/ui/dialog/pixelartdialog.cpp:499 -#, fuzzy -msgid "Trace pixel art" -msgstr "Pixel bei" +#: ../src/ui/dialog/inkscape-preferences.cpp:1852 +msgid "Ignore words with digits" +msgstr "Ignoriere Wörter mit Zahlen" -#: ../src/ui/dialog/polar-arrange-tab.cpp:43 -msgctxt "Polar arrange tab" -msgid "Anchor point:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1854 +msgid "Ignore words containing digits, such as \"R2D2\"" +msgstr "Ignoriere Wörter mit Zahlen, wie \"R2D2\"" -#: ../src/ui/dialog/polar-arrange-tab.cpp:47 -msgctxt "Polar arrange tab" -msgid "Object's bounding box:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1856 +msgid "Ignore words in ALL CAPITALS" +msgstr "Ignoriere Wörter die GROSSGESCHRIEBEN sind" -#: ../src/ui/dialog/polar-arrange-tab.cpp:54 -msgctxt "Polar arrange tab" -msgid "Object's rotational center" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1858 +msgid "Ignore words in all capitals, such as \"IUPAC\"" +msgstr "Ignoriere Wörter die GROSSGESCHRIEBEN sind, wie \"IUPAC\"" -#: ../src/ui/dialog/polar-arrange-tab.cpp:59 -msgctxt "Polar arrange tab" -msgid "Arrange on:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1860 +msgid "Spellcheck" +msgstr "RechtschreibprĂĽfung" -#: ../src/ui/dialog/polar-arrange-tab.cpp:63 -msgctxt "Polar arrange tab" -msgid "First selected circle/ellipse/arc" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1880 +msgid "Latency _skew:" +msgstr "Latenz-Schrägstellung:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:68 -msgctxt "Polar arrange tab" -msgid "Last selected circle/ellipse/arc" +#: ../src/ui/dialog/inkscape-preferences.cpp:1881 +msgid "" +"Factor by which the event clock is skewed from the actual time (0.9766 on " +"some systems)" msgstr "" +"Faktor, um den die Ereigniszeit gegenĂĽber der Systemzeit verlangsamt wird " +"(0,9766 auf manchen Systemen)" -#: ../src/ui/dialog/polar-arrange-tab.cpp:73 -msgctxt "Polar arrange tab" -msgid "Parameterized:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1883 +msgid "Pre-render named icons" +msgstr "Symbole mit Namen im Voraus rendern" -#: ../src/ui/dialog/polar-arrange-tab.cpp:78 -msgid "Center X/Y:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1885 +msgid "" +"When on, named icons will be rendered before displaying the ui. This is for " +"working around bugs in GTK+ named icon notification" msgstr "" +"Benannte Icons werden gerendert, bevor die Benutzeroberfläche dargestellt " +"wird. Damit werden Fehler in der GTK+-Hinweisen zu benannten Icons umgangen." -#: ../src/ui/dialog/polar-arrange-tab.cpp:91 -msgid "Radius X/Y:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1893 +msgid "System info" +msgstr "System-Information" -#: ../src/ui/dialog/polar-arrange-tab.cpp:104 -msgid "Angle X/Y:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1897 +msgid "User config: " +msgstr "Benutzerkonfiguration:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:118 -msgid "Rotate objects" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1897 +msgid "Location of users configuration" +msgstr "Ort der Benutzerkonfiguration" -#: ../src/ui/dialog/polar-arrange-tab.cpp:306 -msgid "Couldn't find an ellipse in selection" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1901 +msgid "User preferences: " +msgstr "Benutzereinstellungen:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:371 -msgid "Arrange on ellipse" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1901 +msgid "Location of the users preferences file" +msgstr "Ort der Benutzer-Einstellungsdatei" -#: ../src/ui/dialog/print.cpp:104 -msgid "Could not open temporary PNG for bitmap printing" -msgstr "Konnte temporäres PNG fĂĽr Rasterdruck nicht öffnen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1905 +msgid "User extensions: " +msgstr "Benutzererweiterungen:" -#: ../src/ui/dialog/print.cpp:147 -msgid "Could not set up Document" -msgstr "Dokument konnte nicht eingerichtet werden" +#: ../src/ui/dialog/inkscape-preferences.cpp:1905 +msgid "Location of the users extensions" +msgstr "Ort der Benutzer-Erweiterungen" -# CairoRenderContext ist Eigenname? -#: ../src/ui/dialog/print.cpp:151 -msgid "Failed to set CairoRenderContext" -msgstr "Fehler beim Setzen von CairoRenderContext" +#: ../src/ui/dialog/inkscape-preferences.cpp:1909 +msgid "User cache: " +msgstr "Benutzer Cache:" -#. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:189 -msgid "SVG Document" -msgstr "SVG Dokument" +#: ../src/ui/dialog/inkscape-preferences.cpp:1909 +msgid "Location of users cache" +msgstr "Ort des Benutzer-Caches" -#: ../src/ui/dialog/print.cpp:190 -msgid "Print" -msgstr "Drucken" +#: ../src/ui/dialog/inkscape-preferences.cpp:1917 +msgid "Temporary files: " +msgstr "Temporäre Dateien:" -#: ../src/ui/dialog/spellcheck.cpp:73 -msgid "_Accept" -msgstr "_Bestätigen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1917 +msgid "Location of the temporary files used for autosave" +msgstr "Ort der temp. Dateien, die fĂĽr Auto-Speicherung verwendet werden" -#: ../src/ui/dialog/spellcheck.cpp:74 -msgid "_Ignore once" -msgstr "Einmal _ignorieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1921 +msgid "Inkscape data: " +msgstr "Inkscapedaten:" -#: ../src/ui/dialog/spellcheck.cpp:75 -msgid "_Ignore" -msgstr "_Ignorieren" +#: ../src/ui/dialog/inkscape-preferences.cpp:1921 +msgid "Location of Inkscape data" +msgstr "Ort der Inkscapedaten" -#: ../src/ui/dialog/spellcheck.cpp:76 -msgid "A_dd" -msgstr "HinzufĂĽgen" +#: ../src/ui/dialog/inkscape-preferences.cpp:1925 +msgid "Inkscape extensions: " +msgstr "Inkscape-Erweiterungen:" -#: ../src/ui/dialog/spellcheck.cpp:78 -msgid "_Stop" -msgstr "_Stop" +#: ../src/ui/dialog/inkscape-preferences.cpp:1925 +msgid "Location of the Inkscape extensions" +msgstr "Ort der Inkscape-Erweiterungen" -#: ../src/ui/dialog/spellcheck.cpp:79 -msgid "_Start" -msgstr "_Start" +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "System data: " +msgstr "System" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Locations of system data" +msgstr "Ort der Systemdaten" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1958 +msgid "Icon theme: " +msgstr "Icon Thema:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1958 +msgid "Locations of icon themes" +msgstr "Ort der Icon-Themen" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1960 +msgid "System" +msgstr "System" + +#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 +#: ../src/ui/dialog/input.cpp:1641 +msgid "Disabled" +msgstr "Ausgeschaltet" -#: ../src/ui/dialog/spellcheck.cpp:109 -msgid "Suggestions:" -msgstr "Vorschläge:" +#: ../src/ui/dialog/input.cpp:361 +msgctxt "Input device" +msgid "Screen" +msgstr "Screen" -#: ../src/ui/dialog/spellcheck.cpp:124 -msgid "Accept the chosen suggestion" -msgstr "Akzeptiere den gewählten Vorschlag" +#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 +msgid "Window" +msgstr "Fenster" -#: ../src/ui/dialog/spellcheck.cpp:125 -msgid "Ignore this word only once" -msgstr "Ignoriere das Wort nur einmal" +#: ../src/ui/dialog/input.cpp:618 +msgid "Test Area" +msgstr "Testgebiet" -#: ../src/ui/dialog/spellcheck.cpp:126 -msgid "Ignore this word in this session" -msgstr "Ignoriere das Wort in dieser Sitzung" +#: ../src/ui/dialog/input.cpp:619 +msgid "Axis" +msgstr "Achse" -#: ../src/ui/dialog/spellcheck.cpp:127 -msgid "Add this word to the chosen dictionary" -msgstr "Dieses Wort dem gewählten Wörterbuch hinzufĂĽgen" +#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 +msgid "Configuration" +msgstr "Konfiguration" -#: ../src/ui/dialog/spellcheck.cpp:141 -msgid "Stop the check" -msgstr "ĂśberprĂĽfung stoppen" +#: ../src/ui/dialog/input.cpp:709 +msgid "Hardware" +msgstr "Hardware" -#: ../src/ui/dialog/spellcheck.cpp:142 -msgid "Start the check" -msgstr "ĂśberprĂĽfung starten" +#: ../src/ui/dialog/input.cpp:732 +msgid "Link:" +msgstr "VerknĂĽpfung:" -#: ../src/ui/dialog/spellcheck.cpp:460 -#, c-format -msgid "Finished, %d words added to dictionary" -msgstr "Beendet, %d Wörter zum Wörterbuch hinzugefĂĽgt" +#: ../src/ui/dialog/input.cpp:758 +msgid "Axes count:" +msgstr "Achsenanzahl:" -#: ../src/ui/dialog/spellcheck.cpp:462 -msgid "Finished, nothing suspicious found" -msgstr "Beendet, nichts ungewöhnliches gefunden" +#: ../src/ui/dialog/input.cpp:788 +msgid "axis:" +msgstr "Achse:" -#: ../src/ui/dialog/spellcheck.cpp:578 -#, c-format -msgid "Not in dictionary (%s): %s" -msgstr "Nicht im Wörterbuch (%s): %s" +#: ../src/ui/dialog/input.cpp:812 +msgid "Button count:" +msgstr "Anzahl Tasten:" -#: ../src/ui/dialog/spellcheck.cpp:727 -msgid "Checking..." -msgstr "ĂśberprĂĽfung..." +#: ../src/ui/dialog/input.cpp:1010 +msgid "Tablet" +msgstr "Grafiktablet" -#: ../src/ui/dialog/spellcheck.cpp:796 -msgid "Fix spelling" -msgstr "Korrigiere Rechtschreibung" +#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1931 +msgid "pad" +msgstr "Unterlage" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 -msgid "Set SVG Font attribute" -msgstr "SVG-Schrift-Attribut setzen" +#: ../src/ui/dialog/input.cpp:1081 +msgid "_Use pressure-sensitive tablet (requires restart)" +msgstr "Druckempfindliches Grafiktablett verwenden (erfordert Neustart)" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 -msgid "Adjust kerning value" -msgstr "Unterschneidung anpassen" +#: ../src/ui/dialog/input.cpp:1082 ../src/verbs.cpp:2361 +msgid "_Save" +msgstr "_Speichern" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 -msgid "Family Name:" -msgstr "Font-Familienname:" +#: ../src/ui/dialog/input.cpp:1086 +msgid "Axes" +msgstr "Achsen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 -msgid "Set width:" -msgstr "Breite setzen:" +#: ../src/ui/dialog/input.cpp:1087 +msgid "Keys" +msgstr "SchlĂĽssel" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 -msgid "glyph" -msgstr "Glyphe" +#: ../src/ui/dialog/input.cpp:1170 +msgid "" +"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " +"or to a single (usually focused) 'Window'" +msgstr "" +"Ein Gerät kann 'deaktiviert' werden. Seine Koordinaten werden auf den " +"gesamten 'Bildschirm' gemappt oder in ein einzelnes (normalerweise das " +"aktive) 'Fenster'" -#. SPGlyph* glyph = -#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 -msgid "Add glyph" -msgstr "Glyphe hinzufĂĽgen" +#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:595 +#: ../src/widgets/spray-toolbar.cpp:236 ../src/widgets/tweak-toolbar.cpp:386 +msgid "Pressure" +msgstr "Druck" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 -msgid "Select a path to define the curves of a glyph" -msgstr "Wählen Sie einen Pfad aus, der die Form der Glyphe bestimmt." +#: ../src/ui/dialog/input.cpp:1616 +msgid "X tilt" +msgstr "X-Neigung" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 -msgid "The selected object does not have a path description." -msgstr "Ausgewähltes Objekt ist kein Pfad!" +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y tilt" +msgstr "Y-Neigung" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 -msgid "No glyph selected in the SVGFonts dialog." -msgstr "Keine Glyphe gewählt im SVGFonts-Dialog" +#: ../src/ui/dialog/input.cpp:1616 +#: ../src/widgets/sp-color-wheel-selector.cpp:59 +msgid "Wheel" +msgstr "Farbrad" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 -msgid "Set glyph curves" -msgstr "Glyphenform festlegen" +#: ../src/ui/dialog/layer-properties.cpp:55 +msgid "Layer name:" +msgstr "Ebenenname:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 -msgid "Reset missing-glyph" -msgstr "\"Fehlende Glyphe\" zurĂĽcksetzen" +#: ../src/ui/dialog/layer-properties.cpp:136 +msgid "Add layer" +msgstr "Ebene hinzufĂĽgen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 -msgid "Edit glyph name" -msgstr "Name der Glyphe bearbeiten" +#: ../src/ui/dialog/layer-properties.cpp:176 +msgid "Above current" +msgstr "Ăśber aktueller" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 -msgid "Set glyph unicode" -msgstr "Unicode der Glyphe wählen" +#: ../src/ui/dialog/layer-properties.cpp:180 +msgid "Below current" +msgstr "Unter aktueller" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 -msgid "Remove font" -msgstr "Schrift entfernen" +#: ../src/ui/dialog/layer-properties.cpp:183 +msgid "As sublayer of current" +msgstr "Als Unterebene der aktuellen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 -msgid "Remove glyph" -msgstr "Glyphe entfernen" +#: ../src/ui/dialog/layer-properties.cpp:352 +msgid "Rename Layer" +msgstr "Ebene umbenennen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 -msgid "Remove kerning pair" -msgstr "Unterschneidungspaar entfernen" +#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" +#: ../src/ui/dialog/layer-properties.cpp:354 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 +#: ../src/verbs.cpp:2292 +msgid "Layer" +msgstr "Ebene" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 -msgid "Missing Glyph:" -msgstr "Fehlende Glyphe:" +#: ../src/ui/dialog/layer-properties.cpp:355 +msgid "_Rename" +msgstr "_Umbenennen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 -msgid "From selection..." -msgstr "Aus Auswahl ĂĽbernehmen" +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +msgid "Rename layer" +msgstr "Ebene umbenennen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 -msgid "Glyph name" -msgstr "Name der Glyphe" +#. TRANSLATORS: This means "The layer has been renamed" +#: ../src/ui/dialog/layer-properties.cpp:370 +msgid "Renamed layer" +msgstr "Ebene umbenannt" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 -msgid "Matching string" -msgstr "Passende Zeichenkette " +#: ../src/ui/dialog/layer-properties.cpp:374 +msgid "Add Layer" +msgstr "Ebene hinzufĂĽgen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 -msgid "Add Glyph" -msgstr "Glyphe hinzufĂĽgen" +#: ../src/ui/dialog/layer-properties.cpp:380 +msgid "_Add" +msgstr "_HinzufĂĽgen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 -msgid "Get curves from selection..." -msgstr "Kurven von der Auswahl erhalten..." +#: ../src/ui/dialog/layer-properties.cpp:404 +msgid "New layer created." +msgstr "Neue Ebene angelegt." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 -msgid "Add kerning pair" -msgstr "Unterschneidungspaar hinzufĂĽgen" +#: ../src/ui/dialog/layer-properties.cpp:408 +msgid "Move to Layer" +msgstr "Zur Ebene verschieben" -#. Kerning Setup: -#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 -msgid "Kerning Setup" -msgstr "Unterschneidungseinstellung:" +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/transformation.cpp:114 +msgid "_Move" +msgstr "_Verschieben" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 -msgid "1st Glyph:" -msgstr "1. Glyphe:" +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Unhide layer" +msgstr "Ebene einblenden" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 -msgid "2nd Glyph:" -msgstr "2. Glyphe:" +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Hide layer" +msgstr "Ebene ausblenden" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 -msgid "Add pair" -msgstr "Paarung hinzufĂĽgen" +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Lock layer" +msgstr "Ebene sperren" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 -msgid "First Unicode range" -msgstr "Erster Unicodebereich" +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Unlock layer" +msgstr "Ebene entsperren" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 -msgid "Second Unicode range" -msgstr "Zweiter Unicode-Bereich" +#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1401 +msgid "Toggle layer solo" +msgstr "Sichbarkeit der aktuellen Ebene umschalten" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 -msgid "Kerning value:" -msgstr "Unterschneidungswert:" +#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1425 +msgid "Lock other layers" +msgstr "Anderen Ebene sperren" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 -msgid "Set font family" -msgstr "Schriftfamilie setzen" +#: ../src/ui/dialog/layers.cpp:721 +msgid "Moved layer" +msgstr "Verschobene Ebene" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 -msgid "font" -msgstr "Schrift" +#: ../src/ui/dialog/layers.cpp:884 +msgctxt "Layers" +msgid "New" +msgstr "Neu" -#. select_font(font); -#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 -msgid "Add font" -msgstr "Schrift hinzufĂĽgen" +#: ../src/ui/dialog/layers.cpp:889 +msgctxt "Layers" +msgid "Bot" +msgstr "Unten" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:70 -msgid "_Font" -msgstr "Schrift" +#: ../src/ui/dialog/layers.cpp:895 +msgctxt "Layers" +msgid "Dn" +msgstr "Runter" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 -msgid "_Global Settings" -msgstr "_Globale Einstellungen" +#: ../src/ui/dialog/layers.cpp:901 +msgctxt "Layers" +msgid "Up" +msgstr "Hoch" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 -msgid "_Glyphs" -msgstr "_Glyphen" +#: ../src/ui/dialog/layers.cpp:907 +msgctxt "Layers" +msgid "Top" +msgstr "Oben" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 -msgid "_Kerning" -msgstr "_Unterschneidung" +#: ../src/ui/dialog/livepatheffect-add.cpp:32 +msgid "Add Path Effect" +msgstr "Pfad-Effekt hinzufĂĽgen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 -msgid "Sample Text" -msgstr "Beispieltext" +#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +msgid "Add path effect" +msgstr "Pfad-Effekt hinzufĂĽgen" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 -msgid "Preview Text:" -msgstr "Textvorschau:" +#: ../src/ui/dialog/livepatheffect-editor.cpp:113 +msgid "Delete current path effect" +msgstr "Aktuellen Pfadeffekt löschen" -#: ../src/ui/dialog/swatches.cpp:203 ../src/ui/tools/gradient-tool.cpp:367 -#: ../src/ui/tools/gradient-tool.cpp:465 -#: ../src/widgets/gradient-vector.cpp:814 -msgid "Add gradient stop" -msgstr "Zwischenfarbe zum Farbverlauf hinzufĂĽgen" +#: ../src/ui/dialog/livepatheffect-editor.cpp:117 +msgid "Raise the current path effect" +msgstr "Aktuellen Pfadeffekt vergrößern" -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:258 -msgid "Set fill" -msgstr "FĂĽllung festlegen" +#: ../src/ui/dialog/livepatheffect-editor.cpp:121 +msgid "Lower the current path effect" +msgstr "Aktuellen Pfadeffekt verringern" -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:266 -msgid "Set stroke" -msgstr "Kontur festlegen" +#: ../src/ui/dialog/livepatheffect-editor.cpp:289 +msgid "Unknown effect is applied" +msgstr "Unbekannter Effekt wurde angewendet" -#: ../src/ui/dialog/swatches.cpp:287 -msgid "Edit..." -msgstr "Bearbeiten…" +#: ../src/ui/dialog/livepatheffect-editor.cpp:292 +msgid "Click button to add an effect" +msgstr "Schaltfläche klicken, um Effekt hinzuzufĂĽgen" -# !!! not the best translation -#: ../src/ui/dialog/swatches.cpp:299 -msgid "Convert" -msgstr "Konvertieren" +#: ../src/ui/dialog/livepatheffect-editor.cpp:305 +msgid "Click add button to convert clone" +msgstr "Klicken Sie auf HinzufĂĽgen, um Klon zu konvertieren" -# !!! palettes, not swatches? -#: ../src/ui/dialog/swatches.cpp:543 -#, c-format -msgid "Palettes directory (%s) is unavailable." -msgstr "Palettenverzeichnis (%s) nicht auffindbar." +#: ../src/ui/dialog/livepatheffect-editor.cpp:310 +#: ../src/ui/dialog/livepatheffect-editor.cpp:314 +#: ../src/ui/dialog/livepatheffect-editor.cpp:322 +msgid "Select a path or shape" +msgstr "Wähle einen Pfad oder Form" -#. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:127 -msgid "Symbol set: " -msgstr "Symbolsatz:" +#: ../src/ui/dialog/livepatheffect-editor.cpp:318 +msgid "Only one item can be selected" +msgstr "Nur ein Element kann ausgewählt werden" -#. Fill in later -#: ../src/ui/dialog/symbols.cpp:136 ../src/ui/dialog/symbols.cpp:137 -msgid "Current Document" -msgstr "Aktuelles Dokument" +#: ../src/ui/dialog/livepatheffect-editor.cpp:350 +msgid "Unknown effect" +msgstr "Unbekannter Effekt wurde angewendet" -#: ../src/ui/dialog/symbols.cpp:204 -msgid "Add Symbol from the current document." -msgstr "Symbol vom aktuellen Dokument hinzufĂĽgen." +#: ../src/ui/dialog/livepatheffect-editor.cpp:426 +msgid "Create and apply path effect" +msgstr "Pfad-Effekt erstellen und anwenden" -#: ../src/ui/dialog/symbols.cpp:213 -msgid "Remove Symbol from the current document." -msgstr "Symbol vom aktuellen Dokument entfernen." +#: ../src/ui/dialog/livepatheffect-editor.cpp:461 +msgid "Create and apply Clone original path effect" +msgstr "Erstellen und Anwenden des Klon-Original-Pfadeffekts" -#: ../src/ui/dialog/symbols.cpp:226 -msgid "Make Icons bigger by zooming in." -msgstr "Vergrößere die Icons durch Hineinzoomen." +#: ../src/ui/dialog/livepatheffect-editor.cpp:481 +msgid "Remove path effect" +msgstr "Pfad-Effekt entfernen" -#: ../src/ui/dialog/symbols.cpp:235 -msgid "Make Icons smaller by zooming out." -msgstr "Icons verkleinern durch Herauszoomen" +#: ../src/ui/dialog/livepatheffect-editor.cpp:498 +msgid "Move path effect up" +msgstr "Pfad-Effekt nach oben verschieben" -#: ../src/ui/dialog/symbols.cpp:244 -msgid "Toggle 'fit' symbols in icon space." -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:514 +msgid "Move path effect down" +msgstr "Pfad-Effekt nach unten verschieben" -#: ../src/ui/dialog/symbols.cpp:576 -msgid "Unnamed Symbols" -msgstr "Unbenannte Symbole" +#: ../src/ui/dialog/livepatheffect-editor.cpp:553 +msgid "Activate path effect" +msgstr "Pfad-Effekt aktivieren" -#: ../src/ui/dialog/template-widget.cpp:36 -msgid "More info" -msgstr "Mehr Info" +#: ../src/ui/dialog/livepatheffect-editor.cpp:553 +msgid "Deactivate path effect" +msgstr "Pfad-Effekt deaktivieren" -#: ../src/ui/dialog/template-widget.cpp:38 -msgid "no template selected" -msgstr "Keine Vorlage gewählt" +#: ../src/ui/dialog/memory.cpp:96 +msgid "Heap" +msgstr "Heap" -#: ../src/ui/dialog/template-widget.cpp:119 -msgid "Path: " -msgstr "Verzeichnis:" +#: ../src/ui/dialog/memory.cpp:97 +msgid "In Use" +msgstr "Benutzt" -#: ../src/ui/dialog/template-widget.cpp:122 -msgid "Description: " -msgstr "Beschreibung:" +#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. +#. More typical usage is to call this memory "free" rather than "slack". +#: ../src/ui/dialog/memory.cpp:100 +msgid "Slack" +msgstr "Ungenutzt; reserviert" -#: ../src/ui/dialog/template-widget.cpp:124 -msgid "Keywords: " -msgstr "Schlagworte:" +#: ../src/ui/dialog/memory.cpp:101 +msgid "Total" +msgstr "Gesamt" -#: ../src/ui/dialog/template-widget.cpp:131 -msgid "By: " -msgstr "" +#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 +#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 +msgid "Unknown" +msgstr "Unbekannt" -#: ../src/ui/dialog/text-edit.cpp:73 -msgid "Set as _default" -msgstr "Zur Vorgabe machen" +#: ../src/ui/dialog/memory.cpp:167 +msgid "Combined" +msgstr "Kombiniert" -#: ../src/ui/dialog/text-edit.cpp:87 -msgid "AaBbCcIiPpQq12369$€¢?.;/()" -msgstr "AaBbCcIiPpQqÄäÖöÜüß012369€¢?&.;/|()„“»«" +#: ../src/ui/dialog/memory.cpp:209 +msgid "Recalculate" +msgstr "Neu berechnen" -#. Align buttons -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1342 -#: ../src/widgets/text-toolbar.cpp:1343 -msgid "Align left" -msgstr "LinksbĂĽndig ausrichten" +#: ../src/ui/dialog/messages.cpp:47 +msgid "Clear log messages" +msgstr "Protokoll löschen" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1350 -#: ../src/widgets/text-toolbar.cpp:1351 -msgid "Align center" -msgstr "Zentriert ausrichten" +#: ../src/ui/dialog/messages.cpp:81 +msgid "Ready." +msgstr "Bereit." -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 -#: ../src/widgets/text-toolbar.cpp:1359 -msgid "Align right" -msgstr "RechtsbĂĽndig ausrichten" +#: ../src/ui/dialog/messages.cpp:174 +msgid "Log capture started." +msgstr "Log-Erfassung gestartet." -#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1367 -msgid "Justify (only flowed text)" -msgstr "Ausrichten - Nur FlieĂźtext" +#: ../src/ui/dialog/messages.cpp:203 +msgid "Log capture stopped." +msgstr "Log-Erfassung gestoppt." -#. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1402 -msgid "Horizontal text" -msgstr "Horizontale Textausrichtung" +#: ../src/ui/dialog/new-from-template.cpp:24 +msgid "Create from template" +msgstr "Erstellen von Vorlage" -#: ../src/ui/dialog/text-edit.cpp:110 ../src/widgets/text-toolbar.cpp:1409 -msgid "Vertical text" -msgstr "Vertikale Textausrichtung" +#: ../src/ui/dialog/new-from-template.cpp:26 +msgid "New From Template" +msgstr "Neu aus Vorlage" -#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 -msgid "Spacing between lines (percent of font size)" -msgstr "Abstand zwischen Linien (Prozent der Schriftgröße)" +#: ../src/ui/dialog/object-attributes.cpp:47 +msgid "Href:" +msgstr "Href:" -#: ../src/ui/dialog/text-edit.cpp:147 -msgid "Text path offset" -msgstr "Text-Pfad-Versatz" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute +#. Identifies the type of the related resource with an absolute URI +#: ../src/ui/dialog/object-attributes.cpp:52 +msgid "Role:" +msgstr "Role:" -#: ../src/ui/dialog/text-edit.cpp:588 ../src/ui/dialog/text-edit.cpp:662 -#: ../src/ui/tools/text-tool.cpp:1455 -msgid "Set text style" -msgstr "Textstil setzen" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute +#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. +#: ../src/ui/dialog/object-attributes.cpp:55 +msgid "Arcrole:" +msgstr "Arcrole:" -#: ../src/ui/dialog/tile.cpp:36 -msgctxt "Arrange dialog" -msgid "Rectangular grid" -msgstr "" +#: ../src/ui/dialog/object-attributes.cpp:58 +#: ../share/extensions/polyhedron_3d.inx.h:47 +msgid "Show:" +msgstr "Zeige:" -#: ../src/ui/dialog/tile.cpp:37 -msgctxt "Arrange dialog" -msgid "Polar Coordinates" -msgstr "" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute +#: ../src/ui/dialog/object-attributes.cpp:60 +msgid "Actuate:" +msgstr "Actuate:" -#: ../src/ui/dialog/tile.cpp:40 -msgctxt "Arrange dialog" -msgid "_Arrange" -msgstr "" +#: ../src/ui/dialog/object-attributes.cpp:65 +msgid "URL:" +msgstr "URL:" -#: ../src/ui/dialog/tile.cpp:42 -msgid "Arrange selected objects" -msgstr "Gewählte Objekte anordnen" +#: ../src/ui/dialog/object-attributes.cpp:66 +#: ../src/ui/dialog/object-attributes.cpp:74 ../src/ui/dialog/tile.cpp:618 +#: ../src/widgets/desktop-widget.cpp:670 ../src/widgets/node-toolbar.cpp:593 +msgid "X:" +msgstr "X:" -#. #### begin left panel -#. ### begin notebook -#. ## begin mode page -#. # begin single scan -#. brightness -#: ../src/ui/dialog/tracedialog.cpp:508 -msgid "_Brightness cutoff" -msgstr "Helligkeit ausschalten" +#: ../src/ui/dialog/object-attributes.cpp:67 +#: ../src/ui/dialog/object-attributes.cpp:75 ../src/ui/dialog/tile.cpp:619 +#: ../src/widgets/desktop-widget.cpp:680 ../src/widgets/node-toolbar.cpp:611 +msgid "Y:" +msgstr "Y:" -#: ../src/ui/dialog/tracedialog.cpp:512 -msgid "Trace by a given brightness level" -msgstr "Abhängig vom angegebenen Helligkeitswert nachzeichnen" +#: ../src/ui/dialog/object-properties.cpp:61 +#: ../src/ui/dialog/object-properties.cpp:362 +#: ../src/ui/dialog/object-properties.cpp:419 +#: ../src/ui/dialog/object-properties.cpp:426 +msgid "_ID:" +msgstr "_ID: " -#: ../src/ui/dialog/tracedialog.cpp:519 -msgid "Brightness cutoff for black/white" -msgstr "Helligkeitsschwellwerte fĂĽr Schwarz/WeiĂź" +#: ../src/ui/dialog/object-properties.cpp:63 +msgid "_Title:" +msgstr "_Titel:" -#: ../src/ui/dialog/tracedialog.cpp:529 -msgid "Single scan: creates a path" -msgstr "Einzelner Scan: einen Pfad erzeugen" +#: ../src/ui/dialog/object-properties.cpp:64 +msgid "_Description:" +msgstr "Beschreibung:" -#. canny edge detection -#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method -#: ../src/ui/dialog/tracedialog.cpp:534 -msgid "_Edge detection" -msgstr "Kantenerkennung" +#: ../src/ui/dialog/object-properties.cpp:72 +msgid "_Hide" +msgstr "_Ausblenden" -#: ../src/ui/dialog/tracedialog.cpp:538 -msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "Mit optimaler Kantenerkennung vektorisieren (Algorithmus von J. Canny)" +#: ../src/ui/dialog/object-properties.cpp:73 +msgid "L_ock" +msgstr "_Sperren" -#: ../src/ui/dialog/tracedialog.cpp:556 -msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" -msgstr "" -"Schwellwert des Helligkeitswerts bei angrenzenden Pixeln (bestimmt " -"Kantenbreite)" +#: ../src/ui/dialog/object-properties.cpp:74 ../src/verbs.cpp:2636 +#: ../src/verbs.cpp:2642 +msgid "_Set" +msgstr "_Setzen" -#: ../src/ui/dialog/tracedialog.cpp:559 -msgid "T_hreshold:" -msgstr "Schwellwert:" +#: ../src/ui/dialog/object-properties.cpp:75 +msgid "_Interactivity" +msgstr "_Interaktivität" -#. quantization -#. TRANSLATORS: Color Quantization: the process of reducing the number -#. of colors in an image by selecting an optimized set of representative -#. colors and then re-applying this reduced set to the original image. -#: ../src/ui/dialog/tracedialog.cpp:571 -msgid "Color _quantization" -msgstr "Farbquantisierung" +#. Create the entry box for the object id +#: ../src/ui/dialog/object-properties.cpp:153 +msgid "" +"The id= attribute (only letters, digits, and the characters .-_: allowed)" +msgstr "" +"Das Kennungsattribut \"id=\" (nur Buchstaben, Ziffern und die Zeichen \".-_:" +"\" zulässig)" -#: ../src/ui/dialog/tracedialog.cpp:575 -msgid "Trace along the boundaries of reduced colors" -msgstr "Nachzeichnen entlang der reduzierten Farbbegrenzungen" +#. Create the entry box for the object label +#: ../src/ui/dialog/object-properties.cpp:186 +msgid "A freeform label for the object" +msgstr "Freiform-Bezeichner des Objektes" -#: ../src/ui/dialog/tracedialog.cpp:583 -msgid "The number of reduced colors" -msgstr "Anzahl der reduzierten Farben" +#. Hide +#: ../src/ui/dialog/object-properties.cpp:257 +msgid "Check to make the object invisible" +msgstr "Aktivieren macht das Objekt unsichtbar" -#: ../src/ui/dialog/tracedialog.cpp:586 -msgid "_Colors:" -msgstr "Farben:" +#. Lock +#. TRANSLATORS: "Lock" is a verb here +#: ../src/ui/dialog/object-properties.cpp:273 +msgid "Check to make the object insensitive (not selectable by mouse)" +msgstr "Aktivieren macht das Objekt unempfindlich (nicht durch Maus anwählbar)" -#. swap black and white -#: ../src/ui/dialog/tracedialog.cpp:594 -msgid "_Invert image" -msgstr "Bild invertieren" +#: ../src/ui/dialog/object-properties.cpp:349 +#: ../src/ui/dialog/object-properties.cpp:354 +msgid "Ref" +msgstr "Ref" -#: ../src/ui/dialog/tracedialog.cpp:599 -msgid "Invert black and white regions" -msgstr "Schwarze und weiĂźe Bereiche invertieren" +#: ../src/ui/dialog/object-properties.cpp:421 +msgid "Id invalid! " +msgstr "ID-Kennung ungĂĽltig!" -#. # end single scan -#. # begin multiple scan -#: ../src/ui/dialog/tracedialog.cpp:609 -msgid "B_rightness steps" -msgstr "Helligkeitsschritte" +#: ../src/ui/dialog/object-properties.cpp:423 +msgid "Id exists! " +msgstr "ID-Kennung existiert!" -#: ../src/ui/dialog/tracedialog.cpp:613 -msgid "Trace the given number of brightness levels" -msgstr "Angegebene Anzahl von Helligkeitsstufen nachzeichnen" +#: ../src/ui/dialog/object-properties.cpp:429 +msgid "Set object ID" +msgstr "Objektkennung setzen" -#: ../src/ui/dialog/tracedialog.cpp:621 -msgid "Sc_ans:" -msgstr "Scandurchgänge:" +#: ../src/ui/dialog/object-properties.cpp:443 +msgid "Set object label" +msgstr "Objektbezeichner setzen" -#: ../src/ui/dialog/tracedialog.cpp:625 -msgid "The desired number of scans" -msgstr "GewĂĽnschte Anzahl von Scandurchgängen" +#: ../src/ui/dialog/object-properties.cpp:449 +msgid "Set object title" +msgstr "Objekttitel setzen" -#: ../src/ui/dialog/tracedialog.cpp:630 -msgid "Co_lors" -msgstr "_Farben" +#: ../src/ui/dialog/object-properties.cpp:457 +msgid "Set object description" +msgstr "Objektbeschreibung setzen" -#: ../src/ui/dialog/tracedialog.cpp:634 -msgid "Trace the given number of reduced colors" -msgstr "Nachzeichnen auf angegebene Anzahl von Farben beschränken" +#: ../src/ui/dialog/object-properties.cpp:475 +msgid "Lock object" +msgstr "Objekt sperren" -#: ../src/ui/dialog/tracedialog.cpp:639 -msgid "_Grays" -msgstr "Graustufen" +#: ../src/ui/dialog/object-properties.cpp:475 +msgid "Unlock object" +msgstr "Objektsperrung aufheben" -#: ../src/ui/dialog/tracedialog.cpp:643 -msgid "Same as Colors, but the result is converted to grayscale" -msgstr "Wie bei »Farben«, aber Ergebnis in Graustufen konvertieren" +#: ../src/ui/dialog/object-properties.cpp:492 +msgid "Hide object" +msgstr "Objekte ausblenden" -#. TRANSLATORS: "Smooth" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:649 -msgid "S_mooth" -msgstr "Glätten" +#: ../src/ui/dialog/object-properties.cpp:492 +msgid "Unhide object" +msgstr "Ausgeblendete Objekte anzeigen" -#: ../src/ui/dialog/tracedialog.cpp:653 -msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "GauĂźschen Weichzeichner vor dem Nachzeichnen anwenden" +#: ../src/ui/dialog/ocaldialogs.cpp:713 +msgid "Clipart found" +msgstr "Clipart gefunden" -#. TRANSLATORS: "Stack" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:657 -msgid "Stac_k scans" -msgstr "Scans stapeln" +#: ../src/ui/dialog/ocaldialogs.cpp:762 +msgid "Downloading image..." +msgstr "Herunterladen des Bildes" -#: ../src/ui/dialog/tracedialog.cpp:661 -msgid "" -"Stack scans on top of one another (no gaps) instead of tiling (usually with " -"gaps)" -msgstr "" -"Scans ĂĽbereinander stapeln (ohne Zwischenräume) anstatt zu kacheln (meist " -"mit Zwischenräumen)" +#: ../src/ui/dialog/ocaldialogs.cpp:910 +msgid "Could not download image" +msgstr "Konnte Bild nicht herunterladen" -#: ../src/ui/dialog/tracedialog.cpp:665 -msgid "Remo_ve background" -msgstr "Hintergrund entfernen" +#: ../src/ui/dialog/ocaldialogs.cpp:920 +msgid "Clipart downloaded successfully" +msgstr "Clipart erfolgreich heruntergeladen" -#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan -#: ../src/ui/dialog/tracedialog.cpp:670 -msgid "Remove bottom (background) layer when done" -msgstr "Unterste Ebene (Hintergrund) nach Fertigstellung entfernen" +#: ../src/ui/dialog/ocaldialogs.cpp:934 +msgid "Could not download thumbnail file" +msgstr "Konnte Vorschaubild nicht herunterladen" -#: ../src/ui/dialog/tracedialog.cpp:675 -msgid "Multiple scans: creates a group of paths" -msgstr "Mehrfache Scans: Gruppen von Pfaden erzeugen" +#: ../src/ui/dialog/ocaldialogs.cpp:1009 +msgid "No description" +msgstr "Keine Beschreibung" -#. # end multiple scan -#. ## end mode page -#: ../src/ui/dialog/tracedialog.cpp:684 -msgid "_Mode" -msgstr "Modus" +#: ../src/ui/dialog/ocaldialogs.cpp:1077 +msgid "Searching clipart..." +msgstr "Suche Clipart..." -#. ## begin option page -#. # potrace parameters -#: ../src/ui/dialog/tracedialog.cpp:690 -msgid "Suppress _speckles" -msgstr "Flecken unterdrĂĽcken" +#: ../src/ui/dialog/ocaldialogs.cpp:1097 ../src/ui/dialog/ocaldialogs.cpp:1118 +msgid "Could not connect to the Open Clip Art Library" +msgstr "Konnte nicht zu Open Clip Art Library verbinden" -#: ../src/ui/dialog/tracedialog.cpp:692 -msgid "Ignore small spots (speckles) in the bitmap" -msgstr "Kleine Punkte (Flecken) im Bitmap unterdrĂĽcken" +#: ../src/ui/dialog/ocaldialogs.cpp:1143 +msgid "Could not parse search results" +msgstr "Konnte Suchergebnisse nicht analysieren" -#: ../src/ui/dialog/tracedialog.cpp:700 -msgid "Speckles of up to this many pixels will be suppressed" -msgstr "Flecken bis zu dieser Größe (in Pixeln) werden unterdrĂĽckt" +#: ../src/ui/dialog/ocaldialogs.cpp:1177 +msgid "No clipart named %1 was found." +msgstr "Kein Clipart mit Namen %1 gefunden." -#: ../src/ui/dialog/tracedialog.cpp:703 -msgid "S_ize:" -msgstr "Größe:" +#: ../src/ui/dialog/ocaldialogs.cpp:1179 +msgid "" +"Please make sure all keywords are spelled correctly, or try again with " +"different keywords." +msgstr "" +"Bitte stellen Sie sicher, dass alle SchlĂĽsselwörter richtig eingegeben " +"wurden, oder versuchen Sie es mit anderen Suchbegriffen." -#: ../src/ui/dialog/tracedialog.cpp:708 -msgid "Smooth _corners" -msgstr "Ecken glätten" +#: ../src/ui/dialog/ocaldialogs.cpp:1231 +msgid "Search" +msgstr "Suchen" -#: ../src/ui/dialog/tracedialog.cpp:710 -msgid "Smooth out sharp corners of the trace" -msgstr "Scharfe Ecken der Vektorisierung glätten" +#: ../src/ui/dialog/ocaldialogs.cpp:1243 +msgid "Close" +msgstr "SchlieĂźen" -#: ../src/ui/dialog/tracedialog.cpp:719 -msgid "Increase this to smooth corners more" -msgstr "Erhöhen, um Ecken zu glätten" +#: ../src/ui/dialog/pixelartdialog.cpp:162 +msgid "_Curves (multiplier)" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:726 -msgid "Optimize p_aths" -msgstr "Pfade optimieren" +#: ../src/ui/dialog/pixelartdialog.cpp:165 +msgid "Favors connections that are part of a long curve" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:729 -msgid "Try to optimize paths by joining adjacent Bezier curve segments" +#: ../src/ui/dialog/pixelartdialog.cpp:176 +msgid "_Islands (weight)" msgstr "" -"Versuchen, Pfade durch Verbinden von BĂ©zierkurvenabschnitten zu optimieren" -#: ../src/ui/dialog/tracedialog.cpp:737 -msgid "" -"Increase this to reduce the number of nodes in the trace by more aggressive " -"optimization" +#: ../src/ui/dialog/pixelartdialog.cpp:179 +msgid "Avoid single disconnected pixels" msgstr "" -"Erhöhen, um die Anzahl der Knoten in der Vektorisierung durch aggressivere " -"Optimierung zu reduzieren" -# CHECK -#: ../src/ui/dialog/tracedialog.cpp:739 -msgid "To_lerance:" -msgstr "Toleranz:" +#: ../src/ui/dialog/pixelartdialog.cpp:181 +#, fuzzy +msgid "A constant vote value" +msgstr "abhöängiger Winkel" -#. ## end option page -#: ../src/ui/dialog/tracedialog.cpp:753 -msgid "O_ptions" -msgstr "Optionen" +#: ../src/ui/dialog/pixelartdialog.cpp:191 +msgid "Sparse pixels (window _radius)" +msgstr "" -#. ### credits -#: ../src/ui/dialog/tracedialog.cpp:757 -msgid "" -"Inkscape bitmap tracing\n" -"is based on Potrace,\n" -"created by Peter Selinger\n" -"\n" -"http://potrace.sourceforge.net" +#: ../src/ui/dialog/pixelartdialog.cpp:200 +msgid "The radius of the window analyzed" msgstr "" -"Inkscapes Vektorrasterisierung\n" -"basiert auf Potrace,\n" -"entwickelt von Peter Selinger\n" -"\n" -"http://potrace.sourceforge.net" -#: ../src/ui/dialog/tracedialog.cpp:760 -msgid "Credits" -msgstr "Mitwirkende" +#: ../src/ui/dialog/pixelartdialog.cpp:201 +msgid "Sparse pixels (_multiplier)" +msgstr "" -#. #### begin right panel -#. ## SIOX -#: ../src/ui/dialog/tracedialog.cpp:774 -msgid "SIOX _foreground selection" -msgstr "Auswahl des Vordergrunds mittels SIOX" +#: ../src/ui/dialog/pixelartdialog.cpp:212 +msgid "Favors connections that are part of foreground color" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:777 -msgid "Cover the area you want to select as the foreground" +#: ../src/ui/dialog/pixelartdialog.cpp:218 +msgid "The heuristic computed vote will be multiplied by this value" msgstr "" -"Ăśbermalen Sie den Teil des Bildes, den Sie als Vordergrund auswählen möchten" -#: ../src/ui/dialog/tracedialog.cpp:782 -msgid "Live Preview" -msgstr "Live-Vorschau" +#: ../src/ui/dialog/pixelartdialog.cpp:231 +msgid "Heuristics" +msgstr "Heuristik" -#: ../src/ui/dialog/tracedialog.cpp:788 -msgid "_Update" -msgstr "Aktualisieren" +#: ../src/ui/dialog/pixelartdialog.cpp:238 +#, fuzzy +msgid "_Voronoi diagram" +msgstr "Voronoi Diagramm" -#. I guess it's correct to call the "intermediate bitmap" a preview of the trace -#: ../src/ui/dialog/tracedialog.cpp:796 -msgid "" -"Preview the intermediate bitmap with the current settings, without actual " -"tracing" +#: ../src/ui/dialog/pixelartdialog.cpp:239 +msgid "Output composed of straight lines" msgstr "" -"Vorschau der Zwischen-Bitmap mit den aktuellen Einstellungen, ohne " -"tatsächlich zu vektorisieren" -#: ../src/ui/dialog/tracedialog.cpp:800 -msgid "Preview" -msgstr "Vorschau" +#: ../src/ui/dialog/pixelartdialog.cpp:245 +#, fuzzy +msgid "Convert to _B-spline curves" +msgstr "Umwandeln in Blindenschrift" -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 -msgid "_Horizontal:" -msgstr "_Horizontal:" +#: ../src/ui/dialog/pixelartdialog.cpp:246 +#, fuzzy +msgid "Preserve staircasing artifacts" +msgstr "Bewahren Sie ID-Namen, die starten mit:" -#: ../src/ui/dialog/transformation.cpp:76 -msgid "Horizontal displacement (relative) or position (absolute)" -msgstr "Horizontale Verschiebung (relativ) oder Position (absolut)" +#: ../src/ui/dialog/pixelartdialog.cpp:253 +#, fuzzy +msgid "_Smooth curves" +msgstr "Ecken glätten" -#: ../src/ui/dialog/transformation.cpp:78 -#: ../src/ui/dialog/transformation.cpp:88 -msgid "_Vertical:" -msgstr "_Vertikal:" +#: ../src/ui/dialog/pixelartdialog.cpp:254 +msgid "The Kopf-Lischinski algorithm" +msgstr "" -#: ../src/ui/dialog/transformation.cpp:78 -msgid "Vertical displacement (relative) or position (absolute)" -msgstr "Vertikale Verschiebung (relativ) oder Position (absolut)" +#: ../src/ui/dialog/pixelartdialog.cpp:261 +msgid "Output" +msgstr "Ausgabe" -#: ../src/ui/dialog/transformation.cpp:80 -msgid "Horizontal size (absolute or percentage of current)" -msgstr "Horizontaler Vergrößerungsschritt (absolut oder prozentual)" +#: ../src/ui/dialog/pixelartdialog.cpp:269 +#: ../src/ui/dialog/tracedialog.cpp:814 +msgid "Reset all settings to defaults" +msgstr "Alle Einstellungen auf Vorgabewerte zurĂĽcksetzen" -#: ../src/ui/dialog/transformation.cpp:82 -msgid "Vertical size (absolute or percentage of current)" -msgstr "Vertikaler Vergrößerungsschritt (absolut oder prozentual)" +#: ../src/ui/dialog/pixelartdialog.cpp:274 +#: ../src/ui/dialog/tracedialog.cpp:819 +msgid "Abort a trace in progress" +msgstr "Nachzeichnen abbrechen" -#: ../src/ui/dialog/transformation.cpp:84 -msgid "A_ngle:" -msgstr "Winkel:" +#: ../src/ui/dialog/pixelartdialog.cpp:278 +#: ../src/ui/dialog/tracedialog.cpp:823 +msgid "Execute the trace" +msgstr "Nachzeichnen ausfĂĽhren" -#: ../src/ui/dialog/transformation.cpp:84 -#: ../src/ui/dialog/transformation.cpp:1104 -msgid "Rotation angle (positive = counterclockwise)" -msgstr "Drehwinkel (positiv = gegen den Uhrzeigersinn)" +#: ../src/ui/dialog/pixelartdialog.cpp:362 +#, fuzzy +msgid "Trace pixel art" +msgstr "Pixel bei" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/pixelartdialog.cpp:376 msgid "" -"Horizontal skew angle (positive = counterclockwise), or absolute " -"displacement, or percentage displacement" +"Image looks too big. Process may take a while and is wise to save your " +"document before continue.\n" +"\n" +"Continue the procedure (without saving)?" msgstr "" -"Horizontaler Scherwinkel (positiv = gegen den Uhrzeigersinn), oder absolute " -"oder prozentuale Verschiebung" -#: ../src/ui/dialog/transformation.cpp:88 -msgid "" -"Vertical skew angle (positive = counterclockwise), or absolute displacement, " -"or percentage displacement" -msgstr "" -"Vertikaler Scherwinkel (positiv = gegen den Uhrzeigersinn), oder absolute " -"oder prozentuale Verschiebung" +#: ../src/ui/dialog/print.cpp:104 +msgid "Could not open temporary PNG for bitmap printing" +msgstr "Konnte temporäres PNG fĂĽr Rasterdruck nicht öffnen" -#: ../src/ui/dialog/transformation.cpp:91 -msgid "Transformation matrix element A" -msgstr "Abbildungsmatrix, Element A" +#: ../src/ui/dialog/print.cpp:147 +msgid "Could not set up Document" +msgstr "Dokument konnte nicht eingerichtet werden" -#: ../src/ui/dialog/transformation.cpp:92 -msgid "Transformation matrix element B" -msgstr "Abbildungsmatrix, Element B" +# CairoRenderContext ist Eigenname? +#: ../src/ui/dialog/print.cpp:151 +msgid "Failed to set CairoRenderContext" +msgstr "Fehler beim Setzen von CairoRenderContext" -#: ../src/ui/dialog/transformation.cpp:93 -msgid "Transformation matrix element C" -msgstr "Abbildungsmatrix, Element C" +#. set up dialog title, based on document name +#: ../src/ui/dialog/print.cpp:189 +msgid "SVG Document" +msgstr "SVG Dokument" -#: ../src/ui/dialog/transformation.cpp:94 -msgid "Transformation matrix element D" -msgstr "Abbildungsmatrix, Element D" +#: ../src/ui/dialog/print.cpp:190 +msgid "Print" +msgstr "Drucken" -#: ../src/ui/dialog/transformation.cpp:95 -msgid "Transformation matrix element E" -msgstr "Abbildungsmatrix, Element E" +#: ../src/ui/dialog/spellcheck.cpp:73 +msgid "_Accept" +msgstr "_Bestätigen" -#: ../src/ui/dialog/transformation.cpp:96 -msgid "Transformation matrix element F" -msgstr "Abbildungsmatrix, Element F" +#: ../src/ui/dialog/spellcheck.cpp:74 +msgid "_Ignore once" +msgstr "Einmal _ignorieren" -#: ../src/ui/dialog/transformation.cpp:101 -msgid "Rela_tive move" -msgstr "_Relative Bewegung" +#: ../src/ui/dialog/spellcheck.cpp:75 +msgid "_Ignore" +msgstr "_Ignorieren" -#: ../src/ui/dialog/transformation.cpp:101 -msgid "" -"Add the specified relative displacement to the current position; otherwise, " -"edit the current absolute position directly" -msgstr "" -"Die angegebene relative Verschiebung zur aktuellen Position hinzuaddieren; " -"anderenfalls die aktuelle absolute Position direkt ändern" +#: ../src/ui/dialog/spellcheck.cpp:76 +msgid "A_dd" +msgstr "HinzufĂĽgen" -#: ../src/ui/dialog/transformation.cpp:102 -msgid "_Scale proportionally" -msgstr "Proportional skalieren" +#: ../src/ui/dialog/spellcheck.cpp:78 +msgid "_Stop" +msgstr "_Stop" -#: ../src/ui/dialog/transformation.cpp:102 -msgid "Preserve the width/height ratio of the scaled objects" -msgstr "Das Verhältnis von Höhe und Breite der skalierten Objekte beibehalten" +#: ../src/ui/dialog/spellcheck.cpp:79 +msgid "_Start" +msgstr "_Start" -#: ../src/ui/dialog/transformation.cpp:103 -msgid "Apply to each _object separately" -msgstr "Auf jedes _Objekt getrennt anwenden" +#: ../src/ui/dialog/spellcheck.cpp:109 +msgid "Suggestions:" +msgstr "Vorschläge:" -#: ../src/ui/dialog/transformation.cpp:103 -msgid "" -"Apply the scale/rotate/skew to each selected object separately; otherwise, " -"transform the selection as a whole" -msgstr "" -"Skalierung/Drehung/Scherung auf jedes ausgewählte Objekt getrennt anwenden; " -"anderenfalls auf die gesamte Auswahl anwenden" +#: ../src/ui/dialog/spellcheck.cpp:124 +msgid "Accept the chosen suggestion" +msgstr "Akzeptiere den gewählten Vorschlag" -#: ../src/ui/dialog/transformation.cpp:104 -msgid "Edit c_urrent matrix" -msgstr "_Aktuelle Matrix bearbeiten" +#: ../src/ui/dialog/spellcheck.cpp:125 +msgid "Ignore this word only once" +msgstr "Ignoriere das Wort nur einmal" -#: ../src/ui/dialog/transformation.cpp:104 -msgid "" -"Edit the current transform= matrix; otherwise, post-multiply transform= by " -"this matrix" -msgstr "" -"Die aktuelle transform=-Matrix bearbeiten; andernfalls transform= hinterher " -"mit dieser Matrix multiplizieren" +#: ../src/ui/dialog/spellcheck.cpp:126 +msgid "Ignore this word in this session" +msgstr "Ignoriere das Wort in dieser Sitzung" -#: ../src/ui/dialog/transformation.cpp:117 -msgid "_Scale" -msgstr "_MaĂźstab" +#: ../src/ui/dialog/spellcheck.cpp:127 +msgid "Add this word to the chosen dictionary" +msgstr "Dieses Wort dem gewählten Wörterbuch hinzufĂĽgen" -#: ../src/ui/dialog/transformation.cpp:120 -msgid "_Rotate" -msgstr "_Drehen" +#: ../src/ui/dialog/spellcheck.cpp:141 +msgid "Stop the check" +msgstr "ĂśberprĂĽfung stoppen" -#: ../src/ui/dialog/transformation.cpp:123 -msgid "Ske_w" -msgstr "_Scheren" +#: ../src/ui/dialog/spellcheck.cpp:142 +msgid "Start the check" +msgstr "ĂśberprĂĽfung starten" + +#: ../src/ui/dialog/spellcheck.cpp:460 +#, c-format +msgid "Finished, %d words added to dictionary" +msgstr "Beendet, %d Wörter zum Wörterbuch hinzugefĂĽgt" + +#: ../src/ui/dialog/spellcheck.cpp:462 +msgid "Finished, nothing suspicious found" +msgstr "Beendet, nichts ungewöhnliches gefunden" -#: ../src/ui/dialog/transformation.cpp:126 -msgid "Matri_x" -msgstr "Matri_x" +#: ../src/ui/dialog/spellcheck.cpp:578 +#, c-format +msgid "Not in dictionary (%s): %s" +msgstr "Nicht im Wörterbuch (%s): %s" -#: ../src/ui/dialog/transformation.cpp:150 -msgid "Reset the values on the current tab to defaults" -msgstr "Die Werte des aktuellen Reiters auf die Vorgabewerte setzen" +#: ../src/ui/dialog/spellcheck.cpp:725 +msgid "Checking..." +msgstr "ĂśberprĂĽfung..." -#: ../src/ui/dialog/transformation.cpp:157 -msgid "Apply transformation to selection" -msgstr "Transformation auf Auswahl anwenden" +#: ../src/ui/dialog/spellcheck.cpp:794 +msgid "Fix spelling" +msgstr "Korrigiere Rechtschreibung" -#: ../src/ui/dialog/transformation.cpp:332 -msgid "Rotate in a counterclockwise direction" -msgstr "Entgegen Uhrzeigersinn drehen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 +msgid "Set SVG Font attribute" +msgstr "SVG-Schrift-Attribut setzen" -#: ../src/ui/dialog/transformation.cpp:338 -msgid "Rotate in a clockwise direction" -msgstr "Drehung im Uhrzeigersinn" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 +msgid "Adjust kerning value" +msgstr "Unterschneidung anpassen" -#: ../src/ui/dialog/transformation.cpp:908 -#: ../src/ui/dialog/transformation.cpp:919 -#: ../src/ui/dialog/transformation.cpp:933 -#: ../src/ui/dialog/transformation.cpp:952 -#: ../src/ui/dialog/transformation.cpp:963 -#: ../src/ui/dialog/transformation.cpp:973 -#: ../src/ui/dialog/transformation.cpp:997 -msgid "Transform matrix is singular, not used." -msgstr "" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 +msgid "Family Name:" +msgstr "Font-Familienname:" -#: ../src/ui/dialog/transformation.cpp:1012 -msgid "Edit transformation matrix" -msgstr "Abbildungsmatrix ändern" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 +msgid "Set width:" +msgstr "Breite setzen:" -#: ../src/ui/dialog/transformation.cpp:1111 -msgid "Rotation angle (positive = clockwise)" -msgstr "Drehwinkel (positiv = im Uhrzeigersinn)" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 +msgid "glyph" +msgstr "Glyphe" -#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 -msgid "New element node" -msgstr "Neuer Elementknoten" +#. SPGlyph* glyph = +#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 +msgid "Add glyph" +msgstr "Glyphe hinzufĂĽgen" -#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 -msgid "New text node" -msgstr "Neuer Textknoten" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 +msgid "Select a path to define the curves of a glyph" +msgstr "Wählen Sie einen Pfad aus, der die Form der Glyphe bestimmt." -#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 -msgid "nodeAsInXMLdialogTooltip|Delete node" -msgstr "Knoten löschen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 +msgid "The selected object does not have a path description." +msgstr "Ausgewähltes Objekt ist kein Pfad!" -#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 -msgid "Duplicate node" -msgstr "Knoten duplizieren" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 +msgid "No glyph selected in the SVGFonts dialog." +msgstr "Keine Glyphe gewählt im SVGFonts-Dialog" -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 -msgid "Delete attribute" -msgstr "Attribut löschen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 +msgid "Set glyph curves" +msgstr "Glyphenform festlegen" -#: ../src/ui/dialog/xml-tree.cpp:87 -msgid "Set" -msgstr "Setzen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 +msgid "Reset missing-glyph" +msgstr "\"Fehlende Glyphe\" zurĂĽcksetzen" -#: ../src/ui/dialog/xml-tree.cpp:121 -msgid "Drag to reorder nodes" -msgstr "Ziehen, um die Knoten neu zu sortieren" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 +msgid "Edit glyph name" +msgstr "Name der Glyphe bearbeiten" -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1134 -msgid "Unindent node" -msgstr "EinrĂĽckung des Knotens verringern" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 +msgid "Set glyph unicode" +msgstr "Unicode der Glyphe wählen" -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1112 -msgid "Indent node" -msgstr "Knoten einrĂĽcken" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 +msgid "Remove font" +msgstr "Schrift entfernen" -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1063 -msgid "Raise node" -msgstr "Knoten anheben" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 +msgid "Remove glyph" +msgstr "Glyphe entfernen" -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1081 -msgid "Lower node" -msgstr "Knoten absenken" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 +msgid "Remove kerning pair" +msgstr "Unterschneidungspaar entfernen" -#: ../src/ui/dialog/xml-tree.cpp:208 -msgid "Attribute name" -msgstr "Attributname" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 +msgid "Missing Glyph:" +msgstr "Fehlende Glyphe:" -#: ../src/ui/dialog/xml-tree.cpp:223 -msgid "Attribute value" -msgstr "Attributwert" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 +msgid "From selection..." +msgstr "Aus Auswahl ĂĽbernehmen" -#: ../src/ui/dialog/xml-tree.cpp:311 -msgid "Click to select nodes, drag to rearrange." -msgstr "Klick wählt Knoten aus, Ziehen ordnet neu an." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 +msgid "Glyph name" +msgstr "Name der Glyphe" -#: ../src/ui/dialog/xml-tree.cpp:322 -msgid "Click attribute to edit." -msgstr "Klick auf Attribut zum Bearbeiten." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 +msgid "Matching string" +msgstr "Passende Zeichenkette " -#: ../src/ui/dialog/xml-tree.cpp:326 -#, c-format -msgid "" -"Attribute %s selected. Press Ctrl+Enter when done editing to " -"commit changes." -msgstr "" -"Attribut %s ausgewählt. Strg+Eingabe schlieĂźt ab und ĂĽbernimmt " -"Ă„nderungen." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 +msgid "Add Glyph" +msgstr "Glyphe hinzufĂĽgen" -#: ../src/ui/dialog/xml-tree.cpp:566 -msgid "Drag XML subtree" -msgstr "XML-Unterbaum ziehen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 +msgid "Get curves from selection..." +msgstr "Kurven von der Auswahl erhalten..." -#: ../src/ui/dialog/xml-tree.cpp:868 -msgid "New element node..." -msgstr "Neuer Elementknoten…" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 +msgid "Add kerning pair" +msgstr "Unterschneidungspaar hinzufĂĽgen" -#: ../src/ui/dialog/xml-tree.cpp:906 -msgid "Cancel" -msgstr "Abbrechen" +#. Kerning Setup: +#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 +msgid "Kerning Setup" +msgstr "Unterschneidungseinstellung:" -#: ../src/ui/dialog/xml-tree.cpp:943 -msgid "Create new element node" -msgstr "Neuen Elementknoten erzeugen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 +msgid "1st Glyph:" +msgstr "1. Glyphe:" -#: ../src/ui/dialog/xml-tree.cpp:959 -msgid "Create new text node" -msgstr "Neuen Textknoten erzeugen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 +msgid "2nd Glyph:" +msgstr "2. Glyphe:" -#: ../src/ui/dialog/xml-tree.cpp:994 -msgid "nodeAsInXMLinHistoryDialog|Delete node" -msgstr "Knoten löschen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 +msgid "Add pair" +msgstr "Paarung hinzufĂĽgen" -#: ../src/ui/dialog/xml-tree.cpp:1037 -msgid "Change attribute" -msgstr "Attribut ändern" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 +msgid "First Unicode range" +msgstr "Erster Unicodebereich" -#: ../src/ui/tool/curve-drag-point.cpp:100 -msgid "Drag curve" -msgstr "Kurve ziehen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 +msgid "Second Unicode range" +msgstr "Zweiter Unicode-Bereich" -#: ../src/ui/tool/curve-drag-point.cpp:157 -msgid "Add node" -msgstr "Knoten hinzufĂĽgen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 +msgid "Kerning value:" +msgstr "Unterschneidungswert:" -#: ../src/ui/tool/curve-drag-point.cpp:167 -msgctxt "Path segment tip" -msgid "Shift: click to toggle segment selection" -msgstr "Umschalt: Klick um Segment-Auswahl umzuschalten" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 +msgid "Set font family" +msgstr "Schriftfamilie setzen" -#: ../src/ui/tool/curve-drag-point.cpp:171 -msgctxt "Path segment tip" -msgid "Ctrl+Alt: click to insert a node" -msgstr "STRG+Alt: Klicken, um einen Knoten einzufĂĽgen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 +msgid "font" +msgstr "Schrift" -#: ../src/ui/tool/curve-drag-point.cpp:175 -msgctxt "Path segment tip" -msgid "" -"Linear segment: drag to convert to a Bezier segment, doubleclick to " -"insert node, click to select (more: Shift, Ctrl+Alt)" -msgstr "" -"Linear-Segment: Ziehen, um in ein Bezier-Segment zu konvertieren, " -"Doppelklick um Knoten einzufĂĽgen und Klicken zum Auswählen (mehr: Shift, STRG" -"+ALT)" +#. select_font(font); +#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 +msgid "Add font" +msgstr "Schrift hinzufĂĽgen" -#: ../src/ui/tool/curve-drag-point.cpp:179 -msgctxt "Path segment tip" -msgid "" -"Bezier segment: drag to shape the segment, doubleclick to insert " -"node, click to select (more: Shift, Ctrl+Alt)" -msgstr "" -"Bezier-Segment: Ziehen, um das Segment zu formen, Doppelklick zum " -"EinfĂĽgen eines Knotens oder Klicken zum Auswählen (mehr: Umschalt, Strg+Alt)" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:70 +msgid "_Font" +msgstr "Schrift" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 -msgid "Retract handles" -msgstr "Anfasser zurĂĽckziehen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 +msgid "_Global Settings" +msgstr "_Globale Einstellungen" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:270 -msgid "Change node type" -msgstr "Knotentyp ändern" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 +msgid "_Glyphs" +msgstr "_Glyphen" -#: ../src/ui/tool/multi-path-manipulator.cpp:323 -msgid "Straighten segments" -msgstr "Segmente begradigen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 +msgid "_Kerning" +msgstr "_Unterschneidung" -#: ../src/ui/tool/multi-path-manipulator.cpp:325 -msgid "Make segments curves" -msgstr "Die gewählten Abschnitte in Kurven umwandeln" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 +msgid "Sample Text" +msgstr "Beispieltext" -#: ../src/ui/tool/multi-path-manipulator.cpp:333 -msgid "Add nodes" -msgstr "Mehrere Knoten hinzufĂĽgen" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 +msgid "Preview Text:" +msgstr "Textvorschau:" -#: ../src/ui/tool/multi-path-manipulator.cpp:339 -msgid "Add extremum nodes" -msgstr "Extremwert-Knoten hinzufĂĽgen" +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:258 +msgid "Set fill" +msgstr "FĂĽllung festlegen" -#: ../src/ui/tool/multi-path-manipulator.cpp:346 -msgid "Duplicate nodes" -msgstr "Knoten duplizieren" +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:266 +msgid "Set stroke" +msgstr "Kontur festlegen" -#: ../src/ui/tool/multi-path-manipulator.cpp:409 -#: ../src/widgets/node-toolbar.cpp:408 -msgid "Join nodes" -msgstr "Knoten verbinden" +#: ../src/ui/dialog/swatches.cpp:287 +msgid "Edit..." +msgstr "Bearbeiten…" -#: ../src/ui/tool/multi-path-manipulator.cpp:416 -#: ../src/widgets/node-toolbar.cpp:419 -msgid "Break nodes" -msgstr "Knoten unterbrechen" +# !!! not the best translation +#: ../src/ui/dialog/swatches.cpp:299 +msgid "Convert" +msgstr "Konvertieren" -#: ../src/ui/tool/multi-path-manipulator.cpp:423 -msgid "Delete nodes" -msgstr "Knoten löschen" +# !!! palettes, not swatches? +#: ../src/ui/dialog/swatches.cpp:543 +#, c-format +msgid "Palettes directory (%s) is unavailable." +msgstr "Palettenverzeichnis (%s) nicht auffindbar." -#: ../src/ui/tool/multi-path-manipulator.cpp:757 -msgid "Move nodes" -msgstr "Knoten verschieben" +#. ******************* Symbol Sets ************************ +#: ../src/ui/dialog/symbols.cpp:128 +msgid "Symbol set: " +msgstr "Symbolsatz:" -#: ../src/ui/tool/multi-path-manipulator.cpp:760 -msgid "Move nodes horizontally" -msgstr "Knoten horizontal verschieben" +#. Fill in later +#: ../src/ui/dialog/symbols.cpp:137 ../src/ui/dialog/symbols.cpp:138 +msgid "Current Document" +msgstr "Aktuelles Dokument" -#: ../src/ui/tool/multi-path-manipulator.cpp:764 -msgid "Move nodes vertically" -msgstr "Knoten vertikal verschieben" +#: ../src/ui/dialog/symbols.cpp:205 +msgid "Add Symbol from the current document." +msgstr "Symbol vom aktuellen Dokument hinzufĂĽgen." -#: ../src/ui/tool/multi-path-manipulator.cpp:768 -#: ../src/ui/tool/multi-path-manipulator.cpp:771 -msgid "Rotate nodes" -msgstr "Knoten rotieren" +#: ../src/ui/dialog/symbols.cpp:214 +msgid "Remove Symbol from the current document." +msgstr "Symbol vom aktuellen Dokument entfernen." -#: ../src/ui/tool/multi-path-manipulator.cpp:775 -#: ../src/ui/tool/multi-path-manipulator.cpp:781 -msgid "Scale nodes uniformly" -msgstr "Knoten skalieren" +#: ../src/ui/dialog/symbols.cpp:227 +msgid "Make Icons bigger by zooming in." +msgstr "Vergrößere die Icons durch Hineinzoomen." -#: ../src/ui/tool/multi-path-manipulator.cpp:778 -msgid "Scale nodes" -msgstr "Knoten skalieren" +#: ../src/ui/dialog/symbols.cpp:236 +msgid "Make Icons smaller by zooming out." +msgstr "Icons verkleinern durch Herauszoomen" -#: ../src/ui/tool/multi-path-manipulator.cpp:785 -msgid "Scale nodes horizontally" -msgstr "Knoten horizontal skalieren" +#: ../src/ui/dialog/symbols.cpp:245 +msgid "Toggle 'fit' symbols in icon space." +msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:789 -msgid "Scale nodes vertically" -msgstr "Knoten vertikal skalieren" +#: ../src/ui/dialog/symbols.cpp:558 +msgid "Unnamed Symbols" +msgstr "Unbenannte Symbole" -#: ../src/ui/tool/multi-path-manipulator.cpp:793 -msgid "Skew nodes horizontally" -msgstr "Knoten horizontal krĂĽmmen" +#: ../src/ui/dialog/template-widget.cpp:36 +msgid "More info" +msgstr "Mehr Info" -#: ../src/ui/tool/multi-path-manipulator.cpp:797 -msgid "Skew nodes vertically" -msgstr "Knoten vertikal krĂĽmmen" +#: ../src/ui/dialog/template-widget.cpp:37 +msgid " " +msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:801 -msgid "Flip nodes horizontally" -msgstr "Knoten Horizontal umkehren" +#: ../src/ui/dialog/template-widget.cpp:38 +msgid "no template selected" +msgstr "Keine Vorlage gewählt" -#: ../src/ui/tool/multi-path-manipulator.cpp:804 -msgid "Flip nodes vertically" -msgstr "Knoten Vertikal umkehren" +#: ../src/ui/dialog/template-widget.cpp:119 +msgid "Path: " +msgstr "Verzeichnis:" -#: ../src/ui/tool/node.cpp:245 -msgid "Cusp node handle" -msgstr "Spitzer Knotenanfasser" +#: ../src/ui/dialog/template-widget.cpp:122 +msgid "Description: " +msgstr "Beschreibung:" -#: ../src/ui/tool/node.cpp:246 -msgid "Smooth node handle" -msgstr "Weicher Knotenanfasser" +#: ../src/ui/dialog/template-widget.cpp:124 +msgid "Keywords: " +msgstr "Schlagworte:" -#: ../src/ui/tool/node.cpp:247 -msgid "Symmetric node handle" -msgstr "Symmetrischer Knotenanfasser" +#: ../src/ui/dialog/template-widget.cpp:131 +msgid "By: " +msgstr "" -#: ../src/ui/tool/node.cpp:248 -msgid "Auto-smooth node handle" -msgstr "Knotenanfasser automatisch abrunden" +#: ../src/ui/dialog/text-edit.cpp:73 +msgid "Set as _default" +msgstr "Zur Vorgabe machen" -#: ../src/ui/tool/node.cpp:432 -msgctxt "Path handle tip" -msgid "more: Shift, Ctrl, Alt" -msgstr "mehr: Umschalttaste, STRG, ALT" +#: ../src/ui/dialog/text-edit.cpp:87 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "AaBbCcIiPpQqÄäÖöÜüß012369€¢?&.;/|()„“»«" -#: ../src/ui/tool/node.cpp:434 -msgctxt "Path handle tip" -msgid "more: Ctrl, Alt" -msgstr "more: STRG, ALT" +#. Align buttons +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1349 +#: ../src/widgets/text-toolbar.cpp:1350 +msgid "Align left" +msgstr "LinksbĂĽndig ausrichten" -#: ../src/ui/tool/node.cpp:440 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " -"increments while rotating both handles" -msgstr "" -"Umschalt+Strg+Alt: Länge behalten und Rotationswinkel einrasten auf %g" -"° Stufen, während dem Drehen beider Anfasser" +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1357 +#: ../src/widgets/text-toolbar.cpp:1358 +msgid "Align center" +msgstr "Zentriert ausrichten" -#: ../src/ui/tool/node.cpp:445 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" -msgstr "" -"Ctrl+Alt: Länge behalten und Rotationswinkel einrasten auf %g° Stufen" +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1365 +#: ../src/widgets/text-toolbar.cpp:1366 +msgid "Align right" +msgstr "RechtsbĂĽndig ausrichten" -#: ../src/ui/tool/node.cpp:451 -msgctxt "Path handle tip" -msgid "Shift+Alt: preserve handle length and rotate both handles" -msgstr "Umschalt:bewahrt die Anfasserlänge und dreht beide Anfasser" +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1374 +msgid "Justify (only flowed text)" +msgstr "Ausrichten - Nur FlieĂźtext" -#: ../src/ui/tool/node.cpp:454 -msgctxt "Path handle tip" -msgid "Alt: preserve handle length while dragging" -msgstr "Alt: Anfasserlänge beim Ziehen behalten" +#. Direction buttons +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1409 +msgid "Horizontal text" +msgstr "Horizontale Textausrichtung" -#: ../src/ui/tool/node.cpp:461 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " -"handles" -msgstr "" -"Umschalt: Einrasten des Rotationswinkels auf %g° Stufen und beide " -"Anfasser drehen" +#: ../src/ui/dialog/text-edit.cpp:110 ../src/widgets/text-toolbar.cpp:1416 +msgid "Vertical text" +msgstr "Vertikale Textausrichtung" -#: ../src/ui/tool/node.cpp:465 -#, c-format -msgctxt "Path handle tip" -msgid "Ctrl: snap rotation angle to %g° increments, click to retract" -msgstr "" -"Ctrl: Einrasten des Rotationswinkels auf %g° Stufen, Klicken zum " -"ZurĂĽcknehmen" +#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 +msgid "Spacing between lines (percent of font size)" +msgstr "Abstand zwischen Linien (Prozent der Schriftgröße)" -#: ../src/ui/tool/node.cpp:470 -msgctxt "Path hande tip" -msgid "Shift: rotate both handles by the same angle" -msgstr "Umschalt: Dreht beide Anfasser um den gleichen Winkel" +#: ../src/ui/dialog/text-edit.cpp:147 +msgid "Text path offset" +msgstr "Text-Pfad-Versatz" -#: ../src/ui/tool/node.cpp:477 -#, c-format -msgctxt "Path handle tip" -msgid "Auto node handle: drag to convert to smooth node (%s)" -msgstr "" -"Automatischer Knoten-Anfasser: Ziehen, um in einen weichen Knoten zu " -"konvertieren (%s)" +#: ../src/ui/dialog/tile.cpp:349 +msgid "Arrange in a grid" +msgstr "In Raster anordnen:" -#: ../src/ui/tool/node.cpp:480 -#, c-format -msgctxt "Path handle tip" -msgid "%s: drag to shape the segment (%s)" -msgstr "%s: Ziehen, um das Segment zu formen (%s)" +#: ../src/ui/dialog/tile.cpp:618 +msgid "Horizontal spacing between columns." +msgstr "Horizontale Abstände zwischen Spalten (px-Einheiten)" -#: ../src/ui/tool/node.cpp:500 -#, c-format -msgctxt "Path handle tip" -msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "Anfasser verschieben um %s, %s; Winkel %.2f°, Länge %s" +#: ../src/ui/dialog/tile.cpp:619 +msgid "Vertical spacing between rows." +msgstr "Vertikale Abstände zwischen Reihen (px-Einheiten)" -#: ../src/ui/tool/node.cpp:1270 -msgctxt "Path node tip" -msgid "Shift: drag out a handle, click to toggle selection" -msgstr "" -"Umschalt: Anfasser nach auĂźen ziehen, Klicken um Auswahl umzuschalten" +#: ../src/ui/dialog/tile.cpp:666 +msgid "_Rows:" +msgstr "_Reihen:" -#: ../src/ui/tool/node.cpp:1272 -msgctxt "Path node tip" -msgid "Shift: click to toggle selection" -msgstr "Umschalt: Klick um Auswahl umzuschalten" +#: ../src/ui/dialog/tile.cpp:675 +msgid "Number of rows" +msgstr "Anzahl der Zeilen" -#: ../src/ui/tool/node.cpp:1277 -msgctxt "Path node tip" -msgid "Ctrl+Alt: move along handle lines, click to delete node" -msgstr "" -"STRG+Alt: Entlang der Anfasser-Linien verschieben. Klicken, um Knoten " -"zu löschen" +#: ../src/ui/dialog/tile.cpp:679 +msgid "Equal _height" +msgstr "Gleiche Höhe" -#: ../src/ui/tool/node.cpp:1280 -msgctxt "Path node tip" -msgid "Ctrl: move along axes, click to change node type" +#: ../src/ui/dialog/tile.cpp:690 +msgid "If not set, each row has the height of the tallest object in it" msgstr "" -"STRG: Verschieben entlang der Achsen. Klicken, um Knotentyp zu " -"verändern" +"Wenn nicht gesetzt, dann hat jede Zeile die Höhe seines größten Objektes" -#: ../src/ui/tool/node.cpp:1284 -msgctxt "Path node tip" -msgid "Alt: sculpt nodes" -msgstr "Alt: Knoten formen" +#. #### Radio buttons to control vertical alignment #### +#. #### Radio buttons to control horizontal alignment #### +#: ../src/ui/dialog/tile.cpp:696 ../src/ui/dialog/tile.cpp:768 +msgid "Align:" +msgstr "Ausrichten:" -#: ../src/ui/tool/node.cpp:1292 -#, c-format -msgctxt "Path node tip" -msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "%s: Ziehen, um den Pfad zu formen (mehr: Umschalt, STRG, Alt)" +#. #### Number of columns #### +#: ../src/ui/dialog/tile.cpp:738 +msgid "_Columns:" +msgstr "Spalten:" -#: ../src/ui/tool/node.cpp:1295 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to toggle scale/rotation handles " -"(more: Shift, Ctrl, Alt)" -msgstr "" -"%s:Ziehen, um den Pfad zu formen, Klicken um Skalieren/Rotieren der " -"Anfasser umzuschalten (mehr: Umschalt, Strg, Alt)" +#: ../src/ui/dialog/tile.cpp:747 +msgid "Number of columns" +msgstr "Anzahl der Spalten" -#: ../src/ui/tool/node.cpp:1298 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to select only this node (more: " -"Shift, Ctrl, Alt)" -msgstr "" -"%s: Ziehen, um den Pfad zu formen, Klicken, um nur diesen Knoten " -"auszuwählen (mehr: Umschalt, Strg, Alt)" +#: ../src/ui/dialog/tile.cpp:751 +msgid "Equal _width" +msgstr "Gleiche Breite" -#: ../src/ui/tool/node.cpp:1309 -#, c-format -msgctxt "Path node tip" -msgid "Move node by %s, %s" -msgstr "Knoten verschieben um %s, %s" +#: ../src/ui/dialog/tile.cpp:761 +msgid "If not set, each column has the width of the widest object in it" +msgstr "" +"Wenn nicht gesetzt, dann hat jede Spalte die Breite seines breitesten " +"Objektes" -#: ../src/ui/tool/node.cpp:1320 -msgid "Symmetric node" -msgstr "symmetrischer Knoten" +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/tile.cpp:807 +msgid "_Fit into selection box" +msgstr "In den Auswahlrahmen einpassen" -#: ../src/ui/tool/node.cpp:1321 -msgid "Auto-smooth node" -msgstr "Knoten automatisch glätten" +#: ../src/ui/dialog/tile.cpp:814 +msgid "_Set spacing:" +msgstr "Abstand setzen:" -#: ../src/ui/tool/path-manipulator.cpp:821 -msgid "Scale handle" -msgstr "Anfasser skalieren" +#. ## The OK button +#: ../src/ui/dialog/tile.cpp:876 +msgctxt "Rows and columns dialog" +msgid "_Arrange" +msgstr "Anordnen" -#: ../src/ui/tool/path-manipulator.cpp:845 -msgid "Rotate handle" -msgstr "Anfasser rotieren" +#: ../src/ui/dialog/tile.cpp:878 +msgid "Arrange selected objects" +msgstr "Gewählte Objekte anordnen" -#. We need to call MPM's method because it could have been our last node -#: ../src/ui/tool/path-manipulator.cpp:1384 -#: ../src/widgets/node-toolbar.cpp:397 -msgid "Delete node" -msgstr "Knoten löschen" +#. #### begin left panel +#. ### begin notebook +#. ## begin mode page +#. # begin single scan +#. brightness +#: ../src/ui/dialog/tracedialog.cpp:508 +msgid "_Brightness cutoff" +msgstr "Helligkeit ausschalten" -#: ../src/ui/tool/path-manipulator.cpp:1392 -msgid "Cycle node type" -msgstr "Knotentyp ändern" +#: ../src/ui/dialog/tracedialog.cpp:512 +msgid "Trace by a given brightness level" +msgstr "Abhängig vom angegebenen Helligkeitswert nachzeichnen" -#: ../src/ui/tool/path-manipulator.cpp:1407 -msgid "Drag handle" -msgstr "Anfasser ziehen" +#: ../src/ui/dialog/tracedialog.cpp:519 +msgid "Brightness cutoff for black/white" +msgstr "Helligkeitsschwellwerte fĂĽr Schwarz/WeiĂź" -#: ../src/ui/tool/path-manipulator.cpp:1416 -msgid "Retract handle" -msgstr "Anfasser zurĂĽckziehen" +#: ../src/ui/dialog/tracedialog.cpp:529 +msgid "Single scan: creates a path" +msgstr "Einzelner Scan: einen Pfad erzeugen" -#: ../src/ui/tool/transform-handle-set.cpp:195 -msgctxt "Transform handle tip" -msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "Umschalt + STRG: Um Mittelpunkt einheitlich skalieren" +#. canny edge detection +#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method +#: ../src/ui/dialog/tracedialog.cpp:534 +msgid "_Edge detection" +msgstr "Kantenerkennung" -#: ../src/ui/tool/transform-handle-set.cpp:197 -msgctxt "Transform handle tip" -msgid "Ctrl: scale uniformly" -msgstr "Strg: einheitlich skalieren" +#: ../src/ui/dialog/tracedialog.cpp:538 +msgid "Trace with optimal edge detection by J. Canny's algorithm" +msgstr "Mit optimaler Kantenerkennung vektorisieren (Algorithmus von J. Canny)" -#: ../src/ui/tool/transform-handle-set.cpp:202 -msgctxt "Transform handle tip" -msgid "" -"Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "Umschalt: Skalieren mit Ganzzahl-Faktor um den Mittelpunkt" +#: ../src/ui/dialog/tracedialog.cpp:556 +msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +msgstr "" +"Schwellwert des Helligkeitswerts bei angrenzenden Pixeln (bestimmt " +"Kantenbreite)" -#: ../src/ui/tool/transform-handle-set.cpp:204 -msgctxt "Transform handle tip" -msgid "Shift: scale from the rotation center" -msgstr "Umschalt: Skalieren aus dem Mittelpunkt heraus" +#: ../src/ui/dialog/tracedialog.cpp:559 +msgid "T_hreshold:" +msgstr "Schwellwert:" -#: ../src/ui/tool/transform-handle-set.cpp:207 -msgctxt "Transform handle tip" -msgid "Alt: scale using an integer ratio" -msgstr "Alt: Skalieren mit Ganzzahl-Faktor" +#. quantization +#. TRANSLATORS: Color Quantization: the process of reducing the number +#. of colors in an image by selecting an optimized set of representative +#. colors and then re-applying this reduced set to the original image. +#: ../src/ui/dialog/tracedialog.cpp:571 +msgid "Color _quantization" +msgstr "Farbquantisierung" -#: ../src/ui/tool/transform-handle-set.cpp:209 -msgctxt "Transform handle tip" -msgid "Scale handle: drag to scale the selection" -msgstr "Skaliere Anfasser: Ziehen um die Auswahl zu skalieren" +#: ../src/ui/dialog/tracedialog.cpp:575 +msgid "Trace along the boundaries of reduced colors" +msgstr "Nachzeichnen entlang der reduzierten Farbbegrenzungen" -#: ../src/ui/tool/transform-handle-set.cpp:214 -#, c-format -msgctxt "Transform handle tip" -msgid "Scale by %.2f%% x %.2f%%" -msgstr "Scaieren mit %.2f%% x %.2f%%" +#: ../src/ui/dialog/tracedialog.cpp:583 +msgid "The number of reduced colors" +msgstr "Anzahl der reduzierten Farben" -#: ../src/ui/tool/transform-handle-set.cpp:438 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " -"increments" -msgstr "" -"Shift+Ctrl: Um die gegenĂĽberliegende Ecke rotieren und Einrasten des " -"Winkels um %f° Stufen" +#: ../src/ui/dialog/tracedialog.cpp:586 +msgid "_Colors:" +msgstr "Farben:" -#: ../src/ui/tool/transform-handle-set.cpp:441 -msgctxt "Transform handle tip" -msgid "Shift: rotate around the opposite corner" -msgstr "Umschalt: dreht um die gegenĂĽberliegende Ecke" +#. swap black and white +#: ../src/ui/dialog/tracedialog.cpp:594 +msgid "_Invert image" +msgstr "Bild invertieren" -#: ../src/ui/tool/transform-handle-set.cpp:445 -#, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap angle to %f° increments" -msgstr "Strg: Winkel um %f° Stufen einrasten" +#: ../src/ui/dialog/tracedialog.cpp:599 +msgid "Invert black and white regions" +msgstr "Schwarze und weiĂźe Bereiche invertieren" -#: ../src/ui/tool/transform-handle-set.cpp:447 -msgctxt "Transform handle tip" -msgid "" -"Rotation handle: drag to rotate the selection around the rotation " -"center" -msgstr "" -"Rotationsanfaller: Ziehen, um die Auswahl um den Mittelpunkt zu " -"rotieren" +#. # end single scan +#. # begin multiple scan +#: ../src/ui/dialog/tracedialog.cpp:609 +msgid "B_rightness steps" +msgstr "Helligkeitsschritte" -#. event -#: ../src/ui/tool/transform-handle-set.cpp:452 -#, c-format -msgctxt "Transform handle tip" -msgid "Rotate by %.2f°" -msgstr "Rotieren um %.2f°" +#: ../src/ui/dialog/tracedialog.cpp:613 +msgid "Trace the given number of brightness levels" +msgstr "Angegebene Anzahl von Helligkeitsstufen nachzeichnen" -#: ../src/ui/tool/transform-handle-set.cpp:578 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: skew about the rotation center with snapping to %f° " -"increments" -msgstr "" -"Umschalt+Strg: Um das Rotationszentrum krĂĽmmen mit Einrasten auf %f° " -"Stufen" +#: ../src/ui/dialog/tracedialog.cpp:621 +msgid "Sc_ans:" +msgstr "Scandurchgänge:" -#: ../src/ui/tool/transform-handle-set.cpp:581 -msgctxt "Transform handle tip" -msgid "Shift: skew about the rotation center" -msgstr "Umschalt: Um Mittelpunkt abschrägen" +#: ../src/ui/dialog/tracedialog.cpp:625 +msgid "The desired number of scans" +msgstr "GewĂĽnschte Anzahl von Scandurchgängen" -#: ../src/ui/tool/transform-handle-set.cpp:585 -#, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap skew angle to %f° increments" -msgstr "Strg: Einrasten des Abschrägungswinkels um %f° Stufen" +#: ../src/ui/dialog/tracedialog.cpp:630 +msgid "Co_lors" +msgstr "_Farben" -#: ../src/ui/tool/transform-handle-set.cpp:588 -msgctxt "Transform handle tip" -msgid "" -"Skew handle: drag to skew (shear) selection about the opposite handle" -msgstr "" -"KrĂĽmmungs-Anfasser: Ziehen, um die Auswahl um den gegenĂĽberliegenden " -"Anfasser zu krĂĽmmen (scheren)" +#: ../src/ui/dialog/tracedialog.cpp:634 +msgid "Trace the given number of reduced colors" +msgstr "Nachzeichnen auf angegebene Anzahl von Farben beschränken" -#: ../src/ui/tool/transform-handle-set.cpp:594 -#, c-format -msgctxt "Transform handle tip" -msgid "Skew horizontally by %.2f°" -msgstr "Horizontal um %.2f° abschrägen" +#: ../src/ui/dialog/tracedialog.cpp:639 +msgid "_Grays" +msgstr "Graustufen" -#: ../src/ui/tool/transform-handle-set.cpp:597 -#, c-format -msgctxt "Transform handle tip" -msgid "Skew vertically by %.2f°" -msgstr "Vertikal um %.2f° abschrägen" +#: ../src/ui/dialog/tracedialog.cpp:643 +msgid "Same as Colors, but the result is converted to grayscale" +msgstr "Wie bei »Farben«, aber Ergebnis in Graustufen konvertieren" -#: ../src/ui/tool/transform-handle-set.cpp:656 -msgctxt "Transform handle tip" -msgid "Rotation center: drag to change the origin of transforms" -msgstr "" -"Rotatioszentrum: Ziehen, um den Ursprung der Transformationen zu " -"ändern" +#. TRANSLATORS: "Smooth" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:649 +msgid "S_mooth" +msgstr "Glätten" -#: ../src/ui/tools/arc-tool.cpp:252 -msgid "" -"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" -msgstr "" -"Strg: Kreis oder Ellipse mit ganzzahligem Höhen-/Breitenverhältnis " -"erzeugen, Winkel vom Bogen/Kreissegment einrasten" +#: ../src/ui/dialog/tracedialog.cpp:653 +msgid "Apply Gaussian blur to the bitmap before tracing" +msgstr "GauĂźschen Weichzeichner vor dem Nachzeichnen anwenden" -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 -msgid "Shift: draw around the starting point" -msgstr "Umschalt: Um Mittelpunkt zeichnen" +#. TRANSLATORS: "Stack" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:657 +msgid "Stac_k scans" +msgstr "Scans stapeln" -#: ../src/ui/tools/arc-tool.cpp:422 -#, c-format +#: ../src/ui/dialog/tracedialog.cpp:661 msgid "" -"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " -"to draw around the starting point" +"Stack scans on top of one another (no gaps) instead of tiling (usually with " +"gaps)" msgstr "" -"Ellipse: %s × %s (festes Achsenverhältnis %d:%d); Umschalt zeichnet um Startpunkt" +"Scans ĂĽbereinander stapeln (ohne Zwischenräume) anstatt zu kacheln (meist " +"mit Zwischenräumen)" -#: ../src/ui/tools/arc-tool.cpp:424 -#, c-format -msgid "" -"Ellipse: %s × %s; with Ctrl to make square or integer-" -"ratio ellipse; with Shift to draw around the starting point" -msgstr "" -"Ellipse: %s × %s; Strg drĂĽcken fĂĽr ganzzahliges " -"Verhältnis der Radien; Umschalt zeichnet um Startpunkt" +#: ../src/ui/dialog/tracedialog.cpp:665 +msgid "Remo_ve background" +msgstr "Hintergrund entfernen" -#: ../src/ui/tools/arc-tool.cpp:447 -msgid "Create ellipse" -msgstr "Ellipse erzeugen" +#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan +#: ../src/ui/dialog/tracedialog.cpp:670 +msgid "Remove bottom (background) layer when done" +msgstr "Unterste Ebene (Hintergrund) nach Fertigstellung entfernen" -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 -msgid "Change perspective (angle of PLs)" -msgstr "Perspektive ändern (Winkel der Perspektivlinien)" +#: ../src/ui/dialog/tracedialog.cpp:675 +msgid "Multiple scans: creates a group of paths" +msgstr "Mehrfache Scans: Gruppen von Pfaden erzeugen" -#. status text -#: ../src/ui/tools/box3d-tool.cpp:583 -msgid "3D Box; with Shift to extrude along the Z axis" -msgstr "3D Box; Umschalt um in Z-Richtung zu vergrößern" +#. # end multiple scan +#. ## end mode page +#: ../src/ui/dialog/tracedialog.cpp:684 +msgid "_Mode" +msgstr "Modus" -#: ../src/ui/tools/box3d-tool.cpp:609 -msgid "Create 3D box" -msgstr "3D-Quader erzeugen" +#. ## begin option page +#. # potrace parameters +#: ../src/ui/dialog/tracedialog.cpp:690 +msgid "Suppress _speckles" +msgstr "Flecken unterdrĂĽcken" -#: ../src/ui/tools/calligraphic-tool.cpp:536 -msgid "" -"Guide path selected; start drawing along the guide with Ctrl" -msgstr "" -"FĂĽhrungspfad ausgewählt; starte Zeichnen entlang der FĂĽhrung mit " -"Strg" +#: ../src/ui/dialog/tracedialog.cpp:692 +msgid "Ignore small spots (speckles) in the bitmap" +msgstr "Kleine Punkte (Flecken) im Bitmap unterdrĂĽcken" -#: ../src/ui/tools/calligraphic-tool.cpp:538 -msgid "Select a guide path to track with Ctrl" -msgstr "FĂĽhrungspfad auswählen mit Ctrl" +#: ../src/ui/dialog/tracedialog.cpp:700 +msgid "Speckles of up to this many pixels will be suppressed" +msgstr "Flecken bis zu dieser Größe (in Pixeln) werden unterdrĂĽckt" -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking: connection to guide path lost!" -msgstr "Verfolgen: Verbindung zum FĂĽhrungspfad verloren!" +#: ../src/ui/dialog/tracedialog.cpp:703 +msgid "S_ize:" +msgstr "Größe:" -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking a guide path" -msgstr "Verfolge einen FĂĽhrungspfad" +#: ../src/ui/dialog/tracedialog.cpp:708 +msgid "Smooth _corners" +msgstr "Ecken glätten" -#: ../src/ui/tools/calligraphic-tool.cpp:676 -msgid "Drawing a calligraphic stroke" -msgstr "Zeichne einen kalligrafischen Strich" +#: ../src/ui/dialog/tracedialog.cpp:710 +msgid "Smooth out sharp corners of the trace" +msgstr "Scharfe Ecken der Vektorisierung glätten" -#: ../src/ui/tools/calligraphic-tool.cpp:977 -msgid "Draw calligraphic stroke" -msgstr "Kalligrafischen Strich zeichnen" +#: ../src/ui/dialog/tracedialog.cpp:719 +msgid "Increase this to smooth corners more" +msgstr "Erhöhen, um Ecken zu glätten" -#: ../src/ui/tools/connector-tool.cpp:499 -msgid "Creating new connector" -msgstr "Einen neuen Objektverbinder erzeugen" +#: ../src/ui/dialog/tracedialog.cpp:726 +msgid "Optimize p_aths" +msgstr "Pfade optimieren" -#: ../src/ui/tools/connector-tool.cpp:740 -msgid "Connector endpoint drag cancelled." -msgstr "Ziehen von Verbinder-Endpunkten abgebrochen." +#: ../src/ui/dialog/tracedialog.cpp:729 +msgid "Try to optimize paths by joining adjacent Bezier curve segments" +msgstr "" +"Versuchen, Pfade durch Verbinden von BĂ©zierkurvenabschnitten zu optimieren" -#: ../src/ui/tools/connector-tool.cpp:783 -msgid "Reroute connector" -msgstr "Objektverbinder neu verlegen" +#: ../src/ui/dialog/tracedialog.cpp:737 +msgid "" +"Increase this to reduce the number of nodes in the trace by more aggressive " +"optimization" +msgstr "" +"Erhöhen, um die Anzahl der Knoten in der Vektorisierung durch aggressivere " +"Optimierung zu reduzieren" -#: ../src/ui/tools/connector-tool.cpp:936 -msgid "Create connector" -msgstr "Objektverbinder erzeugen" +# CHECK +#: ../src/ui/dialog/tracedialog.cpp:739 +msgid "To_lerance:" +msgstr "Toleranz:" -# !!! -#: ../src/ui/tools/connector-tool.cpp:953 -msgid "Finishing connector" -msgstr "Beende Objektverbinder" +#. ## end option page +#: ../src/ui/dialog/tracedialog.cpp:753 +msgid "O_ptions" +msgstr "Optionen" -#: ../src/ui/tools/connector-tool.cpp:1191 -msgid "Connector endpoint: drag to reroute or connect to new shapes" +#. ### credits +#: ../src/ui/dialog/tracedialog.cpp:757 +msgid "" +"Inkscape bitmap tracing\n" +"is based on Potrace,\n" +"created by Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" msgstr "" -"Objektverbinder-Endpunkt: ziehen, um neu zu verlegen oder mit neuen " -"Formen zu verbinden" - -#: ../src/ui/tools/connector-tool.cpp:1336 -msgid "Select at least one non-connector object." -msgstr "Mindestens ein Objekt auswählen, das kein Objektverbinder ist." +"Inkscapes Vektorrasterisierung\n" +"basiert auf Potrace,\n" +"entwickelt von Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" -#: ../src/ui/tools/connector-tool.cpp:1341 -#: ../src/widgets/connector-toolbar.cpp:314 -msgid "Make connectors avoid selected objects" -msgstr "Objektverbinder weichen den ausgewählten Objekten aus" +#: ../src/ui/dialog/tracedialog.cpp:760 +msgid "Credits" +msgstr "Mitwirkende" -#: ../src/ui/tools/connector-tool.cpp:1342 -#: ../src/widgets/connector-toolbar.cpp:324 -msgid "Make connectors ignore selected objects" -msgstr "Objektverbinder ignorieren die ausgewählten Objekte" +#. #### begin right panel +#. ## SIOX +#: ../src/ui/dialog/tracedialog.cpp:774 +msgid "SIOX _foreground selection" +msgstr "Auswahl des Vordergrunds mittels SIOX" -#. alpha of color under cursor, to show in the statusbar -#. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 -#, c-format -msgid " alpha %.3g" -msgstr " Alpha %.3g" +#: ../src/ui/dialog/tracedialog.cpp:777 +msgid "Cover the area you want to select as the foreground" +msgstr "" +"Ăśbermalen Sie den Teil des Bildes, den Sie als Vordergrund auswählen möchten" -#. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 -#, c-format -msgid ", averaged with radius %d" -msgstr ", gemittelt mit Radius %d" +#: ../src/ui/dialog/tracedialog.cpp:782 +msgid "Live Preview" +msgstr "Live-Vorschau" -#: ../src/ui/tools/dropper-tool.cpp:283 -msgid " under cursor" -msgstr " unter Zeiger" +#: ../src/ui/dialog/tracedialog.cpp:788 +msgid "_Update" +msgstr "Aktualisieren" -#. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 -msgid "Release mouse to set color." -msgstr "Maustaste loslassen, um die Farbe zu ĂĽbernehmen." +#. I guess it's correct to call the "intermediate bitmap" a preview of the trace +#: ../src/ui/dialog/tracedialog.cpp:796 +msgid "" +"Preview the intermediate bitmap with the current settings, without actual " +"tracing" +msgstr "" +"Vorschau der Zwischen-Bitmap mit den aktuellen Einstellungen, ohne " +"tatsächlich zu vektorisieren" -#: ../src/ui/tools/dropper-tool.cpp:333 -msgid "Set picked color" -msgstr "Ăśbernommene Farbe setzen" +#: ../src/ui/dialog/tracedialog.cpp:800 +msgid "Preview" +msgstr "Vorschau" -#: ../src/ui/tools/eraser-tool.cpp:437 -msgid "Drawing an eraser stroke" -msgstr "Zeichne Löschstrich" +#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:86 +msgid "_Horizontal:" +msgstr "_Horizontal:" -#: ../src/ui/tools/eraser-tool.cpp:770 -msgid "Draw eraser stroke" -msgstr "Radierer-Pfad zeichnen" +#: ../src/ui/dialog/transformation.cpp:76 +msgid "Horizontal displacement (relative) or position (absolute)" +msgstr "Horizontale Verschiebung (relativ) oder Position (absolut)" -#: ../src/ui/tools/flood-tool.cpp:192 -msgid "Visible Colors" -msgstr "Sichtbare Farben" +#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:88 +msgid "_Vertical:" +msgstr "_Vertikal:" -# CHECK -#: ../src/ui/tools/flood-tool.cpp:210 -msgctxt "Flood autogap" -msgid "None" -msgstr "Keine" +#: ../src/ui/dialog/transformation.cpp:78 +msgid "Vertical displacement (relative) or position (absolute)" +msgstr "Vertikale Verschiebung (relativ) oder Position (absolut)" -#: ../src/ui/tools/flood-tool.cpp:211 -msgctxt "Flood autogap" -msgid "Small" -msgstr "Klein" +#: ../src/ui/dialog/transformation.cpp:80 +msgid "Horizontal size (absolute or percentage of current)" +msgstr "Horizontaler Vergrößerungsschritt (absolut oder prozentual)" -#: ../src/ui/tools/flood-tool.cpp:212 -msgctxt "Flood autogap" -msgid "Medium" -msgstr "Mittel" +#: ../src/ui/dialog/transformation.cpp:82 +msgid "Vertical size (absolute or percentage of current)" +msgstr "Vertikaler Vergrößerungsschritt (absolut oder prozentual)" -#: ../src/ui/tools/flood-tool.cpp:213 -msgctxt "Flood autogap" -msgid "Large" -msgstr "GroĂź" +#: ../src/ui/dialog/transformation.cpp:84 +msgid "A_ngle:" +msgstr "Winkel:" -#: ../src/ui/tools/flood-tool.cpp:435 -msgid "Too much inset, the result is empty." -msgstr "Zu viel Schrumpfung, das Ergebnis ist leer." +#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:1103 +msgid "Rotation angle (positive = counterclockwise)" +msgstr "Drehwinkel (positiv = gegen den Uhrzeigersinn)" -#: ../src/ui/tools/flood-tool.cpp:476 -#, c-format +#: ../src/ui/dialog/transformation.cpp:86 msgid "" -"Area filled, path with %d node created and unioned with selection." -msgid_plural "" -"Area filled, path with %d nodes created and unioned with selection." -msgstr[0] "" -"Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt und mit der Auswahl " -"vereinigt." -msgstr[1] "" -"Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt und mit der Auswahl " -"vereinigt." - -#: ../src/ui/tools/flood-tool.cpp:482 -#, c-format -msgid "Area filled, path with %d node created." -msgid_plural "Area filled, path with %d nodes created." -msgstr[0] "Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt." -msgstr[1] "Gebiet gefĂĽllt, Pfad mit %d Knoten erzeugt." - -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 -msgid "Area is not bounded, cannot fill." -msgstr "Gebiet ist nicht abgegrenzt, kann nicht fĂĽllen." +"Horizontal skew angle (positive = counterclockwise), or absolute " +"displacement, or percentage displacement" +msgstr "" +"Horizontaler Scherwinkel (positiv = gegen den Uhrzeigersinn), oder absolute " +"oder prozentuale Verschiebung" -#: ../src/ui/tools/flood-tool.cpp:1065 +#: ../src/ui/dialog/transformation.cpp:88 msgid "" -"Only the visible part of the bounded area was filled. If you want to " -"fill all of the area, undo, zoom out, and fill again." +"Vertical skew angle (positive = counterclockwise), or absolute displacement, " +"or percentage displacement" msgstr "" -"Nur der sichtbare Teil des abgegrenzten Gebiets wurde gefĂĽllt. Wenn " -"Sie das gesamte Gebiet fĂĽllen wollen, dann machen Sie rĂĽckgängig, zoomen " -"heraus, und fĂĽllen Sie noch einmal." +"Vertikaler Scherwinkel (positiv = gegen den Uhrzeigersinn), oder absolute " +"oder prozentuale Verschiebung" + +#: ../src/ui/dialog/transformation.cpp:91 +msgid "Transformation matrix element A" +msgstr "Abbildungsmatrix, Element A" + +#: ../src/ui/dialog/transformation.cpp:92 +msgid "Transformation matrix element B" +msgstr "Abbildungsmatrix, Element B" -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 -msgid "Fill bounded area" -msgstr "FĂĽlle abgegrenztes Gebiet" +#: ../src/ui/dialog/transformation.cpp:93 +msgid "Transformation matrix element C" +msgstr "Abbildungsmatrix, Element C" -#: ../src/ui/tools/flood-tool.cpp:1099 -msgid "Set style on object" -msgstr "Stil auf Objekte anwenden" +#: ../src/ui/dialog/transformation.cpp:94 +msgid "Transformation matrix element D" +msgstr "Abbildungsmatrix, Element D" -#: ../src/ui/tools/flood-tool.cpp:1159 -msgid "Draw over areas to add to fill, hold Alt for touch fill" -msgstr "" -"Zeichne ĂĽber Flächen um zur FĂĽllung hinzuzufĂĽgen, Alt fĂĽr " -"FĂĽllen durch BerĂĽhrung" +#: ../src/ui/dialog/transformation.cpp:95 +msgid "Transformation matrix element E" +msgstr "Abbildungsmatrix, Element E" -#. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:490 -msgid "Path is closed." -msgstr "Pfad ist geschlossen." +#: ../src/ui/dialog/transformation.cpp:96 +msgid "Transformation matrix element F" +msgstr "Abbildungsmatrix, Element F" -#. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:505 -msgid "Closing path." -msgstr "Pfad schlieĂźen" +#: ../src/ui/dialog/transformation.cpp:101 +msgid "Rela_tive move" +msgstr "_Relative Bewegung" -#: ../src/ui/tools/freehand-base.cpp:607 -msgid "Draw path" -msgstr "Pfad zeichnen" +#: ../src/ui/dialog/transformation.cpp:101 +msgid "" +"Add the specified relative displacement to the current position; otherwise, " +"edit the current absolute position directly" +msgstr "" +"Die angegebene relative Verschiebung zur aktuellen Position hinzuaddieren; " +"anderenfalls die aktuelle absolute Position direkt ändern" -#: ../src/ui/tools/freehand-base.cpp:764 -msgid "Creating single dot" -msgstr "Erzeuge einzelnen Punkt" +#: ../src/ui/dialog/transformation.cpp:102 +msgid "_Scale proportionally" +msgstr "Proportional skalieren" -#: ../src/ui/tools/freehand-base.cpp:765 -msgid "Create single dot" -msgstr "Einen einzelnen Punkt erzeugen" +#: ../src/ui/dialog/transformation.cpp:102 +msgid "Preserve the width/height ratio of the scaled objects" +msgstr "Das Verhältnis von Höhe und Breite der skalierten Objekte beibehalten" -#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 -#, c-format -msgid "%s selected" -msgstr "%s ausgewählt" +#: ../src/ui/dialog/transformation.cpp:103 +msgid "Apply to each _object separately" +msgstr "Auf jedes _Objekt getrennt anwenden" -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 -#, c-format -msgid " out of %d gradient handle" -msgid_plural " out of %d gradient handles" -msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" -msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" +#: ../src/ui/dialog/transformation.cpp:103 +msgid "" +"Apply the scale/rotate/skew to each selected object separately; otherwise, " +"transform the selection as a whole" +msgstr "" +"Skalierung/Drehung/Scherung auf jedes ausgewählte Objekt getrennt anwenden; " +"anderenfalls auf die gesamte Auswahl anwenden" -#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 -#, c-format -msgid " on %d selected object" -msgid_plural " on %d selected objects" -msgstr[0] "auf %d gewähltes Objekt" -msgstr[1] "auf %d gewählte Objekte" +#: ../src/ui/dialog/transformation.cpp:104 +msgid "Edit c_urrent matrix" +msgstr "_Aktuelle Matrix bearbeiten" -#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 -#, c-format +#: ../src/ui/dialog/transformation.cpp:104 msgid "" -"One handle merging %d stop (drag with Shift to separate) selected" -msgid_plural "" -"One handle merging %d stops (drag with Shift to separate) selected" -msgstr[0] "Ein Anfasser fĂĽr %d Endknoten" -msgstr[1] "" -"Ein Anfasser fĂĽr %d zusammenliegende Endknoten (Umschalt + Ziehen " -"trennt)" +"Edit the current transform= matrix; otherwise, post-multiply transform= by " +"this matrix" +msgstr "" +"Die aktuelle transform=-Matrix bearbeiten; andernfalls transform= hinterher " +"mit dieser Matrix multiplizieren" -#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 -#, c-format -msgid "%d gradient handle selected out of %d" -msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" -msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" +#: ../src/ui/dialog/transformation.cpp:117 +msgid "_Scale" +msgstr "_MaĂźstab" -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 -#, c-format -msgid "No gradient handles selected out of %d on %d selected object" -msgid_plural "" -"No gradient handles selected out of %d on %d selected objects" -msgstr[0] "" -"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" -msgstr[1] "" -"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" +#: ../src/ui/dialog/transformation.cpp:120 +msgid "_Rotate" +msgstr "_Drehen" -#: ../src/ui/tools/gradient-tool.cpp:440 -msgid "Simplify gradient" -msgstr "Farbverlauf vereinfachen" +#: ../src/ui/dialog/transformation.cpp:123 +msgid "Ske_w" +msgstr "_Scheren" -#: ../src/ui/tools/gradient-tool.cpp:516 -msgid "Create default gradient" -msgstr "Standard-Farbverlauf erzeugen" +#: ../src/ui/dialog/transformation.cpp:126 +msgid "Matri_x" +msgstr "Matri_x" -#: ../src/ui/tools/gradient-tool.cpp:575 ../src/ui/tools/mesh-tool.cpp:570 -msgid "Draw around handles to select them" -msgstr "Zeichne um Anfasser um diese auszuwählen" +#: ../src/ui/dialog/transformation.cpp:150 +msgid "Reset the values on the current tab to defaults" +msgstr "Die Werte des aktuellen Reiters auf die Vorgabewerte setzen" -#: ../src/ui/tools/gradient-tool.cpp:698 -msgid "Ctrl: snap gradient angle" -msgstr "Strg: Winkel des Farbverlaufs einrasten" +#: ../src/ui/dialog/transformation.cpp:157 +msgid "Apply transformation to selection" +msgstr "Transformation auf Auswahl anwenden" -#: ../src/ui/tools/gradient-tool.cpp:699 -msgid "Shift: draw gradient around the starting point" -msgstr "Umschalt: Farbverlauf ausgehend vom Mittelpunkt zeichnen" +#: ../src/ui/dialog/transformation.cpp:332 +msgid "Rotate in a counterclockwise direction" +msgstr "Entgegen Uhrzeigersinn drehen" -#: ../src/ui/tools/gradient-tool.cpp:953 ../src/ui/tools/mesh-tool.cpp:993 -#, c-format -msgid "Gradient for %d object; with Ctrl to snap angle" -msgid_plural "Gradient for %d objects; with Ctrl to snap angle" -msgstr[0] "Farbverlauf fĂĽr %d Objekte; mit Strg Winkel einrasten" -msgstr[1] "Farbverlauf fĂĽr %d Objekte; mit Strg Winkel einrasten" +#: ../src/ui/dialog/transformation.cpp:338 +msgid "Rotate in a clockwise direction" +msgstr "Drehung im Uhrzeigersinn" -#: ../src/ui/tools/gradient-tool.cpp:957 ../src/ui/tools/mesh-tool.cpp:997 -msgid "Select objects on which to create gradient." -msgstr "Objekte auswählen, fĂĽr die ein Farbverlauf erzeugt werden soll." +#: ../src/ui/dialog/transformation.cpp:907 +#: ../src/ui/dialog/transformation.cpp:918 +#: ../src/ui/dialog/transformation.cpp:932 +#: ../src/ui/dialog/transformation.cpp:951 +#: ../src/ui/dialog/transformation.cpp:962 +#: ../src/ui/dialog/transformation.cpp:972 +#: ../src/ui/dialog/transformation.cpp:996 +msgid "Transform matrix is singular, not used." +msgstr "" -#: ../src/ui/tools/lpe-tool.cpp:207 -msgid "Choose a construction tool from the toolbar." -msgstr "Ein Konstruktionswerkzeug von der Werkzeugleiste wählen." +#: ../src/ui/dialog/transformation.cpp:1011 +msgid "Edit transformation matrix" +msgstr "Abbildungsmatrix ändern" -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 -#, fuzzy, c-format -msgid " out of %d mesh handle" -msgid_plural " out of %d mesh handles" -msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" -msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" +#: ../src/ui/dialog/transformation.cpp:1110 +msgid "Rotation angle (positive = clockwise)" +msgstr "Drehwinkel (positiv = im Uhrzeigersinn)" -#: ../src/ui/tools/mesh-tool.cpp:150 -#, fuzzy, c-format -msgid "%d mesh handle selected out of %d" -msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" -msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" +#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:123 +msgid "New element node" +msgstr "Neuer Elementknoten" -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 -#, fuzzy, c-format -msgid "No mesh handles selected out of %d on %d selected object" -msgid_plural "No mesh handles selected out of %d on %d selected objects" -msgstr[0] "" -"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" -msgstr[1] "" -"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" +#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:129 +msgid "New text node" +msgstr "Neuer Textknoten" -#: ../src/ui/tools/mesh-tool.cpp:321 -msgid "Split mesh row/column" -msgstr "Teile Gitter Reihe/Spalte" +#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:143 +msgid "nodeAsInXMLdialogTooltip|Delete node" +msgstr "Knoten löschen" -#: ../src/ui/tools/mesh-tool.cpp:407 -msgid "Toggled mesh path type." -msgstr "Gitter-Pfadtyp umschalten" +#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:135 +#: ../src/ui/dialog/xml-tree.cpp:974 +msgid "Duplicate node" +msgstr "Knoten duplizieren" -#: ../src/ui/tools/mesh-tool.cpp:411 -msgid "Approximated arc for mesh side." -msgstr "Durchschnittlicher Winkel fĂĽr Gitterseite." +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:188 +#: ../src/ui/dialog/xml-tree.cpp:1010 +msgid "Delete attribute" +msgstr "Attribut löschen" -#: ../src/ui/tools/mesh-tool.cpp:415 -msgid "Toggled mesh tensors." -msgstr "" +#: ../src/ui/dialog/xml-tree.cpp:87 +msgid "Set" +msgstr "Setzen" -#: ../src/ui/tools/mesh-tool.cpp:419 -#, fuzzy -msgid "Smoothed mesh corner color." -msgstr "Ecken glätten" +#: ../src/ui/dialog/xml-tree.cpp:118 +msgid "Drag to reorder nodes" +msgstr "Ziehen, um die Knoten neu zu sortieren" -#: ../src/ui/tools/mesh-tool.cpp:423 -#, fuzzy -msgid "Picked mesh corner color." -msgstr "Farbton des Farbwertes ĂĽbernehmen" +#: ../src/ui/dialog/xml-tree.cpp:149 ../src/ui/dialog/xml-tree.cpp:150 +#: ../src/ui/dialog/xml-tree.cpp:1131 +msgid "Unindent node" +msgstr "EinrĂĽckung des Knotens verringern" -#: ../src/ui/tools/mesh-tool.cpp:498 -msgid "Create default mesh" -msgstr "Standard-Gitter erzeugen" +#: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 +#: ../src/ui/dialog/xml-tree.cpp:1109 +msgid "Indent node" +msgstr "Knoten einrĂĽcken" -#: ../src/ui/tools/mesh-tool.cpp:718 -#, fuzzy -msgid "FIXMECtrl: snap mesh angle" -msgstr "Strg: Winkel einrasten" +#: ../src/ui/dialog/xml-tree.cpp:159 ../src/ui/dialog/xml-tree.cpp:160 +#: ../src/ui/dialog/xml-tree.cpp:1060 +msgid "Raise node" +msgstr "Knoten anheben" -#: ../src/ui/tools/mesh-tool.cpp:719 -#, fuzzy -msgid "FIXMEShift: draw mesh around the starting point" -msgstr "Umschalt: Um Mittelpunkt zeichnen" +#: ../src/ui/dialog/xml-tree.cpp:164 ../src/ui/dialog/xml-tree.cpp:165 +#: ../src/ui/dialog/xml-tree.cpp:1078 +msgid "Lower node" +msgstr "Knoten absenken" -#: ../src/ui/tools/node-tool.cpp:554 -msgctxt "Node tool tip" -msgid "" -"Shift: drag to add nodes to the selection, click to toggle object " -"selection" -msgstr "" -"Shift: Ziehen, um Knoten zur Auswahl hinzuzufĂĽgen. Klicken, um die " -"Auswahl umzuschalten." +#: ../src/ui/dialog/xml-tree.cpp:205 +msgid "Attribute name" +msgstr "Attributname" -#: ../src/ui/tools/node-tool.cpp:558 -msgctxt "Node tool tip" -msgid "Shift: drag to add nodes to the selection" -msgstr "Umschalt: Ziehen, um Knoten zur Auswahl hinzuzufĂĽgen" +#: ../src/ui/dialog/xml-tree.cpp:220 +msgid "Attribute value" +msgstr "Attributwert" -#: ../src/ui/tools/node-tool.cpp:570 -#, c-format -msgid "%u of %u node selected." -msgid_plural "%u of %u nodes selected." -msgstr[0] "%u von %u Knoten ausgewählt." -msgstr[1] "%u von %u Knoten ausgewählt." +#: ../src/ui/dialog/xml-tree.cpp:308 +msgid "Click to select nodes, drag to rearrange." +msgstr "Klick wählt Knoten aus, Ziehen ordnet neu an." -#: ../src/ui/tools/node-tool.cpp:576 -#, c-format -msgctxt "Node tool tip" -msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" -msgstr "" -"%s Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu " -"bearbeiten (mehr: Umschalt)" +#: ../src/ui/dialog/xml-tree.cpp:319 +msgid "Click attribute to edit." +msgstr "Klick auf Attribut zum Bearbeiten." -#: ../src/ui/tools/node-tool.cpp:582 +#: ../src/ui/dialog/xml-tree.cpp:323 #, c-format -msgctxt "Node tool tip" -msgid "%s Drag to select nodes, click clear the selection" -msgstr "%s Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" - -#: ../src/ui/tools/node-tool.cpp:591 -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to edit only this object" +msgid "" +"Attribute %s selected. Press Ctrl+Enter when done editing to " +"commit changes." msgstr "" -"Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu bearbeiten." +"Attribut %s ausgewählt. Strg+Eingabe schlieĂźt ab und ĂĽbernimmt " +"Ă„nderungen." -#: ../src/ui/tools/node-tool.cpp:594 -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to clear the selection" -msgstr "Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" +#: ../src/ui/dialog/xml-tree.cpp:563 +msgid "Drag XML subtree" +msgstr "XML-Unterbaum ziehen" -#: ../src/ui/tools/node-tool.cpp:599 -msgctxt "Node tool tip" -msgid "Drag to select objects to edit, click to edit this object (more: Shift)" -msgstr "" -"Ziehen um Objekte zum Bearbeiten auszuwählen und Klicken, um das Objekt zu " -"bearbeiten (mehr: Shift)" +#: ../src/ui/dialog/xml-tree.cpp:865 +msgid "New element node..." +msgstr "Neuer Elementknoten…" -#: ../src/ui/tools/node-tool.cpp:602 -msgctxt "Node tool tip" -msgid "Drag to select objects to edit" -msgstr "Ziehen, um Objekte zum bearbeiten auszuwählen" +#: ../src/ui/dialog/xml-tree.cpp:903 +msgid "Cancel" +msgstr "Abbrechen" -#: ../src/ui/tools/pen-tool.cpp:186 ../src/ui/tools/pencil-tool.cpp:465 -msgid "Drawing cancelled" -msgstr "Zeichnen abgebrochen" +#: ../src/ui/dialog/xml-tree.cpp:909 +msgid "Create" +msgstr "Erstellen" -# !!! make singular and plural forms -#: ../src/ui/tools/pen-tool.cpp:407 ../src/ui/tools/pencil-tool.cpp:203 -msgid "Continuing selected path" -msgstr "Gewählten Pfad verlängern" +#: ../src/ui/dialog/xml-tree.cpp:940 +msgid "Create new element node" +msgstr "Neuen Elementknoten erzeugen" -#: ../src/ui/tools/pen-tool.cpp:417 ../src/ui/tools/pencil-tool.cpp:211 -msgid "Creating new path" -msgstr "Erzeuge neuen Pfad" +#: ../src/ui/dialog/xml-tree.cpp:956 +msgid "Create new text node" +msgstr "Neuen Textknoten erzeugen" -#: ../src/ui/tools/pen-tool.cpp:419 ../src/ui/tools/pencil-tool.cpp:214 -msgid "Appending to selected path" -msgstr "Zu ausgewähltem Pfad hinzufĂĽgen" +#: ../src/ui/dialog/xml-tree.cpp:991 +msgid "nodeAsInXMLinHistoryDialog|Delete node" +msgstr "Knoten löschen" -#: ../src/ui/tools/pen-tool.cpp:575 -msgid "Click or click and drag to close and finish the path." -msgstr "Klick oder Klick und Ziehen, um den Pfad abzuschlieĂźen." +#: ../src/ui/dialog/xml-tree.cpp:1034 +msgid "Change attribute" +msgstr "Attribut ändern" -#: ../src/ui/tools/pen-tool.cpp:585 -msgid "" -"Click or click and drag to continue the path from this point." -msgstr "" -"Klick oder Klick und Ziehen, um den Pfad von diesem Punkt aus " -"fortzusetzen." +#: ../src/ui/tool/curve-drag-point.cpp:100 +msgid "Drag curve" +msgstr "Kurve ziehen" -#: ../src/ui/tools/pen-tool.cpp:1198 -#, c-format -msgid "" -"Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" -"Kurvensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " -"Winkel ein; Eingabe schlieĂźt den Pfad ab" +#: ../src/ui/tool/curve-drag-point.cpp:157 +msgid "Add node" +msgstr "Knoten hinzufĂĽgen" -#: ../src/ui/tools/pen-tool.cpp:1199 -#, c-format -msgid "" -"Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" -"Liniensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " -"Winkel ein; Eingabe schlieĂźt den Pfad ab" +#: ../src/ui/tool/curve-drag-point.cpp:167 +msgctxt "Path segment tip" +msgid "Shift: click to toggle segment selection" +msgstr "Umschalt: Klick um Segment-Auswahl umzuschalten" -#: ../src/ui/tools/pen-tool.cpp:1215 -#, c-format -msgid "" -"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " -"angle" -msgstr "" -"Kurvenanfasser: Winkel %3.2f°; Länge %s; Winkel mit Strg " -"einrasten" +#: ../src/ui/tool/curve-drag-point.cpp:171 +msgctxt "Path segment tip" +msgid "Ctrl+Alt: click to insert a node" +msgstr "STRG+Alt: Klicken, um einen Knoten einzufĂĽgen" -#: ../src/ui/tools/pen-tool.cpp:1237 -#, c-format +#: ../src/ui/tool/curve-drag-point.cpp:175 +msgctxt "Path segment tip" msgid "" -"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" +"Linear segment: drag to convert to a Bezier segment, doubleclick to " +"insert node, click to select (more: Shift, Ctrl+Alt)" msgstr "" -"Symmetrischer Kurvenanfasser: Winkel %3.2f°, Länge %s; Strg rastet den Winkel ein; Umschalt bewegt nur diesen Anfasser" +"Linear-Segment: Ziehen, um in ein Bezier-Segment zu konvertieren, " +"Doppelklick um Knoten einzufĂĽgen und Klicken zum Auswählen (mehr: Shift, STRG" +"+ALT)" -#: ../src/ui/tools/pen-tool.cpp:1238 -#, c-format +#: ../src/ui/tool/curve-drag-point.cpp:179 +msgctxt "Path segment tip" msgid "" -"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " -"angle, with Shift to move this handle only" +"Bezier segment: drag to shape the segment, doubleclick to insert " +"node, click to select (more: Shift, Ctrl+Alt)" msgstr "" -"Kurvenanfasser: Winkel %3.2f°, Länge %s; Strg rastet den " -"Winkel ein; Umschalt bewegt nur diesen Anfasser" - -# not sure here -cm- -#: ../src/ui/tools/pen-tool.cpp:1281 -msgid "Drawing finished" -msgstr "Zeichnen beendet" - -#: ../src/ui/tools/pencil-tool.cpp:315 -msgid "Release here to close and finish the path." -msgstr "Hier loslassen, um den Pfad zu schlieĂźen und beenden." - -#: ../src/ui/tools/pencil-tool.cpp:321 -msgid "Drawing a freehand path" -msgstr "Freihandlinien zeichnen" +"Bezier-Segment: Ziehen, um das Segment zu formen, Doppelklick zum " +"EinfĂĽgen eines Knotens oder Klicken zum Auswählen (mehr: Umschalt, Strg+Alt)" -#: ../src/ui/tools/pencil-tool.cpp:326 -msgid "Drag to continue the path from this point." -msgstr "Ziehen, um den Pfad von diesem Punkt aus fortzusetzen." +#: ../src/ui/tool/multi-path-manipulator.cpp:326 +msgid "Retract handles" +msgstr "Anfasser zurĂĽckziehen" -# !!! -#. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:411 -msgid "Finishing freehand" -msgstr "Fertig mit Freihandlinien" +#: ../src/ui/tool/multi-path-manipulator.cpp:326 ../src/ui/tool/node.cpp:270 +msgid "Change node type" +msgstr "Knotentyp ändern" -#: ../src/ui/tools/pencil-tool.cpp:514 -msgid "" -"Sketch mode: holding Alt interpolates between sketched paths. " -"Release Alt to finalize." -msgstr "" -"Skizzenmodus: Halten von Alt interpoliert zwischen skizzierten " -"Pfaden. Zum Beenden Alt loslassen." +#: ../src/ui/tool/multi-path-manipulator.cpp:334 +msgid "Straighten segments" +msgstr "Segmente begradigen" -# !!! -#: ../src/ui/tools/pencil-tool.cpp:541 -msgid "Finishing freehand sketch" -msgstr "Fertig mit Freihandlinien" +#: ../src/ui/tool/multi-path-manipulator.cpp:336 +msgid "Make segments curves" +msgstr "Die gewählten Abschnitte in Kurven umwandeln" -#: ../src/ui/tools/rect-tool.cpp:288 -msgid "" -"Ctrl: make square or integer-ratio rect, lock a rounded corner " -"circular" -msgstr "" -"Strg: Quadrat oder Rechteck mit ganzzahligem Kanten-Längenverhältnis, " -"abgerundete Kanten mit einheitlichen Radien" +#: ../src/ui/tool/multi-path-manipulator.cpp:343 +msgid "Add nodes" +msgstr "Mehrere Knoten hinzufĂĽgen" -#: ../src/ui/tools/rect-tool.cpp:449 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" -msgstr "" -"Rechteck: %s Ă— %s (beschränkt auf Seitenverhältnis %d:%d); " -"Umschalt - Rechteck vom Zentrum aus zeichnen" +#: ../src/ui/tool/multi-path-manipulator.cpp:348 +msgid "Add extremum nodes" +msgstr "Extremwert-Knoten hinzufĂĽgen" -#: ../src/ui/tools/rect-tool.cpp:452 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " -"Shift to draw around the starting point" -msgstr "" -"Rechteck: %s Ă— %s (beschränkt auf Goldenen Schnitt 1,618 : 1); " -"Umschalt - Rechteck vom Zentrum aus zeichnen" +#: ../src/ui/tool/multi-path-manipulator.cpp:354 +msgid "Duplicate nodes" +msgstr "Knoten duplizieren" -#: ../src/ui/tools/rect-tool.cpp:454 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " -"Shift to draw around the starting point" -msgstr "" -"Rechteck: %s Ă— %s (beschränkt auf Goldenen Schnitt 1 : 1,618); " -"Umschalt - Rechteck vom Zentrum aus zeichnen" +#: ../src/ui/tool/multi-path-manipulator.cpp:416 +#: ../src/widgets/node-toolbar.cpp:420 +msgid "Join nodes" +msgstr "Knoten verbinden" -#: ../src/ui/tools/rect-tool.cpp:458 -#, c-format -msgid "" -"Rectangle: %s × %s; with Ctrl to make square or integer-" -"ratio rectangle; with Shift to draw around the starting point" -msgstr "" -"Rechteck: %s Ă— %s; Strg erzeugt Quadrat oder ganzzahliges " -"Höhen/Breitenverhältnis; Umschalt - Rechteck vom Zentrum aus zeichnen" +#: ../src/ui/tool/multi-path-manipulator.cpp:423 +#: ../src/widgets/node-toolbar.cpp:431 +msgid "Break nodes" +msgstr "Knoten unterbrechen" -#: ../src/ui/tools/rect-tool.cpp:481 -msgid "Create rectangle" -msgstr "Rechteck erzeugen" +#: ../src/ui/tool/multi-path-manipulator.cpp:430 +msgid "Delete nodes" +msgstr "Knoten löschen" -#: ../src/ui/tools/select-tool.cpp:169 -msgid "Click selection to toggle scale/rotation handles" -msgstr "" -"Klicken Sie auf die Auswahl, um zwischen Skalieren und Rotieren umzuschalten" +#: ../src/ui/tool/multi-path-manipulator.cpp:760 +msgid "Move nodes" +msgstr "Knoten verschieben" -#: ../src/ui/tools/select-tool.cpp:170 -msgid "" -"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " -"or drag around objects to select." -msgstr "" -"Keine Objekte ausgewählt. Klick, Umschalt+Klick, oder Ziehen um Objekte " -"auszuwählen." +#: ../src/ui/tool/multi-path-manipulator.cpp:763 +msgid "Move nodes horizontally" +msgstr "Knoten horizontal verschieben" -# !!! -#: ../src/ui/tools/select-tool.cpp:223 -msgid "Move canceled." -msgstr "Verschieben abgebrochen." +#: ../src/ui/tool/multi-path-manipulator.cpp:767 +msgid "Move nodes vertically" +msgstr "Knoten vertikal verschieben" -# !!! -#: ../src/ui/tools/select-tool.cpp:231 -msgid "Selection canceled." -msgstr "Auswahl abgebrochen." +#: ../src/ui/tool/multi-path-manipulator.cpp:771 +#: ../src/ui/tool/multi-path-manipulator.cpp:774 +msgid "Rotate nodes" +msgstr "Knoten rotieren" -#: ../src/ui/tools/select-tool.cpp:642 -msgid "" -"Draw over objects to select them; release Alt to switch to " -"rubberband selection" -msgstr "" -"Zeichnen ĂĽber Objekten wählt sie aus; Alt loslassen, um mit " -"Gummiband auszuwählen" +#: ../src/ui/tool/multi-path-manipulator.cpp:778 +#: ../src/ui/tool/multi-path-manipulator.cpp:784 +msgid "Scale nodes uniformly" +msgstr "Knoten skalieren" -#: ../src/ui/tools/select-tool.cpp:644 -msgid "" -"Drag around objects to select them; press Alt to switch to " -"touch selection" -msgstr "" -"Ziehen um Objekte wählt sie aus; Alt drĂĽcken, um durch " -"BerĂĽhrung auszuwählen" +#: ../src/ui/tool/multi-path-manipulator.cpp:781 +msgid "Scale nodes" +msgstr "Knoten skalieren" -#: ../src/ui/tools/select-tool.cpp:932 -msgid "Ctrl: click to select in groups; drag to move hor/vert" -msgstr "" -"Strg: Klick um in Gruppierung auszuwählen; Ziehen um horizontal/" -"vertikal bewegen" +#: ../src/ui/tool/multi-path-manipulator.cpp:788 +msgid "Scale nodes horizontally" +msgstr "Knoten horizontal skalieren" -#: ../src/ui/tools/select-tool.cpp:933 -msgid "Shift: click to toggle select; drag for rubberband selection" -msgstr "" -"Umschalt: Klick um Auswahl aktivieren/deaktivieren, Ziehen fĂĽr " -"Gummiband-Auswahl" +#: ../src/ui/tool/multi-path-manipulator.cpp:792 +msgid "Scale nodes vertically" +msgstr "Knoten vertikal skalieren" -#: ../src/ui/tools/select-tool.cpp:934 -msgid "" -"Alt: click to select under; scroll mouse-wheel to cycle-select; drag " -"to move selected or select by touch" -msgstr "" -"Alt: Klick um verdeckte Objekte auswählen; Ziehen um gewähltes Objekt " -"zu verschieben oder durch BerĂĽhren auszuwählen" +#: ../src/ui/tool/multi-path-manipulator.cpp:796 +msgid "Skew nodes horizontally" +msgstr "Knoten horizontal krĂĽmmen" -#: ../src/ui/tools/select-tool.cpp:1142 -msgid "Selected object is not a group. Cannot enter." -msgstr "Ausgewähltes Objekt ist keine Gruppe - kann diese nicht betreten." +#: ../src/ui/tool/multi-path-manipulator.cpp:800 +msgid "Skew nodes vertically" +msgstr "Knoten vertikal krĂĽmmen" -#: ../src/ui/tools/spiral-tool.cpp:259 -msgid "Ctrl: snap angle" -msgstr "Strg: Winkel einrasten" +#: ../src/ui/tool/multi-path-manipulator.cpp:804 +msgid "Flip nodes horizontally" +msgstr "Knoten Horizontal umkehren" -#: ../src/ui/tools/spiral-tool.cpp:261 -msgid "Alt: lock spiral radius" -msgstr "Alt: Radius der Spirale einrasten" +#: ../src/ui/tool/multi-path-manipulator.cpp:807 +msgid "Flip nodes vertically" +msgstr "Knoten Vertikal umkehren" -#: ../src/ui/tools/spiral-tool.cpp:400 -#, c-format -msgid "" -"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" -"Spirale: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" +#: ../src/ui/tool/node.cpp:245 +msgid "Cusp node handle" +msgstr "Spitzer Knotenanfasser" -#: ../src/ui/tools/spiral-tool.cpp:421 -msgid "Create spiral" -msgstr "Spirale erstellen" +#: ../src/ui/tool/node.cpp:246 +msgid "Smooth node handle" +msgstr "Weicher Knotenanfasser" -#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 -#, c-format -msgid "%i object selected" -msgid_plural "%i objects selected" -msgstr[0] "%i Objekt ausgewählt" -msgstr[1] "%i Objekte ausgewählt" +#: ../src/ui/tool/node.cpp:247 +msgid "Symmetric node handle" +msgstr "Symmetrischer Knotenanfasser" -#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 -msgid "Nothing selected" -msgstr "Es wurde nichts gewählt" +#: ../src/ui/tool/node.cpp:248 +msgid "Auto-smooth node handle" +msgstr "Knotenanfasser automatisch abrunden" -#: ../src/ui/tools/spray-tool.cpp:199 -#, c-format -msgid "" -"%s. Drag, click or click and scroll to spray copies of the initial " -"selection." -msgstr "" -"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen von Kopien " -"der ersten Auswahl." +#: ../src/ui/tool/node.cpp:432 +msgctxt "Path handle tip" +msgid "more: Shift, Ctrl, Alt" +msgstr "mehr: Umschalttaste, STRG, ALT" + +#: ../src/ui/tool/node.cpp:434 +msgctxt "Path handle tip" +msgid "more: Ctrl, Alt" +msgstr "more: STRG, ALT" -#: ../src/ui/tools/spray-tool.cpp:202 +#: ../src/ui/tool/node.cpp:440 #, c-format +msgctxt "Path handle tip" msgid "" -"%s. Drag, click or click and scroll to spray clones of the initial " -"selection." +"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " +"increments while rotating both handles" msgstr "" -"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen von Klonen " -"der ersten Auswahl." +"Umschalt+Strg+Alt: Länge behalten und Rotationswinkel einrasten auf %g" +"° Stufen, während dem Drehen beider Anfasser" -#: ../src/ui/tools/spray-tool.cpp:205 +#: ../src/ui/tool/node.cpp:445 #, c-format +msgctxt "Path handle tip" msgid "" -"%s. Drag, click or click and scroll to spray in a single path of the " -"initial selection." +"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" msgstr "" -"%s. Ziehen, Klicken oder Klicken und Scrollen zum SprĂĽhen in einen " -"Einzelpfad der ersten Auswahl." - -#: ../src/ui/tools/spray-tool.cpp:656 -msgid "Nothing selected! Select objects to spray." -msgstr "Nichts ausgewählt! Wähle Objekte zum SprĂĽhen aus." - -#: ../src/ui/tools/spray-tool.cpp:731 ../src/widgets/spray-toolbar.cpp:166 -msgid "Spray with copies" -msgstr "SprĂĽhen mit Kopien" - -#: ../src/ui/tools/spray-tool.cpp:735 ../src/widgets/spray-toolbar.cpp:173 -msgid "Spray with clones" -msgstr "SprĂĽhen mit Klonen" +"Ctrl+Alt: Länge behalten und Rotationswinkel einrasten auf %g° Stufen" -#: ../src/ui/tools/spray-tool.cpp:739 -msgid "Spray in single path" -msgstr "SprĂĽhen in einen einzelnen Pfad" +#: ../src/ui/tool/node.cpp:451 +msgctxt "Path handle tip" +msgid "Shift+Alt: preserve handle length and rotate both handles" +msgstr "Umschalt:bewahrt die Anfasserlänge und dreht beide Anfasser" -#: ../src/ui/tools/star-tool.cpp:271 -msgid "Ctrl: snap angle; keep rays radial" -msgstr "Strg: Winkel einrasten; Strahlen bleiben radial ausgerichtet" +#: ../src/ui/tool/node.cpp:454 +msgctxt "Path handle tip" +msgid "Alt: preserve handle length while dragging" +msgstr "Alt: Anfasserlänge beim Ziehen behalten" -#: ../src/ui/tools/star-tool.cpp:417 +#: ../src/ui/tool/node.cpp:461 #, c-format +msgctxt "Path handle tip" msgid "" -"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " +"handles" msgstr "" -"Polygon: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" +"Umschalt: Einrasten des Rotationswinkels auf %g° Stufen und beide " +"Anfasser drehen" -#: ../src/ui/tools/star-tool.cpp:418 +#: ../src/ui/tool/node.cpp:465 #, c-format -msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgctxt "Path handle tip" +msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" -"Stern: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" +"Ctrl: Einrasten des Rotationswinkels auf %g° Stufen, Klicken zum " +"ZurĂĽcknehmen" -#: ../src/ui/tools/star-tool.cpp:446 -msgid "Create star" -msgstr "Stern erstellen" +#: ../src/ui/tool/node.cpp:470 +msgctxt "Path hande tip" +msgid "Shift: rotate both handles by the same angle" +msgstr "Umschalt: Dreht beide Anfasser um den gleichen Winkel" -#: ../src/ui/tools/text-tool.cpp:379 -msgid "Click to edit the text, drag to select part of the text." +#: ../src/ui/tool/node.cpp:477 +#, c-format +msgctxt "Path handle tip" +msgid "Auto node handle: drag to convert to smooth node (%s)" msgstr "" -"Klick zum Ă„ndern des Textes, Ziehen, um einen Teil des Textes " -"zu ändern." +"Automatischer Knoten-Anfasser: Ziehen, um in einen weichen Knoten zu " +"konvertieren (%s)" -#: ../src/ui/tools/text-tool.cpp:381 -msgid "" -"Click to edit the flowed text, drag to select part of the text." +#: ../src/ui/tool/node.cpp:480 +#, c-format +msgctxt "Path handle tip" +msgid "%s: drag to shape the segment (%s)" +msgstr "%s: Ziehen, um das Segment zu formen (%s)" + +#: ../src/ui/tool/node.cpp:500 +#, c-format +msgctxt "Path handle tip" +msgid "Move handle by %s, %s; angle %.2f°, length %s" +msgstr "Anfasser verschieben um %s, %s; Winkel %.2f°, Länge %s" + +#: ../src/ui/tool/node.cpp:1266 +msgctxt "Path node tip" +msgid "Shift: drag out a handle, click to toggle selection" msgstr "" -"Klick zum Ă„ndern des FlieĂźtextes, Ziehen, um einen Teil des " -"Textes zu ändern." +"Umschalt: Anfasser nach auĂźen ziehen, Klicken um Auswahl umzuschalten" -#: ../src/ui/tools/text-tool.cpp:435 -msgid "Create text" -msgstr "Text erstellen" +#: ../src/ui/tool/node.cpp:1268 +msgctxt "Path node tip" +msgid "Shift: click to toggle selection" +msgstr "Umschalt: Klick um Auswahl umzuschalten" -#: ../src/ui/tools/text-tool.cpp:460 -msgid "Non-printable character" -msgstr "Nicht druckbares Zeichen" +#: ../src/ui/tool/node.cpp:1273 +msgctxt "Path node tip" +msgid "Ctrl+Alt: move along handle lines, click to delete node" +msgstr "" +"STRG+Alt: Entlang der Anfasser-Linien verschieben. Klicken, um Knoten " +"zu löschen" -#: ../src/ui/tools/text-tool.cpp:475 -msgid "Insert Unicode character" -msgstr "Unicode-Zeichen einfĂĽgen" +#: ../src/ui/tool/node.cpp:1276 +msgctxt "Path node tip" +msgid "Ctrl: move along axes, click to change node type" +msgstr "" +"STRG: Verschieben entlang der Achsen. Klicken, um Knotentyp zu " +"verändern" + +#: ../src/ui/tool/node.cpp:1280 +msgctxt "Path node tip" +msgid "Alt: sculpt nodes" +msgstr "Alt: Knoten formen" -#: ../src/ui/tools/text-tool.cpp:510 +#: ../src/ui/tool/node.cpp:1288 #, c-format -msgid "Unicode (Enter to finish): %s: %s" -msgstr "Unicode (Eingabe zum Abschliessen): %s: %s" +msgctxt "Path node tip" +msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" +msgstr "%s: Ziehen, um den Pfad zu formen (mehr: Umschalt, STRG, Alt)" -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 -msgid "Unicode (Enter to finish): " -msgstr "Unicode (Eingabe zum Abschliessen): " +#: ../src/ui/tool/node.cpp:1291 +#, c-format +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to toggle scale/rotation handles " +"(more: Shift, Ctrl, Alt)" +msgstr "" +"%s:Ziehen, um den Pfad zu formen, Klicken um Skalieren/Rotieren der " +"Anfasser umzuschalten (mehr: Umschalt, Strg, Alt)" -#: ../src/ui/tools/text-tool.cpp:595 +#: ../src/ui/tool/node.cpp:1294 #, c-format -msgid "Flowed text frame: %s × %s" -msgstr "FlieĂźtext-Rahmen: %s Ă— %s" +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to select only this node (more: " +"Shift, Ctrl, Alt)" +msgstr "" +"%s: Ziehen, um den Pfad zu formen, Klicken, um nur diesen Knoten " +"auszuwählen (mehr: Umschalt, Strg, Alt)" -#: ../src/ui/tools/text-tool.cpp:653 -msgid "Type text; Enter to start new line." -msgstr "Text schreiben; Eingabe, um eine neue Zeile zu beginnen." +#: ../src/ui/tool/node.cpp:1305 +#, c-format +msgctxt "Path node tip" +msgid "Move node by %s, %s" +msgstr "Knoten verschieben um %s, %s" -#: ../src/ui/tools/text-tool.cpp:664 -msgid "Flowed text is created." -msgstr "FlieĂźtext wird erzeugt." +#: ../src/ui/tool/node.cpp:1316 +msgid "Symmetric node" +msgstr "symmetrischer Knoten" -#: ../src/ui/tools/text-tool.cpp:665 -msgid "Create flowed text" -msgstr "FlieĂźtext erstellen" +#: ../src/ui/tool/node.cpp:1317 +msgid "Auto-smooth node" +msgstr "Knoten automatisch glätten" -#: ../src/ui/tools/text-tool.cpp:667 +#: ../src/ui/tool/node-tool.cpp:553 +msgctxt "Node tool tip" msgid "" -"The frame is too small for the current font size. Flowed text not " -"created." +"Shift: drag to add nodes to the selection, click to toggle object " +"selection" msgstr "" -"Der Rahmen ist zu klein fĂĽr die aktuelle Schriftgröße. Der FlieĂźtext " -"wurde nicht erzeugt." - -#: ../src/ui/tools/text-tool.cpp:803 -msgid "No-break space" -msgstr "Untrennbares Leerzeichen" +"Shift: Ziehen, um Knoten zur Auswahl hinzuzufĂĽgen. Klicken, um die " +"Auswahl umzuschalten." -#: ../src/ui/tools/text-tool.cpp:804 -msgid "Insert no-break space" -msgstr "Untrennbares Leerzeichen einfĂĽgen" +#: ../src/ui/tool/node-tool.cpp:557 +msgctxt "Node tool tip" +msgid "Shift: drag to add nodes to the selection" +msgstr "Umschalt: Ziehen, um Knoten zur Auswahl hinzuzufĂĽgen" -#: ../src/ui/tools/text-tool.cpp:840 -msgid "Make bold" -msgstr "Fett" +#: ../src/ui/tool/node-tool.cpp:569 +#, c-format +msgid "%u of %u node selected." +msgid_plural "%u of %u nodes selected." +msgstr[0] "%u von %u Knoten ausgewählt." +msgstr[1] "%u von %u Knoten ausgewählt." -#: ../src/ui/tools/text-tool.cpp:857 -msgid "Make italic" -msgstr "Kursiv" +#: ../src/ui/tool/node-tool.cpp:575 +#, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" +msgstr "" +"%s Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu " +"bearbeiten (mehr: Umschalt)" -#: ../src/ui/tools/text-tool.cpp:895 -msgid "New line" -msgstr "Neue Zeile" +#: ../src/ui/tool/node-tool.cpp:581 +#, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click clear the selection" +msgstr "%s Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" -#: ../src/ui/tools/text-tool.cpp:936 -msgid "Backspace" -msgstr "RĂĽckschritt" +#: ../src/ui/tool/node-tool.cpp:590 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to edit only this object" +msgstr "" +"Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu bearbeiten." -#: ../src/ui/tools/text-tool.cpp:990 -msgid "Kern to the left" -msgstr "Unterschneidung nach links" +#: ../src/ui/tool/node-tool.cpp:593 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to clear the selection" +msgstr "Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" -#: ../src/ui/tools/text-tool.cpp:1014 -msgid "Kern to the right" -msgstr "Unterschneidung nach rechts" +#: ../src/ui/tool/node-tool.cpp:598 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit, click to edit this object (more: Shift)" +msgstr "" +"Ziehen um Objekte zum Bearbeiten auszuwählen und Klicken, um das Objekt zu " +"bearbeiten (mehr: Shift)" -#: ../src/ui/tools/text-tool.cpp:1038 -msgid "Kern up" -msgstr "Unterschneidung nach oben" +#: ../src/ui/tool/node-tool.cpp:601 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit" +msgstr "Ziehen, um Objekte zum bearbeiten auszuwählen" -#: ../src/ui/tools/text-tool.cpp:1062 -msgid "Kern down" -msgstr "Unterschneidung nach unten" +#: ../src/ui/tool/path-manipulator.cpp:821 +msgid "Scale handle" +msgstr "Anfasser skalieren" -#: ../src/ui/tools/text-tool.cpp:1137 -msgid "Rotate counterclockwise" -msgstr "Entgegen Uhrzeigersinn drehen" +#: ../src/ui/tool/path-manipulator.cpp:845 +msgid "Rotate handle" +msgstr "Anfasser rotieren" -#: ../src/ui/tools/text-tool.cpp:1157 -msgid "Rotate clockwise" -msgstr "Im Uhrzeigersinn drehen" +#. We need to call MPM's method because it could have been our last node +#: ../src/ui/tool/path-manipulator.cpp:1384 +#: ../src/widgets/node-toolbar.cpp:409 +msgid "Delete node" +msgstr "Knoten löschen" -#: ../src/ui/tools/text-tool.cpp:1173 -msgid "Contract line spacing" -msgstr "Zeilenabstand vermindern" +#: ../src/ui/tool/path-manipulator.cpp:1392 +msgid "Cycle node type" +msgstr "Knotentyp ändern" -#: ../src/ui/tools/text-tool.cpp:1179 -msgid "Contract letter spacing" -msgstr "Zeichenabstand vermindern" +#: ../src/ui/tool/path-manipulator.cpp:1407 +msgid "Drag handle" +msgstr "Anfasser ziehen" -#: ../src/ui/tools/text-tool.cpp:1196 -msgid "Expand line spacing" -msgstr "Zeilenabstand vergrößern" +#: ../src/ui/tool/path-manipulator.cpp:1416 +msgid "Retract handle" +msgstr "Anfasser zurĂĽckziehen" -#: ../src/ui/tools/text-tool.cpp:1202 -msgid "Expand letter spacing" -msgstr "Zeichenabstand vergrößern" +#: ../src/ui/tool/transform-handle-set.cpp:195 +msgctxt "Transform handle tip" +msgid "Shift+Ctrl: scale uniformly about the rotation center" +msgstr "Umschalt + STRG: Um Mittelpunkt einheitlich skalieren" -#: ../src/ui/tools/text-tool.cpp:1332 -msgid "Paste text" -msgstr "Text einfĂĽgen" +#: ../src/ui/tool/transform-handle-set.cpp:197 +msgctxt "Transform handle tip" +msgid "Ctrl: scale uniformly" +msgstr "Strg: einheitlich skalieren" -#: ../src/ui/tools/text-tool.cpp:1583 -#, fuzzy, c-format +#: ../src/ui/tool/transform-handle-set.cpp:202 +msgctxt "Transform handle tip" msgid "" -"Type or edit flowed text (%d character%s); Enter to start new " -"paragraph." -msgid_plural "" -"Type or edit flowed text (%d characters%s); Enter to start new " -"paragraph." -msgstr[0] "" -"FlieĂźtext schreiben (%d Zeichen%s); Eingabe, um einen neuen Absatz zu " -"beginnen." -msgstr[1] "" -"FlieĂźtext schreiben (%d Zeichen%s); Eingabe, um einen neuen Absatz zu " -"beginnen." +"Shift+Alt: scale using an integer ratio about the rotation center" +msgstr "Umschalt: Skalieren mit Ganzzahl-Faktor um den Mittelpunkt" -#: ../src/ui/tools/text-tool.cpp:1585 -#, fuzzy, c-format -msgid "Type or edit text (%d character%s); Enter to start new line." -msgid_plural "" -"Type or edit text (%d characters%s); Enter to start new line." -msgstr[0] "" -"Text schreiben (%d Zeichen%s); Eingabe, um eine neue Zeile zu " -"beginnen." -msgstr[1] "" -"Text schreiben (%d Zeichen%s); Eingabe, um eine neue Zeile zu " -"beginnen." +#: ../src/ui/tool/transform-handle-set.cpp:204 +msgctxt "Transform handle tip" +msgid "Shift: scale from the rotation center" +msgstr "Umschalt: Skalieren aus dem Mittelpunkt heraus" -#: ../src/ui/tools/text-tool.cpp:1695 -msgid "Type text" -msgstr "Text eingeben" +#: ../src/ui/tool/transform-handle-set.cpp:207 +msgctxt "Transform handle tip" +msgid "Alt: scale using an integer ratio" +msgstr "Alt: Skalieren mit Ganzzahl-Faktor" -#: ../src/ui/tools/tool-base.cpp:703 -msgid "Space+mouse move to pan canvas" -msgstr "Leertaste+Mausziehen um die Leinwand zu verschieben" +#: ../src/ui/tool/transform-handle-set.cpp:209 +msgctxt "Transform handle tip" +msgid "Scale handle: drag to scale the selection" +msgstr "Skaliere Anfasser: Ziehen um die Auswahl zu skalieren" -#: ../src/ui/tools/tweak-tool.cpp:174 +#: ../src/ui/tool/transform-handle-set.cpp:214 #, c-format -msgid "%s. Drag to move." -msgstr "%s. Ziehen zum verschieben." +msgctxt "Transform handle tip" +msgid "Scale by %.2f%% x %.2f%%" +msgstr "Scaieren mit %.2f%% x %.2f%%" -#: ../src/ui/tools/tweak-tool.cpp:178 +#: ../src/ui/tool/transform-handle-set.cpp:438 #, c-format -msgid "%s. Drag or click to move in; with Shift to move out." +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " +"increments" msgstr "" -"%s. Ziehen oder Klicken zum verschieben hinein ; mit Umschalttaste " -"zum verschieben hinaus." +"Shift+Ctrl: Um die gegenĂĽberliegende Ecke rotieren und Einrasten des " +"Winkels um %f° Stufen" -#: ../src/ui/tools/tweak-tool.cpp:186 -#, c-format -msgid "%s. Drag or click to move randomly." -msgstr "%s. Ziehen oder Klicken zum zufälligen verschieben." +#: ../src/ui/tool/transform-handle-set.cpp:441 +msgctxt "Transform handle tip" +msgid "Shift: rotate around the opposite corner" +msgstr "Umschalt: dreht um die gegenĂĽberliegende Ecke" -#: ../src/ui/tools/tweak-tool.cpp:190 +#: ../src/ui/tool/transform-handle-set.cpp:445 #, c-format -msgid "%s. Drag or click to scale down; with Shift to scale up." -msgstr "" -"%s. Ziehen oder Klicken zum kleiner skalieren; mit Umschalttaste zum " -"größer skalieren." +msgctxt "Transform handle tip" +msgid "Ctrl: snap angle to %f° increments" +msgstr "Strg: Winkel um %f° Stufen einrasten" -#: ../src/ui/tools/tweak-tool.cpp:198 -#, c-format +#: ../src/ui/tool/transform-handle-set.cpp:447 +msgctxt "Transform handle tip" msgid "" -"%s. Drag or click to rotate clockwise; with Shift, " -"counterclockwise." -msgstr "" -"%s. Ziehen oder Klicken zum Drehen im Uhrzeigersinn; mit " -"Umschalttaste zum gegen den Uhrzeigersinn." - -#: ../src/ui/tools/tweak-tool.cpp:206 -#, c-format -msgid "%s. Drag or click to duplicate; with Shift, delete." +"Rotation handle: drag to rotate the selection around the rotation " +"center" msgstr "" -"%s. Ziehen oder Klicken zum Duplizieren; mit Umschalttaste zum " -"Löschen." - -#: ../src/ui/tools/tweak-tool.cpp:214 -#, c-format -msgid "%s. Drag to push paths." -msgstr "%s. Ziehen zum Schieben der Pfade." +"Rotationsanfaller: Ziehen, um die Auswahl um den Mittelpunkt zu " +"rotieren" -#: ../src/ui/tools/tweak-tool.cpp:218 +#. event +#: ../src/ui/tool/transform-handle-set.cpp:452 #, c-format -msgid "%s. Drag or click to inset paths; with Shift to outset." -msgstr "" -"%s. Ziehen oder Klicken zieht Pfade zusammen; mit Umschalt " -"schiebt sie auseinander." +msgctxt "Transform handle tip" +msgid "Rotate by %.2f°" +msgstr "Rotieren um %.2f°" -#: ../src/ui/tools/tweak-tool.cpp:226 +#: ../src/ui/tool/transform-handle-set.cpp:578 #, c-format -msgid "%s. Drag or click to attract paths; with Shift to repel." +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: skew about the rotation center with snapping to %f° " +"increments" msgstr "" -"%s. Ziehen oder Klicken zieht Pfade an; mit Umschalt stößt es sie " -"ab." - -#: ../src/ui/tools/tweak-tool.cpp:234 -#, c-format -msgid "%s. Drag or click to roughen paths." -msgstr "%s. Ziehen oder Klicken um Pfad aufzurauen." +"Umschalt+Strg: Um das Rotationszentrum krĂĽmmen mit Einrasten auf %f° " +"Stufen" -#: ../src/ui/tools/tweak-tool.cpp:238 -#, c-format -msgid "%s. Drag or click to paint objects with color." -msgstr "%s. Ziehen oder Klicken um Objekte zu bemalen mit Farbe." +#: ../src/ui/tool/transform-handle-set.cpp:581 +msgctxt "Transform handle tip" +msgid "Shift: skew about the rotation center" +msgstr "Umschalt: Um Mittelpunkt abschrägen" -#: ../src/ui/tools/tweak-tool.cpp:242 +#: ../src/ui/tool/transform-handle-set.cpp:585 #, c-format -msgid "%s. Drag or click to randomize colors." -msgstr "%s. Ziehen oder Klicken um Farben zufällig zu setzen." +msgctxt "Transform handle tip" +msgid "Ctrl: snap skew angle to %f° increments" +msgstr "Strg: Einrasten des Abschrägungswinkels um %f° Stufen" -#: ../src/ui/tools/tweak-tool.cpp:246 -#, c-format +#: ../src/ui/tool/transform-handle-set.cpp:588 +msgctxt "Transform handle tip" msgid "" -"%s. Drag or click to increase blur; with Shift to decrease." +"Skew handle: drag to skew (shear) selection about the opposite handle" msgstr "" -"%s. Ziehen oder Klicken um Weichheit zu erhöhen; mit Shift " -"verringern." - -#: ../src/ui/tools/tweak-tool.cpp:1193 -msgid "Nothing selected! Select objects to tweak." -msgstr "Nichts ausgewählt! Wähle Objekte zum Justieren aus." - -#: ../src/ui/tools/tweak-tool.cpp:1227 -msgid "Move tweak" -msgstr "Verschieben-Justage" - -# Was bewegt sich? -#: ../src/ui/tools/tweak-tool.cpp:1231 -msgid "Move in/out tweak" -msgstr "Optimieren durch Zusammen-/Auseinanderbewegen" - -#: ../src/ui/tools/tweak-tool.cpp:1235 -msgid "Move jitter tweak" -msgstr "Bewegungsversatz-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1239 -msgid "Scale tweak" -msgstr "Skalieren-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1243 -msgid "Rotate tweak" -msgstr "Rotieren-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1247 -msgid "Duplicate/delete tweak" -msgstr "Dulizieren-/Löschen-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1251 -msgid "Push path tweak" -msgstr "Pfad-Verschieben-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1255 -msgid "Shrink/grow path tweak" -msgstr "Schrumpfen-/Weiten-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1259 -msgid "Attract/repel path tweak" -msgstr "Pfad-Anziehen-/-AbstoĂźen-Justage" - -#: ../src/ui/tools/tweak-tool.cpp:1263 -msgid "Roughen path tweak" -msgstr "Pfadrauheit-Justage" +"KrĂĽmmungs-Anfasser: Ziehen, um die Auswahl um den gegenĂĽberliegenden " +"Anfasser zu krĂĽmmen (scheren)" -#: ../src/ui/tools/tweak-tool.cpp:1267 -msgid "Color paint tweak" -msgstr "Farb-Justage" +#: ../src/ui/tool/transform-handle-set.cpp:594 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew horizontally by %.2f°" +msgstr "Horizontal um %.2f° abschrägen" -#: ../src/ui/tools/tweak-tool.cpp:1271 -msgid "Color jitter tweak" -msgstr "Farbrauschen-Justage" +#: ../src/ui/tool/transform-handle-set.cpp:597 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew vertically by %.2f°" +msgstr "Vertikal um %.2f° abschrägen" -#: ../src/ui/tools/tweak-tool.cpp:1275 -msgid "Blur tweak" -msgstr "Unschärfe-Justage" +#: ../src/ui/tool/transform-handle-set.cpp:656 +msgctxt "Transform handle tip" +msgid "Rotation center: drag to change the origin of transforms" +msgstr "" +"Rotatioszentrum: Ziehen, um den Ursprung der Transformationen zu " +"ändern" #: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "Blur (%)" @@ -23859,6 +22192,7 @@ msgid "L_eft:" msgstr "Links:" #: ../src/ui/widget/page-sizer.cpp:239 +#: ../share/extensions/guides_creator.inx.h:17 msgid "Left margin" msgstr "Linker Rand" @@ -23867,6 +22201,7 @@ msgid "Ri_ght:" msgstr "Rechts:" #: ../src/ui/widget/page-sizer.cpp:240 +#: ../share/extensions/guides_creator.inx.h:18 msgid "Right margin" msgstr "Rechter Rand" @@ -24079,7 +22414,7 @@ msgstr "N/A" #: ../src/ui/widget/selected-style.cpp:180 #: ../src/ui/widget/selected-style.cpp:1088 #: ../src/ui/widget/selected-style.cpp:1089 -#: ../src/widgets/gradient-toolbar.cpp:162 +#: ../src/widgets/gradient-toolbar.cpp:177 msgid "Nothing selected" msgstr "Nichts ausgewählt" @@ -24338,11 +22673,11 @@ msgstr "0 (durchsichtig)" msgid "100% (opaque)" msgstr "100% (undurchsichtig)" -#: ../src/ui/widget/selected-style.cpp:1362 +#: ../src/ui/widget/selected-style.cpp:1357 msgid "Adjust alpha" msgstr "Alpha anpassen" -#: ../src/ui/widget/selected-style.cpp:1364 +#: ../src/ui/widget/selected-style.cpp:1359 #, c-format msgid "" "Adjusting alpha: was %.3g, now %.3g (diff %.3g); with CtrlStrg wird Sättigung, mit Umschalt die Sättigung " "eingestellt, ohne Zusatztaste fĂĽr Farbtom" -#: ../src/ui/widget/selected-style.cpp:1368 +#: ../src/ui/widget/selected-style.cpp:1363 msgid "Adjust saturation" msgstr "Sättigung anpassen" -#: ../src/ui/widget/selected-style.cpp:1370 +#: ../src/ui/widget/selected-style.cpp:1365 #, c-format msgid "" "Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " @@ -24368,11 +22703,11 @@ msgstr "" "mit Strg wird Helligkeit, mit Alt der Alphawert angepasst, " "ohne Zusatztaste fĂĽr Farbton" -#: ../src/ui/widget/selected-style.cpp:1374 +#: ../src/ui/widget/selected-style.cpp:1369 msgid "Adjust lightness" msgstr "Helligkeit anpassen" -#: ../src/ui/widget/selected-style.cpp:1376 +#: ../src/ui/widget/selected-style.cpp:1371 #, c-format msgid "" "Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " @@ -24383,11 +22718,11 @@ msgstr "" "mit Umschalt wird Sättigung, mit Alt der Alphawert angepasst, " "ohne Zusatztaste fĂĽr Farbwert." -#: ../src/ui/widget/selected-style.cpp:1380 +#: ../src/ui/widget/selected-style.cpp:1375 msgid "Adjust hue" msgstr "Farbton anpassen" -#: ../src/ui/widget/selected-style.cpp:1382 +#: ../src/ui/widget/selected-style.cpp:1377 #, c-format msgid "" "Adjusting hue: was %.3g, now %.3g (diff %.3g); with ShiftUmschalt wird Sättigung, mit Alt wird Alphawert und mit " "Strg Helligkeit angepasst" -#: ../src/ui/widget/selected-style.cpp:1500 -#: ../src/ui/widget/selected-style.cpp:1514 +#: ../src/ui/widget/selected-style.cpp:1495 +#: ../src/ui/widget/selected-style.cpp:1509 msgid "Adjust stroke width" msgstr "Breite der Konturlinie" -#: ../src/ui/widget/selected-style.cpp:1501 +#: ../src/ui/widget/selected-style.cpp:1496 #, c-format msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" msgstr "" @@ -24460,7 +22795,7 @@ msgstr "Fluchtpunkte zusammenfĂĽhren" msgid "3D box: Move vanishing point" msgstr "3D-Box: Fluchtpunkt verschieben" -#: ../src/vanishing-point.cpp:327 +#: ../src/vanishing-point.cpp:326 #, c-format msgid "Finite vanishing point shared by %d box" msgid_plural "" @@ -24473,7 +22808,7 @@ msgstr[1] "" #. This won't make sense any more when infinite VPs are not shown on the canvas, #. but currently we update the status message anyway -#: ../src/vanishing-point.cpp:334 +#: ../src/vanishing-point.cpp:333 #, c-format msgid "Infinite vanishing point shared by %d box" msgid_plural "" @@ -24484,7 +22819,7 @@ msgstr[1] "" "Unendlicher Fluchtpunkt benutzt von %d Boxen; Ziehen mit " "Umschalttaste zum Separieren der markierten Boxen" -#: ../src/vanishing-point.cpp:342 +#: ../src/vanishing-point.cpp:341 #, c-format msgid "" "shared by %d box; drag with Shift to separate selected box(es)" @@ -24499,11 +22834,15 @@ msgstr[1] "" msgid "File" msgstr "_Datei" +#: ../src/verbs.cpp:156 ../src/widgets/calligraphy-toolbar.cpp:643 +msgid "Edit" +msgstr "Bearbeiten" + #: ../src/verbs.cpp:232 msgid "Context" msgstr "Kontext" -#: ../src/verbs.cpp:251 ../src/verbs.cpp:2223 +#: ../src/verbs.cpp:251 ../src/verbs.cpp:2226 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" @@ -24537,8 +22876,8 @@ msgstr "Zur vorherigen Ebene gewechselt." msgid "Cannot go before first layer." msgstr "Kann nicht vor erste Ebene wechseln." -#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1396 -#: ../src/verbs.cpp:1402 ../src/verbs.cpp:1426 ../src/verbs.cpp:1441 +#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1392 +#: ../src/verbs.cpp:1398 ../src/verbs.cpp:1422 ../src/verbs.cpp:1437 msgid "No current layer." msgstr "Keine aktuelle Ebene." @@ -24586,162 +22925,162 @@ msgstr "Ebene duplizieren" msgid "Duplicated layer." msgstr "Duplizierte Ebene." -#: ../src/verbs.cpp:1391 +#: ../src/verbs.cpp:1387 msgid "Delete layer" msgstr "Ebene löschen" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1394 +#: ../src/verbs.cpp:1390 msgid "Deleted layer." msgstr "Ebene wurde gelöscht." -#: ../src/verbs.cpp:1411 +#: ../src/verbs.cpp:1407 msgid "Show all layers" msgstr "Alle Ebenen zeigen" -#: ../src/verbs.cpp:1416 +#: ../src/verbs.cpp:1412 msgid "Hide all layers" msgstr "Alle Ebenen ausblenden" -#: ../src/verbs.cpp:1421 +#: ../src/verbs.cpp:1417 msgid "Lock all layers" msgstr "Alle Ebenen sperren" -#: ../src/verbs.cpp:1435 +#: ../src/verbs.cpp:1431 msgid "Unlock all layers" msgstr "Alle Ebenen entsperren" -#: ../src/verbs.cpp:1519 +#: ../src/verbs.cpp:1515 msgid "Flip horizontally" msgstr "Horizontal umkehren" -#: ../src/verbs.cpp:1524 +#: ../src/verbs.cpp:1520 msgid "Flip vertically" msgstr "Vertikal umkehren" #. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, #. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language #. code); otherwise leave as "tutorial-basic.svg". -#: ../src/verbs.cpp:2105 +#: ../src/verbs.cpp:2108 msgid "tutorial-basic.svg" msgstr "tutorial-basic.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2109 +#: ../src/verbs.cpp:2112 msgid "tutorial-shapes.svg" msgstr "tutorial-shapes.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2113 +#: ../src/verbs.cpp:2116 msgid "tutorial-advanced.svg" msgstr "tutorial-advanced.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2117 +#: ../src/verbs.cpp:2120 msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.de.svg" -#: ../src/verbs.cpp:2120 +#: ../src/verbs.cpp:2123 #, fuzzy msgid "tutorial-tracing-pixelart.svg" msgstr "tutorial-tracing.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2124 +#: ../src/verbs.cpp:2127 msgid "tutorial-calligraphy.svg" msgstr "tutorial-calligraphy.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2128 +#: ../src/verbs.cpp:2131 msgid "tutorial-interpolate.svg" msgstr "tutorial-interpolate.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2132 +#: ../src/verbs.cpp:2135 msgid "tutorial-elements.svg" msgstr "tutorial-elements.de.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2136 +#: ../src/verbs.cpp:2139 msgid "tutorial-tips.svg" msgstr "tutorial-tips.de.svg" -#: ../src/verbs.cpp:2322 ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2325 ../src/verbs.cpp:2915 msgid "Unlock all objects in the current layer" msgstr "Alle Objekte in der aktuellen Ebene entsperren" -#: ../src/verbs.cpp:2326 ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2329 ../src/verbs.cpp:2917 msgid "Unlock all objects in all layers" msgstr "Alle Objekte in allen Ebenen entsperren" -#: ../src/verbs.cpp:2330 ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2333 ../src/verbs.cpp:2919 msgid "Unhide all objects in the current layer" msgstr "Alle Objekte in der aktuellen Ebene einblenden" -#: ../src/verbs.cpp:2334 ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2337 ../src/verbs.cpp:2921 msgid "Unhide all objects in all layers" msgstr "Alle Objekte in allen Ebenen einblenden" -#: ../src/verbs.cpp:2349 +#: ../src/verbs.cpp:2352 msgid "Does nothing" msgstr "Hat keine Funktion" -#: ../src/verbs.cpp:2352 +#: ../src/verbs.cpp:2355 msgid "Create new document from the default template" msgstr "Ein neues Dokument mit der Standardvorlage anlegen" -#: ../src/verbs.cpp:2354 +#: ../src/verbs.cpp:2357 msgid "_Open..." msgstr "Ă–_ffnen…" -#: ../src/verbs.cpp:2355 +#: ../src/verbs.cpp:2358 msgid "Open an existing document" msgstr "Ein bestehendes Dokument öffnen" -#: ../src/verbs.cpp:2356 +#: ../src/verbs.cpp:2359 msgid "Re_vert" msgstr "_ZurĂĽcksetzen" -#: ../src/verbs.cpp:2357 +#: ../src/verbs.cpp:2360 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" "Das Dokument auf die zuletzt gespeicherte Version zurĂĽcksetzen (Ă„nderungen " "gehen verloren)" -#: ../src/verbs.cpp:2358 +#: ../src/verbs.cpp:2361 msgid "Save document" msgstr "Das Dokument speichern" -#: ../src/verbs.cpp:2360 +#: ../src/verbs.cpp:2363 msgid "Save _As..." msgstr "Speichern _unter…" -#: ../src/verbs.cpp:2361 +#: ../src/verbs.cpp:2364 msgid "Save document under a new name" msgstr "Dokument unter einem anderen Namen speichern" -#: ../src/verbs.cpp:2362 +#: ../src/verbs.cpp:2365 msgid "Save a Cop_y..." msgstr "_Kopie speichern unter…" -#: ../src/verbs.cpp:2363 +#: ../src/verbs.cpp:2366 msgid "Save a copy of the document under a new name" msgstr "Eine Kopie des Dokuments unter einem anderen Namen speichern" -#: ../src/verbs.cpp:2364 +#: ../src/verbs.cpp:2367 msgid "_Print..." msgstr "_Drucken…" -#: ../src/verbs.cpp:2364 +#: ../src/verbs.cpp:2367 msgid "Print document" msgstr "Das Dokument drucken" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2367 +#: ../src/verbs.cpp:2370 msgid "Clean _up document" msgstr "Dokument säubern" -#: ../src/verbs.cpp:2367 +#: ../src/verbs.cpp:2370 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" @@ -24749,140 +23088,147 @@ msgstr "" "Unbenutzte vordefinierte Elemente (z.B. Farbverläufe oder Ausschneidepfade) " "aus den <defs> des Dokuments entfernen" -#: ../src/verbs.cpp:2369 +#: ../src/verbs.cpp:2372 msgid "_Import..." msgstr "_Importieren…" -#: ../src/verbs.cpp:2370 +#: ../src/verbs.cpp:2373 msgid "Import a bitmap or SVG image into this document" msgstr "Ein Bitmap- oder SVG-Bild in dieses Dokument importieren" -#. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), -#: ../src/verbs.cpp:2372 +#: ../src/verbs.cpp:2374 +msgid "_Export Bitmap..." +msgstr "Bitmap _exportieren…" + +#: ../src/verbs.cpp:2375 +msgid "Export this document or a selection as a bitmap image" +msgstr "Das Dokument oder eine Auswahl als Bitmap-Bild exportieren" + +#: ../src/verbs.cpp:2376 msgid "Import Clip Art..." msgstr "Importiere Clip Art..." -#: ../src/verbs.cpp:2373 +#: ../src/verbs.cpp:2377 msgid "Import clipart from Open Clip Art Library" msgstr "Import aus der Open Clip Art Library" #. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), -#: ../src/verbs.cpp:2375 +#: ../src/verbs.cpp:2379 msgid "N_ext Window" msgstr "Nä_chstes Fenster" -#: ../src/verbs.cpp:2376 +#: ../src/verbs.cpp:2380 msgid "Switch to the next document window" msgstr "Zum nächsten Dokumentenfenster umschalten" -#: ../src/verbs.cpp:2377 +#: ../src/verbs.cpp:2381 msgid "P_revious Window" msgstr "Vor_heriges Fenster" -#: ../src/verbs.cpp:2378 +#: ../src/verbs.cpp:2382 msgid "Switch to the previous document window" msgstr "Zum vorherigen Dokumentenfenster umschalten" -#: ../src/verbs.cpp:2379 +#: ../src/verbs.cpp:2383 msgid "_Close" msgstr "S_chlieĂźen" -#: ../src/verbs.cpp:2380 +#: ../src/verbs.cpp:2384 msgid "Close this document window" msgstr "Dieses Dokumentenfenster schlieĂźen" -#: ../src/verbs.cpp:2381 +#: ../src/verbs.cpp:2385 msgid "_Quit" msgstr "_Beenden" -#: ../src/verbs.cpp:2381 +#: ../src/verbs.cpp:2385 msgid "Quit Inkscape" msgstr "Inkscape verlassen" -#: ../src/verbs.cpp:2382 +#: ../src/verbs.cpp:2386 msgid "_Templates..." msgstr "Vorlagen…" -#: ../src/verbs.cpp:2383 +#: ../src/verbs.cpp:2387 msgid "Create new project from template" msgstr "Ein neues Dokument aus Vorlage anlegen" -#: ../src/verbs.cpp:2386 +#: ../src/verbs.cpp:2390 msgid "Undo last action" msgstr "Letzten Bearbeitungsschritt rĂĽckgängig machen" # !!! Abiword just says "Letzten Befehl wiederholen" -#: ../src/verbs.cpp:2389 +#: ../src/verbs.cpp:2393 msgid "Do again the last undone action" msgstr "Einen rĂĽckgängig gemachten Bearbeitungsschritt erneut durchfĂĽhren" -#: ../src/verbs.cpp:2390 +#: ../src/verbs.cpp:2394 msgid "Cu_t" msgstr "A_usschneiden" -#: ../src/verbs.cpp:2391 +#: ../src/verbs.cpp:2395 msgid "Cut selection to clipboard" msgstr "Die gewählten Objekte in die Zwischenablage verschieben" -#: ../src/verbs.cpp:2392 +#: ../src/verbs.cpp:2396 msgid "_Copy" msgstr "_Kopieren" -#: ../src/verbs.cpp:2393 +#: ../src/verbs.cpp:2397 msgid "Copy selection to clipboard" msgstr "Die gewählten Objekte in die Zwischenablage kopieren" -#: ../src/verbs.cpp:2394 +#: ../src/verbs.cpp:2398 msgid "_Paste" msgstr "E_infĂĽgen" -#: ../src/verbs.cpp:2395 +#: ../src/verbs.cpp:2399 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "" "Objekte aus der Zwischenablage an der Mausposition einfĂĽgen, oder Text " "einfĂĽgen" -#: ../src/verbs.cpp:2396 +#: ../src/verbs.cpp:2400 msgid "Paste _Style" msgstr "Stil an_wenden" -#: ../src/verbs.cpp:2397 +#: ../src/verbs.cpp:2401 msgid "Apply the style of the copied object to selection" msgstr "Stil des kopierten Objekts auf Auswahl anwenden" -#: ../src/verbs.cpp:2399 +#: ../src/verbs.cpp:2403 msgid "Scale selection to match the size of the copied object" msgstr "Auswahl auf Größe des kopierten Objekts skalieren" -#: ../src/verbs.cpp:2400 +#: ../src/verbs.cpp:2404 msgid "Paste _Width" msgstr "_Breite einfĂĽgen" -#: ../src/verbs.cpp:2401 +#: ../src/verbs.cpp:2405 msgid "Scale selection horizontally to match the width of the copied object" msgstr "Auswahl horizontal auf Breite des kopierten Objekts skalieren" -#: ../src/verbs.cpp:2402 +#: ../src/verbs.cpp:2406 msgid "Paste _Height" msgstr "_Höhe einfĂĽgen" -#: ../src/verbs.cpp:2403 +#: ../src/verbs.cpp:2407 msgid "Scale selection vertically to match the height of the copied object" msgstr "Auswahl vertikal auf Höhe des kopierten Objekts skalieren" -#: ../src/verbs.cpp:2404 +#: ../src/verbs.cpp:2408 msgid "Paste Size Separately" msgstr "Größe getrennt einfĂĽgen" -#: ../src/verbs.cpp:2405 +#: ../src/verbs.cpp:2409 msgid "Scale each selected object to match the size of the copied object" msgstr "Jedes ausgewählte Objekt auf Größe des kopierten Objekts skalieren" -#: ../src/verbs.cpp:2406 +#: ../src/verbs.cpp:2410 msgid "Paste Width Separately" msgstr "Breite getrennt einfĂĽgen" -#: ../src/verbs.cpp:2407 +#: ../src/verbs.cpp:2411 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" @@ -24890,11 +23236,11 @@ msgstr "" "Jedes ausgewählte Objekt horizontal auf Breite des kopierten Objekts " "skalieren" -#: ../src/verbs.cpp:2408 +#: ../src/verbs.cpp:2412 msgid "Paste Height Separately" msgstr "Höhe getrennt einfĂĽgen" -#: ../src/verbs.cpp:2409 +#: ../src/verbs.cpp:2413 msgid "" "Scale each selected object vertically to match the height of the copied " "object" @@ -24902,69 +23248,69 @@ msgstr "" "Jedes ausgewählte Objekt vertikal auf Höhe des kopierten Objekts skalieren" # !!! translation is a bit clumsy... -#: ../src/verbs.cpp:2410 +#: ../src/verbs.cpp:2414 msgid "Paste _In Place" msgstr "An Ori_ginalposition einfĂĽgen" -#: ../src/verbs.cpp:2411 +#: ../src/verbs.cpp:2415 msgid "Paste objects from clipboard to the original location" msgstr "Objekte aus der Zwischenablage an ihrer Originalposition einfĂĽgen" -#: ../src/verbs.cpp:2412 +#: ../src/verbs.cpp:2416 msgid "Paste Path _Effect" msgstr "Pfad-_Effekt einfĂĽgen" -#: ../src/verbs.cpp:2413 +#: ../src/verbs.cpp:2417 msgid "Apply the path effect of the copied object to selection" msgstr "Pfad-Effekt des kopierten Objekts auf Auswahl anwenden" -#: ../src/verbs.cpp:2414 +#: ../src/verbs.cpp:2418 msgid "Remove Path _Effect" msgstr "Pfad-Effekt _entfernen" -#: ../src/verbs.cpp:2415 +#: ../src/verbs.cpp:2419 msgid "Remove any path effects from selected objects" msgstr "Effekt von Auswahl entfernen" -#: ../src/verbs.cpp:2416 +#: ../src/verbs.cpp:2420 msgid "_Remove Filters" msgstr "Filter entfernen" -#: ../src/verbs.cpp:2417 +#: ../src/verbs.cpp:2421 msgid "Remove any filters from selected objects" msgstr "Jeden Filter von Auswahl entfernen" -#: ../src/verbs.cpp:2418 +#: ../src/verbs.cpp:2422 msgid "_Delete" msgstr "_Löschen" -#: ../src/verbs.cpp:2419 +#: ../src/verbs.cpp:2423 msgid "Delete selection" msgstr "Auswahl löschen" -#: ../src/verbs.cpp:2420 +#: ../src/verbs.cpp:2424 msgid "Duplic_ate" msgstr "Dupli_zieren" -#: ../src/verbs.cpp:2421 +#: ../src/verbs.cpp:2425 msgid "Duplicate selected objects" msgstr "Gewählte Objekte duplizieren" -#: ../src/verbs.cpp:2422 +#: ../src/verbs.cpp:2426 msgid "Create Clo_ne" msgstr "_Klon erzeugen" -#: ../src/verbs.cpp:2423 +#: ../src/verbs.cpp:2427 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "" "Einen Klon des gewählten Objekts erstellen (die Kopie ist mit dem Original " "verbunden)" -#: ../src/verbs.cpp:2424 +#: ../src/verbs.cpp:2428 msgid "Unlin_k Clone" msgstr "Klonverbindung auf_trennen" -#: ../src/verbs.cpp:2425 +#: ../src/verbs.cpp:2429 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" @@ -24972,27 +23318,27 @@ msgstr "" "Die Verbindung des Klons zu seinem Original auftrennen, so daĂź ein " "selbständiges Objekt entsteht" -#: ../src/verbs.cpp:2426 +#: ../src/verbs.cpp:2430 msgid "Relink to Copied" msgstr "Verbinden mit Kopie" -#: ../src/verbs.cpp:2427 +#: ../src/verbs.cpp:2431 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "Verbindet die Ausgewählten Klone mit dem Objekt in der Zwischenablage" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2432 msgid "Select _Original" msgstr "_Original auswählen" -#: ../src/verbs.cpp:2429 +#: ../src/verbs.cpp:2433 msgid "Select the object to which the selected clone is linked" msgstr "Objekt auswählen, mit dem der Klon verbunden ist" -#: ../src/verbs.cpp:2430 +#: ../src/verbs.cpp:2434 msgid "Clone original path (LPE)" msgstr "Originalpfad klonen" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2435 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" @@ -25000,19 +23346,19 @@ msgstr "" "Erstellt einen neuen Pfad, verwendet die ursprĂĽnglichen Klone LPE und " "verweist auf den ausgewählten Pfad" -#: ../src/verbs.cpp:2432 +#: ../src/verbs.cpp:2436 msgid "Objects to _Marker" msgstr "Objekte in Markierungen umwandeln" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2437 msgid "Convert selection to a line marker" msgstr "Auswahl in Linienmarkierung umwandeln" -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2438 msgid "Objects to Gu_ides" msgstr "Objekte in FĂĽhrungslinien umwandeln" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2439 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" @@ -25020,95 +23366,95 @@ msgstr "" "Ausgewählte Objekte in eine Sammlung von FĂĽhrungslinien entlang ihrer Kanten " "umwandeln" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2440 msgid "Objects to Patter_n" msgstr "_Objekte in FĂĽllmuster umwandeln" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2441 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "Die Auswahl in ein Rechteck mit gekacheltem FĂĽllmuster umwandeln" -#: ../src/verbs.cpp:2438 +#: ../src/verbs.cpp:2442 msgid "Pattern to _Objects" msgstr "FĂĽllmuster in Ob_jekte umwandeln" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2443 msgid "Extract objects from a tiled pattern fill" msgstr "Objekte aus einem gekacheltem FĂĽllmuster extrahieren" -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2444 msgid "Group to Symbol" msgstr "Gruppieren zum Symbol" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2445 msgid "Convert group to a symbol" msgstr "Gruppe in Symbol konvertieren" -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2446 msgid "Symbol to Group" msgstr "Symbol zum Gruppieren" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2447 msgid "Extract group from a symbol" msgstr "Extrahiere Gruppe von einem Symbol" -#: ../src/verbs.cpp:2444 +#: ../src/verbs.cpp:2448 msgid "Clea_r All" msgstr "Alles l_eeren" -#: ../src/verbs.cpp:2445 +#: ../src/verbs.cpp:2449 msgid "Delete all objects from document" msgstr "Alle Objekte aus dem Dokument löschen" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2450 msgid "Select Al_l" msgstr "_Alles auswählen" -#: ../src/verbs.cpp:2447 +#: ../src/verbs.cpp:2451 msgid "Select all objects or all nodes" msgstr "Alle Objekte oder alle Knoten im Dokument auswählen" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2452 msgid "Select All in All La_yers" msgstr "Alles in allen Ebenen auswählen" -#: ../src/verbs.cpp:2449 +#: ../src/verbs.cpp:2453 msgid "Select all objects in all visible and unlocked layers" msgstr "Alle Objekte in allen sichtbaren und entsperrten Ebenen auswählen" -#: ../src/verbs.cpp:2450 +#: ../src/verbs.cpp:2454 msgid "Fill _and Stroke" msgstr "FĂĽllung und _Kontur" -#: ../src/verbs.cpp:2451 +#: ../src/verbs.cpp:2455 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" "Alle Objekte mit der gleichen FĂĽllung und Kontur der ausgewählten Objekte " "wählen" -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2456 msgid "_Fill Color" msgstr "FĂĽllfarbe" -#: ../src/verbs.cpp:2453 +#: ../src/verbs.cpp:2457 msgid "Select all objects with the same fill as the selected objects" msgstr "Alle Objekte mit der gleichen FĂĽllung der ausgewählten Objekte wählen" -#: ../src/verbs.cpp:2454 +#: ../src/verbs.cpp:2458 msgid "_Stroke Color" msgstr "Konturfarbe" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2459 msgid "Select all objects with the same stroke as the selected objects" msgstr "" "Wählen Sie alle Objekte mit der gleichen Kontur wie die ausgewählten Objekte" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2460 msgid "Stroke St_yle" msgstr "Konturstil" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2461 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" @@ -25116,11 +23462,11 @@ msgstr "" "Wählen Sie alle Objekte mit dem gleichen Konturstil (Breite, Bindestrich, " "Marker) wie die ausgewählten Objekte" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2462 msgid "_Object Type" msgstr "_Objekttyp" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2463 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" @@ -25128,158 +23474,154 @@ msgstr "" "Wählen Sie alle Objekte mit dem gleichen Objekttyp (Rechteck, Bogen, Text, " "Pfad, Bitmap etc.) wie die ausgewählten Objekte" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2464 msgid "In_vert Selection" msgstr "Auswahl _umkehren" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2465 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" "Auswahl invertieren (alle ausgewählten Objekte deselektieren und alle " "anderen auswählen)" -#: ../src/verbs.cpp:2462 +#: ../src/verbs.cpp:2466 msgid "Invert in All Layers" msgstr "In allen Ebenen invertieren" -#: ../src/verbs.cpp:2463 +#: ../src/verbs.cpp:2467 msgid "Invert selection in all visible and unlocked layers" msgstr "Auswahl in allen sichtbaren und entsperrten Ebenen invertieren" -#: ../src/verbs.cpp:2464 +#: ../src/verbs.cpp:2468 msgid "Select Next" msgstr "Nächstes auswählen" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2469 msgid "Select next object or node" msgstr "Nächstes Objekt oder nächsten Knoten auswählen" -#: ../src/verbs.cpp:2466 +#: ../src/verbs.cpp:2470 msgid "Select Previous" msgstr "Vorheriges auswählen" -#: ../src/verbs.cpp:2467 +#: ../src/verbs.cpp:2471 msgid "Select previous object or node" msgstr "Vorheriges Objekt oder vorherigen Knoten auswählen" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2472 msgid "D_eselect" msgstr "Auswahl auf_heben" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2473 msgid "Deselect any selected objects or nodes" msgstr "Die Auswahl von Objekten oder Knoten aufheben" -#: ../src/verbs.cpp:2471 -msgid "Delete all the guides in the document" -msgstr "" +#: ../src/verbs.cpp:2475 ../src/verbs.cpp:2477 +msgid "Create four guides aligned with the page borders" +msgstr "Erstellt vier FĂĽhrungslinien an den Seitengrenzen" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2476 msgid "Create _Guides Around the Page" msgstr "_FĂĽhrungslinien an Seitenrändern" -#: ../src/verbs.cpp:2473 -msgid "Create four guides aligned with the page borders" -msgstr "Erstellt vier FĂĽhrungslinien an den Seitengrenzen" - -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2478 msgid "Next path effect parameter" msgstr "Nächster Pfad-Effekt-Parameter" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2479 msgid "Show next editable path effect parameter" msgstr "Nächster Pfad-Effekt-Parameter" #. Selection -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2482 msgid "Raise to _Top" msgstr "Nach ganz o_ben anheben" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2483 msgid "Raise selection to top" msgstr "Die gewählten Objekte nach ganz oben anheben" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2484 msgid "Lower to _Bottom" msgstr "Nach ganz u_nten absenken" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2485 msgid "Lower selection to bottom" msgstr "Die gewählten Objekte nach ganz unten absenken" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2486 msgid "_Raise" msgstr "_Anheben" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2487 msgid "Raise selection one step" msgstr "Die gewählten Objekte eine Stufe nach oben anheben" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2488 msgid "_Lower" msgstr "Ab_senken" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2489 msgid "Lower selection one step" msgstr "Die gewählten Objekte eine Stufe nach unten absenken" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2491 msgid "Group selected objects" msgstr "Die gewählten Objekte gruppieren" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2493 msgid "Ungroup selected groups" msgstr "Gruppierung markierter Gruppen aufheben" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2495 msgid "_Put on Path" msgstr "An _Pfad ausrichten" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2497 msgid "_Remove from Path" msgstr "Von Pfad _trennen" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2499 msgid "Remove Manual _Kerns" msgstr "Manuelle _Unterschneidungen entfernen" #. TRANSLATORS: "glyph": An image used in the visual representation of characters; #. roughly speaking, how a character looks. A font is a set of glyphs. -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2502 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" "Alle manuellen Unterschneidungen und Rotationen von einem Textobjekt " "entfernen" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2504 msgid "_Union" msgstr "_Vereinigung" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2505 msgid "Create union of selected paths" msgstr "Vereinigung der ausgewählten Pfade erzeugen" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2506 msgid "_Intersection" msgstr "Ăś_berschneidung" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2507 msgid "Create intersection of selected paths" msgstr "Ăśberschneidung der gewählten Pfade erzeugen" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2508 msgid "_Difference" msgstr "_Differenz" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2509 msgid "Create difference of selected paths (bottom minus top)" msgstr "Differenz der gewählten Pfade erzeugen (Unterer minus Oberer)" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2510 msgid "E_xclusion" msgstr "E_xklusiv-Oder (Ausschluss)" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2511 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" @@ -25287,21 +23629,21 @@ msgstr "" "Exklusiv-ODER der ausgewählen Pfade erzeugen (die Teile, die nur zu einem " "Pfad gehören)" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2512 msgid "Di_vision" msgstr "Di_vision" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2513 msgid "Cut the bottom path into pieces" msgstr "Untenliegenden Pfad in Teile zerschneiden" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2516 msgid "Cut _Path" msgstr "Pfad _zerschneiden" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2517 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" "Kontur des untenliegenden Pfads in Teile zerschneiden, FĂĽllung wird entfernt" @@ -25309,357 +23651,357 @@ msgstr "" #. TRANSLATORS: "outset": expand a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2521 msgid "Outs_et" msgstr "Er_weitern (vergrößern)" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2522 msgid "Outset selected paths" msgstr "Gewählte Pfade erweitern (vergrößern)" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2524 msgid "O_utset Path by 1 px" msgstr "Pfad um 1 px erweitern (vergrößern)" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2525 msgid "Outset selected paths by 1 px" msgstr "Gewählte Pfade um 1 px erweitern (vergrößern)" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2527 msgid "O_utset Path by 10 px" msgstr "Pfad um 10 px _erweitern (vergrößern)" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2528 msgid "Outset selected paths by 10 px" msgstr "Gewählte Pfade um 10 px erweitern (vergrößern)" #. TRANSLATORS: "inset": contract a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2532 msgid "I_nset" msgstr "Schrum_pfen" # !!! make singular and plural forms -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2533 msgid "Inset selected paths" msgstr "Gewählte Pfade schrumpfen" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2535 msgid "I_nset Path by 1 px" msgstr "Pfad um _1 px schrumpfen" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2536 msgid "Inset selected paths by 1 px" msgstr "Gewählte Pfade um 1 px schrumpfen" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2538 msgid "I_nset Path by 10 px" msgstr "Pfad um 1_0 px schrumpfen" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2539 msgid "Inset selected paths by 10 px" msgstr "Gewählte Pfade um 10 px schrumpfen" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2541 msgid "D_ynamic Offset" msgstr "D_ynamischer Versatz" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2541 msgid "Create a dynamic offset object" msgstr "Ein Objekt mit dynamischem Versatz erstellen" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2543 msgid "_Linked Offset" msgstr "Ver_bundener Versatz" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2544 msgid "Create a dynamic offset object linked to the original path" msgstr "" "Dynamischen Versatz am Objekt erstellen. VerknĂĽpfung zum originalen Pfad " "bleibt bestehen." -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2546 msgid "_Stroke to Path" msgstr "_Kontur in Pfad umwandeln" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2547 msgid "Convert selected object's stroke to paths" msgstr "Die gewählten Konturen des Objekts in Pfade umwandeln" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2548 msgid "Si_mplify" msgstr "Ver_einfachen" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2549 msgid "Simplify selected paths (remove extra nodes)" msgstr "Ausgewählte Pfade vereinfachen (unnötige Punkte werden entfernt)" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2550 msgid "_Reverse" msgstr "_Richtung umkehren" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2551 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" "Richtung der gewählten Pfade umkehren (nĂĽtzlich, um Markierungen umzukehren)" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2554 msgid "Create one or more paths from a bitmap by tracing it" msgstr "Erzeuge einen oder mehrere Pfade durch Vektorisieren eines Bitmaps" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2555 #, fuzzy msgid "Trace Pixel Art..." msgstr "Bitmap _vektorisieren…" -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2556 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2557 msgid "Make a _Bitmap Copy" msgstr "_Bitmap-Kopie erstellen" -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2558 msgid "Export selection to a bitmap and insert it into document" msgstr "Auswahl als Bitmap exportieren und in das Dokument re-importieren" # !!! maybe use "verbinden" -#: ../src/verbs.cpp:2555 +#: ../src/verbs.cpp:2559 msgid "_Combine" msgstr "_Kombinieren" -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2560 msgid "Combine several paths into one" msgstr "Mehrere Pfade zu einem kombinieren" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2563 msgid "Break _Apart" msgstr "_Zerlegen" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2564 msgid "Break selected paths into subpaths" msgstr "Die markierten Pfade in Unterpfade zerlegen" -#: ../src/verbs.cpp:2561 -msgid "_Arrange..." -msgstr "" +#: ../src/verbs.cpp:2565 +msgid "Ro_ws and Columns..." +msgstr "Reihen und Spalten..." -#: ../src/verbs.cpp:2562 -msgid "Arrange selected objects in a table or circle" -msgstr "" +#: ../src/verbs.cpp:2566 +msgid "Arrange selected objects in a table" +msgstr "Ausgewählte Objekte im Raster anordnen" #. Layer -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2568 msgid "_Add Layer..." msgstr "Ebene _hinzufĂĽgen…" -#: ../src/verbs.cpp:2565 +#: ../src/verbs.cpp:2569 msgid "Create a new layer" msgstr "Eine neue Ebene anlegen" -#: ../src/verbs.cpp:2566 +#: ../src/verbs.cpp:2570 msgid "Re_name Layer..." msgstr "Ebene umbe_nennen…" -#: ../src/verbs.cpp:2567 +#: ../src/verbs.cpp:2571 msgid "Rename the current layer" msgstr "Aktuelle Ebene umbenennen" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2572 msgid "Switch to Layer Abov_e" msgstr "Zur darĂĽ_berliegenden Ebene umschalten" -#: ../src/verbs.cpp:2569 +#: ../src/verbs.cpp:2573 msgid "Switch to the layer above the current" msgstr "Zur darĂĽberliegenden Ebene im Dokument umschalten" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2574 msgid "Switch to Layer Belo_w" msgstr "Zur dar_unterliegenden Ebene umschalten" -#: ../src/verbs.cpp:2571 +#: ../src/verbs.cpp:2575 msgid "Switch to the layer below the current" msgstr "Zur darunterliegenden Ebene im Dokument umschalten" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2576 msgid "Move Selection to Layer Abo_ve" msgstr "Auswahl zur darĂĽber_liegenden Ebene verschieben" -#: ../src/verbs.cpp:2573 +#: ../src/verbs.cpp:2577 msgid "Move selection to the layer above the current" msgstr "Die Auswahl auf die darĂĽberliegende Ebene verschieben" -#: ../src/verbs.cpp:2574 +#: ../src/verbs.cpp:2578 msgid "Move Selection to Layer Bel_ow" msgstr "Auswahl zur darun_terliegenden Ebene verschieben" -#: ../src/verbs.cpp:2575 +#: ../src/verbs.cpp:2579 msgid "Move selection to the layer below the current" msgstr "Die Auswahl auf die darunterliegende Ebene verschieben" -#: ../src/verbs.cpp:2576 +#: ../src/verbs.cpp:2580 msgid "Move Selection to Layer..." msgstr "Auswahl zur anderer Ebene verschieben" -#: ../src/verbs.cpp:2578 +#: ../src/verbs.cpp:2582 msgid "Layer to _Top" msgstr "Ebene nach ganz _oben" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2583 msgid "Raise the current layer to the top" msgstr "Die aktuelle Ebene nach ganz oben anheben" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2584 msgid "Layer to _Bottom" msgstr "Ebene nach ganz _unten" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2585 msgid "Lower the current layer to the bottom" msgstr "Die aktuelle Ebene nach ganz unten absenken" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2586 msgid "_Raise Layer" msgstr "Ebene an_heben" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2587 msgid "Raise the current layer" msgstr "Die aktuelle Ebene anheben" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2588 msgid "_Lower Layer" msgstr "Ebene ab_senken" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2589 msgid "Lower the current layer" msgstr "Die aktuelle Ebene absenken" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2590 msgid "D_uplicate Current Layer" msgstr "Aktuelle Ebene duplizieren" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2591 msgid "Duplicate an existing layer" msgstr "Dupliziert eine vorhandene Ebene" -#: ../src/verbs.cpp:2588 +#: ../src/verbs.cpp:2592 msgid "_Delete Current Layer" msgstr "Aktuelle Ebene _löschen" -#: ../src/verbs.cpp:2589 +#: ../src/verbs.cpp:2593 msgid "Delete the current layer" msgstr "Die aktuelle Ebene löschen" -#: ../src/verbs.cpp:2590 +#: ../src/verbs.cpp:2594 msgid "_Show/hide other layers" msgstr "Andere Ebenen anzeigen oder ausblenden" -#: ../src/verbs.cpp:2591 +#: ../src/verbs.cpp:2595 msgid "Solo the current layer" msgstr "Aktuelle Ebene vereinzeln" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2596 msgid "_Show all layers" msgstr "Zeige alle Ebenen" -#: ../src/verbs.cpp:2593 +#: ../src/verbs.cpp:2597 msgid "Show all the layers" msgstr "Zeige all die Ebenen" -#: ../src/verbs.cpp:2594 +#: ../src/verbs.cpp:2598 msgid "_Hide all layers" msgstr "Alle Ebenen ausblenden" -#: ../src/verbs.cpp:2595 +#: ../src/verbs.cpp:2599 msgid "Hide all the layers" msgstr "All die Ebenen ausblenden" -#: ../src/verbs.cpp:2596 +#: ../src/verbs.cpp:2600 msgid "_Lock all layers" msgstr "A_lle Ebenen sperren" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2601 msgid "Lock all the layers" msgstr "Alle der Ebenen sperren" -#: ../src/verbs.cpp:2598 +#: ../src/verbs.cpp:2602 msgid "Lock/Unlock _other layers" msgstr "Andere Ebenen sperren/entsperren" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2603 msgid "Lock all the other layers" msgstr "Alle der anderen Ebenen sperren" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2604 msgid "_Unlock all layers" msgstr "Alle Ebenen entsperren" -#: ../src/verbs.cpp:2601 +#: ../src/verbs.cpp:2605 msgid "Unlock all the layers" msgstr "Alle Ebenen entsperren" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2606 msgid "_Lock/Unlock Current Layer" msgstr "Aktuelle Ebene sperren/entsperren" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2607 msgid "Toggle lock on current layer" msgstr "Sperre auf aktuellen Layer umschalten" -#: ../src/verbs.cpp:2604 +#: ../src/verbs.cpp:2608 msgid "_Show/hide Current Layer" msgstr "Aktuelle Ebene anzeigen oder au_sblenden" -#: ../src/verbs.cpp:2605 +#: ../src/verbs.cpp:2609 msgid "Toggle visibility of current layer" msgstr "Aktuelle Ebene sichtbar/unsichtbar" #. Object -#: ../src/verbs.cpp:2608 -msgid "Rotate _90° CW" -msgstr "" +#: ../src/verbs.cpp:2612 +msgid "Rotate _90° CW" +msgstr "Um 90° im Uhr_zeigersinn rotieren" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2615 msgid "Rotate selection 90° clockwise" msgstr "Auswahl um 90° im Uhrzeigersinn drehen" -#: ../src/verbs.cpp:2612 -msgid "Rotate 9_0° CCW" -msgstr "" +#: ../src/verbs.cpp:2616 +msgid "Rotate 9_0° CCW" +msgstr "Um 90° entgegen Uhrzeigersinn _rotieren" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2619 msgid "Rotate selection 90° counter-clockwise" msgstr "Auswahl um 90° gegen den Uhrzeigersinn drehen" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2620 msgid "Remove _Transformations" msgstr "Transformationen _zurĂĽcksetzen" -#: ../src/verbs.cpp:2617 +#: ../src/verbs.cpp:2621 msgid "Remove transformations from object" msgstr "Transformationen des Objekts rĂĽckgängig machen" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2622 msgid "_Object to Path" msgstr "_Objekt in Pfad umwandeln" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2623 msgid "Convert selected object to path" msgstr "Gewähltes Objekt in Pfad umwandeln" # !!! Frame, not form? -#: ../src/verbs.cpp:2620 +#: ../src/verbs.cpp:2624 msgid "_Flow into Frame" msgstr "Umbruch an Form _anpassen" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2625 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" @@ -25667,862 +24009,860 @@ msgstr "" "Text in einen Rahmen setzen (Pfad oder Form), so daĂź ein mit seinem Rahmen " "verbundener FlieĂźtext erzeugt wird" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2626 msgid "_Unflow" msgstr "FlieĂźtext _aufheben" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2627 msgid "Remove text from frame (creates a single-line text object)" msgstr "Text von der Form trennen (erzeugt einzeiliges Textobjekt)" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2628 msgid "_Convert to Text" msgstr "In normalen Text um_wandeln" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2629 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "FlieĂźtext in gewöhnliches Textobjekt umwandeln (behält Aussehen bei)" -#: ../src/verbs.cpp:2627 +#: ../src/verbs.cpp:2631 msgid "Flip _Horizontal" msgstr "_Horizontal umkehren" -#: ../src/verbs.cpp:2627 +#: ../src/verbs.cpp:2631 msgid "Flip selected objects horizontally" msgstr "Ausgewählte Objekte horizontal umkehren" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2634 msgid "Flip _Vertical" msgstr "_Vertikal umkehren" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2634 msgid "Flip selected objects vertically" msgstr "Ausgewählte Objekte vertikal umkehren" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2637 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" "Maskierung auf Auswahl anwenden (oberstes Objekt als Maskierung verwenden)" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2639 msgid "Edit mask" msgstr "Maskierung bearbeiten" -#: ../src/verbs.cpp:2636 ../src/verbs.cpp:2642 +#: ../src/verbs.cpp:2640 ../src/verbs.cpp:2646 msgid "_Release" msgstr "F_reigeben" -#: ../src/verbs.cpp:2637 +#: ../src/verbs.cpp:2641 msgid "Remove mask from selection" msgstr "Maskierung von Auswahl entfernen" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2643 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" "Ausschneidepfad auf Auswahl anwenden (oberstes Objekt als Ausschneidepfad " "verwenden)" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2645 msgid "Edit clipping path" msgstr "Ausschneidepfad bearbeiten" -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2647 msgid "Remove clipping path from selection" msgstr "Ausschneidepfad von Auswahl entfernen" #. Tools -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2650 msgctxt "ContextVerb" msgid "Select" msgstr "Auswählen" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2651 msgid "Select and transform objects" msgstr "Objekte auswählen und verändern" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2652 msgctxt "ContextVerb" msgid "Node Edit" msgstr "Knoten bearbeiten" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2653 msgid "Edit paths by nodes" msgstr "Bearbeiten der Knoten oder der Anfasser eines Pfades" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2654 msgctxt "ContextVerb" msgid "Tweak" msgstr "Modellieren" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2655 msgid "Tweak objects by sculpting or painting" msgstr "Objekte verbessern durch Verformen oder Malen" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2656 msgctxt "ContextVerb" msgid "Spray" msgstr "Spray" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2657 msgid "Spray objects by sculpting or painting" msgstr "Objekte sprĂĽhen durch Verformen oder Malen" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2658 msgctxt "ContextVerb" msgid "Rectangle" msgstr "Rechteck" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2659 msgid "Create rectangles and squares" msgstr "Rechtecke und Quadrate erstellen" -#: ../src/verbs.cpp:2656 +#: ../src/verbs.cpp:2660 msgctxt "ContextVerb" msgid "3D Box" msgstr "3D-Box" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2661 msgid "Create 3D boxes" msgstr "3D-Boxen erzeugen" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2662 msgctxt "ContextVerb" msgid "Ellipse" msgstr "Ellipse" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2663 msgid "Create circles, ellipses, and arcs" msgstr "Kreise, Ellipsen und Bögen erstellen" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2664 msgctxt "ContextVerb" msgid "Star" msgstr "Stern" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2665 msgid "Create stars and polygons" msgstr "Sterne und Polygone erstellen" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2666 msgctxt "ContextVerb" msgid "Spiral" msgstr "Spirale" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2667 msgid "Create spirals" msgstr "Spiralen erstellen" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2668 msgctxt "ContextVerb" msgid "Pencil" msgstr "Malwerkzeug (Freihand)" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2669 msgid "Draw freehand lines" msgstr "Freihandlinien zeichnen" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2670 msgctxt "ContextVerb" msgid "Pen" msgstr "FĂĽller (Linien und BĂ©zierkurven)" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2671 msgid "Draw Bezier curves and straight lines" msgstr "BĂ©zier-Kurven und gerade Linien zeichnen" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2672 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "Kalligrafie" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2673 msgid "Draw calligraphic or brush strokes" msgstr "Kalligrafisch zeichnen" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2675 msgid "Create and edit text objects" msgstr "Textobjekte erstellen und bearbeiten" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2676 msgctxt "ContextVerb" msgid "Gradient" msgstr "Farbverlauf" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2677 msgid "Create and edit gradients" msgstr "Farbverläufe erstellen und bearbeiten" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2678 msgctxt "ContextVerb" msgid "Mesh" msgstr "Gitter" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2679 msgid "Create and edit meshes" msgstr "Gitter erstellen und bearbeiten" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2680 msgctxt "ContextVerb" msgid "Zoom" msgstr "Zoomfaktor" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2681 msgid "Zoom in or out" msgstr "Zoomfaktor vergrößern oder verringern" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2683 msgid "Measurement tool" msgstr "Messwerkzeug" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2684 msgctxt "ContextVerb" msgid "Dropper" msgstr "Farbpipette" -#: ../src/verbs.cpp:2681 ../src/widgets/sp-color-notebook.cpp:411 +#: ../src/verbs.cpp:2685 ../src/widgets/sp-color-notebook.cpp:411 msgid "Pick colors from image" msgstr "Farben aus dem Bild ĂĽbernehmen" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2686 msgctxt "ContextVerb" msgid "Connector" msgstr "Objektverbinder" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2687 msgid "Create diagram connectors" msgstr "Objektverbinder erzeugen" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2688 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "Farbeimer" -#: ../src/verbs.cpp:2685 +#: ../src/verbs.cpp:2689 msgid "Fill bounded areas" msgstr "Abgegrenzte Flächen fĂĽllen" -#: ../src/verbs.cpp:2686 +#: ../src/verbs.cpp:2690 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "LPE bearbeiten" -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2691 msgid "Edit Path Effect parameters" msgstr "Pfad-Effekt-Parameter bearbeiten" # Name des Effekte-submenĂĽ, das alle Bitmap-Effekte beinhaltet. -#: ../src/verbs.cpp:2688 +#: ../src/verbs.cpp:2692 msgctxt "ContextVerb" msgid "Eraser" msgstr "Radierer" -#: ../src/verbs.cpp:2689 +#: ../src/verbs.cpp:2693 msgid "Erase existing paths" msgstr "Pfade entfernen" -#: ../src/verbs.cpp:2690 +#: ../src/verbs.cpp:2694 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "LPE-Werkzeug" -#: ../src/verbs.cpp:2691 +#: ../src/verbs.cpp:2695 msgid "Do geometric constructions" msgstr "Geometrische Konstruktion durchfĂĽhren" #. Tool prefs -#: ../src/verbs.cpp:2693 +#: ../src/verbs.cpp:2697 msgid "Selector Preferences" msgstr "Einstellungen fĂĽr Auswahlwerkzeug" -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2698 msgid "Open Preferences for the Selector tool" msgstr "Einstellungen fĂĽr das Auswahlwerkzeug öffnen" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2699 msgid "Node Tool Preferences" msgstr "Einstellungen fĂĽr Knotenwerkzeug" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2700 msgid "Open Preferences for the Node tool" msgstr "Einstellungen fĂĽr das Knotenwerkzeug öffnen" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2701 msgid "Tweak Tool Preferences" msgstr "Einstellungen fĂĽr Anpasswerkzeug" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2702 msgid "Open Preferences for the Tweak tool" msgstr "Eigenschaften fĂĽr das Modifizier-Werkzeug öffnen" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2703 msgid "Spray Tool Preferences" msgstr "Einstellungen fĂĽr Spraydose" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2704 msgid "Open Preferences for the Spray tool" msgstr "Eigenschaften fĂĽr das Spray-Werkzeug öffnen" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2705 msgid "Rectangle Preferences" msgstr "Eigenschaften fĂĽr Rechteckwerkzeug" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2706 msgid "Open Preferences for the Rectangle tool" msgstr "Einstellungen fĂĽr das Rechteckwerkzeug öffnen" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2707 msgid "3D Box Preferences" msgstr "Einstellungen fĂĽr 3D-Box" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2708 msgid "Open Preferences for the 3D Box tool" msgstr "Einstellungen fĂĽr das 3D-Box-Werkzeug öffnen" -#: ../src/verbs.cpp:2705 +#: ../src/verbs.cpp:2709 msgid "Ellipse Preferences" msgstr "Einstellungen fĂĽr Ellipsenwerkzeug" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2710 msgid "Open Preferences for the Ellipse tool" msgstr "Einstellungen fĂĽr das Ellipsenwerkzeug öffnen" -#: ../src/verbs.cpp:2707 +#: ../src/verbs.cpp:2711 msgid "Star Preferences" msgstr "Einstellungen fĂĽr Sternwerkzeug" -#: ../src/verbs.cpp:2708 +#: ../src/verbs.cpp:2712 msgid "Open Preferences for the Star tool" msgstr "Eigenschaften fĂĽr das Sternwerkzeug öffnen" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2713 msgid "Spiral Preferences" msgstr "Einstellungen fĂĽr Spiralenwerkzeug" -#: ../src/verbs.cpp:2710 +#: ../src/verbs.cpp:2714 msgid "Open Preferences for the Spiral tool" msgstr "Eigenschaften fĂĽr das Spiralenwerkzeug öffnen" -#: ../src/verbs.cpp:2711 +#: ../src/verbs.cpp:2715 msgid "Pencil Preferences" msgstr "Einstellungen fĂĽr Malwerkzeug" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2716 msgid "Open Preferences for the Pencil tool" msgstr "Eigenschaften fĂĽr das Malwerkzeug öffnen" -#: ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2717 msgid "Pen Preferences" msgstr "Einstellungen fĂĽr Zeichenwerkzeug" -#: ../src/verbs.cpp:2714 +#: ../src/verbs.cpp:2718 msgid "Open Preferences for the Pen tool" msgstr "Eigenschaften fĂĽr das Zeichenwerkzeug öffnen" -#: ../src/verbs.cpp:2715 +#: ../src/verbs.cpp:2719 msgid "Calligraphic Preferences" msgstr "Einstellungen fĂĽr Kalligrafiewerkzeug" -#: ../src/verbs.cpp:2716 +#: ../src/verbs.cpp:2720 msgid "Open Preferences for the Calligraphy tool" msgstr "Eigenschaften fĂĽr das Kalligrafiewerkzeug öffnen" -#: ../src/verbs.cpp:2717 +#: ../src/verbs.cpp:2721 msgid "Text Preferences" msgstr "Einstellungen fĂĽr Textwerkzeug" -#: ../src/verbs.cpp:2718 +#: ../src/verbs.cpp:2722 msgid "Open Preferences for the Text tool" msgstr "Eigenschaften fĂĽr das Textwerkzeug öffnen" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2723 msgid "Gradient Preferences" msgstr "Einstellungen fĂĽr Farbverläufe" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2724 msgid "Open Preferences for the Gradient tool" msgstr "Eigenschaften fĂĽr Farbverläufe öffnen" -#: ../src/verbs.cpp:2721 +#: ../src/verbs.cpp:2725 msgid "Mesh Preferences" msgstr "Gitter-Einstellungen" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2726 msgid "Open Preferences for the Mesh tool" msgstr "Eigenschaften fĂĽr das Gitterwerkzeug öffnen" -#: ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2727 msgid "Zoom Preferences" msgstr "Einstellungen fĂĽr Zoomwerkzeug" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2728 msgid "Open Preferences for the Zoom tool" msgstr "Eigenschaften fĂĽr das Zoomwerkzeug öffnen" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:2729 msgid "Measure Preferences" msgstr "Messwerkzeug-Einstellungen" -#: ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2730 msgid "Open Preferences for the Measure tool" msgstr "Eigenschaften fĂĽr das Messwerkzeug öffnen" -#: ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:2731 msgid "Dropper Preferences" msgstr "Einstellungen fĂĽr Farbpipette" -#: ../src/verbs.cpp:2728 +#: ../src/verbs.cpp:2732 msgid "Open Preferences for the Dropper tool" msgstr "Eigenschaften fĂĽr die Farbpipette öffnen" -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2733 msgid "Connector Preferences" msgstr "Einstellungen fĂĽr Objektverbinder" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2734 msgid "Open Preferences for the Connector tool" msgstr "Eigenschaften fĂĽr das Objektverbinder-Werkzeug öffnen" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2735 msgid "Paint Bucket Preferences" msgstr "Einstellungen fĂĽr den Farbeimer" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2736 msgid "Open Preferences for the Paint Bucket tool" msgstr "Eigenschaften fĂĽr das Farbeimer-Werkzeug öffnen" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2737 msgid "Eraser Preferences" msgstr "Einstellungen fĂĽr das Löschwerkzeug" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2738 msgid "Open Preferences for the Eraser tool" msgstr "Eigenschaften fĂĽr das Löschwerkzeug öffnen" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2739 msgid "LPE Tool Preferences" msgstr "Pfad-Effekt-Einstellungen" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2740 msgid "Open Preferences for the LPETool tool" msgstr "Eigenschaften fĂĽr LPE-Werkzeug öffnen" #. Zoom/View -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2742 msgid "Zoom In" msgstr "Heranzoomen" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2742 msgid "Zoom in" msgstr "Ansicht vergrößern" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2743 msgid "Zoom Out" msgstr "Wegzoomen" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2743 msgid "Zoom out" msgstr "Ansicht verkleinern" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2744 msgid "_Rulers" msgstr "_Lineale" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2744 msgid "Show or hide the canvas rulers" msgstr "Zeichnungslineale anzeigen oder ausblenden" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2745 msgid "Scroll_bars" msgstr "Roll_balken" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2745 msgid "Show or hide the canvas scrollbars" msgstr "Rollbalken anzeigen oder ausblenden" -#: ../src/verbs.cpp:2742 -msgid "Page _Grid" -msgstr "" +#: ../src/verbs.cpp:2746 +msgid "_Grid" +msgstr "_Gitter" -#: ../src/verbs.cpp:2742 -msgid "Show or hide the page grid" -msgstr "" +#: ../src/verbs.cpp:2746 +msgid "Show or hide the grid" +msgstr "Gitter anzeigen oder ausblenden" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2747 msgid "G_uides" msgstr "_FĂĽhrungslinien" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2747 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" "FĂĽhrungslinien zeigen oder verstecken (von einem Lineal ziehen, um eine " "FĂĽhrungslinie zu erzeugen)" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2748 msgid "Enable snapping" msgstr "Einrasten einschalten" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2749 msgid "_Commands Bar" msgstr "Befehlsleiste" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2749 msgid "Show or hide the Commands bar (under the menu)" msgstr "Befehlsleiste anzeigen oder ausblenden (Leiste unter dem HauptmenĂĽ)" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2750 msgid "Sn_ap Controls Bar" msgstr "Einrasten-Kontrollleiste" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2750 msgid "Show or hide the snapping controls" msgstr "Kontrollen fĂĽr Einrasten ein-/ausblenden" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2751 msgid "T_ool Controls Bar" msgstr "Werkzeugeinstellungsleiste" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2751 msgid "Show or hide the Tool Controls bar" msgstr "Einstellungsleiste fĂĽr das Werkzeug ein-/ausblenden" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2752 msgid "_Toolbox" msgstr "Werkzeugleis_te" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2752 msgid "Show or hide the main toolbox (on the left)" msgstr "Werkzeugleiste (auf der linken Seite) an- oder abschalten" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2753 msgid "_Palette" msgstr "_Palette" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2753 msgid "Show or hide the color palette" msgstr "Farbpalette ein-/ausblenden" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2754 msgid "_Statusbar" msgstr "_Statuszeile" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2754 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Statusleiste an- oder abschalten (am unteren Ende des Fensters)" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2755 msgid "Nex_t Zoom" msgstr "_Nächster Zoomfaktor" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2755 msgid "Next zoom (from the history of zooms)" msgstr "Den nächsten Zoomfaktor einstellen (aus der Liste bisheriger Faktoren)" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2757 msgid "Pre_vious Zoom" msgstr "_Vorheriger Zoomfaktor" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2757 msgid "Previous zoom (from the history of zooms)" msgstr "" "Den vorherigen Zoomfaktor einstellen (aus der Liste bisheriger Faktoren)" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2759 msgid "Zoom 1:_1" msgstr "Zoomfaktor 1:_1" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2759 msgid "Zoom to 1:1" msgstr "Den Zoomfaktor auf 1:1 setzen" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2761 msgid "Zoom 1:_2" msgstr "Zoomfaktor 1:_2" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2761 msgid "Zoom to 1:2" msgstr "Den Zoomfaktor auf 1:2 setzen" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2763 msgid "_Zoom 2:1" msgstr "_Zoomfaktor 2:1" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2763 msgid "Zoom to 2:1" msgstr "Den Zoomfaktor auf 2:1 setzen" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2766 msgid "_Fullscreen" msgstr "Voll_bild" -#: ../src/verbs.cpp:2762 ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2766 ../src/verbs.cpp:2768 msgid "Stretch this document window to full screen" msgstr "Dieses Dokumentenfenster auf Vollbild aufziehen" -#: ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2768 msgid "Fullscreen & Focus Mode" msgstr "Vollbild und Fokusmodus" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2771 msgid "Toggle _Focus Mode" msgstr "Schaltet _Fokusmodus um" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2771 msgid "Remove excess toolbars to focus on drawing" msgstr "Entfernt ĂĽberzählige Werkzeugleisten, um Zeichenfläche zu maximieren" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2773 msgid "Duplic_ate Window" msgstr "Fenster d_uplizieren" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2773 msgid "Open a new window with the same document" msgstr "Das momentan geöffnete Dokument in einem neuen Fenster darstellen" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2775 msgid "_New View Preview" msgstr "_Neue Vorschau" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2776 msgid "New View Preview" msgstr "Neue Vorschau" #. "view_new_preview" -#: ../src/verbs.cpp:2774 ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2778 ../src/verbs.cpp:2786 msgid "_Normal" msgstr "_Normal" -#: ../src/verbs.cpp:2775 +#: ../src/verbs.cpp:2779 msgid "Switch to normal display mode" msgstr "In den normalen Anzeigemodus wechseln" -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2780 msgid "No _Filters" msgstr "Keine _Filter" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2781 msgid "Switch to normal display without filters" msgstr "Wechselt in den normalen Anzeigemodus ohne Filter" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2782 msgid "_Outline" msgstr "_Umriss" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2783 msgid "Switch to outline (wireframe) display mode" msgstr "In den Umriss-(Drahtgitter)-Anzeigemodus wechseln" #. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), #. N_("Switch to print colors preview mode"), NULL), -#: ../src/verbs.cpp:2780 ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2784 ../src/verbs.cpp:2792 msgid "_Toggle" msgstr "_Umschalten" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2785 msgid "Toggle between normal and outline display modes" msgstr "Zwischen normaler und Umriss-Ansicht umschalten" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2787 msgid "Switch to normal color display mode" msgstr "In den normalen Anzeigemodus wechseln" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2788 msgid "_Grayscale" msgstr "_Graustufen" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2789 msgid "Switch to grayscale display mode" msgstr "In den Graustufen-Anzeigemodus wechseln" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2793 msgid "Toggle between normal and grayscale color display modes" msgstr "Zwischen normaler und Graustufen-Farb-Ansicht umschalten" # ??? -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2795 msgid "Color-managed view" msgstr "Farbverwaltungsansicht" # ??? -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2796 msgid "Toggle color-managed display for this document window" msgstr "Ansicht mit Farbverwaltung ein-/ausschalten" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2798 msgid "Ico_n Preview..." msgstr "_Icon-Vorschaufenster…" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2799 msgid "Open a window to preview objects at different icon resolutions" msgstr "" "Vorschaufenster öffnen, um Elemente bei verschiedenen Icon-Auflösungsstufen " "zu sehen" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2801 msgid "Zoom to fit page in window" msgstr "Die Seite in das Fenster einpassen" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2802 msgid "Page _Width" msgstr "Seiten_breite" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2803 msgid "Zoom to fit page width in window" msgstr "Die Seitenbreite in das Fenster einpassen" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2805 msgid "Zoom to fit drawing in window" msgstr "Die Zeichnung in das Fenster einpassen" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2807 msgid "Zoom to fit selection in window" msgstr "Die Auswahl in das Fenster einpassen" #. Dialogs -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2810 msgid "P_references..." msgstr "Einstellungen" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2811 msgid "Edit global Inkscape preferences" msgstr "Globale Einstellungen fĂĽr Inkscape bearbeiten" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2812 msgid "_Document Properties..." msgstr "D_okumenteneinstellungen…" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2813 msgid "Edit properties of this document (to be saved with the document)" msgstr "Einstellungen bearbeiten, die mit dem Dokument gespeichert werden" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2814 msgid "Document _Metadata..." msgstr "Dokument-_Metadaten…" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2815 msgid "Edit document metadata (to be saved with the document)" msgstr "Dokument-Metadaten bearbeiten, die mit dem Dokument gespeichert werden" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2817 msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." msgstr "" "Objektfarben, Farbverläufe, Strichbreiten, Pfeile, Strichmuster usw. ändern" -#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2818 msgid "Gl_yphs..." msgstr "Glyphen..." -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2819 msgid "Select characters from a glyphs palette" msgstr "Zeichen aus einer Bildzeichen-Palette auswählen" -#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon #. TRANSLATORS: "Swatches" means: color samples -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2821 msgid "S_watches..." msgstr "_Farbfelder-Palette…" -#: ../src/verbs.cpp:2820 +#: ../src/verbs.cpp:2822 msgid "Select colors from a swatches palette" msgstr "Farben aus einer Farbfelder-Palette auswählen" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2823 msgid "S_ymbols..." msgstr "S_ymbole..." -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2824 msgid "Select symbol from a symbols palette" msgstr "Symbol aus einer Symbol-Palette auswählen" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2825 msgid "Transfor_m..." msgstr "_Transformationen…" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2826 msgid "Precisely control objects' transformations" msgstr "Transformationen eines Objektes präzise einstellen" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2827 msgid "_Align and Distribute..." msgstr "Ausri_chten und Abstände ausgleichen…" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2828 msgid "Align and distribute objects" msgstr "Objekte ausrichten und ihre Abstände ausgleichen" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2829 msgid "_Spray options..." msgstr "_Spraydosen-Optionen" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2830 msgid "Some options for the spray" msgstr "Einige Optionen des SprĂĽhwerkzeuges" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2831 msgid "Undo _History..." msgstr "Bearbeitungs_historie…" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2832 msgid "Undo History" msgstr "Bearbeitungshistorie" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2834 msgid "View and select font family, font size and other text properties" msgstr "" "Schriftfamilie, Schriftgröße und andere Texteigenschaften ansehen und ändern" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2835 msgid "_XML Editor..." msgstr "_XML-Editor…" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2836 msgid "View and edit the XML tree of the document" msgstr "Zeige und ändere den XML-Baum des Dokuments" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2837 msgid "_Find/Replace..." msgstr "Suchen/Ersetzen..." -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2838 msgid "Find objects in document" msgstr "Objekte im Dokument suchen" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2839 msgid "Find and _Replace Text..." msgstr "Text suchen und e_rsetzen..." -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2840 msgid "Find and replace text in document" msgstr "Text im Dokument suchen und ersetzen" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2842 msgid "Check spelling of text in document" msgstr "RechtschreibprĂĽfung fĂĽr Text im Dokument" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2843 msgid "_Messages..." msgstr "Nachrichten…" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2844 msgid "View debug messages" msgstr "Nachrichten zur Fehlersuche anzeigen" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2845 msgid "Show/Hide D_ialogs" msgstr "_Dialoge anzeigen oder ausblenden" -#: ../src/verbs.cpp:2844 +#: ../src/verbs.cpp:2846 msgid "Show or hide all open dialogs" msgstr "Alle offenen Dialoge zeigen oder ausblenden" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2847 msgid "Create Tiled Clones..." msgstr "Gekachelte Klone erzeugen…" -#: ../src/verbs.cpp:2846 +#: ../src/verbs.cpp:2848 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" @@ -26530,222 +24870,222 @@ msgstr "" "Mehrere Klone des gewählten Objekts erstellen, die in einem Muster oder " "verstreut angeordnet sind" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2849 msgid "_Object attributes..." msgstr "_Objekteigenschaften…" -#: ../src/verbs.cpp:2848 +#: ../src/verbs.cpp:2850 msgid "Edit the object attributes..." msgstr "Objektattribute bearbeiten..." -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2852 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" "Kennung, Status (gesperrt, sichtbar) und andere Objekteigenschaften ändern" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2853 msgid "_Input Devices..." msgstr "_Eingabegeräte…" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2854 msgid "Configure extended input devices, such as a graphics tablet" msgstr "Erweiterte Eingabegeräte konfigurieren, wie z.B. Grafiktabletts" -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2855 msgid "_Extensions..." msgstr "_Erweiterungen…" -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2856 msgid "Query information about extensions" msgstr "Informationen ĂĽber Erweiterungen abfragen" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2857 msgid "Layer_s..." msgstr "_Ebenen…" -#: ../src/verbs.cpp:2856 +#: ../src/verbs.cpp:2858 msgid "View Layers" msgstr "Ebenen anzeigen" -#: ../src/verbs.cpp:2857 +#: ../src/verbs.cpp:2859 msgid "Path E_ffects ..." msgstr "Pfad-Effekt-Editor..." -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2860 msgid "Manage, edit, and apply path effects" msgstr "Pfad-Effekt erstellen und anwenden" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2861 msgid "Filter _Editor..." msgstr "Filter-Editor…" -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2862 msgid "Manage, edit, and apply SVG filters" msgstr "SVG-Filter verwalten, bearbeiten und anwenden" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2863 msgid "SVG Font Editor..." msgstr "SVG-Schrift-Editor…" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2864 msgid "Edit SVG fonts" msgstr "SVG-Schriften bearbeiten" -#: ../src/verbs.cpp:2863 +#: ../src/verbs.cpp:2865 msgid "Print Colors..." msgstr "Druckfarben…" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2866 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" "Wählen Sie die zu rendernden Farbseparationen im Druckfarben-Vorschau-" "Rendermodus aus" -#: ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2867 msgid "_Export PNG Image..." msgstr "_Exportiere PNG Bild..." -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2868 msgid "Export this document or a selection as a PNG image" msgstr "Das Dokument oder eine Auswahl als Bitmap-Bild exportieren" #. Help -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2870 msgid "About E_xtensions" msgstr "Ăśber _Erweiterungen" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2871 msgid "Information on Inkscape extensions" msgstr "Informationen ĂĽber Inkscape-Erweiterungen" -#: ../src/verbs.cpp:2870 +#: ../src/verbs.cpp:2872 msgid "About _Memory" msgstr "_Speichernutzung" -#: ../src/verbs.cpp:2871 +#: ../src/verbs.cpp:2873 msgid "Memory usage information" msgstr "Informationen ĂĽber die Speichernutzung" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2874 msgid "_About Inkscape" msgstr "Ăś_ber Inkscape" -#: ../src/verbs.cpp:2873 +#: ../src/verbs.cpp:2875 msgid "Inkscape version, authors, license" msgstr "Inkscape-Version, Autoren, Lizenz" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2880 msgid "Inkscape: _Basic" msgstr "Inkscape: _Grundlagen" -#: ../src/verbs.cpp:2879 +#: ../src/verbs.cpp:2881 msgid "Getting started with Inkscape" msgstr "Erste Schritte mit Inkscape" #. "tutorial_basic" -#: ../src/verbs.cpp:2880 +#: ../src/verbs.cpp:2882 msgid "Inkscape: _Shapes" msgstr "Inkscape: _Formen" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2883 msgid "Using shape tools to create and edit shapes" msgstr "Benutzung der Formen-Werkzeuge zum Erzeugen und Verändern von Formen" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2884 msgid "Inkscape: _Advanced" msgstr "Inkscape: Fortgeschrittene _Benutzung" -#: ../src/verbs.cpp:2883 +#: ../src/verbs.cpp:2885 msgid "Advanced Inkscape topics" msgstr "Fortgeschrittene Themen bei der Benutzung von Inkscape" #. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2885 +#: ../src/verbs.cpp:2887 msgid "Inkscape: T_racing" msgstr "Inkscape: _Vektorisieren" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2888 msgid "Using bitmap tracing" msgstr "Verwendung der Bitmap-Vektorisierung" #. "tutorial_tracing" -#: ../src/verbs.cpp:2887 +#: ../src/verbs.cpp:2889 #, fuzzy msgid "Inkscape: Tracing Pixel Art" msgstr "Inkscape: _Vektorisieren" -#: ../src/verbs.cpp:2888 +#: ../src/verbs.cpp:2890 msgid "Using Trace Pixel Art dialog" msgstr "" -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2891 msgid "Inkscape: _Calligraphy" msgstr "Inkscape: _Kalligrafie" -#: ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:2892 msgid "Using the Calligraphy pen tool" msgstr "Verwendung des kalligrafischen FĂĽllers" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2893 msgid "Inkscape: _Interpolate" msgstr "Inkscape: _Interpolieren" -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2894 msgid "Using the interpolate extension" msgstr "Benutzt die Erweiterung Interpolieren" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2895 msgid "_Elements of Design" msgstr "_Elemente des Designs" -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2896 msgid "Principles of design in the tutorial form" msgstr "Gestaltungsprinzipen" #. "tutorial_design" -#: ../src/verbs.cpp:2895 +#: ../src/verbs.cpp:2897 msgid "_Tips and Tricks" msgstr "_Tipps und Tricks" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2898 msgid "Miscellaneous tips and tricks" msgstr "Verschiedene Tipps und Tricks" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2901 msgid "Previous Exte_nsion" msgstr "Vorherige Erweiterungen" -#: ../src/verbs.cpp:2900 +#: ../src/verbs.cpp:2902 msgid "Repeat the last extension with the same settings" msgstr "Letzten Effekt mit den gleichen Einstellungen anwenden" -#: ../src/verbs.cpp:2901 +#: ../src/verbs.cpp:2903 msgid "_Previous Extension Settings..." msgstr "Vorherige Erweiterungs-Einstellungen…" -#: ../src/verbs.cpp:2902 +#: ../src/verbs.cpp:2904 msgid "Repeat the last extension with new settings" msgstr "Letzte Erweiterung mit anderen Einstellungen wiederholen" # !!! -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2908 msgid "Fit the page to the current selection" msgstr "Die Seite in die aktuelle Auswahl einpassen" # !!! -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:2910 msgid "Fit the page to the drawing" msgstr "Die Seite in die Zeichnungsgröße einpassen" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2912 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" @@ -26754,288 +25094,280 @@ msgstr "" # !!! mnemonics #. LockAndHide -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2914 msgid "Unlock All" msgstr "Alles entsperren" -#: ../src/verbs.cpp:2914 +#: ../src/verbs.cpp:2916 msgid "Unlock All in All Layers" msgstr "Alles in allen Ebenen entsperren" # !!! mnemonics -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2918 msgid "Unhide All" msgstr "Alles einblenden" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2920 msgid "Unhide All in All Layers" msgstr "Alles in allen Ebenen einblenden" -#: ../src/verbs.cpp:2922 +#: ../src/verbs.cpp:2924 msgid "Link an ICC color profile" msgstr "VerknĂĽpfung mit ICC-Farbprofil" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2925 msgid "Remove Color Profile" msgstr "Farbprofil entfernen" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2926 msgid "Remove a linked ICC color profile" msgstr "Entfernt ein verknĂĽpftes ICC-Farbprofil." -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2929 msgid "Add External Script" msgstr "FĂĽge externes Script hinzu" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2929 msgid "Add an external script" msgstr "FĂĽge ein externes Script hinzu" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2931 msgid "Add Embedded Script" msgstr "FĂĽge eingebettetes Script hinzu" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2931 msgid "Add an embedded script" msgstr "FĂĽge ein eingebettetes Script hinzu" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2933 msgid "Edit Embedded Script" msgstr "Eingebettetes Script bearbeiten" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2933 msgid "Edit an embedded script" msgstr "Ein eingebettetes Script bearbeiten" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2935 msgid "Remove External Script" msgstr "Lösche externes Script" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2935 msgid "Remove an external script" msgstr "Lösche ein externes Script" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2937 msgid "Remove Embedded Script" msgstr "Eingebettetes Script entfernen" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2937 msgid "Remove an embedded script" msgstr "Ein eingebettetes Script entfernen" -#: ../src/verbs.cpp:2957 ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2959 ../src/verbs.cpp:2960 msgid "Center on horizontal and vertical axis" msgstr "An horizontalen und vertikalen Achsen ausrichten" -#: ../src/widgets/arc-toolbar.cpp:131 +#: ../src/widgets/arc-toolbar.cpp:141 msgid "Arc: Change start/end" msgstr "Bogen: Beginn/Ende ändern" -#: ../src/widgets/arc-toolbar.cpp:197 +#: ../src/widgets/arc-toolbar.cpp:207 msgid "Arc: Change open/closed" msgstr "Bogen: Offen/geschlossen ändern" # !!! -#: ../src/widgets/arc-toolbar.cpp:288 ../src/widgets/arc-toolbar.cpp:317 -#: ../src/widgets/rect-toolbar.cpp:258 ../src/widgets/rect-toolbar.cpp:296 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:383 ../src/widgets/star-toolbar.cpp:444 +#: ../src/widgets/arc-toolbar.cpp:298 ../src/widgets/arc-toolbar.cpp:327 +#: ../src/widgets/rect-toolbar.cpp:265 ../src/widgets/rect-toolbar.cpp:303 +#: ../src/widgets/spiral-toolbar.cpp:225 ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/star-toolbar.cpp:391 ../src/widgets/star-toolbar.cpp:452 msgid "New:" msgstr "Neu:" # !!! #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); -#: ../src/widgets/arc-toolbar.cpp:291 ../src/widgets/arc-toolbar.cpp:302 -#: ../src/widgets/rect-toolbar.cpp:266 ../src/widgets/rect-toolbar.cpp:284 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:385 +#: ../src/widgets/arc-toolbar.cpp:301 ../src/widgets/arc-toolbar.cpp:312 +#: ../src/widgets/rect-toolbar.cpp:273 ../src/widgets/rect-toolbar.cpp:291 +#: ../src/widgets/spiral-toolbar.cpp:227 ../src/widgets/spiral-toolbar.cpp:238 +#: ../src/widgets/star-toolbar.cpp:393 msgid "Change:" msgstr "Ă„ndern:" -#: ../src/widgets/arc-toolbar.cpp:326 -msgid "Start:" -msgstr "Anfang:" - -#: ../src/widgets/arc-toolbar.cpp:327 +#: ../src/widgets/arc-toolbar.cpp:337 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "" "Der Winkel (in Grad) von der Horizontalen bis zum Startpunkt des Bogens" -#: ../src/widgets/arc-toolbar.cpp:339 -msgid "End:" -msgstr "Ende:" - -#: ../src/widgets/arc-toolbar.cpp:340 +#: ../src/widgets/arc-toolbar.cpp:350 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "Der Winkel (in Grad) von der Horizontalen bis zum Endpunkt des Bogens" -#: ../src/widgets/arc-toolbar.cpp:356 +#: ../src/widgets/arc-toolbar.cpp:366 msgid "Closed arc" msgstr "Geschlossener Bogen" -#: ../src/widgets/arc-toolbar.cpp:357 +#: ../src/widgets/arc-toolbar.cpp:367 msgid "Switch to segment (closed shape with two radii)" msgstr "Zu Segment (geschlossene Form mit zwei Radien) umschalten" -#: ../src/widgets/arc-toolbar.cpp:363 +#: ../src/widgets/arc-toolbar.cpp:373 msgid "Open Arc" msgstr "Offener Bogen" -#: ../src/widgets/arc-toolbar.cpp:364 +#: ../src/widgets/arc-toolbar.cpp:374 msgid "Switch to arc (unclosed shape)" msgstr "Zu Bogen umschalten (offene Form)" -#: ../src/widgets/arc-toolbar.cpp:387 +#: ../src/widgets/arc-toolbar.cpp:397 msgid "Make whole" msgstr "SchlieĂźen" -#: ../src/widgets/arc-toolbar.cpp:388 +#: ../src/widgets/arc-toolbar.cpp:398 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Die Form zur ganzen Ellipse anstelle eines Bogens oder Segments machen" #. TODO: use the correct axis here, too -#: ../src/widgets/box3d-toolbar.cpp:232 +#: ../src/widgets/box3d-toolbar.cpp:248 msgid "3D Box: Change perspective (angle of infinite axis)" msgstr "3D-Box: Perspektive ändern (Winkel der unendlichen Achse)" -#: ../src/widgets/box3d-toolbar.cpp:299 +#: ../src/widgets/box3d-toolbar.cpp:315 msgid "Angle in X direction" msgstr "Winkel in X-Richtung" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:301 +#: ../src/widgets/box3d-toolbar.cpp:317 msgid "Angle of PLs in X direction" msgstr "Winkel der Perspektivlinien in X-Richtung" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:323 +#: ../src/widgets/box3d-toolbar.cpp:339 msgid "State of VP in X direction" msgstr "Fluchtpunktstatus in X-Richtung" -#: ../src/widgets/box3d-toolbar.cpp:324 +#: ../src/widgets/box3d-toolbar.cpp:340 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Fluchtpunkt in X-Richtung zwischen 'endlich' und 'unendlich' (=parallel) " "umschalten" -#: ../src/widgets/box3d-toolbar.cpp:339 +#: ../src/widgets/box3d-toolbar.cpp:355 msgid "Angle in Y direction" msgstr "Winkel in Y-Richtung" -#: ../src/widgets/box3d-toolbar.cpp:339 +#: ../src/widgets/box3d-toolbar.cpp:355 msgid "Angle Y:" msgstr "Winkel Y:" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:341 +#: ../src/widgets/box3d-toolbar.cpp:357 msgid "Angle of PLs in Y direction" msgstr "Winkel der Perspektivlinien in Y-Richtung" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:362 +#: ../src/widgets/box3d-toolbar.cpp:378 msgid "State of VP in Y direction" msgstr "Fluchtpunktstatus in Y-Richtung" -#: ../src/widgets/box3d-toolbar.cpp:363 +#: ../src/widgets/box3d-toolbar.cpp:379 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Fluchtpunkt in Y-richtung zwischen 'endlich' und 'unendlich' (=parallel) " "umschalten" -#: ../src/widgets/box3d-toolbar.cpp:378 +#: ../src/widgets/box3d-toolbar.cpp:394 msgid "Angle in Z direction" msgstr "Winkel inZ-Richtung" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:380 +#: ../src/widgets/box3d-toolbar.cpp:396 msgid "Angle of PLs in Z direction" msgstr "Winkel der Perspektivlinien in Z-Richtung" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:401 +#: ../src/widgets/box3d-toolbar.cpp:417 msgid "State of VP in Z direction" msgstr "Fluchtpunktstatus in Z-Richtung" -#: ../src/widgets/box3d-toolbar.cpp:402 +#: ../src/widgets/box3d-toolbar.cpp:418 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Fluchtpunkt in Z-Richtung zwischen 'endlich' und 'unendlich' (=parallel) " "umschalten" #. gint preset_index = ege_select_one_action_get_active( sel ); -#: ../src/widgets/calligraphy-toolbar.cpp:218 -#: ../src/widgets/calligraphy-toolbar.cpp:262 -#: ../src/widgets/calligraphy-toolbar.cpp:267 +#: ../src/widgets/calligraphy-toolbar.cpp:235 +#: ../src/widgets/calligraphy-toolbar.cpp:279 +#: ../src/widgets/calligraphy-toolbar.cpp:284 msgid "No preset" msgstr "Keine Vorlage" #. Width -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 +#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/eraser-toolbar.cpp:142 msgid "(hairline)" msgstr "(Haarline)" #. Mean #. Rotation #. Scale -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:269 -#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 -#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 -#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 -#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 -#: ../src/widgets/tweak-toolbar.cpp:350 +#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:477 +#: ../src/widgets/eraser-toolbar.cpp:142 ../src/widgets/pencil-toolbar.cpp:298 +#: ../src/widgets/spray-toolbar.cpp:125 ../src/widgets/spray-toolbar.cpp:141 +#: ../src/widgets/spray-toolbar.cpp:157 ../src/widgets/spray-toolbar.cpp:217 +#: ../src/widgets/spray-toolbar.cpp:247 ../src/widgets/spray-toolbar.cpp:265 +#: ../src/widgets/tweak-toolbar.cpp:139 ../src/widgets/tweak-toolbar.cpp:156 +#: ../src/widgets/tweak-toolbar.cpp:364 msgid "(default)" msgstr "(Vorgabe)" -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 +#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/eraser-toolbar.cpp:142 msgid "(broad stroke)" msgstr "(breiter Strich)" -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 +#: ../src/widgets/calligraphy-toolbar.cpp:447 +#: ../src/widgets/eraser-toolbar.cpp:145 msgid "Pen Width" msgstr "Stiftbreite" -#: ../src/widgets/calligraphy-toolbar.cpp:431 +#: ../src/widgets/calligraphy-toolbar.cpp:448 msgid "The width of the calligraphic pen (relative to the visible canvas area)" msgstr "" "Breite des kalligrafischen FĂĽllers (relativ zum sichtbaren " "Dokumentausschnitt)" #. Thinning -#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:461 msgid "(speed blows up stroke)" msgstr "(Geschwindigkeit verdickt Strich)" -#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:461 msgid "(slight widening)" msgstr "(schwache Verdickung)" -#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:461 msgid "(constant width)" msgstr "(konstante Breite)" -#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:461 msgid "(slight thinning, default)" msgstr "(schwache AusdĂĽnnung, Vorgabe)" -#: ../src/widgets/calligraphy-toolbar.cpp:444 +#: ../src/widgets/calligraphy-toolbar.cpp:461 msgid "(speed deflates stroke)" msgstr "(Geschwindigkeit dĂĽnnt Strich aus)" -#: ../src/widgets/calligraphy-toolbar.cpp:447 +#: ../src/widgets/calligraphy-toolbar.cpp:464 msgid "Stroke Thinning" msgstr "Strichstärke verringern" -#: ../src/widgets/calligraphy-toolbar.cpp:447 +#: ../src/widgets/calligraphy-toolbar.cpp:464 msgid "Thinning:" msgstr "AusdĂĽnnung:" -#: ../src/widgets/calligraphy-toolbar.cpp:448 +#: ../src/widgets/calligraphy-toolbar.cpp:465 msgid "" "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " "makes them broader, 0 makes width independent of velocity)" @@ -27044,28 +25376,23 @@ msgstr "" "StrichzĂĽge dĂĽnner, < 0 breiter, 0 unabhängig von der Geschwindigkeit)" #. Angle -#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/calligraphy-toolbar.cpp:477 msgid "(left edge up)" msgstr "(linke Kante oben)" -#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/calligraphy-toolbar.cpp:477 msgid "(horizontal)" msgstr "(horizontal)" -#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/calligraphy-toolbar.cpp:477 msgid "(right edge up)" msgstr "(rechte Kante oben)" -#: ../src/widgets/calligraphy-toolbar.cpp:463 +#: ../src/widgets/calligraphy-toolbar.cpp:480 msgid "Pen Angle" msgstr "Stiftwinkel" -#: ../src/widgets/calligraphy-toolbar.cpp:463 -#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 -msgid "Angle:" -msgstr "Winkel:" - -#: ../src/widgets/calligraphy-toolbar.cpp:464 +#: ../src/widgets/calligraphy-toolbar.cpp:481 msgid "" "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " "fixation = 0)" @@ -27074,27 +25401,27 @@ msgstr "" "Fixierung: 0)" #. Fixation -#: ../src/widgets/calligraphy-toolbar.cpp:478 +#: ../src/widgets/calligraphy-toolbar.cpp:495 msgid "(perpendicular to stroke, \"brush\")" msgstr "(senkrecht zum Strich, \"Pinsel\")" -#: ../src/widgets/calligraphy-toolbar.cpp:478 +#: ../src/widgets/calligraphy-toolbar.cpp:495 msgid "(almost fixed, default)" msgstr "(fast fixiert, Vorgabe)" -#: ../src/widgets/calligraphy-toolbar.cpp:478 +#: ../src/widgets/calligraphy-toolbar.cpp:495 msgid "(fixed by Angle, \"pen\")" msgstr "(fixiert mit Winkel, \"Stift\")" -#: ../src/widgets/calligraphy-toolbar.cpp:481 +#: ../src/widgets/calligraphy-toolbar.cpp:498 msgid "Fixation" msgstr "Fixierung" -#: ../src/widgets/calligraphy-toolbar.cpp:481 +#: ../src/widgets/calligraphy-toolbar.cpp:498 msgid "Fixation:" msgstr "Fixierung:" -#: ../src/widgets/calligraphy-toolbar.cpp:482 +#: ../src/widgets/calligraphy-toolbar.cpp:499 msgid "" "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " "fixed angle)" @@ -27103,32 +25430,32 @@ msgstr "" "Winkel)" #. Cap Rounding -#: ../src/widgets/calligraphy-toolbar.cpp:494 +#: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(blunt caps, default)" msgstr "(stumpfe Enden, Vorgabe)" -#: ../src/widgets/calligraphy-toolbar.cpp:494 +#: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(slightly bulging)" msgstr "(leicht wölbend)" -#: ../src/widgets/calligraphy-toolbar.cpp:494 +#: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(approximately round)" msgstr "(ungefähr rund)" -#: ../src/widgets/calligraphy-toolbar.cpp:494 +#: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(long protruding caps)" msgstr "(lange hervorstehende Enden)" -#: ../src/widgets/calligraphy-toolbar.cpp:498 +#: ../src/widgets/calligraphy-toolbar.cpp:515 msgid "Cap rounding" msgstr "Spitzen abrunden" -#: ../src/widgets/calligraphy-toolbar.cpp:498 +#: ../src/widgets/calligraphy-toolbar.cpp:515 msgid "Caps:" msgstr "Linienenden:" # !!! check -#: ../src/widgets/calligraphy-toolbar.cpp:499 +#: ../src/widgets/calligraphy-toolbar.cpp:516 msgid "" "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " "round caps)" @@ -27137,94 +25464,94 @@ msgstr "" "Abschluss, 1 = runder Abschluss)" #. Tremor -#: ../src/widgets/calligraphy-toolbar.cpp:511 +#: ../src/widgets/calligraphy-toolbar.cpp:528 msgid "(smooth line)" msgstr "(glatte Linie)" -#: ../src/widgets/calligraphy-toolbar.cpp:511 +#: ../src/widgets/calligraphy-toolbar.cpp:528 msgid "(slight tremor)" msgstr "(leichtes Zittern)" -#: ../src/widgets/calligraphy-toolbar.cpp:511 +#: ../src/widgets/calligraphy-toolbar.cpp:528 msgid "(noticeable tremor)" msgstr "(deutliches Zittern)" -#: ../src/widgets/calligraphy-toolbar.cpp:511 +#: ../src/widgets/calligraphy-toolbar.cpp:528 msgid "(maximum tremor)" msgstr "(maximales Zittern)" -#: ../src/widgets/calligraphy-toolbar.cpp:514 +#: ../src/widgets/calligraphy-toolbar.cpp:531 msgid "Stroke Tremor" msgstr "Zittern der Linie" -#: ../src/widgets/calligraphy-toolbar.cpp:514 +#: ../src/widgets/calligraphy-toolbar.cpp:531 msgid "Tremor:" msgstr "Zittern:" -#: ../src/widgets/calligraphy-toolbar.cpp:515 +#: ../src/widgets/calligraphy-toolbar.cpp:532 msgid "Increase to make strokes rugged and trembling" msgstr "Erhöhen, um Striche zittrig und ausgefranst zu machen" #. Wiggle -#: ../src/widgets/calligraphy-toolbar.cpp:529 +#: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(no wiggle)" msgstr "(kein Wackeln)" -#: ../src/widgets/calligraphy-toolbar.cpp:529 +#: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(slight deviation)" msgstr "(leichte Abweichung)" -#: ../src/widgets/calligraphy-toolbar.cpp:529 +#: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(wild waves and curls)" msgstr "(wilde Wellen und Kringel)" -#: ../src/widgets/calligraphy-toolbar.cpp:532 +#: ../src/widgets/calligraphy-toolbar.cpp:549 msgid "Pen Wiggle" msgstr "Stift Verwackeln:" -#: ../src/widgets/calligraphy-toolbar.cpp:532 +#: ../src/widgets/calligraphy-toolbar.cpp:549 msgid "Wiggle:" msgstr "Wackeln:" -#: ../src/widgets/calligraphy-toolbar.cpp:533 +#: ../src/widgets/calligraphy-toolbar.cpp:550 msgid "Increase to make the pen waver and wiggle" msgstr "Erhöhen, um den FĂĽller wacklig zu machen" #. Mass -#: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/calligraphy-toolbar.cpp:563 msgid "(no inertia)" msgstr "(keine Trägheit)" -#: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/calligraphy-toolbar.cpp:563 msgid "(slight smoothing, default)" msgstr "(leichte Glättung, Vorgabe)" -#: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/calligraphy-toolbar.cpp:563 msgid "(noticeable lagging)" msgstr "(deutliches Hinterherschleppen)" -#: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/calligraphy-toolbar.cpp:563 msgid "(maximum inertia)" msgstr "(maximale Trägheit)" -#: ../src/widgets/calligraphy-toolbar.cpp:549 +#: ../src/widgets/calligraphy-toolbar.cpp:566 msgid "Pen Mass" msgstr "Stiftmasse:" -#: ../src/widgets/calligraphy-toolbar.cpp:549 +#: ../src/widgets/calligraphy-toolbar.cpp:566 msgid "Mass:" msgstr "Masse:" -#: ../src/widgets/calligraphy-toolbar.cpp:550 +#: ../src/widgets/calligraphy-toolbar.cpp:567 msgid "Increase to make the pen drag behind, as if slowed by inertia" msgstr "Erhöhen, um den FĂĽller nachzuschleppen, wie durch Trägheit verlangsamt" # !!! -#: ../src/widgets/calligraphy-toolbar.cpp:565 +#: ../src/widgets/calligraphy-toolbar.cpp:582 msgid "Trace Background" msgstr "Hintergrund verfolgen" -#: ../src/widgets/calligraphy-toolbar.cpp:566 +#: ../src/widgets/calligraphy-toolbar.cpp:583 msgid "" "Trace the lightness of the background by the width of the pen (white - " "minimum width, black - maximum width)" @@ -27232,116 +25559,116 @@ msgstr "" "Der Helligkeit des Hintergrunds mit der Breite des Stifts folgen (weiĂź - " "minimale Breite, schwarz - maximale Breite)" -#: ../src/widgets/calligraphy-toolbar.cpp:579 +#: ../src/widgets/calligraphy-toolbar.cpp:596 msgid "Use the pressure of the input device to alter the width of the pen" msgstr "" "Druckempfindlichkeit des Eingabegeräts benutzen, um die Strichbreite des " "FĂĽllers zu beeinflussen" -#: ../src/widgets/calligraphy-toolbar.cpp:591 +#: ../src/widgets/calligraphy-toolbar.cpp:608 msgid "Tilt" msgstr "Neigung" -#: ../src/widgets/calligraphy-toolbar.cpp:592 +#: ../src/widgets/calligraphy-toolbar.cpp:609 msgid "Use the tilt of the input device to alter the angle of the pen's nib" msgstr "" "Neigungsempfindlichkeit des Eingabegeräts benutzen, um den Winkel der " "FĂĽllerspitze zu beeinflussen" -#: ../src/widgets/calligraphy-toolbar.cpp:607 +#: ../src/widgets/calligraphy-toolbar.cpp:624 msgid "Choose a preset" msgstr "Wählen Sie eine Vorlage" -#: ../src/widgets/calligraphy-toolbar.cpp:622 +#: ../src/widgets/calligraphy-toolbar.cpp:639 msgid "Add/Edit Profile" msgstr "Profil hinzufĂĽgen oder editieren" -#: ../src/widgets/calligraphy-toolbar.cpp:623 +#: ../src/widgets/calligraphy-toolbar.cpp:640 msgid "Add or edit calligraphic profile" msgstr "Kalligrafisches Profil hinzufĂĽgen oder editieren" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:132 msgid "Set connector type: orthogonal" msgstr "Setzn den Verbindertyps: Winkelrecht" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:132 msgid "Set connector type: polyline" msgstr "Setzn den Verbindertyps: Polylinie" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/widgets/connector-toolbar.cpp:181 msgid "Change connector curvature" msgstr "KrĂĽmmung der Objektverbinder ändern" -#: ../src/widgets/connector-toolbar.cpp:220 +#: ../src/widgets/connector-toolbar.cpp:232 msgid "Change connector spacing" msgstr "Abstand der Objektverbinder ändern" -#: ../src/widgets/connector-toolbar.cpp:313 +#: ../src/widgets/connector-toolbar.cpp:325 msgid "Avoid" msgstr "Ausweichen" # CHECK -#: ../src/widgets/connector-toolbar.cpp:323 +#: ../src/widgets/connector-toolbar.cpp:335 msgid "Ignore" msgstr "Ignorieren" -#: ../src/widgets/connector-toolbar.cpp:334 +#: ../src/widgets/connector-toolbar.cpp:346 msgid "Orthogonal" msgstr "Orthogonal" -#: ../src/widgets/connector-toolbar.cpp:335 +#: ../src/widgets/connector-toolbar.cpp:347 msgid "Make connector orthogonal or polyline" msgstr "Erstelle den Verbinder winkelrecht oder als Polylinie" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:361 msgid "Connector Curvature" msgstr "KrĂĽmmung der Objektverbinder" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:361 msgid "Curvature:" msgstr "KrĂĽmmung" -#: ../src/widgets/connector-toolbar.cpp:350 +#: ../src/widgets/connector-toolbar.cpp:362 msgid "The amount of connectors curvature" msgstr "Der KrĂĽmmungswert der Verbindungslinie" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:372 msgid "Connector Spacing" msgstr "Verbinderabstand" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:372 msgid "Spacing:" msgstr "Abstand:" -#: ../src/widgets/connector-toolbar.cpp:361 +#: ../src/widgets/connector-toolbar.cpp:373 msgid "The amount of space left around objects by auto-routing connectors" msgstr "Platz, der von den Objektverbindern um Objekte herum gelassen wird" -#: ../src/widgets/connector-toolbar.cpp:372 +#: ../src/widgets/connector-toolbar.cpp:384 msgid "Graph" msgstr "Graph" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:394 msgid "Connector Length" msgstr "Verbinderlänge" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:394 msgid "Length:" msgstr "Länge:" -#: ../src/widgets/connector-toolbar.cpp:383 +#: ../src/widgets/connector-toolbar.cpp:395 msgid "Ideal length for connectors when layout is applied" msgstr "Ideale Länge fĂĽr Objektverbinder wenn das Layout angewendet wird" -#: ../src/widgets/connector-toolbar.cpp:395 +#: ../src/widgets/connector-toolbar.cpp:407 msgid "Downwards" msgstr "Nach unten" -#: ../src/widgets/connector-toolbar.cpp:396 +#: ../src/widgets/connector-toolbar.cpp:408 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "Objektverbinder mit Endemarkierungen (Pfeilen) zeigen nach unten" -#: ../src/widgets/connector-toolbar.cpp:412 +#: ../src/widgets/connector-toolbar.cpp:424 msgid "Do not allow overlapping shapes" msgstr "Keine ĂĽberlappenden Formen erlauben" @@ -27353,20 +25680,20 @@ msgstr "Muster der Strichlinien" msgid "Pattern offset" msgstr "Versatz des Musters" -#: ../src/widgets/desktop-widget.cpp:466 +#: ../src/widgets/desktop-widget.cpp:465 msgid "Zoom drawing if window size changes" msgstr "Zeichnungsgröße mit Fenstergröße verändern" -#: ../src/widgets/desktop-widget.cpp:665 +#: ../src/widgets/desktop-widget.cpp:669 msgid "Cursor coordinates" msgstr "Zeigerkoordinaten" -#: ../src/widgets/desktop-widget.cpp:691 +#: ../src/widgets/desktop-widget.cpp:695 msgid "Z:" msgstr "Z:" #. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:734 +#: ../src/widgets/desktop-widget.cpp:738 msgid "" "Welcome to Inkscape! Use shape or freehand tools to create objects; " "use selector (arrow) to move or transform them." @@ -27374,71 +25701,71 @@ msgstr "" "Willkommen zu Inkscape! Formen- und Freihandwerkzeuge erstellen " "Objekte; das Auswahlwerkzeug (Pfeil) verschiebt und bearbeitet." -#: ../src/widgets/desktop-widget.cpp:828 +#: ../src/widgets/desktop-widget.cpp:832 msgid "grayscale" msgstr "Graustufen" -#: ../src/widgets/desktop-widget.cpp:829 +#: ../src/widgets/desktop-widget.cpp:833 msgid ", grayscale" msgstr ", Graustufen" -#: ../src/widgets/desktop-widget.cpp:830 +#: ../src/widgets/desktop-widget.cpp:834 msgid "print colors preview" msgstr "_Druckfarben-Vorschau" -#: ../src/widgets/desktop-widget.cpp:831 +#: ../src/widgets/desktop-widget.cpp:835 msgid ", print colors preview" msgstr ", Druckfarben-Vorschau" -#: ../src/widgets/desktop-widget.cpp:832 +#: ../src/widgets/desktop-widget.cpp:836 msgid "outline" msgstr "Umriss" -#: ../src/widgets/desktop-widget.cpp:833 +#: ../src/widgets/desktop-widget.cpp:837 msgid "no filters" msgstr "Keine _Filter" -#: ../src/widgets/desktop-widget.cpp:860 +#: ../src/widgets/desktop-widget.cpp:864 #, c-format msgid "%s%s: %d (%s%s) - Inkscape" msgstr "%s%s: %d (%s%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 +#: ../src/widgets/desktop-widget.cpp:866 ../src/widgets/desktop-widget.cpp:870 #, c-format msgid "%s%s: %d (%s) - Inkscape" msgstr "%s%s: %d (%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:868 +#: ../src/widgets/desktop-widget.cpp:872 #, c-format msgid "%s%s: %d - Inkscape" msgstr "%s%s: %d - Inkscape" -#: ../src/widgets/desktop-widget.cpp:874 +#: ../src/widgets/desktop-widget.cpp:878 #, c-format msgid "%s%s (%s%s) - Inkscape" msgstr "%s%s (%s%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 +#: ../src/widgets/desktop-widget.cpp:880 ../src/widgets/desktop-widget.cpp:884 #, c-format msgid "%s%s (%s) - Inkscape" msgstr "%s%s (%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:882 +#: ../src/widgets/desktop-widget.cpp:886 #, c-format msgid "%s%s - Inkscape" msgstr "%s%s - Inkscape" # ??? -#: ../src/widgets/desktop-widget.cpp:1051 +#: ../src/widgets/desktop-widget.cpp:1055 msgid "Color-managed display is enabled in this window" msgstr "Farbverwaltungsansicht ist in diesem Fenster eingeschaltet" # ??? -#: ../src/widgets/desktop-widget.cpp:1053 +#: ../src/widgets/desktop-widget.cpp:1057 msgid "Color-managed display is disabled in this window" msgstr "Farbverwaltungsansicht ist in diesem Fenster ausgeschaltet" -#: ../src/widgets/desktop-widget.cpp:1108 +#: ../src/widgets/desktop-widget.cpp:1112 #, c-format msgid "" "Save changes to document \"%s\" before " @@ -27451,12 +25778,12 @@ msgstr "" "\n" "Wenn Sie schlieĂźen, ohne zu speichern, dann gehen Ihre Ă„nderungen verloren." -#: ../src/widgets/desktop-widget.cpp:1118 -#: ../src/widgets/desktop-widget.cpp:1177 +#: ../src/widgets/desktop-widget.cpp:1122 +#: ../src/widgets/desktop-widget.cpp:1181 msgid "Close _without saving" msgstr "SchlieĂźen, _ohne zu speichern" -#: ../src/widgets/desktop-widget.cpp:1167 +#: ../src/widgets/desktop-widget.cpp:1171 #, c-format msgid "" "The file \"%s\" was saved with a " @@ -27469,20 +25796,20 @@ msgstr "" "\n" "Möchten Sie das Dokument als ein Inkscape SVG speichern?" -#: ../src/widgets/desktop-widget.cpp:1179 +#: ../src/widgets/desktop-widget.cpp:1183 msgid "_Save as Inkscape SVG" msgstr "Als Inkscape-_SVG speichern" # CHECK -#: ../src/widgets/desktop-widget.cpp:1389 +#: ../src/widgets/desktop-widget.cpp:1393 msgid "Note:" msgstr "Hinweis:" -#: ../src/widgets/dropper-toolbar.cpp:90 +#: ../src/widgets/dropper-toolbar.cpp:114 msgid "Pick opacity" msgstr "Wähle Deckkraft" -#: ../src/widgets/dropper-toolbar.cpp:91 +#: ../src/widgets/dropper-toolbar.cpp:115 msgid "" "Pick both the color and the alpha (transparency) under cursor; otherwise, " "pick only the visible color premultiplied by alpha" @@ -27490,42 +25817,42 @@ msgstr "" "Farbe und Transparenz unter dem Cursor ĂĽbernehmen; ansonsten nur die " "sichtbare Farbe mit dem Transparenzwert vormultipliziert ĂĽbernehmen" -#: ../src/widgets/dropper-toolbar.cpp:94 +#: ../src/widgets/dropper-toolbar.cpp:118 msgid "Pick" msgstr "Aufnehmen" -#: ../src/widgets/dropper-toolbar.cpp:103 +#: ../src/widgets/dropper-toolbar.cpp:127 msgid "Assign opacity" msgstr "Transparenz festlegen" -#: ../src/widgets/dropper-toolbar.cpp:104 +#: ../src/widgets/dropper-toolbar.cpp:128 msgid "" "If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "" "Wenn Transparenz ĂĽbernommenen wurde, diese als FĂĽllung oder Kontur der " "Auswahl anwenden." -#: ../src/widgets/dropper-toolbar.cpp:107 +#: ../src/widgets/dropper-toolbar.cpp:131 msgid "Assign" msgstr "Zuweisen" -#: ../src/widgets/ege-paint-def.cpp:87 +#: ../src/widgets/ege-paint-def.cpp:88 msgid "remove" msgstr "entfernen" -#: ../src/widgets/eraser-toolbar.cpp:94 +#: ../src/widgets/eraser-toolbar.cpp:111 msgid "Delete objects touched by the eraser" msgstr "Lösche Objekte, die vom Radierer berĂĽhrt werden." -#: ../src/widgets/eraser-toolbar.cpp:100 +#: ../src/widgets/eraser-toolbar.cpp:117 msgid "Cut" msgstr "A_usschneiden" -#: ../src/widgets/eraser-toolbar.cpp:101 +#: ../src/widgets/eraser-toolbar.cpp:118 msgid "Cut out from objects" msgstr "Aus Objekt herausschneiden" -#: ../src/widgets/eraser-toolbar.cpp:129 +#: ../src/widgets/eraser-toolbar.cpp:146 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "Die Größe des Radiers (relativ zum sichtbaren Dokumentausschnitt)" @@ -27557,8 +25884,8 @@ msgstr "Muster fĂĽr die FĂĽllung setzen" msgid "Set pattern on stroke" msgstr "Muster fĂĽr die Kontur setzen" -#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:955 -#: ../src/widgets/text-toolbar.cpp:1268 +#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:962 +#: ../src/widgets/text-toolbar.cpp:1275 msgid "Font size" msgstr "Schriftgröße:" @@ -27577,129 +25904,130 @@ msgstr "Stil" msgid "Font size:" msgstr "Schriftgröße:" -#: ../src/widgets/gradient-selector.cpp:214 +#: ../src/widgets/gradient-selector.cpp:208 msgid "Create a duplicate gradient" msgstr "Duplikat-Farbverlauf erstellen" -#: ../src/widgets/gradient-selector.cpp:230 +#: ../src/widgets/gradient-selector.cpp:218 msgid "Edit gradient" msgstr "Farbverlauf bearbeiten" -#: ../src/widgets/gradient-selector.cpp:306 +#: ../src/widgets/gradient-selector.cpp:289 #: ../src/widgets/paint-selector.cpp:244 msgid "Swatch" msgstr "Farbmuster" -#: ../src/widgets/gradient-selector.cpp:356 +#: ../src/widgets/gradient-selector.cpp:339 msgid "Rename gradient" msgstr "Farbverlauf umbenennen" -#: ../src/widgets/gradient-toolbar.cpp:156 -#: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:761 -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:171 +#: ../src/widgets/gradient-toolbar.cpp:184 +#: ../src/widgets/gradient-toolbar.cpp:776 +#: ../src/widgets/gradient-toolbar.cpp:1111 +#: ../src/widgets/gradient-toolbar.cpp:1158 msgid "No gradient" msgstr "Kein Farbverlauf" -#: ../src/widgets/gradient-toolbar.cpp:175 +#: ../src/widgets/gradient-toolbar.cpp:190 msgid "Multiple gradients" msgstr "Mehrfache Farbverläufe" -#: ../src/widgets/gradient-toolbar.cpp:681 +#: ../src/widgets/gradient-toolbar.cpp:696 msgid "Multiple stops" msgstr "Mehrfach-Stopp" -#: ../src/widgets/gradient-toolbar.cpp:779 +#: ../src/widgets/gradient-toolbar.cpp:794 #: ../src/widgets/gradient-vector.cpp:629 msgid "No stops in gradient" msgstr "Keine Zwischenfarben im Farbverlauf" -#: ../src/widgets/gradient-toolbar.cpp:932 +#: ../src/widgets/gradient-toolbar.cpp:947 msgid "Assign gradient to object" msgstr "Farbverlauf einem Objekt zuweisen" -#: ../src/widgets/gradient-toolbar.cpp:954 +#: ../src/widgets/gradient-toolbar.cpp:969 msgid "Set gradient repeat" msgstr "Setze Verlaufswiederholung" -#: ../src/widgets/gradient-toolbar.cpp:992 +#: ../src/widgets/gradient-toolbar.cpp:1007 #: ../src/widgets/gradient-vector.cpp:740 msgid "Change gradient stop offset" msgstr "Versatz der Zwischenfarben des Farbverlaufs ändern" -#: ../src/widgets/gradient-toolbar.cpp:1036 +#: ../src/widgets/gradient-toolbar.cpp:1051 msgid "linear" msgstr "linear" -#: ../src/widgets/gradient-toolbar.cpp:1036 +#: ../src/widgets/gradient-toolbar.cpp:1051 msgid "Create linear gradient" msgstr "Linearen Farbverlauf erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1040 +#: ../src/widgets/gradient-toolbar.cpp:1055 msgid "radial" msgstr "radial" -#: ../src/widgets/gradient-toolbar.cpp:1040 +#: ../src/widgets/gradient-toolbar.cpp:1055 msgid "Create radial (elliptic or circular) gradient" msgstr "Radialen (elliptischen oder kreisförmigen) Farbverlauf erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1043 +#: ../src/widgets/gradient-toolbar.cpp:1058 #: ../src/widgets/mesh-toolbar.cpp:211 msgid "New:" msgstr "Neu:" -#: ../src/widgets/gradient-toolbar.cpp:1066 +#: ../src/widgets/gradient-toolbar.cpp:1081 #: ../src/widgets/mesh-toolbar.cpp:234 msgid "fill" msgstr "fĂĽllen" -#: ../src/widgets/gradient-toolbar.cpp:1066 +#: ../src/widgets/gradient-toolbar.cpp:1081 #: ../src/widgets/mesh-toolbar.cpp:234 msgid "Create gradient in the fill" msgstr "Farbverlauf fĂĽr die FĂĽllung erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/gradient-toolbar.cpp:1085 #: ../src/widgets/mesh-toolbar.cpp:238 msgid "stroke" msgstr "Kontur" -#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/gradient-toolbar.cpp:1085 #: ../src/widgets/mesh-toolbar.cpp:238 msgid "Create gradient in the stroke" msgstr "Farbverlauf fĂĽr die Kontur erzeugen" # CHECK -#: ../src/widgets/gradient-toolbar.cpp:1073 +#: ../src/widgets/gradient-toolbar.cpp:1088 #: ../src/widgets/mesh-toolbar.cpp:241 msgid "on:" msgstr "auf:" -#: ../src/widgets/gradient-toolbar.cpp:1098 +#: ../src/widgets/gradient-toolbar.cpp:1113 msgid "Select" msgstr "Auswählen" -#: ../src/widgets/gradient-toolbar.cpp:1098 +#: ../src/widgets/gradient-toolbar.cpp:1113 msgid "Choose a gradient" msgstr "Wählen Sie einen Verlauf" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1114 msgid "Select:" msgstr "Auswählen:" -#: ../src/widgets/gradient-toolbar.cpp:1117 +#: ../src/widgets/gradient-toolbar.cpp:1132 msgid "Reflected" msgstr "Reflektierend" -#: ../src/widgets/gradient-toolbar.cpp:1120 +#: ../src/widgets/gradient-toolbar.cpp:1135 msgid "Direct" msgstr "Direkt" -#: ../src/widgets/gradient-toolbar.cpp:1122 +#: ../src/widgets/gradient-toolbar.cpp:1137 msgid "Repeat" msgstr "Wiederholen" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1124 +#: ../src/widgets/gradient-toolbar.cpp:1139 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -27711,61 +26039,50 @@ msgstr "" "Richtung (spreadMethod=\"repeat\"), oder Wiederholung in abwechselnd " "entgegengesetzte Richtungen (spreadMethod=\"reflect\")" -#: ../src/widgets/gradient-toolbar.cpp:1129 +#: ../src/widgets/gradient-toolbar.cpp:1144 msgid "Repeat:" msgstr "Wiederholung:" -#: ../src/widgets/gradient-toolbar.cpp:1143 -msgid "No stops" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1145 +#: ../src/widgets/gradient-toolbar.cpp:1160 msgid "Stops" msgstr "Stopps" -#: ../src/widgets/gradient-toolbar.cpp:1145 +#: ../src/widgets/gradient-toolbar.cpp:1160 msgid "Select a stop for the current gradient" msgstr "Stopp fĂĽr derzeitigen Farbverlauf auswählen" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1161 msgid "Stops:" msgstr "Stopps:" -#. Label -#: ../src/widgets/gradient-toolbar.cpp:1158 -#: ../src/widgets/gradient-vector.cpp:926 -msgctxt "Gradient" -msgid "Offset:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1158 +#: ../src/widgets/gradient-toolbar.cpp:1173 msgid "Offset of selected stop" msgstr "Den gewählten Stopp verschieben" -#: ../src/widgets/gradient-toolbar.cpp:1176 -#: ../src/widgets/gradient-toolbar.cpp:1177 +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1192 msgid "Insert new stop" msgstr "Neuen Stopp einfĂĽgen" -#: ../src/widgets/gradient-toolbar.cpp:1190 -#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/widgets/gradient-toolbar.cpp:1206 #: ../src/widgets/gradient-vector.cpp:908 msgid "Delete stop" msgstr "Zwischenfarbe löschen" -#: ../src/widgets/gradient-toolbar.cpp:1204 +#: ../src/widgets/gradient-toolbar.cpp:1219 msgid "Reverse" msgstr "Umkehren" -#: ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/widgets/gradient-toolbar.cpp:1220 msgid "Reverse the direction of the gradient" msgstr "Die Richtung des Verlaufs umkehren" -#: ../src/widgets/gradient-toolbar.cpp:1219 +#: ../src/widgets/gradient-toolbar.cpp:1234 msgid "Link gradients" msgstr "VerknĂĽpfe Farbverläufe" -#: ../src/widgets/gradient-toolbar.cpp:1220 +#: ../src/widgets/gradient-toolbar.cpp:1235 msgid "Link gradients to change all related gradients" msgstr "VerknĂĽpfe Farbverläufe, um alle verbundenen Farbverläufe zu ändern" @@ -27809,43 +26126,27 @@ msgstr "Farbverlaufs-Editor" msgid "Change gradient stop color" msgstr "Zwischenfarbe des Farbverlaufs ändern" -#: ../src/widgets/lpe-toolbar.cpp:233 -msgid "Closed" -msgstr "Geschlossen" - -#: ../src/widgets/lpe-toolbar.cpp:235 -msgid "Open start" -msgstr "Offener Anfang" - -#: ../src/widgets/lpe-toolbar.cpp:237 -msgid "Open end" -msgstr "Offenes Ende" - -#: ../src/widgets/lpe-toolbar.cpp:239 -msgid "Open both" -msgstr "Ă–ffne beide" - -#: ../src/widgets/lpe-toolbar.cpp:298 +#: ../src/widgets/lpe-toolbar.cpp:317 msgid "All inactive" msgstr "Alles inaktiv" -#: ../src/widgets/lpe-toolbar.cpp:299 +#: ../src/widgets/lpe-toolbar.cpp:318 msgid "No geometric tool is active" msgstr "Es ist kein geometrisches Werkzeug aktiv" -#: ../src/widgets/lpe-toolbar.cpp:332 +#: ../src/widgets/lpe-toolbar.cpp:351 msgid "Show limiting bounding box" msgstr "Zeige Begrenzungsrahmen" -#: ../src/widgets/lpe-toolbar.cpp:333 +#: ../src/widgets/lpe-toolbar.cpp:352 msgid "Show bounding box (used to cut infinite lines)" msgstr "Zeigt Umrandung (wird benutzt, um unendliche Linien zu schneiden)" -#: ../src/widgets/lpe-toolbar.cpp:344 +#: ../src/widgets/lpe-toolbar.cpp:363 msgid "Get limiting bounding box from selection" msgstr "Begrenzungsrahmen aus Auswahl ermitteln" -#: ../src/widgets/lpe-toolbar.cpp:345 +#: ../src/widgets/lpe-toolbar.cpp:364 msgid "" "Set limiting bounding box (used to cut infinite lines) to the bounding box " "of current selection" @@ -27853,47 +26154,47 @@ msgstr "" "Begrenzungsrahmen (beschneidet unendliche Linien) gleich demjenigen der " "Auswahl" -#: ../src/widgets/lpe-toolbar.cpp:357 +#: ../src/widgets/lpe-toolbar.cpp:376 msgid "Choose a line segment type" msgstr "Segmenttyp wählen" -#: ../src/widgets/lpe-toolbar.cpp:373 +#: ../src/widgets/lpe-toolbar.cpp:392 msgid "Display measuring info" msgstr "Messwert anzeigen" -#: ../src/widgets/lpe-toolbar.cpp:374 +#: ../src/widgets/lpe-toolbar.cpp:393 msgid "Display measuring info for selected items" msgstr "Messwert aĂĽr ausgewählte Objekte anzeigen" #. Add the units menu. -#: ../src/widgets/lpe-toolbar.cpp:384 ../src/widgets/node-toolbar.cpp:613 -#: ../src/widgets/paintbucket-toolbar.cpp:166 -#: ../src/widgets/rect-toolbar.cpp:375 ../src/widgets/select-toolbar.cpp:536 +#: ../src/widgets/lpe-toolbar.cpp:403 ../src/widgets/node-toolbar.cpp:625 +#: ../src/widgets/paintbucket-toolbar.cpp:187 +#: ../src/widgets/rect-toolbar.cpp:382 ../src/widgets/select-toolbar.cpp:543 msgid "Units" msgstr "Einheiten" -#: ../src/widgets/lpe-toolbar.cpp:394 +#: ../src/widgets/lpe-toolbar.cpp:413 msgid "Open LPE dialog" msgstr "LPE Dialog öffnen" -#: ../src/widgets/lpe-toolbar.cpp:395 +#: ../src/widgets/lpe-toolbar.cpp:414 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "Ă–ffnet den LPE-Dialog (erlaubt Anpassung der Parameterwerte)" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1271 +#: ../src/widgets/measure-toolbar.cpp:103 ../src/widgets/text-toolbar.cpp:1278 msgid "Font Size" msgstr "Schriftgröße" -#: ../src/widgets/measure-toolbar.cpp:86 +#: ../src/widgets/measure-toolbar.cpp:103 msgid "Font Size:" msgstr "Schriftgröße" -#: ../src/widgets/measure-toolbar.cpp:87 +#: ../src/widgets/measure-toolbar.cpp:104 msgid "The font size to be used in the measurement labels" msgstr "Die Schriftgröße, die fĂĽr die Messungen verwendet werden" -#: ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 +#: ../src/widgets/measure-toolbar.cpp:116 +#: ../src/widgets/measure-toolbar.cpp:124 msgid "The units to be used for the measurements" msgstr "Die Einheiten, die fĂĽr die Messungen verwendet werden" @@ -27914,12 +26215,11 @@ msgid "Create conical gradient" msgstr "Konischen Farbverlauf erzeugen" #: ../src/widgets/mesh-toolbar.cpp:263 +#: ../share/extensions/guides_creator.inx.h:5 msgid "Rows" msgstr "Reihen:" -#: ../src/widgets/mesh-toolbar.cpp:263 -#: ../share/extensions/guides_creator.inx.h:5 -#: ../share/extensions/layout_nup.inx.h:12 +#: ../src/widgets/mesh-toolbar.cpp:263 ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "Reihen:" @@ -27928,11 +26228,11 @@ msgid "Number of rows in new mesh" msgstr "Anzahl der Zeilen im neuen Gitter" #: ../src/widgets/mesh-toolbar.cpp:279 +#: ../share/extensions/guides_creator.inx.h:4 msgid "Columns" msgstr "Spalten:" #: ../src/widgets/mesh-toolbar.cpp:279 -#: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Spalten:" @@ -27956,7 +26256,7 @@ msgstr "Kontur bearbeiten…" msgid "Edit stroke mesh" msgstr "Konturgitter bearbeiten…" -#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:533 msgid "Show Handles" msgstr "Anfasser zeigen" @@ -27965,199 +26265,255 @@ msgstr "Anfasser zeigen" msgid "Show side and tensor handles" msgstr "Anzeigen der Anfasser" -#: ../src/widgets/node-toolbar.cpp:341 +#: ../src/widgets/node-toolbar.cpp:353 msgid "Insert node" msgstr "Knoten einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:342 +#: ../src/widgets/node-toolbar.cpp:354 msgid "Insert new nodes into selected segments" msgstr "Neue Knoten in den gewählten Segmenten einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:345 +#: ../src/widgets/node-toolbar.cpp:357 msgid "Insert" msgstr "EinfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:356 +#: ../src/widgets/node-toolbar.cpp:368 msgid "Insert node at min X" msgstr "Knoten einfĂĽgen bei min X" -#: ../src/widgets/node-toolbar.cpp:357 +#: ../src/widgets/node-toolbar.cpp:369 msgid "Insert new nodes at min X into selected segments" msgstr "Neue Knoten bei min X in die gewählten Segmente einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:360 +#: ../src/widgets/node-toolbar.cpp:372 msgid "Insert min X" msgstr "Eingabe min X" -#: ../src/widgets/node-toolbar.cpp:366 +#: ../src/widgets/node-toolbar.cpp:378 msgid "Insert node at max X" msgstr "Knoten einfĂĽgen bei max X" -#: ../src/widgets/node-toolbar.cpp:367 +#: ../src/widgets/node-toolbar.cpp:379 msgid "Insert new nodes at max X into selected segments" msgstr "Neue Knoten bei max X in die gewählten Segmente einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:370 +#: ../src/widgets/node-toolbar.cpp:382 msgid "Insert max X" msgstr "Eingabe max X" -#: ../src/widgets/node-toolbar.cpp:376 +#: ../src/widgets/node-toolbar.cpp:388 msgid "Insert node at min Y" msgstr "Knoten einfĂĽgen bei min Y" -#: ../src/widgets/node-toolbar.cpp:377 +#: ../src/widgets/node-toolbar.cpp:389 msgid "Insert new nodes at min Y into selected segments" msgstr "Neue Knoten bei min Y in die gewählten Segmente einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:380 +#: ../src/widgets/node-toolbar.cpp:392 msgid "Insert min Y" msgstr "Eingabe min Y" -#: ../src/widgets/node-toolbar.cpp:386 +#: ../src/widgets/node-toolbar.cpp:398 msgid "Insert node at max Y" msgstr "Knoten einfĂĽgen bei max Y" -#: ../src/widgets/node-toolbar.cpp:387 +#: ../src/widgets/node-toolbar.cpp:399 msgid "Insert new nodes at max Y into selected segments" msgstr "Neue Knoten bei max Y in die gewählten Segmente einfĂĽgen" -#: ../src/widgets/node-toolbar.cpp:390 +#: ../src/widgets/node-toolbar.cpp:402 msgid "Insert max Y" msgstr "Eingabe max Y" -#: ../src/widgets/node-toolbar.cpp:398 +#: ../src/widgets/node-toolbar.cpp:410 msgid "Delete selected nodes" msgstr "Die gewählten Knoten löschen" -#: ../src/widgets/node-toolbar.cpp:409 +#: ../src/widgets/node-toolbar.cpp:421 msgid "Join selected nodes" msgstr "Gewählte Endknoten verbinden" -#: ../src/widgets/node-toolbar.cpp:412 +#: ../src/widgets/node-toolbar.cpp:424 msgid "Join" msgstr "Verbinden" # !!! difference to "split"? -#: ../src/widgets/node-toolbar.cpp:420 +#: ../src/widgets/node-toolbar.cpp:432 msgid "Break path at selected nodes" msgstr "Pfad an den gewählten Knoten auftrennen" -#: ../src/widgets/node-toolbar.cpp:430 +#: ../src/widgets/node-toolbar.cpp:442 msgid "Join with segment" msgstr "Segment verbinden" -#: ../src/widgets/node-toolbar.cpp:431 +#: ../src/widgets/node-toolbar.cpp:443 msgid "Join selected endnodes with a new segment" msgstr "Gewählte Endknoten durch ein neues Segment verbinden" -#: ../src/widgets/node-toolbar.cpp:440 +#: ../src/widgets/node-toolbar.cpp:452 msgid "Delete segment" msgstr "Segment löschen" -#: ../src/widgets/node-toolbar.cpp:441 +#: ../src/widgets/node-toolbar.cpp:453 msgid "Delete segment between two non-endpoint nodes" msgstr "Pfad zwischen zwei Knoten auftrennen" -#: ../src/widgets/node-toolbar.cpp:450 +#: ../src/widgets/node-toolbar.cpp:462 msgid "Node Cusp" msgstr "Knoten eckig" -#: ../src/widgets/node-toolbar.cpp:451 +#: ../src/widgets/node-toolbar.cpp:463 msgid "Make selected nodes corner" msgstr "Die gewählten Knoten in Ecken umwandeln" -#: ../src/widgets/node-toolbar.cpp:460 +#: ../src/widgets/node-toolbar.cpp:472 msgid "Node Smooth" msgstr "Knoten glatt" -#: ../src/widgets/node-toolbar.cpp:461 +#: ../src/widgets/node-toolbar.cpp:473 msgid "Make selected nodes smooth" msgstr "Die gewählten Knoten glätten" -#: ../src/widgets/node-toolbar.cpp:470 +#: ../src/widgets/node-toolbar.cpp:482 msgid "Node Symmetric" msgstr "Knoten symmetrisch" -#: ../src/widgets/node-toolbar.cpp:471 +#: ../src/widgets/node-toolbar.cpp:483 msgid "Make selected nodes symmetric" msgstr "Die gewählten Knoten symmetrisch machen" -#: ../src/widgets/node-toolbar.cpp:480 +#: ../src/widgets/node-toolbar.cpp:492 msgid "Node Auto" msgstr "Knoten automatisch" -#: ../src/widgets/node-toolbar.cpp:481 +#: ../src/widgets/node-toolbar.cpp:493 msgid "Make selected nodes auto-smooth" msgstr "Die gewählten Knoten automatisch abrunden" -#: ../src/widgets/node-toolbar.cpp:490 +#: ../src/widgets/node-toolbar.cpp:502 msgid "Node Line" msgstr "Knoten in Linien" -#: ../src/widgets/node-toolbar.cpp:491 +#: ../src/widgets/node-toolbar.cpp:503 msgid "Make selected segments lines" msgstr "Die gewählten Abschnitte in Linien umwandeln" -#: ../src/widgets/node-toolbar.cpp:500 +#: ../src/widgets/node-toolbar.cpp:512 msgid "Node Curve" msgstr "Knoten in Kurven" -#: ../src/widgets/node-toolbar.cpp:501 +#: ../src/widgets/node-toolbar.cpp:513 msgid "Make selected segments curves" msgstr "Die gewählten Abschnitte in Kurven umwandeln" -#: ../src/widgets/node-toolbar.cpp:510 +#: ../src/widgets/node-toolbar.cpp:522 msgid "Show Transform Handles" msgstr "Anfasser zeigen" -#: ../src/widgets/node-toolbar.cpp:511 +#: ../src/widgets/node-toolbar.cpp:523 msgid "Show transformation handles for selected nodes" msgstr "Zeige Anfasser fĂĽr gewählte Knoten" -#: ../src/widgets/node-toolbar.cpp:522 +#: ../src/widgets/node-toolbar.cpp:534 msgid "Show Bezier handles of selected nodes" msgstr "Die BĂ©zier-Anfasser von ausgewählten Knoten anzeigen" -#: ../src/widgets/node-toolbar.cpp:532 +#: ../src/widgets/node-toolbar.cpp:544 msgid "Show Outline" msgstr "Umriss zeigen" -#: ../src/widgets/node-toolbar.cpp:533 +#: ../src/widgets/node-toolbar.cpp:545 msgid "Show path outline (without path effects)" msgstr "Zeige Entwurfspfad (ohne Pfadeffekte)" -#: ../src/widgets/node-toolbar.cpp:555 +#: ../src/widgets/node-toolbar.cpp:567 msgid "Edit clipping paths" msgstr "Ausschneidepfad bearbeiten" -#: ../src/widgets/node-toolbar.cpp:556 +#: ../src/widgets/node-toolbar.cpp:568 msgid "Show clipping path(s) of selected object(s)" msgstr "Zeige BĂ©zier-Anfasser fĂĽr Ausschneidungspfade an ausgewählten Objekten" -#: ../src/widgets/node-toolbar.cpp:566 +#: ../src/widgets/node-toolbar.cpp:578 msgid "Edit masks" msgstr "Maskierung bearbeiten" -#: ../src/widgets/node-toolbar.cpp:567 +#: ../src/widgets/node-toolbar.cpp:579 msgid "Show mask(s) of selected object(s)" msgstr "Zeige BĂ©zier-Anfasser fĂĽr Maskierungen an ausgewählten Objekten" -#: ../src/widgets/node-toolbar.cpp:581 +#: ../src/widgets/node-toolbar.cpp:593 msgid "X coordinate:" msgstr "X-Koordinate:" -#: ../src/widgets/node-toolbar.cpp:581 +#: ../src/widgets/node-toolbar.cpp:593 msgid "X coordinate of selected node(s)" msgstr "X-Koordinate der Auswahl" -#: ../src/widgets/node-toolbar.cpp:599 +#: ../src/widgets/node-toolbar.cpp:611 msgid "Y coordinate:" msgstr "Y-Koordinate" -#: ../src/widgets/node-toolbar.cpp:599 +#: ../src/widgets/node-toolbar.cpp:611 msgid "Y coordinate of selected node(s)" msgstr "Y-Koordinate der Auswahl" +#: ../src/widgets/paintbucket-toolbar.cpp:154 +msgid "Fill by" +msgstr "FĂĽllen mit:" + +#: ../src/widgets/paintbucket-toolbar.cpp:155 +msgid "Fill by:" +msgstr "FĂĽllen mit:" + +#: ../src/widgets/paintbucket-toolbar.cpp:167 +msgid "Fill Threshold" +msgstr "FĂĽll-Schwellwert:" + +#: ../src/widgets/paintbucket-toolbar.cpp:168 +msgid "" +"The maximum allowed difference between the clicked pixel and the neighboring " +"pixels to be counted in the fill" +msgstr "" +"Der maximal erlaubte Unterschied zwischen dem angeklickten Pixel und den " +"benachbarten Pixeln, um noch zur FĂĽllung zu gehören" + +#: ../src/widgets/paintbucket-toolbar.cpp:195 +msgid "Grow/shrink by" +msgstr "Vergrößern/Verkleinern um:" + +#: ../src/widgets/paintbucket-toolbar.cpp:195 +msgid "Grow/shrink by:" +msgstr "Vergrößern/Verkleinern um:" + +#: ../src/widgets/paintbucket-toolbar.cpp:196 +msgid "" +"The amount to grow (positive) or shrink (negative) the created fill path" +msgstr "" +"Erzeugten FĂĽllungspfad vergrößern (positive) oder verkleinern (negativ)" + +#: ../src/widgets/paintbucket-toolbar.cpp:221 +msgid "Close gaps" +msgstr "LĂĽcken schlieĂźen" + +#: ../src/widgets/paintbucket-toolbar.cpp:222 +msgid "Close gaps:" +msgstr "LĂĽcken schlieĂźen:" + +#: ../src/widgets/paintbucket-toolbar.cpp:233 +#: ../src/widgets/pencil-toolbar.cpp:322 ../src/widgets/spiral-toolbar.cpp:300 +#: ../src/widgets/star-toolbar.cpp:572 +msgid "Defaults" +msgstr "Vorgaben" + +#: ../src/widgets/paintbucket-toolbar.cpp:234 +msgid "" +"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " +"to change defaults)" +msgstr "" +"Die Parameter des Farbeimers auf Vorgabewerte zurĂĽcksetzen (MenĂĽ Datei » " +"Inkscape-Einstellungen » Werkzeuge, um die Vorgabeeinstellungen zu ändern)" + #: ../src/widgets/paint-selector.cpp:234 msgid "No paint" msgstr "Nicht zeichnen" @@ -28242,135 +26598,79 @@ msgstr "FĂĽllmuster" msgid "Swatch fill" msgstr "FarbmusterfĂĽllung" -#: ../src/widgets/paintbucket-toolbar.cpp:133 -msgid "Fill by" -msgstr "FĂĽllen mit:" - -#: ../src/widgets/paintbucket-toolbar.cpp:134 -msgid "Fill by:" -msgstr "FĂĽllen mit:" - -#: ../src/widgets/paintbucket-toolbar.cpp:146 -msgid "Fill Threshold" -msgstr "FĂĽll-Schwellwert:" - -#: ../src/widgets/paintbucket-toolbar.cpp:147 -msgid "" -"The maximum allowed difference between the clicked pixel and the neighboring " -"pixels to be counted in the fill" -msgstr "" -"Der maximal erlaubte Unterschied zwischen dem angeklickten Pixel und den " -"benachbarten Pixeln, um noch zur FĂĽllung zu gehören" - -#: ../src/widgets/paintbucket-toolbar.cpp:174 -msgid "Grow/shrink by" -msgstr "Vergrößern/Verkleinern um:" - -#: ../src/widgets/paintbucket-toolbar.cpp:174 -msgid "Grow/shrink by:" -msgstr "Vergrößern/Verkleinern um:" - -#: ../src/widgets/paintbucket-toolbar.cpp:175 -msgid "" -"The amount to grow (positive) or shrink (negative) the created fill path" -msgstr "" -"Erzeugten FĂĽllungspfad vergrößern (positive) oder verkleinern (negativ)" - -#: ../src/widgets/paintbucket-toolbar.cpp:200 -msgid "Close gaps" -msgstr "LĂĽcken schlieĂźen" - -#: ../src/widgets/paintbucket-toolbar.cpp:201 -msgid "Close gaps:" -msgstr "LĂĽcken schlieĂźen:" - -#: ../src/widgets/paintbucket-toolbar.cpp:212 -#: ../src/widgets/pencil-toolbar.cpp:293 ../src/widgets/spiral-toolbar.cpp:289 -#: ../src/widgets/star-toolbar.cpp:564 -msgid "Defaults" -msgstr "Vorgaben" - -#: ../src/widgets/paintbucket-toolbar.cpp:213 -msgid "" -"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " -"to change defaults)" -msgstr "" -"Die Parameter des Farbeimers auf Vorgabewerte zurĂĽcksetzen (MenĂĽ Datei » " -"Inkscape-Einstellungen » Werkzeuge, um die Vorgabeeinstellungen zu ändern)" - -#: ../src/widgets/pencil-toolbar.cpp:96 +#: ../src/widgets/pencil-toolbar.cpp:125 msgid "Bezier" msgstr "Bezier" -#: ../src/widgets/pencil-toolbar.cpp:97 +#: ../src/widgets/pencil-toolbar.cpp:126 msgid "Create regular Bezier path" msgstr "Erstelle Bezier Pfad" -#: ../src/widgets/pencil-toolbar.cpp:104 +#: ../src/widgets/pencil-toolbar.cpp:133 msgid "Create Spiro path" msgstr "Erstelle Spiral-Pfad" -#: ../src/widgets/pencil-toolbar.cpp:111 +#: ../src/widgets/pencil-toolbar.cpp:140 msgid "Zigzag" msgstr "Zickzack" -#: ../src/widgets/pencil-toolbar.cpp:112 +#: ../src/widgets/pencil-toolbar.cpp:141 msgid "Create a sequence of straight line segments" msgstr "Erstelle eine Folge von Gerade Liniensegmenten" -#: ../src/widgets/pencil-toolbar.cpp:118 +#: ../src/widgets/pencil-toolbar.cpp:147 msgid "Paraxial" msgstr "achsenparallel" -#: ../src/widgets/pencil-toolbar.cpp:119 +#: ../src/widgets/pencil-toolbar.cpp:148 msgid "Create a sequence of paraxial line segments" msgstr "Erstelle eine Folge von Achsenparallelen Liniensegmenten" -#: ../src/widgets/pencil-toolbar.cpp:127 +#: ../src/widgets/pencil-toolbar.cpp:156 msgid "Mode of new lines drawn by this tool" msgstr "Modus fĂĽr neue Linie mit diesem Werkzeug" -#: ../src/widgets/pencil-toolbar.cpp:156 +#: ../src/widgets/pencil-toolbar.cpp:185 msgid "Triangle in" msgstr "Dreieck Anfang" -#: ../src/widgets/pencil-toolbar.cpp:157 +#: ../src/widgets/pencil-toolbar.cpp:186 msgid "Triangle out" msgstr "Dreieck Ende" -#: ../src/widgets/pencil-toolbar.cpp:159 +#: ../src/widgets/pencil-toolbar.cpp:188 msgid "From clipboard" msgstr "Aus Zwischenablage" -#: ../src/widgets/pencil-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:185 +#: ../src/widgets/pencil-toolbar.cpp:213 ../src/widgets/pencil-toolbar.cpp:214 msgid "Shape:" msgstr "Form:" -#: ../src/widgets/pencil-toolbar.cpp:184 +#: ../src/widgets/pencil-toolbar.cpp:213 msgid "Shape of new paths drawn by this tool" msgstr "Stil von neuen Pfaden mit diesem Werkzeug" -#: ../src/widgets/pencil-toolbar.cpp:269 +#: ../src/widgets/pencil-toolbar.cpp:298 msgid "(many nodes, rough)" msgstr "(viele Knoten, grob)" -#: ../src/widgets/pencil-toolbar.cpp:269 +#: ../src/widgets/pencil-toolbar.cpp:298 msgid "(few nodes, smooth)" msgstr "(wenige Knoten, weich)" -#: ../src/widgets/pencil-toolbar.cpp:272 +#: ../src/widgets/pencil-toolbar.cpp:301 msgid "Smoothing:" msgstr "Glättung:" -#: ../src/widgets/pencil-toolbar.cpp:272 +#: ../src/widgets/pencil-toolbar.cpp:301 msgid "Smoothing: " msgstr "Glättung:" -#: ../src/widgets/pencil-toolbar.cpp:273 +#: ../src/widgets/pencil-toolbar.cpp:302 msgid "How much smoothing (simplifying) is applied to the line" msgstr "Wie stark die Linie geglättet (vereinfacht) wird" -#: ../src/widgets/pencil-toolbar.cpp:294 +#: ../src/widgets/pencil-toolbar.cpp:323 msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -28378,59 +26678,59 @@ msgstr "" "Die Parameter des Stiftes auf Vorgabewerte zurĂĽcksetzen (MenĂĽ Datei » " "Inkscape-Einstellungen » Werkzeuge, um die Grundeinstellungen zu ändern)" -#: ../src/widgets/rect-toolbar.cpp:122 +#: ../src/widgets/rect-toolbar.cpp:129 msgid "Change rectangle" msgstr "Rechteck ändern" -#: ../src/widgets/rect-toolbar.cpp:314 +#: ../src/widgets/rect-toolbar.cpp:321 msgid "W:" msgstr "W:" -#: ../src/widgets/rect-toolbar.cpp:314 +#: ../src/widgets/rect-toolbar.cpp:321 msgid "Width of rectangle" msgstr "Breite des Rechtecks" -#: ../src/widgets/rect-toolbar.cpp:331 +#: ../src/widgets/rect-toolbar.cpp:338 msgid "H:" msgstr "H:" -#: ../src/widgets/rect-toolbar.cpp:331 +#: ../src/widgets/rect-toolbar.cpp:338 msgid "Height of rectangle" msgstr "Höhe des Rechtecks" -#: ../src/widgets/rect-toolbar.cpp:345 ../src/widgets/rect-toolbar.cpp:360 +#: ../src/widgets/rect-toolbar.cpp:352 ../src/widgets/rect-toolbar.cpp:367 msgid "not rounded" msgstr "Nicht abgerundet" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:355 msgid "Horizontal radius" msgstr "Horizontaler Radius" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:355 msgid "Rx:" msgstr "Rx:" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:355 msgid "Horizontal radius of rounded corners" msgstr "Horizontaler Radius einer abgerundeten Ecke" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:370 msgid "Vertical radius" msgstr "Vertikaler Radius" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:370 msgid "Ry:" msgstr "Ry:" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:370 msgid "Vertical radius of rounded corners" msgstr "Vertikaler Radius einer abgerundeten Ecke" -#: ../src/widgets/rect-toolbar.cpp:382 +#: ../src/widgets/rect-toolbar.cpp:389 msgid "Not rounded" msgstr "Nicht abgerundet" -#: ../src/widgets/rect-toolbar.cpp:383 +#: ../src/widgets/rect-toolbar.cpp:390 msgid "Make corners sharp" msgstr "Spitze Ecken" @@ -28476,23 +26776,23 @@ msgstr "Größe" msgid "Maximum size of the ruler" msgstr "Maximalgröße des Lineals" -#: ../src/widgets/select-toolbar.cpp:260 +#: ../src/widgets/select-toolbar.cpp:267 msgid "Transform by toolbar" msgstr "Mittels Werkzeugleiste transformieren" -#: ../src/widgets/select-toolbar.cpp:339 +#: ../src/widgets/select-toolbar.cpp:346 msgid "Now stroke width is scaled when objects are scaled." msgstr "" "Breite der Kontur wird nun skaliert, wenn Objekte skaliert " "werden." -#: ../src/widgets/select-toolbar.cpp:341 +#: ../src/widgets/select-toolbar.cpp:348 msgid "Now stroke width is not scaled when objects are scaled." msgstr "" "Breite der Kontur wird nun nicht skaliert, wenn Objekte " "skaliert werden." -#: ../src/widgets/select-toolbar.cpp:352 +#: ../src/widgets/select-toolbar.cpp:359 msgid "" "Now rounded rectangle corners are scaled when rectangles are " "scaled." @@ -28500,7 +26800,7 @@ msgstr "" "Ecken abgerundeter Rechtecke werden nun mitskaliert, wenn " "Objekte skaliert werden." -#: ../src/widgets/select-toolbar.cpp:354 +#: ../src/widgets/select-toolbar.cpp:361 msgid "" "Now rounded rectangle corners are not scaled when rectangles " "are scaled." @@ -28508,7 +26808,7 @@ msgstr "" "Ecken abgerundeter Rechtecke werden nun nicht mitskaliert, " "wenn Objekte skaliert werden." -#: ../src/widgets/select-toolbar.cpp:365 +#: ../src/widgets/select-toolbar.cpp:372 msgid "" "Now gradients are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -28516,7 +26816,7 @@ msgstr "" "Farbverläufe werden nun mit ihren Objekten transformiert, wenn " "diese transformiert werden (bewegt, skaliert, gedreht oder geschert)." -#: ../src/widgets/select-toolbar.cpp:367 +#: ../src/widgets/select-toolbar.cpp:374 msgid "" "Now gradients remain fixed when objects are transformed " "(moved, scaled, rotated, or skewed)." @@ -28524,7 +26824,7 @@ msgstr "" "Farbverläufe bleiben nun unverändert, wenn Objekte " "transformiert werden (bewegt, skaliert, gedreht oder geschert)." -#: ../src/widgets/select-toolbar.cpp:378 +#: ../src/widgets/select-toolbar.cpp:385 msgid "" "Now patterns are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -28532,7 +26832,7 @@ msgstr "" "Muster werden nun mit ihren Objekten transformiert, wenn diese " "transformiert werden (bewegt, skaliert, gedreht oder geschert)." -#: ../src/widgets/select-toolbar.cpp:380 +#: ../src/widgets/select-toolbar.cpp:387 msgid "" "Now patterns remain fixed when objects are transformed (moved, " "scaled, rotated, or skewed)." @@ -28541,79 +26841,79 @@ msgstr "" "werden (bewegt, skaliert, gedreht oder geschert)." #. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:498 +#: ../src/widgets/select-toolbar.cpp:505 msgctxt "Select toolbar" msgid "X position" msgstr "X-Position" -#: ../src/widgets/select-toolbar.cpp:498 +#: ../src/widgets/select-toolbar.cpp:505 msgctxt "Select toolbar" msgid "X:" msgstr "X:" -#: ../src/widgets/select-toolbar.cpp:500 +#: ../src/widgets/select-toolbar.cpp:507 msgid "Horizontal coordinate of selection" msgstr "Horizontale Koordinate der Auswahl" -#: ../src/widgets/select-toolbar.cpp:504 +#: ../src/widgets/select-toolbar.cpp:511 msgctxt "Select toolbar" msgid "Y position" msgstr "Y-Position" -#: ../src/widgets/select-toolbar.cpp:504 +#: ../src/widgets/select-toolbar.cpp:511 msgctxt "Select toolbar" msgid "Y:" msgstr "Y:" -#: ../src/widgets/select-toolbar.cpp:506 +#: ../src/widgets/select-toolbar.cpp:513 msgid "Vertical coordinate of selection" msgstr "Vertikale Koordinate der Auswahl" -#: ../src/widgets/select-toolbar.cpp:510 +#: ../src/widgets/select-toolbar.cpp:517 msgctxt "Select toolbar" msgid "Width" msgstr "Breite" -#: ../src/widgets/select-toolbar.cpp:510 +#: ../src/widgets/select-toolbar.cpp:517 msgctxt "Select toolbar" msgid "W:" msgstr "B:" -#: ../src/widgets/select-toolbar.cpp:512 +#: ../src/widgets/select-toolbar.cpp:519 msgid "Width of selection" msgstr "Breite der Auswahl" -#: ../src/widgets/select-toolbar.cpp:519 +#: ../src/widgets/select-toolbar.cpp:526 msgid "Lock width and height" msgstr "Breite und Höhe sperren" -#: ../src/widgets/select-toolbar.cpp:520 +#: ../src/widgets/select-toolbar.cpp:527 msgid "When locked, change both width and height by the same proportion" msgstr "Wenn gesperrt, dann wird das Höhen- und Breitenverhältnis beibehalten" -#: ../src/widgets/select-toolbar.cpp:529 +#: ../src/widgets/select-toolbar.cpp:536 msgctxt "Select toolbar" msgid "Height" msgstr "Höhe" -#: ../src/widgets/select-toolbar.cpp:529 +#: ../src/widgets/select-toolbar.cpp:536 msgctxt "Select toolbar" msgid "H:" msgstr "H:" -#: ../src/widgets/select-toolbar.cpp:531 +#: ../src/widgets/select-toolbar.cpp:538 msgid "Height of selection" msgstr "Höhe der Auswahl" -#: ../src/widgets/select-toolbar.cpp:581 +#: ../src/widgets/select-toolbar.cpp:588 msgid "Scale rounded corners" msgstr "Abgerundete Ecken mitskalieren" -#: ../src/widgets/select-toolbar.cpp:592 +#: ../src/widgets/select-toolbar.cpp:599 msgid "Move gradients" msgstr "Farbverlaufs-Anfasser verschieben" -#: ../src/widgets/select-toolbar.cpp:603 +#: ../src/widgets/select-toolbar.cpp:610 msgid "Move patterns" msgstr "Muster verschieben" @@ -28641,6 +26941,10 @@ msgstr "_G:" msgid "_B:" msgstr "_B:" +#: ../src/widgets/sp-color-icc-selector.cpp:359 +msgid "G:" +msgstr "G:" + #: ../src/widgets/sp-color-icc-selector.cpp:359 msgid "Gray" msgstr "Grau" @@ -28759,99 +27063,91 @@ msgstr "CMYK" msgid "Unnamed" msgstr "Unbenannt" -#: ../src/widgets/sp-xmlview-attr-list.cpp:64 -msgid "Value" -msgstr "Wert" - -#: ../src/widgets/sp-xmlview-content.cpp:179 -msgid "Type text in a text node" -msgstr "Text in einem Text-Knoten tippen" - -#: ../src/widgets/spiral-toolbar.cpp:100 +#: ../src/widgets/spiral-toolbar.cpp:111 msgid "Change spiral" msgstr "Spirale ändern" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:257 msgid "just a curve" msgstr "Kurve ziehen" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:257 msgid "one full revolution" msgstr "eine volle Umdrehung" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:260 msgid "Number of turns" msgstr "Anzahl der Drehungen" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:260 msgid "Turns:" msgstr "Umdrehungen:" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:260 msgid "Number of revolutions" msgstr "Anzahl der Umdrehungen" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "circle" msgstr "Kreis" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "edge is much denser" msgstr "Kante ist viel dichter" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "edge is denser" msgstr "Kante ist dichter" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "even" msgstr "eben" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "center is denser" msgstr "Mittelpunkt ist dichter" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:271 msgid "center is much denser" msgstr "Zentrum ist viel dichter" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:274 msgid "Divergence" msgstr "Abweichung" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:274 msgid "Divergence:" msgstr "Abweichung:" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:274 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "Dichte der äuĂźeren Umdrehungen; 1 = gleichförmig" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:285 msgid "starts from center" msgstr "startet vom Mittelpunkt" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:285 msgid "starts mid-way" msgstr "beginnt mittig" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:285 msgid "starts near edge" msgstr "Startet nahe der Ecke" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:288 msgid "Inner radius" msgstr "Innerer Radius" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:288 msgid "Inner radius:" msgstr "Innerer Radius:" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:288 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "Radius der innersten Umdrehung (relativ zur Gesamtgröße der Spirale)" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:565 +#: ../src/widgets/spiral-toolbar.cpp:301 ../src/widgets/star-toolbar.cpp:573 msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -28861,114 +27157,114 @@ msgstr "" # (swatches) #. Width -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/spray-toolbar.cpp:125 msgid "(narrow spray)" msgstr "(eng sprĂĽhen)" -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/spray-toolbar.cpp:125 msgid "(broad spray)" msgstr "(breit sprĂĽhen)" -#: ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/spray-toolbar.cpp:128 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "Breite des SprĂĽhbereichs (relativ zum sichtbaren Dokumentausschnitt)" -#: ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/spray-toolbar.cpp:141 msgid "(maximum mean)" msgstr "(maximales Mittel)" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:144 msgid "Focus" msgstr "Fokus" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:144 msgid "Focus:" msgstr "Fokus:" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:144 msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "0 um einen Punkt zu sprĂĽhen. Erhöhen, um den Ringradius zu erweitern." #. Standard_deviation -#: ../src/widgets/spray-toolbar.cpp:145 +#: ../src/widgets/spray-toolbar.cpp:157 msgid "(minimum scatter)" msgstr "(minimale Streuung)" -#: ../src/widgets/spray-toolbar.cpp:145 +#: ../src/widgets/spray-toolbar.cpp:157 msgid "(maximum scatter)" msgstr "(maximale Streuung)" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:160 msgctxt "Spray tool" msgid "Scatter" msgstr "Streuung" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:160 msgctxt "Spray tool" msgid "Scatter:" msgstr "Streuung:" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:160 msgid "Increase to scatter sprayed objects" msgstr "Vergrößern der Streuung gesprĂĽhter Objekte" -#: ../src/widgets/spray-toolbar.cpp:167 +#: ../src/widgets/spray-toolbar.cpp:179 msgid "Spray copies of the initial selection" msgstr "SprĂĽhe Kopien vom zuletzt ausgewählten Objekt" -#: ../src/widgets/spray-toolbar.cpp:174 +#: ../src/widgets/spray-toolbar.cpp:186 msgid "Spray clones of the initial selection" msgstr "SprĂĽhe Klone vom zuletzt ausgewählten Objekt" -#: ../src/widgets/spray-toolbar.cpp:180 +#: ../src/widgets/spray-toolbar.cpp:192 msgid "Spray single path" msgstr "SprĂĽhe einzelnen Pfad" -#: ../src/widgets/spray-toolbar.cpp:181 +#: ../src/widgets/spray-toolbar.cpp:193 msgid "Spray objects in a single path" msgstr "SprĂĽht Objekte in einen einzelnen Pfad" -#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 +#: ../src/widgets/spray-toolbar.cpp:197 ../src/widgets/tweak-toolbar.cpp:267 msgid "Mode" msgstr "Modus" #. Population -#: ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:217 msgid "(low population)" msgstr "(niedrige Population)" -#: ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:217 msgid "(high population)" msgstr "(hoher Zuwachs)" -#: ../src/widgets/spray-toolbar.cpp:208 +#: ../src/widgets/spray-toolbar.cpp:220 msgid "Amount" msgstr "Menge" -#: ../src/widgets/spray-toolbar.cpp:209 +#: ../src/widgets/spray-toolbar.cpp:221 msgid "Adjusts the number of items sprayed per click" msgstr "Anzahl der Objekte festlegen, die per Klick gesprĂĽht werden." -#: ../src/widgets/spray-toolbar.cpp:225 +#: ../src/widgets/spray-toolbar.cpp:237 msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" "Druckempfindlichkeit des Eingabegeräts benutzen, um die Anzahl der zu " "sprĂĽhenden Objekte zu beeinflussen" -#: ../src/widgets/spray-toolbar.cpp:235 +#: ../src/widgets/spray-toolbar.cpp:247 msgid "(high rotation variation)" msgstr "(starke Abweichung)" -#: ../src/widgets/spray-toolbar.cpp:238 +#: ../src/widgets/spray-toolbar.cpp:250 msgid "Rotation" msgstr "_Rotation" -#: ../src/widgets/spray-toolbar.cpp:238 +#: ../src/widgets/spray-toolbar.cpp:250 msgid "Rotation:" msgstr "_Rotation" -#: ../src/widgets/spray-toolbar.cpp:240 +#: ../src/widgets/spray-toolbar.cpp:252 #, no-c-format msgid "" "Variation of the rotation of the sprayed objects; 0% for the same rotation " @@ -28977,21 +27273,21 @@ msgstr "" "Variiert die Drehung der zu sprĂĽhenden Objekte. 0% bedeutet gleiche Drehung " "wie das Originalobjekt." -#: ../src/widgets/spray-toolbar.cpp:253 +#: ../src/widgets/spray-toolbar.cpp:265 msgid "(high scale variation)" msgstr "(starke Abweichung)" -#: ../src/widgets/spray-toolbar.cpp:256 +#: ../src/widgets/spray-toolbar.cpp:268 msgctxt "Spray tool" msgid "Scale" msgstr "Skalieren" -#: ../src/widgets/spray-toolbar.cpp:256 +#: ../src/widgets/spray-toolbar.cpp:268 msgctxt "Spray tool" msgid "Scale:" msgstr "Skalierung:" -#: ../src/widgets/spray-toolbar.cpp:258 +#: ../src/widgets/spray-toolbar.cpp:270 #, no-c-format msgid "" "Variation in the scale of the sprayed objects; 0% for the same scale than " @@ -29000,181 +27296,189 @@ msgstr "" "Variiert die Größe der zu sprĂĽhenden Objekte. 0% bedeutet gleiche Größe wie " "das Originalobjekt." -#: ../src/widgets/star-toolbar.cpp:102 +#: ../src/widgets/sp-xmlview-attr-list.cpp:64 +msgid "Value" +msgstr "Wert" + +#: ../src/widgets/sp-xmlview-content.cpp:179 +msgid "Type text in a text node" +msgstr "Text in einem Text-Knoten tippen" + +#: ../src/widgets/star-toolbar.cpp:110 msgid "Star: Change number of corners" msgstr "Stern: Anzahl der Ecken ändern" -#: ../src/widgets/star-toolbar.cpp:155 +#: ../src/widgets/star-toolbar.cpp:163 msgid "Star: Change spoke ratio" msgstr "Stern: Verhältnis der Spitzen ändern" -#: ../src/widgets/star-toolbar.cpp:200 +#: ../src/widgets/star-toolbar.cpp:208 msgid "Make polygon" msgstr "Polygon erstellen" -#: ../src/widgets/star-toolbar.cpp:200 +#: ../src/widgets/star-toolbar.cpp:208 msgid "Make star" msgstr "Stern erstellen" -#: ../src/widgets/star-toolbar.cpp:239 +#: ../src/widgets/star-toolbar.cpp:247 msgid "Star: Change rounding" msgstr "Stern: Abrundung ändern" -#: ../src/widgets/star-toolbar.cpp:279 +#: ../src/widgets/star-toolbar.cpp:287 msgid "Star: Change randomization" msgstr "Stern: Zufälligkeit ändern" -#: ../src/widgets/star-toolbar.cpp:463 +#: ../src/widgets/star-toolbar.cpp:471 msgid "Regular polygon (with one handle) instead of a star" msgstr "Gewöhnliches Vieleck (Polygon mit einem Anfasser) statt eines Sterns" -#: ../src/widgets/star-toolbar.cpp:470 +#: ../src/widgets/star-toolbar.cpp:478 msgid "Star instead of a regular polygon (with one handle)" msgstr "Stern statt eines gewöhnlichen Vielecks (Polygon mit einem Anfasser)" -#: ../src/widgets/star-toolbar.cpp:491 +#: ../src/widgets/star-toolbar.cpp:499 msgid "triangle/tri-star" msgstr "Dreieck/Stern mit drei Spitzen" -#: ../src/widgets/star-toolbar.cpp:491 +#: ../src/widgets/star-toolbar.cpp:499 msgid "square/quad-star" msgstr "Quadrat/Stern mit vier Spitzen" -#: ../src/widgets/star-toolbar.cpp:491 +#: ../src/widgets/star-toolbar.cpp:499 msgid "pentagon/five-pointed star" msgstr "FĂĽnfeck/Stern mit fĂĽnf Spitzen" -#: ../src/widgets/star-toolbar.cpp:491 +#: ../src/widgets/star-toolbar.cpp:499 msgid "hexagon/six-pointed star" msgstr "Sechseck/Stern mit sechs Spitzen" -#: ../src/widgets/star-toolbar.cpp:494 +#: ../src/widgets/star-toolbar.cpp:502 msgid "Corners" msgstr "Ecken" -#: ../src/widgets/star-toolbar.cpp:494 +#: ../src/widgets/star-toolbar.cpp:502 msgid "Corners:" msgstr "Ecken:" -#: ../src/widgets/star-toolbar.cpp:494 +#: ../src/widgets/star-toolbar.cpp:502 msgid "Number of corners of a polygon or star" msgstr "Zahl der Ecken eines Polygons oder Sterns" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "thin-ray star" msgstr "DĂĽnnstrahliger Stern" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "pentagram" msgstr "Pentagram" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "hexagram" msgstr "hexagram" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "heptagram" msgstr "heptagram" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "octagram" msgstr "octagram" -#: ../src/widgets/star-toolbar.cpp:507 +#: ../src/widgets/star-toolbar.cpp:515 msgid "regular polygon" msgstr "Regelmäßiges Polygon erstellen" -#: ../src/widgets/star-toolbar.cpp:510 +#: ../src/widgets/star-toolbar.cpp:518 msgid "Spoke ratio" msgstr "Spitzenverhältnis:" -#: ../src/widgets/star-toolbar.cpp:510 +#: ../src/widgets/star-toolbar.cpp:518 msgid "Spoke ratio:" msgstr "Spitzenverhältnis:" #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. #. Base radius is the same for the closest handle. -#: ../src/widgets/star-toolbar.cpp:513 +#: ../src/widgets/star-toolbar.cpp:521 msgid "Base radius to tip radius ratio" msgstr "Verhältnis vom Radius des Grundkörpers zum Radius der Spitzen" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "stretched" msgstr "gestreckt" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "twisted" msgstr "verdreht" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "slightly pinched" msgstr "leicht eingedrĂĽckt" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "NOT rounded" msgstr "NICHT abgerundet" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "slightly rounded" msgstr "schwach abgerundet" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "visibly rounded" msgstr "sichtbar abgerundet" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "well rounded" msgstr "gut abgerundet" -#: ../src/widgets/star-toolbar.cpp:531 +#: ../src/widgets/star-toolbar.cpp:539 msgid "amply rounded" msgstr "reichlich abgerundet" -#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 +#: ../src/widgets/star-toolbar.cpp:539 ../src/widgets/star-toolbar.cpp:554 msgid "blown up" msgstr "aufgebläht" -#: ../src/widgets/star-toolbar.cpp:534 +#: ../src/widgets/star-toolbar.cpp:542 msgid "Rounded:" msgstr "Abrundung:" -#: ../src/widgets/star-toolbar.cpp:534 +#: ../src/widgets/star-toolbar.cpp:542 msgid "How much rounded are the corners (0 for sharp)" msgstr "Wie stark werden die Ecken abgerundet (0 fĂĽr harte Kante)" -#: ../src/widgets/star-toolbar.cpp:546 +#: ../src/widgets/star-toolbar.cpp:554 msgid "NOT randomized" msgstr "NICHT durcheinander" -#: ../src/widgets/star-toolbar.cpp:546 +#: ../src/widgets/star-toolbar.cpp:554 msgid "slightly irregular" msgstr "leicht unregelmäßig" -#: ../src/widgets/star-toolbar.cpp:546 +#: ../src/widgets/star-toolbar.cpp:554 msgid "visibly randomized" msgstr "sichtbar unregelmäßig" -#: ../src/widgets/star-toolbar.cpp:546 +#: ../src/widgets/star-toolbar.cpp:554 msgid "strongly randomized" msgstr "stark unregelmäßig" -#: ../src/widgets/star-toolbar.cpp:549 +#: ../src/widgets/star-toolbar.cpp:557 msgid "Randomized" msgstr "unregelmäßig" -#: ../src/widgets/star-toolbar.cpp:549 +#: ../src/widgets/star-toolbar.cpp:557 msgid "Randomized:" msgstr "Zufallsänderung:" -#: ../src/widgets/star-toolbar.cpp:549 +#: ../src/widgets/star-toolbar.cpp:557 msgid "Scatter randomly the corners and angles" msgstr "Zufällige Variationen der Ecken und Winkel" -#: ../src/widgets/stroke-style.cpp:192 +#: ../src/widgets/stroke-style.cpp:191 msgid "Stroke width" msgstr "Breite der Kontur" -#: ../src/widgets/stroke-style.cpp:194 +#: ../src/widgets/stroke-style.cpp:193 msgctxt "Stroke width" msgid "_Width:" msgstr "_Breite:" @@ -29182,72 +27486,72 @@ msgstr "_Breite:" #. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:239 +#: ../src/widgets/stroke-style.cpp:238 msgid "Miter join" msgstr "Spitze Verbindung" #. TRANSLATORS: Round join: joining lines with a rounded corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:247 +#: ../src/widgets/stroke-style.cpp:246 msgid "Round join" msgstr "Abgerundete Verbindung" #. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:255 +#: ../src/widgets/stroke-style.cpp:254 msgid "Bevel join" msgstr "Abgeschrägte Verbindung" -#: ../src/widgets/stroke-style.cpp:280 +#: ../src/widgets/stroke-style.cpp:279 msgid "Miter _limit:" msgstr "Gehrungs_limit:" #. Cap type #. TRANSLATORS: cap type specifies the shape for the ends of lines #. spw_label(t, _("_Cap:"), 0, i); -#: ../src/widgets/stroke-style.cpp:296 +#: ../src/widgets/stroke-style.cpp:295 msgid "Cap:" msgstr "Linienende:" #. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point #. of the line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:307 +#: ../src/widgets/stroke-style.cpp:306 msgid "Butt cap" msgstr "Nicht ĂĽberstehendes Ende" #. TRANSLATORS: Round cap: the line shape extends beyond the end point of the #. line; the ends of the line are rounded -#: ../src/widgets/stroke-style.cpp:314 +#: ../src/widgets/stroke-style.cpp:313 msgid "Round cap" msgstr "Abgerundetes Ende" #. TRANSLATORS: Square cap: the line shape extends beyond the end point of the #. line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:321 +#: ../src/widgets/stroke-style.cpp:320 msgid "Square cap" msgstr "Quadratisches Ende" #. Dash -#: ../src/widgets/stroke-style.cpp:326 +#: ../src/widgets/stroke-style.cpp:325 msgid "Dashes:" msgstr "Strichlinien:" #. Drop down marker selectors #. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes #. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. -#: ../src/widgets/stroke-style.cpp:352 +#: ../src/widgets/stroke-style.cpp:351 msgid "Markers:" msgstr "Markierungen" -#: ../src/widgets/stroke-style.cpp:358 +#: ../src/widgets/stroke-style.cpp:357 msgid "Start Markers are drawn on the first node of a path or shape" msgstr "" "Startmakierungen werden am ersten Knoten eines Pfades oder einer Form " "gezeichnet." -#: ../src/widgets/stroke-style.cpp:367 +#: ../src/widgets/stroke-style.cpp:366 msgid "" "Mid Markers are drawn on every node of a path or shape except the first and " "last nodes" @@ -29255,21 +27559,21 @@ msgstr "" "Mittenmarkierungen werden auf jedem Knoten entlang eines Pfades - auĂźer dem " "ersten und letzten - gezeichnet." -#: ../src/widgets/stroke-style.cpp:376 +#: ../src/widgets/stroke-style.cpp:375 msgid "End Markers are drawn on the last node of a path or shape" msgstr "" "Endmarkierungen werden auf dem ersten und letzten Knoten eines Pfades oder " "einer Form gezeichnet." -#: ../src/widgets/stroke-style.cpp:494 +#: ../src/widgets/stroke-style.cpp:493 msgid "Set markers" msgstr "Markierungen setzen" -#: ../src/widgets/stroke-style.cpp:1024 ../src/widgets/stroke-style.cpp:1109 +#: ../src/widgets/stroke-style.cpp:1022 ../src/widgets/stroke-style.cpp:1107 msgid "Set stroke style" msgstr "Stil der Kontur setzen" -#: ../src/widgets/stroke-style.cpp:1197 +#: ../src/widgets/stroke-style.cpp:1195 msgid "Set marker color" msgstr "Farbe der Markierung setzen" @@ -29277,612 +27581,612 @@ msgstr "Farbe der Markierung setzen" msgid "Change swatch color" msgstr "Farbmuster-Farbe ändern" -#: ../src/widgets/text-toolbar.cpp:168 +#: ../src/widgets/text-toolbar.cpp:174 msgid "Text: Change font family" msgstr "Text: Schriftfamilie ändern" -#: ../src/widgets/text-toolbar.cpp:232 +#: ../src/widgets/text-toolbar.cpp:238 msgid "Text: Change font size" msgstr "Text: Schriftgröße ändern" -#: ../src/widgets/text-toolbar.cpp:270 +#: ../src/widgets/text-toolbar.cpp:276 msgid "Text: Change font style" msgstr "Text: Schriftstil ändern" -#: ../src/widgets/text-toolbar.cpp:348 +#: ../src/widgets/text-toolbar.cpp:354 msgid "Text: Change superscript or subscript" msgstr "Text: Ă„ndern von Hoch- und Tiefgestellt" -#: ../src/widgets/text-toolbar.cpp:493 +#: ../src/widgets/text-toolbar.cpp:499 msgid "Text: Change alignment" msgstr "Text: Ausrichtung ändern" -#: ../src/widgets/text-toolbar.cpp:536 +#: ../src/widgets/text-toolbar.cpp:542 msgid "Text: Change line-height" msgstr "Text: Linienhöhe ändern" -#: ../src/widgets/text-toolbar.cpp:585 +#: ../src/widgets/text-toolbar.cpp:591 msgid "Text: Change word-spacing" msgstr "Text: Wortabstand ändern" -#: ../src/widgets/text-toolbar.cpp:626 +#: ../src/widgets/text-toolbar.cpp:632 msgid "Text: Change letter-spacing" msgstr "Text: Buchstabenabstand ändern" -#: ../src/widgets/text-toolbar.cpp:666 +#: ../src/widgets/text-toolbar.cpp:672 msgid "Text: Change dx (kern)" msgstr "Text: Ă„ndern dx (kern)" -#: ../src/widgets/text-toolbar.cpp:700 +#: ../src/widgets/text-toolbar.cpp:706 msgid "Text: Change dy" msgstr "Text: Ă„ndern dy" -#: ../src/widgets/text-toolbar.cpp:735 +#: ../src/widgets/text-toolbar.cpp:741 msgid "Text: Change rotate" msgstr "Text: Ă„ndern Drehung" -#: ../src/widgets/text-toolbar.cpp:783 +#: ../src/widgets/text-toolbar.cpp:789 msgid "Text: Change orientation" msgstr "Text: Richtung ändern" -#: ../src/widgets/text-toolbar.cpp:1219 +#: ../src/widgets/text-toolbar.cpp:1226 msgid "Font Family" msgstr "Schriftfamilie" -#: ../src/widgets/text-toolbar.cpp:1220 +#: ../src/widgets/text-toolbar.cpp:1227 msgid "Select Font Family (Alt-X to access)" msgstr "Schriftart-Familie auswählen (Alt + X zum Setzen)" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1230 +#: ../src/widgets/text-toolbar.cpp:1237 msgid "Select all text with this font-family" msgstr "Wähle allen Text mit dieser Schriftart-Familie aus" -#: ../src/widgets/text-toolbar.cpp:1234 +#: ../src/widgets/text-toolbar.cpp:1241 msgid "Font not found on system" msgstr "Schrift wurde im System nicht gefunden" -#: ../src/widgets/text-toolbar.cpp:1293 +#: ../src/widgets/text-toolbar.cpp:1300 msgid "Font Style" msgstr "Schriftstil" -#: ../src/widgets/text-toolbar.cpp:1294 +#: ../src/widgets/text-toolbar.cpp:1301 msgid "Font style" msgstr "Schriftstil" #. Name -#: ../src/widgets/text-toolbar.cpp:1311 +#: ../src/widgets/text-toolbar.cpp:1318 msgid "Toggle Superscript" msgstr "Hochgestellt umschalten" #. Label -#: ../src/widgets/text-toolbar.cpp:1312 +#: ../src/widgets/text-toolbar.cpp:1319 msgid "Toggle superscript" msgstr "Hochgestellt umschalten" #. Name -#: ../src/widgets/text-toolbar.cpp:1324 +#: ../src/widgets/text-toolbar.cpp:1331 msgid "Toggle Subscript" msgstr "Tiefgestellt umschalten" #. Label -#: ../src/widgets/text-toolbar.cpp:1325 +#: ../src/widgets/text-toolbar.cpp:1332 msgid "Toggle subscript" msgstr "Tiefgestellt umschalten" -#: ../src/widgets/text-toolbar.cpp:1366 +#: ../src/widgets/text-toolbar.cpp:1373 msgid "Justify" msgstr "Blocksatz" #. Name -#: ../src/widgets/text-toolbar.cpp:1373 +#: ../src/widgets/text-toolbar.cpp:1380 msgid "Alignment" msgstr "Ausrichtung" #. Label -#: ../src/widgets/text-toolbar.cpp:1374 +#: ../src/widgets/text-toolbar.cpp:1381 msgid "Text alignment" msgstr "Textausrichtung" -#: ../src/widgets/text-toolbar.cpp:1401 +#: ../src/widgets/text-toolbar.cpp:1408 msgid "Horizontal" msgstr "Horizontal" -#: ../src/widgets/text-toolbar.cpp:1408 +#: ../src/widgets/text-toolbar.cpp:1415 msgid "Vertical" msgstr "Vertikal" #. Label -#: ../src/widgets/text-toolbar.cpp:1415 +#: ../src/widgets/text-toolbar.cpp:1422 msgid "Text orientation" msgstr "Textausrichtung" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1438 +#: ../src/widgets/text-toolbar.cpp:1445 msgid "Smaller spacing" msgstr "Kleinerer Abstand" -#: ../src/widgets/text-toolbar.cpp:1438 ../src/widgets/text-toolbar.cpp:1469 -#: ../src/widgets/text-toolbar.cpp:1500 +#: ../src/widgets/text-toolbar.cpp:1445 ../src/widgets/text-toolbar.cpp:1476 +#: ../src/widgets/text-toolbar.cpp:1507 msgctxt "Text tool" msgid "Normal" msgstr "Normal" -#: ../src/widgets/text-toolbar.cpp:1438 +#: ../src/widgets/text-toolbar.cpp:1445 msgid "Larger spacing" msgstr "Größerer Abstand" #. name -#: ../src/widgets/text-toolbar.cpp:1443 +#: ../src/widgets/text-toolbar.cpp:1450 msgid "Line Height" msgstr "Linienhöhe" #. label -#: ../src/widgets/text-toolbar.cpp:1444 +#: ../src/widgets/text-toolbar.cpp:1451 msgid "Line:" msgstr "Linie:" #. short label -#: ../src/widgets/text-toolbar.cpp:1445 +#: ../src/widgets/text-toolbar.cpp:1452 msgid "Spacing between lines (times font size)" msgstr "Abstand zwischen Linien (Times Schriftgröße)" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1469 ../src/widgets/text-toolbar.cpp:1500 +#: ../src/widgets/text-toolbar.cpp:1476 ../src/widgets/text-toolbar.cpp:1507 msgid "Negative spacing" msgstr "Negativer Abstand" -#: ../src/widgets/text-toolbar.cpp:1469 ../src/widgets/text-toolbar.cpp:1500 +#: ../src/widgets/text-toolbar.cpp:1476 ../src/widgets/text-toolbar.cpp:1507 msgid "Positive spacing" msgstr "Positiver Abstand" #. name -#: ../src/widgets/text-toolbar.cpp:1474 +#: ../src/widgets/text-toolbar.cpp:1481 msgid "Word spacing" msgstr "Wortabstand" #. label -#: ../src/widgets/text-toolbar.cpp:1475 +#: ../src/widgets/text-toolbar.cpp:1482 msgid "Word:" msgstr "Wort:" #. short label -#: ../src/widgets/text-toolbar.cpp:1476 +#: ../src/widgets/text-toolbar.cpp:1483 msgid "Spacing between words (px)" msgstr "Abstand zwischen Wörtern (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1505 +#: ../src/widgets/text-toolbar.cpp:1512 msgid "Letter spacing" msgstr "Buchstabenabstand" #. label -#: ../src/widgets/text-toolbar.cpp:1506 +#: ../src/widgets/text-toolbar.cpp:1513 msgid "Letter:" msgstr "Buchstabe:" #. short label -#: ../src/widgets/text-toolbar.cpp:1507 +#: ../src/widgets/text-toolbar.cpp:1514 msgid "Spacing between letters (px)" msgstr "Abstand zwischen Buchstaben (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1536 +#: ../src/widgets/text-toolbar.cpp:1543 msgid "Kerning" msgstr "Unterschneidung" #. label -#: ../src/widgets/text-toolbar.cpp:1537 +#: ../src/widgets/text-toolbar.cpp:1544 msgid "Kern:" msgstr "Kern:" #. short label -#: ../src/widgets/text-toolbar.cpp:1538 +#: ../src/widgets/text-toolbar.cpp:1545 msgid "Horizontal kerning (px)" msgstr "Horizontale Unterschneidung (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1567 +#: ../src/widgets/text-toolbar.cpp:1574 msgid "Vertical Shift" msgstr "Vertikaler Versatz" #. label -#: ../src/widgets/text-toolbar.cpp:1568 +#: ../src/widgets/text-toolbar.cpp:1575 msgid "Vert:" msgstr "Vert:" #. short label -#: ../src/widgets/text-toolbar.cpp:1569 +#: ../src/widgets/text-toolbar.cpp:1576 msgid "Vertical shift (px)" msgstr "Vertikaler Versatz (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1598 +#: ../src/widgets/text-toolbar.cpp:1605 msgid "Letter rotation" msgstr "Buchstabenrotation" #. label -#: ../src/widgets/text-toolbar.cpp:1599 +#: ../src/widgets/text-toolbar.cpp:1606 msgid "Rot:" msgstr "Rotation:" #. short label -#: ../src/widgets/text-toolbar.cpp:1600 +#: ../src/widgets/text-toolbar.cpp:1607 msgid "Character rotation (degrees)" msgstr "Zeichenrotation [Grad]" -#: ../src/widgets/toolbox.cpp:182 +#: ../src/widgets/toolbox.cpp:181 msgid "Color/opacity used for color tweaking" msgstr "Farbe / Opazität zur Farbjustage" -#: ../src/widgets/toolbox.cpp:190 +#: ../src/widgets/toolbox.cpp:189 msgid "Style of new stars" msgstr "Stil von neuen Sternen" -#: ../src/widgets/toolbox.cpp:192 +#: ../src/widgets/toolbox.cpp:191 msgid "Style of new rectangles" msgstr "Stil von neuen Rechtecken" -#: ../src/widgets/toolbox.cpp:194 +#: ../src/widgets/toolbox.cpp:193 msgid "Style of new 3D boxes" msgstr "Stil von neuen 3D-Boxen" -#: ../src/widgets/toolbox.cpp:196 +#: ../src/widgets/toolbox.cpp:195 msgid "Style of new ellipses" msgstr "Stil von neuen Ellipsen" -#: ../src/widgets/toolbox.cpp:198 +#: ../src/widgets/toolbox.cpp:197 msgid "Style of new spirals" msgstr "Stil von neuen Spiralen" -#: ../src/widgets/toolbox.cpp:200 +#: ../src/widgets/toolbox.cpp:199 msgid "Style of new paths created by Pencil" msgstr "Stil von neuen Pfaden (Malwerkzeug)" -#: ../src/widgets/toolbox.cpp:202 +#: ../src/widgets/toolbox.cpp:201 msgid "Style of new paths created by Pen" msgstr "Stil von neuen Pfaden (Zeichenwerkzeug)" -#: ../src/widgets/toolbox.cpp:204 +#: ../src/widgets/toolbox.cpp:203 msgid "Style of new calligraphic strokes" msgstr "Stil von neuen kalligrafischen Strichen" -#: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 +#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 msgid "TBD" msgstr "\"Beschreibung fehlt noch!\"" -#: ../src/widgets/toolbox.cpp:220 +#: ../src/widgets/toolbox.cpp:219 msgid "Style of Paint Bucket fill objects" msgstr "Stil von neuen Farbeimer-Objekten" -#: ../src/widgets/toolbox.cpp:1682 +#: ../src/widgets/toolbox.cpp:1680 msgid "Bounding box" msgstr "Umrandungsbox" -#: ../src/widgets/toolbox.cpp:1682 +#: ../src/widgets/toolbox.cpp:1680 msgid "Snap bounding boxes" msgstr "An der Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1691 +#: ../src/widgets/toolbox.cpp:1689 msgid "Bounding box edges" msgstr "Kanten der Umrandung" -#: ../src/widgets/toolbox.cpp:1691 +#: ../src/widgets/toolbox.cpp:1689 msgid "Snap to edges of a bounding box" msgstr "An Kanten einer Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1700 +#: ../src/widgets/toolbox.cpp:1698 msgid "Bounding box corners" msgstr "Ecken der Umrandung" -#: ../src/widgets/toolbox.cpp:1700 +#: ../src/widgets/toolbox.cpp:1698 msgid "Snap bounding box corners" msgstr "An Ecken der Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1709 +#: ../src/widgets/toolbox.cpp:1707 msgid "BBox Edge Midpoints" msgstr "Mittenpunkte der Umrandungskanten" -#: ../src/widgets/toolbox.cpp:1709 +#: ../src/widgets/toolbox.cpp:1707 msgid "Snap midpoints of bounding box edges" msgstr "An Mittelpunkten von Umrandungslinien ein-/ausrasten" -#: ../src/widgets/toolbox.cpp:1719 +#: ../src/widgets/toolbox.cpp:1717 msgid "BBox Centers" msgstr "Mittelpunkt Umrandung" -#: ../src/widgets/toolbox.cpp:1719 +#: ../src/widgets/toolbox.cpp:1717 msgid "Snapping centers of bounding boxes" msgstr "An Mittelpunkten von Umrandungen ein-/ausrasten" -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/widgets/toolbox.cpp:1726 msgid "Snap nodes, paths, and handles" msgstr "Knoten, Pfade und Anfasser einrasten" -#: ../src/widgets/toolbox.cpp:1736 +#: ../src/widgets/toolbox.cpp:1734 msgid "Snap to paths" msgstr "An Objektpfaden einrasten" -#: ../src/widgets/toolbox.cpp:1745 +#: ../src/widgets/toolbox.cpp:1743 msgid "Path intersections" msgstr "PfadĂĽberschneidung" -#: ../src/widgets/toolbox.cpp:1745 +#: ../src/widgets/toolbox.cpp:1743 msgid "Snap to path intersections" msgstr "An PfadĂĽberschneidungen einrasten" -#: ../src/widgets/toolbox.cpp:1754 +#: ../src/widgets/toolbox.cpp:1752 msgid "To nodes" msgstr "An Knoten" -#: ../src/widgets/toolbox.cpp:1754 +#: ../src/widgets/toolbox.cpp:1752 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "An spitzen Knoten einrasten (inkl. Ecken von Rechtecken)" -#: ../src/widgets/toolbox.cpp:1763 +#: ../src/widgets/toolbox.cpp:1761 msgid "Smooth nodes" msgstr "Glatte Knotten" -#: ../src/widgets/toolbox.cpp:1763 +#: ../src/widgets/toolbox.cpp:1761 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "Einrasten an glatten Knoten, inkl. Quadrant-Punkten von Ellipsen" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1770 msgid "Line Midpoints" msgstr "Linien-Mittelpunkte" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1770 msgid "Snap midpoints of line segments" msgstr "Einrasten an Mittelpunkten von Liniensegmenten" -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/widgets/toolbox.cpp:1779 msgid "Others" msgstr "Andere" -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/widgets/toolbox.cpp:1779 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" "Einrasten an anderen Punkten (Zentren, FĂĽhrungslinien-Ursprung, " "Verlaufsanfasser, etc.)" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/toolbox.cpp:1787 msgid "Object Centers" msgstr "Objektzentrum" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/toolbox.cpp:1787 msgid "Snap centers of objects" msgstr "An Objektmittelpunkten einrasten" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1796 msgid "Rotation Centers" msgstr "Rotationszentren" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1796 msgid "Snap an item's rotation center" msgstr "An Rotationszentren von Objekten einrasten" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1805 msgid "Text baseline" msgstr "Text-Grundlinie" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1805 msgid "Snap text anchors and baselines" msgstr "An TExtankern und Grundlinien einrasten" -#: ../src/widgets/toolbox.cpp:1817 +#: ../src/widgets/toolbox.cpp:1815 msgid "Page border" msgstr "Seitenrand" -#: ../src/widgets/toolbox.cpp:1817 +#: ../src/widgets/toolbox.cpp:1815 msgid "Snap to the page border" msgstr "Am Seitenrand einrasten" -#: ../src/widgets/toolbox.cpp:1826 +#: ../src/widgets/toolbox.cpp:1824 msgid "Snap to grids" msgstr "Am Gitter einrasten" -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/widgets/toolbox.cpp:1833 msgid "Snap guides" msgstr "An FĂĽhrungslinien einrasten" #. Width -#: ../src/widgets/tweak-toolbar.cpp:125 +#: ../src/widgets/tweak-toolbar.cpp:139 msgid "(pinch tweak)" msgstr "(Zupfjustage)" -#: ../src/widgets/tweak-toolbar.cpp:125 +#: ../src/widgets/tweak-toolbar.cpp:139 msgid "(broad tweak)" msgstr "(breite Justage)" -#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../src/widgets/tweak-toolbar.cpp:142 msgid "The width of the tweak area (relative to the visible canvas area)" msgstr "Breite des Justagebereichs (relativ zum sichtbaren Dokumentausschnitt)" #. Force -#: ../src/widgets/tweak-toolbar.cpp:142 +#: ../src/widgets/tweak-toolbar.cpp:156 msgid "(minimum force)" msgstr "(minimale Stärke)" -#: ../src/widgets/tweak-toolbar.cpp:142 +#: ../src/widgets/tweak-toolbar.cpp:156 msgid "(maximum force)" msgstr "(maximale Stärke)" -#: ../src/widgets/tweak-toolbar.cpp:145 +#: ../src/widgets/tweak-toolbar.cpp:159 msgid "Force" msgstr "Kraft:" -#: ../src/widgets/tweak-toolbar.cpp:145 +#: ../src/widgets/tweak-toolbar.cpp:159 msgid "Force:" msgstr "Kraft:" -#: ../src/widgets/tweak-toolbar.cpp:145 +#: ../src/widgets/tweak-toolbar.cpp:159 msgid "The force of the tweak action" msgstr "Die Kraft der Modellierungsaktion" -#: ../src/widgets/tweak-toolbar.cpp:163 +#: ../src/widgets/tweak-toolbar.cpp:177 msgid "Move mode" msgstr "Verschiebungs-Modus" -#: ../src/widgets/tweak-toolbar.cpp:164 +#: ../src/widgets/tweak-toolbar.cpp:178 msgid "Move objects in any direction" msgstr "Verschiebe Objekte in irgendeine Richtung" -#: ../src/widgets/tweak-toolbar.cpp:170 +#: ../src/widgets/tweak-toolbar.cpp:184 msgid "Move in/out mode" msgstr "Her-/Wegbewegen" -#: ../src/widgets/tweak-toolbar.cpp:171 +#: ../src/widgets/tweak-toolbar.cpp:185 msgid "Move objects towards cursor; with Shift from cursor" msgstr "Verschiebt Objekte zum Cursor; mit Shift vom Cursor weg" -#: ../src/widgets/tweak-toolbar.cpp:177 +#: ../src/widgets/tweak-toolbar.cpp:191 msgid "Move jitter mode" msgstr "Zittern hinzufĂĽgen" -#: ../src/widgets/tweak-toolbar.cpp:178 +#: ../src/widgets/tweak-toolbar.cpp:192 msgid "Move objects in random directions" msgstr "Objekte in zufällige Richtungen verschieben" -#: ../src/widgets/tweak-toolbar.cpp:184 +#: ../src/widgets/tweak-toolbar.cpp:198 msgid "Scale mode" msgstr "Skalierungsmodus" -#: ../src/widgets/tweak-toolbar.cpp:185 +#: ../src/widgets/tweak-toolbar.cpp:199 msgid "Shrink objects, with Shift enlarge" msgstr "Schrumpft Objekte, mit Shift Erweitern" -#: ../src/widgets/tweak-toolbar.cpp:191 +#: ../src/widgets/tweak-toolbar.cpp:205 msgid "Rotate mode" msgstr "Rotationsmodus" -#: ../src/widgets/tweak-toolbar.cpp:192 +#: ../src/widgets/tweak-toolbar.cpp:206 msgid "Rotate objects, with Shift counterclockwise" msgstr "Objekte rotieren, mit Shift gegen den Uhrzeigersinn" -#: ../src/widgets/tweak-toolbar.cpp:198 +#: ../src/widgets/tweak-toolbar.cpp:212 msgid "Duplicate/delete mode" msgstr "Duplizieren/Löschen-Modus" -#: ../src/widgets/tweak-toolbar.cpp:199 +#: ../src/widgets/tweak-toolbar.cpp:213 msgid "Duplicate objects, with Shift delete" msgstr "Dupliziert Objekte; mit Shift Löschen" -#: ../src/widgets/tweak-toolbar.cpp:205 +#: ../src/widgets/tweak-toolbar.cpp:219 msgid "Push mode" msgstr "DrĂĽckmodus" -#: ../src/widgets/tweak-toolbar.cpp:206 +#: ../src/widgets/tweak-toolbar.cpp:220 msgid "Push parts of paths in any direction" msgstr "Teile des Pfades in eine beliebige Richtung schieben" -#: ../src/widgets/tweak-toolbar.cpp:212 +#: ../src/widgets/tweak-toolbar.cpp:226 msgid "Shrink/grow mode" msgstr "Schrumpf-/Wachstums-Modus" -#: ../src/widgets/tweak-toolbar.cpp:213 +#: ../src/widgets/tweak-toolbar.cpp:227 msgid "Shrink (inset) parts of paths; with Shift grow (outset)" msgstr "Teile von Pfaden Schrumpfen (EindrĂĽcken); mit Umschalt Vergrößern" -#: ../src/widgets/tweak-toolbar.cpp:219 +#: ../src/widgets/tweak-toolbar.cpp:233 msgid "Attract/repel mode" msgstr "Anziehen-/AbstoĂźenmodus" -#: ../src/widgets/tweak-toolbar.cpp:220 +#: ../src/widgets/tweak-toolbar.cpp:234 msgid "Attract parts of paths towards cursor; with Shift from cursor" msgstr "" "Teile von Pfaden werden vom Zeiger angezogen oder mit Umschalt abgestoĂźen" -#: ../src/widgets/tweak-toolbar.cpp:226 +#: ../src/widgets/tweak-toolbar.cpp:240 msgid "Roughen mode" msgstr "Aufraumodus" -#: ../src/widgets/tweak-toolbar.cpp:227 +#: ../src/widgets/tweak-toolbar.cpp:241 msgid "Roughen parts of paths" msgstr "Teile von Pfaden anrauen" -#: ../src/widgets/tweak-toolbar.cpp:233 +#: ../src/widgets/tweak-toolbar.cpp:247 msgid "Color paint mode" msgstr "Farbmalmodus" -#: ../src/widgets/tweak-toolbar.cpp:234 +#: ../src/widgets/tweak-toolbar.cpp:248 msgid "Paint the tool's color upon selected objects" msgstr "Malt mit der Farbe des Werkzeugs auf ausgewählte Objekte" -#: ../src/widgets/tweak-toolbar.cpp:240 +#: ../src/widgets/tweak-toolbar.cpp:254 msgid "Color jitter mode" msgstr "Farbrauschen beeinfluĂźen" -#: ../src/widgets/tweak-toolbar.cpp:241 +#: ../src/widgets/tweak-toolbar.cpp:255 msgid "Jitter the colors of selected objects" msgstr "Farben der gewählten Objekte verrauschen" -#: ../src/widgets/tweak-toolbar.cpp:247 +#: ../src/widgets/tweak-toolbar.cpp:261 msgid "Blur mode" msgstr "Unschärfemodus" -#: ../src/widgets/tweak-toolbar.cpp:248 +#: ../src/widgets/tweak-toolbar.cpp:262 msgid "Blur selected objects more; with Shift, blur less" msgstr "Ausgewählte Objekte stärker verwischen (mit Umschalt weniger)" -#: ../src/widgets/tweak-toolbar.cpp:275 +#: ../src/widgets/tweak-toolbar.cpp:289 msgid "Channels:" msgstr "Kanäle:" -#: ../src/widgets/tweak-toolbar.cpp:287 +#: ../src/widgets/tweak-toolbar.cpp:301 msgid "In color mode, act on objects' hue" msgstr "Im Farbmodus auf den Farbton eines Objekts wirken" #. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/tweak-toolbar.cpp:291 +#: ../src/widgets/tweak-toolbar.cpp:305 msgid "H" msgstr "H" -#: ../src/widgets/tweak-toolbar.cpp:303 +#: ../src/widgets/tweak-toolbar.cpp:317 msgid "In color mode, act on objects' saturation" msgstr "Im Farbmodus auf die Farbsättigung eines Objekts wirken" #. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/tweak-toolbar.cpp:307 +#: ../src/widgets/tweak-toolbar.cpp:321 msgid "S" msgstr "S" -#: ../src/widgets/tweak-toolbar.cpp:319 +#: ../src/widgets/tweak-toolbar.cpp:333 msgid "In color mode, act on objects' lightness" msgstr "Im Farbmodus auf die Helligkeit eines Objekts wirken" #. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/tweak-toolbar.cpp:323 +#: ../src/widgets/tweak-toolbar.cpp:337 msgid "L" msgstr "L" -#: ../src/widgets/tweak-toolbar.cpp:335 +#: ../src/widgets/tweak-toolbar.cpp:349 msgid "In color mode, act on objects' opacity" msgstr "Im Farbmodus auf die Deckkraft eines Objekts wirken" #. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/tweak-toolbar.cpp:339 +#: ../src/widgets/tweak-toolbar.cpp:353 msgid "O" msgstr "O" #. Fidelity -#: ../src/widgets/tweak-toolbar.cpp:350 +#: ../src/widgets/tweak-toolbar.cpp:364 msgid "(rough, simplified)" msgstr "(rau, einfach)" -#: ../src/widgets/tweak-toolbar.cpp:350 +#: ../src/widgets/tweak-toolbar.cpp:364 msgid "(fine, but many nodes)" msgstr "(fein, aber viele Knoten)" -#: ../src/widgets/tweak-toolbar.cpp:353 +#: ../src/widgets/tweak-toolbar.cpp:367 msgid "Fidelity" msgstr "Treue" -#: ../src/widgets/tweak-toolbar.cpp:353 +#: ../src/widgets/tweak-toolbar.cpp:367 msgid "Fidelity:" msgstr "Genauigkeit:" -#: ../src/widgets/tweak-toolbar.cpp:354 +#: ../src/widgets/tweak-toolbar.cpp:368 msgid "" "Low fidelity simplifies paths; high fidelity preserves path features but may " "generate a lot of new nodes" @@ -29890,7 +28194,7 @@ msgstr "" "Geringere Originaltreue vereinfacht den Pfad. Ein hoher Wert erhält die " "Pfadstruktur, erzeugt aber viele neuen Knoten" -#: ../src/widgets/tweak-toolbar.cpp:373 +#: ../src/widgets/tweak-toolbar.cpp:387 msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "" "Druckempfindlichkeit des Eingabegeräts benutzen, um die Kraft der " @@ -29904,46 +28208,46 @@ msgstr "" "Das gewählte Objekt ist kein Pfad,\n" "Versuchen sie den Befehl Pfad -> Objekt in Pfad umwandeln." -#: ../share/extensions/dimension.py:109 +#: ../share/extensions/dimension.py:108 msgid "Please select an object." msgstr "Bitte wählen Sie ein Objekt." -#: ../share/extensions/dimension.py:134 +#: ../share/extensions/dimension.py:133 msgid "Unable to process this object. Try changing it into a path first." msgstr "" "Fehler beim Bearbeiten dieses Objekts. Versuchen Sie, es in einen Pfad " "umzuwandeln." #. report to the Inkscape console using errormsg -#: ../share/extensions/draw_from_triangle.py:180 +#: ../share/extensions/draw_from_triangle.py:178 msgid "Side Length 'a' (px): " msgstr "Seitenlänge 'a' (px):" -#: ../share/extensions/draw_from_triangle.py:181 +#: ../share/extensions/draw_from_triangle.py:179 msgid "Side Length 'b' (px): " msgstr "Seitenlänge 'b' (px):" -#: ../share/extensions/draw_from_triangle.py:182 +#: ../share/extensions/draw_from_triangle.py:180 msgid "Side Length 'c' (px): " msgstr "Seitenlänge 'c' (px):" -#: ../share/extensions/draw_from_triangle.py:183 +#: ../share/extensions/draw_from_triangle.py:181 msgid "Angle 'A' (radians): " msgstr "Winkel A in Radiant:" -#: ../share/extensions/draw_from_triangle.py:184 +#: ../share/extensions/draw_from_triangle.py:182 msgid "Angle 'B' (radians): " msgstr "Winkel B in Radiant:" -#: ../share/extensions/draw_from_triangle.py:185 +#: ../share/extensions/draw_from_triangle.py:183 msgid "Angle 'C' (radians): " msgstr "Winkel C in Radiant:" -#: ../share/extensions/draw_from_triangle.py:186 +#: ../share/extensions/draw_from_triangle.py:184 msgid "Semiperimeter (px): " msgstr "Halbdurchmesser in px:" -#: ../share/extensions/draw_from_triangle.py:187 +#: ../share/extensions/draw_from_triangle.py:185 msgid "Area (px^2): " msgstr "Gebiet (px^2):" @@ -30314,7 +28618,7 @@ msgstr "Gimp muss installiert und in Ihren Pfadvariablen gesetzt sein." msgid "An error occurred while processing the XCF file." msgstr "Es ist beim Verarbeiten der XCF-Datei ein fehler aufgetreten." -#: ../share/extensions/gimp_xcf.py:177 +#: ../share/extensions/gimp_xcf.py:171 msgid "This extension requires at least one non empty layer." msgstr "Diese Erweiterung benötigt mindestens eine nicht leere Ebene." @@ -30322,27 +28626,19 @@ msgstr "Diese Erweiterung benötigt mindestens eine nicht leere Ebene." msgid "The sliced bitmaps have been saved as:" msgstr "Die geschnittenen Bitmaps wurden gespeichert als:" -#: ../share/extensions/hpgl_decoder.py:43 -msgid "Movements" -msgstr "" - -#: ../share/extensions/hpgl_decoder.py:44 -msgid "Pen #" -msgstr "" - -#. issue error if no hpgl data found #: ../share/extensions/hpgl_input.py:58 -msgid "No HPGL data found." -msgstr "Keine HPGL-Daten gefunden." - -#: ../share/extensions/hpgl_input.py:66 msgid "" "The HPGL data contained unknown (unsupported) commands, there is a " "possibility that the drawing is missing some content." msgstr "" +#. issue error if no hpgl data found +#: ../share/extensions/hpgl_input.py:64 +msgid "No HPGL data found." +msgstr "Keine HPGL-Daten gefunden." + #. issue error if no paths found -#: ../share/extensions/hpgl_output.py:58 +#: ../share/extensions/hpgl_output.py:59 #, fuzzy msgid "" "No paths where found. Please convert all objects you want to save into paths." @@ -30369,12 +28665,7 @@ msgstr "" "Technische Details: \n" "%s" -#: ../share/extensions/inkex.py:162 ../share/extensions/inkex.py:171 -#, python-format -msgid "Unable to open specified file: %s" -msgstr "" - -#: ../share/extensions/inkex.py:276 +#: ../share/extensions/inkex.py:260 #, python-format msgid "No matching node for expression: %s" msgstr "Kein passender Knoten fĂĽr Ausdruck: %s" @@ -30587,17 +28878,6 @@ msgstr "Kein Stilattribut gefunden fĂĽr ID: %s" msgid "unable to locate marker: %s" msgstr "Kann Markierung nicht finden: %s" -#: ../share/extensions/measure.py:50 -msgid "" -"Failed to import the numpy modules. These modules are required by this " -"extension. Please install them and try again. On a Debian-like system this " -"can be done with the command, sudo apt-get install python-numpy." -msgstr "" - -#: ../share/extensions/measure.py:112 -msgid "Area is zero, cannot calculate Center of Mass" -msgstr "" - #: ../share/extensions/pathalongpath.py:208 #: ../share/extensions/pathscatter.py:228 #: ../share/extensions/perspective.py:53 @@ -30639,8 +28919,8 @@ msgstr "" "versuchen es erneut. Auf einem Debian-Betriebssystem können Sie dafĂĽr " "folgenden Befehl nutzen: sudo apt-get install python-numpy" -#: ../share/extensions/perspective.py:61 -#: ../share/extensions/summersnight.py:52 +#: ../share/extensions/perspective.py:60 +#: ../share/extensions/summersnight.py:51 #, python-format msgid "" "The first selected object is of type '%s'.\n" @@ -30649,16 +28929,16 @@ msgstr "" "Das erste ausgewählte Objekt ist vom Typ '%s'.\n" "Probiere Prozedur Pfad | Objekt in Pfad umwandeln." -#: ../share/extensions/perspective.py:68 -#: ../share/extensions/summersnight.py:60 +#: ../share/extensions/perspective.py:67 +#: ../share/extensions/summersnight.py:59 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" "Diese Erweiterung erwartet, dass der als zweites gewählte Pfad vier Knoten " "lang ist." -#: ../share/extensions/perspective.py:94 -#: ../share/extensions/summersnight.py:93 +#: ../share/extensions/perspective.py:93 +#: ../share/extensions/summersnight.py:92 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." @@ -30666,8 +28946,8 @@ msgstr "" "Das als zweites gewählte Objekt ist eine Gruppe, kein Pfad.\n" " Versuchen Sie den Befehl Objekt | Gruppierung aufheben." -#: ../share/extensions/perspective.py:96 -#: ../share/extensions/summersnight.py:95 +#: ../share/extensions/perspective.py:95 +#: ../share/extensions/summersnight.py:94 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -30675,8 +28955,8 @@ msgstr "" "Das als zweites ausgewählte Objekt ist kein Pfad.\n" " Versuchen Sie den Befehl Pfad | Objekt in Pfad umwandeln." -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:98 +#: ../share/extensions/perspective.py:98 +#: ../share/extensions/summersnight.py:97 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -30684,19 +28964,19 @@ msgstr "" "Das zuerst gewählte Objekt ist kein Pfad,\n" " Versuchen sie den Befehl Pfad | Objekt in Pfad umwandeln." +#: ../share/extensions/plotter.py:62 +msgid "pySerial is not installed." +msgstr "" + #. issue error if no paths found -#: ../share/extensions/plotter.py:66 +#: ../share/extensions/plotter.py:75 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/plotter.py:143 -msgid "pySerial is not installed." -msgstr "" - -#: ../share/extensions/plotter.py:163 +#: ../share/extensions/plotter.py:111 msgid "" -"Could not open port. Please check that your plotter is running, connected " +"Could not send data. Please check that your plotter is running, connected " "and the settings are correct." msgstr "" @@ -30728,7 +29008,7 @@ msgid "Try selecting \"Face Specified\" in the Model File tab.\n" msgstr "Versuchen Sie es mit \"flächendefiniert\" im Modeldatei-Reiter.\n" #. we cannot generate a list of faces from the edges without a lot of computation -#: ../share/extensions/polyhedron_3d.py:522 +#: ../share/extensions/polyhedron_3d.py:519 msgid "" "Face Data Not Found. Ensure file contains face data, and check the file is " "imported as \"Face-Specified\" under the \"Model File\" tab.\n" @@ -30737,7 +29017,7 @@ msgstr "" "Flächendaten enthält und als \"flächendefiniert\" im Reiter \"Modeldatei\" " "importiert wird.\n" -#: ../share/extensions/polyhedron_3d.py:524 +#: ../share/extensions/polyhedron_3d.py:521 msgid "Internal Error. No view type selected\n" msgstr "Interner Fehler. Kein Ansichtstyp gewählt\n" @@ -30761,12 +29041,12 @@ msgid "Invalid bit value, this is a bug!" msgstr "UngĂĽltiger Bit-Wert. Das ist ein Fehler!" #. abort if converting blank text -#: ../share/extensions/render_barcode_datamatrix.py:678 +#: ../share/extensions/render_barcode_datamatrix.py:677 msgid "Please enter an input string" msgstr "Bitte geben Sie einen Eingabe-Zeichenfolge ein" #. abort if converting blank text -#: ../share/extensions/render_barcode_qrcode.py:1054 +#: ../share/extensions/render_barcode_qrcode.py:1053 msgid "Please enter an input text" msgstr "Bitte geben Sie eine Eingabe-Zeichenfolge ein" @@ -31031,65 +29311,10 @@ msgstr "" "Ă–ffnen einer Presentation Exchange Datei, die in Corel DRAW gespeichert " "wurde (UC)" -#: ../share/extensions/color_HSL_adjust.inx.h:1 -msgid "HSL Adjust" -msgstr "HSL anpassen" - -#: ../share/extensions/color_HSL_adjust.inx.h:3 -msgid "Hue (°)" -msgstr "Farbton (°)" - -#: ../share/extensions/color_HSL_adjust.inx.h:4 -msgid "Random hue" -msgstr "Zufallsfarbton" - -#: ../share/extensions/color_HSL_adjust.inx.h:6 -#, no-c-format -msgid "Saturation (%)" -msgstr "Sättigung (%)" - -#: ../share/extensions/color_HSL_adjust.inx.h:7 -msgid "Random saturation" -msgstr "Zufallssättigung" - -#: ../share/extensions/color_HSL_adjust.inx.h:9 -#, no-c-format -msgid "Lightness (%)" -msgstr "Helligkeit (%)" - -#: ../share/extensions/color_HSL_adjust.inx.h:10 -msgid "Random lightness" -msgstr "Zufallshelligkeit" - -#: ../share/extensions/color_HSL_adjust.inx.h:13 -#, no-c-format -msgid "" -"Adjusts hue, saturation and lightness in the HSL representation of the " -"selected objects's color.\n" -"Options:\n" -" * Hue: rotate by degrees (wraps around).\n" -" * Saturation: add/subtract % (min=-100, max=100).\n" -" * Lightness: add/subtract % (min=-100, max=100).\n" -" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" -" " -msgstr "" -"Verändert Farbton, Sättigung und Helligkeit der in der HSL Darstellung " -"ausgewählten Objektfarbe.\n" -"Optionen:\n" -"     * Farbton: drehen in Grad (umschlingt).\n" -"     * Sättigung: Addieren/subtrahieren % (min=-100, max=100).\n" -"     * Helligkeit: Addieren/subtrahieren % (min=-100, max=100).\n" -"     * Zufällig Farbton/Sättigung/Helligkeit: Zufällig den Wert des " -"Parameters ändern." - #: ../share/extensions/color_blackandwhite.inx.h:1 msgid "Black and White" msgstr "Schwarz-WeiĂź" -#: ../share/extensions/color_blackandwhite.inx.h:2 -msgid "Threshold Color (1-255):" -msgstr "" - #: ../share/extensions/color_brighter.inx.h:1 msgid "Brighter" msgstr "Heller" @@ -31148,6 +29373,57 @@ msgstr "Entsättigen" msgid "Grayscale" msgstr "Graustufen" +#: ../share/extensions/color_HSL_adjust.inx.h:1 +msgid "HSL Adjust" +msgstr "HSL anpassen" + +#: ../share/extensions/color_HSL_adjust.inx.h:3 +msgid "Hue (°)" +msgstr "Farbton (°)" + +#: ../share/extensions/color_HSL_adjust.inx.h:4 +msgid "Random hue" +msgstr "Zufallsfarbton" + +#: ../share/extensions/color_HSL_adjust.inx.h:6 +#, no-c-format +msgid "Saturation (%)" +msgstr "Sättigung (%)" + +#: ../share/extensions/color_HSL_adjust.inx.h:7 +msgid "Random saturation" +msgstr "Zufallssättigung" + +#: ../share/extensions/color_HSL_adjust.inx.h:9 +#, no-c-format +msgid "Lightness (%)" +msgstr "Helligkeit (%)" + +#: ../share/extensions/color_HSL_adjust.inx.h:10 +msgid "Random lightness" +msgstr "Zufallshelligkeit" + +#: ../share/extensions/color_HSL_adjust.inx.h:13 +#, no-c-format +msgid "" +"Adjusts hue, saturation and lightness in the HSL representation of the " +"selected objects's color.\n" +"Options:\n" +" * Hue: rotate by degrees (wraps around).\n" +" * Saturation: add/subtract % (min=-100, max=100).\n" +" * Lightness: add/subtract % (min=-100, max=100).\n" +" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" +" " +msgstr "" +"Verändert Farbton, Sättigung und Helligkeit der in der HSL Darstellung " +"ausgewählten Objektfarbe.\n" +"Optionen:\n" +"     * Farbton: drehen in Grad (umschlingt).\n" +"     * Sättigung: Addieren/subtrahieren % (min=-100, max=100).\n" +"     * Helligkeit: Addieren/subtrahieren % (min=-100, max=100).\n" +"     * Zufällig Farbton/Sättigung/Helligkeit: Zufällig den Wert des " +"Parameters ändern." + #: ../share/extensions/color_lesshue.inx.h:1 msgid "Less Hue" msgstr "Weniger Farbe" @@ -31298,7 +29574,7 @@ msgid "Visual" msgstr "Visuel" #: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 -#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 +#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:24 msgid "Visualize Path" msgstr "Pfad visualisieren" @@ -31800,18 +30076,6 @@ msgstr "Nur ausgewählte Bilder einbetten" msgid "Embed Selected Images" msgstr "Ausgewählte Bilder einbetten" -#: ../share/extensions/empty_page.inx.h:1 -msgid "Empty Page" -msgstr "" - -#: ../share/extensions/empty_page.inx.h:2 -msgid "Page size:" -msgstr "" - -#: ../share/extensions/empty_page.inx.h:3 -msgid "Page orientation:" -msgstr "Ausrichtung der Zeichenfläche:" - #: ../share/extensions/eps_input.inx.h:1 msgid "EPS Input" msgstr "EPS einlesen" @@ -32836,11 +31100,7 @@ msgstr "Speichere Gitter:" msgid "Save Background" msgstr "Hintergrund speichern:" -#: ../share/extensions/gimp_xcf.inx.h:6 -msgid "File Resolution:" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:8 +#: ../share/extensions/gimp_xcf.inx.h:7 msgid "" "This extension exports the document to Gimp XCF format according to the " "following options:\n" @@ -32848,14 +31108,26 @@ msgid "" " * Save Grid: convert the first rectangular grid to a Gimp grid (note " "that the default Inkscape grid is very narrow when shown in Gimp).\n" " * Save Background: add the document background to each converted layer.\n" -" * File Resolution: XCF file resolution, in DPI.\n" "\n" "Each first level layer is converted to a Gimp layer. Sublayers are " "concatenated and converted with their first level parent layer into a single " "Gimp layer." msgstr "" +"Diese Erweiterung exportiert das Dokument in das Gimp XCF-Format nach den " +"folgenden Optionen:\n" +"     * FĂĽhrungslinien speichern: Konvertiert alle FĂĽhrungslinien zu " +"GimpFĂĽhrungslinien.\n" +"     * Gitter speichern: Wandeln das erste rechteckige Gitter in ein Gimp-" +"Gitter um (beachten Sie, dass das Standard-Inkscape Gitter sehr eng ist, " +"wenn es in Gimp gezeigt wird).\n" +"     * Hintergrund speichern: FĂĽgt den Dokument-Hintergrund in jede " +"konvertierte Ebene ein.\n" +"\n" +"Jede erste Ebene wird in eine Gimp-Ebene umgewandelt. Unterebenen werden mit " +"ihrer ersten ĂĽbergeordnete Ebene in einer einzigen Gimp-Ebene verkettet und " +"konvertiert." -#: ../share/extensions/gimp_xcf.inx.h:15 +#: ../share/extensions/gimp_xcf.inx.h:13 msgid "GIMP XCF maintaining layers (*.xcf)" msgstr "GIMP XCF, Ebenen beibehalten (*.XCF)" @@ -33078,8 +31350,9 @@ msgid "Regular guides" msgstr "Rechteckiges Gitter" #: ../share/extensions/guides_creator.inx.h:3 -msgid "Guides preset:" -msgstr "" +#, fuzzy +msgid "Guides preset" +msgstr "FĂĽhrungslinien erstellen" #: ../share/extensions/guides_creator.inx.h:6 msgid "Start from edges" @@ -33090,69 +31363,44 @@ msgid "Delete existing guides" msgstr "Lösche existierende FĂĽhrungslinien" #: ../share/extensions/guides_creator.inx.h:8 -msgid "Custom..." -msgstr "Benutzerdefiniert..." - -#: ../share/extensions/guides_creator.inx.h:9 -msgid "Golden ratio" -msgstr "Goldener Schnitt" - -#: ../share/extensions/guides_creator.inx.h:10 -msgid "Rule-of-third" -msgstr "Drittel-Regel" - -#: ../share/extensions/guides_creator.inx.h:11 msgid "Diagonal guides" msgstr "Diagonale FĂĽhrungslinien" -#: ../share/extensions/guides_creator.inx.h:12 +#: ../share/extensions/guides_creator.inx.h:9 msgid "Upper left corner" msgstr "Obere linke Ecke" -#: ../share/extensions/guides_creator.inx.h:13 +#: ../share/extensions/guides_creator.inx.h:10 msgid "Upper right corner" msgstr "Obere rechte Ecke" -#: ../share/extensions/guides_creator.inx.h:14 +#: ../share/extensions/guides_creator.inx.h:11 msgid "Lower left corner" msgstr "untere linke Ecke" -#: ../share/extensions/guides_creator.inx.h:15 +#: ../share/extensions/guides_creator.inx.h:12 msgid "Lower right corner" msgstr "untere rechte Ecke" -#: ../share/extensions/guides_creator.inx.h:16 +#: ../share/extensions/guides_creator.inx.h:13 #, fuzzy msgid "Margins" msgstr "Randbox" -#: ../share/extensions/guides_creator.inx.h:17 -msgid "Margins preset:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:18 -msgid "Header margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:19 -msgid "Footer margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:20 -msgid "Left margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:21 -msgid "Right margin:" -msgstr "" +#: ../share/extensions/guides_creator.inx.h:14 +#, fuzzy +msgid "Margins preset" +msgstr "RandfĂĽhrungslinie" -#: ../share/extensions/guides_creator.inx.h:22 -msgid "Left book page" -msgstr "" +#: ../share/extensions/guides_creator.inx.h:15 +#, fuzzy +msgid "Header margin" +msgstr "Seitenrand" -#: ../share/extensions/guides_creator.inx.h:23 -msgid "Right book page" -msgstr "" +#: ../share/extensions/guides_creator.inx.h:16 +#, fuzzy +msgid "Footer margin" +msgstr "Oberer Rand" #: ../share/extensions/guillotine.inx.h:1 msgid "Guillotine" @@ -33170,6 +31418,11 @@ msgstr "Bildname (ohne Erweiterung):" msgid "Ignore these settings and use export hints" msgstr "Einstellungen ignorieren und Export-Hinweise nutzen" +#: ../share/extensions/guillotine.inx.h:5 +#: ../share/extensions/print_win32_vector.inx.h:2 +msgid "Export" +msgstr "Exportieren" + #: ../share/extensions/handles.inx.h:1 msgid "Draw Handles" msgstr "Anfasser zeichnen" @@ -33191,11 +31444,11 @@ msgid "Text:" msgstr "Text" #: ../share/extensions/hershey.inx.h:4 -msgid "Action: " +msgid " Action" msgstr "" #: ../share/extensions/hershey.inx.h:5 -msgid "Font face: " +msgid " Font face " msgstr "" #: ../share/extensions/hershey.inx.h:6 @@ -33352,35 +31605,27 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 -#: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 -msgid "Resolution X (dpi):" -msgstr "" +#: ../share/extensions/hpgl_output.inx.h:6 +#: ../share/extensions/plotter.inx.h:16 +msgid "Resolution X (dpi)" +msgstr "Auflösung X (dpi):" #: ../share/extensions/hpgl_input.inx.h:4 -#: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the X axis " -"(Default: 1016.0)" +msgid "The amount of steps in one inch on the X axis (Default: 1016.0)" msgstr "" #: ../share/extensions/hpgl_input.inx.h:5 -#: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 -msgid "Resolution Y (dpi):" -msgstr "" +#: ../share/extensions/hpgl_output.inx.h:8 +#: ../share/extensions/plotter.inx.h:18 +msgid "Resolution Y (dpi)" +msgstr "Auflösung Y (dpi):" #: ../share/extensions/hpgl_input.inx.h:6 -#: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the Y axis " -"(Default: 1016.0)" +msgid "The amount of steps in one inch on the Y axis (Default: 1016.0)" msgstr "" #: ../share/extensions/hpgl_input.inx.h:7 -msgid "Show movements between paths" +msgid "Show Movements between paths" msgstr "" #: ../share/extensions/hpgl_input.inx.h:8 @@ -33388,153 +31633,208 @@ msgid "Check this to show movements between paths (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/hpgl_output.inx.h:36 msgid "HP Graphics Language file (*.hpgl)" msgstr "HP Graphics Language Datei (*.hpgl)" #: ../share/extensions/hpgl_input.inx.h:10 -msgid "Import an HP Graphics Language file" -msgstr "" +#, fuzzy +msgid "Import HP Graphics Language file" +msgstr "Export in eine HP Graphic Language Datei" #: ../share/extensions/hpgl_output.inx.h:1 msgid "HPGL Output" msgstr "HPGL-Ausgabe" #: ../share/extensions/hpgl_output.inx.h:2 +#, fuzzy msgid "" "Please make sure that all objects you want to save are converted to paths. " -"Please use the plotter extension (Extensions menu) to plot directly over a " -"serial connection." +"The drawing will be automatically aligned to the zero point. Please use the " +"plotter extension (Extensions menu) to plot directly on a plotter." msgstr "" +"Bitte achten Sie darauf, dass alle Objekte, die Sie plotten möchten in Pfade " +"konvertiert wurden. Der Plot wird automatisch auf den Nullpunkt ausgerichtet." #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 -msgid "Plotter Settings " +#: ../share/extensions/plotter.inx.h:13 +msgid "Plotter Settings" +msgstr "Plottereinstellungen" + +#: ../share/extensions/hpgl_output.inx.h:4 +#: ../share/extensions/plotter.inx.h:14 +msgid "Pen number" +msgstr "Stiftnummer:" + +#: ../share/extensions/hpgl_output.inx.h:5 +#: ../share/extensions/plotter.inx.h:15 +msgid "The number of the pen (tool) to use, on most plotters 1 (Standard: '1')" msgstr "" +"Die Nummer des Stiftes (Werkzeug) zum Verwenden, ist auf den meisten " +"Plottern 1 (Standard: '1')" -#: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 -msgid "Pen number:" +#: ../share/extensions/hpgl_output.inx.h:7 +#: ../share/extensions/plotter.inx.h:17 +#, fuzzy +msgid "" +"The amount of steps the cutter moves if it moves for 1 inch on the X axis - " +"Try different settings to find the one that fits your plotter (Default: " +"1016.0)" msgstr "" +"Die Anzahl der Schritte, die sich der Schneider bewegt, wenn er sich, um 1 " +"Zoll bewegt, erhält diesen Wert aus Ihrem Plotter manuell oder lernt es " +"durch Versuch und Fehler (Standard: '1016')" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 -msgid "The number of the pen (tool) to use (Standard: '1')" +#: ../share/extensions/plotter.inx.h:19 +#, fuzzy +msgid "" +"The amount of steps the cutter moves if it moves for 1 inch on the Y axis - " +"Try different settings to find the one that fits your plotter (Default: " +"1016.0)" msgstr "" +"Die Anzahl der Schritte, die sich der Schneider bewegt, wenn er sich, um 1 " +"Zoll bewegt, erhält diesen Wert aus Ihrem Plotter manuell oder lernt es " +"durch Versuch und Fehler (Standard: '1016')" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 -msgid "Pen force (g):" -msgstr "" +#: ../share/extensions/plotter.inx.h:20 +#, fuzzy +msgid "Mirror X-axis" +msgstr "Y-Spiegelachse" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 msgid "" -"The amount of force pushing down the pen in grams, set to 0 to omit command; " -"most plotters ignore this command (Default: 0)" +"Check this to mirror the X axis - Try different settings to find the one " +"that fits your plotter (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 -msgid "Pen speed (cm/s or mm/s):" -msgstr "" +#: ../share/extensions/plotter.inx.h:22 +msgid "Mirror Y-axis" +msgstr "Y-Spiegelachse" #: ../share/extensions/hpgl_output.inx.h:13 +#: ../share/extensions/plotter.inx.h:23 msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command; most plotters " -"ignore this command (Default: 0)" +"Check this to mirror the Y axis - Try different settings to find the one " +"that fits your plotter (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:14 -msgid "Rotation (°, Clockwise):" -msgstr "" +#: ../share/extensions/plotter.inx.h:24 +msgid "Rotation (Clockwise)" +msgstr "Drehung im Uhrzeigersinn" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 -msgid "Rotation of the drawing (Default: 0°)" +msgid "" +"Rotation of the drawing - Try different settings to find the one that fits " +"your plotter (Default: 0°)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 -msgid "Mirror X axis" -msgstr "" +#: ../share/extensions/plotter.inx.h:26 +msgid "Center zero point" +msgstr "Zentrierter Nullpunkt" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 -msgid "Check this to mirror the X axis (Default: Unchecked)" +#: ../share/extensions/plotter.inx.h:27 +msgid "" +"Check this if your plotter uses a centered zero point - Try different " +"settings to find the one that fits your plotter (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 -msgid "Mirror Y axis" +#: ../share/extensions/plotter.inx.h:28 +msgid "Overcut & Tool Offset" msgstr "" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 -msgid "Check this to mirror the Y axis (Default: Unchecked)" -msgstr "" +#: ../share/extensions/plotter.inx.h:29 +msgid "Use overcut" +msgstr "Ăśberschnitt nutzen" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 -msgid "Center zero point" -msgstr "Zentrierter Nullpunkt" - -#: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:30 +#, fuzzy msgid "" -"Check this if your plotter uses a centered zero point (Default: Unchecked)" +"Check this to use the overcut, if not checked the 'Overcut' parameter is " +"unused (Default: Checked)" msgstr "" +"PrĂĽfen, ob der Ăśberschnitt verwendet werden soll, wenn nicht, wird der " +"'Ăśberschnitt'-Parameter nicht verwendet (Standard: 'Ein')" + +#: ../share/extensions/hpgl_output.inx.h:21 +#: ../share/extensions/plotter.inx.h:31 +msgid "Overcut (mm)" +msgstr "Ăśberschnitt (mm):" #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 -msgid "Plot Features " +#: ../share/extensions/plotter.inx.h:32 +#, fuzzy +msgid "" +"The distance in mm that will be cut over the starting point of the path to " +"prevent open paths (Default: 1.00)" msgstr "" +"Der Abstand in mm, mit dem ĂĽber den Ausgangspunkt des Pfades geschnitten " +"wird, um offene Pfade zu schĂĽtzen (Standard: '1.00')" #: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 -msgid "Overcut (mm):" +#: ../share/extensions/plotter.inx.h:33 +msgid "Use tool offset correction" msgstr "" #: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/plotter.inx.h:34 +#, fuzzy msgid "" -"The distance in mm that will be cut over the starting point of the path to " -"prevent open paths, set to 0.0 to omit command (Default: 1.00)" +"Check this to use the tool offset correction, if not checked the 'Tool " +"offset' and 'Precut' parameters are unused (Default: Checked)" msgstr "" +"PrĂĽfen, ob der Werkzeugversatz behoben werden sollte. Wenn nicht, sind " +"'Werkzeugversatz' und 'Return-Faktor' -Parameter unbenutzt (Standard: 'Ein')" #: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 -msgid "Tool offset (mm):" -msgstr "" +#: ../share/extensions/plotter.inx.h:35 +#, fuzzy +msgid "Tool offset (mm)" +msgstr "Werkzeugversatz (mm):" #: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 -msgid "" -"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " -"command (Default: 0.25)" +#: ../share/extensions/plotter.inx.h:36 +#, fuzzy +msgid "The offset from the tool tip to the tool axis in mm (Default: 0.25)" msgstr "" +"Der Versatz zwischen Werkzeugspitze und -achse in mm (Standard: '0.25')" #: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/plotter.inx.h:37 #, fuzzy msgid "Use precut" msgstr "Ăśberschnitt nutzen" #: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/plotter.inx.h:38 msgid "" -"Check this to cut a small line before the real drawing starts to correctly " -"align the tool orientation. (Default: Checked)" +"Check this to cut a small line before the real drawing to align the tool " +"orientation for the first cut (Default: Checked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 -msgid "Curve flatness:" +#: ../share/extensions/plotter.inx.h:39 +msgid "" +"Please note that using the tool offset correction will move your plot away " +"from the zero point by the length in mm specified by the tool offset." msgstr "" -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:41 +#, fuzzy +msgid "Curve flatness" +msgstr "Kurven-Ebenheit:" + +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:42 #, fuzzy msgid "" "Curves are divided into lines, this number controls how fine the curves will " @@ -33543,29 +31843,28 @@ msgstr "" "Kurven werden in Zeilen aufgeteilt, diese Zahl regelt wie dĂĽnn die Kurven " "reproduziert werden; Je kleiner desto dĂĽnner (Standard: '1.2')" -#: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 -msgid "Auto align" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 -msgid "" -"Check this to auto align the drawing to the zero point (Plus the tool offset " -"if used). If unchecked you have to make sure that all parts of your drawing " -"are within the document border! (Default: Checked)" -msgstr "" - #: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:43 +msgid "X offset (mm)" +msgstr "X Versatz (mm:" + +#: ../share/extensions/hpgl_output.inx.h:34 +#, fuzzy msgid "" -"All these settings depend on the plotter you use, for more information " -"please consult the manual or homepage for your plotter." +"The offset to shift your plot away from the zero point in mm (Default: " +"'0.00')" msgstr "" +"Der Versatz, um Ihren Plot vom Null-Punkt weg zu verschieben in mm " +"(Standard: '0.00')" #: ../share/extensions/hpgl_output.inx.h:35 -msgid "Export an HP Graphics Language file" -msgstr "" +#: ../share/extensions/plotter.inx.h:45 +msgid "Y offset (mm)" +msgstr "Y Versatz (mm):" + +#: ../share/extensions/hpgl_output.inx.h:37 +msgid "Export to an HP Graphics Language file" +msgstr "Export in eine HP Graphic Language Datei" #: ../share/extensions/ink2canvas.inx.h:1 #, fuzzy @@ -33631,8 +31930,8 @@ msgstr "Neu in dieser Version" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_relnotes.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91" -msgstr "" +msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49" +msgstr "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49" #: ../share/extensions/inkscape_help_reportabug.inx.h:1 msgid "Report a Bug" @@ -33642,26 +31941,6 @@ msgstr "Einen Fehler melden" msgid "SVG 1.1 Specification" msgstr "SVG-1.1-Spezifikation" -#: ../share/extensions/interp.inx.h:1 -msgid "Interpolate" -msgstr "Interpolieren" - -#: ../share/extensions/interp.inx.h:3 -msgid "Interpolation steps:" -msgstr "Interpolationsschritte" - -#: ../share/extensions/interp.inx.h:4 -msgid "Interpolation method:" -msgstr "Interpolationsmethode" - -#: ../share/extensions/interp.inx.h:5 -msgid "Duplicate endpaths" -msgstr "Endpfade duplizieren" - -#: ../share/extensions/interp.inx.h:6 -msgid "Interpolate style" -msgstr "Stil Interpolieren" - #: ../share/extensions/interp_att_g.inx.h:1 msgid "Interpolate Attribute in a group" msgstr "Attribut innerhalb einer Gruppe interpolieren" @@ -33753,6 +32032,26 @@ msgstr "" "Dieser Effekt setzt ein beliebiges interpolierbares Attribut fĂĽr jedes " "Element innerhalb einer Gruppe oder einer mehrteiligen Auswahl" +#: ../share/extensions/interp.inx.h:1 +msgid "Interpolate" +msgstr "Interpolieren" + +#: ../share/extensions/interp.inx.h:3 +msgid "Interpolation steps:" +msgstr "Interpolationsschritte" + +#: ../share/extensions/interp.inx.h:4 +msgid "Interpolation method:" +msgstr "Interpolationsmethode" + +#: ../share/extensions/interp.inx.h:5 +msgid "Duplicate endpaths" +msgstr "Endpfade duplizieren" + +#: ../share/extensions/interp.inx.h:6 +msgid "Interpolate style" +msgstr "Stil Interpolieren" + #: ../share/extensions/jessyInk_autoTexts.inx.h:1 msgid "Auto-texts" msgstr "Auto-Texte" @@ -34584,27 +32883,21 @@ msgstr "Gebiet" #: ../share/extensions/measure.inx.h:13 msgctxt "measure extension" -msgid "Center of Mass" -msgstr "" - -#: ../share/extensions/measure.inx.h:14 -msgctxt "measure extension" msgid "Text On Path" msgstr "Text an Pfad" -#: ../share/extensions/measure.inx.h:15 +#: ../share/extensions/measure.inx.h:14 msgctxt "measure extension" msgid "Fixed Angle" msgstr "Fixierter Winkel" -#: ../share/extensions/measure.inx.h:18 +#: ../share/extensions/measure.inx.h:17 #, no-c-format msgid "" -"This effect measures the length, area, or center-of-mass of the selected " -"paths. Length and area are added as a text object with the selected units. " -"Center-of-mass is shown as a cross symbol.\n" -"\n" -" * Text display format can be either Text-On-Path, or stand-alone text at a " +"This effect measures the length, or area, of the selected paths and adds it " +"as a text object with the selected units.\n" +" \n" +" * Display format can be either Text-On-Path, or stand-alone text at a " "specified angle.\n" " * The number of significant digits can be controlled by the Precision " "field.\n" @@ -34616,26 +32909,16 @@ msgid "" "Bezier curves. If a circle is used, the area may be too high by as much as " "0.03%." msgstr "" - -#: ../share/extensions/merge_styles.inx.h:1 -msgid "Merge Styles into CSS" -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:2 -msgid "" -"All selected nodes will be grouped together and their common style " -"attributes will create a new class, this class will replace the existing " -"inline style attributes. Please use a name which best describes the kinds of " -"objects and their common context for best effect." -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:3 -msgid "New Class Name:" -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:4 -msgid "Stylesheet" -msgstr "" +"Dieser Effekt misst die Länge oder den Bereich eines Pfades in den gewählten " +"Einheiten und fĂĽgt diese als Text-auf-Pfad-Objekt an.\n" +"\n" +"Die Anzahl der signifikanten Stellen wird durch \"Präzision\" gewählt.\n" +"Das Feld \"Versatz\" kontrolliert die Entfernung Text-Pfad. \n" +"Der \"MaĂźstab\" kann zur Messung skalierter Pfade verwendet werden (M = 250 -" +"> 1cm entspricht 2,5m).\n" +"Wenn der Bereich berechnet wird, sollte das Ergebnis fĂĽr Polygone und Bezier-" +"Kurven präzise sein. Wird ein kreis benutzt, kann die Fläche zu groĂź sein " +"(0.03%)." #: ../share/extensions/motion.inx.h:1 msgid "Motion" @@ -34919,16 +33202,20 @@ msgstr "" #: ../share/extensions/plotter.inx.h:2 msgid "" -"Please make sure that all objects you want to plot are converted to paths." +"Please make sure that all objects you want to plot are converted to paths. " +"The plot will automatically be aligned to the zero point." msgstr "" +"Bitte achten Sie darauf, dass alle Objekte, die Sie plotten möchten in Pfade " +"konvertiert wurden. Der Plot wird automatisch auf den Nullpunkt ausgerichtet." #: ../share/extensions/plotter.inx.h:3 -msgid "Connection Settings " -msgstr "" +msgid "Connection" +msgstr "Verbindungen" #: ../share/extensions/plotter.inx.h:4 -msgid "Serial port:" -msgstr "" +#, fuzzy +msgid "Serial Port" +msgstr "Serieller Port:" #: ../share/extensions/plotter.inx.h:5 #, fuzzy @@ -34940,8 +33227,9 @@ msgstr "" "'COM1', unter Linux so etwas wie: '/dev/ttyUSB0' (Standard: 'COM1')" #: ../share/extensions/plotter.inx.h:6 -msgid "Serial baud rate:" -msgstr "" +#, fuzzy +msgid "Serial Baud rate" +msgstr "Serieller Port:" #: ../share/extensions/plotter.inx.h:7 #, fuzzy @@ -34949,83 +33237,52 @@ msgid "The Baud rate of your serial connection (Default: 9600)" msgstr "Die Baudrate ihrer Serial-Verbindung (Standard '9600')" #: ../share/extensions/plotter.inx.h:8 -msgid "Flow control:" -msgstr "" +#, fuzzy +msgid "Flow control" +msgstr "Abspielkontrolle" #: ../share/extensions/plotter.inx.h:9 msgid "" -"The Software / Hardware flow control of your serial connection (Default: " -"Software)" +"Software / Hardware flow control - Try different settings to find the one " +"that fits your plotter (Default: None)" msgstr "" #: ../share/extensions/plotter.inx.h:10 -msgid "Command language:" +msgid "" +"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " +"plotter manufacturer for drivers if needed." msgstr "" #: ../share/extensions/plotter.inx.h:11 -msgid "The command language to use (Default: HPGL)" +msgid "Please note that Parallel (LPT) connections are not supported." msgstr "" #: ../share/extensions/plotter.inx.h:12 -msgid "Software (XON/XOFF)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:13 -msgid "Hardware (RTS/CTS)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:14 -msgid "Hardware (DSR/DTR + RTS/CTS)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:16 -msgid "HPGL" -msgstr "" - -#: ../share/extensions/plotter.inx.h:17 -msgid "DMPL" -msgstr "" - -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:19 -msgid "" -"Using wrong settings can under certain circumstances cause Inkscape to " -"freeze. Always save your work before plotting!" -msgstr "" - -#: ../share/extensions/plotter.inx.h:20 msgid "" -"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " -"plotter manufacturer for drivers if needed." +"Please note that only the HPGL command language is supported at the moment." msgstr "" #: ../share/extensions/plotter.inx.h:21 -msgid "Parallel (LPT) connections are not supported." +msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:25 msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command. Most plotters " -"ignore this command. (Default: 0)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:33 -msgid "Rotation (°, clockwise):" -msgstr "" - -#: ../share/extensions/plotter.inx.h:52 -msgid "Show debug information" +"Rotation of the plot - Try different settings to find the one that fits your " +"plotter (Default: 0°)" msgstr "" -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/plotter.inx.h:44 +#, fuzzy msgid "" -"Check this to get verbose information about the plot without actually " -"sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" +"The offset to move your plot away from the zero point in mm (Default: '0.00')" msgstr "" +"Der Versatz, um Ihren Plot vom Null-Punkt weg zu verschieben in mm " +"(Standard: '0.00')" + +#: ../share/extensions/plotter.inx.h:46 +msgid "Plotter" +msgstr "Plotter" #: ../share/extensions/plt_input.inx.h:1 msgid "AutoCAD Plot Input" @@ -35258,10 +33515,6 @@ msgstr "Mittel" msgid "View Previous Glyph" msgstr "Vorherigen Glyph zeigen" -#: ../share/extensions/print_win32_vector.inx.h:1 -msgid "Win32 Vector Print" -msgstr "Windows32-Vektor-Druck" - #: ../share/extensions/printing_marks.inx.h:1 msgid "Printing Marks" msgstr "Druck-Markierungen" @@ -35306,6 +33559,10 @@ msgstr "Leinwand" msgid "Bleed Margin" msgstr "Beschnittgrenze" +#: ../share/extensions/print_win32_vector.inx.h:1 +msgid "Win32 Vector Print" +msgstr "Windows32-Vektor-Druck" + #: ../share/extensions/ps_input.inx.h:1 msgid "PostScript Input" msgstr "Postscript Eingabe" @@ -35346,6 +33603,25 @@ msgstr "" msgid "Alphabet Soup" msgstr "Buchstabensuppe" +#: ../share/extensions/render_barcode_datamatrix.inx.h:1 +msgid "Datamatrix" +msgstr "Datenmatrix" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:3 +#: ../share/extensions/render_barcode_qrcode.inx.h:4 +msgid "Size, in unit squares:" +msgstr "Größe in der Einheit Quadrate:" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:4 +msgid "Square Size (px):" +msgstr "Quadratische Größe / px" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:6 +#: ../share/extensions/render_barcode.inx.h:6 +#: ../share/extensions/render_barcode_qrcode.inx.h:19 +msgid "Barcode" +msgstr "Strichcode" + #: ../share/extensions/render_barcode.inx.h:1 msgid "Classic" msgstr "Klassisch" @@ -35362,25 +33638,6 @@ msgstr "Strichcode-Daten:" msgid "Bar Height:" msgstr "Höhe der Striche:" -#: ../share/extensions/render_barcode.inx.h:6 -#: ../share/extensions/render_barcode_datamatrix.inx.h:6 -#: ../share/extensions/render_barcode_qrcode.inx.h:19 -msgid "Barcode" -msgstr "Strichcode" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:1 -msgid "Datamatrix" -msgstr "Datenmatrix" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:3 -#: ../share/extensions/render_barcode_qrcode.inx.h:4 -msgid "Size, in unit squares:" -msgstr "Größe in der Einheit Quadrate:" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:4 -msgid "Square Size (px):" -msgstr "Quadratische Größe / px" - #: ../share/extensions/render_barcode_qrcode.inx.h:1 msgid "QR Code" msgstr "QR Code" @@ -36169,20 +34426,6 @@ msgstr "Synfig Animation (*.sif)" msgid "Synfig Animation written using the sif-file exporter extension" msgstr "" -#: ../share/extensions/tar_layers.inx.h:1 -msgid "Collection of SVG files One per root layer" -msgstr "" - -#: ../share/extensions/tar_layers.inx.h:2 -msgid "Layers as Separate SVG (*.tar)" -msgstr "" - -#: ../share/extensions/tar_layers.inx.h:3 -msgid "" -"Each layer split into it's own svg file and collected as a tape archive (tar " -"file)" -msgstr "" - #: ../share/extensions/text_braille.inx.h:1 msgid "Convert to Braille" msgstr "Umwandeln in Blindenschrift" @@ -36243,7 +34486,10 @@ msgstr "Stellung ändern" msgid "lowercase" msgstr "kleinschreibung" -#. false +#: ../share/extensions/text_merge.inx.h:14 +msgid "Flow text" +msgstr "FlieĂźtext" + #: ../share/extensions/text_merge.inx.h:15 msgid "Keep style" msgstr "Stil behalten" @@ -36482,53 +34728,13 @@ msgstr "" "Leerzeichen trennen. " #: ../share/extensions/web-set-att.inx.h:29 -#: ../share/extensions/web-transmit-att.inx.h:27 #: ../share/extensions/webslicer_create_group.inx.h:13 #: ../share/extensions/webslicer_create_rect.inx.h:41 #: ../share/extensions/webslicer_export.inx.h:8 +#: ../share/extensions/web-transmit-att.inx.h:27 msgid "Web" msgstr "Internet" -#: ../share/extensions/web-transmit-att.inx.h:1 -msgid "Transmit Attributes" -msgstr "Sende Attribute" - -#: ../share/extensions/web-transmit-att.inx.h:3 -msgid "Attribute to transmit:" -msgstr "Attribute zum Senden" - -#: ../share/extensions/web-transmit-att.inx.h:4 -msgid "When to transmit:" -msgstr "Wann wollen Sie senden" - -#: ../share/extensions/web-transmit-att.inx.h:6 -msgid "Source and destination of transmitting:" -msgstr "Quelle und Ziel fĂĽr die Ăśbertragung" - -#: ../share/extensions/web-transmit-att.inx.h:21 -msgid "All selected ones transmit to the last one" -msgstr "Alle Gewählten ĂĽbertragen zum Letzten" - -#: ../share/extensions/web-transmit-att.inx.h:22 -msgid "The first selected transmits to all others" -msgstr "Das zuerst Gewählte ĂĽberträgt zu allen anderen" - -#: ../share/extensions/web-transmit-att.inx.h:25 -msgid "" -"This effect transmits one or more attributes from the first selected element " -"to the second when an event occurs." -msgstr "" -"Dieser Effekt setzt Attribute im zweiten ausgewählten Element, wenn ein " -"Ereignis bei dem ersten Element eintritt." - -#: ../share/extensions/web-transmit-att.inx.h:26 -msgid "" -"If you want to transmit more than one attribute, you should separate this " -"with a space, and only with a space." -msgstr "" -"Wenn Sie mehr als nur ein Attribut ĂĽbertragen wollen, mĂĽssen Sie diese mit " -"einzelnen Leerzeichen trennen. " - #: ../share/extensions/webslicer_create_group.inx.h:1 msgid "Set a layout group" msgstr "Layoutgruppe festlegen" @@ -36738,6 +34944,46 @@ msgstr "" "Alle geschnittenen Bilder und optionaler Code werden so erstellt, wie Sie " "ihn konfiguriert haben und in einem Verzeichnis gespeichert." +#: ../share/extensions/web-transmit-att.inx.h:1 +msgid "Transmit Attributes" +msgstr "Sende Attribute" + +#: ../share/extensions/web-transmit-att.inx.h:3 +msgid "Attribute to transmit:" +msgstr "Attribute zum Senden" + +#: ../share/extensions/web-transmit-att.inx.h:4 +msgid "When to transmit:" +msgstr "Wann wollen Sie senden" + +#: ../share/extensions/web-transmit-att.inx.h:6 +msgid "Source and destination of transmitting:" +msgstr "Quelle und Ziel fĂĽr die Ăśbertragung" + +#: ../share/extensions/web-transmit-att.inx.h:21 +msgid "All selected ones transmit to the last one" +msgstr "Alle Gewählten ĂĽbertragen zum Letzten" + +#: ../share/extensions/web-transmit-att.inx.h:22 +msgid "The first selected transmits to all others" +msgstr "Das zuerst Gewählte ĂĽberträgt zu allen anderen" + +#: ../share/extensions/web-transmit-att.inx.h:25 +msgid "" +"This effect transmits one or more attributes from the first selected element " +"to the second when an event occurs." +msgstr "" +"Dieser Effekt setzt Attribute im zweiten ausgewählten Element, wenn ein " +"Ereignis bei dem ersten Element eintritt." + +#: ../share/extensions/web-transmit-att.inx.h:26 +msgid "" +"If you want to transmit more than one attribute, you should separate this " +"with a space, and only with a space." +msgstr "" +"Wenn Sie mehr als nur ein Attribut ĂĽbertragen wollen, mĂĽssen Sie diese mit " +"einzelnen Leerzeichen trennen. " + #: ../share/extensions/whirl.inx.h:1 msgid "Whirl" msgstr "Wirbel" @@ -36784,741 +35030,6 @@ msgstr "Ein beliebtes Dateiformat fĂĽr Clipart" msgid "XAML Input" msgstr "XAML einlesen" -#~ msgid "Set Resolution" -#~ msgstr "Auflösung" - -#~ msgid "Set filter resolution" -#~ msgstr "Filter-Auflösung setzen" - -#~ msgid "Fill Area" -#~ msgstr "FĂĽllbereich" - -#~ msgid "Fills object bounding box with color" -#~ msgstr "FĂĽllt Objektrahmen mit Farbe" - -#~ msgid "Link or embed image:" -#~ msgstr "Bild verknĂĽpfen oder einbetten:" - -#~ msgid "Hide the dialog next time and always apply the same action." -#~ msgstr "" -#~ "Verstecken Sie den Dialog beim nächsten Mal und immer gilt die gleiche " -#~ "Aktion." - -#~ msgid "Changes will be lost! Are you sure you want to reload document %s?" -#~ msgstr "" -#~ "Ă„nderungen gehen verloren! Sind Sie sicher, dass Sie das Dokument %s " -#~ "erneut laden möchten?" - -#~ msgid "drawing%s" -#~ msgstr "Zeichnung%s" - -#~ msgid "drawing-%d%s" -#~ msgstr "Zeichnung-%d%s" - -#~ msgid "%s" -#~ msgstr "%s" - -#~ msgid "Length left:" -#~ msgstr "Länge links:" - -#~ msgid "Specifies the left end of the bisector" -#~ msgstr "Legt das linke Ende der Halbierenden fest" - -#~ msgid "Length right:" -#~ msgstr "Länge rechts:" - -#~ msgid "Specifies the right end of the bisector" -#~ msgstr "Legt das rechte Ende der Halbierenden fest" - -#~ msgid "Adjust the \"left\" end of the bisector" -#~ msgstr "Einstellen des \"linken\" Endes der Halbierenden" - -#~ msgid "Adjust the \"right\" of the bisector" -#~ msgstr "Einstellen des \"rechten\" Endes der Halbierenden" - -#~ msgid "Null" -#~ msgstr "Null" - -#~ msgid "Intersect" -#~ msgstr "Ăśberschneidung" - -#~ msgid "Subtract A-B" -#~ msgstr "Subtrahiere A-B" - -#~ msgid "Identity A" -#~ msgstr "Identifikator A" - -#~ msgid "Subtract B-A" -#~ msgstr "Subtrahiere B-A" - -#~ msgid "Identity B" -#~ msgstr "Identifikator B" - -#~ msgid "2nd path:" -#~ msgstr "2. Pfad:" - -#, fuzzy -#~ msgid "Path to which the original path will be boolop'ed." -#~ msgstr "" -#~ "Dynamischen Versatz am Objekt erstellen. VerknĂĽpfung zum originalen Pfad " -#~ "bleibt bestehen." - -#, fuzzy -#~ msgid "Boolop type:" -#~ msgstr "Werkzeugtyp:" - -#~ msgid "Determines which kind of boolop will be performed." -#~ msgstr "" -#~ "Legt die Art der Bool'schen Operation fest, die angewendet werden soll." - -#~ msgid "Starting:" -#~ msgstr "Anfang:" - -#~ msgid "Angle of the first copy" -#~ msgstr "Winkel der ersten Kopie" - -#~ msgid "Rotation angle:" -#~ msgstr "Rotationswinkel" - -#~ msgid "Angle between two successive copies" -#~ msgstr "Winkel zwischen zwei aufeinander folgenden Kopien" - -#~ msgid "Number of copies:" -#~ msgstr "Anzahl der Kopien" - -#~ msgid "Number of copies of the original path" -#~ msgstr "Anzahl der Kopien des Originalpfades" - -#~ msgid "Origin" -#~ msgstr "Ursprung" - -#~ msgid "Origin of the rotation" -#~ msgstr "Rotationszentrum" - -#~ msgid "Adjust the starting angle" -#~ msgstr "Anpassen des Startwinkels" - -#~ msgid "Adjust the rotation angle" -#~ msgstr "Anpassen des Rotationswinkels" - -#~ msgid "Elliptic Pen" -#~ msgstr "Elliptischer Stift" - -#~ msgid "Thick-Thin strokes (fast)" -#~ msgstr "Dick-DĂĽnn-Striche (schnell)" - -#~ msgid "Thick-Thin strokes (slow)" -#~ msgstr "Dick-DĂĽnn-Striche (langsam)" - -#~ msgid "Sharp" -#~ msgstr "Schärfen" - -#~ msgid "Method:" -#~ msgstr "Methode" - -#~ msgid "Choose pen type" -#~ msgstr "Wähle den Stifttyp" - -#~ msgid "Pen width:" -#~ msgstr "Stiftbreite" - -#~ msgid "Maximal stroke width" -#~ msgstr "Maximale Strichbreite" - -#~ msgid "Pen roundness:" -#~ msgstr "Stiftabrundung" - -#~ msgid "Min/Max width ratio" -#~ msgstr "Min/Max Weitenverhältnis" - -#~ msgid "direction of thickest strokes (opposite = thinest)" -#~ msgstr "Richtung des dicksten Striches (entgegengesetzt = dĂĽnnster)" - -#~ msgid "Choose start capping type" -#~ msgstr "Anfangsmarkierung wählen" - -#~ msgid "Choose end capping type" -#~ msgstr "Endmarkierung wählen" - -#~ msgid "Grow for:" -#~ msgstr "Wachse um" - -#~ msgid "Make the stroke thiner near it's start" -#~ msgstr "Strich dĂĽnner starten" - -#~ msgid "Fade for:" -#~ msgstr "Ausblenden zu:" - -#~ msgid "Make the stroke thiner near it's end" -#~ msgstr "Strich dĂĽnner beenden" - -#~ msgid "Round ends" -#~ msgstr "Runde Enden ab" - -#~ msgid "Strokes end with a round end" -#~ msgstr "Strich endet abgerundet" - -#~ msgid "Capping:" -#~ msgstr "Kappung" - -#~ msgid "left capping" -#~ msgstr "Linker Winkel" - -#~ msgid "Control handle 0:" -#~ msgstr "Control handle 0:" - -#~ msgid "Control handle 0" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 1:" -#~ msgstr "Control handle 1:" - -#~ msgid "Control handle 1" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 2:" -#~ msgstr "Control handle 2:" - -#~ msgid "Control handle 2" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 3:" -#~ msgstr "Control handle 3:" - -#~ msgid "Control handle 3" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 4:" -#~ msgstr "Control handle 4:" - -#~ msgid "Control handle 4" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 5:" -#~ msgstr "Control handle 5:" - -#~ msgid "Control handle 5" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 6:" -#~ msgstr "Control handle 6:" - -#~ msgid "Control handle 6" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 7:" -#~ msgstr "Control handle 7:" - -#~ msgid "Control handle 7" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 8:" -#~ msgstr "Control handle 8:" - -#~ msgid "Control handle 8" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 9:" -#~ msgstr "Control handle 9:" - -#~ msgid "Control handle 9" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 10:" -#~ msgstr "Control handle 10:" - -#~ msgid "Control handle 10" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 11:" -#~ msgstr "Control handle 11:" - -#~ msgid "Control handle 11" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 12:" -#~ msgstr "Control handle 12:" - -#~ msgid "Control handle 12" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 13:" -#~ msgstr "Control handle 13:" - -#~ msgid "Control handle 13" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 14:" -#~ msgstr "Control handle 14:" - -#~ msgid "Control handle 14" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "Control handle 15:" -#~ msgstr "Control handle 15:" - -#~ msgid "Control handle 15" -#~ msgstr "Knotenanfasser verschieben" - -#~ msgid "End type:" -#~ msgstr "Endtyp:" - -#~ msgid "Determines on which side the line or line segment is infinite." -#~ msgstr "Bestimmt, welche Seite der Linie oder des Segments unendlich ist." - -#, fuzzy -#~ msgid "Discard original path?" -#~ msgstr "Originalpfad ersetzen" - -#~ msgid "Check this to only keep the mirrored part of the path" -#~ msgstr "Aktivieren um den gespiegelten Teil des Pfades zu behalten" - -#, fuzzy -#~ msgid "Reflection line:" -#~ msgstr "Auswahl" - -#~ msgid "Line which serves as 'mirror' for the reflection" -#~ msgstr "Linie, die als 'Spiegel' fĂĽr die Rflektion dienen soll." - -#~ msgid "Handle to control the distance of the offset from the curve" -#~ msgstr "Anfasser zum Einstellen der Entfernung des Offset der Kurve" - -#~ msgid "Adjust the offset" -#~ msgstr "Versatz-Abstand anpassen" - -#~ msgid "Specifies the left end of the parallel" -#~ msgstr "Legt das linke Ende der Parallele fest" - -#, fuzzy -#~ msgid "Specifies the right end of the parallel" -#~ msgstr "Legt das linke Ende der Parallele fest" - -#~ msgid "Adjust the \"left\" end of the parallel" -#~ msgstr "Einstellen des \"linken\" Endes der Parallele" - -#~ msgid "Adjust the \"right\" end of the parallel" -#~ msgstr "Einstellen des \"rechten\" Endes der Parallele" - -#~ msgid "Scaling factor" -#~ msgstr "Saklierungsfaktor" - -#~ msgid "Display unit" -#~ msgstr "Anzeige-Einheit" - -#, fuzzy -#~ msgid "Print unit after path length" -#~ msgstr "Breite der Halo in Pixeln" - -#~ msgid "Adjust the bisector's \"left\" end" -#~ msgstr "Stellt das \"linke\" Ende der Halbierenden ein" - -#~ msgid "Adjust the bisector's \"right\" end" -#~ msgstr "Stellt das \"rechte\" Ende der Halbierenden ein" - -#~ msgid "Scale x" -#~ msgstr "X Skalieren" - -#~ msgid "Scale factor in x direction" -#~ msgstr "Skaliere den Faktor in X-Richtung" - -#~ msgid "Scale y" -#~ msgstr "Y Skalieren" - -#~ msgid "Scale factor in y direction" -#~ msgstr "Skaliere den Faktor in Y-Richtung" - -#~ msgid "Offset x" -#~ msgstr "Versatz x" - -#~ msgid "Offset in x direction" -#~ msgstr "Versatz in X-Richtung" - -#~ msgid "Offset y" -#~ msgstr "Versatz y" - -#~ msgid "Offset in y direction" -#~ msgstr "Versatz in Y-Richtung" - -#~ msgid "Uses XY plane?" -#~ msgstr "XY-Ebene benutzen?" - -#~ msgid "Adjust the origin" -#~ msgstr "Einstellen des Ursprungs" - -#~ msgid "Iterations:" -#~ msgstr "Iterationen" - -#~ msgid "recursivity" -#~ msgstr "Rekursivität" - -#, fuzzy -#~ msgid "Float parameter" -#~ msgstr "Effektparameter" - -#~ msgid "just a real number like 1.4!" -#~ msgstr "Nur reelle Zahlen wie 1,4!" - -#~ msgid "Additional angle between tangent and curve" -#~ msgstr "Winkel, um den Tangente zu Kurve gedreht wird." - -#, fuzzy -#~ msgid "Location along curve:" -#~ msgstr "Ort des Benutzer-Caches" - -#~ msgid "Specifies the left end of the tangent" -#~ msgstr "Legt das linke Ende der Tangente fest" - -#~ msgid "Specifies the right end of the tangent" -#~ msgstr "Legt das rechte Ende der Tangente fest" - -#, fuzzy -#~ msgid "Adjust the point of attachment of the tangent" -#~ msgstr "Zwischenfarbe des Farbverlaufs bearbeiten" - -#~ msgid "Adjust the \"left\" end of the tangent" -#~ msgstr "Einstellen des \"linken\" Endes der Tangente" - -#~ msgid "Adjust the \"right\" end of the tangent" -#~ msgstr "Einstellen des \"rechten\" Endes der Tangente" - -#, fuzzy -#~ msgid "Stack step:" -#~ msgstr "Scans stapeln" - -#~ msgid "Point param:" -#~ msgstr "Punktparameter" - -#~ msgid "Path param:" -#~ msgstr "Pfadparameter" - -#, fuzzy -#~ msgid "Label:" -#~ msgstr "_Bezeichner:" - -#~ msgid "Text label attached to the path" -#~ msgstr "Textmarkierung, die dem Pfad zugewiesen ist" - -#~ msgid "Rotate 90° CCW" -#~ msgstr "Um 90° entgegen Uhrzeigersinn rotieren" - -#~ msgid "Rotate 90° CW" -#~ msgstr "Um 90° im Uhrzeigersinn rotieren" - -#, fuzzy -#~ msgid "Select groups to convert to symbols." -#~ msgstr "Wählen Sie eine Gruppe, um zum Symbol zu konvertieren." - -#, fuzzy -#~ msgid "No groups converted to symbols." -#~ msgstr "Wählen Sie eine Gruppe, um zum Symbol zu konvertieren." - -#~ msgid "Select only one symbol to convert to group." -#~ msgstr "" -#~ "Wählen Sie nur einSymbol aus, um es in eine Gruppe zu konvertieren." - -# !!! -#~ msgid "Color" -#~ msgstr "Farbe" - -# !!! -#~ msgid "Border" -#~ msgstr "Rand" - -#~ msgid "2x2" -#~ msgstr "2Ă—2" - -#~ msgid "4x4" -#~ msgstr "4Ă—4" - -#~ msgid "8x8" -#~ msgstr "8Ă—8" - -#~ msgid "16x16" -#~ msgstr "16Ă—16" - -#~ msgid "Oversample bitmaps:" -#~ msgstr "Bitmap Ăśberabtastung:" - -#~ msgid "Always embed" -#~ msgstr "Immer einbetten" - -#~ msgid "Always link" -#~ msgstr "Immer verlinken" - -#~ msgid "Ask" -#~ msgstr "Fragen" - -#~ msgid "Bitmap import:" -#~ msgstr "Bitmap-Import:" - -#~ msgid "Bitmap import quality:" -#~ msgstr "Bitmap-Import-Qualität:" - -#~ msgid "Align:" -#~ msgstr "Ausrichten:" - -#~ msgctxt "Rows and columns dialog" -#~ msgid "_Arrange" -#~ msgstr "Anordnen" - -#~ msgid "_Export Bitmap..." -#~ msgstr "Bitmap _exportieren…" - -#~ msgid "Export this document or a selection as a bitmap image" -#~ msgstr "Das Dokument oder eine Auswahl als Bitmap-Bild exportieren" - -#~ msgid "Ro_ws and Columns..." -#~ msgstr "Reihen und Spalten..." - -#~ msgid "Arrange selected objects in a table" -#~ msgstr "Ausgewählte Objekte im Raster anordnen" - -#~ msgid "Rotate _90° CW" -#~ msgstr "Um 90° im Uhr_zeigersinn rotieren" - -#~ msgid "Rotate 9_0° CCW" -#~ msgstr "Um 90° entgegen Uhrzeigersinn _rotieren" - -#~ msgid "_Grid" -#~ msgstr "_Gitter" - -#~ msgid "Show or hide the grid" -#~ msgstr "Gitter anzeigen oder ausblenden" - -#~ msgid "" -#~ "This extension exports the document to Gimp XCF format according to the " -#~ "following options:\n" -#~ " * Save Guides: convert all guides to Gimp guides.\n" -#~ " * Save Grid: convert the first rectangular grid to a Gimp grid (note " -#~ "that the default Inkscape grid is very narrow when shown in Gimp).\n" -#~ " * Save Background: add the document background to each converted " -#~ "layer.\n" -#~ "\n" -#~ "Each first level layer is converted to a Gimp layer. Sublayers are " -#~ "concatenated and converted with their first level parent layer into a " -#~ "single Gimp layer." -#~ msgstr "" -#~ "Diese Erweiterung exportiert das Dokument in das Gimp XCF-Format nach den " -#~ "folgenden Optionen:\n" -#~ "     * FĂĽhrungslinien speichern: Konvertiert alle FĂĽhrungslinien zu " -#~ "GimpFĂĽhrungslinien.\n" -#~ "     * Gitter speichern: Wandeln das erste rechteckige Gitter in ein Gimp-" -#~ "Gitter um (beachten Sie, dass das Standard-Inkscape Gitter sehr eng ist, " -#~ "wenn es in Gimp gezeigt wird).\n" -#~ "     * Hintergrund speichern: FĂĽgt den Dokument-Hintergrund in jede " -#~ "konvertierte Ebene ein.\n" -#~ "\n" -#~ "Jede erste Ebene wird in eine Gimp-Ebene umgewandelt. Unterebenen werden " -#~ "mit ihrer ersten ĂĽbergeordnete Ebene in einer einzigen Gimp-Ebene " -#~ "verkettet und konvertiert." - -#, fuzzy -#~ msgid "Guides preset" -#~ msgstr "FĂĽhrungslinien erstellen" - -#, fuzzy -#~ msgid "Margins preset" -#~ msgstr "RandfĂĽhrungslinie" - -#, fuzzy -#~ msgid "Header margin" -#~ msgstr "Seitenrand" - -#, fuzzy -#~ msgid "Footer margin" -#~ msgstr "Oberer Rand" - -#~ msgid "Resolution X (dpi)" -#~ msgstr "Auflösung X (dpi):" - -#~ msgid "Resolution Y (dpi)" -#~ msgstr "Auflösung Y (dpi):" - -#, fuzzy -#~ msgid "Import HP Graphics Language file" -#~ msgstr "Export in eine HP Graphic Language Datei" - -#, fuzzy -#~ msgid "" -#~ "Please make sure that all objects you want to save are converted to " -#~ "paths. The drawing will be automatically aligned to the zero point. " -#~ "Please use the plotter extension (Extensions menu) to plot directly on a " -#~ "plotter." -#~ msgstr "" -#~ "Bitte achten Sie darauf, dass alle Objekte, die Sie plotten möchten in " -#~ "Pfade konvertiert wurden. Der Plot wird automatisch auf den Nullpunkt " -#~ "ausgerichtet." - -#~ msgid "Plotter Settings" -#~ msgstr "Plottereinstellungen" - -#~ msgid "Pen number" -#~ msgstr "Stiftnummer:" - -#~ msgid "" -#~ "The number of the pen (tool) to use, on most plotters 1 (Standard: '1')" -#~ msgstr "" -#~ "Die Nummer des Stiftes (Werkzeug) zum Verwenden, ist auf den meisten " -#~ "Plottern 1 (Standard: '1')" - -#, fuzzy -#~ msgid "" -#~ "The amount of steps the cutter moves if it moves for 1 inch on the X axis " -#~ "- Try different settings to find the one that fits your plotter (Default: " -#~ "1016.0)" -#~ msgstr "" -#~ "Die Anzahl der Schritte, die sich der Schneider bewegt, wenn er sich, um " -#~ "1 Zoll bewegt, erhält diesen Wert aus Ihrem Plotter manuell oder lernt es " -#~ "durch Versuch und Fehler (Standard: '1016')" - -#, fuzzy -#~ msgid "" -#~ "The amount of steps the cutter moves if it moves for 1 inch on the Y axis " -#~ "- Try different settings to find the one that fits your plotter (Default: " -#~ "1016.0)" -#~ msgstr "" -#~ "Die Anzahl der Schritte, die sich der Schneider bewegt, wenn er sich, um " -#~ "1 Zoll bewegt, erhält diesen Wert aus Ihrem Plotter manuell oder lernt es " -#~ "durch Versuch und Fehler (Standard: '1016')" - -#, fuzzy -#~ msgid "Mirror X-axis" -#~ msgstr "Y-Spiegelachse" - -#~ msgid "Mirror Y-axis" -#~ msgstr "Y-Spiegelachse" - -#~ msgid "Rotation (Clockwise)" -#~ msgstr "Drehung im Uhrzeigersinn" - -#~ msgid "Use overcut" -#~ msgstr "Ăśberschnitt nutzen" - -#, fuzzy -#~ msgid "" -#~ "Check this to use the overcut, if not checked the 'Overcut' parameter is " -#~ "unused (Default: Checked)" -#~ msgstr "" -#~ "PrĂĽfen, ob der Ăśberschnitt verwendet werden soll, wenn nicht, wird der " -#~ "'Ăśberschnitt'-Parameter nicht verwendet (Standard: 'Ein')" - -#~ msgid "Overcut (mm)" -#~ msgstr "Ăśberschnitt (mm):" - -#, fuzzy -#~ msgid "" -#~ "The distance in mm that will be cut over the starting point of the path " -#~ "to prevent open paths (Default: 1.00)" -#~ msgstr "" -#~ "Der Abstand in mm, mit dem ĂĽber den Ausgangspunkt des Pfades geschnitten " -#~ "wird, um offene Pfade zu schĂĽtzen (Standard: '1.00')" - -#, fuzzy -#~ msgid "" -#~ "Check this to use the tool offset correction, if not checked the 'Tool " -#~ "offset' and 'Precut' parameters are unused (Default: Checked)" -#~ msgstr "" -#~ "PrĂĽfen, ob der Werkzeugversatz behoben werden sollte. Wenn nicht, sind " -#~ "'Werkzeugversatz' und 'Return-Faktor' -Parameter unbenutzt (Standard: " -#~ "'Ein')" - -#, fuzzy -#~ msgid "Tool offset (mm)" -#~ msgstr "Werkzeugversatz (mm):" - -#, fuzzy -#~ msgid "The offset from the tool tip to the tool axis in mm (Default: 0.25)" -#~ msgstr "" -#~ "Der Versatz zwischen Werkzeugspitze und -achse in mm (Standard: '0.25')" - -#, fuzzy -#~ msgid "Curve flatness" -#~ msgstr "Kurven-Ebenheit:" - -#~ msgid "X offset (mm)" -#~ msgstr "X Versatz (mm:" - -#, fuzzy -#~ msgid "" -#~ "The offset to shift your plot away from the zero point in mm (Default: " -#~ "'0.00')" -#~ msgstr "" -#~ "Der Versatz, um Ihren Plot vom Null-Punkt weg zu verschieben in mm " -#~ "(Standard: '0.00')" - -#~ msgid "Y offset (mm)" -#~ msgstr "Y Versatz (mm):" - -#~ msgid "Export to an HP Graphics Language file" -#~ msgstr "Export in eine HP Graphic Language Datei" - -#~ msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49" -#~ msgstr "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.49" - -#~ msgid "" -#~ "This effect measures the length, or area, of the selected paths and adds " -#~ "it as a text object with the selected units.\n" -#~ " \n" -#~ " * Display format can be either Text-On-Path, or stand-alone text at a " -#~ "specified angle.\n" -#~ " * The number of significant digits can be controlled by the Precision " -#~ "field.\n" -#~ " * The Offset field controls the distance from the text to the path.\n" -#~ " * The Scale factor can be used to make measurements in scaled drawings. " -#~ "For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " -#~ "must be set to 250.\n" -#~ " * When calculating area, the result should be precise for polygons and " -#~ "Bezier curves. If a circle is used, the area may be too high by as much " -#~ "as 0.03%." -#~ msgstr "" -#~ "Dieser Effekt misst die Länge oder den Bereich eines Pfades in den " -#~ "gewählten Einheiten und fĂĽgt diese als Text-auf-Pfad-Objekt an.\n" -#~ "\n" -#~ "Die Anzahl der signifikanten Stellen wird durch \"Präzision\" gewählt.\n" -#~ "Das Feld \"Versatz\" kontrolliert die Entfernung Text-Pfad. \n" -#~ "Der \"MaĂźstab\" kann zur Messung skalierter Pfade verwendet werden (M = " -#~ "250 -> 1cm entspricht 2,5m).\n" -#~ "Wenn der Bereich berechnet wird, sollte das Ergebnis fĂĽr Polygone und " -#~ "Bezier-Kurven präzise sein. Wird ein kreis benutzt, kann die Fläche zu " -#~ "groĂź sein (0.03%)." - -#~ msgid "" -#~ "Please make sure that all objects you want to plot are converted to " -#~ "paths. The plot will automatically be aligned to the zero point." -#~ msgstr "" -#~ "Bitte achten Sie darauf, dass alle Objekte, die Sie plotten möchten in " -#~ "Pfade konvertiert wurden. Der Plot wird automatisch auf den Nullpunkt " -#~ "ausgerichtet." - -#~ msgid "Connection" -#~ msgstr "Verbindungen" - -#, fuzzy -#~ msgid "Serial Port" -#~ msgstr "Serieller Port:" - -#, fuzzy -#~ msgid "Serial Baud rate" -#~ msgstr "Serieller Port:" - -#, fuzzy -#~ msgid "Flow control" -#~ msgstr "Abspielkontrolle" - -#, fuzzy -#~ msgid "" -#~ "The offset to move your plot away from the zero point in mm (Default: " -#~ "'0.00')" -#~ msgstr "" -#~ "Der Versatz, um Ihren Plot vom Null-Punkt weg zu verschieben in mm " -#~ "(Standard: '0.00')" - -#~ msgid "Plotter" -#~ msgstr "Plotter" - -#~ msgid "Flow text" -#~ msgstr "FlieĂźtext" - #, fuzzy #~ msgid "(%d characters%s)" #~ msgstr "Unicode-Zeichen:" @@ -37856,6 +35367,15 @@ msgstr "XAML einlesen" #~ msgid "Preset:" #~ msgstr "Voreinstellung" +#~ msgid "Custom..." +#~ msgstr "Benutzerdefiniert..." + +#~ msgid "Golden ratio" +#~ msgstr "Goldener Schnitt" + +#~ msgid "Rule-of-third" +#~ msgstr "Drittel-Regel" + #~ msgid "Vertical guide each:" #~ msgstr "Vertikale FĂĽhrungslinie alle" @@ -40029,6 +37549,9 @@ msgstr "XAML einlesen" #~ msgid "_Invite user" #~ msgstr "Nutzer einladen" +#~ msgid "_Cancel" +#~ msgstr "Abbrechen" + #~ msgid "Buddy List" #~ msgstr "Freundesliste" @@ -40235,6 +37758,9 @@ msgstr "XAML einlesen" #~ msgid "P_age size:" #~ msgstr "_Seitengröße:" +#~ msgid "Page orientation:" +#~ msgstr "Ausrichtung der Zeichenfläche:" + #~ msgid "_Instant Messaging..." #~ msgstr "_Instant Messaging…" -- cgit v1.2.3 From d59ab0cc036239f5e2f6040b2f439ba7b55af4c3 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Fri, 8 Aug 2014 09:47:46 -0400 Subject: Ponyscape feature: finish pen drawing on context switch (bzr r13090.1.101) --- src/ui/tools/pen-tool.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ui/tools/pen-tool.cpp b/src/ui/tools/pen-tool.cpp index 9a73d497f..318591df5 100644 --- a/src/ui/tools/pen-tool.cpp +++ b/src/ui/tools/pen-tool.cpp @@ -239,7 +239,9 @@ void PenTool::finish() { sp_event_context_discard_delayed_snap_event(this); if (this->npoints != 0) { - this->_cancel(); + // switching context - finish path + this->ea = NULL; // unset end anchor if set (otherwise crashes) + this->_finish(false); } FreehandBase::finish(); -- cgit v1.2.3 From 527aea8e906f12c1b5e6072321fa48f09d60bab5 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Thu, 14 Aug 2014 18:10:29 -0400 Subject: Clone Original -> Fill Between Many (bzr r13090.1.104) --- src/selection-chemistry.cpp | 85 ++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 1d7d76609..33279c0e7 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -2793,54 +2793,53 @@ void sp_selection_clone_original_path_lpe(SPDesktop *desktop) if (desktop == NULL) { return; } - - Inkscape::Selection *selection = sp_desktop_selection(desktop); - SPItem *item = selection->singleItem(); - if (g_slist_length(const_cast(selection->itemList())) != 1 || !item) { - desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one path to clone.")); - return; - } - if ( !(SP_IS_SHAPE(item) || SP_IS_TEXT(item)) ) { - desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one path to clone.")); - return; - } - - Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); - Inkscape::XML::Node *parent = item->getRepr()->parent(); - - // create the LPE - Inkscape::XML::Node *lpe_repr = xml_doc->createElement("inkscape:path-effect"); - { - lpe_repr->setAttribute("effect", "clone_original"); - gchar *href = g_strdup_printf("#%s", item->getRepr()->attribute("id")); - lpe_repr->setAttribute("linkedpath", href); - g_free(href); - desktop->doc()->getDefs()->getRepr()->addChild(lpe_repr, NULL); // adds to and assigns the 'id' attribute - } - const gchar * lpe_id = lpe_repr->attribute("id"); - Inkscape::GC::release(lpe_repr); - - // create the new path - Inkscape::XML::Node *clone = xml_doc->createElement("svg:path"); - { - clone->setAttribute("d", "M 0 0", false); - // add the new clone to the top of the original's parent - parent->appendChild(clone); - SPObject *clone_obj = desktop->doc()->getObjectById(clone->attribute("id")); - if (SP_IS_LPE_ITEM(clone_obj)) { - gchar *href = g_strdup_printf("#%s", lpe_id); - SP_LPE_ITEM(clone_obj)->addPathEffect( href, false ); - g_free(href); + + Inkscape::SVGOStringStream os; + SPObject * firstItem = NULL; + for (const GSList * item = desktop->selection->itemList(); item != NULL; item = item->next) { + if (SP_IS_SHAPE(item->data) || SP_IS_TEXT(item->data)) { + if (firstItem) { + os << "|"; + } else { + firstItem = SP_ITEM(item->data); + } + os << "#" << SP_ITEM(item->data)->getId() << ",0"; } } + if (firstItem) { + Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); + SPObject *parent = firstItem->parent; - DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_EDIT_CLONE_ORIGINAL_PATH_LPE, - _("Clone original path")); + // create the LPE + Inkscape::XML::Node *lpe_repr = xml_doc->createElement("inkscape:path-effect"); + { + lpe_repr->setAttribute("effect", "fill_between_many"); + lpe_repr->setAttribute("linkedpaths", os.str().c_str()); + desktop->doc()->getDefs()->getRepr()->addChild(lpe_repr, NULL); // adds to and assigns the 'id' attribute + } + const gchar * lpe_id = lpe_repr->attribute("id"); + Inkscape::GC::release(lpe_repr); - // select the new object: - selection->set(clone); + // create the new path + Inkscape::XML::Node *clone = xml_doc->createElement("svg:path"); + { + clone->setAttribute("d", "M 0 0", false); + // add the new clone to the top of the original's parent + parent->appendChildRepr(clone); + SPObject *clone_obj = desktop->doc()->getObjectById(clone->attribute("id")); + if (SP_IS_LPE_ITEM(clone_obj)) { + gchar *href = g_strdup_printf("#%s", lpe_id); + //sp_lpe_item_add_path_effect( SP_LPE_ITEM(clone_obj), href, false ); + SP_LPE_ITEM(clone_obj)->addPathEffect(href, false); + g_free(href); + } + } - Inkscape::GC::release(clone); + DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_EDIT_CLONE_ORIGINAL_PATH_LPE, + _("Fill between strokes")); + } else { + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select path(s) to fill.")); + } } void sp_selection_to_marker(SPDesktop *desktop, bool apply) -- cgit v1.2.3 From e469f1f4eb04e7cc1401c6679a41c217287ae888 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Sat, 23 Aug 2014 15:17:43 +0200 Subject: fix Windows 64-bit build (bzr r13531) --- src/ui/dialog/print.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index ed39ebb32..a015d28f9 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -14,13 +14,13 @@ # include #endif +#include + #ifdef WIN32 #include #include #endif -#include - #include "preferences.h" #include "print.h" -- cgit v1.2.3 From 14d2f47bd95482e500524dccc1b40445f7f44701 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Tue, 26 Aug 2014 09:43:41 +0200 Subject: UI. Fix for Bug #340723 "Interface inconsistency of tooltips". Translations. Translations template update. Fixed bugs: - https://launchpad.net/bugs/340723 (bzr r13532) --- po/inkscape.pot | 188 +++++++++++++++--------------- src/extension/internal/bitmap/crop.cpp | 2 +- src/extension/internal/bitmap/opacity.cpp | 2 +- 3 files changed, 96 insertions(+), 96 deletions(-) diff --git a/po/inkscape.pot b/po/inkscape.pot index bc0c010ea..698639399 100644 --- a/po/inkscape.pot +++ b/po/inkscape.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2014-08-15 08:52+0200\n" +"POT-Creation-Date: 2014-08-26 09:42+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -6096,7 +6096,7 @@ msgid "Right (px):" msgstr "" #: ../src/extension/internal/bitmap/crop.cpp:77 -msgid "Crop selected bitmap(s)." +msgid "Crop selected bitmap(s)" msgstr "" #: ../src/extension/internal/bitmap/cycleColormap.cpp:37 @@ -6293,7 +6293,7 @@ msgid "Opacity:" msgstr "" #: ../src/extension/internal/bitmap/opacity.cpp:46 -msgid "Modify opacity channel(s) of selected bitmap(s)." +msgid "Modify opacity channel(s) of selected bitmap(s)" msgstr "" #: ../src/extension/internal/bitmap/raise.cpp:40 @@ -8950,120 +8950,120 @@ msgstr "" msgid "Format autodetect failed. The file is being opened as SVG." msgstr "" -#: ../src/file.cpp:181 +#: ../src/file.cpp:183 msgid "default.svg" msgstr "" -#: ../src/file.cpp:320 +#: ../src/file.cpp:322 msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:331 ../src/file.cpp:1247 +#: ../src/file.cpp:333 ../src/file.cpp:1249 #, c-format msgid "Failed to load the requested file %s" msgstr "" -#: ../src/file.cpp:357 +#: ../src/file.cpp:359 msgid "Document not saved yet. Cannot revert." msgstr "" -#: ../src/file.cpp:363 +#: ../src/file.cpp:365 msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" -#: ../src/file.cpp:389 +#: ../src/file.cpp:391 msgid "Document reverted." msgstr "" -#: ../src/file.cpp:391 +#: ../src/file.cpp:393 msgid "Document not reverted." msgstr "" -#: ../src/file.cpp:541 +#: ../src/file.cpp:543 msgid "Select file to open" msgstr "" -#: ../src/file.cpp:623 +#: ../src/file.cpp:625 msgid "Clean up document" msgstr "" -#: ../src/file.cpp:630 +#: ../src/file.cpp:632 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "" msgstr[1] "" -#: ../src/file.cpp:635 +#: ../src/file.cpp:637 msgid "No unused definitions in <defs>." msgstr "" -#: ../src/file.cpp:667 +#: ../src/file.cpp:669 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " "caused by an unknown filename extension." msgstr "" -#: ../src/file.cpp:668 ../src/file.cpp:676 ../src/file.cpp:684 -#: ../src/file.cpp:690 ../src/file.cpp:695 +#: ../src/file.cpp:670 ../src/file.cpp:678 ../src/file.cpp:686 +#: ../src/file.cpp:692 ../src/file.cpp:697 msgid "Document not saved." msgstr "" -#: ../src/file.cpp:675 +#: ../src/file.cpp:677 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." msgstr "" -#: ../src/file.cpp:683 +#: ../src/file.cpp:685 #, c-format msgid "File %s could not be saved." msgstr "" -#: ../src/file.cpp:713 ../src/file.cpp:715 +#: ../src/file.cpp:715 ../src/file.cpp:717 msgid "Document saved." msgstr "" #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:858 ../src/file.cpp:1406 +#: ../src/file.cpp:860 ../src/file.cpp:1408 msgid "drawing" msgstr "" -#: ../src/file.cpp:863 +#: ../src/file.cpp:865 msgid "drawing-%1" msgstr "" -#: ../src/file.cpp:880 +#: ../src/file.cpp:882 msgid "Select file to save a copy to" msgstr "" -#: ../src/file.cpp:882 +#: ../src/file.cpp:884 msgid "Select file to save to" msgstr "" -#: ../src/file.cpp:987 ../src/file.cpp:989 +#: ../src/file.cpp:989 ../src/file.cpp:991 msgid "No changes need to be saved." msgstr "" -#: ../src/file.cpp:1008 +#: ../src/file.cpp:1010 msgid "Saving document..." msgstr "" -#: ../src/file.cpp:1244 ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1442 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "" -#: ../src/file.cpp:1294 +#: ../src/file.cpp:1296 msgid "Select file to import" msgstr "" -#: ../src/file.cpp:1427 +#: ../src/file.cpp:1429 msgid "Select file to export to" msgstr "" -#: ../src/file.cpp:1680 +#: ../src/file.cpp:1682 msgid "Import Clip Art" msgstr "" @@ -10199,7 +10199,7 @@ msgstr "" msgid "Power stroke" msgstr "" -#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2835 +#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2837 msgid "Clone original path" msgstr "" @@ -11221,7 +11221,7 @@ msgstr "" msgid "Select original" msgstr "" -#: ../src/live_effects/parameter/parameter.cpp:141 +#: ../src/live_effects/parameter/parameter.cpp:147 msgid "Change scalar parameter" msgstr "" @@ -12245,236 +12245,236 @@ msgstr "" msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1647 +#: ../src/selection-chemistry.cpp:1649 msgid "Remove transform" msgstr "" -#: ../src/selection-chemistry.cpp:1750 +#: ../src/selection-chemistry.cpp:1752 msgid "Rotate 90° CCW" msgstr "" -#: ../src/selection-chemistry.cpp:1750 +#: ../src/selection-chemistry.cpp:1752 msgid "Rotate 90° CW" msgstr "" -#: ../src/selection-chemistry.cpp:1771 ../src/seltrans.cpp:483 +#: ../src/selection-chemistry.cpp:1773 ../src/seltrans.cpp:483 #: ../src/ui/dialog/transformation.cpp:894 msgid "Rotate" msgstr "" -#: ../src/selection-chemistry.cpp:2142 +#: ../src/selection-chemistry.cpp:2144 msgid "Rotate by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2172 ../src/seltrans.cpp:480 +#: ../src/selection-chemistry.cpp:2174 ../src/seltrans.cpp:480 #: ../src/ui/dialog/transformation.cpp:869 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "" -#: ../src/selection-chemistry.cpp:2197 +#: ../src/selection-chemistry.cpp:2199 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2212 +#: ../src/selection-chemistry.cpp:2214 msgid "Move vertically" msgstr "" -#: ../src/selection-chemistry.cpp:2215 +#: ../src/selection-chemistry.cpp:2217 msgid "Move horizontally" msgstr "" -#: ../src/selection-chemistry.cpp:2218 ../src/selection-chemistry.cpp:2244 +#: ../src/selection-chemistry.cpp:2220 ../src/selection-chemistry.cpp:2246 #: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:807 msgid "Move" msgstr "" -#: ../src/selection-chemistry.cpp:2238 +#: ../src/selection-chemistry.cpp:2240 msgid "Move vertically by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2241 +#: ../src/selection-chemistry.cpp:2243 msgid "Move horizontally by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2373 +#: ../src/selection-chemistry.cpp:2375 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2542 ../src/ui/dialog/clonetiler.cpp:2218 +#: ../src/selection-chemistry.cpp:2544 ../src/ui/dialog/clonetiler.cpp:2218 msgid "Select an object to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2578 +#: ../src/selection-chemistry.cpp:2580 msgctxt "Action" msgid "Clone" msgstr "" -#: ../src/selection-chemistry.cpp:2594 +#: ../src/selection-chemistry.cpp:2596 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2601 +#: ../src/selection-chemistry.cpp:2603 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2625 +#: ../src/selection-chemistry.cpp:2627 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2628 +#: ../src/selection-chemistry.cpp:2630 msgid "Relink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2642 +#: ../src/selection-chemistry.cpp:2644 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2696 +#: ../src/selection-chemistry.cpp:2698 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2700 +#: ../src/selection-chemistry.cpp:2702 msgid "Unlink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2713 +#: ../src/selection-chemistry.cpp:2715 msgid "" "Select a clone to go to its original. Select a linked offset " "to go to its source. Select a text on path to go to the path. Select " "a flowed text to go to its frame." msgstr "" -#: ../src/selection-chemistry.cpp:2746 +#: ../src/selection-chemistry.cpp:2748 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2752 +#: ../src/selection-chemistry.cpp:2754 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -#: ../src/selection-chemistry.cpp:2797 +#: ../src/selection-chemistry.cpp:2799 msgid "Select one path to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2801 +#: ../src/selection-chemistry.cpp:2803 msgid "Select one path to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2857 +#: ../src/selection-chemistry.cpp:2859 msgid "Select object(s) to convert to marker." msgstr "" -#: ../src/selection-chemistry.cpp:2924 +#: ../src/selection-chemistry.cpp:2926 msgid "Objects to marker" msgstr "" -#: ../src/selection-chemistry.cpp:2948 +#: ../src/selection-chemistry.cpp:2950 msgid "Select object(s) to convert to guides." msgstr "" -#: ../src/selection-chemistry.cpp:2971 +#: ../src/selection-chemistry.cpp:2973 msgid "Objects to guides" msgstr "" -#: ../src/selection-chemistry.cpp:3007 +#: ../src/selection-chemistry.cpp:3009 msgid "Select objects to convert to symbol." msgstr "" -#: ../src/selection-chemistry.cpp:3113 +#: ../src/selection-chemistry.cpp:3115 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3132 +#: ../src/selection-chemistry.cpp:3134 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3141 +#: ../src/selection-chemistry.cpp:3143 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3199 +#: ../src/selection-chemistry.cpp:3201 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3217 +#: ../src/selection-chemistry.cpp:3219 msgid "Select object(s) to convert to pattern." msgstr "" -#: ../src/selection-chemistry.cpp:3307 +#: ../src/selection-chemistry.cpp:3309 msgid "Objects to pattern" msgstr "" -#: ../src/selection-chemistry.cpp:3323 +#: ../src/selection-chemistry.cpp:3325 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3378 +#: ../src/selection-chemistry.cpp:3380 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3381 +#: ../src/selection-chemistry.cpp:3383 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3472 +#: ../src/selection-chemistry.cpp:3474 msgid "Select object(s) to make a bitmap copy." msgstr "" -#: ../src/selection-chemistry.cpp:3476 +#: ../src/selection-chemistry.cpp:3478 msgid "Rendering bitmap..." msgstr "" -#: ../src/selection-chemistry.cpp:3655 +#: ../src/selection-chemistry.cpp:3657 msgid "Create bitmap" msgstr "" -#: ../src/selection-chemistry.cpp:3687 +#: ../src/selection-chemistry.cpp:3689 msgid "Select object(s) to create clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:3690 +#: ../src/selection-chemistry.cpp:3692 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:3873 +#: ../src/selection-chemistry.cpp:3875 msgid "Set clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:3875 +#: ../src/selection-chemistry.cpp:3877 msgid "Set mask" msgstr "" -#: ../src/selection-chemistry.cpp:3890 +#: ../src/selection-chemistry.cpp:3892 msgid "Select object(s) to remove clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:4001 +#: ../src/selection-chemistry.cpp:4003 msgid "Release clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4003 +#: ../src/selection-chemistry.cpp:4005 msgid "Release mask" msgstr "" -#: ../src/selection-chemistry.cpp:4022 +#: ../src/selection-chemistry.cpp:4024 msgid "Select object(s) to fit canvas to." msgstr "" #. Fit Page -#: ../src/selection-chemistry.cpp:4042 ../src/verbs.cpp:2905 +#: ../src/selection-chemistry.cpp:4044 ../src/verbs.cpp:2905 msgid "Fit Page to Selection" msgstr "" -#: ../src/selection-chemistry.cpp:4071 ../src/verbs.cpp:2907 +#: ../src/selection-chemistry.cpp:4073 ../src/verbs.cpp:2907 msgid "Fit Page to Drawing" msgstr "" -#: ../src/selection-chemistry.cpp:4092 ../src/verbs.cpp:2909 +#: ../src/selection-chemistry.cpp:4094 ../src/verbs.cpp:2909 msgid "Fit Page to Selection or Drawing" msgstr "" @@ -12622,24 +12622,24 @@ msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1192 +#: ../src/seltrans.cpp:1199 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1267 +#: ../src/seltrans.cpp:1274 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" msgstr "" -#: ../src/seltrans.cpp:1304 +#: ../src/seltrans.cpp:1311 #, c-format msgid "Move center to %s, %s" msgstr "" -#: ../src/seltrans.cpp:1458 +#: ../src/seltrans.cpp:1465 #, c-format msgid "" "Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " @@ -26320,16 +26320,16 @@ msgid "Font family" msgstr "" #. Style frame -#: ../src/widgets/font-selector.cpp:192 +#: ../src/widgets/font-selector.cpp:193 msgctxt "Font selector" msgid "Style" msgstr "" -#: ../src/widgets/font-selector.cpp:224 +#: ../src/widgets/font-selector.cpp:225 msgid "Face" msgstr "" -#: ../src/widgets/font-selector.cpp:253 ../share/extensions/dots.inx.h:3 +#: ../src/widgets/font-selector.cpp:254 ../share/extensions/dots.inx.h:3 msgid "Font size:" msgstr "" diff --git a/src/extension/internal/bitmap/crop.cpp b/src/extension/internal/bitmap/crop.cpp index 0e633afd6..02d92668b 100644 --- a/src/extension/internal/bitmap/crop.cpp +++ b/src/extension/internal/bitmap/crop.cpp @@ -74,7 +74,7 @@ Crop::init(void) "\n" "\n" "\n" - "" N_("Crop selected bitmap(s).") "\n" + "" N_("Crop selected bitmap(s)") "\n" "\n" "\n", new Crop()); } diff --git a/src/extension/internal/bitmap/opacity.cpp b/src/extension/internal/bitmap/opacity.cpp index 742cb7019..f9b4bbc27 100644 --- a/src/extension/internal/bitmap/opacity.cpp +++ b/src/extension/internal/bitmap/opacity.cpp @@ -43,7 +43,7 @@ Opacity::init(void) "\n" "\n" "\n" - "" N_("Modify opacity channel(s) of selected bitmap(s).") "\n" + "" N_("Modify opacity channel(s) of selected bitmap(s)") "\n" "\n" "\n", new Opacity()); } -- cgit v1.2.3 From 2d1275f0337e3fe49ea493f58135c81d0e3af36d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 26 Aug 2014 11:55:28 +0100 Subject: Standardise InkscapeApplication GObject implementation (namespace not supported properly) (bzr r13341.1.179) --- src/desktop.h | 5 +- src/dialogs/dialog-events.cpp | 2 +- src/dialogs/dialog-events.h | 6 +- src/document-undo.cpp | 2 +- src/document-undo.h | 5 +- src/inkscape.cpp | 124 ++++++++++------------------ src/inkscape.h | 15 ++-- src/inkview.cpp | 6 +- src/ui/dialog/align-and-distribute.cpp | 4 +- src/ui/dialog/clonetiler.cpp | 4 +- src/ui/dialog/clonetiler.h | 4 +- src/ui/dialog/desktop-tracker.cpp | 2 +- src/ui/dialog/desktop-tracker.h | 5 +- src/ui/dialog/dialog-manager.cpp | 4 +- src/ui/dialog/dialog.cpp | 2 +- src/ui/dialog/dialog.h | 4 +- src/ui/dialog/document-metadata.cpp | 4 +- src/ui/dialog/document-metadata.h | 4 +- src/ui/dialog/document-properties.cpp | 4 +- src/ui/dialog/document-properties.h | 4 +- src/ui/dialog/fill-and-stroke.h | 2 +- src/ui/dialog/grid-arrange-tab.cpp | 2 +- src/ui/dialog/panel-dialog.h | 12 +-- src/ui/dialog/transformation.cpp | 4 +- src/ui/widget/object-composite-settings.cpp | 4 +- src/ui/widget/object-composite-settings.h | 6 +- src/ui/widget/panel.cpp | 4 +- src/ui/widget/panel.h | 12 +-- src/widgets/sp-widget.cpp | 6 +- src/widgets/sp-widget.h | 8 +- 30 files changed, 116 insertions(+), 154 deletions(-) diff --git a/src/desktop.h b/src/desktop.h index ec240dd40..509f8a396 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -72,8 +72,9 @@ typedef struct _GdkEventAny GdkEventAny; struct _GdkEventWindowState; typedef struct _GdkEventWindowState GdkEventWindowState; +struct InkscapeApplication; + namespace Inkscape { - struct Application; class LayerModel; class MessageContext; class Selection; @@ -423,7 +424,7 @@ public: private: Inkscape::UI::View::EditWidgetInterface *_widget; - Inkscape::Application *_inkscape; + InkscapeApplication *_inkscape; Inkscape::MessageContext *_guides_message_context; bool _active; Geom::Affine _w2d; diff --git a/src/dialogs/dialog-events.cpp b/src/dialogs/dialog-events.cpp index a12e3eafc..cf3497c9b 100644 --- a/src/dialogs/dialog-events.cpp +++ b/src/dialogs/dialog-events.cpp @@ -187,7 +187,7 @@ void on_transientize (SPDesktop *desktop, win_data *wd ) } void -sp_transientize_callback ( Inkscape::Application * /*inkscape*/, +sp_transientize_callback ( InkscapeApplication * /*inkscape*/, SPDesktop *desktop, win_data *wd ) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); diff --git a/src/dialogs/dialog-events.h b/src/dialogs/dialog-events.h index 623058282..b33eb3f38 100644 --- a/src/dialogs/dialog-events.h +++ b/src/dialogs/dialog-events.h @@ -29,9 +29,7 @@ class Entry; class SPDesktop; -namespace Inkscape { -struct Application; -} // namespace Inkscape +struct InkscapeApplication; typedef struct { GtkWidget *win; @@ -55,7 +53,7 @@ void sp_transientize ( GtkWidget *win ); void on_transientize ( SPDesktop *desktop, win_data *wd ); -void sp_transientize_callback ( Inkscape::Application *inkscape, +void sp_transientize_callback ( InkscapeApplication *inkscape, SPDesktop *desktop, win_data *wd ); diff --git a/src/document-undo.cpp b/src/document-undo.cpp index 53e701648..478266b7b 100644 --- a/src/document-undo.cpp +++ b/src/document-undo.cpp @@ -112,7 +112,7 @@ void Inkscape::DocumentUndo::done(SPDocument *doc, const unsigned int event_type maybeDone(doc, NULL, event_type, event_description); } -void Inkscape::DocumentUndo::resetKey( Inkscape::Application * /*inkscape*/, SPDesktop * /*desktop*/, GObject *base ) +void Inkscape::DocumentUndo::resetKey( InkscapeApplication * /*inkscape*/, SPDesktop * /*desktop*/, GObject *base ) { SPDocument *doc = reinterpret_cast(base); doc->actionkey.clear(); diff --git a/src/document-undo.h b/src/document-undo.h index 38e575a34..17b3de252 100644 --- a/src/document-undo.h +++ b/src/document-undo.h @@ -9,11 +9,10 @@ typedef struct _GObject GObject; class SPDesktop; class SPDocument; +struct InkscapeApplication; namespace Inkscape { -struct Application; - class DocumentUndo { public: @@ -42,7 +41,7 @@ public: static void maybeDone(SPDocument *document, const gchar *keyconst, unsigned int event_type, Glib::ustring const &event_description); - static void resetKey(Inkscape::Application *inkscape, SPDesktop *desktop, GObject *base); + static void resetKey(InkscapeApplication *inkscape, SPDesktop *desktop, GObject *base); static void cancel(SPDocument *document); diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 4b4c8c678..8ac87dadd 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -71,7 +71,7 @@ #include "helper/action-context.h" #include "helper/sp-marshal.h" -static Inkscape::Application *inkscape = NULL; +static InkscapeApplication *inkscape = NULL; /* Backbones of configuration xml data */ #include "menus-skeleton.h" @@ -99,16 +99,10 @@ enum { # FORWARD DECLARATIONS ################################*/ -namespace Inkscape { -struct ApplicationClass; -} - -static void inkscape_class_init (Inkscape::ApplicationClass *klass); -static void inkscape_init (SPObject *object); static void inkscape_dispose (GObject *object); -static void inkscape_activate_desktop_private (Inkscape::Application *inkscape, SPDesktop *desktop); -static void inkscape_deactivate_desktop_private (Inkscape::Application *inkscape, SPDesktop *desktop); +static void inkscape_activate_desktop_private (InkscapeApplication *inkscape, SPDesktop *desktop); +static void inkscape_deactivate_desktop_private (InkscapeApplication *inkscape, SPDesktop *desktop); class AppSelectionModel { Inkscape::LayerModel _layer_model; @@ -126,7 +120,7 @@ public: Inkscape::Selection *getSelection() const { return _selection; } }; -struct Inkscape::Application { +struct InkscapeApplication { GObject object; Inkscape::XML::Document *menus; std::map document_set; @@ -140,26 +134,25 @@ struct Inkscape::Application { guint trackalt; }; -struct Inkscape::ApplicationClass { +struct InkscapeApplicationClass { GObjectClass object_class; /* Signals */ - void (* change_selection) (Inkscape::Application * inkscape, Inkscape::Selection * selection); - void (* change_subselection) (Inkscape::Application * inkscape, SPDesktop *desktop); - void (* modify_selection) (Inkscape::Application * inkscape, Inkscape::Selection * selection, guint flags); - void (* set_selection) (Inkscape::Application * inkscape, Inkscape::Selection * selection); - void (* set_eventcontext) (Inkscape::Application * inkscape, Inkscape::UI::Tools::ToolBase * eventcontext); - void (* activate_desktop) (Inkscape::Application * inkscape, SPDesktop * desktop); - void (* deactivate_desktop) (Inkscape::Application * inkscape, SPDesktop * desktop); - void (* destroy_document) (Inkscape::Application *inkscape, SPDocument *doc); - void (* color_set) (Inkscape::Application *inkscape, SPColor *color, double opacity); - void (* shut_down) (Inkscape::Application *inkscape); - void (* dialogs_hide) (Inkscape::Application *inkscape); - void (* dialogs_unhide) (Inkscape::Application *inkscape); - void (* external_change) (Inkscape::Application *inkscape); + void (* change_selection) (InkscapeApplication * inkscape, Inkscape::Selection * selection); + void (* change_subselection) (InkscapeApplication * inkscape, SPDesktop *desktop); + void (* modify_selection) (InkscapeApplication * inkscape, Inkscape::Selection * selection, guint flags); + void (* set_selection) (InkscapeApplication * inkscape, Inkscape::Selection * selection); + void (* set_eventcontext) (InkscapeApplication * inkscape, Inkscape::UI::Tools::ToolBase * eventcontext); + void (* activate_desktop) (InkscapeApplication * inkscape, SPDesktop * desktop); + void (* deactivate_desktop) (InkscapeApplication * inkscape, SPDesktop * desktop); + void (* destroy_document) (InkscapeApplication *inkscape, SPDocument *doc); + void (* color_set) (InkscapeApplication *inkscape, SPColor *color, double opacity); + void (* shut_down) (InkscapeApplication *inkscape); + void (* dialogs_hide) (InkscapeApplication *inkscape); + void (* dialogs_unhide) (InkscapeApplication *inkscape); + void (* external_change) (InkscapeApplication *inkscape); }; -static GObjectClass * parent_class; static guint inkscape_signals[LAST_SIGNAL] = {0}; static void (* segv_handler) (int) = SIG_DFL; @@ -175,48 +168,21 @@ static void (* bus_handler) (int) = SIG_DFL; #define INKSCAPE_LEGACY_PROFILE_DIR ".inkscape" #define MENUS_FILE "menus.xml" - -/** - * Retrieves the GType for the Inkscape Application object. - */ -GType -inkscape_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof (Inkscape::ApplicationClass), - NULL, NULL, - (GClassInitFunc) inkscape_class_init, - NULL, NULL, - sizeof (Inkscape::Application), - 4, - (GInstanceInitFunc) inkscape_init, - NULL - }; - type = g_type_register_static (G_TYPE_OBJECT, "Inkscape_Application", &info, (GTypeFlags)0); - } - return type; -} - +G_DEFINE_TYPE(InkscapeApplication, inkscape, G_TYPE_OBJECT); /** * Initializes the inkscape class, registering all of its signal handlers * and virtual functions */ static void -inkscape_class_init (Inkscape::ApplicationClass * klass) +inkscape_class_init (InkscapeApplicationClass * klass) { - GObjectClass * object_class; - - object_class = (GObjectClass *) klass; - - parent_class = (GObjectClass *)g_type_class_peek_parent (klass); + GObjectClass * object_class = G_OBJECT_CLASS(klass); inkscape_signals[MODIFY_SELECTION] = g_signal_new ("modify_selection", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, modify_selection), + G_STRUCT_OFFSET (InkscapeApplicationClass, modify_selection), NULL, NULL, sp_marshal_VOID__POINTER_UINT, G_TYPE_NONE, 2, @@ -224,7 +190,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[CHANGE_SELECTION] = g_signal_new ("change_selection", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, change_selection), + G_STRUCT_OFFSET (InkscapeApplicationClass, change_selection), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -232,7 +198,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[CHANGE_SUBSELECTION] = g_signal_new ("change_subselection", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, change_subselection), + G_STRUCT_OFFSET (InkscapeApplicationClass, change_subselection), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -240,7 +206,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[SET_SELECTION] = g_signal_new ("set_selection", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, set_selection), + G_STRUCT_OFFSET (InkscapeApplicationClass, set_selection), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -248,7 +214,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[SET_EVENTCONTEXT] = g_signal_new ("set_eventcontext", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, set_eventcontext), + G_STRUCT_OFFSET (InkscapeApplicationClass, set_eventcontext), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -256,7 +222,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[ACTIVATE_DESKTOP] = g_signal_new ("activate_desktop", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, activate_desktop), + G_STRUCT_OFFSET (InkscapeApplicationClass, activate_desktop), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -264,7 +230,7 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[DEACTIVATE_DESKTOP] = g_signal_new ("deactivate_desktop", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, deactivate_desktop), + G_STRUCT_OFFSET (InkscapeApplicationClass, deactivate_desktop), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, @@ -272,28 +238,28 @@ inkscape_class_init (Inkscape::ApplicationClass * klass) inkscape_signals[SHUTDOWN_SIGNAL] = g_signal_new ("shut_down", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, shut_down), + G_STRUCT_OFFSET (InkscapeApplicationClass, shut_down), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); inkscape_signals[DIALOGS_HIDE] = g_signal_new ("dialogs_hide", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, dialogs_hide), + G_STRUCT_OFFSET (InkscapeApplicationClass, dialogs_hide), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); inkscape_signals[DIALOGS_UNHIDE] = g_signal_new ("dialogs_unhide", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, dialogs_unhide), + G_STRUCT_OFFSET (InkscapeApplicationClass, dialogs_unhide), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); inkscape_signals[EXTERNAL_CHANGE] = g_signal_new ("external_change", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (Inkscape::ApplicationClass, external_change), + G_STRUCT_OFFSET (InkscapeApplicationClass, external_change), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); @@ -494,10 +460,10 @@ void inkscape_autosave_init() static void -inkscape_init (SPObject * object) +inkscape_init (InkscapeApplication * object) { if (!inkscape) { - inkscape = (Inkscape::Application *) object; + inkscape = (InkscapeApplication *) object; } else { g_assert_not_reached (); } @@ -515,7 +481,7 @@ inkscape_init (SPObject * object) static void inkscape_dispose (GObject *object) { - Inkscape::Application *inkscape = (Inkscape::Application *) object; + InkscapeApplication *inkscape = (InkscapeApplication *) object; g_assert (!inkscape->desktops); @@ -530,7 +496,7 @@ inkscape_dispose (GObject *object) inkscape->selection_models.~map(); inkscape->document_set.~map(); - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (inkscape_parent_class)->dispose (object); gtk_main_quit (); } @@ -580,14 +546,14 @@ void inkscape_trackalt(guint trackvalue) static void -inkscape_activate_desktop_private (Inkscape::Application */*inkscape*/, SPDesktop *desktop) +inkscape_activate_desktop_private (InkscapeApplication */*inkscape*/, SPDesktop *desktop) { desktop->set_active (true); } static void -inkscape_deactivate_desktop_private (Inkscape::Application */*inkscape*/, SPDesktop *desktop) +inkscape_deactivate_desktop_private (InkscapeApplication */*inkscape*/, SPDesktop *desktop) { desktop->set_active (false); } @@ -835,7 +801,7 @@ private: void inkscape_application_init (const gchar *argv0, gboolean use_gui) { - inkscape = (Inkscape::Application *)g_object_new (SP_TYPE_INKSCAPE, NULL); + inkscape = (InkscapeApplication *)g_object_new (SP_TYPE_INKSCAPE, NULL); /* fixme: load application defaults */ segv_handler = signal (SIGSEGV, inkscape_crash_handler); @@ -904,9 +870,9 @@ inkscape_application_init (const gchar *argv0, gboolean use_gui) } /** - * Returns the current Inkscape::Application global object + * Returns the current InkscapeApplication global object */ -Inkscape::Application * +InkscapeApplication * inkscape_get_instance() { return inkscape; @@ -921,7 +887,7 @@ gboolean inkscape_use_gui() * Menus management * */ -bool inkscape_load_menus( Inkscape::Application * inkscape ) +bool inkscape_load_menus( InkscapeApplication * inkscape ) { gchar *fn = profile_path(MENUS_FILE); gchar *menus_xml = 0; @@ -1391,7 +1357,7 @@ inkscape_action_context_for_document(SPDocument *doc) #####################*/ void -inkscape_refresh_display (Inkscape::Application *inkscape) +inkscape_refresh_display (InkscapeApplication *inkscape) { for (GSList *l = inkscape->desktops; l != NULL; l = l->next) { (static_cast(l->data))->requestRedraw(); @@ -1404,7 +1370,7 @@ inkscape_refresh_display (Inkscape::Application *inkscape) * saves the preferences if appropriate, and quits. */ void -inkscape_exit (Inkscape::Application */*inkscape*/) +inkscape_exit (InkscapeApplication */*inkscape*/) { g_assert (INKSCAPE); @@ -1546,7 +1512,7 @@ profile_path(const char *filename) } Inkscape::XML::Node * -inkscape_get_menus (Inkscape::Application * inkscape) +inkscape_get_menus (InkscapeApplication * inkscape) { Inkscape::XML::Node *repr = inkscape->menus->root(); g_assert (!(strcmp (repr->name(), "inkscape"))); diff --git a/src/inkscape.h b/src/inkscape.h index 823e7524f..3a9b85fc9 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -28,9 +28,10 @@ class ToolBase; } } +struct InkscapeApplication; + namespace Inkscape { class ActionContext; - struct Application; namespace XML { class Node; struct Document; @@ -46,11 +47,11 @@ void inkscape_application_init (const gchar *argv0, gboolean use_gui); bool inkscape_load_config (const gchar *filename, Inkscape::XML::Document *config, const gchar *skeleton, unsigned int skel_size, const gchar *e_notreg, const gchar *e_notxml, const gchar *e_notsp, const gchar *warn); /* Menus */ -bool inkscape_load_menus (Inkscape::Application * inkscape); -bool inkscape_save_menus (Inkscape::Application * inkscape); -Inkscape::XML::Node *inkscape_get_menus (Inkscape::Application * inkscape); +bool inkscape_load_menus (InkscapeApplication * inkscape); +bool inkscape_save_menus (InkscapeApplication * inkscape); +Inkscape::XML::Node *inkscape_get_menus (InkscapeApplication * inkscape); -Inkscape::Application *inkscape_get_instance(); +InkscapeApplication *inkscape_get_instance(); gboolean inkscape_use_gui(); bool inkscapeIsCrashing(); @@ -108,13 +109,13 @@ bool inkscape_remove_document (SPDocument *document); * fixme: This has to be rethought */ -void inkscape_refresh_display (Inkscape::Application *inkscape); +void inkscape_refresh_display (InkscapeApplication *inkscape); /* * fixme: This also */ -void inkscape_exit (Inkscape::Application *inkscape); +void inkscape_exit (InkscapeApplication *inkscape); #endif diff --git a/src/inkview.cpp b/src/inkview.cpp index 82bd08e34..4188c832f 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -62,7 +62,7 @@ #include "inkscape-private.h" -Inkscape::Application *inkscape; +InkscapeApplication *inkscape; #include @@ -232,7 +232,7 @@ main (int argc, const char **argv) ss.view = NULL; ss.fullscreen = false; - inkscape = (Inkscape::Application *)g_object_new (SP_TYPE_INKSCAPE, NULL); + inkscape = (InkscapeApplication *)g_object_new (SP_TYPE_INKSCAPE, NULL); // starting at where the commandline options stopped parsing because // we want all the files to be in the list @@ -572,7 +572,7 @@ static void usage() #ifdef XXX /* TODO !!! make this temporary stub unnecessary */ -Inkscape::Application *inkscape_get_instance() { return NULL; } +InkscapeApplication *inkscape_get_instance() { return NULL; } void inkscape_ref (void) {} void inkscape_unref (void) {} void inkscape_add_document (SPDocument *document) {} diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index e02ccd3f1..8352de1e3 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -829,14 +829,14 @@ private : -static void on_tool_changed(Inkscape::Application */*inkscape*/, Inkscape::UI::Tools::ToolBase */*context*/, AlignAndDistribute *daad) +static void on_tool_changed(InkscapeApplication */*inkscape*/, Inkscape::UI::Tools::ToolBase */*context*/, AlignAndDistribute *daad) { SPDesktop *desktop = SP_ACTIVE_DESKTOP; if (desktop && desktop->getEventContext()) daad->setMode(tools_active(desktop) == TOOLS_NODES); } -static void on_selection_changed(Inkscape::Application */*inkscape*/, Inkscape::Selection */*selection*/, AlignAndDistribute *daad) +static void on_selection_changed(InkscapeApplication */*inkscape*/, Inkscape::Selection */*selection*/, AlignAndDistribute *daad) { daad->randomize_bbox = Geom::OptRect(); } diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index e5f18216c..d9e2c03ba 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -1349,7 +1349,7 @@ void CloneTiler::on_picker_color_changed(guint rgba) is_updating = false; } -void CloneTiler::clonetiler_change_selection(Inkscape::Application * /*inkscape*/, Inkscape::Selection *selection, GtkWidget *dlg) +void CloneTiler::clonetiler_change_selection(InkscapeApplication * /*inkscape*/, Inkscape::Selection *selection, GtkWidget *dlg) { GtkWidget *buttons = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "buttons_on_tiles")); GtkWidget *status = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "status")); @@ -1378,7 +1378,7 @@ void CloneTiler::clonetiler_change_selection(Inkscape::Application * /*inkscape* } } -void CloneTiler::clonetiler_external_change(Inkscape::Application * /*inkscape*/, GtkWidget *dlg) +void CloneTiler::clonetiler_external_change(InkscapeApplication * /*inkscape*/, GtkWidget *dlg) { clonetiler_change_selection (NULL, sp_desktop_selection(SP_ACTIVE_DESKTOP), dlg); } diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h index e2a0240ee..9bacc701d 100644 --- a/src/ui/dialog/clonetiler.h +++ b/src/ui/dialog/clonetiler.h @@ -58,8 +58,8 @@ protected: static void clonetiler_keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/); static void clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg); static void clonetiler_unclump(GtkWidget */*widget*/, void *); - static void clonetiler_change_selection(Inkscape::Application * /*inkscape*/, Inkscape::Selection *selection, GtkWidget *dlg); - static void clonetiler_external_change(Inkscape::Application * /*inkscape*/, GtkWidget *dlg); + static void clonetiler_change_selection(InkscapeApplication * /*inkscape*/, Inkscape::Selection *selection, GtkWidget *dlg); + static void clonetiler_external_change(InkscapeApplication * /*inkscape*/, GtkWidget *dlg); static void clonetiler_disconnect_gsignal(GObject *widget, gpointer source); static void clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg); static guint clonetiler_number_of_clones(SPObject *obj); diff --git a/src/ui/dialog/desktop-tracker.cpp b/src/ui/dialog/desktop-tracker.cpp index 8a359dd2d..3ed998252 100644 --- a/src/ui/dialog/desktop-tracker.cpp +++ b/src/ui/dialog/desktop-tracker.cpp @@ -94,7 +94,7 @@ sigc::connection DesktopTracker::connectDesktopChanged( const sigc::slottrackActive) { self->setDesktop(desktop); diff --git a/src/ui/dialog/desktop-tracker.h b/src/ui/dialog/desktop-tracker.h index 7da55cf2f..7b944ddfa 100644 --- a/src/ui/dialog/desktop-tracker.h +++ b/src/ui/dialog/desktop-tracker.h @@ -12,11 +12,10 @@ typedef struct _GtkWidget GtkWidget; class SPDesktop; +struct InkscapeApplication; namespace Inkscape { -struct Application; - namespace UI { namespace Dialog { @@ -37,7 +36,7 @@ public: sigc::connection connectDesktopChanged( const sigc::slot & slot ); private: - static gboolean activateDesktopCB(Inkscape::Application *inkscape, SPDesktop *desktop, DesktopTracker *self ); + static gboolean activateDesktopCB(InkscapeApplication *inkscape, SPDesktop *desktop, DesktopTracker *self ); static bool hierarchyChangeCB(GtkWidget *widget, GtkWidget* prev, DesktopTracker *self); void handleHierarchyChange(); diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp index 7e69e439a..0da638546 100644 --- a/src/ui/dialog/dialog-manager.cpp +++ b/src/ui/dialog/dialog-manager.cpp @@ -70,13 +70,13 @@ inline Dialog *create() { return PanelDialog::template create(); } /** * This class is provided as a container for Inkscape's various - * dialogs. This allows Inkscape::Application to treat the various + * dialogs. This allows InkscapeApplication to treat the various * dialogs it invokes, as abstractions. * * DialogManager is essentially a cache of dialogs. It lets us * initialize dialogs lazily - instead of constructing them during * application startup, they're constructed the first time they're - * actually invoked by Inkscape::Application. The constructed + * actually invoked by InkscapeApplication. The constructed * dialog is held here after that, so future invokations of the * dialog don't need to get re-constructed each time. The memory for * the dialogs are then reclaimed when the DialogManager is destroyed. diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp index f2c63ed8d..4f0d9fbe1 100644 --- a/src/ui/dialog/dialog.cpp +++ b/src/ui/dialog/dialog.cpp @@ -41,7 +41,7 @@ namespace Inkscape { namespace UI { namespace Dialog { -void sp_retransientize(Inkscape::Application */*inkscape*/, SPDesktop *desktop, gpointer dlgPtr) +void sp_retransientize(InkscapeApplication */*inkscape*/, SPDesktop *desktop, gpointer dlgPtr) { Dialog *dlg = static_cast(dlgPtr); dlg->onDesktopActivated (desktop); diff --git a/src/ui/dialog/dialog.h b/src/ui/dialog/dialog.h index ec5d203bc..ccff43a56 100644 --- a/src/ui/dialog/dialog.h +++ b/src/ui/dialog/dialog.h @@ -18,10 +18,10 @@ #include "floating-behavior.h" class SPDesktop; +struct InkscapeApplication; namespace Inkscape { class Selection; -struct Application; } namespace Inkscape { @@ -30,7 +30,7 @@ namespace Dialog { enum BehaviorType { FLOATING, DOCK }; -void sp_retransientize(Inkscape::Application *inkscape, SPDesktop *desktop, gpointer dlgPtr); +void sp_retransientize(InkscapeApplication *inkscape, SPDesktop *desktop, gpointer dlgPtr); gboolean sp_retransientize_again(gpointer dlgPtr); void sp_dialog_shutdown(GObject *object, gpointer dlgPtr); diff --git a/src/ui/dialog/document-metadata.cpp b/src/ui/dialog/document-metadata.cpp index 09c505860..77ea175d9 100644 --- a/src/ui/dialog/document-metadata.cpp +++ b/src/ui/dialog/document-metadata.cpp @@ -223,7 +223,7 @@ DocumentMetadata::_handleDocumentReplaced(SPDesktop* desktop, SPDocument *) } void -DocumentMetadata::_handleActivateDesktop(Inkscape::Application *, SPDesktop *desktop) +DocumentMetadata::_handleActivateDesktop(InkscapeApplication *, SPDesktop *desktop) { Inkscape::XML::Node *repr = sp_desktop_namedview(desktop)->getRepr(); repr->addListener(&_repr_events, this); @@ -231,7 +231,7 @@ DocumentMetadata::_handleActivateDesktop(Inkscape::Application *, SPDesktop *des } void -DocumentMetadata::_handleDeactivateDesktop(Inkscape::Application *, SPDesktop *desktop) +DocumentMetadata::_handleDeactivateDesktop(InkscapeApplication *, SPDesktop *desktop) { Inkscape::XML::Node *repr = sp_desktop_namedview(desktop)->getRepr(); repr->removeListenerByData(this); diff --git a/src/ui/dialog/document-metadata.h b/src/ui/dialog/document-metadata.h index 3b7ed1ec8..77084bc3d 100644 --- a/src/ui/dialog/document-metadata.h +++ b/src/ui/dialog/document-metadata.h @@ -56,8 +56,8 @@ protected: void init(); void _handleDocumentReplaced(SPDesktop* desktop, SPDocument *document); - void _handleActivateDesktop(Inkscape::Application *application, SPDesktop *desktop); - void _handleDeactivateDesktop(Inkscape::Application *application, SPDesktop *desktop); + void _handleActivateDesktop(InkscapeApplication *application, SPDesktop *desktop); + void _handleDeactivateDesktop(InkscapeApplication *application, SPDesktop *desktop); Gtk::Notebook _notebook; diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 4e4616724..5ad82644e 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -1594,7 +1594,7 @@ void DocumentProperties::_handleDocumentReplaced(SPDesktop* desktop, SPDocument update(); } -void DocumentProperties::_handleActivateDesktop(Inkscape::Application *, SPDesktop *desktop) +void DocumentProperties::_handleActivateDesktop(InkscapeApplication *, SPDesktop *desktop) { Inkscape::XML::Node *repr = sp_desktop_namedview(desktop)->getRepr(); repr->addListener(&_repr_events, this); @@ -1603,7 +1603,7 @@ void DocumentProperties::_handleActivateDesktop(Inkscape::Application *, SPDeskt update(); } -void DocumentProperties::_handleDeactivateDesktop(Inkscape::Application *, SPDesktop *desktop) +void DocumentProperties::_handleDeactivateDesktop(InkscapeApplication *, SPDesktop *desktop) { Inkscape::XML::Node *repr = sp_desktop_namedview(desktop)->getRepr(); repr->removeListenerByData(this); diff --git a/src/ui/dialog/document-properties.h b/src/ui/dialog/document-properties.h index 495f3177d..ee7e88b18 100644 --- a/src/ui/dialog/document-properties.h +++ b/src/ui/dialog/document-properties.h @@ -94,8 +94,8 @@ protected: void save_default_metadata(); void _handleDocumentReplaced(SPDesktop* desktop, SPDocument *document); - void _handleActivateDesktop(Inkscape::Application *application, SPDesktop *desktop); - void _handleDeactivateDesktop(Inkscape::Application *application, SPDesktop *desktop); + void _handleActivateDesktop(InkscapeApplication *application, SPDesktop *desktop); + void _handleDeactivateDesktop(InkscapeApplication *application, SPDesktop *desktop); Inkscape::XML::SignalObserver _emb_profiles_observer, _scripts_observer; Gtk::Notebook _notebook; diff --git a/src/ui/dialog/fill-and-stroke.h b/src/ui/dialog/fill-and-stroke.h index 340cb860f..35c98ef9c 100644 --- a/src/ui/dialog/fill-and-stroke.h +++ b/src/ui/dialog/fill-and-stroke.h @@ -41,7 +41,7 @@ public: virtual void setDesktop(SPDesktop *desktop); - void selectionChanged(Inkscape::Application *inkscape, + void selectionChanged(InkscapeApplication *inkscape, Inkscape::Selection *selection); void showPageFill(); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 72217c729..1417b39fa 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -572,7 +572,7 @@ void GridArrangeTab::updateSelection() ## Experimental ##########################*/ -static void updateSelectionCallback(Inkscape::Application */*inkscape*/, Inkscape::Selection */*selection*/, GridArrangeTab *dlg) +static void updateSelectionCallback(InkscapeApplication */*inkscape*/, Inkscape::Selection */*selection*/, GridArrangeTab *dlg) { dlg->updateSelection(); } diff --git a/src/ui/dialog/panel-dialog.h b/src/ui/dialog/panel-dialog.h index 1fefd811e..b4a355083 100644 --- a/src/ui/dialog/panel-dialog.h +++ b/src/ui/dialog/panel-dialog.h @@ -49,19 +49,19 @@ public: virtual UI::Widget::Panel &getPanel() { return _panel; } protected: - static void handle_deactivate_desktop(Inkscape::Application *application, SPDesktop *desktop, void *data) { + static void handle_deactivate_desktop(InkscapeApplication *application, SPDesktop *desktop, void *data) { g_return_if_fail(data != NULL); static_cast(data)->_propagateDesktopDeactivated(application, desktop); } - static void _handle_activate_desktop(Inkscape::Application *application, SPDesktop *desktop, void *data) { + static void _handle_activate_desktop(InkscapeApplication *application, SPDesktop *desktop, void *data) { g_return_if_fail(data != NULL); static_cast(data)->_propagateDesktopActivated(application, desktop); } inline virtual void _propagateDocumentReplaced(SPDesktop* desktop, SPDocument *document); - inline virtual void _propagateDesktopActivated(Inkscape::Application *, SPDesktop *); - inline virtual void _propagateDesktopDeactivated(Inkscape::Application *, SPDesktop *); + inline virtual void _propagateDesktopActivated(InkscapeApplication *, SPDesktop *); + inline virtual void _propagateDesktopDeactivated(InkscapeApplication *, SPDesktop *); UI::Widget::Panel &_panel; sigc::connection _document_replaced_connection; @@ -134,14 +134,14 @@ void PanelDialogBase::_propagateDocumentReplaced(SPDesktop *desktop, SPDocument _panel.signalDocumentReplaced().emit(desktop, document); } -void PanelDialogBase::_propagateDesktopActivated(Inkscape::Application *application, SPDesktop *desktop) +void PanelDialogBase::_propagateDesktopActivated(InkscapeApplication *application, SPDesktop *desktop) { _document_replaced_connection = desktop->connectDocumentReplaced(sigc::mem_fun(*this, &PanelDialogBase::_propagateDocumentReplaced)); _panel.signalActivateDesktop().emit(application, desktop); } -void PanelDialogBase::_propagateDesktopDeactivated(Inkscape::Application *application, SPDesktop *desktop) +void PanelDialogBase::_propagateDesktopDeactivated(InkscapeApplication *application, SPDesktop *desktop) { _document_replaced_connection.disconnect(); _panel.signalDeactiveDesktop().emit(application, desktop); diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index a7f0b068e..3e135b9b2 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -47,13 +47,13 @@ namespace Inkscape { namespace UI { namespace Dialog { -static void on_selection_changed(Inkscape::Application */*inkscape*/, Inkscape::Selection *selection, Transformation *daad) +static void on_selection_changed(InkscapeApplication */*inkscape*/, Inkscape::Selection *selection, Transformation *daad) { int page = daad->getCurrentPage(); daad->updateSelection((Inkscape::UI::Dialog::Transformation::PageType)page, selection); } -static void on_selection_modified( Inkscape::Application */*inkscape*/, +static void on_selection_modified( InkscapeApplication */*inkscape*/, Inkscape::Selection *selection, guint /*flags*/, Transformation *daad ) diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index 537db0fdd..e4cd76345 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -40,7 +40,7 @@ namespace UI { namespace Widget { /*void ObjectCompositeSettings::_on_desktop_activate( - Inkscape::Application *application, + InkscapeApplication *application, SPDesktop *desktop, ObjectCompositeSettings *w ) { @@ -50,7 +50,7 @@ namespace Widget { } void ObjectCompositeSettings::_on_desktop_deactivate( - Inkscape::Application *application, + InkscapeApplication *application, SPDesktop *desktop, ObjectCompositeSettings *w ) { diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h index 19a6cb2a5..e375bf24a 100644 --- a/src/ui/widget/object-composite-settings.h +++ b/src/ui/widget/object-composite-settings.h @@ -30,9 +30,9 @@ #include "ui/widget/spinbutton.h" class SPDesktop; +struct InkscapeApplication; namespace Inkscape { -struct Application; namespace UI { namespace Widget { @@ -66,8 +66,8 @@ private: gulong _desktop_activated; sigc::connection _subject_changed; - static void _on_desktop_activate(Inkscape::Application *application, SPDesktop *desktop, ObjectCompositeSettings *w); - static void _on_desktop_deactivate(Inkscape::Application *application, SPDesktop *desktop, ObjectCompositeSettings *w); + static void _on_desktop_activate(InkscapeApplication *application, SPDesktop *desktop, ObjectCompositeSettings *w); + static void _on_desktop_deactivate(InkscapeApplication *application, SPDesktop *desktop, ObjectCompositeSettings *w); void _subjectChanged(); void _blendBlurValueChanged(); void _opacityValueChanged(); diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index b37137228..0abd81b16 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -643,13 +643,13 @@ Panel::signalDocumentReplaced() return _signal_document_replaced; } -sigc::signal & +sigc::signal & Panel::signalActivateDesktop() { return _signal_activate_desktop; } -sigc::signal & +sigc::signal & Panel::signalDeactiveDesktop() { return _signal_deactive_desktop; diff --git a/src/ui/widget/panel.h b/src/ui/widget/panel.h index 0c3d822b8..177314797 100644 --- a/src/ui/widget/panel.h +++ b/src/ui/widget/panel.h @@ -45,9 +45,9 @@ namespace Gtk { class MenuItem; } -namespace Inkscape { +struct InkscapeApplication; -struct Application; +namespace Inkscape { class Selection; namespace UI { @@ -116,8 +116,8 @@ public: void setResponseSensitive(int response_id, bool setting); virtual sigc::signal &signalDocumentReplaced(); - virtual sigc::signal &signalActivateDesktop(); - virtual sigc::signal &signalDeactiveDesktop(); + virtual sigc::signal &signalActivateDesktop(); + virtual sigc::signal &signalDeactiveDesktop(); protected: /** @@ -147,8 +147,8 @@ protected: sigc::signal _signal_response; sigc::signal _signal_present; sigc::signal _signal_document_replaced; - sigc::signal _signal_activate_desktop; - sigc::signal _signal_deactive_desktop; + sigc::signal _signal_activate_desktop; + sigc::signal _signal_deactive_desktop; private: void _init(); diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp index 257d8ef30..fdf5ec500 100644 --- a/src/widgets/sp-widget.cpp +++ b/src/widgets/sp-widget.cpp @@ -59,7 +59,7 @@ public: static void changeSelectionCB(Application *inkscape, Selection *selection, SPWidget *spw); static void setSelectionCB(Application *inkscape, Selection *selection, SPWidget *spw); - static GtkWidget *constructGlobal(SPWidget *spw, Inkscape::Application *inkscape); + static GtkWidget *constructGlobal(SPWidget *spw, InkscapeApplication *inkscape); void modifySelection(Application *inkscape, Selection *selection, guint flags); void changeSelection(Application *inkscape, Selection *selection); @@ -264,7 +264,7 @@ void SPWidgetImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation) } } -GtkWidget *SPWidgetImpl::constructGlobal(SPWidget *spw, Inkscape::Application *inkscape) +GtkWidget *SPWidgetImpl::constructGlobal(SPWidget *spw, InkscapeApplication *inkscape) { g_return_val_if_fail(!spw->inkscape, NULL); @@ -316,7 +316,7 @@ void SPWidgetImpl::setSelection(Application * /*inkscape*/, Selection *selection // Methods -GtkWidget *sp_widget_new_global(Inkscape::Application *inkscape) +GtkWidget *sp_widget_new_global(InkscapeApplication *inkscape) { SPWidget *spw = reinterpret_cast(g_object_new(SP_TYPE_WIDGET, NULL)); diff --git a/src/widgets/sp-widget.h b/src/widgets/sp-widget.h index e23a6da4f..b3cce32a6 100644 --- a/src/widgets/sp-widget.h +++ b/src/widgets/sp-widget.h @@ -24,20 +24,18 @@ #define SP_IS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_WIDGET)) #define SP_IS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_WIDGET)) +struct InkscapeApplication; namespace Inkscape { - -struct Application; class Selection; class SPWidgetImpl; - } struct SPWidget { friend class Inkscape::SPWidgetImpl; GtkBin bin; - Inkscape::Application *inkscape; + InkscapeApplication *inkscape; Inkscape::SPWidgetImpl *_impl; }; @@ -56,7 +54,7 @@ struct SPWidgetClass { GType sp_widget_get_type(); /** Generic constructor for global widget. */ -GtkWidget *sp_widget_new_global(Inkscape::Application *inkscape); +GtkWidget *sp_widget_new_global(InkscapeApplication *inkscape); #endif // SEEN_SP_WIDGET_H /* -- cgit v1.2.3 From 5a4558e956e744287f638613c5907f83300b01b8 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 26 Aug 2014 12:14:18 +0100 Subject: sp-canvas: GObject boilerplate reduction (bzr r13341.1.180) --- src/display/sp-canvas-item.h | 5 +- src/display/sp-canvas.cpp | 112 ++++++------------------------------------- 2 files changed, 17 insertions(+), 100 deletions(-) diff --git a/src/display/sp-canvas-item.h b/src/display/sp-canvas-item.h index f34ec453c..6781be59c 100644 --- a/src/display/sp-canvas-item.h +++ b/src/display/sp-canvas-item.h @@ -37,7 +37,7 @@ struct SPCanvasGroup; typedef struct _SPCanvasItemClass SPCanvasItemClass; -#define SP_TYPE_CANVAS_ITEM (SPCanvasItem::getType()) +#define SP_TYPE_CANVAS_ITEM (sp_canvas_item_get_type()) #define SP_CANVAS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_CANVAS_ITEM, SPCanvasItem)) #define SP_CANVAS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_CANVAS_ITEM, SPCanvasItemClass)) #define SP_IS_CANVAS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), SP_TYPE_CANVAS_ITEM)) @@ -50,7 +50,6 @@ typedef struct _SPCanvasItemClass SPCanvasItemClass; */ struct SPCanvasItem { GInitiallyUnowned parent_instance; - static GType getType(); SPCanvas *canvas; SPCanvasItem *parent; @@ -73,6 +72,8 @@ struct SPCanvasItem { bool in_destruction; }; +GType sp_canvas_item_get_type(); + /** * The vtable of an SPCanvasItem. */ diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 8434f6ae2..e9892c684 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -61,8 +61,6 @@ struct SPCanvasGroupClass { * A group of Items. */ struct SPCanvasGroup { - static GType getType(); - /** * Adds an item to a canvas group. */ @@ -113,17 +111,8 @@ struct SPCanvasGroup { GList *items; GList *last; - - static SPCanvasItemClass *parentClass; }; -SPCanvasItemClass *SPCanvasGroup::parentClass; - -GType sp_canvas_group_get_type() -{ - return SPCanvasGroup::getType(); -} - /** * The SPCanvas vtable. */ @@ -161,19 +150,6 @@ enum { LAST_SIGNAL }; -void sp_canvas_item_base_class_init(SPCanvasItemClass *klass); -void sp_canvas_item_base_class_finalize(SPCanvasItemClass *klass); - -/** - * Initializes the SPCanvasItem vtable and the "event" signal. - */ -void sp_canvas_item_class_init(SPCanvasItemClass *klass); - -/** - * Callback for initialization of SPCanvasItem. - */ -void sp_canvas_item_init(SPCanvasItem *item, SPCanvasItemClass *klass); - /** * Callback that removes item from all referers and destroys it. */ @@ -181,7 +157,6 @@ void sp_canvas_item_dispose(GObject *object); void sp_canvas_item_finalize(GObject *object); void sp_canvas_item_real_destroy(SPCanvasItem *object); -static gpointer parent_class = NULL; static guint object_signals[LAST_SIGNAL] = { 0 }; /** @@ -358,45 +333,12 @@ public: static void requestCanvasUpdate(SPCanvas *canvas); }; -GType SPCanvasItem::getType() -{ - static GType object_type = 0; - - if (!object_type) { - static GTypeInfo const object_info = { - sizeof(SPCanvasItemClass), - reinterpret_cast(sp_canvas_item_base_class_init), - reinterpret_cast(sp_canvas_item_base_class_finalize), - reinterpret_cast(sp_canvas_item_class_init), - NULL, // class_finalize - NULL, // class_data - sizeof(SPCanvasItem), - 16, // n_preallocs - reinterpret_cast(sp_canvas_item_init), - NULL // value_table - }; - - object_type = g_type_register_static(G_TYPE_INITIALLY_UNOWNED, - "SPCanvasItem", &object_info, GTypeFlags(0)); - } - - return object_type; -} - -namespace { - -void sp_canvas_item_base_class_init(SPCanvasItemClass * /*klass*/) -{ -} - -void sp_canvas_item_base_class_finalize(SPCanvasItemClass * /*klass*/) -{ -} +G_DEFINE_TYPE(SPCanvasItem, sp_canvas_item, G_TYPE_INITIALLY_UNOWNED); -void sp_canvas_item_class_init(SPCanvasItemClass *klass) +static void +sp_canvas_item_class_init(SPCanvasItemClass *klass) { GObjectClass *gobject_class = (GObjectClass *) klass; - parent_class = g_type_class_ref (G_TYPE_OBJECT); item_signals[ITEM_EVENT] = g_signal_new ("event", G_TYPE_FROM_CLASS (klass), @@ -421,7 +363,8 @@ void sp_canvas_item_class_init(SPCanvasItemClass *klass) G_TYPE_NONE, 0); } -void sp_canvas_item_init(SPCanvasItem *item, SPCanvasItemClass * /*klass*/) +static void +sp_canvas_item_init(SPCanvasItem *item) { item->xform = Geom::Affine(Geom::identity()); item->ctrlType = Inkscape::CTRL_TYPE_UNKNOWN; @@ -434,15 +377,13 @@ void sp_canvas_item_init(SPCanvasItem *item, SPCanvasItemClass * /*klass*/) item->in_destruction = false; } -} // namespace - SPCanvasItem *sp_canvas_item_new(SPCanvasGroup *parent, GType type, gchar const *first_arg_name, ...) { va_list args; g_return_val_if_fail(parent != NULL, NULL); g_return_val_if_fail(SP_IS_CANVAS_GROUP(parent), NULL); - g_return_val_if_fail(g_type_is_a(type, SPCanvasItem::getType()), NULL); + g_return_val_if_fail(g_type_is_a(type, SP_TYPE_CANVAS_ITEM), NULL); SPCanvasItem *item = SP_CANVAS_ITEM(g_object_new(type, NULL)); @@ -554,7 +495,7 @@ void sp_canvas_item_dispose(GObject *object) item->in_destruction = false; } - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(sp_canvas_item_parent_class)->dispose(object); } void sp_canvas_item_real_destroy(SPCanvasItem *object) @@ -574,7 +515,7 @@ void sp_canvas_item_finalize(GObject *gobject) "and must be removed with g_object_ref_sink()."); } - G_OBJECT_CLASS (parent_class)->finalize (gobject); + G_OBJECT_CLASS (sp_canvas_item_parent_class)->finalize (gobject); } } // namespace @@ -982,37 +923,12 @@ gint sp_canvas_item_order (SPCanvasItem * item) } // SPCanvasGroup +G_DEFINE_TYPE(SPCanvasGroup, sp_canvas_group, SP_TYPE_CANVAS_ITEM); -/** - * Registers SPCanvasGroup class with Gtk and returns its type number. - */ -GType SPCanvasGroup::getType(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPCanvasGroupClass), - 0, // base_init - 0, // base_finalize - reinterpret_cast(SPCanvasGroup::classInit), - 0, // class_finalize - 0, // class_data - sizeof(SPCanvasGroup), - 0, // n_preallocs - reinterpret_cast(SPCanvasGroup::init), - 0 // value_table - }; - type = g_type_register_static(SPCanvasItem::getType(), "SPCanvasGroup", &info, static_cast(0)); - } - return type; -} - -void SPCanvasGroup::classInit(SPCanvasGroupClass *klass) +static void sp_canvas_group_class_init(SPCanvasGroupClass *klass) { SPCanvasItemClass *item_class = reinterpret_cast(klass); - parentClass = reinterpret_cast(g_type_class_peek_parent(klass)); - item_class->destroy = SPCanvasGroup::destroy; item_class->update = SPCanvasGroup::update; item_class->render = SPCanvasGroup::render; @@ -1020,7 +936,7 @@ void SPCanvasGroup::classInit(SPCanvasGroupClass *klass) item_class->viewbox_changed = SPCanvasGroup::viewboxChanged; } -void SPCanvasGroup::init(SPCanvasGroup * /*group*/) +static void sp_canvas_group_init(SPCanvasGroup * /*group*/) { // Nothing here } @@ -1040,8 +956,8 @@ void SPCanvasGroup::destroy(SPCanvasItem *object) sp_canvas_item_destroy(child); } - if (SP_CANVAS_ITEM_CLASS(parentClass)->destroy) { - (* SP_CANVAS_ITEM_CLASS(parentClass)->destroy)(object); + if (SP_CANVAS_ITEM_CLASS(sp_canvas_group_parent_class)->destroy) { + (* SP_CANVAS_ITEM_CLASS(sp_canvas_group_parent_class)->destroy)(object); } } @@ -1238,7 +1154,7 @@ sp_canvas_init(SPCanvas *canvas) canvas->pick_event.crossing.y = 0; // Create the root item as a special case - canvas->root = SP_CANVAS_ITEM(g_object_new(SPCanvasGroup::getType(), NULL)); + canvas->root = SP_CANVAS_ITEM(g_object_new(SP_TYPE_CANVAS_GROUP, NULL)); canvas->root->canvas = canvas; g_object_ref (canvas->root); -- cgit v1.2.3 From d1dcf26b22837dfb501c165d15e95dcbd15d85ae Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 26 Aug 2014 12:21:55 +0100 Subject: Complete reduction of GObject boilerplate (bzr r13341.1.181) --- src/display/sodipodi-ctrlrect.cpp | 38 ++++++-------------------------------- src/display/sodipodi-ctrlrect.h | 4 ++-- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/src/display/sodipodi-ctrlrect.cpp b/src/display/sodipodi-ctrlrect.cpp index e6e427047..75789ff50 100644 --- a/src/display/sodipodi-ctrlrect.cpp +++ b/src/display/sodipodi-ctrlrect.cpp @@ -26,45 +26,19 @@ * Corner coords can be in any order - i.e. x1 < x0 is allowed */ -static void sp_ctrlrect_class_init(SPCtrlRectClass *c); -static void sp_ctrlrect_init(CtrlRect *ctrlrect); static void sp_ctrlrect_destroy(SPCanvasItem *object); static void sp_ctrlrect_update(SPCanvasItem *item, Geom::Affine const &affine, unsigned int flags); static void sp_ctrlrect_render(SPCanvasItem *item, SPCanvasBuf *buf); -static SPCanvasItemClass *parent_class; - static const guint DASH_LENGTH = 4; -GType sp_ctrlrect_get_type() -{ - static GType type = 0; - - if (!type) { - GTypeInfo info = { - sizeof(SPCtrlRectClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_ctrlrect_class_init, - 0, // class_finalize - 0, // class_data - sizeof(CtrlRect), - 0, // n_preallocs - (GInstanceInitFunc)sp_ctrlrect_init, - 0 // value_table - }; - type = g_type_register_static(SP_TYPE_CANVAS_ITEM, "SPCtrlRect", &info, static_cast(0)); - } - return type; -} +G_DEFINE_TYPE(CtrlRect, sp_ctrlrect, SP_TYPE_CANVAS_ITEM); -static void sp_ctrlrect_class_init(SPCtrlRectClass *c) +static void sp_ctrlrect_class_init(CtrlRectClass *c) { SPCanvasItemClass *item_class = SP_CANVAS_ITEM_CLASS(c); - parent_class = SP_CANVAS_ITEM_CLASS(g_type_class_peek_parent(c)); - item_class->destroy = sp_ctrlrect_destroy; item_class->update = sp_ctrlrect_update; item_class->render = sp_ctrlrect_render; @@ -77,8 +51,8 @@ static void sp_ctrlrect_init(CtrlRect *cr) static void sp_ctrlrect_destroy(SPCanvasItem *object) { - if (SP_CANVAS_ITEM_CLASS(parent_class)->destroy) { - (* SP_CANVAS_ITEM_CLASS(parent_class)->destroy)(object); + if (SP_CANVAS_ITEM_CLASS(sp_ctrlrect_parent_class)->destroy) { + (* SP_CANVAS_ITEM_CLASS(sp_ctrlrect_parent_class)->destroy)(object); } } @@ -171,8 +145,8 @@ void CtrlRect::update(Geom::Affine const &affine, unsigned int flags) using Geom::X; using Geom::Y; - if ((SP_CANVAS_ITEM_CLASS(parent_class))->update) { - (SP_CANVAS_ITEM_CLASS(parent_class))->update(this, affine, flags); + if ((SP_CANVAS_ITEM_CLASS(sp_ctrlrect_parent_class))->update) { + (SP_CANVAS_ITEM_CLASS(sp_ctrlrect_parent_class))->update(this, affine, flags); } sp_canvas_item_reset_bounds(this); diff --git a/src/display/sodipodi-ctrlrect.h b/src/display/sodipodi-ctrlrect.h index 65a40a850..ff6c55b06 100644 --- a/src/display/sodipodi-ctrlrect.h +++ b/src/display/sodipodi-ctrlrect.h @@ -26,7 +26,7 @@ struct SPCanvasBuf; #define SP_TYPE_CTRLRECT (sp_ctrlrect_get_type ()) #define SP_CTRLRECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_CTRLRECT, CtrlRect)) -#define SP_CTRLRECT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST((c), SP_TYPE_CTRLRECT, SPCtrlRectClass)) +#define SP_CTRLRECT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST((c), SP_TYPE_CTRLRECT, CtrlRectClass)) #define SP_IS_CTRLRECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_CTRLRECT)) #define SP_IS_CTRLRECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_CTRLRECT)) @@ -57,7 +57,7 @@ private: int _shadow; }; -struct SPCtrlRectClass : public SPCanvasItemClass {}; +struct CtrlRectClass : public SPCanvasItemClass {}; GType sp_ctrlrect_get_type(); -- cgit v1.2.3 From 604d6716361abbb6f0a71679c10a1f490d604541 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 26 Aug 2014 13:24:21 +0100 Subject: svg-view-widget: Gtk+ 3 fixes (bzr r13341.1.182) --- src/svg-view-widget.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/svg-view-widget.cpp b/src/svg-view-widget.cpp index 657ddb2bb..c568d3ca7 100644 --- a/src/svg-view-widget.cpp +++ b/src/svg-view-widget.cpp @@ -14,7 +14,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include "display/sp-canvas.h" #include "display/sp-canvas-group.h" #include "display/canvas-arena.h" @@ -69,7 +68,6 @@ static void sp_svg_view_widget_class_init(SPSVGSPViewWidgetClass *klass) */ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) { - GtkStyle *style; SPCanvasItem *parent; /* Settings */ @@ -92,14 +90,22 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) vw->canvas = SPCanvas::createAA(); -#if !GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3,0,0) + GdkRGBA white = {1,1,1,0}; + gtk_widget_override_background_color(vw->canvas, GTK_STATE_FLAG_NORMAL, &white); +#else gtk_widget_pop_colormap (); -#endif - - style = gtk_style_copy (gtk_widget_get_style (vw->canvas)); + GtkStyle *style = gtk_style_copy (gtk_widget_get_style (vw->canvas)); style->bg[GTK_STATE_NORMAL] = style->white; gtk_widget_set_style (vw->canvas, style); +#endif + +#if GTK_CHECK_VERSION(3,8,0) + gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas); +#else gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (vw->sw), vw->canvas); +#endif + gtk_widget_show (vw->canvas); /* View */ -- cgit v1.2.3 From 3729f47ae2eca524afdd7bb2e7febec0ddf4bc84 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Tue, 26 Aug 2014 21:17:53 +0200 Subject: =?UTF-8?q?Translations.=20Czech=20translation=20update=20by=20Iva?= =?UTF-8?q?n=20=C5=98iho=C5=A1ek=20(31%=20translated).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed bugs: - https://launchpad.net/bugs/1360262 (bzr r13533) --- po/cs.po | 1105 ++++++++++++++++++++++++++------------------------------------ 1 file changed, 454 insertions(+), 651 deletions(-) diff --git a/po/cs.po b/po/cs.po index a4b3f7e25..cd7b69ea3 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2014-08-14 23:05-0700\n" -"PO-Revision-Date: 2009-10-16 10:18+0100\n" -"Last-Translator: Ivan Masár \n" +"PO-Revision-Date: 2014-08-22 15:00+0100\n" +"Last-Translator: Ivan Ĺihošek \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" @@ -35,100 +35,98 @@ msgid "Create and edit Scalable Vector Graphics images" msgstr "Vytvářejte a upravujte vektorovou grafiku (SVG)" #: ../inkscape.desktop.in.h:5 -#, fuzzy msgid "New Drawing" msgstr "Kresba" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:2 -#, fuzzy msgctxt "Palette" msgid "Black" msgstr "ÄŚerná" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:3 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "90% Gray" -msgstr "Ĺ edĂ©" +msgstr "90% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:4 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "80% Gray" -msgstr "Ĺ edĂ©" +msgstr "80% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:5 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "70% Gray" -msgstr "Ĺ edĂ©" +msgstr "70% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:6 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "60% Gray" -msgstr "Ĺ edĂ©" +msgstr "60% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:7 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "50% Gray" -msgstr "Ĺ edĂ©" +msgstr "50% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:8 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "40% Gray" -msgstr "Ĺ edĂ©" +msgstr "40% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:9 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "30% Gray" -msgstr "Ĺ edĂ©" +msgstr "30% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:10 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "20% Gray" -msgstr "Ĺ edĂ©" +msgstr "20% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:11 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "10% Gray" -msgstr "Ĺ edĂ©" +msgstr "10% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:12 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "7.5% Gray" -msgstr "Ĺ edĂ©" +msgstr "7,5% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:13 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "5% Gray" -msgstr "Ĺ edĂ©" +msgstr "5% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:14 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "2.5% Gray" -msgstr "Ĺ edĂ©" +msgstr "2,5% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:15 @@ -141,109 +139,109 @@ msgstr "BĂ­lá" #: ../share/palettes/palettes.h:16 msgctxt "Palette" msgid "Maroon (#800000)" -msgstr "" +msgstr "Ĺ vestková" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:17 msgctxt "Palette" msgid "Red (#FF0000)" -msgstr "" +msgstr "ÄŚervená (#FF0000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:18 msgctxt "Palette" msgid "Olive (#808000)" -msgstr "" +msgstr "Olivová (#808000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:19 msgctxt "Palette" msgid "Yellow (#FFFF00)" -msgstr "" +msgstr "Ĺ˝lutá (#FFFF00)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:20 msgctxt "Palette" msgid "Green (#008000)" -msgstr "" +msgstr "Zelená (#008000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:21 msgctxt "Palette" msgid "Lime (#00FF00)" -msgstr "" +msgstr "Limetková (#00FF00)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:22 msgctxt "Palette" msgid "Teal (#008080)" -msgstr "" +msgstr "Modrozelená (#008080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:23 msgctxt "Palette" msgid "Aqua (#00FFFF)" -msgstr "" +msgstr "Azurová (#00FFFF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:24 msgctxt "Palette" msgid "Navy (#000080)" -msgstr "" +msgstr "NámoĹ™. modrá (#000080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:25 msgctxt "Palette" msgid "Blue (#0000FF)" -msgstr "" +msgstr "Modrá (#0000FF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:26 msgctxt "Palette" msgid "Purple (#800080)" -msgstr "" +msgstr "Purpurová (#800080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:27 msgctxt "Palette" msgid "Fuchsia (#FF00FF)" -msgstr "" +msgstr "RĹŻĹľovofialová (#FF00FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:28 msgctxt "Palette" msgid "black (#000000)" -msgstr "" +msgstr "ÄŚerná (#000000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:29 msgctxt "Palette" msgid "dimgray (#696969)" -msgstr "" +msgstr "Ĺ edivá (#696969)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:30 msgctxt "Palette" msgid "gray (#808080)" -msgstr "" +msgstr "Ĺ edá (#808080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:31 msgctxt "Palette" msgid "darkgray (#A9A9A9)" -msgstr "" +msgstr "Temněšedá (#A9A9A9)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:32 msgctxt "Palette" msgid "silver (#C0C0C0)" -msgstr "" +msgstr "Stříbrná (#C0C0C0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:33 msgctxt "Palette" msgid "lightgray (#D3D3D3)" -msgstr "" +msgstr "SvÄ›tlešedá (#DCDCDC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:34 @@ -261,7 +259,7 @@ msgstr "" #: ../share/palettes/palettes.h:36 msgctxt "Palette" msgid "white (#FFFFFF)" -msgstr "" +msgstr "BĂ­lá (#FFFFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:37 @@ -279,13 +277,13 @@ msgstr "" #: ../share/palettes/palettes.h:39 msgctxt "Palette" msgid "brown (#A52A2A)" -msgstr "" +msgstr "HnÄ›dá (#A52A2A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:40 msgctxt "Palette" msgid "firebrick (#B22222)" -msgstr "" +msgstr "Pálená cihla (#B22222)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:41 @@ -309,13 +307,13 @@ msgstr "" #: ../share/palettes/palettes.h:44 msgctxt "Palette" msgid "red (#FF0000)" -msgstr "" +msgstr "ÄŚervená (#FF0000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:45 msgctxt "Palette" msgid "snow (#FFFAFA)" -msgstr "" +msgstr "SnÄ›hobĂ­lá (#FFFAFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:46 @@ -327,19 +325,19 @@ msgstr "" #: ../share/palettes/palettes.h:47 msgctxt "Palette" msgid "salmon (#FA8072)" -msgstr "" +msgstr "Lososová (#FA8072)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:48 msgctxt "Palette" msgid "tomato (#FF6347)" -msgstr "" +msgstr "RajÄŤatová (#FF6347)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:49 msgctxt "Palette" msgid "darksalmon (#E9967A)" -msgstr "" +msgstr "TmavĂ˝ losos (#E9967A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:50 @@ -351,7 +349,7 @@ msgstr "" #: ../share/palettes/palettes.h:51 msgctxt "Palette" msgid "orangered (#FF4500)" -msgstr "" +msgstr "OranĹľovoÄŤervená (#FF4500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:52 @@ -363,7 +361,7 @@ msgstr "" #: ../share/palettes/palettes.h:53 msgctxt "Palette" msgid "sienna (#A0522D)" -msgstr "" +msgstr "Siena (#A0522D)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:54 @@ -375,7 +373,7 @@ msgstr "" #: ../share/palettes/palettes.h:55 msgctxt "Palette" msgid "chocolate (#D2691E)" -msgstr "" +msgstr "ÄŚokoládová (#D2691E)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:56 @@ -387,7 +385,7 @@ msgstr "" #: ../share/palettes/palettes.h:57 msgctxt "Palette" msgid "sandybrown (#F4A460)" -msgstr "" +msgstr "PĂ­sková (#F4A460)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:58 @@ -1159,73 +1157,63 @@ msgstr "" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:185 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 1" -msgstr "ZmÄ›na měřítka uzlĹŻ" +msgstr "Ĺ arlat 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:186 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 2" -msgstr "ZmÄ›na měřítka uzlĹŻ" +msgstr "Ĺ arlat 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:187 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 3" -msgstr "ZmÄ›na měřítka uzlĹŻ" +msgstr "Ĺ arlat 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:188 -#, fuzzy msgctxt "Palette" msgid "Snowy White" -msgstr "BĂ­lá" +msgstr "SnÄ›hobĂ­lá" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:189 -#, fuzzy msgctxt "Palette" msgid "Aluminium 1" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:190 -#, fuzzy msgctxt "Palette" msgid "Aluminium 2" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:191 -#, fuzzy msgctxt "Palette" msgid "Aluminium 3" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:192 -#, fuzzy msgctxt "Palette" msgid "Aluminium 4" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 4" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:193 -#, fuzzy msgctxt "Palette" msgid "Aluminium 5" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 5" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:194 -#, fuzzy msgctxt "Palette" msgid "Aluminium 6" -msgstr "Nejmenší velikost" +msgstr "HlinĂ­k 6" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:195 @@ -1244,13 +1232,13 @@ msgstr "" #: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 msgctxt "Symbol" msgid "Telephone" -msgstr "" +msgstr "Telefon" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 msgctxt "Symbol" msgid "Mail" -msgstr "" +msgstr "Pošta" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 @@ -1273,17 +1261,15 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 -#, fuzzy msgctxt "Symbol" msgid "First Aid" -msgstr "PrvnĂ­ vybranĂ˝" +msgstr "PrvnĂ­ pomoc" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 -#, fuzzy msgctxt "Symbol" msgid "Lost and Found" -msgstr "Nezaobleno" +msgstr "Ztráty a nálezy" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 @@ -1319,7 +1305,7 @@ msgstr "" #: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 msgctxt "Symbol" msgid "Stairs" -msgstr "" +msgstr "Schody" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 @@ -1335,28 +1321,27 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 -#, fuzzy msgctxt "Symbol" msgid "Elevator" -msgstr "Vztah" +msgstr "VĂ˝tah" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 msgctxt "Symbol" msgid "Toilets - Men" -msgstr "" +msgstr "Záchod - páni" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 msgctxt "Symbol" msgid "Toilets - Women" -msgstr "" +msgstr "Záchod - dámy" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 msgctxt "Symbol" msgid "Toilets" -msgstr "" +msgstr "Záchod" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1370,37 +1355,33 @@ msgstr "" #: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 msgctxt "Symbol" msgid "Drinking Fountain" -msgstr "" +msgstr "PĂ­tko" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 -#, fuzzy msgctxt "Symbol" msgid "Waiting Room" -msgstr "Skript" +msgstr "ÄŚekárna" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 #: ../share/symbols/symbols.h:308 -#, fuzzy msgctxt "Symbol" msgid "Information" msgstr "Informace" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 -#, fuzzy msgctxt "Symbol" msgid "Hotel Information" -msgstr "Informace" +msgstr "HotelovĂ© informace" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 -#, fuzzy msgctxt "Symbol" msgid "Air Transportation" -msgstr "Informace" +msgstr "Letecká doprava" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1408,7 +1389,7 @@ msgstr "Informace" #: ../share/symbols/symbols.h:318 msgctxt "Symbol" msgid "Heliport" -msgstr "" +msgstr "Heliport" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1416,35 +1397,31 @@ msgstr "" #: ../share/symbols/symbols.h:314 msgctxt "Symbol" msgid "Taxi" -msgstr "" +msgstr "TaxĂ­k" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 -#, fuzzy msgctxt "Symbol" msgid "Bus" -msgstr "Modrá" +msgstr "Autobus" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 -#, fuzzy msgctxt "Symbol" msgid "Ground Transportation" -msgstr "Informace" +msgstr "PozemnĂ­ doprava" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 -#, fuzzy msgctxt "Symbol" msgid "Rail Transportation" -msgstr "Informace" +msgstr "Vlaková doprava" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 -#, fuzzy msgctxt "Symbol" msgid "Water Transportation" -msgstr "Informace" +msgstr "VodnĂ­ doprava" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1452,7 +1429,7 @@ msgstr "Informace" #: ../share/symbols/symbols.h:316 msgctxt "Symbol" msgid "Car Rental" -msgstr "" +msgstr "PĹŻjÄŤovna aut" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1460,7 +1437,7 @@ msgstr "" #: ../share/symbols/symbols.h:228 msgctxt "Symbol" msgid "Restaurant" -msgstr "" +msgstr "Restaurace" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 @@ -1470,10 +1447,9 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 -#, fuzzy msgctxt "Symbol" msgid "Bar" -msgstr "ZnaÄŤky" +msgstr "Bar" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 @@ -1491,7 +1467,7 @@ msgstr "" #: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 msgctxt "Symbol" msgid "Barber Shop" -msgstr "" +msgstr "HoliÄŤstvĂ­" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 @@ -1503,7 +1479,7 @@ msgstr "" #: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 msgctxt "Symbol" msgid "Ticket Purchase" -msgstr "" +msgstr "Prodej jĂ­zdenek" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 @@ -1519,43 +1495,39 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 -#, fuzzy msgctxt "Symbol" msgid "Customs" -msgstr "V_lastnĂ­" +msgstr "Celnice" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 -#, fuzzy msgctxt "Symbol" msgid "Immigration" -msgstr "CĂ­l tisku" +msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 -#, fuzzy msgctxt "Symbol" msgid "Departing Flights" -msgstr "Výška cĂ­le" +msgstr "Odlety" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 -#, fuzzy msgctxt "Symbol" msgid "Arriving Flights" -msgstr "Jas" +msgstr "Přílety" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 msgctxt "Symbol" msgid "Smoking" -msgstr "" +msgstr "KouĹ™enĂ­ povoleno" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 msgctxt "Symbol" msgid "No Smoking" -msgstr "" +msgstr "Zákaz kouĹ™enĂ­" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1563,25 +1535,25 @@ msgstr "" #: ../share/symbols/symbols.h:325 msgctxt "Symbol" msgid "Parking" -msgstr "" +msgstr "ParkovištÄ›" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 msgctxt "Symbol" msgid "No Parking" -msgstr "" +msgstr "Zákaz parkovánĂ­" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 msgctxt "Symbol" msgid "No Dogs" -msgstr "" +msgstr "Zákaz psĹŻ" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 msgctxt "Symbol" msgid "No Entry" -msgstr "" +msgstr "Zákaz vstupu" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbols.svg @@ -1589,7 +1561,7 @@ msgstr "" #: ../share/symbols/symbols.h:218 msgctxt "Symbol" msgid "Exit" -msgstr "" +msgstr "VĂ˝chod" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 @@ -1599,10 +1571,9 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 -#, fuzzy msgctxt "Symbol" msgid "Right Arrow" -msgstr "Práva" +msgstr "Ĺ ipka vpravo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 @@ -1638,10 +1609,9 @@ msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 -#, fuzzy msgctxt "Symbol" msgid "Down Arrow" -msgstr "Chyby" +msgstr "" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 @@ -1728,88 +1698,79 @@ msgstr "" #: ../share/symbols/symbols.h:142 msgctxt "Symbol" msgid "Flow Chart Shapes" -msgstr "" +msgstr "ZnaÄŤky vĂ˝vojovĂ©ho diagramu" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:143 msgctxt "Symbol" msgid "Process" -msgstr "" +msgstr "Proces" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:144 -#, fuzzy msgctxt "Symbol" msgid "Input/Output" -msgstr "VĂ˝stup" +msgstr "Vstup/vĂ˝stup" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:145 -#, fuzzy msgctxt "Symbol" msgid "Document" msgstr "Dokument" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:146 -#, fuzzy msgctxt "Symbol" msgid "Manual Operation" -msgstr "Sytost" +msgstr "RuÄŤnĂ­ operace" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:147 -#, fuzzy msgctxt "Symbol" msgid "Preparation" -msgstr "Sytost" +msgstr "Příprava" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:148 -#, fuzzy msgctxt "Symbol" msgid "Merge" -msgstr "Měřítko" +msgstr "SluÄŤovánĂ­" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:149 -#, fuzzy msgctxt "Symbol" msgid "Decision" -msgstr "PĹ™esnost" +msgstr "RozhodovánĂ­" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:150 msgctxt "Symbol" msgid "Magnetic Tape" -msgstr "" +msgstr "MagnetickĂ˝ pásek" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:151 -#, fuzzy msgctxt "Symbol" msgid "Display" -msgstr "ReĹľim zobrazenĂ­" +msgstr "ZobrazovaÄŤ" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:152 msgctxt "Symbol" msgid "Auxiliary Operation" -msgstr "" +msgstr "Pomocná operace" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:153 -#, fuzzy msgctxt "Symbol" msgid "Manual Input" -msgstr "DXF Vstup" +msgstr "RuÄŤnĂ­ vstup" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:154 -#, fuzzy msgctxt "Symbol" msgid "Extract" -msgstr "Extrahovat jeden obrázek" +msgstr "Extrakce" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:155 @@ -1821,36 +1782,34 @@ msgstr "" #: ../share/symbols/symbols.h:156 msgctxt "Symbol" msgid "Punched Card" -msgstr "" +msgstr "DÄ›rnĂ˝ štĂ­tek" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:157 -#, fuzzy msgctxt "Symbol" msgid "Punch Tape" -msgstr "ÄŚernĂ˝ obrys" +msgstr "DÄ›rnĂ˝ pásek" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:158 msgctxt "Symbol" msgid "Online Storage" -msgstr "" +msgstr "ĂšloĹľištÄ› online" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:159 msgctxt "Symbol" msgid "Keying" -msgstr "" +msgstr "KlĂ­ÄŤovánĂ­" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:160 msgctxt "Symbol" msgid "Sort" -msgstr "" +msgstr "TřídÄ›nĂ­" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:161 -#, fuzzy msgctxt "Symbol" msgid "Connector" msgstr "Konektor" @@ -1949,58 +1908,57 @@ msgstr "" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:177 -#, fuzzy msgctxt "Symbol" msgid "Logic Symbols" -msgstr "khmerština (km)" +msgstr "LogickĂ© znaÄŤky" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:178 msgctxt "Symbol" msgid "Xnor Gate" -msgstr "" +msgstr "Hradlo XNOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:179 msgctxt "Symbol" msgid "Xor Gate" -msgstr "" +msgstr "Hradlo XOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:180 msgctxt "Symbol" msgid "Nor Gate" -msgstr "" +msgstr "Hradlo NOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:181 msgctxt "Symbol" msgid "Or Gate" -msgstr "" +msgstr "Hradlo OR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:182 msgctxt "Symbol" msgid "Nand Gate" -msgstr "" +msgstr "Hradlo NAND" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:183 msgctxt "Symbol" msgid "And Gate" -msgstr "" +msgstr "Hradlo AND" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:184 msgctxt "Symbol" msgid "Buffer" -msgstr "" +msgstr "Vyr. paměť" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:185 msgctxt "Symbol" msgid "Not Gate" -msgstr "" +msgstr "Hradlo NOT" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:186 @@ -2016,56 +1974,51 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:188 -#, fuzzy msgctxt "Symbol" msgid "Map Symbols" -msgstr "khmerština (km)" +msgstr "MapovĂ© znaÄŤky" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:189 -#, fuzzy msgctxt "Symbol" msgid "Bed and Breakfast" -msgstr "Tvorba a Ăşpravy barevnĂ˝ch pĹ™echodĹŻ" +msgstr "Nocleh se snĂ­danĂ­" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:190 msgctxt "Symbol" msgid "Youth Hostel" -msgstr "" +msgstr "MládeĹľnická ubytovna" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:191 -#, fuzzy msgctxt "Symbol" msgid "Shelter" -msgstr "Filtry" +msgstr "PřístĹ™eší" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:192 msgctxt "Symbol" msgid "Motel" -msgstr "" +msgstr "Motel" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:193 msgctxt "Symbol" msgid "Hotel" -msgstr "" +msgstr "Hotel" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:194 -#, fuzzy msgctxt "Symbol" msgid "Hostel" -msgstr "rozšířit" +msgstr "Ubytovna" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:195 -#, fuzzy msgctxt "Symbol" msgid "Chalet" -msgstr "_Paleta" +msgstr "Horská bouda" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:196 @@ -2075,16 +2028,15 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:197 -#, fuzzy msgctxt "Symbol" msgid "Camping" -msgstr "HvÄ›zda: ZmÄ›na zaoblenĂ­" +msgstr "Kempink" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:198 msgctxt "Symbol" msgid "Alpine Hut" -msgstr "" +msgstr "Alpská bouda" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:199 @@ -2094,79 +2046,75 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:200 -#, fuzzy msgctxt "Symbol" msgid "Playground" -msgstr "PozadĂ­:" +msgstr "HĹ™ištÄ›" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:201 msgctxt "Symbol" msgid "Fountain" -msgstr "" +msgstr "Pramen" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:202 msgctxt "Symbol" msgid "Library" -msgstr "" +msgstr "Knihovna" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:203 msgctxt "Symbol" msgid "Town Hall" -msgstr "" +msgstr "Radnice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:204 msgctxt "Symbol" msgid "Court" -msgstr "" +msgstr "Soud" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:205 msgctxt "Symbol" msgid "Fire Station / House" -msgstr "" +msgstr "HasiÄŤská zbrojnice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:206 -#, fuzzy msgctxt "Symbol" msgid "Police Station" -msgstr "VĂ­ce sytosti" +msgstr "PolicejnĂ­ stanice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:207 msgctxt "Symbol" msgid "Prison" -msgstr "" +msgstr "VÄ›znice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:208 msgctxt "Symbol" msgid "Post Office" -msgstr "" +msgstr "PoštovnĂ­ úřad" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:209 -#, fuzzy msgctxt "Symbol" msgid "Public Building" -msgstr "Public Domain" +msgstr "VeĹ™ejná budova" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:210 msgctxt "Symbol" msgid "Recycling" -msgstr "" +msgstr "Recyklace" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:211 -#, fuzzy msgctxt "Symbol" msgid "Survey Point" -msgstr "VykreslenĂ­ čáry" +msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:212 @@ -2182,7 +2130,6 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:214 -#, fuzzy msgctxt "Symbol" msgid "Steps" msgstr "Kroky" @@ -2207,10 +2154,9 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:219 -#, fuzzy msgctxt "Symbol" msgid "Entrance" -msgstr "Zrušit" +msgstr "Vchod" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:220 @@ -2220,10 +2166,9 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:221 -#, fuzzy msgctxt "Symbol" msgid "Cattle Grid" -msgstr "VytvoĹ™it vodĂ­tko" +msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:222 @@ -2233,10 +2178,9 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:223 -#, fuzzy msgctxt "Symbol" msgid "University" -msgstr "PrĹŻnik" +msgstr "Univerzita" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:224 @@ -2327,27 +2271,25 @@ msgstr "" #: ../share/symbols/symbols.h:240 msgctxt "Symbol" msgid "Pharmacy" -msgstr "" +msgstr "LĂ©kárna" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:241 -#, fuzzy msgctxt "Symbol" msgid "Accident & Emergency" -msgstr "Odsadit uzel" +msgstr "Záchranná sluĹľba" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:242 msgctxt "Symbol" msgid "Hospital" -msgstr "" +msgstr "Nemocnice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:243 -#, fuzzy msgctxt "Symbol" msgid "Doctors" -msgstr "Konektor" +msgstr "LĂ©kaĹ™i" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:244 @@ -2840,58 +2782,51 @@ msgstr "" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:327 -#, fuzzy msgctxt "Symbol" msgid "Fuel Station" -msgstr "Vztah" +msgstr "ÄŚerpacĂ­ stanice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:328 -#, fuzzy msgctxt "Symbol" msgid "Bus Stop" -msgstr "Na_stavit" +msgstr "Autobusová zastávka" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:329 -#, fuzzy msgctxt "Symbol" msgid "Bus Station" -msgstr "MĂ©nÄ› sytosti" +msgstr "Autobusová stanice" #. Symbols: ./MapSymbols.svg #: ../share/symbols/symbols.h:330 -#, fuzzy msgctxt "Symbol" msgid "Airport" -msgstr "Import" +msgstr "LetištÄ›" #: ../share/templates/templates.h:1 -#, fuzzy msgid "A4 Landscape Page" -msgstr "_Krajina" +msgstr "A4 naleĹľato" #: ../share/templates/templates.h:1 msgid "Empty A4 landscape sheet" -msgstr "" +msgstr "PráznĂ˝ list A4 naleĹľato" #: ../share/templates/templates.h:1 msgid "A4 paper sheet empty landscape" -msgstr "" +msgstr "PrázdnĂ˝ papĂ­r A4 naleĹľato" #: ../share/templates/templates.h:1 -#, fuzzy msgid "A4 Page" -msgstr "Strana" +msgstr "Strana A4" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Empty A4 sheet" -msgstr "Odstranit vĂ˝bÄ›r" +msgstr "PrázdnĂ˝ list A4" #: ../share/templates/templates.h:1 msgid "A4 paper sheet empty" -msgstr "" +msgstr "PrázdnĂ˝ list A4" #: ../share/templates/templates.h:1 #, fuzzy @@ -3256,7 +3191,7 @@ msgstr "Adresář pro palety (%s) je nedostupnĂ˝" #: ../src/color-profile.cpp:911 ../src/color-profile.cpp:928 msgid "(invalid UTF-8 string)" -msgstr "" +msgstr "(neplatnĂ˝ Ĺ™etÄ›zec UTF-8)" #: ../src/color-profile.cpp:913 ../src/filter-enums.cpp:121 #: ../src/live_effects/lpe-ruler.cpp:32 @@ -3285,14 +3220,13 @@ msgstr "ŽádnĂ©" #: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 msgid "Current layer is hidden. Unhide it to be able to draw on it." msgstr "" -"AktuálnĂ­ vrstva je skrytá. ZviditelnÄ›te ji aby jste do nĂ­ mohli " -"kreslit." +"AktuálnĂ­ vrstva je skrytá. Abyste do nĂ­ mohli kreslit, zviditelnÄ›te ji." #: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "" -"AktuálnĂ­ vrstva je uzamÄŤena. OdemknÄ›te ji aby jste do nĂ­ mohli " -"kreslit." +"AktuálnĂ­ vrstva je uzamÄŤena. Abyste do nĂ­ mohli kreslit, musĂ­te ji " +"odemknout." #: ../src/desktop-events.cpp:225 msgid "Create guide" @@ -3308,41 +3242,41 @@ msgid "Delete guide" msgstr "Odstranit vodĂ­tko" #: ../src/desktop-events.cpp:516 -#, fuzzy, c-format +#, c-format msgid "Guideline: %s" -msgstr "VodĂ­tko" +msgstr "VodĂ­tko: %s" #: ../src/desktop.cpp:880 msgid "No previous zoom." -msgstr "ŽádnĂ© pĹ™edchozĂ­ hodnoty pĹ™iblĂ­ĹľenĂ­." +msgstr "ŽádnĂ© pĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­." #: ../src/desktop.cpp:901 msgid "No next zoom." -msgstr "ŽádnĂ© další hodnoty pĹ™iblĂ­ĹľenĂ­." +msgstr "ŽádnĂ© další pĹ™iblĂ­ĹľenĂ­." #: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 msgid "Grid _units:" -msgstr "Jednotky mřížky:" +msgstr "_Jednotky mřížky:" #: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 msgid "_Origin X:" -msgstr "Počátek X:" +msgstr "_Počátek X:" #: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 #: ../src/ui/dialog/inkscape-preferences.cpp:737 #: ../src/ui/dialog/inkscape-preferences.cpp:762 msgid "X coordinate of grid origin" -msgstr "Počátek X souĹ™adnice mřížky" +msgstr "Počátek souĹ™adnice X mřížky" #: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 msgid "O_rigin Y:" -msgstr "Počátek Y:" +msgstr "P_očátek Y:" #: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 #: ../src/ui/dialog/inkscape-preferences.cpp:738 #: ../src/ui/dialog/inkscape-preferences.cpp:763 msgid "Y coordinate of grid origin" -msgstr "Počátek Y souĹ™adnice mřížky" +msgstr "Počátek souĹ™adnice Y mřížky" #: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 msgid "Spacing _Y:" @@ -3362,7 +3296,7 @@ msgstr "Ăšhel X:" #: ../src/display/canvas-axonomgrid.cpp:325 #: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Angle of x-axis" -msgstr "" +msgstr "Ăšhel osy x" #: ../src/display/canvas-axonomgrid.cpp:327 #: ../src/ui/dialog/inkscape-preferences.cpp:770 @@ -3373,7 +3307,7 @@ msgstr "Ăšhel Z:" #: ../src/display/canvas-axonomgrid.cpp:327 #: ../src/ui/dialog/inkscape-preferences.cpp:770 msgid "Angle of z-axis" -msgstr "" +msgstr "Ăšhel osy z" #: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 #, fuzzy @@ -3436,28 +3370,30 @@ msgstr "Titulek" msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." -msgstr "" +msgstr "UrÄŤuje, zda tato mřížka bude ÄŤi nebude pĹ™ilĂ­nat. MĹŻĹľe bĂ˝t zapnuto " +"i pro neviditelnou mřížku." #: ../src/display/canvas-grid.cpp:346 msgid "Snap to visible _grid lines only" -msgstr "" +msgstr "PĹ™ilĂ­nat jen k viditelnĂ© mřížce" #: ../src/display/canvas-grid.cpp:347 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" -msgstr "" +msgstr "Je-li oddáleno, nebudou viditelnĂ© všechny čáry mřížky. PĹ™ilĂ­nat budou " +"jen ty viditelnĂ©." #: ../src/display/canvas-grid.cpp:351 -#, fuzzy msgid "_Visible" -msgstr "Barvy" +msgstr "_ViditelnĂ©" #: ../src/display/canvas-grid.cpp:352 msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." -msgstr "" +msgstr "UrÄŤĂ­, zda bude ÄŤi nebude mřížka zobrazena. Objekty budou pĹ™ilĂ­nat " +"i k nezobrazenĂ© mřížce." #: ../src/display/canvas-grid.cpp:699 msgid "Spacing _X:" @@ -3475,27 +3411,26 @@ msgstr "Vzdálenost mezi vodorovnĂ˝mi ÄŤarami mřížky" #: ../src/display/canvas-grid.cpp:732 msgid "_Show dots instead of lines" -msgstr "" +msgstr "_NamĂ­sto ÄŤar zobrazit teÄŤky" #: ../src/display/canvas-grid.cpp:733 msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "" +msgstr "Je-li nastaveno, zobrazĂ­ se na mřížkovĂ˝ch bodech mĂ­sto ÄŤar teÄŤky" #. TRANSLATORS: undefined target for snapping #: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 #: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 msgid "UNDEFINED" -msgstr "" +msgstr "NEURÄŚENO" #: ../src/display/snap-indicator.cpp:79 -#, fuzzy msgid "grid line" -msgstr "VodĂ­tko" +msgstr "čára mřížky" #: ../src/display/snap-indicator.cpp:82 #, fuzzy msgid "grid intersection" -msgstr "PrĹŻnik" +msgstr "prĹŻseÄŤĂ­ky mřížky" #: ../src/display/snap-indicator.cpp:85 #, fuzzy @@ -3788,9 +3723,8 @@ msgid " (No preferences)" msgstr "Vlastnosti lupy" #: ../src/extension/effect.h:70 ../src/verbs.cpp:2160 -#, fuzzy msgid "Extensions" -msgstr "RozšířenĂ­ \"" +msgstr "RozšířenĂ­" #. This is some filler text, needs to change before relase #: ../src/extension/error-file.cpp:52 @@ -3825,12 +3759,12 @@ msgid "" " This is caused by an improper .inx file for this extension. An improper ." "inx file could have been caused by a faulty installation of Inkscape." msgstr "" -" Toto je zpĹŻsobeno nesprávnĂ˝m .inx souborem pro toto rozšířenĂ­. NesprávnĂ˝ ." -"inx soubor mĹŻĹľe bĂ˝t zpĹŻsoben špatnou instalacĂ­ Inkscape." +" Toto je zpĹŻsobeno nesprávnĂ˝m souborem .inx pro toto rozšířenĂ­. NesprávnĂ˝ " +"soubor .inx mĹŻĹľe bĂ˝t zpĹŻsoben špatnou instalacĂ­ Inkscape." #: ../src/extension/extension.cpp:276 msgid "the extension is designed for Windows only." -msgstr "" +msgstr "toto rozšířenĂ­ je vytvoĹ™eno jen pro Windows." #: ../src/extension/extension.cpp:281 msgid "an ID was not defined for it." @@ -3842,7 +3776,7 @@ msgstr "žádnĂ© jmĂ©no nebylo definováno." #: ../src/extension/extension.cpp:289 msgid "the XML description of it got lost." -msgstr "XML popis nebo jej ztratilo." +msgstr "popis XML nebo jej ztratilo." #: ../src/extension/extension.cpp:293 msgid "no implementation was defined for the extension." @@ -3989,9 +3923,8 @@ msgstr "Posun:" #: ../src/extension/internal/bitmap/threshold.cpp:44 #: ../src/extension/internal/bitmap/unsharpmask.cpp:50 #: ../src/extension/internal/bitmap/wave.cpp:45 -#, fuzzy msgid "Raster" -msgstr "Posunout výš" +msgstr "Rastr" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 #, fuzzy @@ -3999,9 +3932,8 @@ msgid "Apply adaptive thresholding to selected bitmap(s)" msgstr "Aplikovat transformaci na vĂ˝bÄ›r" #: ../src/extension/internal/bitmap/addNoise.cpp:45 -#, fuzzy msgid "Add Noise" -msgstr "PĹ™idat Uzly" +msgstr "PĹ™idat šum" #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); #: ../src/extension/internal/bitmap/addNoise.cpp:47 @@ -4022,41 +3954,38 @@ msgstr "Typ:" #: ../src/extension/internal/bitmap/addNoise.cpp:48 msgid "Uniform Noise" -msgstr "" +msgstr "RovnomÄ›rnĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:49 msgid "Gaussian Noise" -msgstr "" +msgstr "GaussovskĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:50 msgid "Multiplicative Gaussian Noise" -msgstr "" +msgstr "NásobnĂ˝ gaussovskĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:51 msgid "Impulse Noise" -msgstr "" +msgstr "BlikavĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:52 -#, fuzzy msgid "Laplacian Noise" -msgstr "FraktálnĂ­ šum" +msgstr "LaplaceovskĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:53 msgid "Poisson Noise" -msgstr "" +msgstr "PoissonovskĂ˝ šum" #: ../src/extension/internal/bitmap/addNoise.cpp:60 -#, fuzzy msgid "Add random noise to selected bitmap(s)" -msgstr "Ponechat vybráno" +msgstr "PĹ™idat náhodnĂ˝ šum do vybranĂ˝ch bitmap" #: ../src/extension/internal/bitmap/blur.cpp:38 #: ../src/extension/internal/filter/blurs.h:54 #: ../src/extension/internal/filter/paint.h:710 #: ../src/extension/internal/filter/transparency.h:343 -#, fuzzy msgid "Blur" -msgstr "Modrá" +msgstr "RozmazánĂ­" #: ../src/extension/internal/bitmap/blur.cpp:40 #: ../src/extension/internal/bitmap/charcoal.cpp:40 @@ -4067,9 +3996,8 @@ msgstr "Modrá" #: ../src/extension/internal/bitmap/sharpen.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43 #: ../src/ui/dialog/filter-effects-dialog.cpp:2894 -#, fuzzy msgid "Radius:" -msgstr "PolomÄ›r" +msgstr "PolomÄ›r:" #: ../src/extension/internal/bitmap/blur.cpp:41 #: ../src/extension/internal/bitmap/charcoal.cpp:41 @@ -4077,69 +4005,61 @@ msgstr "PolomÄ›r" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 #: ../src/extension/internal/bitmap/sharpen.cpp:41 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#, fuzzy msgid "Sigma:" -msgstr "malĂ˝" +msgstr "Sigma:" #: ../src/extension/internal/bitmap/blur.cpp:47 -#, fuzzy msgid "Blur selected bitmap(s)" -msgstr "Seskupit vybranĂ© objekty" +msgstr "Rozmazat vybranĂ© bitmapy" #: ../src/extension/internal/bitmap/channel.cpp:48 -#, fuzzy msgid "Channel" -msgstr "Zrušit" +msgstr "Kanál" #: ../src/extension/internal/bitmap/channel.cpp:50 -#, fuzzy msgid "Layer:" -msgstr "_Vrstva" +msgstr "Vrstva:" #: ../src/extension/internal/bitmap/channel.cpp:51 #: ../src/extension/internal/bitmap/levelChannel.cpp:55 msgid "Red Channel" -msgstr "" +msgstr "ÄŚervenĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:52 #: ../src/extension/internal/bitmap/levelChannel.cpp:56 msgid "Green Channel" -msgstr "" +msgstr "ZelenĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:53 #: ../src/extension/internal/bitmap/levelChannel.cpp:57 msgid "Blue Channel" -msgstr "" +msgstr "ModrĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:54 #: ../src/extension/internal/bitmap/levelChannel.cpp:58 -#, fuzzy msgid "Cyan Channel" -msgstr "VytvoĹ™it táhlo" +msgstr "AzurovĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:55 #: ../src/extension/internal/bitmap/levelChannel.cpp:59 -#, fuzzy msgid "Magenta Channel" -msgstr "RĹŻĹľová" +msgstr "PurpurovĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:56 #: ../src/extension/internal/bitmap/levelChannel.cpp:60 -#, fuzzy msgid "Yellow Channel" -msgstr "Ĺ˝lutá" +msgstr "Ĺ˝lutĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:57 #: ../src/extension/internal/bitmap/levelChannel.cpp:61 -#, fuzzy msgid "Black Channel" -msgstr "ÄŚerná vĂ˝plĹ" +msgstr "ÄŚernĂ˝ kanál" #: ../src/extension/internal/bitmap/channel.cpp:58 #: ../src/extension/internal/bitmap/levelChannel.cpp:62 #, fuzzy msgid "Opacity Channel" -msgstr "KrytĂ­" +msgstr "Kanál prĹŻhlednosti" #: ../src/extension/internal/bitmap/channel.cpp:59 #: ../src/extension/internal/bitmap/levelChannel.cpp:63 @@ -4148,7 +4068,7 @@ msgstr "" #: ../src/extension/internal/bitmap/channel.cpp:66 msgid "Extract specific channel from image" -msgstr "" +msgstr "Extrahovat urÄŤitĂ˝ kanál z obrázku" #: ../src/extension/internal/bitmap/charcoal.cpp:38 #, fuzzy @@ -4162,9 +4082,8 @@ msgstr "Aplikovat transformaci na vĂ˝bÄ›r" #: ../src/extension/internal/bitmap/colorize.cpp:50 #: ../src/extension/internal/filter/color.h:317 -#, fuzzy msgid "Colorize" -msgstr "Barva" +msgstr "ObarvenĂ­" #: ../src/extension/internal/bitmap/colorize.cpp:52 #: ../src/extension/internal/filter/bumps.h:101 @@ -4226,13 +4145,12 @@ msgstr "Barva" #: ../src/extension/internal/bitmap/colorize.cpp:58 msgid "Colorize selected bitmap(s) with specified color, using given opacity" -msgstr "" +msgstr "ObarvenĂ­ vybranĂ© bitmapy urÄŤenou barvou s pouĹľitĂ­m danĂ© prĹŻhlednosti" #: ../src/extension/internal/bitmap/contrast.cpp:40 #: ../src/extension/internal/filter/color.h:1114 -#, fuzzy msgid "Contrast" -msgstr "Rohy:" +msgstr "Kontrast" #: ../src/extension/internal/bitmap/contrast.cpp:42 #, fuzzy @@ -4241,37 +4159,33 @@ msgstr "Táhnout kĹ™ivku" #: ../src/extension/internal/bitmap/contrast.cpp:48 msgid "Increase or decrease contrast in bitmap(s)" -msgstr "" +msgstr "Zvýšit nebo snĂ­Ĺľit kontrast v bitmapÄ›" #: ../src/extension/internal/bitmap/crop.cpp:66 #: ../src/extension/internal/filter/bumps.h:86 #: ../src/extension/internal/filter/bumps.h:315 msgid "Crop" -msgstr "" +msgstr "OĹ™ez" #: ../src/extension/internal/bitmap/crop.cpp:68 msgid "Top (px):" -msgstr "" +msgstr "NahoĹ™e (px):" #: ../src/extension/internal/bitmap/crop.cpp:69 -#, fuzzy msgid "Bottom (px):" -msgstr "Naspod" +msgstr "Dole (px):" #: ../src/extension/internal/bitmap/crop.cpp:70 -#, fuzzy msgid "Left (px):" -msgstr "Posuny" +msgstr "Vlevo (px):" #: ../src/extension/internal/bitmap/crop.cpp:71 -#, fuzzy msgid "Right (px):" -msgstr "Práva" +msgstr "Vpravo (px):" #: ../src/extension/internal/bitmap/crop.cpp:77 -#, fuzzy msgid "Crop selected bitmap(s)." -msgstr "Seskupit vybranĂ© objekty" +msgstr "OĹ™ezat vybranĂ© bitmapy." #: ../src/extension/internal/bitmap/cycleColormap.cpp:37 msgid "Cycle Colormap" @@ -10719,49 +10633,44 @@ msgid "Drag to resize the flowed text frame" msgstr "TaĹľenĂ­m zmÄ›nĂ­te velikost rámu pro vlitĂ˝ text" #: ../src/path-chemistry.cpp:53 -#, fuzzy msgid "Select object(s) to combine." -msgstr "Vyberte objekty k pĹ™esunu výš" +msgstr "Vyberte objekty ke kombinaci." #: ../src/path-chemistry.cpp:57 -#, fuzzy msgid "Combining paths..." -msgstr "UzavĂ­rám kĹ™ivku." +msgstr "Kombinuji kĹ™ivky..." #: ../src/path-chemistry.cpp:170 msgid "Combine" -msgstr "Kombinace" +msgstr "Kombinovat" #: ../src/path-chemistry.cpp:177 -#, fuzzy msgid "No path(s) to combine in the selection." -msgstr "ŽádnĂ© kĹ™ivky k zjednodušenĂ­ nebyly vybrány." +msgstr "Nevybrány žádnĂ© kĹ™ivky ke zkombinovánĂ­." #: ../src/path-chemistry.cpp:189 msgid "Select path(s) to break apart." -msgstr "Vyberte kĹ™ivku(y) k rozdÄ›lenĂ­." +msgstr "Vyberte kĹ™ivku(y) k rozbitĂ­." #: ../src/path-chemistry.cpp:193 -#, fuzzy msgid "Breaking apart paths..." -msgstr "RozdÄ›lit na části" +msgstr "RozbĂ­jĂ­m kĹ™ivky..." #: ../src/path-chemistry.cpp:284 msgid "Break apart" -msgstr "RozdÄ›lit na části" +msgstr "RozbĂ­t" #: ../src/path-chemistry.cpp:286 msgid "No path(s) to break apart in the selection." -msgstr "ŽádnĂ© kĹ™ivky na rozbitĂ­ nebyly vybrány." +msgstr "ŽádnĂ© kĹ™ivky k rozbitĂ­ nebyly vybrány." #: ../src/path-chemistry.cpp:296 msgid "Select object(s) to convert to path." -msgstr "Vyberte objekt(y) k pĹ™evodu na kĹ™ivku." +msgstr "Vyberte objekt(y) k pĹ™evodu na kĹ™ivky." #: ../src/path-chemistry.cpp:302 -#, fuzzy msgid "Converting objects to paths..." -msgstr "PĹ™evĂ©st bitmapovĂ© objekty na cesty" +msgstr "PĹ™evádĂ­m objekty na kĹ™ivky..." #: ../src/path-chemistry.cpp:324 msgid "Object to path" @@ -10797,19 +10706,16 @@ msgid "Toggle multiple vanishing points" msgstr "" #: ../src/preferences-skeleton.h:101 -#, fuzzy msgid "Dip pen" -msgstr "Skript" +msgstr "Pero" #: ../src/preferences-skeleton.h:102 -#, fuzzy msgid "Marker" -msgstr "Ztmavit" +msgstr "Fix" #: ../src/preferences-skeleton.h:103 -#, fuzzy msgid "Brush" -msgstr "Modrá" +msgstr "Ĺ tÄ›tec" #: ../src/preferences-skeleton.h:104 #, fuzzy @@ -10933,9 +10839,8 @@ msgid "A name given to the resource" msgstr "" #: ../src/rdf.cpp:238 -#, fuzzy msgid "Date:" -msgstr "Datum" +msgstr "Datum:" #: ../src/rdf.cpp:239 msgid "" @@ -10944,9 +10849,8 @@ msgid "" msgstr "" #: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 -#, fuzzy msgid "Format:" -msgstr "Formát" +msgstr "Formát:" #: ../src/rdf.cpp:242 msgid "The file format, physical medium, or dimensions of the resource" @@ -10957,9 +10861,8 @@ msgid "The nature or genre of the resource" msgstr "" #: ../src/rdf.cpp:248 -#, fuzzy msgid "Creator:" -msgstr "TvĹŻrce" +msgstr "TvĹŻrce:" #: ../src/rdf.cpp:249 #, fuzzy @@ -10967,28 +10870,24 @@ msgid "An entity primarily responsible for making the resource" msgstr "JmĂ©no entity přímo odpovÄ›dnĂ© za vytvářenĂ­ obsahu tohoto dokumentu." #: ../src/rdf.cpp:251 -#, fuzzy msgid "Rights:" -msgstr "Práva" +msgstr "Práva:" #: ../src/rdf.cpp:252 msgid "Information about rights held in and over the resource" msgstr "" #: ../src/rdf.cpp:254 -#, fuzzy msgid "Publisher:" -msgstr "Vydavatel" +msgstr "Vydavatel:" #: ../src/rdf.cpp:255 -#, fuzzy msgid "An entity responsible for making the resource available" -msgstr "JmĂ©no entity zodpovÄ›dnĂ© za zpřístupnÄ›nĂ­ tohoto dokumentu" +msgstr "JmĂ©no entity odpovÄ›dnĂ© za zpřístupnÄ›nĂ­ tohoto dokumentu" #: ../src/rdf.cpp:258 -#, fuzzy msgid "Identifier:" -msgstr "Identifikátor" +msgstr "Identifikátor:" #: ../src/rdf.cpp:259 msgid "An unambiguous reference to the resource within a given context" @@ -11018,9 +10917,8 @@ msgid "A language of the resource" msgstr "" #: ../src/rdf.cpp:270 -#, fuzzy msgid "Keywords:" -msgstr "KlĂ­ÄŤová slova" +msgstr "KlĂ­ÄŤová slova:" #: ../src/rdf.cpp:271 msgid "The topic of the resource" @@ -11040,9 +10938,8 @@ msgid "" msgstr "" #: ../src/rdf.cpp:279 -#, fuzzy msgid "Description:" -msgstr "Popis" +msgstr "Popis:" #: ../src/rdf.cpp:280 #, fuzzy @@ -17372,8 +17269,8 @@ msgid "Nepali (ne)" msgstr "NovĂ˝ řádek" #: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Norwegian BokmĂĄl (nb)" -msgstr "norskĂ˝ bokmĂĄl (nb)" +msgid "Norwegian Bokmal (nb)" +msgstr "norskĂ˝ bokmal (nb)" #: ../src/ui/dialog/inkscape-preferences.cpp:524 msgid "Norwegian Nynorsk (nn)" @@ -17537,6 +17434,7 @@ msgid "" msgstr "MaximálnĂ­ dĂ©lka seznamu poslednÄ› otevĹ™enĂ˝ch dokumentĹŻ v menu Soubor" #: ../src/ui/dialog/inkscape-preferences.cpp:593 +#, no-c-format msgid "_Zoom correction factor (in %):" msgstr "" @@ -20695,8 +20593,8 @@ msgid "Set as _default" msgstr "Nastavit jako vĂ˝chozĂ­" #: ../src/ui/dialog/text-edit.cpp:87 -msgid "AaBbCcIiPpQq12369$€¢?.;/()" -msgstr "AaBbCcIiPpQqĂáÉéČ芚řĹřŽž12369$€¢?.;/()" +msgid "AaBbCcIiPpQq12369$€c?.;/()" +msgstr "AaBbCcIiPpQqĂáÉéČ芚řĹřŽž12369$€c?.;/()" #. Align buttons #: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1344 @@ -22835,9 +22733,9 @@ msgid "Blur tweak" msgstr "OpakovanĂ˝" #: ../src/ui/widget/filter-effect-chooser.cpp:27 -#, fuzzy +#, no-c-format msgid "Blur (%)" -msgstr "Modrá" +msgstr "RozmazánĂ­ (%)" #: ../src/ui/widget/layer-selector.cpp:118 msgid "Toggle current layer visibility" @@ -22866,9 +22764,9 @@ msgstr "" #: ../src/ui/widget/object-composite-settings.cpp:67 #: ../src/ui/widget/selected-style.cpp:1095 #: ../src/ui/widget/selected-style.cpp:1096 -#, fuzzy +#, no-c-format msgid "Opacity (%)" -msgstr "KrytĂ­, %:" +msgstr "NeprĹŻhlednost (%)" #: ../src/ui/widget/object-composite-settings.cpp:180 msgid "Change blur" @@ -22878,7 +22776,7 @@ msgstr "ZmÄ›na rozostĹ™enĂ­" #: ../src/ui/widget/selected-style.cpp:927 #: ../src/ui/widget/selected-style.cpp:1221 msgid "Change opacity" -msgstr "ZmÄ›nit prĹŻsvitnost" +msgstr "ZmÄ›nit prĹŻhlednost" #: ../src/ui/widget/page-sizer.cpp:235 msgid "U_nits:" @@ -28584,26 +28482,25 @@ msgstr "Ĺ Ă­Ĺ™ka:" #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:239 msgid "Miter join" -msgstr "OstrĂ˝ roh" +msgstr "HranatĂ˝ spoj" #. TRANSLATORS: Round join: joining lines with a rounded corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:247 msgid "Round join" -msgstr "KulatĂ˝ spoj" +msgstr "OblĂ˝ spoj" #. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:255 msgid "Bevel join" -msgstr "SraĹľená hrana spoje" +msgstr "ZkosenĂ˝ spoj" #: ../src/widgets/stroke-style.cpp:280 -#, fuzzy msgid "Miter _limit:" -msgstr "Limit rohu" +msgstr "_Limit hrany spoje:" #. Cap type #. TRANSLATORS: cap type specifies the shape for the ends of lines @@ -28622,7 +28519,7 @@ msgstr "RovnĂ˝ konec" #. line; the ends of the line are rounded #: ../src/widgets/stroke-style.cpp:314 msgid "Round cap" -msgstr "KulatĂ˝ konec" +msgstr "OblĂ˝ konec" #. TRANSLATORS: Square cap: the line shape extends beyond the end point of the #. line; the ends of the line are square @@ -28696,19 +28593,16 @@ msgid "Text: Change alignment" msgstr "Text: ZmÄ›nit zarovnánĂ­" #: ../src/widgets/text-toolbar.cpp:537 -#, fuzzy msgid "Text: Change line-height" -msgstr "Text: ZmÄ›nit zarovnánĂ­" +msgstr "Text: ZmÄ›nit výšku řádku" #: ../src/widgets/text-toolbar.cpp:586 -#, fuzzy msgid "Text: Change word-spacing" -msgstr "Text: ZmÄ›nit orientaci" +msgstr "Text: ZmÄ›nit prostrkánĂ­ slov" #: ../src/widgets/text-toolbar.cpp:627 -#, fuzzy msgid "Text: Change letter-spacing" -msgstr "ZvÄ›tšit mezery mezi znaky" +msgstr "Text: ZmÄ›nit prostrkánĂ­ znakĹŻ" #: ../src/widgets/text-toolbar.cpp:667 #, fuzzy @@ -28721,9 +28615,8 @@ msgid "Text: Change dy" msgstr "Text: ZmÄ›nit styl pĂ­sma " #: ../src/widgets/text-toolbar.cpp:736 -#, fuzzy msgid "Text: Change rotate" -msgstr "Text: ZmÄ›nit styl pĂ­sma " +msgstr "Text: ZmÄ›nit otoÄŤenĂ­" #: ../src/widgets/text-toolbar.cpp:784 msgid "Text: Change orientation" @@ -28747,54 +28640,49 @@ msgstr "" #: ../src/widgets/text-toolbar.cpp:1236 msgid "Font not found on system" -msgstr "" +msgstr "Font nenalezen v systĂ©mu" #: ../src/widgets/text-toolbar.cpp:1295 -#, fuzzy msgid "Font Style" -msgstr "Velikost pĂ­sma" +msgstr "Ĺez pĂ­sma" #: ../src/widgets/text-toolbar.cpp:1296 -#, fuzzy msgid "Font style" -msgstr "Velikost pĂ­sma" +msgstr "Ĺez pĂ­sma" #. Name #: ../src/widgets/text-toolbar.cpp:1313 msgid "Toggle Superscript" -msgstr "" +msgstr "PĹ™epnout hornĂ­ index" #. Label #: ../src/widgets/text-toolbar.cpp:1314 msgid "Toggle superscript" -msgstr "" +msgstr "PĹ™epnout hornĂ­ index" #. Name #: ../src/widgets/text-toolbar.cpp:1326 msgid "Toggle Subscript" -msgstr "" +msgstr "PĹ™epnout dolnĂ­ index" #. Label #: ../src/widgets/text-toolbar.cpp:1327 -#, fuzzy msgid "Toggle subscript" -msgstr "Postscript" +msgstr "PĹ™epnout dolnĂ­ index" #: ../src/widgets/text-toolbar.cpp:1368 msgid "Justify" -msgstr "Zarovnat do bloku" +msgstr "BlokovĂ© zarovnánĂ­" #. Name #: ../src/widgets/text-toolbar.cpp:1375 -#, fuzzy msgid "Alignment" -msgstr "Zarovnat doleva" +msgstr "ZarovnánĂ­" #. Label #: ../src/widgets/text-toolbar.cpp:1376 -#, fuzzy msgid "Text alignment" -msgstr "Text: ZmÄ›nit zarovnánĂ­" +msgstr "ZarovnánĂ­ textu" #: ../src/widgets/text-toolbar.cpp:1403 #, fuzzy @@ -28808,15 +28696,13 @@ msgstr "Svisle" #. Label #: ../src/widgets/text-toolbar.cpp:1417 -#, fuzzy msgid "Text orientation" -msgstr "Orientace strany:" +msgstr "Orientace textu:" #. Drop down menu #: ../src/widgets/text-toolbar.cpp:1440 -#, fuzzy msgid "Smaller spacing" -msgstr "Nastavit rozestupy:" +msgstr "Zmenšit prostrkánĂ­" #: ../src/widgets/text-toolbar.cpp:1440 ../src/widgets/text-toolbar.cpp:1471 #: ../src/widgets/text-toolbar.cpp:1502 @@ -28844,26 +28730,22 @@ msgstr "Přímka" #. short label #: ../src/widgets/text-toolbar.cpp:1447 -#, fuzzy msgid "Spacing between lines (times font size)" -msgstr "Mezery mezi řádky" +msgstr "Mezery mezi řádky (násobky velikosti pĂ­sma)" #. Drop down menu #: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 -#, fuzzy msgid "Negative spacing" -msgstr "Nastavit rozestupy:" +msgstr "ZápornĂ© prostrkánĂ­" #: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 -#, fuzzy msgid "Positive spacing" -msgstr "Mezery mezi řádky:" +msgstr "KladnĂ© prostrkánĂ­" #. name #: ../src/widgets/text-toolbar.cpp:1476 -#, fuzzy msgid "Word spacing" -msgstr "Nastavit rozestupy:" +msgstr "MezislovnĂ­ mezery" #. label #: ../src/widgets/text-toolbar.cpp:1477 @@ -28873,15 +28755,13 @@ msgstr "ReĹľim" #. short label #: ../src/widgets/text-toolbar.cpp:1478 -#, fuzzy msgid "Spacing between words (px)" -msgstr "Mezery mezi pĂ­smeny" +msgstr "MezislovnĂ­ mezery (px)" #. name #: ../src/widgets/text-toolbar.cpp:1507 -#, fuzzy msgid "Letter spacing" -msgstr "Nastavit rozestupy:" +msgstr "ProstrkánĂ­ znakĹŻ" #. label #: ../src/widgets/text-toolbar.cpp:1508 @@ -28891,27 +28771,23 @@ msgstr "DĂ©lka:" #. short label #: ../src/widgets/text-toolbar.cpp:1509 -#, fuzzy msgid "Spacing between letters (px)" -msgstr "Mezery mezi pĂ­smeny" +msgstr "ProstrkánĂ­ pĂ­smen (px)" #. name #: ../src/widgets/text-toolbar.cpp:1538 -#, fuzzy msgid "Kerning" -msgstr "_Kresba" +msgstr "PárovánĂ­ znakĹŻ" #. label #: ../src/widgets/text-toolbar.cpp:1539 -#, fuzzy msgid "Kern:" msgstr "Kerning nahoru" #. short label #: ../src/widgets/text-toolbar.cpp:1540 -#, fuzzy msgid "Horizontal kerning (px)" -msgstr "VodorovnĂ˝ kerning" +msgstr "VodorovnĂ© párovánĂ­ znakĹŻ (px)" #. name #: ../src/widgets/text-toolbar.cpp:1569 @@ -28927,15 +28803,13 @@ msgstr "Invertovat:" #. short label #: ../src/widgets/text-toolbar.cpp:1571 -#, fuzzy msgid "Vertical shift (px)" -msgstr "SvislĂ˝ posun" +msgstr "SvislĂ© posununutĂ­ (px)" #. name #: ../src/widgets/text-toolbar.cpp:1600 -#, fuzzy msgid "Letter rotation" -msgstr "Nastavit rozestupy:" +msgstr "NatoÄŤenĂ­ znakĹŻ" #. label #: ../src/widgets/text-toolbar.cpp:1601 @@ -28945,9 +28819,8 @@ msgstr "Role:" #. short label #: ../src/widgets/text-toolbar.cpp:1602 -#, fuzzy msgid "Character rotation (degrees)" -msgstr "_Rotace" +msgstr "NatoÄŤenĂ­ znakĹŻ (stupnÄ›)" #: ../src/widgets/toolbox.cpp:182 msgid "Color/opacity used for color tweaking" @@ -28955,38 +28828,35 @@ msgstr "" #: ../src/widgets/toolbox.cpp:190 msgid "Style of new stars" -msgstr "" +msgstr "Styl novĂ˝ch hvÄ›zd" #: ../src/widgets/toolbox.cpp:192 -#, fuzzy msgid "Style of new rectangles" -msgstr "hodnota y hornĂ­ strany ÄŤtyřůhelnĂ­ku" +msgstr "Styl novĂ˝ch pravoĂşhelnĂ­kĹŻ" #: ../src/widgets/toolbox.cpp:194 -#, fuzzy msgid "Style of new 3D boxes" -msgstr "hodnota y hornĂ­ strany ÄŤtyřůhelnĂ­ku" +msgstr "Styl novĂ˝ch 3rozmÄ›rnĂ˝ch kvádrĹŻ" #: ../src/widgets/toolbox.cpp:196 msgid "Style of new ellipses" -msgstr "" +msgstr "Styl novĂ˝ch elips" #: ../src/widgets/toolbox.cpp:198 msgid "Style of new spirals" -msgstr "" +msgstr "Styl novĂ˝ch spirál" #: ../src/widgets/toolbox.cpp:200 msgid "Style of new paths created by Pencil" -msgstr "" +msgstr "Styl novĂ˝ch cest vytvoĹ™enĂ˝ch tuĹľkou" #: ../src/widgets/toolbox.cpp:202 msgid "Style of new paths created by Pen" -msgstr "" +msgstr "Styl novĂ˝ch cest vytvoĹ™enĂ˝ch perem" #: ../src/widgets/toolbox.cpp:204 -#, fuzzy msgid "Style of new calligraphic strokes" -msgstr "VytvoĹ™it kaligrafickou kĹ™ivku" +msgstr "Styl novĂ˝ch kaligrafickĂ˝ch ÄŤrtĹŻ" #: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 msgid "TBD" @@ -29108,44 +28978,36 @@ msgid "Object Centers" msgstr "Vlastnosti Objektu" #: ../src/widgets/toolbox.cpp:1789 -#, fuzzy msgid "Snap centers of objects" -msgstr "PĹ™ichytávat uzly k objektĹŻm" +msgstr "PĹ™ilĂ­nat stĹ™edy objektĹŻ" #: ../src/widgets/toolbox.cpp:1798 -#, fuzzy msgid "Rotation Centers" -msgstr "_Rotace" +msgstr "StĹ™edy otáčenĂ­" #: ../src/widgets/toolbox.cpp:1798 -#, fuzzy msgid "Snap an item's rotation center" -msgstr "Zahrnout skrytĂ© objekty do vyhledávánĂ­" +msgstr "PĹ™ilĂ­nat stĹ™ed otáčenĂ­ objektu" #: ../src/widgets/toolbox.cpp:1807 -#, fuzzy msgid "Text baseline" -msgstr "Zarovnat základny textu" +msgstr "Účaří textu" #: ../src/widgets/toolbox.cpp:1807 -#, fuzzy msgid "Snap text anchors and baselines" -msgstr "Zarovnat základny textu" +msgstr "PĹ™ilĂ­nat kotvy a účaří textu" #: ../src/widgets/toolbox.cpp:1817 -#, fuzzy msgid "Page border" -msgstr "Barva okraje stránky" +msgstr "Okraje stránky" #: ../src/widgets/toolbox.cpp:1817 -#, fuzzy msgid "Snap to the page border" -msgstr "Zobrazovat ohraniÄŤenĂ­ stránky" +msgstr "PĹ™ilĂ­nat k okrajĹŻm stránky" #: ../src/widgets/toolbox.cpp:1826 -#, fuzzy msgid "Snap to grids" -msgstr "PĹ™ichytávánĂ­ k mřížce" +msgstr "PĹ™ilĂ­nat k mřížce" #: ../src/widgets/toolbox.cpp:1835 #, fuzzy @@ -29361,26 +29223,26 @@ msgstr "O:" #. Fidelity #: ../src/widgets/tweak-toolbar.cpp:350 msgid "(rough, simplified)" -msgstr "" +msgstr "(hrubá, zjednodušená)" #: ../src/widgets/tweak-toolbar.cpp:350 msgid "(fine, but many nodes)" -msgstr "" +msgstr "(jemná, ale s mnoha uzly)" #: ../src/widgets/tweak-toolbar.cpp:353 -#, fuzzy msgid "Fidelity" -msgstr "Identifikátor" +msgstr "VÄ›rnost" #: ../src/widgets/tweak-toolbar.cpp:353 msgid "Fidelity:" -msgstr "" +msgstr "VÄ›rnost:" #: ../src/widgets/tweak-toolbar.cpp:354 msgid "" "Low fidelity simplifies paths; high fidelity preserves path features but may " "generate a lot of new nodes" -msgstr "" +msgstr "NĂ­zká vÄ›rnost zjednodušuje cesty; vysoká vÄ›rnost uchovává tvar cesty, ale " +"vytváří mnoho uzlĹŻ" #: ../src/widgets/tweak-toolbar.cpp:373 #, fuzzy @@ -29394,56 +29256,53 @@ msgid "" msgstr "" #: ../share/extensions/dimension.py:109 -#, fuzzy msgid "Please select an object." -msgstr "Duplikovat vybranĂ© objekty" +msgstr "ProsĂ­m, vyberte objekt." #: ../share/extensions/dimension.py:134 msgid "Unable to process this object. Try changing it into a path first." -msgstr "" +msgstr "Nelze zpracovat tento objekt. Nejdříve jej zkuste zmÄ›nit na cestu." #. report to the Inkscape console using errormsg #: ../share/extensions/draw_from_triangle.py:180 -#, fuzzy msgid "Side Length 'a' (px): " -msgstr "DĂ©lka kroku (px)" +msgstr "DĂ©lka strany 'a' (px): " #: ../share/extensions/draw_from_triangle.py:181 -#, fuzzy msgid "Side Length 'b' (px): " -msgstr "DĂ©lka kroku (px)" +msgstr "DĂ©lka strany 'b' (px): " #: ../share/extensions/draw_from_triangle.py:182 -#, fuzzy msgid "Side Length 'c' (px): " -msgstr "DĂ©lka kroku (px)" +msgstr "DĂ©lka strany 'c' (px): " #: ../share/extensions/draw_from_triangle.py:183 msgid "Angle 'A' (radians): " -msgstr "" +msgstr "Ăšhel 'A' (radiány): " #: ../share/extensions/draw_from_triangle.py:184 msgid "Angle 'B' (radians): " -msgstr "" +msgstr "Ăšhel 'B' (radiány): " #: ../share/extensions/draw_from_triangle.py:185 msgid "Angle 'C' (radians): " -msgstr "" +msgstr "Ăšhel 'C' (radiány): " #: ../share/extensions/draw_from_triangle.py:186 msgid "Semiperimeter (px): " -msgstr "" +msgstr "PĹŻlobvod (px): " #: ../share/extensions/draw_from_triangle.py:187 msgid "Area (px^2): " -msgstr "" +msgstr "Plocha (px^2): " #: ../share/extensions/dxf_input.py:504 #, python-format msgid "" "%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " "to Release 13 format using QCad." -msgstr "" +msgstr "Nalezeno a ignorováno %d entit typu polyline. Zkuste prosĂ­m zkonvertovat " +"pomocĂ­ QCadu do formátu Release 13." #: ../share/extensions/dxf_outlines.py:49 msgid "" @@ -29489,11 +29348,11 @@ msgstr "" #: ../share/extensions/extractimage.py:68 #, python-format msgid "Image extracted to: %s" -msgstr "" +msgstr "Obraz extrahován do: %s" #: ../share/extensions/extractimage.py:75 msgid "Unable to find image data." -msgstr "" +msgstr "Nelze nalĂ©zt obrazová data." #: ../share/extensions/extrude.py:43 #, fuzzy @@ -29502,16 +29361,15 @@ msgstr "NenĂ­ nic vybráno" #: ../share/extensions/funcplot.py:48 msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" -msgstr "" +msgstr "Interval x nesmĂ­ bĂ˝t nula. ProsĂ­m upravte 'počátek X' nebo 'konec X'" #: ../share/extensions/funcplot.py:60 msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" -msgstr "" +msgstr "Interval y nesmĂ­ bĂ˝t nula. ProsĂ­m upravte 'hoĹ™enĂ­ x' nebo 'dolnĂ­ y'" #: ../share/extensions/funcplot.py:315 -#, fuzzy msgid "Please select a rectangle" -msgstr "Duplikovat vybranĂ© objekty" +msgstr "ProsĂ­m vyberte ÄŤtyřúhelnĂ­k" #: ../share/extensions/gcodetools.py:3321 #: ../share/extensions/gcodetools.py:4526 @@ -29519,11 +29377,11 @@ msgstr "Duplikovat vybranĂ© objekty" #: ../share/extensions/gcodetools.py:6232 #: ../share/extensions/gcodetools.py:6427 msgid "No paths are selected! Trying to work on all available paths." -msgstr "" +msgstr "Nevybrány žádnĂ© cesty! Zkouším zpracovat všechny dostupnĂ©." #: ../share/extensions/gcodetools.py:3324 msgid "Noting is selected. Please select something." -msgstr "" +msgstr "Nic nevybráno. ProsĂ­m vyberte nÄ›co." #: ../share/extensions/gcodetools.py:3864 #, fuzzy @@ -30276,11 +30134,11 @@ msgstr "Adresář %s neexistuje nebo nenĂ­ adresářem.\n" #: ../share/extensions/webslicer_export.py:102 #, python-format msgid "You have more than one element with \"%s\" html-id." -msgstr "" +msgstr "Máte vĂ­ce neĹľ jeden prvek s html id \"%s\"." #: ../share/extensions/webslicer_export.py:332 msgid "You must install the ImageMagick to get JPG and GIF." -msgstr "" +msgstr "Abyste dostali JPG nebo GIF, musĂ­te nainstalovat ImageMagick." #. PARAMETER PROCESSING #. lines of longitude are odd : abort @@ -30294,29 +30152,24 @@ msgid "Add Nodes" msgstr "PĹ™idat Uzly" #: ../share/extensions/addnodes.inx.h:2 -#, fuzzy msgid "Division method:" -msgstr "DÄ›lenĂ­" +msgstr "Metoda dÄ›lenĂ­:" #: ../share/extensions/addnodes.inx.h:3 -#, fuzzy msgid "By max. segment length" -msgstr "NejvÄ›tší dĂ©lka segmentu" +msgstr "nejvÄ›tší dĂ©lkou segmentu" #: ../share/extensions/addnodes.inx.h:4 -#, fuzzy msgid "By number of segments" -msgstr "PoÄŤet krokĹŻ" +msgstr "poÄŤtem segmentĹŻ" #: ../share/extensions/addnodes.inx.h:5 -#, fuzzy msgid "Maximum segment length (px):" -msgstr "NejvÄ›tší dĂ©lka segmentu" +msgstr "NejvÄ›tší dĂ©lka segmentu (px):" #: ../share/extensions/addnodes.inx.h:6 -#, fuzzy msgid "Number of segments:" -msgstr "PoÄŤet krokĹŻ" +msgstr "PoÄŤet segmentĹŻ:" #: ../share/extensions/addnodes.inx.h:7 #: ../share/extensions/convert2dashes.inx.h:2 @@ -30335,12 +30188,11 @@ msgstr "ZmÄ›na kĹ™ivky" #: ../share/extensions/ai_input.inx.h:1 msgid "AI 8.0 Input" -msgstr "AI 8.0 Vstup" +msgstr "Vstup AI 8.0" #: ../share/extensions/ai_input.inx.h:2 -#, fuzzy msgid "Adobe Illustrator 8.0 and below (*.ai)" -msgstr "Adobe Illustrator 8.0 (*.ai)" +msgstr "Adobe Illustrator 8.0 a nĂ­Ĺľe (*.ai)" #: ../share/extensions/ai_input.inx.h:3 msgid "Open files saved with Adobe Illustrator 8.0 or older" @@ -30348,115 +30200,107 @@ msgstr "Otevřít soubory uloĹľenĂ© Adobe Illustratorem 8.0 nebo starším" #: ../share/extensions/aisvg.inx.h:1 msgid "AI SVG Input" -msgstr "AI SVG Vstup" +msgstr "Vstup AI SVG" #: ../share/extensions/aisvg.inx.h:2 msgid "Adobe Illustrator SVG (*.ai.svg)" -msgstr "SVG programu Adobe Illustrator (*.ai.svg)" +msgstr "Soubory SVG Adobe Illustrator (*.ai.svg)" #: ../share/extensions/aisvg.inx.h:3 +#, fuzzy msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" msgstr "VyÄŤistĂ­ SVG z Adobe Illustratoru pĹ™ed otevĹ™enĂ­m" #: ../share/extensions/ccx_input.inx.h:1 msgid "Corel DRAW Compressed Exchange files input (UC)" -msgstr "" +msgstr "Vstup komprimovanĂ˝ch vĂ˝mÄ›nnĂ˝ch souborĹŻ Corelu DRAW (UC)" #: ../share/extensions/ccx_input.inx.h:2 msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" -msgstr "" +msgstr "KomprimovanĂ© vĂ˝mÄ›nnĂ© soubory Corelu DRAW (UC) (*.ccx)" #: ../share/extensions/ccx_input.inx.h:3 -#, fuzzy msgid "Open compressed exchange files saved in Corel DRAW (UC)" -msgstr "Otevřít soubory uloĹľenĂ© s XFIG" +msgstr "Otevřít komprimovanĂ© vĂ˝mÄ›nnĂ© soubory uloĹľenĂ© v Corelu DRAW (UC)" #: ../share/extensions/cdr_input.inx.h:1 msgid "Corel DRAW Input (UC)" -msgstr "" +msgstr "Vstup Corelu DRAW (UC)" #: ../share/extensions/cdr_input.inx.h:2 msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" -msgstr "" +msgstr "Soubory Corel DRAW 7-X4 (UC) (*.cdr)" #: ../share/extensions/cdr_input.inx.h:3 -#, fuzzy msgid "Open files saved in Corel DRAW 7-X4 (UC)" -msgstr "Otevřít soubory uloĹľenĂ© s XFIG" +msgstr "Otevřít soubory uloĹľenĂ© v Corelu DRAW 7-X4 (UC)" #: ../share/extensions/cdt_input.inx.h:1 msgid "Corel DRAW templates input (UC)" -msgstr "" +msgstr "Vstup šablon Corelu DRAW" #: ../share/extensions/cdt_input.inx.h:2 msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" -msgstr "" +msgstr "Soubory šablon Corelu DRAW 7-13 (UC) (*.cdt)" #: ../share/extensions/cdt_input.inx.h:3 #, fuzzy msgid "Open files saved in Corel DRAW 7-13 (UC)" -msgstr "Otevřít soubory uloĹľenĂ© s XFIG" +msgstr "Otevřít soubory uloĹľenĂ© v Corelu DRAW 7-13 (UC)" #: ../share/extensions/cgm_input.inx.h:1 msgid "Computer Graphics Metafile files input" -msgstr "" +msgstr "Vstup souborĹŻ Computer Graphics Metafile" #: ../share/extensions/cgm_input.inx.h:2 -#, fuzzy msgid "Computer Graphics Metafile files (*.cgm)" -msgstr "GrafickĂ˝ soubor XFIG (*.fig)" +msgstr "Soubory Computer Graphics Metafile (*.cgm)" #: ../share/extensions/cgm_input.inx.h:3 msgid "Open Computer Graphics Metafile files" -msgstr "" +msgstr "Otevřít soubory Computer Graphics Metafile" #: ../share/extensions/cmx_input.inx.h:1 msgid "Corel DRAW Presentation Exchange files input (UC)" -msgstr "" +msgstr "Vstup souborĹŻ Corel DRAW Presentation Exchange (UC)" #: ../share/extensions/cmx_input.inx.h:2 msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" -msgstr "" +msgstr "Soubory Corel DRAW Presentation Exchange (*.cmx)" #: ../share/extensions/cmx_input.inx.h:3 -#, fuzzy msgid "Open presentation exchange files saved in Corel DRAW (UC)" -msgstr "Otevřít soubory uloĹľenĂ© s XFIG" +msgstr "Otevřít soubory pro vĂ˝mÄ›nu prezentacĂ­ uloĹľenĂ© v Corelu DRAW (UC)" #: ../share/extensions/color_HSL_adjust.inx.h:1 -#, fuzzy msgid "HSL Adjust" -msgstr "Táhnout kĹ™ivku" +msgstr "NastavenĂ­ HSL" #: ../share/extensions/color_HSL_adjust.inx.h:3 -#, fuzzy msgid "Hue (°)" -msgstr "_Rotace" +msgstr "OdstĂ­n (°)" #: ../share/extensions/color_HSL_adjust.inx.h:4 -#, fuzzy msgid "Random hue" -msgstr "NáhodnĂ˝ Strom" +msgstr "NáhodnĂ˝ odstĂ­n" #: ../share/extensions/color_HSL_adjust.inx.h:6 -#, fuzzy, no-c-format +#, no-c-format msgid "Saturation (%)" -msgstr "Sytost" +msgstr "Sytost (%)" #: ../share/extensions/color_HSL_adjust.inx.h:7 -#, fuzzy msgid "Random saturation" -msgstr "MĂ©nÄ› sytosti" +msgstr "Náhodná sytost" #: ../share/extensions/color_HSL_adjust.inx.h:9 -#, fuzzy, no-c-format +#, no-c-format msgid "Lightness (%)" -msgstr "Jas" +msgstr "Jas (%)" #: ../share/extensions/color_HSL_adjust.inx.h:10 -#, fuzzy msgid "Random lightness" -msgstr "Jas" +msgstr "NáhodnĂ˝ jas" #: ../share/extensions/color_HSL_adjust.inx.h:13 #, no-c-format @@ -30472,13 +30316,12 @@ msgid "" msgstr "" #: ../share/extensions/color_blackandwhite.inx.h:1 -#, fuzzy msgid "Black and White" -msgstr "Invertovat ÄŤernĂ© a bĂ­lĂ© oblasti" +msgstr "ÄŚernobĂ­lá" #: ../share/extensions/color_blackandwhite.inx.h:2 msgid "Threshold Color (1-255):" -msgstr "" +msgstr "Prahová barva (1 - 255):" #: ../share/extensions/color_brighter.inx.h:1 msgid "Brighter" @@ -30493,17 +30336,17 @@ msgstr "V_lastnĂ­" #: ../share/extensions/color_custom.inx.h:3 #, fuzzy msgid "Red Function:" -msgstr "ÄŚervená funkce" +msgstr "ÄŚervená funkce:" #: ../share/extensions/color_custom.inx.h:4 #, fuzzy msgid "Green Function:" -msgstr "Zelená funkce" +msgstr "Zelená funkce:" #: ../share/extensions/color_custom.inx.h:5 #, fuzzy msgid "Blue Function:" -msgstr "Modrá funkce" +msgstr "Modrá funkce:" #: ../share/extensions/color_custom.inx.h:6 msgid "Input (r,g,b) Color Range:" @@ -30532,7 +30375,7 @@ msgstr "Desaturovat" #: ../share/extensions/color_grayscale.inx.h:1 #: ../share/extensions/webslicer_create_rect.inx.h:15 msgid "Grayscale" -msgstr "Ĺ edá škála" +msgstr "Ĺ edá stupnice" #: ../share/extensions/color_lesshue.inx.h:1 msgid "Less Hue" @@ -30540,7 +30383,7 @@ msgstr "MĂ©nÄ› odstĂ­nu" #: ../share/extensions/color_lesslight.inx.h:1 msgid "Less Light" -msgstr "MĂ©nÄ› jasnosti" +msgstr "MĂ©nÄ› jasu" #: ../share/extensions/color_lesssaturation.inx.h:1 msgid "Less Saturation" @@ -30573,6 +30416,8 @@ msgid "" "Converts to HSL, randomizes hue and/or saturation and/or lightness and " "converts it back to RGB." msgstr "" +"PĹ™evede do HSL, náhodnÄ› vygeneruje hodnotu odstĂ­nu anebo sytosti anebo jasu " +"a pĹ™evede zpÄ›t do RGB." #: ../share/extensions/color_removeblue.inx.h:1 msgid "Remove Blue" @@ -30587,31 +30432,28 @@ msgid "Remove Red" msgstr "Odebrat ÄŤervenou" #: ../share/extensions/color_replace.inx.h:1 -#, fuzzy msgid "Replace color" -msgstr "Nastavit nabranou barvu" +msgstr "Nahradit barvu" #: ../share/extensions/color_replace.inx.h:2 msgid "Replace color (RRGGBB hex):" -msgstr "" +msgstr "Nahradit barvu (RRGGBB hex):" #: ../share/extensions/color_replace.inx.h:3 -#, fuzzy msgid "Color to replace" -msgstr "Barva ÄŤar mřížky" +msgstr "Barva k nahrazenĂ­" #: ../share/extensions/color_replace.inx.h:4 msgid "By color (RRGGBB hex):" msgstr "" #: ../share/extensions/color_replace.inx.h:5 -#, fuzzy msgid "New color" -msgstr "Vynechat barvu" +msgstr "Nová barva" #: ../share/extensions/color_rgbbarrel.inx.h:1 msgid "RGB Barrel" -msgstr "RGB barel" +msgstr "Válec RGB" #: ../share/extensions/convert2dashes.inx.h:1 #, fuzzy @@ -30619,21 +30461,20 @@ msgid "Convert to Dashes" msgstr "PĹ™evĂ©st na Text" #: ../share/extensions/dhw_input.inx.h:1 -#, fuzzy msgid "DHW file input" -msgstr "Vstup Windows Metafile" +msgstr "Vstup souborĹŻ DHW" #: ../share/extensions/dhw_input.inx.h:2 msgid "ACECAD Digimemo File (*.dhw)" -msgstr "" +msgstr "Soubor ACECADu Digimemo (*.dhw)" #: ../share/extensions/dhw_input.inx.h:3 msgid "Open files from ACECAD Digimemo" -msgstr "" +msgstr "Otevřít soubory z ACECADu Digimemo" #: ../share/extensions/dia.inx.h:1 msgid "Dia Input" -msgstr "Dia Vstup" +msgstr "Vstup Dia" #: ../share/extensions/dia.inx.h:2 msgid "" @@ -30642,7 +30483,7 @@ msgid "" "Inkscape installation." msgstr "" "Skript dia2svg.sh by mÄ›l bĂ˝t obsaĹľen ve vaší instalaci Inkscape. Pokud jej " -"nemáte pak nenĂ­ nÄ›co v pořádku s vaší instalacĂ­ Inkscape." +"nemáte, nenĂ­ nÄ›co v pořádku s vaší instalacĂ­ Inkscape." #: ../share/extensions/dia.inx.h:3 #, fuzzy @@ -30655,26 +30496,23 @@ msgstr "" #: ../share/extensions/dia.inx.h:4 msgid "Dia Diagram (*.dia)" -msgstr "Dia Diagram (*.dia)" +msgstr "Diagram Dia (*.dia)" #: ../share/extensions/dia.inx.h:5 msgid "A diagram created with the program Dia" msgstr "Diagram vytvoĹ™enĂ˝ programem Dia" #: ../share/extensions/dimension.inx.h:1 -#, fuzzy msgid "Dimensions" -msgstr "DÄ›lenĂ­" +msgstr "RozmÄ›ry" #: ../share/extensions/dimension.inx.h:2 -#, fuzzy msgid "X Offset:" -msgstr "Posuny" +msgstr "Posun X:" #: ../share/extensions/dimension.inx.h:3 -#, fuzzy msgid "Y Offset:" -msgstr "Posuny" +msgstr "Posun Y:" #: ../share/extensions/dimension.inx.h:4 #, fuzzy @@ -30862,9 +30700,8 @@ msgstr "" #: ../share/extensions/draw_from_triangle.inx.h:29 #: ../share/extensions/wireframe_sphere.inx.h:6 -#, fuzzy msgid "Radius (px):" -msgstr "PolomÄ›r" +msgstr "PolomÄ›r (px):" #: ../share/extensions/draw_from_triangle.inx.h:30 msgid "Draw Isogonal Conjugate" @@ -30924,7 +30761,7 @@ msgstr "" #: ../share/extensions/dxf_input.inx.h:1 msgid "DXF Input" -msgstr "DXF Vstup" +msgstr "Vstup DXF" #: ../share/extensions/dxf_input.inx.h:3 msgid "Use automatic scaling to size A4" @@ -30944,18 +30781,16 @@ msgstr "" #: ../share/extensions/dxf_input.inx.h:7 msgid "Gcodetools compatible point import" -msgstr "" +msgstr "Import bodĹŻ kompatibilnĂ­ s Gcodetools" #: ../share/extensions/dxf_input.inx.h:8 #: ../share/extensions/render_barcode_qrcode.inx.h:16 -#, fuzzy msgid "Character encoding:" -msgstr "HvÄ›zda: ZmÄ›na zaoblenĂ­" +msgstr "ZnakovĂ© kĂłdovánĂ­" #: ../share/extensions/dxf_input.inx.h:9 -#, fuzzy msgid "Text Font:" -msgstr "TextovĂ˝ Vstup" +msgstr "TextovĂ˝ font:" #: ../share/extensions/dxf_input.inx.h:11 msgid "" @@ -30968,9 +30803,8 @@ msgid "" msgstr "" #: ../share/extensions/dxf_input.inx.h:17 -#, fuzzy msgid "AutoCAD DXF R13 (*.dxf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "AutoCAD DXF v. 13 (*.dxf)" #: ../share/extensions/dxf_input.inx.h:18 msgid "Import AutoCAD's Document Exchange Format" @@ -30993,9 +30827,8 @@ msgid "Base unit" msgstr "" #: ../share/extensions/dxf_outlines.inx.h:6 -#, fuzzy msgid "Character Encoding" -msgstr "HvÄ›zda: ZmÄ›na zaoblenĂ­" +msgstr "ZnakovĂ© kĂłdovánĂ­" #: ../share/extensions/dxf_outlines.inx.h:7 #, fuzzy @@ -31057,9 +30890,8 @@ msgid "ft" msgstr "" #: ../share/extensions/dxf_outlines.inx.h:17 -#, fuzzy msgid "Latin 1" -msgstr "Start:" +msgstr "Latin 1" #: ../share/extensions/dxf_outlines.inx.h:18 msgid "CP 1250" @@ -31071,7 +30903,7 @@ msgstr "" #: ../share/extensions/dxf_outlines.inx.h:20 msgid "UTF 8" -msgstr "" +msgstr "UTF-8" #: ../share/extensions/dxf_outlines.inx.h:21 #, fuzzy @@ -31119,23 +30951,20 @@ msgstr "" "je zapotĹ™ebĂ­ nainstalovat pstoedit, viz. http://www.pstoedit.net/pstoedit" #: ../share/extensions/dxf_output.inx.h:3 -#, fuzzy msgid "AutoCAD DXF R12 (*.dxf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "AutoCAD DXF v. 12 (*.dxf)" #: ../share/extensions/dxf_output.inx.h:4 msgid "DXF file written by pstoedit" -msgstr "DXF soubor vytvoĹ™enĂ˝ pomocĂ­ pstoedit" +msgstr "Soubor DXF zapsán pomocĂ­ pstoeditu" #: ../share/extensions/edge3d.inx.h:1 -#, fuzzy msgid "Edge 3D" -msgstr "RozostĹ™it Okraj" +msgstr "ProstorovĂ˝ okraj" #: ../share/extensions/edge3d.inx.h:2 -#, fuzzy msgid "Illumination Angle:" -msgstr "_Rotace" +msgstr "Ăšhel osvÄ›tlenĂ­" #: ../share/extensions/edge3d.inx.h:3 #, fuzzy @@ -31143,9 +30972,8 @@ msgid "Shades:" msgstr "Tvary" #: ../share/extensions/edge3d.inx.h:4 -#, fuzzy msgid "Only black and white:" -msgstr "Invertovat ÄŤernĂ© a bĂ­lĂ© oblasti" +msgstr "Pouze ÄŤerná a bĂ­lá:" #: ../share/extensions/edge3d.inx.h:5 #, fuzzy @@ -31266,25 +31094,23 @@ msgstr "Otevřít soubory uloĹľenĂ© s XFIG" #: ../share/extensions/flatten.inx.h:1 msgid "Flatten Beziers" -msgstr "Zploštit Bezierovy kĹ™ivky" +msgstr "Zploštit BeziĂ©rovy kĹ™ivky" #: ../share/extensions/flatten.inx.h:2 -#, fuzzy msgid "Flatness:" -msgstr "MonotĂłnost" +msgstr "ZploštÄ›nĂ­:" #: ../share/extensions/foldablebox.inx.h:1 msgid "Foldable Box" msgstr "" #: ../share/extensions/foldablebox.inx.h:4 -#, fuzzy msgid "Depth:" -msgstr "Text" +msgstr "Hloubka:" #: ../share/extensions/foldablebox.inx.h:5 msgid "Paper Thickness:" -msgstr "" +msgstr "Tloušťka papĂ­ru:" #: ../share/extensions/foldablebox.inx.h:6 #, fuzzy @@ -31297,9 +31123,8 @@ msgid "Add Guide Lines" msgstr "VodĂ­tko" #: ../share/extensions/fractalize.inx.h:1 -#, fuzzy msgid "Fractalize" -msgstr "Ĺ edá škála" +msgstr "Fraktalizovat" #: ../share/extensions/fractalize.inx.h:2 #, fuzzy @@ -31308,12 +31133,12 @@ msgstr "DÄ›lenĂ­" #: ../share/extensions/funcplot.inx.h:1 msgid "Function Plotter" -msgstr "Vykreslit funkci" +msgstr "KresliÄŤ funkcĂ­" #: ../share/extensions/funcplot.inx.h:2 #, fuzzy msgid "Range and sampling" -msgstr "Rozsah a VzrokovánĂ­" +msgstr "Rozsah a vzorkovánĂ­" #: ../share/extensions/funcplot.inx.h:3 #, fuzzy @@ -31432,7 +31257,7 @@ msgstr "Ĺ Ă­Ĺ™ka obdĂ©lnĂ­ku" #: ../share/extensions/funcplot.inx.h:35 #: ../share/extensions/param_curves.inx.h:28 msgid "Remove rectangle" -msgstr "Odebrat ÄŤtyřůhelnĂ­k" +msgstr "Odebrat ÄŤtyřúhelnĂ­k" #: ../share/extensions/funcplot.inx.h:36 #: ../share/extensions/param_curves.inx.h:29 @@ -31502,9 +31327,8 @@ msgid "Maximum area cutting curves:" msgstr "" #: ../share/extensions/gcodetools_area.inx.h:3 -#, fuzzy msgid "Area width:" -msgstr "Ĺ Ă­Ĺ™ka zdroje" +msgstr "Ĺ Ă­Ĺ™ka oblasti:" #: ../share/extensions/gcodetools_area.inx.h:4 msgid "Area tool overlap (0..0.9):" @@ -31520,27 +31344,24 @@ msgid "" msgstr "" #: ../share/extensions/gcodetools_area.inx.h:6 -#, fuzzy msgid "Fill area" -msgstr "VĂ˝plĹ a čáry" +msgstr "Vyplnit oblast" #: ../share/extensions/gcodetools_area.inx.h:7 -#, fuzzy msgid "Area fill angle" -msgstr "levĂ˝ Ăşhel" +msgstr "Ăšhel vĂ˝plnÄ› oblasti" #: ../share/extensions/gcodetools_area.inx.h:8 msgid "Area fill shift" -msgstr "" +msgstr "Posun vĂ˝plnÄ› oblasti" #: ../share/extensions/gcodetools_area.inx.h:9 -#, fuzzy msgid "Filling method" -msgstr "DÄ›lenĂ­" +msgstr "ZpĹŻsob vĂ˝plnÄ›" #: ../share/extensions/gcodetools_area.inx.h:10 msgid "Zig zag" -msgstr "" +msgstr "Cikcak" #: ../share/extensions/gcodetools_area.inx.h:12 msgid "Area artifacts" @@ -31676,9 +31497,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_lathe.inx.h:26 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -#, fuzzy msgid "Minimum arc radius:" -msgstr "VnitĹ™nĂ­ polomÄ›r:" +msgstr "MinimálnĂ­ poolomÄ›r oblouku:" #: ../share/extensions/gcodetools_area.inx.h:34 #: ../share/extensions/gcodetools_engraving.inx.h:12 @@ -31731,9 +31551,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:31 #: ../share/extensions/gcodetools_lathe.inx.h:32 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -#, fuzzy msgid "Directory:" -msgstr "Popis" +msgstr "SloĹľka:" #: ../share/extensions/gcodetools_area.inx.h:40 #: ../share/extensions/gcodetools_dxf_points.inx.h:12 @@ -31778,9 +31597,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:35 #: ../share/extensions/gcodetools_lathe.inx.h:37 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 -#, fuzzy msgid "Generate log file" -msgstr "Vygenerovat z kĹ™ivky" +msgstr "Vygenerovat logovacĂ­ soubor" #: ../share/extensions/gcodetools_area.inx.h:45 #: ../share/extensions/gcodetools_dxf_points.inx.h:17 @@ -31788,9 +31606,8 @@ msgstr "Vygenerovat z kĹ™ivky" #: ../share/extensions/gcodetools_graffiti.inx.h:36 #: ../share/extensions/gcodetools_lathe.inx.h:38 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 -#, fuzzy msgid "Full path to log file:" -msgstr "VĂ˝plĹ jednou barvou" +msgstr "Celá cesta k logovacĂ­mu souboru:" #: ../share/extensions/gcodetools_area.inx.h:49 #: ../share/extensions/gcodetools_dxf_points.inx.h:21 @@ -31818,7 +31635,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:44 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 msgid "Round all values to 4 digits" -msgstr "" +msgstr "Zaokrouhlit všechny hodnoty na 4 des. mĂ­sta" #: ../share/extensions/gcodetools_area.inx.h:52 #: ../share/extensions/gcodetools_dxf_points.inx.h:24 @@ -31831,26 +31648,23 @@ msgstr "" #: ../share/extensions/gcodetools_check_for_updates.inx.h:1 msgid "Check for updates" -msgstr "" +msgstr "Zkontroluj aktualizacace" #: ../share/extensions/gcodetools_check_for_updates.inx.h:2 msgid "Check for Gcodetools latest stable version and try to get the updates." -msgstr "" +msgstr "Poptat nejnovÄ›jší stabilnĂ­ verzi Gcodetools a zkusit aktualizovat." #: ../share/extensions/gcodetools_dxf_points.inx.h:1 -#, fuzzy msgid "DXF Points" -msgstr "Body" +msgstr "Body DXF" #: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#, fuzzy msgid "DXF points" -msgstr "DXF Vstup" +msgstr "body DXF" #: ../share/extensions/gcodetools_dxf_points.inx.h:3 -#, fuzzy msgid "Convert selection:" -msgstr "Invertovat vĂ˝bÄ›r" +msgstr "PĹ™evĂ©st vĂ˝bÄ›r:" #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "" @@ -31873,9 +31687,8 @@ msgid "clear dxfpoint sign" msgstr "" #: ../share/extensions/gcodetools_engraving.inx.h:1 -#, fuzzy msgid "Engraving" -msgstr "Kresba" +msgstr "Rytina" #: ../share/extensions/gcodetools_engraving.inx.h:2 msgid "Smooth convex corners between this value and 180 degrees:" @@ -31919,14 +31732,12 @@ msgid "Minimal connector radius:" msgstr "VnitĹ™nĂ­ polomÄ›r:" #: ../share/extensions/gcodetools_graffiti.inx.h:4 -#, fuzzy msgid "Start position (x;y):" -msgstr "Náhodná Pozice" +msgstr "VĂ˝chozĂ­ pozice (x;y):" #: ../share/extensions/gcodetools_graffiti.inx.h:5 -#, fuzzy msgid "Create preview" -msgstr "Náhled" +msgstr "VytvoĹ™ náhled" #: ../share/extensions/gcodetools_graffiti.inx.h:6 #, fuzzy @@ -31934,9 +31745,8 @@ msgid "Create linearization preview" msgstr "VytvoĹ™it lineárnĂ­ pĹ™echod" #: ../share/extensions/gcodetools_graffiti.inx.h:7 -#, fuzzy msgid "Preview's size (px):" -msgstr "ÄŚtvercovĂ˝ konec" +msgstr "Velikost náhledu (px):" #: ../share/extensions/gcodetools_graffiti.inx.h:8 msgid "Preview's paint emmit (pts/s):" @@ -31995,9 +31805,8 @@ msgid "" msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:1 -#, fuzzy msgid "Lathe" -msgstr "Metr" +msgstr "Soustruh" #: ../share/extensions/gcodetools_lathe.inx.h:2 #, fuzzy @@ -33892,19 +33701,17 @@ msgid "Step length (px):" msgstr "DĂ©lka kroku (px)" #: ../share/extensions/lindenmayer.inx.h:8 -#, fuzzy, no-c-format +#, no-c-format msgid "Randomize step (%):" msgstr "Náhodnost kroku (%)" #: ../share/extensions/lindenmayer.inx.h:9 -#, fuzzy msgid "Left angle:" -msgstr "levĂ˝ Ăşhel" +msgstr "Ăšhel vlevo:" #: ../share/extensions/lindenmayer.inx.h:10 -#, fuzzy msgid "Right angle:" -msgstr "PravĂ˝ Ăşhel" +msgstr "Ăšhel vpravo:" #: ../share/extensions/lindenmayer.inx.h:12 #, fuzzy, no-c-format @@ -34719,14 +34526,14 @@ msgid "Fill color, Blue:" msgstr "VĂ˝plĹ jednou barvou" #: ../share/extensions/polyhedron_3d.inx.h:39 -#, fuzzy, no-c-format +#, no-c-format msgid "Fill opacity (%):" -msgstr "KrytĂ­, %:" +msgstr "NeprĹŻhlednost vĂ˝plnÄ› (%):" #: ../share/extensions/polyhedron_3d.inx.h:41 -#, fuzzy, no-c-format +#, no-c-format msgid "Stroke opacity (%):" -msgstr "VykreslenĂ­ čáry" +msgstr "NeprĹŻhlednost čáry (%):" #: ../share/extensions/polyhedron_3d.inx.h:42 #, fuzzy @@ -36215,9 +36022,8 @@ msgid "If set, this will replace DPI." msgstr "" #: ../share/extensions/webslicer_create_rect.inx.h:10 -#, fuzzy msgid "JPG specific options" -msgstr "Specifikace SVG 1.1" +msgstr "Volby pro JPG" #: ../share/extensions/webslicer_create_rect.inx.h:11 #, fuzzy @@ -36275,14 +36081,12 @@ msgid "Background — no repeat (on parent group)" msgstr "" #: ../share/extensions/webslicer_create_rect.inx.h:27 -#, fuzzy msgid "Positioned Image" -msgstr "Pozice:" +msgstr "PozicovanĂ˝ obrázek" #: ../share/extensions/webslicer_create_rect.inx.h:28 -#, fuzzy msgid "Non Positioned Image" -msgstr "_Rotace" +msgstr "NepozicovanĂ˝ obrázek" #: ../share/extensions/webslicer_create_rect.inx.h:29 msgid "Left Floated Image" @@ -36409,9 +36213,8 @@ msgid "A popular graphics file format for clipart" msgstr "PopulárnĂ­ grafickĂ˝ formát pro kliparty" #: ../share/extensions/xaml2svg.inx.h:1 -#, fuzzy msgid "XAML Input" -msgstr "DXF Vstup" +msgstr "Vstup XAML" #, fuzzy #~ msgid "Smart Jelly" -- cgit v1.2.3 From 7fd8ede6c698136bfa675dd4f1d5da6f5803154f Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Tue, 26 Aug 2014 22:38:14 +0200 Subject: Fix rotation center regression caused by my own commit 13512 Fixed bugs: - https://launchpad.net/bugs/1360953 - https://launchpad.net/bugs/1360946 (bzr r13534) --- src/sp-item.cpp | 20 ++++++++++++++------ src/ui/dialog/document-properties.cpp | 10 +++++++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 428f9555e..19dc71785 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -234,9 +234,13 @@ void SPItem::setCenter(Geom::Point const &object_centre) { document->ensureUpToDate(); // Copied from DocumentProperties::onDocUnitChange() - gdouble viewscale_w = this->document->getWidth().value("px") / this->document->getRoot()->viewBox.width(); - gdouble viewscale_h = this->document->getHeight().value("px")/ this->document->getRoot()->viewBox.height(); - gdouble viewscale = std::min(viewscale_h, viewscale_w); + gdouble viewscale = 1.0; + Geom::Rect vb = this->document->getRoot()->viewBox; + if ( !vb.hasZeroArea() ) { + gdouble viewscale_w = this->document->getWidth().value("px") / vb.width(); + gdouble viewscale_h = this->document->getHeight().value("px")/ vb.height(); + viewscale = std::min(viewscale_h, viewscale_w); + } // FIXME this is seriously wrong Geom::OptRect bbox = desktopGeometricBounds(); @@ -267,9 +271,13 @@ Geom::Point SPItem::getCenter() const { document->ensureUpToDate(); // Copied from DocumentProperties::onDocUnitChange() - gdouble viewscale_w = this->document->getWidth().value("px") / this->document->getRoot()->viewBox.width(); - gdouble viewscale_h = this->document->getHeight().value("px")/ this->document->getRoot()->viewBox.height(); - gdouble viewscale = std::min(viewscale_h, viewscale_w); + gdouble viewscale = 1.0; + Geom::Rect vb = this->document->getRoot()->viewBox; + if ( !vb.hasZeroArea() ) { + gdouble viewscale_w = this->document->getWidth().value("px") / vb.width(); + gdouble viewscale_h = this->document->getHeight().value("px")/ vb.height(); + viewscale = std::min(viewscale_h, viewscale_w); + } // FIXME this is seriously wrong Geom::OptRect bbox = desktopGeometricBounds(); diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 4e4616724..2757a0ec9 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -1736,9 +1736,13 @@ void DocumentProperties::onDocUnitChange() prefs->setBool("/options/transform/gradient", true); { ShapeEditor::blockSetItem(true); - gdouble viewscale_w = doc->getWidth().value("px")/doc->getRoot()->viewBox.width(); - gdouble viewscale_h = doc->getHeight().value("px")/doc->getRoot()->viewBox.height(); - gdouble viewscale = std::min(viewscale_h, viewscale_w); + gdouble viewscale = 1.0; + Geom::Rect vb = doc->getRoot()->viewBox; + if ( !vb.hasZeroArea() ) { + gdouble viewscale_w = doc->getWidth().value("px") / vb.width(); + gdouble viewscale_h = doc->getHeight().value("px")/ vb.height(); + viewscale = std::min(viewscale_h, viewscale_w); + } gdouble scale = Inkscape::Util::Quantity::convert(1, old_doc_unit, doc_unit); doc->getRoot()->scaleChildItemsRec(Geom::Scale(scale), Geom::Point(-viewscale*doc->getRoot()->viewBox.min()[Geom::X] + (doc->getWidth().value("px") - viewscale*doc->getRoot()->viewBox.width())/2, -- cgit v1.2.3 From 6f28cc9fa654faf8b2e29896a00846a98b6ac971 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sat, 30 Aug 2014 08:07:05 +0200 Subject: =?UTF-8?q?Translations.=20Italian=20translation=20update=20by=20F?= =?UTF-8?q?iras=20Hanife=20(64%=20translated).=20Translations.=20Czech=20t?= =?UTF-8?q?ranslation=20update=20by=20Ivan=20=C5=98iho=C5=A1ek=20(31%=20tr?= =?UTF-8?q?anslated).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed bugs: - https://launchpad.net/bugs/1360262 - https://launchpad.net/bugs/1363245 (bzr r13535) --- po/cs.po | 2138 +-- po/it.po | 58208 +++++++++++++++++++++++++++++++------------------------------ 2 files changed, 30108 insertions(+), 30238 deletions(-) diff --git a/po/cs.po b/po/cs.po index cd7b69ea3..16daf91bf 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2014-08-14 23:05-0700\n" -"PO-Revision-Date: 2014-08-22 15:00+0100\n" +"PO-Revision-Date: 2014-08-28 10:16+0100\n" "Last-Translator: Ivan Ĺihošek \n" "Language-Team: \n" "Language: \n" @@ -130,7 +130,6 @@ msgstr "2,5% šedá" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:15 -#, fuzzy msgctxt "Palette" msgid "White" msgstr "BĂ­lá" @@ -139,7 +138,7 @@ msgstr "BĂ­lá" #: ../share/palettes/palettes.h:16 msgctxt "Palette" msgid "Maroon (#800000)" -msgstr "Ĺ vestková" +msgstr "Kaštanová (#800000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:17 @@ -187,7 +186,7 @@ msgstr "Azurová (#00FFFF)" #: ../share/palettes/palettes.h:24 msgctxt "Palette" msgid "Navy (#000080)" -msgstr "NámoĹ™. modrá (#000080)" +msgstr "NámoĹ™. modĹ™ (#000080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:25 @@ -229,7 +228,7 @@ msgstr "Ĺ edá (#808080)" #: ../share/palettes/palettes.h:31 msgctxt "Palette" msgid "darkgray (#A9A9A9)" -msgstr "Temněšedá (#A9A9A9)" +msgstr "Tmavošedá (#A9A9A9)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:32 @@ -253,7 +252,7 @@ msgstr "" #: ../share/palettes/palettes.h:35 msgctxt "Palette" msgid "whitesmoke (#F5F5F5)" -msgstr "" +msgstr "KouĹ™ovÄ› bĂ­lá (#F5F5F5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:36 @@ -295,13 +294,13 @@ msgstr "" #: ../share/palettes/palettes.h:42 msgctxt "Palette" msgid "maroon (#800000)" -msgstr "" +msgstr "Kaštanová (#800000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:43 msgctxt "Palette" msgid "darkred (#8B0000)" -msgstr "" +msgstr "TmavoÄŤervená (#8B0000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:44 @@ -355,7 +354,7 @@ msgstr "OranĹľovoÄŤervená (#FF4500)" #: ../share/palettes/palettes.h:52 msgctxt "Palette" msgid "lightsalmon (#FFA07A)" -msgstr "" +msgstr "SvÄ›tle lososová (#FFA07A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:53 @@ -385,7 +384,7 @@ msgstr "" #: ../share/palettes/palettes.h:57 msgctxt "Palette" msgid "sandybrown (#F4A460)" -msgstr "PĂ­sková (#F4A460)" +msgstr "PĂ­skovÄ› hnÄ›dá (#F4A460)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:58 @@ -403,19 +402,19 @@ msgstr "" #: ../share/palettes/palettes.h:60 msgctxt "Palette" msgid "linen (#FAF0E6)" -msgstr "" +msgstr "Len (#FAF0E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:61 msgctxt "Palette" msgid "bisque (#FFE4C4)" -msgstr "" +msgstr "Oplatka (#FFE4C4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:62 msgctxt "Palette" msgid "darkorange (#FF8C00)" -msgstr "" +msgstr "TmavooranĹľová (#FF8C00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:63 @@ -427,13 +426,13 @@ msgstr "" #: ../share/palettes/palettes.h:64 msgctxt "Palette" msgid "tan (#D2B48C)" -msgstr "" +msgstr "SnÄ›dá (#D2B48C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:65 msgctxt "Palette" msgid "antiquewhite (#FAEBD7)" -msgstr "" +msgstr "Antická bÄ›l (#FAEBD7)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:66 @@ -463,7 +462,7 @@ msgstr "" #: ../share/palettes/palettes.h:70 msgctxt "Palette" msgid "orange (#FFA500)" -msgstr "" +msgstr "OranĹľ (#FFA500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:71 @@ -481,7 +480,7 @@ msgstr "" #: ../share/palettes/palettes.h:73 msgctxt "Palette" msgid "floralwhite (#FFFAF0)" -msgstr "" +msgstr "KvÄ›tová bÄ›l (#FFFAF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:74 @@ -505,13 +504,13 @@ msgstr "" #: ../share/palettes/palettes.h:77 msgctxt "Palette" msgid "gold (#FFD700)" -msgstr "" +msgstr "Zlatá (#FFD700)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:78 msgctxt "Palette" msgid "khaki (#F0E68C)" -msgstr "" +msgstr "Khaki (#F0E68C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:79 @@ -529,13 +528,13 @@ msgstr "" #: ../share/palettes/palettes.h:81 msgctxt "Palette" msgid "darkkhaki (#BDB76B)" -msgstr "" +msgstr "Tmavá khaki (#BDB76B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:82 msgctxt "Palette" msgid "beige (#F5F5DC)" -msgstr "" +msgstr "Béžová (#F5F5DC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:83 @@ -547,25 +546,25 @@ msgstr "" #: ../share/palettes/palettes.h:84 msgctxt "Palette" msgid "olive (#808000)" -msgstr "" +msgstr "Olivová (#808000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:85 msgctxt "Palette" msgid "yellow (#FFFF00)" -msgstr "" +msgstr "Ĺ˝lutá (#FFFF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:86 msgctxt "Palette" msgid "lightyellow (#FFFFE0)" -msgstr "" +msgstr "SvÄ›tleĹľlutá (#FFFFE0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:87 msgctxt "Palette" msgid "ivory (#FFFFF0)" -msgstr "" +msgstr "Slonová kost (#FFFFF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:88 @@ -577,19 +576,19 @@ msgstr "" #: ../share/palettes/palettes.h:89 msgctxt "Palette" msgid "yellowgreen (#9ACD32)" -msgstr "" +msgstr "Ĺ˝lutozelená (#9ACD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:90 msgctxt "Palette" msgid "darkolivegreen (#556B2F)" -msgstr "" +msgstr "TmavÄ› olivová (#556B2F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:91 msgctxt "Palette" msgid "greenyellow (#ADFF2F)" -msgstr "" +msgstr "ZelenoĹľlutá (#ADFF2F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:92 @@ -601,7 +600,7 @@ msgstr "" #: ../share/palettes/palettes.h:93 msgctxt "Palette" msgid "lawngreen (#7CFC00)" -msgstr "" +msgstr "TrávovÄ› zelená (#7CFC00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:94 @@ -613,43 +612,43 @@ msgstr "" #: ../share/palettes/palettes.h:95 msgctxt "Palette" msgid "forestgreen (#228B22)" -msgstr "" +msgstr "LesnĂ­ zeleĹ (#228B22)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:96 msgctxt "Palette" msgid "limegreen (#32CD32)" -msgstr "" +msgstr "Limetková zeleĹ (#32CD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:97 msgctxt "Palette" msgid "lightgreen (#90EE90)" -msgstr "" +msgstr "SvÄ›tlezelená (#90EE90)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:98 msgctxt "Palette" msgid "palegreen (#98FB98)" -msgstr "" +msgstr "BledÄ›zelená (#98FB98)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:99 msgctxt "Palette" msgid "darkgreen (#006400)" -msgstr "" +msgstr "Tmavozelená (#006400)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:100 msgctxt "Palette" msgid "green (#008000)" -msgstr "" +msgstr "Zelená (#008000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:101 msgctxt "Palette" msgid "lime (#00FF00)" -msgstr "" +msgstr "Brčálová (#00FF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:102 @@ -661,7 +660,7 @@ msgstr "" #: ../share/palettes/palettes.h:103 msgctxt "Palette" msgid "seagreen (#2E8B57)" -msgstr "" +msgstr "MoĹ™ská zeleĹ (#2E8B57)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:104 @@ -691,19 +690,19 @@ msgstr "" #: ../share/palettes/palettes.h:108 msgctxt "Palette" msgid "mediumaquamarine (#66CDAA)" -msgstr "" +msgstr "AkvamarĂ­n stĹ™ednĂ­ (#66CDAA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:109 msgctxt "Palette" msgid "aquamarine (#7FFFD4)" -msgstr "" +msgstr "AkvamarĂ­n (#7FFFD4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:110 msgctxt "Palette" msgid "turquoise (#40E0D0)" -msgstr "" +msgstr "Tyrkysová (#40E0D0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:111 @@ -739,19 +738,19 @@ msgstr "" #: ../share/palettes/palettes.h:116 msgctxt "Palette" msgid "darkcyan (#008B8B)" -msgstr "" +msgstr "TmavĂ˝ azur (#008B8B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:117 msgctxt "Palette" msgid "cyan (#00FFFF)" -msgstr "" +msgstr "Azurová (#00FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:118 msgctxt "Palette" msgid "lightcyan (#E0FFFF)" -msgstr "" +msgstr "SvÄ›tle azurová (#E0FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:119 @@ -787,25 +786,25 @@ msgstr "" #: ../share/palettes/palettes.h:124 msgctxt "Palette" msgid "deepskyblue (#00BFFF)" -msgstr "" +msgstr "Tmavá nebeská modĹ™ (#00BFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:125 msgctxt "Palette" msgid "skyblue (#87CEEB)" -msgstr "" +msgstr "Blankytná modĹ™ (#87CEEB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:126 msgctxt "Palette" msgid "lightskyblue (#87CEFA)" -msgstr "" +msgstr "SvÄ›tlĂ˝ blankyt (#87CEFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:127 msgctxt "Palette" msgid "steelblue (#4682B4)" -msgstr "" +msgstr "Ocelová modĹ™ (#4682B4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:128 @@ -859,31 +858,31 @@ msgstr "" #: ../share/palettes/palettes.h:136 msgctxt "Palette" msgid "lavender (#E6E6FA)" -msgstr "" +msgstr "Levandulová (#E6E6FA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:137 msgctxt "Palette" msgid "navy (#000080)" -msgstr "" +msgstr "NámoĹ™nická modĹ™ (#000080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:138 msgctxt "Palette" msgid "darkblue (#00008B)" -msgstr "" +msgstr "Tmavomodrá (#00008B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:139 msgctxt "Palette" msgid "mediumblue (#0000CD)" -msgstr "" +msgstr "StĹ™ednÄ›modrá (#0000CD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:140 msgctxt "Palette" msgid "blue (#0000FF)" -msgstr "" +msgstr "Modrá (#0000FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:141 @@ -919,13 +918,13 @@ msgstr "" #: ../share/palettes/palettes.h:146 msgctxt "Palette" msgid "blueviolet (#8A2BE2)" -msgstr "" +msgstr "Modrofialová (#8A2BE2)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:147 msgctxt "Palette" msgid "indigo (#4B0082)" -msgstr "" +msgstr "Indigová modĹ™ (#4B0082)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:148 @@ -937,7 +936,7 @@ msgstr "" #: ../share/palettes/palettes.h:149 msgctxt "Palette" msgid "darkviolet (#9400D3)" -msgstr "" +msgstr "Tmavofialová (#9400D3" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:150 @@ -955,31 +954,31 @@ msgstr "" #: ../share/palettes/palettes.h:152 msgctxt "Palette" msgid "plum (#DDA0DD)" -msgstr "" +msgstr "Ĺ vestková (#DDA0DD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:153 msgctxt "Palette" msgid "violet (#EE82EE)" -msgstr "" +msgstr "Fialová (#EE82EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:154 msgctxt "Palette" msgid "purple (#800080)" -msgstr "" +msgstr "Purpurová (#800080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:155 msgctxt "Palette" msgid "darkmagenta (#8B008B)" -msgstr "" +msgstr "TmavÄ›purpurová (#8B008B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:156 msgctxt "Palette" msgid "magenta (#FF00FF)" -msgstr "" +msgstr "SytÄ› purpurová (#FF00FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:157 @@ -991,13 +990,13 @@ msgstr "" #: ../share/palettes/palettes.h:158 msgctxt "Palette" msgid "mediumvioletred (#C71585)" -msgstr "" +msgstr "StĹ™ednĂ­ fialovoÄŤervená (#C71585)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:159 msgctxt "Palette" msgid "deeppink (#FF1493)" -msgstr "" +msgstr "TemnÄ› rĹŻĹľová (#FF1493)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:160 @@ -1015,25 +1014,25 @@ msgstr "" #: ../share/palettes/palettes.h:162 msgctxt "Palette" msgid "palevioletred (#DB7093)" -msgstr "" +msgstr "BledÄ› fialovoÄŤervená (#DB7093)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:163 msgctxt "Palette" msgid "crimson (#DC143C)" -msgstr "" +msgstr "KarmĂ­nová (#DC143C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:164 msgctxt "Palette" msgid "pink (#FFC0CB)" -msgstr "" +msgstr "RĹŻĹľová (#FFC0CB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:165 msgctxt "Palette" msgid "lightpink (#FFB6C1)" -msgstr "" +msgstr "SvÄ›tlerĹŻĹľová (#FFB6C1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:166 @@ -1043,117 +1042,111 @@ msgstr "" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:167 -#, fuzzy msgctxt "Palette" msgid "Butter 1" -msgstr "RovnĂ˝ konec" +msgstr "Máslo 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:168 -#, fuzzy msgctxt "Palette" msgid "Butter 2" -msgstr "RovnĂ˝ konec" +msgstr "Máslo 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:169 -#, fuzzy msgctxt "Palette" msgid "Butter 3" -msgstr "RovnĂ˝ konec" +msgstr "Máslo 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:170 msgctxt "Palette" msgid "Chameleon 1" -msgstr "" +msgstr "Chameleon 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:171 msgctxt "Palette" msgid "Chameleon 2" -msgstr "" +msgstr "Chameleon 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:172 msgctxt "Palette" msgid "Chameleon 3" -msgstr "" +msgstr "Chameleon 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:173 -#, fuzzy msgctxt "Palette" msgid "Orange 1" -msgstr "Ăšhel" +msgstr "OranĹľová 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:174 -#, fuzzy msgctxt "Palette" msgid "Orange 2" -msgstr "Ăšhel" +msgstr "OranĹľová 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:175 -#, fuzzy msgctxt "Palette" msgid "Orange 3" -msgstr "Ăšhel" +msgstr "OranĹľová 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:176 msgctxt "Palette" msgid "Sky Blue 1" -msgstr "" +msgstr "Nebeská modĹ™ 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:177 msgctxt "Palette" msgid "Sky Blue 2" -msgstr "" +msgstr "Nebeská modĹ™ 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:178 msgctxt "Palette" msgid "Sky Blue 3" -msgstr "" +msgstr "Nebeská modĹ™ 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:179 msgctxt "Palette" msgid "Plum 1" -msgstr "" +msgstr "Ĺ vestka 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:180 msgctxt "Palette" msgid "Plum 2" -msgstr "" +msgstr "Ĺ vestka 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:181 msgctxt "Palette" msgid "Plum 3" -msgstr "" +msgstr "Ĺ vestka 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:182 msgctxt "Palette" msgid "Chocolate 1" -msgstr "" +msgstr "ÄŚokoláda 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:183 msgctxt "Palette" msgid "Chocolate 2" -msgstr "" +msgstr "ÄŚokoláda 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:184 msgctxt "Palette" msgid "Chocolate 3" -msgstr "" +msgstr "ÄŚokoláda 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:185 @@ -1242,10 +1235,9 @@ msgstr "Pošta" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 -#, fuzzy msgctxt "Symbol" msgid "Currency Exchange" -msgstr "AktuálnĂ­ vrstva" +msgstr "SmÄ›nárna" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 @@ -1910,7 +1902,7 @@ msgstr "" #: ../share/symbols/symbols.h:177 msgctxt "Symbol" msgid "Logic Symbols" -msgstr "LogickĂ© znaÄŤky" +msgstr "LogickĂ© symboly" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:178 @@ -2835,7 +2827,7 @@ msgstr "ÄŚerná vĂ˝plĹ" #: ../share/templates/templates.h:1 msgid "Empty black page" -msgstr "" +msgstr "PrázdnĂ˝ ÄŤernĂ˝ list" #: ../share/templates/templates.h:1 msgid "black opaque empty" @@ -2846,9 +2838,8 @@ msgid "White Opaque" msgstr "" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Empty white page" -msgstr "ProbĂ­há export" +msgstr "PrázdnĂ˝ bĂ­lĂ˝ list" #: ../share/templates/templates.h:1 msgid "white opaque empty" @@ -2856,301 +2847,295 @@ msgstr "" #: ../share/templates/templates.h:1 msgid "Business Card 85x54mm" -msgstr "" +msgstr "Vizitka 85 Ă— 54 mm" #: ../share/templates/templates.h:1 msgid "Empty business card template." -msgstr "" +msgstr "Ĺ ablona prázdnĂ© vizitky." #: ../share/templates/templates.h:1 msgid "business card empty 85x54" -msgstr "" +msgstr "Prázdná vizitka 85 Ă— 54" #: ../share/templates/templates.h:1 msgid "Business Card 90x50mm" -msgstr "" +msgstr "Vizitka 90 Ă— 50 mm" #: ../share/templates/templates.h:1 msgid "business card empty 90x50" -msgstr "" +msgstr "Prázdná vizitka 90 Ă— 50" #: ../share/templates/templates.h:1 msgid "CD Cover 300dpi" -msgstr "" +msgstr "Obal CD 300 DPI" #: ../share/templates/templates.h:1 msgid "Empty CD box cover." -msgstr "" +msgstr "PrázdnĂ˝ obal krabiÄŤky na CD." #: ../share/templates/templates.h:1 msgid "CD cover disc disk 300dpi box" -msgstr "" +msgstr "Obal krabiÄŤky na CD 300 DPI" #: ../share/templates/templates.h:1 msgid "CD Label 120x120 " -msgstr "" +msgstr "Ĺ tĂ­tek CD 120 Ă— 120" #: ../share/templates/templates.h:1 msgid "Simple CD Label template with disc's pattern." -msgstr "" +msgstr "Jednoduchá šablona pro štĂ­tek CD." #: ../share/templates/templates.h:1 msgid "CD label 120x120 disc disk" -msgstr "" +msgstr "Ĺ tĂ­tek disku CD 120 Ă— 120" #: ../share/templates/templates.h:1 msgid "DVD Cover Regular 300dpi " -msgstr "" +msgstr "BěžnĂ˝ obal DVD 300 DPI" #: ../share/templates/templates.h:1 msgid "Template for both-sides DVD covers." -msgstr "" +msgstr "Ĺ ablona pro oboustrannĂ˝ obal DVD" #: ../share/templates/templates.h:1 msgid "DVD cover regular 300dpi" -msgstr "" +msgstr "BěžnĂ˝ obal DVD 300 DPI" #: ../share/templates/templates.h:1 msgid "DVD Cover Slim 300dpi " -msgstr "" +msgstr "TenkĂ˝ obal DVD 300 DPI" #: ../share/templates/templates.h:1 msgid "Template for both-sides DVD slim covers." -msgstr "" +msgstr "Ĺ ablona pro oboustrannĂ˝ tenkĂ˝ obal DVD" #: ../share/templates/templates.h:1 msgid "DVD cover slim 300dpi" -msgstr "" +msgstr "Obal DVD tenkĂ˝ 300 DPI" #: ../share/templates/templates.h:1 msgid "DVD Cover Superslim 300dpi " -msgstr "" +msgstr "Obal DVD supertenkĂ˝ 300 DPI" #: ../share/templates/templates.h:1 msgid "Template for both-sides DVD superslim covers." -msgstr "" +msgstr "Ĺ ablona pro oboustrannĂ˝ supertenkĂ˝ obal DVD" #: ../share/templates/templates.h:1 msgid "DVD cover superslim 300dpi" -msgstr "" +msgstr "Obal DVD supertenkĂ˝ 300 DPI" #: ../share/templates/templates.h:1 msgid "DVD Cover Ultraslim 300dpi " -msgstr "" +msgstr "Obal DVD ultratenkĂ˝ 300 DPI" #: ../share/templates/templates.h:1 msgid "Template for both-sides DVD ultraslim covers." -msgstr "" +msgstr "Ĺ ablona pro oboustrannĂ˝ obal DVD ultratenkĂ˝." #: ../share/templates/templates.h:1 msgid "DVD cover ultraslim 300dpi" -msgstr "" +msgstr "Obal DVD ulratenkĂ˝ 300 DPI" #: ../share/templates/templates.h:1 msgid "Desktop 1024x768" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová plocha 1024 Ă— 768" #: ../share/templates/templates.h:1 msgid "Empty desktop size sheet" -msgstr "" +msgstr "Prázdná šablona velikosti poÄŤĂ­taÄŤovĂ© plochy" #: ../share/templates/templates.h:1 msgid "desktop 1024x768 wallpaper" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová tapeta 1024 Ă— 768" #: ../share/templates/templates.h:1 msgid "Desktop 1600x1200" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová plocha 1600 Ă— 1200" #: ../share/templates/templates.h:1 msgid "desktop 1600x1200 wallpaper" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová tapeta 1600 Ă— 1200" #: ../share/templates/templates.h:1 msgid "Desktop 640x480" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová plocha 640 Ă— 480" #: ../share/templates/templates.h:1 msgid "desktop 640x480 wallpaper" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová tapeta 640 Ă— 480" #: ../share/templates/templates.h:1 msgid "Desktop 800x600" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová plocha 800 Ă— 600" #: ../share/templates/templates.h:1 msgid "desktop 800x600 wallpaper" -msgstr "" +msgstr "PoÄŤĂ­taÄŤová tapeta 800 Ă— 600" #: ../share/templates/templates.h:1 msgid "Fontforge Glyph" -msgstr "" +msgstr "FontovĂ˝ znak Fonforge" #: ../share/templates/templates.h:1 msgid "font fontforge glyph 1000x1000" -msgstr "" +msgstr "FontovĂ˝ znak Fontforge 1000 Ă— 1000" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Icon 16x16" -msgstr "16Ă—16" +msgstr "Ikona 16 Ă— 16" #: ../share/templates/templates.h:1 msgid "Small 16x16 icon template." -msgstr "" +msgstr "Ĺ ablona malĂ© ikony 16 Ă— 16" #: ../share/templates/templates.h:1 msgid "icon 16x16 empty" -msgstr "" +msgstr "Prázdná ikona 16 Ă— 16" #: ../share/templates/templates.h:1 msgid "Icon 32x32" -msgstr "" +msgstr "Ikona 32 Ă— 32" #: ../share/templates/templates.h:1 msgid "32x32 icon template." -msgstr "" +msgstr "Ĺ ablona ikony 32 Ă— 32" #: ../share/templates/templates.h:1 msgid "icon 32x32 empty" -msgstr "" +msgstr "Prázdná ikona 32 Ă— 32" #: ../share/templates/templates.h:1 msgid "Icon 48x48" -msgstr "" +msgstr "Ikona 48 Ă— 48" #: ../share/templates/templates.h:1 msgid "48x48 icon template." -msgstr "" +msgstr "Ĺ ablona ikony 48 Ă— 48" #: ../share/templates/templates.h:1 msgid "icon 48x48 empty" -msgstr "" +msgstr "Prázdná ikona 48 Ă— 48" #: ../share/templates/templates.h:1 msgid "Icon 64x64" -msgstr "" +msgstr "Ikona 64 Ă— 64" #: ../share/templates/templates.h:1 msgid "64x64 icon template." -msgstr "" +msgstr "Ĺ ablona ikony 64 Ă— 64" #: ../share/templates/templates.h:1 msgid "icon 64x64 empty" -msgstr "" +msgstr "Prázdná ikona 64 Ă— 64" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Letter Landscape" -msgstr "_Krajina" +msgstr "Formát Letter na šířku" #: ../share/templates/templates.h:1 msgid "Standard letter landscape sheet - 792x612" -msgstr "" +msgstr "StandardnĂ­ arch formátu Letter na šířku - 792 Ă— 612" #: ../share/templates/templates.h:1 msgid "letter landscape 792x612 empty" -msgstr "" +msgstr "PrázdnĂ˝ formát Letter na šířku 792 Ă— 612" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Letter" -msgstr "DĂ©lka:" +msgstr "Formát Letter" #: ../share/templates/templates.h:1 msgid "Standard letter sheet - 612x792" -msgstr "" +msgstr "StandardnĂ­ arch formát Letter - 612 Ă— 792" #: ../share/templates/templates.h:1 msgid "letter 612x792 empty" -msgstr "" +msgstr "PrázdnĂ˝ formát Letter 612 Ă— 792" #: ../share/templates/templates.h:1 -#, fuzzy msgid "No Borders" -msgstr "PoĹ™adĂ­" +msgstr "Bez okrajĹŻ" #: ../share/templates/templates.h:1 msgid "Empty sheet with no borders" -msgstr "" +msgstr "PrázdnĂ˝ list bez okrajĹŻ" #: ../share/templates/templates.h:1 msgid "no borders empty" -msgstr "" +msgstr "PrázdnĂ˝ bez okrajĹŻ" #: ../share/templates/templates.h:1 -#, fuzzy msgid "No Layers" -msgstr "_Vrstva" +msgstr "Bez vrstev" #: ../share/templates/templates.h:1 msgid "Empty sheet with no layers" -msgstr "" +msgstr "PrázdnĂ˝ list bez vrstev" #: ../share/templates/templates.h:1 -#, fuzzy msgid "no layers empty" -msgstr "ZmÄ›nit prĹŻsvitnost vrstvy" +msgstr "PrázdnĂ˝ bez vrstev" #: ../share/templates/templates.h:1 msgid "Video HDTV 1920x1080" -msgstr "" +msgstr "Video HDTV 1920 Ă— 1080" #: ../share/templates/templates.h:1 msgid "HDTV video template for 1920x1080 resolution." -msgstr "" +msgstr "Ĺ ablona pro video HDTV o rozlišenĂ­ 1920 Ă— 1080." #: ../share/templates/templates.h:1 msgid "HDTV video empty 1920x1080" -msgstr "" +msgstr "PrázdnĂ© video HDTV 1920 Ă— 1080" #: ../share/templates/templates.h:1 msgid "Video NTSC 720x486" -msgstr "" +msgstr "Video NTSC 720 Ă— 486" #: ../share/templates/templates.h:1 msgid "NTSC video template for 720x486 resolution." -msgstr "" +msgstr "Ĺ ablona pro video NTSC o rozlišenĂ­ 720 Ă— 486." #: ../share/templates/templates.h:1 msgid "NTSC video empty 720x486" -msgstr "" +msgstr "PrázdnĂ© video NTSC 720 Ă— 486" #: ../share/templates/templates.h:1 msgid "Video PAL 728x576" -msgstr "" +msgstr "Video PAL 728 Ă— 576" #: ../share/templates/templates.h:1 msgid "PAL video template for 728x576 resolution." -msgstr "" +msgstr "Ĺ ablona pro video PAL o rozlišenĂ­ 728 Ă— 576." #: ../share/templates/templates.h:1 msgid "PAL video empty 728x576" -msgstr "" +msgstr "PrázdnĂ© video PAL 728 Ă— 576" #: ../share/templates/templates.h:1 msgid "Web Banner 468x60" -msgstr "" +msgstr "ReklamnĂ­ baner 468 Ă— 60" #: ../share/templates/templates.h:1 msgid "Empty 468x60 web banner template." -msgstr "" +msgstr "Ĺ ablona prázdnĂ©ho reklamnĂ­ho baneru 468 Ă— 60." #: ../share/templates/templates.h:1 msgid "web banner 468x60 empty" -msgstr "" +msgstr "PrázdnĂ˝ reklamnĂ­ baner 468 Ă— 60" #: ../share/templates/templates.h:1 msgid "Web Banner 728x90" -msgstr "" +msgstr "ReklamnĂ­ baner 728 Ă— 90" #: ../share/templates/templates.h:1 msgid "Empty 728x90 web banner template." -msgstr "" +msgstr "Ĺ ablona prázdnĂ©ho reklamnĂ­ho baneru 728 Ă— 90." #: ../share/templates/templates.h:1 msgid "web banner 728x90 empty" -msgstr "" +msgstr "PrázdnĂ˝ reklamnĂ­ baner 728 Ă— 90" #: ../share/templates/templates.h:1 #, fuzzy @@ -3182,12 +3167,12 @@ msgstr "" #: ../src/box3d.cpp:259 ../src/box3d.cpp:1310 #: ../src/ui/dialog/inkscape-preferences.cpp:398 msgid "3D Box" -msgstr "3D Box" +msgstr "Kvádr" #: ../src/color-profile.cpp:852 -#, fuzzy, c-format +#, c-format msgid "Color profiles directory (%s) is unavailable." -msgstr "Adresář pro palety (%s) je nedostupnĂ˝" +msgstr "Adresář barevnĂ˝ch profilĹŻ (%s) je nedostupnĂ˝" #: ../src/color-profile.cpp:911 ../src/color-profile.cpp:928 msgid "(invalid UTF-8 string)" @@ -3220,12 +3205,12 @@ msgstr "ŽádnĂ©" #: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 msgid "Current layer is hidden. Unhide it to be able to draw on it." msgstr "" -"AktuálnĂ­ vrstva je skrytá. Abyste do nĂ­ mohli kreslit, zviditelnÄ›te ji." +"SouÄŤasná vrstva je skrytá. Abyste do nĂ­ mohli kreslit, zviditelnÄ›te ji." #: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "" -"AktuálnĂ­ vrstva je uzamÄŤena. Abyste do nĂ­ mohli kreslit, musĂ­te ji " +"SouÄŤasná vrstva je uzamÄŤena. Abyste do nĂ­ mohli kreslit, musĂ­te ji " "odemknout." #: ../src/desktop-events.cpp:225 @@ -3252,7 +3237,7 @@ msgstr "ŽádnĂ© pĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­." #: ../src/desktop.cpp:901 msgid "No next zoom." -msgstr "ŽádnĂ© další pĹ™iblĂ­ĹľenĂ­." +msgstr "ŽádnĂ© následujĂ­cĂ­ pĹ™iblĂ­ĹľenĂ­." #: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 msgid "Grid _units:" @@ -3310,24 +3295,21 @@ msgid "Angle of z-axis" msgstr "Ăšhel osy z" #: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -#, fuzzy msgid "Minor grid line _color:" -msgstr "Barva hlavnĂ­ čáry mřížky:" +msgstr "Barva _vedlejších ÄŤar mřížky:" #: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 #: ../src/ui/dialog/inkscape-preferences.cpp:721 -#, fuzzy msgid "Minor grid line color" -msgstr "Barva hlavnĂ­ch ÄŤar mřížky" +msgstr "Barva podruĹľnĂ˝ch ÄŤar mřížky" #: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -#, fuzzy msgid "Color of the minor grid lines" -msgstr "Barva ÄŤar mřížky" +msgstr "Barva podruĹľnĂ˝ch ÄŤar mřížky" #: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 msgid "Ma_jor grid line color:" -msgstr "Barva hlavnĂ­ čáry mřížky:" +msgstr "Barva _hlavnĂ­ch ÄŤar mřížky:" #: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 #: ../src/ui/dialog/inkscape-preferences.cpp:723 @@ -3336,30 +3318,27 @@ msgstr "Barva hlavnĂ­ch ÄŤar mřížky" #: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 msgid "Color of the major (highlighted) grid lines" -msgstr "Barva vĂ˝znamnĂ© (zvĂ˝raznÄ›nĂ©) čáry mřížky" +msgstr "Barva hlavnĂ­ch (zvĂ˝raznÄ›nĂ˝ch) ÄŤar mřížky" #: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 msgid "_Major grid line every:" -msgstr "HlavnĂ­ čára mřížky kaĹľdĂ˝ch: " +msgstr "H_lavnĂ­ čára mřížky kaĹľdĂ˝ch:" #: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 msgid "lines" msgstr "ÄŤar" #: ../src/display/canvas-grid.cpp:63 -#, fuzzy msgid "Rectangular grid" -msgstr "ÄŚtyřúhelnĂ­k" +msgstr "ÄŚtvercová mřížka" #: ../src/display/canvas-grid.cpp:64 -#, fuzzy msgid "Axonometric grid" -msgstr "Axonometricky (3D)" +msgstr "Axonometrická mřížka" #: ../src/display/canvas-grid.cpp:275 -#, fuzzy msgid "Create new grid" -msgstr "VytvoĹ™it vodĂ­tko" +msgstr "VytvoĹ™it novou mřížku" #: ../src/display/canvas-grid.cpp:341 #, fuzzy @@ -4851,13 +4830,12 @@ msgstr "" #: ../src/extension/internal/emf-inout.cpp:3556 #: ../src/extension/internal/wmf-inout.cpp:3147 msgid "Convert dashed/dotted lines to single lines" -msgstr "" +msgstr "PĹ™evĂ©st čárkovanĂ©/teÄŤkovanĂ© čáry na jednotlivĂ© čárky" #: ../src/extension/internal/emf-inout.cpp:3557 #: ../src/extension/internal/wmf-inout.cpp:3148 -#, fuzzy msgid "Convert gradients to colored polygon series" -msgstr "ZmÄ›nit barvu zarážky barevnĂ©ho pĹ™echodu" +msgstr "PĹ™evĂ©st barevnĂ© pĹ™echody na Ĺ™ady barevnĂ˝ch mnohoĂşhelnĂ­kĹŻ" #: ../src/extension/internal/emf-inout.cpp:3558 #, fuzzy @@ -4879,9 +4857,8 @@ msgid "Enhanced Metafile (*.emf)" msgstr "Windows Metafile (*.wmf)" #: ../src/extension/internal/emf-inout.cpp:3565 -#, fuzzy msgid "Enhanced Metafile" -msgstr "ZmÄ›nit ÄŤtyřúhelnĂ­k" +msgstr "Enhanced metafile" #: ../src/extension/internal/filter/bevels.h:53 #, fuzzy @@ -5222,9 +5199,8 @@ msgid "Normal" msgstr "NormálnĂ­" #: ../src/extension/internal/filter/blurs.h:344 -#, fuzzy msgid "Blend to background" -msgstr "Odstranit pozadĂ­" +msgstr "VmĂ­sit do pozadĂ­" #: ../src/extension/internal/filter/blurs.h:354 msgid "Blur eroded by white or transparency" @@ -5341,74 +5317,64 @@ msgstr "Jas" #: ../src/extension/internal/filter/bumps.h:100 #: ../src/extension/internal/filter/bumps.h:331 -#, fuzzy msgid "Precision" msgstr "PĹ™esnost" #: ../src/extension/internal/filter/bumps.h:103 -#, fuzzy msgid "Light source" -msgstr "Zdroj" +msgstr "SvÄ›telnĂ˝ zdroj" #: ../src/extension/internal/filter/bumps.h:104 -#, fuzzy msgid "Light source:" -msgstr "Zdroj" +msgstr "SvÄ›telnĂ˝ zdroj:" #: ../src/extension/internal/filter/bumps.h:105 -#, fuzzy msgid "Distant" -msgstr "DÄ›lenĂ­" +msgstr "VzdálenĂ˝" #: ../src/extension/internal/filter/bumps.h:106 #: ../src/ui/dialog/inkscape-preferences.cpp:451 msgid "Point" -msgstr "Bod" +msgstr "BodovĂ˝" #: ../src/extension/internal/filter/bumps.h:107 msgid "Spot" msgstr "" #: ../src/extension/internal/filter/bumps.h:109 -#, fuzzy msgid "Distant light options" -msgstr "Výška cĂ­le" +msgstr "Volby vzdálenĂ©ho osvÄ›tlenĂ­" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 #: ../src/ui/dialog/filter-effects-dialog.cpp:1195 msgid "Azimuth" -msgstr "" +msgstr "Azimut" #: ../src/extension/internal/filter/bumps.h:111 #: ../src/extension/internal/filter/bumps.h:333 #: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -#, fuzzy msgid "Elevation" -msgstr "Vztah" +msgstr "PĹ™evýšenĂ­" #: ../src/extension/internal/filter/bumps.h:112 -#, fuzzy msgid "Point light options" -msgstr "VĂ­ce jasu" +msgstr "Volby bodovĂ©ho osvÄ›tlenĂ­" #: ../src/extension/internal/filter/bumps.h:113 #: ../src/extension/internal/filter/bumps.h:117 -#, fuzzy msgid "X location" -msgstr " umĂ­stÄ›nĂ­: " +msgstr "UmĂ­stÄ›nĂ­ X" #: ../src/extension/internal/filter/bumps.h:114 #: ../src/extension/internal/filter/bumps.h:118 -#, fuzzy msgid "Y location" -msgstr " umĂ­stÄ›nĂ­: " +msgstr "UmĂ­stÄ›nĂ­ Y" #: ../src/extension/internal/filter/bumps.h:115 #: ../src/extension/internal/filter/bumps.h:119 -#, fuzzy msgid "Z location" -msgstr " umĂ­stÄ›nĂ­: " +msgstr "UmĂ­stÄ›nĂ­ Z" #: ../src/extension/internal/filter/bumps.h:116 #, fuzzy @@ -7128,26 +7094,24 @@ msgid "Draw a path which is a grid" msgstr "Vykreslit kĹ™ivku, která je mřížkou" #: ../src/extension/internal/javafx-out.cpp:966 -#, fuzzy msgid "JavaFX Output" -msgstr "VĂ˝stup do LaTeXu" +msgstr "VĂ˝stup JavaFX" #: ../src/extension/internal/javafx-out.cpp:971 msgid "JavaFX (*.fx)" -msgstr "" +msgstr "JavaFX (*.fx)" #: ../src/extension/internal/javafx-out.cpp:972 -#, fuzzy msgid "JavaFX Raytracer File" -msgstr "Soubor ve formátu pro PovRay Raytracer" +msgstr "Soubor JavaFX Raytraceru" #: ../src/extension/internal/latex-pstricks-out.cpp:95 msgid "LaTeX Output" -msgstr "VĂ˝stup do LaTeXu" +msgstr "VĂ˝stup LaTeXu" #: ../src/extension/internal/latex-pstricks-out.cpp:100 msgid "LaTeX With PSTricks macros (*.tex)" -msgstr "LaTeX s PSTricks makry (*.tex)" +msgstr "LaTeX s makry PSTricks (*.tex)" #: ../src/extension/internal/latex-pstricks-out.cpp:101 msgid "LaTeX PSTricks File" @@ -7155,19 +7119,19 @@ msgstr "Soubor LaTeX PSTricks" #: ../src/extension/internal/latex-pstricks.cpp:331 msgid "LaTeX Print" -msgstr "Tisk LaTeX" +msgstr "Tisk LaTeXu" #: ../src/extension/internal/odf.cpp:2142 msgid "OpenDocument Drawing Output" -msgstr "VĂ˝stup kresby do formátu OpenDocument" +msgstr "VĂ˝stup kresby OpenDocument Drawing" #: ../src/extension/internal/odf.cpp:2147 msgid "OpenDocument drawing (*.odg)" -msgstr "OpenDocument Kresba (*.odg)" +msgstr "Kresba OpenDocument drawing (*.odg)" #: ../src/extension/internal/odf.cpp:2148 msgid "OpenDocument drawing file" -msgstr "Kresba formátu OpenDocument" +msgstr "Soubor kresby OpenDocument" #. TRANSLATORS: The following are document crop settings for PDF import #. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ @@ -7210,7 +7174,8 @@ msgstr "" msgid "" "Note: setting the precision too high may result in a large SVG file " "and slow performance." -msgstr "" +msgstr "Pozor: nastavenĂ­ příliš vysokĂ© pĹ™esnosti mĹŻĹľe mĂ­t za následek " +"velkĂ˝ soubor SVG a zpomalenĂ­ zobrazenĂ­." #: ../src/extension/internal/pdfinput/pdf-input.cpp:128 msgid "import via Poppler" @@ -7223,236 +7188,214 @@ msgstr "Skupina" #. Text options #: ../src/extension/internal/pdfinput/pdf-input.cpp:142 -#, fuzzy msgid "Text handling:" -msgstr "Nastavit rozestupy:" +msgstr "ZacházenĂ­ s textem:" #: ../src/extension/internal/pdfinput/pdf-input.cpp:144 #: ../src/extension/internal/pdfinput/pdf-input.cpp:145 -#, fuzzy msgid "Import text as text" -msgstr "PĹ™evĂ©st vlitĂ˝ text na text" +msgstr "Importovat text jakoĹľto text" #: ../src/extension/internal/pdfinput/pdf-input.cpp:146 msgid "Replace PDF fonts by closest-named installed fonts" -msgstr "" +msgstr "Nahradit vloĹľenĂ© fonty PDF nejpodobnÄ›jšími instalovanĂ˝mi fonty" #: ../src/extension/internal/pdfinput/pdf-input.cpp:149 -#, fuzzy msgid "Embed images" -msgstr "PĹ™iloĹľit Všechny Obrázky" +msgstr "VloĹľit obrázky" #: ../src/extension/internal/pdfinput/pdf-input.cpp:151 msgid "Import settings" -msgstr "" +msgstr "NastavenĂ­ importu" #: ../src/extension/internal/pdfinput/pdf-input.cpp:268 msgid "PDF Import Settings" -msgstr "" +msgstr "NastavenĂ­ importu z PDF" #: ../src/extension/internal/pdfinput/pdf-input.cpp:431 -#, fuzzy msgctxt "PDF input precision" msgid "rough" -msgstr "Skupina" +msgstr "hrubá" #: ../src/extension/internal/pdfinput/pdf-input.cpp:432 -#, fuzzy msgctxt "PDF input precision" msgid "medium" msgstr "stĹ™ednĂ­" #: ../src/extension/internal/pdfinput/pdf-input.cpp:433 -#, fuzzy msgctxt "PDF input precision" msgid "fine" -msgstr "Přímka" +msgstr "vysoká" #: ../src/extension/internal/pdfinput/pdf-input.cpp:434 -#, fuzzy msgctxt "PDF input precision" msgid "very fine" -msgstr "Invertovat vĂ˝plĹ" +msgstr "velmi vysoká" #: ../src/extension/internal/pdfinput/pdf-input.cpp:877 -#, fuzzy msgid "PDF Input" -msgstr "DXF Vstup" +msgstr "Vstup PDF" #: ../src/extension/internal/pdfinput/pdf-input.cpp:882 -#, fuzzy msgid "Adobe PDF (*.pdf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "Adobe DXF (*.pdf)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:883 msgid "Adobe Portable Document Format" -msgstr "" +msgstr "PĹ™enosnĂ˝ dokument Adobe (PDF)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:890 -#, fuzzy msgid "AI Input" -msgstr "AI 8.0 Vstup" +msgstr "Vstup AI" #: ../src/extension/internal/pdfinput/pdf-input.cpp:895 -#, fuzzy msgid "Adobe Illustrator 9.0 and above (*.ai)" -msgstr "Adobe Illustrator 8.0 (*.ai)" +msgstr "Adobe Illustrator 9.0 a výše (*.ai)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:896 -#, fuzzy msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" -msgstr "Otevřít soubory uloĹľenĂ© Adobe Illustratorem 8.0 nebo starším" +msgstr "Otevřít soubory uloĹľenĂ© Adobe Illustratorem 9.0 a novÄ›jším" #: ../src/extension/internal/pov-out.cpp:715 msgid "PovRay Output" msgstr "VĂ˝stup do PovRay" #: ../src/extension/internal/pov-out.cpp:720 -#, fuzzy msgid "PovRay (*.pov) (paths and shapes only)" -msgstr "PovRay (*.pov) (export kĹ™ivek)" +msgstr "PovRay (*.pov) (pouze kĹ™ivky a tvary)" #: ../src/extension/internal/pov-out.cpp:721 msgid "PovRay Raytracer File" -msgstr "Soubor ve formátu pro PovRay Raytracer" +msgstr "Soubor PovRay Raytraceru" #: ../src/extension/internal/svg.cpp:100 msgid "SVG Input" -msgstr "SVG Vstup" +msgstr "Vstup SVG" #: ../src/extension/internal/svg.cpp:105 msgid "Scalable Vector Graphic (*.svg)" -msgstr "Ĺ kálovatelná Vektorová Grafika (*.svg)" +msgstr "Ĺ kálovatelná vektorová grafika (*.svg)" #: ../src/extension/internal/svg.cpp:106 msgid "Inkscape native file format and W3C standard" -msgstr "NativnĂ­ formát pro Inkscape a W3C standard" +msgstr "NativnĂ­ formát pro Inkscape a standard W3C" #: ../src/extension/internal/svg.cpp:114 msgid "SVG Output Inkscape" -msgstr "SVG VĂ˝stup Inkscape" +msgstr "VĂ˝stup SVG Inkscapu" #: ../src/extension/internal/svg.cpp:119 msgid "Inkscape SVG (*.svg)" -msgstr "Inkscape SVG (*.svg)" +msgstr "SVG Inkscapu (*.svg)" #: ../src/extension/internal/svg.cpp:120 msgid "SVG format with Inkscape extensions" -msgstr "SVG formát s rozšířenĂ­mi pro Inkscape" +msgstr "Formát SVG s rozšířenĂ­mi Inkscapu" #: ../src/extension/internal/svg.cpp:128 msgid "SVG Output" -msgstr "SVG VĂ˝stup" +msgstr "VĂ˝stup SVG" #: ../src/extension/internal/svg.cpp:133 msgid "Plain SVG (*.svg)" -msgstr "Plain SVG (*.svg)" +msgstr "ProstĂ© SVG (*.svg)" #: ../src/extension/internal/svg.cpp:134 msgid "Scalable Vector Graphics format as defined by the W3C" -msgstr "Formát Ĺ kálovatelnĂ© VektorovĂ© Grafiky definovanĂ˝ W3C" +msgstr "Formát Ĺ kálovatelnĂ© vektorovĂ© grafiky SVG definovanĂ˝ standardem W3C" #: ../src/extension/internal/svgz.cpp:46 msgid "SVGZ Input" -msgstr "SVGZ Vstup" +msgstr "Vstup SVGZ" #: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 msgid "Compressed Inkscape SVG (*.svgz)" -msgstr "KomprimovanĂ© Inkscape SVG (*.svgz)" +msgstr "KomprimovanĂ© SVG Inkscapu (*.svgz)" #: ../src/extension/internal/svgz.cpp:53 msgid "SVG file format compressed with GZip" -msgstr "SVG soubor komprimovanĂ˝ pomocĂ­ GZip" +msgstr "Soubor SVG komprimovanĂ˝ pomocĂ­ GZip" #: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 msgid "SVGZ Output" -msgstr "SVGZ VĂ˝stup" +msgstr "VĂ˝stup SVGZ" #: ../src/extension/internal/svgz.cpp:67 msgid "Inkscape's native file format compressed with GZip" -msgstr "NativnĂ­ formát Inkscape komrpimovanĂ˝ pomocĂ­ GZip" +msgstr "NativnĂ­ formát Inkscape komprimovanĂ˝ pomocĂ­ GZip" #: ../src/extension/internal/svgz.cpp:80 msgid "Compressed plain SVG (*.svgz)" -msgstr "KomprimovanĂ© plain SVG (*.svgz)" +msgstr "KomprimovanĂ© prostĂ© SVG (*.svgz)" #: ../src/extension/internal/svgz.cpp:81 msgid "Scalable Vector Graphics format compressed with GZip" -msgstr "Formát Ĺ kálovatelnĂ© VektorovĂ© Grafiky komprimovanĂ˝ pomocĂ­ GZip" +msgstr "Formát Ĺ kálovatelnĂ© vektorovĂ© grafiky SVG komprimovanĂ˝ pomocĂ­ GZip" #: ../src/extension/internal/vsd-input.cpp:274 -#, fuzzy msgid "VSD Input" -msgstr "DXF Vstup" +msgstr "Vstup VSD" #: ../src/extension/internal/vsd-input.cpp:279 -#, fuzzy msgid "Microsoft Visio Diagram (*.vsd)" -msgstr "Dia Diagram (*.dia)" +msgstr "Diagram Microsoftu Visio (*.vsd)" #: ../src/extension/internal/vsd-input.cpp:280 msgid "File format used by Microsoft Visio 6 and later" -msgstr "" +msgstr "SouborovĂ˝ formát používanĂ˝ programem Microsoft Visio 6 a novÄ›jším" #: ../src/extension/internal/vsd-input.cpp:287 -#, fuzzy msgid "VDX Input" -msgstr "DXF Vstup" +msgstr "Vstup VDX" #: ../src/extension/internal/vsd-input.cpp:292 msgid "Microsoft Visio XML Diagram (*.vdx)" -msgstr "" +msgstr "Diagram XML programu Microsoft Visio (*.vdx)" #: ../src/extension/internal/vsd-input.cpp:293 msgid "File format used by Microsoft Visio 2010 and later" -msgstr "" +msgstr "SouborovĂ˝ formát používanĂ˝ programem Microsoft Visio 2010 a novÄ›jším" #: ../src/extension/internal/vsd-input.cpp:300 -#, fuzzy msgid "VSDM Input" -msgstr "DXF Vstup" +msgstr "Vstup VSDM" #: ../src/extension/internal/vsd-input.cpp:305 msgid "Microsoft Visio 2013 drawing (*.vsdm)" -msgstr "" +msgstr "Kresba Microsoft Visia 2013 (*.vsdm)" #: ../src/extension/internal/vsd-input.cpp:306 #: ../src/extension/internal/vsd-input.cpp:319 msgid "File format used by Microsoft Visio 2013 and later" -msgstr "" +msgstr "SouborovĂ˝ formát používanĂ˝ programem Microsoft Visio 2013 a novÄ›jším" #: ../src/extension/internal/vsd-input.cpp:313 -#, fuzzy msgid "VSDX Input" -msgstr "DXF Vstup" +msgstr "Vstup VSDX" #: ../src/extension/internal/vsd-input.cpp:318 msgid "Microsoft Visio 2013 drawing (*.vsdx)" -msgstr "" +msgstr "Kresba Microsoft Visio 2013 (*.vsdx)" #: ../src/extension/internal/wmf-inout.cpp:3125 -#, fuzzy msgid "WMF Input" -msgstr "WPG Vstup" +msgstr "Vstup WMF" #: ../src/extension/internal/wmf-inout.cpp:3130 -#, fuzzy msgid "Windows Metafiles (*.wmf)" -msgstr "Windows Metafile (*.wmf)" +msgstr "Soubory Windows Metafile (*.wmf)" #: ../src/extension/internal/wmf-inout.cpp:3131 -#, fuzzy msgid "Windows Metafiles" -msgstr "Vstup Windows Metafile" +msgstr "Soubory Windows Metafile" #: ../src/extension/internal/wmf-inout.cpp:3139 -#, fuzzy msgid "WMF Output" -msgstr "VĂ˝stup DXF" +msgstr "VĂ˝stup WMF" #: ../src/extension/internal/wmf-inout.cpp:3149 msgid "Map all fill patterns to standard WMF hatches" -msgstr "" +msgstr "PĹ™evĂ©st všechny vĂ˝plĹovĂ© vzory na standardnĂ­ šrafy WMF" #: ../src/extension/internal/wmf-inout.cpp:3153 #: ../share/extensions/wmf_input.inx.h:2 @@ -10050,14 +9993,12 @@ msgid "Edit on-canvas" msgstr "" #: ../src/live_effects/parameter/path.cpp:180 -#, fuzzy msgid "Copy path" -msgstr "Oříznout kĹ™ivku" +msgstr "KopĂ­rovat kĹ™ivku" #: ../src/live_effects/parameter/path.cpp:190 -#, fuzzy msgid "Paste path" -msgstr "VloĹľit Ĺ Ă­Ĺ™_ku" +msgstr "VloĹľit kĹ™ivku" #: ../src/live_effects/parameter/path.cpp:200 #, fuzzy @@ -10075,9 +10016,8 @@ msgid "Link path parameter to path" msgstr "VloĹľit šířku oddÄ›lenÄ›" #: ../src/live_effects/parameter/point.cpp:89 -#, fuzzy msgid "Change point parameter" -msgstr "ZmÄ›nit spirálu" +msgstr "ZmÄ›nit parametr bodu" #: ../src/live_effects/parameter/powerstrokepointarray.cpp:229 #: ../src/live_effects/parameter/powerstrokepointarray.cpp:241 @@ -10087,14 +10027,12 @@ msgid "" msgstr "" #: ../src/live_effects/parameter/random.cpp:134 -#, fuzzy msgid "Change random parameter" -msgstr "ZmÄ›nit typ uzlu" +msgstr "ZmÄ›nit náhodnostnĂ­ parametr" #: ../src/live_effects/parameter/text.cpp:100 -#, fuzzy msgid "Change text parameter" -msgstr "ZmÄ›nit spirálu" +msgstr "ZmÄ›nit parametr textu" #: ../src/live_effects/parameter/unit.cpp:80 #, fuzzy @@ -10102,23 +10040,22 @@ msgid "Change unit parameter" msgstr "ZmÄ›nit spirálu" #: ../src/live_effects/parameter/vector.cpp:99 -#, fuzzy msgid "Change vector parameter" -msgstr "ZmÄ›nit spirálu" +msgstr "ZmÄ›nit parametr vektoru" #: ../src/main-cmdlineact.cpp:50 #, c-format msgid "Unable to find verb ID '%s' specified on the command line.\n" -msgstr "" +msgstr "Nelze nalĂ©zt povel s ID „%s“, zadanĂ˝ v příkazovĂ©m řádku.\n" #: ../src/main-cmdlineact.cpp:61 #, c-format msgid "Unable to find node ID: '%s'\n" -msgstr "" +msgstr "Nelze nalĂ©zt uzel s ID „%s“\n" #: ../src/main.cpp:295 msgid "Print the Inkscape version number" -msgstr "Vypsat ÄŤĂ­slo verze Inkscape" +msgstr "Vypsat ÄŤĂ­slo verze Inkscapu" #: ../src/main.cpp:300 msgid "Do not use X server (only process files from console)" @@ -10153,37 +10090,37 @@ msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 90)" msgstr "" +"RozlišenĂ­ pro export do bitmapy a pro rasterizaci filtrĹŻ v PS, EPS a PDF " +"(vĂ˝chozĂ­ je 90)" #: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 msgid "DPI" msgstr "DPI" #: ../src/main.cpp:330 -#, fuzzy msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" msgstr "" -"Exportovaná oblast v SVG uĹľivatelem definovanĂ˝ch jednotkách (vĂ˝chozĂ­ je " -"plátno; 0,0 je levĂ˝ spodnĂ­ roh)" +"Exportovaná oblast v uĹľivatelskĂ˝ch jednotkách SVG (vĂ˝chozĂ­ je " +"plátno; souĹ™adnice 0,0 je levĂ˝ spodnĂ­ roh)" #: ../src/main.cpp:331 msgid "x0:y0:x1:y1" msgstr "x0:y0:x1:y1" #: ../src/main.cpp:335 -#, fuzzy msgid "Exported area is the entire drawing (not page)" msgstr "Exportovaná oblast je celá kresba (ne plátno)" #: ../src/main.cpp:340 -#, fuzzy msgid "Exported area is the entire page" msgstr "Exportovaná oblast je celĂ© plátno" #: ../src/main.cpp:345 msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" -msgstr "" +msgstr "Jen pro PS/EPS/PDF; nastavĂ­ okraj v mm okolo exportovanĂ© oblasti " +"(vĂ˝choznÄ› 0)" #: ../src/main.cpp:346 ../src/main.cpp:388 msgid "VALUE" @@ -10199,7 +10136,7 @@ msgstr "" #: ../src/main.cpp:355 msgid "The width of exported bitmap in pixels (overrides export-dpi)" -msgstr "Ĺ Ă­Ĺ™ka generovanĂ© bitmapy v pixelech (pĹ™ebijĂ­ nastavenĂ© dpi)" +msgstr "Ĺ Ă­Ĺ™ka exportovanĂ© bitmapy v pixelech (pĹ™eváží nad nastavenĂ˝m DPI)" #: ../src/main.cpp:356 msgid "WIDTH" @@ -10207,7 +10144,7 @@ msgstr "Ĺ ĂŤĹKA" #: ../src/main.cpp:360 msgid "The height of exported bitmap in pixels (overrides export-dpi)" -msgstr "Výška generovanĂ© bitmapy v pixelech (pĹ™ebĂ­jĂ­ nastavenĂ© dpi)" +msgstr "Výška exportovanĂ© bitmapy v pixelech (pĹ™eváží nad nastavenĂ˝m DPI)" #: ../src/main.cpp:361 msgid "HEIGHT" @@ -10247,7 +10184,7 @@ msgstr "BARVA" #: ../src/main.cpp:387 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "" -"PrĹŻsvitnost pozadĂ­ exportovanĂ© bitmapy (od 0.0 do 1.0, nebo od 1 do 255)" +"PrĹŻhlednost pozadĂ­ exportovanĂ© bitmapy (od 0.0 do 1.0, nebo od 1 do 255)" #: ../src/main.cpp:392 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" @@ -10267,12 +10204,12 @@ msgstr "Export dokumentu do souboru EPS" msgid "" "Choose the PostScript Level used to export. Possible choices are 2 (the " "default) and 3" -msgstr "" +msgstr "Zvolte pouĹľitou ĂşroveĹ PostScriptu pouĹľitou exportem. MoĹľnĂ© volby jsou " +"2 (vĂ˝chozĂ­) a 3" #: ../src/main.cpp:409 -#, fuzzy msgid "PS Level" -msgstr "BarevnĂ˝ kruh" +msgstr "ĂšroveĹ PS" #: ../src/main.cpp:413 msgid "Export document to a PDF file" @@ -10297,19 +10234,16 @@ msgid "" msgstr "" #: ../src/main.cpp:429 -#, fuzzy msgid "Export document to an Enhanced Metafile (EMF) File" -msgstr "Export dokumentu do souboru EPS" +msgstr "Export dokumentu do souboru Enhanced Metafile (EMF)" #: ../src/main.cpp:434 -#, fuzzy msgid "Export document to a Windows Metafile (WMF) File" -msgstr "Export dokumentu do souboru EPS" +msgstr "Export dokumentu do souboru Windows Metafile (WMF)" #: ../src/main.cpp:439 -#, fuzzy msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" -msgstr "PĹ™evĂ©st textovĂ© objekty na kĹ™ivky pĹ™i exportu (EPS)" +msgstr "PĹ™evĂ©st pĹ™i exportu textovĂ© objekty na kĹ™ivky (PS, EPS, PDF, SVG)" #: ../src/main.cpp:444 msgid "" @@ -10323,7 +10257,8 @@ msgid "" "Query the X coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" -"Dotázat se na X souĹ™adnici kresby, nebo pokud je urÄŤeno, objektu s --query-id" +"Dotázat se na x-ovou souĹ™adnici kresby, nebo pokud je urÄŤeno, objektu s " +"--query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" #: ../src/main.cpp:456 @@ -10331,7 +10266,8 @@ msgid "" "Query the Y coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" -"Dotázat se na Y souĹ™adnici kresby, nebo pokud je urÄŤeno, objektu s --query-id" +"Dotázat se na y-ovou souĹ™adnici kresby, nebo pokud je urÄŤeno, objektu s " +"--query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" #: ../src/main.cpp:462 @@ -10353,7 +10289,7 @@ msgstr "" #: ../src/main.cpp:478 msgid "The ID of the object whose dimensions are queried" -msgstr "ID objektu jehoĹľ rozmÄ›ry jsou hledány" +msgstr "ID objektu, jehoĹľ rozmÄ›ry jsou hledány" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory #: ../src/main.cpp:484 @@ -10362,7 +10298,7 @@ msgstr "Vytisknout adresář s rozšířenĂ­mi a skonÄŤit" #: ../src/main.cpp:489 msgid "Remove unused definitions from the defs section(s) of the document" -msgstr "Odstranit nepoužívanĂ© definice z defs sekce(Ă­) dokumentu" +msgstr "Odstranit nepoužívanĂ© definice z definiÄŤnĂ­(ch) sekce(Ă­) dokumentu" #: ../src/main.cpp:495 msgid "Enter a listening loop for D-Bus messages in console mode" @@ -10384,7 +10320,7 @@ msgstr "" #: ../src/main.cpp:511 msgid "Verb to call when Inkscape opens." -msgstr "" +msgstr "Povel volanĂ˝ pĹ™i otevĹ™enĂ­ Inkcapu." #: ../src/main.cpp:512 msgid "VERB-ID" @@ -10392,7 +10328,7 @@ msgstr "" #: ../src/main.cpp:516 msgid "Object ID to select when Inkscape opens." -msgstr "" +msgstr "ID objektu vybranĂ©ho pĹ™i otevĹ™enĂ­ Inkscapu." #: ../src/main.cpp:517 msgid "OBJECT-ID" @@ -10400,7 +10336,7 @@ msgstr "" #: ../src/main.cpp:521 msgid "Start Inkscape in interactive shell mode." -msgstr "" +msgstr "Spustit Inkscape v interaktivnĂ­m příkazořádkovĂ©m reĹľimu." #: ../src/main.cpp:871 ../src/main.cpp:1283 msgid "" @@ -10425,20 +10361,19 @@ msgstr "_NovĂ˝" #. " \n" #: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2634 ../src/verbs.cpp:2640 msgid "_Edit" -msgstr "Ăšpravy" +msgstr "Ăš_pravy" #: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2398 msgid "Paste Si_ze" -msgstr "VloĹľit Velikost" +msgstr "VloĹľit v_elikost" #: ../src/menus-skeleton.h:65 msgid "Clo_ne" msgstr "Klo_novat" #: ../src/menus-skeleton.h:79 -#, fuzzy msgid "Select Sa_me" -msgstr "Vybrat další" +msgstr "Vybrat _totéž" #: ../src/menus-skeleton.h:97 msgid "_View" @@ -10446,27 +10381,25 @@ msgstr "_ZobrazenĂ­" #: ../src/menus-skeleton.h:98 msgid "_Zoom" -msgstr "PĹ™iblĂ­ĹľenĂ­" +msgstr "_PĹ™iblĂ­ĹľenĂ­" #: ../src/menus-skeleton.h:114 msgid "_Display mode" -msgstr "ReĹľim zobrazenĂ­" +msgstr "ReĹľim _zobrazenĂ­" #. Better location in menu needs to be found #. " \n" #. " \n" #: ../src/menus-skeleton.h:123 -#, fuzzy msgid "_Color display mode" -msgstr "ReĹľim zobrazenĂ­" +msgstr "ReĹľim _barevnĂ©ho zobrazenĂ­" #. Better location in menu needs to be found #. " \n" #. " \n" #: ../src/menus-skeleton.h:136 -#, fuzzy msgid "Sh_ow/Hide" -msgstr "Zobrazit/SkrĂ˝t" +msgstr "_Zobrazit/SkrĂ˝t" #. Not quite ready to be in the menus. #. " \n" @@ -10480,7 +10413,7 @@ msgstr "_Objekt" #: ../src/menus-skeleton.h:188 msgid "Cli_p" -msgstr "OĹ™ez" +msgstr "OĹ™e_z" #: ../src/menus-skeleton.h:192 msgid "Mas_k" @@ -10488,7 +10421,7 @@ msgstr "Mas_ka" #: ../src/menus-skeleton.h:196 msgid "Patter_n" -msgstr "Vzorek" +msgstr "Vzo_rek" #: ../src/menus-skeleton.h:220 msgid "_Path" @@ -10500,14 +10433,12 @@ msgid "_Text" msgstr "_Text" #: ../src/menus-skeleton.h:266 -#, fuzzy msgid "Filter_s" -msgstr "Filtry" +msgstr "_Filtry" #: ../src/menus-skeleton.h:272 -#, fuzzy msgid "Exte_nsions" -msgstr "RozšířenĂ­ \"" +msgstr "_RozšířenĂ­" #: ../src/menus-skeleton.h:278 msgid "_Help" @@ -10515,7 +10446,7 @@ msgstr "_NápovÄ›da" #: ../src/menus-skeleton.h:282 msgid "Tutorials" -msgstr "Návody" +msgstr "_Návody" #: ../src/object-edit.cpp:439 msgid "" @@ -13032,7 +12963,7 @@ msgstr "MÄ›nit znamĂ©nko zmÄ›ny měřítka v kaĹľdĂ©m sloupci" #: ../src/ui/dialog/clonetiler.cpp:477 msgid "_Rotation" -msgstr "_Rotace" +msgstr "_OtoÄŤenĂ­" #: ../src/ui/dialog/clonetiler.cpp:485 msgid "Angle:" @@ -13072,7 +13003,7 @@ msgstr "ZamÄ›nit smÄ›r otáčenĂ­ pro kaĹľdĂ˝ sloupec" #: ../src/ui/dialog/clonetiler.cpp:553 msgid "_Blur & opacity" -msgstr "RozostĹ™enĂ­ & prĹŻsvitnost" +msgstr "_RozostĹ™enĂ­ a prĹŻhlednost" #: ../src/ui/dialog/clonetiler.cpp:562 msgid "Blur:" @@ -20670,9 +20601,8 @@ msgstr "Uspořádat vybranĂ© objekty" #. # begin single scan #. brightness #: ../src/ui/dialog/tracedialog.cpp:508 -#, fuzzy msgid "_Brightness cutoff" -msgstr "OdříznutĂ­ jasu" +msgstr "_OdříznutĂ­ jasu" #: ../src/ui/dialog/tracedialog.cpp:512 msgid "Trace by a given brightness level" @@ -20684,126 +20614,114 @@ msgstr "RozdĂ­l v jasu mezi ÄŤernou a bĂ­lou" #: ../src/ui/dialog/tracedialog.cpp:529 msgid "Single scan: creates a path" -msgstr "JednoduchĂ˝ sken: vytvoří kĹ™ivku" +msgstr "JednotlivĂ˝ sken (vytvoří kĹ™ivku)" #. canny edge detection #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method #: ../src/ui/dialog/tracedialog.cpp:534 -#, fuzzy msgid "_Edge detection" -msgstr "Detekce hran" +msgstr "Detekce _hran" #: ../src/ui/dialog/tracedialog.cpp:538 msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "Trasovat pomocĂ­ optimálnĂ­ detekce hran algoritmem J. Cannyho." +msgstr "Vektorizovat pomocĂ­ optimálnĂ­ detekce hran algoritmem J. Cannyho." #: ../src/ui/dialog/tracedialog.cpp:556 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" msgstr "RozdĂ­l jasu pro detekci hrany" #: ../src/ui/dialog/tracedialog.cpp:559 -#, fuzzy msgid "T_hreshold:" -msgstr "Práh:" +msgstr "_Práh:" #. quantization #. TRANSLATORS: Color Quantization: the process of reducing the number #. of colors in an image by selecting an optimized set of representative #. colors and then re-applying this reduced set to the original image. #: ../src/ui/dialog/tracedialog.cpp:571 -#, fuzzy msgid "Color _quantization" -msgstr "Kvantizace barvy" +msgstr "_Kvantizace barev" #: ../src/ui/dialog/tracedialog.cpp:575 msgid "Trace along the boundaries of reduced colors" -msgstr "Trasovat podĂ©l hranic redukovanĂ˝ch barev" +msgstr "Vektorizovat podĂ©l hranic redukovanĂ˝ch barev" #: ../src/ui/dialog/tracedialog.cpp:583 msgid "The number of reduced colors" msgstr "PoÄŤet redukovanĂ˝ch barev" #: ../src/ui/dialog/tracedialog.cpp:586 -#, fuzzy msgid "_Colors:" -msgstr "Barvy:" +msgstr "_Barvy:" #. swap black and white #: ../src/ui/dialog/tracedialog.cpp:594 -#, fuzzy msgid "_Invert image" -msgstr "Invertovat obrázek" +msgstr "_Invertovat barvy obrázku" #: ../src/ui/dialog/tracedialog.cpp:599 msgid "Invert black and white regions" -msgstr "Invertovat ÄŤernĂ© a bĂ­lĂ© oblasti" +msgstr "Invertuje ÄŤernĂ© a bĂ­lĂ© oblasti" #. # end single scan #. # begin multiple scan #: ../src/ui/dialog/tracedialog.cpp:609 -#, fuzzy msgid "B_rightness steps" -msgstr "Kroky jasu" +msgstr "StupnÄ› _jasu" #: ../src/ui/dialog/tracedialog.cpp:613 msgid "Trace the given number of brightness levels" -msgstr "Trasovat danou hodnotu ĂşrovnĂ­ jasu" +msgstr "Vektorizovat danĂ˝ poÄŤet ĂşrovnĂ­ jasu" #: ../src/ui/dialog/tracedialog.cpp:621 -#, fuzzy msgid "Sc_ans:" -msgstr "PoÄŤet skenovánĂ­:" +msgstr "PoÄŤet s_kenĹŻ:" #: ../src/ui/dialog/tracedialog.cpp:625 msgid "The desired number of scans" -msgstr "PoĹľadovanĂ˝ poÄŤet skenovánĂ­" +msgstr "PoĹľadovanĂ˝ poÄŤet skenĹŻ" #: ../src/ui/dialog/tracedialog.cpp:630 -#, fuzzy msgid "Co_lors" -msgstr "Barva" +msgstr "_Barvy" #: ../src/ui/dialog/tracedialog.cpp:634 msgid "Trace the given number of reduced colors" -msgstr "Trasovat danĂ˝ poÄŤet redukovanĂ˝ch barev" +msgstr "Vektorizovat danĂ˝ poÄŤet redukovanĂ˝ch barev" #: ../src/ui/dialog/tracedialog.cpp:639 -#, fuzzy msgid "_Grays" -msgstr "Ĺ edĂ©" +msgstr "_Ĺ edĂ©" #: ../src/ui/dialog/tracedialog.cpp:643 msgid "Same as Colors, but the result is converted to grayscale" -msgstr "Totéž jako Barvy, ale vĂ˝sledek bude zkonvertován do odstĂ­nĹŻ šedi" +msgstr "Totéž co barvy, ale vĂ˝sledek bude zkonvertován do odstĂ­nĹŻ šedĂ©" #. TRANSLATORS: "Smooth" is a verb here #: ../src/ui/dialog/tracedialog.cpp:649 -#, fuzzy msgid "S_mooth" -msgstr "Vyhladit" +msgstr "V_yhladit" #: ../src/ui/dialog/tracedialog.cpp:653 msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "Aplikovat Gaussovo rozostĹ™enĂ­ na bitmapu pĹ™ed trasovánĂ­m" +msgstr "PĹ™ed trasovánĂ­m použít na bitmapu Gaussovo rozostĹ™enĂ­" #. TRANSLATORS: "Stack" is a verb here #: ../src/ui/dialog/tracedialog.cpp:657 -#, fuzzy msgid "Stac_k scans" -msgstr "Poskládat skeny na sebe" +msgstr "Po_skládat skeny na sebe" #: ../src/ui/dialog/tracedialog.cpp:661 msgid "" "Stack scans on top of one another (no gaps) instead of tiling (usually with " "gaps)" msgstr "" -"Navršit skenovanĂ© plochy na sebe (bez mezer) mĂ­sto dláždÄ›nĂ­ (obvykle s " +"Navrší skenovanĂ© plochy na sebe (bez mezer) namĂ­sto dlaĹľdicovánĂ­ (obvykle s " "mezerami)" #: ../src/ui/dialog/tracedialog.cpp:665 -#, fuzzy msgid "Remo_ve background" -msgstr "Odstranit pozadĂ­" +msgstr "Odstranit _pozadĂ­" #. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan #: ../src/ui/dialog/tracedialog.cpp:670 @@ -20812,107 +20730,102 @@ msgstr "Odstranit spodnĂ­ vrstvu (pozadĂ­) po dokonÄŤenĂ­" #: ../src/ui/dialog/tracedialog.cpp:675 msgid "Multiple scans: creates a group of paths" -msgstr "VĂ­cenásobnĂ© skenovánĂ­: Vytvoří skupinu kĹ™ivek" +msgstr "VĂ­cenásobnĂ˝ sken (vytvoří skupinu kĹ™ivek)" #. # end multiple scan #. ## end mode page #: ../src/ui/dialog/tracedialog.cpp:684 -#, fuzzy msgid "_Mode" -msgstr "ReĹľim" +msgstr "_ReĹľim" #. ## begin option page #. # potrace parameters #: ../src/ui/dialog/tracedialog.cpp:690 -#, fuzzy msgid "Suppress _speckles" -msgstr "PotlaÄŤit skvrny" +msgstr "PotlaÄŤit _neÄŤistoty" #: ../src/ui/dialog/tracedialog.cpp:692 msgid "Ignore small spots (speckles) in the bitmap" -msgstr "Ignorovat malĂ© stopy (skvrny) v bitmapÄ›" +msgstr "Ignorovat malĂ© skvrny (neÄŤistoty) v bitmapÄ›" #: ../src/ui/dialog/tracedialog.cpp:700 msgid "Speckles of up to this many pixels will be suppressed" -msgstr "Skvrny do tĂ©to velikosti (v pixelech) budou potlaÄŤeny" +msgstr "NeÄŤistoty do tĂ©to velikosti (v pixelech) budou potlaÄŤeny" #: ../src/ui/dialog/tracedialog.cpp:703 -#, fuzzy msgid "S_ize:" -msgstr "Velikost:" +msgstr "_Velikost:" #: ../src/ui/dialog/tracedialog.cpp:708 -#, fuzzy msgid "Smooth _corners" -msgstr "Vyhladit rohy" +msgstr "Vyhladit _rohy" #: ../src/ui/dialog/tracedialog.cpp:710 msgid "Smooth out sharp corners of the trace" -msgstr "Vyhladit ostrĂ© rohy pĹ™i trasovánĂ­" +msgstr "VyhladĂ­ ostrĂ© hrany pĹ™i trasovánĂ­" #: ../src/ui/dialog/tracedialog.cpp:719 msgid "Increase this to smooth corners more" -msgstr "ZvýšenĂ­m uhladĂ­te rohy" +msgstr "ZvýšenĂ­m vĂ­ce uhladĂ­te rohy" #: ../src/ui/dialog/tracedialog.cpp:726 -#, fuzzy msgid "Optimize p_aths" -msgstr "Optimalizovat cesty" +msgstr "Optimalizovat _kĹ™ivky" #: ../src/ui/dialog/tracedialog.cpp:729 msgid "Try to optimize paths by joining adjacent Bezier curve segments" msgstr "" -"Pokusit se optimalizovat kĹ™ivky spojenĂ­m pĹ™ilĂ©hajĂ­cĂ­ch BezierovĂ˝ch kĹ™ivek" +"Pokusit se optimalizovat kĹ™ivky spojenĂ­m sousednĂ­ch BĂ©zierovĂ˝ch kĹ™ivek" #: ../src/ui/dialog/tracedialog.cpp:737 msgid "" "Increase this to reduce the number of nodes in the trace by more aggressive " "optimization" msgstr "" -"ZvýšenĂ­m tohoto parametru lze redukovat poÄŤet uzlĹŻ ve vĂ˝sledku trasovánĂ­ " +"ZvýšenĂ­m tohoto parametru lze snĂ­Ĺľit poÄŤet uzlĹŻ ve vĂ˝sledku trasovánĂ­ " "pomocĂ­ agresivnÄ›jší optimalizace" #: ../src/ui/dialog/tracedialog.cpp:739 -#, fuzzy msgid "To_lerance:" -msgstr "Tolerance:" +msgstr "To_lerance:" #. ## end option page #: ../src/ui/dialog/tracedialog.cpp:753 -#, fuzzy msgid "O_ptions" -msgstr "MoĹľnosti" +msgstr "_MoĹľnosti" #. ### credits #: ../src/ui/dialog/tracedialog.cpp:757 -#, fuzzy msgid "" "Inkscape bitmap tracing\n" "is based on Potrace,\n" "created by Peter Selinger\n" "\n" "http://potrace.sourceforge.net" -msgstr "DĂ­ky patří Peteru Selingerovi, http://potrace.sourceforge.net" +msgstr "" +"Vektorizace Inkscape\n" +"je zaloĹľena na Potrace,\n" +"vytvoĹ™enĂ©m Petrem Selingereme\n" +"\n" +"http://potrace.sourceforge.net" #: ../src/ui/dialog/tracedialog.cpp:760 msgid "Credits" -msgstr "Kredity" +msgstr "Zásluhy" #. #### begin right panel #. ## SIOX #: ../src/ui/dialog/tracedialog.cpp:774 -#, fuzzy msgid "SIOX _foreground selection" -msgstr "SIOX vĂ˝bÄ›r popĹ™edĂ­" +msgstr "VĂ˝bÄ›r _popĹ™edĂ­ SIOX" #: ../src/ui/dialog/tracedialog.cpp:777 msgid "Cover the area you want to select as the foreground" msgstr "Zakryjte oblast, kterou chcete vybrat jako popĹ™edĂ­" #: ../src/ui/dialog/tracedialog.cpp:782 -#, fuzzy msgid "Live Preview" -msgstr "Náhled" +msgstr "Ĺ˝ivĂ˝ náhled" #: ../src/ui/dialog/tracedialog.cpp:788 #, fuzzy @@ -20961,21 +20874,20 @@ msgid "Vertical size (absolute or percentage of current)" msgstr "PřírĹŻstek k svislĂ© velikosti (absolutnĂ­ nebo procentnĂ­)" #: ../src/ui/dialog/transformation.cpp:84 -#, fuzzy msgid "A_ngle:" -msgstr "Ăšhel" +msgstr "_Ăšhel:" #: ../src/ui/dialog/transformation.cpp:84 #: ../src/ui/dialog/transformation.cpp:1104 msgid "Rotation angle (positive = counterclockwise)" -msgstr "Ăšhel otoÄŤenĂ­ (kladnĂ˝ smÄ›r = proti smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek)" +msgstr "Ăšhel otoÄŤenĂ­ (kladnĂ˝ = doleva)" #: ../src/ui/dialog/transformation.cpp:86 msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" msgstr "" -"Ăšhel vodorovnĂ©ho zešikmenĂ­ (kladnĂ˝ smÄ›r = proti smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek), " +"Ăšhel vodorovnĂ©ho zkosenĂ­ (kladnĂ˝ = doleva), " "nebo absolutnĂ­ posunutĂ­, nebo procentuálnĂ­ posunutĂ­" #: ../src/ui/dialog/transformation.cpp:88 @@ -20983,7 +20895,7 @@ msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" msgstr "" -"Ăšhel svislĂ©ho zešikmenĂ­ (kladnĂ˝ smÄ›r = proti smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek), nebo " +"Ăšhel svislĂ©ho zkosenĂ­ (kladnĂ˝ = doleva), nebo " "absolutnĂ­ posunutĂ­, nebo procentuálnĂ­ posunutĂ­" #: ../src/ui/dialog/transformation.cpp:91 @@ -21023,9 +20935,8 @@ msgstr "" "absolutnĂ­ pozici přímo" #: ../src/ui/dialog/transformation.cpp:102 -#, fuzzy msgid "_Scale proportionally" -msgstr "Ĺ kálovat proporcionálnÄ›" +msgstr "_ZmÄ›nit rozmÄ›r proporcionálnÄ›" #: ../src/ui/dialog/transformation.cpp:102 msgid "Preserve the width/height ratio of the scaled objects" @@ -21419,67 +21330,64 @@ msgstr "" #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" -msgstr "" +msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu otáčenĂ­ o %g° přírĹŻstcĂ­ch, " +"kliknutĂ­ zruší" #: ../src/ui/tool/node.cpp:470 -#, fuzzy msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift: otoÄŤenĂ­ obou táhel o stejnĂ˝ Ăşhel" #: ../src/ui/tool/node.cpp:477 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" -msgstr "" +msgstr "Táhlo automatickĂ©ho uzlu: taĹľenĂ­ pĹ™evede na hladkĂ˝ uzel (%s)" #: ../src/ui/tool/node.cpp:480 #, c-format msgctxt "Path handle tip" msgid "%s: drag to shape the segment (%s)" -msgstr "" +msgstr "%s: taĹľenĂ­ tvaruje segment (%s)" #: ../src/ui/tool/node.cpp:500 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "" +msgstr "PĹ™esun táhla o %s, %s; Ăşhel %.2f °, dĂ©lka %s" #: ../src/ui/tool/node.cpp:1270 -#, fuzzy msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "" -"Shift: pĹ™epĂ­ná stav vybránĂ­, vynutĂ­ gumovitost, vypĂ­ná pĹ™ichytávánĂ­" +"Shift: vytaĹľenĂ­ táhla, kliknutĂ­ pĹ™epne mezi vybránĂ­m a nevybránĂ­m" #: ../src/ui/tool/node.cpp:1272 -#, fuzzy msgctxt "Path node tip" msgid "Shift: click to toggle selection" msgstr "" -"Shift: pĹ™epĂ­ná stav vybránĂ­, vynutĂ­ gumovitost, vypĂ­ná pĹ™ichytávánĂ­" +"Shift: kliknutĂ­ pĹ™epne mezi vybránĂ­m a nevybránĂ­m uzlu" #: ../src/ui/tool/node.cpp:1277 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" -msgstr "" +msgstr "Ctrl+Alt: pĹ™esun podĂ©l osy táhla, kliknutĂ­ smaĹľe uzel" #: ../src/ui/tool/node.cpp:1280 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" -msgstr "" +msgstr "Ctrl: pĹ™esun podĂ©l os, kliknutĂ­ zmÄ›nĂ­ typ uzlu" #: ../src/ui/tool/node.cpp:1284 -#, fuzzy msgctxt "Path node tip" msgid "Alt: sculpt nodes" -msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu" +msgstr "Alt: tvarovánĂ­ uzlĹŻ" #: ../src/ui/tool/node.cpp:1292 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" +msgstr "%s: taĹľenĂ­ tvaruje kĹ™ivku (další moĹľnosti s Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1295 #, c-format @@ -21488,6 +21396,8 @@ msgid "" "%s: drag to shape the path, click to toggle scale/rotation handles " "(more: Shift, Ctrl, Alt)" msgstr "" +"%s: taĹľenĂ­ tvaruje kĹ™ivku, kliknutĂ­ pĹ™epĂ­ná mezi táhly rozmÄ›ru a " +"otoÄŤenĂ­ (další moĹľnostĂ­ s Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1298 #, c-format @@ -21496,22 +21406,22 @@ msgid "" "%s: drag to shape the path, click to select only this node (more: " "Shift, Ctrl, Alt)" msgstr "" +"%s: taĹľenĂ­ tvaruje kĹ™ivku, kliknutĂ­ vybere jen tento uzel " +"(další moĹľnosti s Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1309 -#, fuzzy, c-format +#, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" -msgstr "PĹ™esunout uzly" +msgstr "PĹ™esunutĂ­ uzlu o %s, %s" #: ../src/ui/tool/node.cpp:1320 -#, fuzzy msgid "Symmetric node" -msgstr "symetrickĂ©" +msgstr "SoumÄ›rnĂ˝ uzel" #: ../src/ui/tool/node.cpp:1321 -#, fuzzy msgid "Auto-smooth node" -msgstr "Vyhladit" +msgstr "AutomatickĂ˝ uzel" #: ../src/ui/tool/path-manipulator.cpp:821 #, fuzzy @@ -21530,61 +21440,54 @@ msgid "Delete node" msgstr "Odstranit uzel" #: ../src/ui/tool/path-manipulator.cpp:1392 -#, fuzzy msgid "Cycle node type" msgstr "ZmÄ›nit typ uzlu" #: ../src/ui/tool/path-manipulator.cpp:1407 -#, fuzzy msgid "Drag handle" -msgstr "Vykreslit ovládacĂ­ linky" +msgstr "" #: ../src/ui/tool/path-manipulator.cpp:1416 msgid "Retract handle" -msgstr "Stáhnout táhlo" +msgstr "" #: ../src/ui/tool/transform-handle-set.cpp:195 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift+Ctrl: stejnomÄ›rná zmÄ›na rozmÄ›ru od stĹ™edu otáčenĂ­" #: ../src/ui/tool/transform-handle-set.cpp:197 -#, fuzzy msgctxt "Transform handle tip" msgid "Ctrl: scale uniformly" -msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu" +msgstr "Ctrl: stejnomÄ›rná zmÄ›na rozmÄ›ru" #: ../src/ui/tool/transform-handle-set.cpp:202 -#, fuzzy msgctxt "Transform handle tip" msgid "" "Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "Shift: kreslit barevnĂ˝ pĹ™echod kolem počáteÄŤnĂ­ho bodu" +msgstr "" +"Shift+Alt: zmÄ›na rozmÄ›ru s celoÄŤĂ­selnĂ˝m pomÄ›rem stran od stĹ™edu otáčenĂ­" #: ../src/ui/tool/transform-handle-set.cpp:204 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: scale from the rotation center" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift: zmÄ›na rozmÄ›ru od stĹ™edu otáčenĂ­" #: ../src/ui/tool/transform-handle-set.cpp:207 -#, fuzzy msgctxt "Transform handle tip" msgid "Alt: scale using an integer ratio" -msgstr "Alt: zamkne polomÄ›r spirály" +msgstr "Alt: zmÄ›na rozmÄ›ru s celoÄŤĂ­selnĂ˝m pomÄ›rem stran" #: ../src/ui/tool/transform-handle-set.cpp:209 -#, fuzzy msgctxt "Transform handle tip" msgid "Scale handle: drag to scale the selection" -msgstr "ŽádnĂ© kĹ™ivky k pĹ™evrácenĂ­ nebyly vybrány." +msgstr "RozmÄ›rovĂ˝ Ăşchyt: taĹľenĂ­m zmÄ›nĂ­te rozmÄ›r" #: ../src/ui/tool/transform-handle-set.cpp:214 #, c-format msgctxt "Transform handle tip" msgid "Scale by %.2f%% x %.2f%%" -msgstr "" +msgstr "ZmÄ›na velikosti na %.2f %% Ă— %.2f %%" #: ../src/ui/tool/transform-handle-set.cpp:438 #, c-format @@ -21593,18 +21496,19 @@ msgid "" "Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " "increments" msgstr "" +"Shift+Ctrl: otoÄŤenĂ­ kolem protilehlĂ©ho rohu s pĹ™ichytávánĂ­ Ăşhlu o %f° " +"přírĹŻstcĂ­ch" #: ../src/ui/tool/transform-handle-set.cpp:441 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: rotate around the opposite corner" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift: otoÄŤenĂ­ kolem protilehlĂ©ho rohu" #: ../src/ui/tool/transform-handle-set.cpp:445 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap angle to %f° increments" -msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu" +msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu o %f° přírĹŻstcĂ­ch" #: ../src/ui/tool/transform-handle-set.cpp:447 msgctxt "Transform handle tip" @@ -21612,13 +21516,14 @@ msgid "" "Rotation handle: drag to rotate the selection around the rotation " "center" msgstr "" +"OtáčecĂ­ Ăşchyt: taĹľenĂ­m otoÄŤĂ­te vĂ˝bÄ›r kolem stĹ™edu otáčenĂ­" #. event #: ../src/ui/tool/transform-handle-set.cpp:452 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Rotate by %.2f°" -msgstr "OtoÄŤit o pixely" +msgstr "OtoÄŤit o %.2f °" #: ../src/ui/tool/transform-handle-set.cpp:578 #, c-format @@ -21627,70 +21532,72 @@ msgid "" "Shift+Ctrl: skew about the rotation center with snapping to %f° " "increments" msgstr "" +"Shift+Ctrl: zkosenĂ­ kolem stĹ™edu otáčenĂ­ s pĹ™ichytávánĂ­m o %f° " +"přírĹŻstcĂ­ch" #: ../src/ui/tool/transform-handle-set.cpp:581 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: skew about the rotation center" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift: zkosenĂ­ kolem stĹ™edu otáčenĂ­" #: ../src/ui/tool/transform-handle-set.cpp:585 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap skew angle to %f° increments" -msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu" +msgstr "Ctrl: pĹ™ichytávánĂ­ Ăşhlu zkosenĂ­ o %f° přírĹŻstcĂ­ch" #: ../src/ui/tool/transform-handle-set.cpp:588 msgctxt "Transform handle tip" msgid "" "Skew handle: drag to skew (shear) selection about the opposite handle" -msgstr "" +msgstr "Ăšchyt zkosenĂ­: taĹľenĂ­m zkosĂ­te vĂ˝bÄ›r okolo protilehlĂ©ho Ăşchytu" #: ../src/ui/tool/transform-handle-set.cpp:594 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Skew horizontally by %.2f°" -msgstr "Posunout vodorovnÄ› o pixely" +msgstr "ZkosenĂ­ vodorovnÄ› o %.2f °" #: ../src/ui/tool/transform-handle-set.cpp:597 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Skew vertically by %.2f°" -msgstr "Posunout svisle o pixely" +msgstr "ZkosenĂ­ svisle o %.2f °" #: ../src/ui/tool/transform-handle-set.cpp:656 msgctxt "Transform handle tip" msgid "Rotation center: drag to change the origin of transforms" -msgstr "" +msgstr "StĹ™ed otáčenĂ­: taĹľenĂ­m pĹ™emĂ­stĂ­te" #: ../src/ui/tools/arc-tool.cpp:252 msgid "" "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" -"Ctrl: udÄ›lá kruĹľnici nebo elipsu s celoÄŤĂ­selnĂ˝m pomÄ›rem stran, " -"pĹ™ichytávánĂ­ Ăşhlu obloukĹŻ/segmentĹŻ" +"Ctrl: nakreslĂ­ kruĹľnici nebo elipsu s celoÄŤĂ­selnĂ˝m pomÄ›rem stran " +"a pĹ™ichytávánĂ­m Ăşhlu obloukĹŻ/segmentĹŻ" #: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 msgid "Shift: draw around the starting point" -msgstr "Shift: kreslit kolem počáteÄŤnĂ­ho bodu" +msgstr "Shift: kreslit se stĹ™edem v počáteÄŤnĂ­m bodÄ›" #: ../src/ui/tools/arc-tool.cpp:422 -#, fuzzy, c-format +#, c-format msgid "" "Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " "to draw around the starting point" msgstr "" -"Elipsa: %s × %s; s Ctrl se vytvoří kruĹľnice nebo elipsa s " -"celoÄŤĂ­selnĂ˝m pomÄ›rem stran; s Shift se vykreslĂ­ kolem počátku" +"Elipsa: %s Ă— %s (vymezená pomÄ›rem stran %d : %d); se Shiftem ji " +"nakreslĂ­te se stĹ™edem v počátku" #: ../src/ui/tools/arc-tool.cpp:424 -#, fuzzy, c-format +#, c-format msgid "" "Ellipse: %s × %s; with Ctrl to make square or integer-" "ratio ellipse; with Shift to draw around the starting point" msgstr "" -"Elipsa: %s × %s; s Ctrl se vytvoří kruĹľnice nebo elipsa s " -"celoÄŤĂ­selnĂ˝m pomÄ›rem stran; s Shift se vykreslĂ­ kolem počátku" +"Elipsa: %s Ă— %s; s Ctrl vytvoříte kruĹľnici nebo elipsu s " +"celoÄŤĂ­selnĂ˝m pomÄ›rem stran; se Shiftem ji nakreslĂ­te se stĹ™edem v " +" počátku" #: ../src/ui/tools/arc-tool.cpp:447 msgid "Create ellipse" @@ -21706,52 +21613,48 @@ msgstr "HvÄ›zda: ZmÄ›nit poÄŤet rohĹŻ" #. status text #: ../src/ui/tools/box3d-tool.cpp:583 msgid "3D Box; with Shift to extrude along the Z axis" -msgstr "" +msgstr "Kvádr; se Shiftem jej vysunete po ose Z" #: ../src/ui/tools/box3d-tool.cpp:609 -#, fuzzy msgid "Create 3D box" -msgstr "Dláždit pomocĂ­ klonĹŻ" +msgstr "VytvoĹ™it kvádr" #: ../src/ui/tools/calligraphic-tool.cpp:536 msgid "" "Guide path selected; start drawing along the guide with Ctrl" -msgstr "" +msgstr "VodicĂ­ kĹ™ivka vybrána; s Ctrl ji zaÄŤnete obtahovat" #: ../src/ui/tools/calligraphic-tool.cpp:538 msgid "Select a guide path to track with Ctrl" -msgstr "" +msgstr "S Ctrl vyberete vodicĂ­ kĹ™ivku k obtaĹľenĂ­" #: ../src/ui/tools/calligraphic-tool.cpp:673 msgid "Tracking: connection to guide path lost!" -msgstr "" +msgstr "Obtah: ztraceno napojenĂ­ na vodicĂ­ kĹ™ivku!" #: ../src/ui/tools/calligraphic-tool.cpp:673 msgid "Tracking a guide path" -msgstr "" +msgstr "Obtahuji vodicĂ­ kĹ™ivku" #: ../src/ui/tools/calligraphic-tool.cpp:676 -#, fuzzy msgid "Drawing a calligraphic stroke" -msgstr "VytvoĹ™it kaligrafickou kĹ™ivku" +msgstr "KreslĂ­m kaligrafickĂ˝ tah" #: ../src/ui/tools/calligraphic-tool.cpp:977 -#, fuzzy msgid "Draw calligraphic stroke" -msgstr "VytvoĹ™it kaligrafickou kĹ™ivku" +msgstr "Kreslit kaligrafickĂ˝ tah" #: ../src/ui/tools/connector-tool.cpp:499 msgid "Creating new connector" msgstr "Vytvářím novĂ˝ konektor" #: ../src/ui/tools/connector-tool.cpp:740 -#, fuzzy msgid "Connector endpoint drag cancelled." -msgstr "PĹ™esun uzlu nebo ovládacĂ­ho bodu zrušen." +msgstr "TaĹľenĂ­ koncovĂ©ho bodu konektoru zrušeno." #: ../src/ui/tools/connector-tool.cpp:783 msgid "Reroute connector" -msgstr "Znovu natáhnout konektor" +msgstr "PĹ™esmÄ›rovat konektor" #: ../src/ui/tools/connector-tool.cpp:936 msgid "Create connector" @@ -21764,8 +21667,8 @@ msgstr "DokonÄŤuji konektor" #: ../src/ui/tools/connector-tool.cpp:1191 msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" -"KoncovĂ˝ bod konektoru: taĹľenĂ­m dojde k pĹ™esmÄ›rovánĂ­ nebo k propojenĂ­ " -"k jinĂ˝m tvarĹŻm" +"KoncovĂ˝ bod konektoru: taĹľenĂ­m pĹ™esmÄ›rujete nebo pĹ™ipojĂ­te k novĂ˝m " +"tvarĹŻm" #: ../src/ui/tools/connector-tool.cpp:1336 msgid "Select at least one non-connector object." @@ -21786,7 +21689,7 @@ msgstr "PĹ™inutit konektory ignorovat vybranĂ© objekty" #: ../src/ui/tools/dropper-tool.cpp:281 #, c-format msgid " alpha %.3g" -msgstr " alfa %.3g" +msgstr " prĹŻhlednost %.3g" #. where the color is picked, to show in the statusbar #: ../src/ui/tools/dropper-tool.cpp:283 @@ -21801,7 +21704,7 @@ msgstr " pod kurzorem" #. message, to show in the statusbar #: ../src/ui/tools/dropper-tool.cpp:285 msgid "Release mouse to set color." -msgstr "UvolnÄ›te myš k nastavenĂ­ barvy." +msgstr "UvolnÄ›te myš pro nastavenĂ­ barvy." #: ../src/ui/tools/dropper-tool.cpp:333 msgid "Set picked color" @@ -21818,9 +21721,8 @@ msgid "Draw eraser stroke" msgstr "VytvoĹ™it kaligrafickou kĹ™ivku" #: ../src/ui/tools/flood-tool.cpp:192 -#, fuzzy msgid "Visible Colors" -msgstr "Barvy" +msgstr "ViditelnĂ© barvy" #: ../src/ui/tools/flood-tool.cpp:210 #, fuzzy @@ -21856,32 +21758,36 @@ msgid "" "Area filled, path with %d node created and unioned with selection." msgid_plural "" "Area filled, path with %d nodes created and unioned with selection." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzlem a sjednocena s " +"vĂ˝bÄ›rem." +msgstr[1] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzly a sjednocena s " +"vĂ˝bÄ›rem." +msgstr[2] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzly a sjednocena s " +"vĂ˝bÄ›rem." #: ../src/ui/tools/flood-tool.cpp:482 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzlem." +msgstr[1] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzly." +msgstr[2] "Oblast vyplnÄ›na, vytvoĹ™ena kĹ™ivka s %d uzly." #: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 msgid "Area is not bounded, cannot fill." -msgstr "" +msgstr "Oblast nenĂ­ uzavĹ™ená, nelze vyplnit." #: ../src/ui/tools/flood-tool.cpp:1065 msgid "" "Only the visible part of the bounded area was filled. If you want to " "fill all of the area, undo, zoom out, and fill again." msgstr "" +"Byla vyplnÄ›na jen viditelná část uzavĹ™enĂ© oblasti. Pokud chcete " +"vyplnit celou oblast, vraĹĄte zpÄ›t, oddalte a proveÄŹte vyplnÄ›nĂ­ znovu." #: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 -#, fuzzy msgid "Fill bounded area" -msgstr "VĂ˝plĹ a čáry" +msgstr "VyplnĂ­ uzavĹ™enou oblast" #: ../src/ui/tools/flood-tool.cpp:1099 #, fuzzy @@ -21895,7 +21801,7 @@ msgstr "" #. We hit green anchor, closing Green-Blue-Red #: ../src/ui/tools/freehand-base.cpp:518 msgid "Path is closed." -msgstr "KĹ™ivka uzavĹ™ena" +msgstr "KĹ™ivka uzavĹ™ena." #. We hit bot start and end of single curve, closing paths #: ../src/ui/tools/freehand-base.cpp:533 @@ -21907,40 +21813,38 @@ msgid "Draw path" msgstr "Nakreslit kĹ™ivku" #: ../src/ui/tools/freehand-base.cpp:792 -#, fuzzy msgid "Creating single dot" -msgstr "Vytvářím novou kĹ™ivku" +msgstr "Vytvářím jednotlivĂ˝ bod" #: ../src/ui/tools/freehand-base.cpp:793 -#, fuzzy msgid "Create single dot" -msgstr "Dláždit pomocĂ­ klonĹŻ" +msgstr "VytvoĹ™it jednotlivĂ˝ bod" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 -#, fuzzy, c-format +#, c-format msgid "%s selected" -msgstr "PoslednĂ­ vybranĂ˝" +msgstr "vybrán %s" #. TRANSLATORS: Mind the space in front. This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 -#, fuzzy, c-format +#, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" -msgstr[0] "PĹ™esunout táhlo barevnĂ©ho pĹ™echodu" -msgstr[1] "PĹ™esunout táhlo barevnĂ©ho pĹ™echodu" -msgstr[2] "PĹ™esunout táhlo barevnĂ©ho pĹ™echodu" +msgstr[0] " z %d zarážky pĹ™echodu" +msgstr[1] " z %d zarážek pĹ™echodu" +msgstr[2] " z %d zarážek pĹ™echodu" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 #: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 #: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 -#, fuzzy, c-format +#, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" -msgstr[0] "Duplikovat vybranĂ© objekty" -msgstr[1] "Duplikovat vybranĂ© objekty" -msgstr[2] "Duplikovat vybranĂ© objekty" +msgstr[0] " na %d vybranĂ©m objektu" +msgstr[1] " na %d vybranĂ˝ch objektech" +msgstr[2] " na %d vybranĂ˝ch objektech" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) #: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 @@ -21964,9 +21868,9 @@ msgstr[2] "" #, c-format msgid "%d gradient handle selected out of %d" msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%d zarážka pĹ™echodu vybrán z %d" +msgstr[1] "%d zarážky pĹ™echodu vybrány z %d" +msgstr[2] "%d zarážek pĹ™echodu vybráno z %d" #. TRANSLATORS: The plural refers to number of selected objects #: ../src/ui/tools/gradient-tool.cpp:155 @@ -21974,14 +21878,15 @@ msgstr[2] "" msgid "No gradient handles selected out of %d on %d selected object" msgid_plural "" "No gradient handles selected out of %d on %d selected objects" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Nevybrána žádná zarážka pĹ™echodu z %d v %d vybranĂ©m objektu" +msgstr[1] "Nevybrána žádná zarážka pĹ™echodu z %d ve %d vybranĂ˝ch " +"objektech" +msgstr[2] "Nevybrána žádná zarážka pĹ™echodu z %d v %d vybranĂ˝ch " +"objektech" #: ../src/ui/tools/gradient-tool.cpp:440 -#, fuzzy msgid "Simplify gradient" -msgstr "KruhovĂ˝ pĹ™echod" +msgstr "Zjednodušit barevnĂ˝ pĹ™echod" #: ../src/ui/tools/gradient-tool.cpp:516 msgid "Create default gradient" @@ -22154,18 +22059,18 @@ msgstr "Vytvářím novou kĹ™ivku" #: ../src/ui/tools/pen-tool.cpp:419 ../src/ui/tools/pencil-tool.cpp:214 msgid "Appending to selected path" -msgstr "PĹ™ipojuje k vybranĂ© kĹ™ivce" +msgstr "PĹ™ipojuji k vybranĂ© kĹ™ivce" #: ../src/ui/tools/pen-tool.cpp:576 msgid "Click or click and drag to close and finish the path." msgstr "" -"KliknutĂ­m nebo cliknutĂ­m a taĹľenĂ­m uzavĹ™ete a ukonÄŤete kĹ™ivku." +"KliknutĂ­m nebo kliknutĂ­m a taĹľenĂ­m uzavĹ™ete a ukonÄŤete kĹ™ivku." #: ../src/ui/tools/pen-tool.cpp:586 msgid "" "Click or click and drag to continue the path from this point." msgstr "" -"KliknutĂ­m nebo cliknutĂ­m a taĹľenĂ­m pokraÄŤujte v kĹ™ivce z " +"KliknutĂ­m nebo kliknutĂ­m a taĹľenĂ­m pokraÄŤujte v kĹ™ivce z " "tohoto bodu." #: ../src/ui/tools/pen-tool.cpp:1211 @@ -22289,7 +22194,7 @@ msgid "" "Rectangle: %s × %s; with Ctrl to make square or integer-" "ratio rectangle; with Shift to draw around the starting point" msgstr "" -"ObdĂ©lnĂ­k: %s × %s; s Ctrl se vytvoří ÄŤtverec nebo " +"ÄŚtyřúhelnĂ­k: %s × %s; s Ctrl se vytvoří ÄŤtverec nebo " "obdĂ©lnĂ­k s celoÄŤĂ­selnĂ˝m pomÄ›rem stran; s Shift se vykreslĂ­ kolem " "počáteÄŤnĂ­ho bodu" @@ -22382,9 +22287,8 @@ msgstr[1] "%i objekty vybrány" msgstr[2] "%i objektĹŻ vybráno" #: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 -#, fuzzy msgid "Nothing selected" -msgstr "Nebylo nic vymazáno." +msgstr "Nic nevybráno." #: ../src/ui/tools/spray-tool.cpp:199 #, fuzzy, c-format @@ -22429,7 +22333,7 @@ msgstr "Vytvářím novou kĹ™ivku" #: ../src/ui/tools/star-tool.cpp:271 msgid "Ctrl: snap angle; keep rays radial" -msgstr "Ctrl: pĹ™ichytává k ĂşhlĹŻm; udrĹľuje paprsky kruhovĂ˝mi" +msgstr "Ctrl: pĹ™ichytává k ĂşhlĹŻm; udrĹľuje paprsky radiálnĂ­" #: ../src/ui/tools/star-tool.cpp:417 #, c-format @@ -22456,7 +22360,7 @@ msgstr "KliknutĂ­m upravĂ­te text, taĹľenĂ­m vyberete část textu msgid "" "Click to edit the flowed text, drag to select part of the text." msgstr "" -"KliknutĂ­m upravĂ­te vlitĂ˝ text, taĹľenĂ­m vyberete jeho část." +"KliknutĂ­m upravĂ­te tokovĂ˝ text, taĹľenĂ­m vyberete jeho část." #: ../src/ui/tools/text-tool.cpp:435 msgid "Create text" @@ -22468,7 +22372,7 @@ msgstr "NetisknutelnĂ˝ znak" #: ../src/ui/tools/text-tool.cpp:475 msgid "Insert Unicode character" -msgstr "VloĹľit Unicode znak" +msgstr "VloĹľit znak Unicode" #: ../src/ui/tools/text-tool.cpp:510 #, c-format @@ -22482,7 +22386,7 @@ msgstr "Unicode (Enter dokonÄŤĂ­): " #: ../src/ui/tools/text-tool.cpp:595 #, c-format msgid "Flowed text frame: %s × %s" -msgstr "Rám vlitĂ©ho textu: %s × %s" +msgstr "Rám tokovĂ©ho textu textu: %s × %s" #: ../src/ui/tools/text-tool.cpp:653 msgid "Type text; Enter to start new line." @@ -22490,27 +22394,27 @@ msgstr "Pište text; Enter vytvoří novĂ˝ řádek" #: ../src/ui/tools/text-tool.cpp:664 msgid "Flowed text is created." -msgstr "VlitĂ˝ text vytvoĹ™en" +msgstr "TokovĂ˝ text vytvoĹ™en" #: ../src/ui/tools/text-tool.cpp:665 msgid "Create flowed text" -msgstr "VytvoĹ™it vlitĂ˝ text" +msgstr "VytvoĹ™it tokovĂ˝ text" #: ../src/ui/tools/text-tool.cpp:667 msgid "" "The frame is too small for the current font size. Flowed text not " "created." msgstr "" -"Rám je příliš malĂ˝ pro pĂ­smo o souÄŤasnĂ© velikosti. VlitĂ˝ text nebyl " +"Rám je příliš malĂ˝ pro pĂ­smo souÄŤasnĂ© velikosti. TokovĂ˝ text nebyl " "vytvoĹ™en." #: ../src/ui/tools/text-tool.cpp:803 msgid "No-break space" -msgstr "Nezalomitelná mezera" +msgstr "Pevná mezera" #: ../src/ui/tools/text-tool.cpp:804 msgid "Insert no-break space" -msgstr "VloĹľit nezalomitelnou mezeru" +msgstr "VloĹľit pevnou mezeru" #: ../src/ui/tools/text-tool.cpp:840 msgid "Make bold" @@ -22530,68 +22434,74 @@ msgstr "Backspace" #: ../src/ui/tools/text-tool.cpp:990 msgid "Kern to the left" -msgstr "Kerning nalevo" +msgstr "Párovat nalevo" #: ../src/ui/tools/text-tool.cpp:1014 msgid "Kern to the right" -msgstr "Kerning vpravo" +msgstr "Párovat vpravo" #: ../src/ui/tools/text-tool.cpp:1038 msgid "Kern up" -msgstr "Kerning nahoru" +msgstr "Párovat nahoru" #: ../src/ui/tools/text-tool.cpp:1062 msgid "Kern down" -msgstr "Kerning dolĹŻ" +msgstr "Párovat dolĹŻ" #: ../src/ui/tools/text-tool.cpp:1137 msgid "Rotate counterclockwise" -msgstr "OtoÄŤit proti smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek" +msgstr "OtoÄŤit doleva" #: ../src/ui/tools/text-tool.cpp:1157 msgid "Rotate clockwise" -msgstr "OtoÄŤit po smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek" +msgstr "OtoÄŤit doprava" #: ../src/ui/tools/text-tool.cpp:1173 msgid "Contract line spacing" -msgstr "Zmenšit mezery mezi řádky" +msgstr "Zmenšit řádkovánĂ­" #: ../src/ui/tools/text-tool.cpp:1179 msgid "Contract letter spacing" -msgstr "Zmenšit mezery mezi pĂ­smeny" +msgstr "Zúžit prostrkánĂ­" #: ../src/ui/tools/text-tool.cpp:1196 msgid "Expand line spacing" -msgstr "ZvÄ›tšit mezery mezi řádky" +msgstr "ZvÄ›tšit řádkovánĂ­" #: ../src/ui/tools/text-tool.cpp:1202 msgid "Expand letter spacing" -msgstr "ZvÄ›tšit mezery mezi znaky" +msgstr "ZvÄ›tšit prostrkánĂ­" #: ../src/ui/tools/text-tool.cpp:1332 msgid "Paste text" msgstr "VloĹľit text" #: ../src/ui/tools/text-tool.cpp:1583 -#, fuzzy, c-format +#, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " "paragraph." msgid_plural "" "Type or edit flowed text (%d characters%s); Enter to start new " "paragraph." -msgstr[0] "Pište vlitĂ˝ text; Enter vytvoří novĂ˝ odstavec." -msgstr[1] "Pište vlitĂ˝ text; Enter vytvoří novĂ˝ odstavec." -msgstr[2] "Pište vlitĂ˝ text; Enter vytvoří novĂ˝ odstavec." +msgstr[0] "Pište nebo upravujte tokovĂ˝ text (%d znak); Enter vytvoří " +"novĂ˝ řádek" +msgstr[1] "Pište nebo upravujte tokovĂ˝ text (%d znaky); Enter vytvoří " +"novĂ˝ řádek" +msgstr[2] "Pište nebo upravujte tokovĂ˝ text (%d znakĹŻ); Enter vytvoří " +"novĂ˝ řádek" #: ../src/ui/tools/text-tool.cpp:1585 -#, fuzzy, c-format +#, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" "Type or edit text (%d characters%s); Enter to start new line." -msgstr[0] "Pište text; Enter vytvoří novĂ˝ řádek" -msgstr[1] "Pište text; Enter vytvoří novĂ˝ řádek" -msgstr[2] "Pište text; Enter vytvoří novĂ˝ řádek" +msgstr[0] "Pište nebo upravujte text (%d znak); Enter vytvoří novĂ˝ " +"řádek" +msgstr[1] "Pište nebo upravujte text (%d znaky); Enter vytvoří novĂ˝ " +"řádek" +msgstr[2] "Pište nebo upravujte text (%d znakĹŻ); Enter vytvoří novĂ˝ " +"řádek" #: ../src/ui/tools/text-tool.cpp:1695 msgid "Type text" @@ -22599,12 +22509,12 @@ msgstr "Napsat text" #: ../src/ui/tools/tool-base.cpp:703 msgid "Space+mouse move to pan canvas" -msgstr "" +msgstr "MezernĂ­kem + pohybem myši posunete plátno" #: ../src/ui/tools/tweak-tool.cpp:174 #, c-format msgid "%s. Drag to move." -msgstr "" +msgstr "%s. TaĹľenĂ­m pĹ™emĂ­stĂ­te." #: ../src/ui/tools/tweak-tool.cpp:178 #, c-format @@ -22614,12 +22524,12 @@ msgstr "" #: ../src/ui/tools/tweak-tool.cpp:186 #, c-format msgid "%s. Drag or click to move randomly." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m náhodnÄ› pĹ™emĂ­stĂ­te." #: ../src/ui/tools/tweak-tool.cpp:190 #, c-format msgid "%s. Drag or click to scale down; with Shift to scale up." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m zmenšíte; se Shiftem zvÄ›tšíte." #: ../src/ui/tools/tweak-tool.cpp:198 #, c-format @@ -22627,11 +22537,14 @@ msgid "" "%s. Drag or click to rotate clockwise; with Shift, " "counterclockwise." msgstr "" +"%s. TaĹľenĂ­m nebo kliknutĂ­m otoÄŤĂ­te doprava; se Shiftem " +"doleva." #: ../src/ui/tools/tweak-tool.cpp:206 #, c-format msgid "%s. Drag or click to duplicate; with Shift, delete." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m zduplikujete; se Shiftem " +"smaĹľete." #: ../src/ui/tools/tweak-tool.cpp:214 #, c-format @@ -22641,42 +22554,45 @@ msgstr "" #: ../src/ui/tools/tweak-tool.cpp:218 #, c-format msgid "%s. Drag or click to inset paths; with Shift to outset." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m vmáčknete kĹ™ivku; se Shiftem " +"ji vymáčknete." #: ../src/ui/tools/tweak-tool.cpp:226 #, c-format msgid "%s. Drag or click to attract paths; with Shift to repel." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m pĹ™itáhnete kĹ™ivku; se Shiftem " +"ji odpudĂ­te." #: ../src/ui/tools/tweak-tool.cpp:234 #, c-format msgid "%s. Drag or click to roughen paths." -msgstr "" +msgstr "%s. TaĹľenĂ­m nebo kliknutĂ­m zdrsnĂ­te kĹ™ivku." #: ../src/ui/tools/tweak-tool.cpp:238 #, c-format msgid "%s. Drag or click to paint objects with color." -msgstr "" +msgstr "%s. Tahem nebo kliknutĂ­m obarvĂ­te objekt barvou." #: ../src/ui/tools/tweak-tool.cpp:242 #, c-format msgid "%s. Drag or click to randomize colors." -msgstr "" +msgstr "%s. Tahem nebo kliknutĂ­m obarvĂ­te náhodnou barvou." #: ../src/ui/tools/tweak-tool.cpp:246 #, c-format msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" +"%s. Tahem nebo kliknutĂ­m vĂ­ce rozmaĹľete; se Shiftem rozmazánĂ­ " +"snížíte." #: ../src/ui/tools/tweak-tool.cpp:1193 msgid "Nothing selected! Select objects to tweak." -msgstr "" +msgstr "Nic nevybráno! Vyberte objekty k tvarovánĂ­." #: ../src/ui/tools/tweak-tool.cpp:1227 -#, fuzzy msgid "Move tweak" -msgstr "OpakovanĂ˝" +msgstr "PĹ™emĂ­stÄ›nĂ­" #: ../src/ui/tools/tweak-tool.cpp:1231 msgid "Move in/out tweak" @@ -22688,19 +22604,16 @@ msgid "Move jitter tweak" msgstr "Vzorek" #: ../src/ui/tools/tweak-tool.cpp:1239 -#, fuzzy msgid "Scale tweak" -msgstr "Ĺ kálovat" +msgstr "ZmÄ›na velikosti" #: ../src/ui/tools/tweak-tool.cpp:1243 -#, fuzzy msgid "Rotate tweak" -msgstr "OpakovanĂ˝" +msgstr "OtoÄŤenĂ­" #: ../src/ui/tools/tweak-tool.cpp:1247 -#, fuzzy msgid "Duplicate/delete tweak" -msgstr "Duplikovat vybranĂ© objekty" +msgstr "Duplikace/mazánĂ­" #: ../src/ui/tools/tweak-tool.cpp:1251 msgid "Push path tweak" @@ -22712,25 +22625,23 @@ msgstr "" #: ../src/ui/tools/tweak-tool.cpp:1259 msgid "Attract/repel path tweak" -msgstr "" +msgstr "PĹ™itaĹľenĂ­/odpuzenĂ­" #: ../src/ui/tools/tweak-tool.cpp:1263 -#, fuzzy msgid "Roughen path tweak" -msgstr "OpakovanĂ˝" +msgstr "ZdrsnÄ›nĂ­" #: ../src/ui/tools/tweak-tool.cpp:1267 msgid "Color paint tweak" -msgstr "" +msgstr "ObarvenĂ­" #: ../src/ui/tools/tweak-tool.cpp:1271 msgid "Color jitter tweak" msgstr "" #: ../src/ui/tools/tweak-tool.cpp:1275 -#, fuzzy msgid "Blur tweak" -msgstr "OpakovanĂ˝" +msgstr "RozmazánĂ­" #: ../src/ui/widget/filter-effect-chooser.cpp:27 #, no-c-format @@ -22743,11 +22654,11 @@ msgstr "PĹ™epne viditelnost aktuálnĂ­ vrstvy" #: ../src/ui/widget/layer-selector.cpp:139 msgid "Lock or unlock current layer" -msgstr "Zamkne nebo odemkne aktuálnĂ­ vrstvu" +msgstr "Zamkne nebo odemkne souÄŤasnou vrstvu" #: ../src/ui/widget/layer-selector.cpp:142 msgid "Current layer" -msgstr "AktuálnĂ­ vrstva" +msgstr "SouÄŤasná vrstva" #: ../src/ui/widget/layer-selector.cpp:583 msgid "(root)" @@ -22792,55 +22703,47 @@ msgstr "Výška papĂ­ru" #: ../src/ui/widget/page-sizer.cpp:238 msgid "T_op margin:" -msgstr "" +msgstr "_HornĂ­ okraj:" #: ../src/ui/widget/page-sizer.cpp:238 -#, fuzzy msgid "Top margin" -msgstr "Vynechat barvu" +msgstr "HornĂ­ okraj" #: ../src/ui/widget/page-sizer.cpp:239 -#, fuzzy msgid "L_eft:" -msgstr "DĂ©lka:" +msgstr "_LevĂ˝:" #: ../src/ui/widget/page-sizer.cpp:239 -#, fuzzy msgid "Left margin" -msgstr "levĂ˝ Ăşhel" +msgstr "LevĂ˝ okraj" #: ../src/ui/widget/page-sizer.cpp:240 -#, fuzzy msgid "Ri_ght:" -msgstr "Práva" +msgstr "_PravĂ˝:" #: ../src/ui/widget/page-sizer.cpp:240 -#, fuzzy msgid "Right margin" -msgstr "PravĂ˝ Ăşhel" +msgstr "PravĂ˝ okraj" #: ../src/ui/widget/page-sizer.cpp:241 -#, fuzzy msgid "Botto_m:" -msgstr "Naspod" +msgstr "_DolnĂ­:" #: ../src/ui/widget/page-sizer.cpp:241 -#, fuzzy msgid "Bottom margin" -msgstr "Vynechat barvu" +msgstr "DolnĂ­ okraj" #: ../src/ui/widget/page-sizer.cpp:296 -#, fuzzy msgid "Orientation:" -msgstr "Orientace strany:" +msgstr "Orientace plátna:" #: ../src/ui/widget/page-sizer.cpp:299 msgid "_Landscape" -msgstr "_Krajina" +msgstr "Na _šířku" #: ../src/ui/widget/page-sizer.cpp:304 msgid "_Portrait" -msgstr "_PortrĂ©t" +msgstr "Na _výšku" #. ## Set up custom size frame #: ../src/ui/widget/page-sizer.cpp:322 @@ -22849,20 +22752,19 @@ msgstr "VlastnĂ­ velikost" #: ../src/ui/widget/page-sizer.cpp:367 msgid "Resi_ze page to content..." -msgstr "" +msgstr "V_elikost plátna dle obsahu…" #: ../src/ui/widget/page-sizer.cpp:419 -#, fuzzy msgid "_Resize page to drawing or selection" -msgstr "Velikost strany dle vĂ˝bÄ›ru" +msgstr "_Nastavit velikost dle kresby ÄŤi vĂ˝bÄ›ru" #: ../src/ui/widget/page-sizer.cpp:420 msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" msgstr "" -"ZmÄ›nĂ­ velikost strany podle velikosti aktuálnĂ­ho vĂ˝bÄ›ru, nebo celĂ© kresby " -"pokud neexistuje žádnĂ˝ vĂ˝bÄ›r" +"ZmÄ›nĂ­ velikost strany podle velikosti souÄŤasnĂ©ho vĂ˝bÄ›ru, nebo celĂ© kresby, " +"pokud nenĂ­ nic vybráno" #: ../src/ui/widget/page-sizer.cpp:488 msgid "Set page size" @@ -22873,31 +22775,26 @@ msgid "List" msgstr "Seznam" #: ../src/ui/widget/panel.cpp:139 -#, fuzzy msgctxt "Swatches" msgid "Size" msgstr "Velikost" #: ../src/ui/widget/panel.cpp:143 -#, fuzzy msgctxt "Swatches height" msgid "Tiny" -msgstr "nejmenší" +msgstr "Drobná" #: ../src/ui/widget/panel.cpp:144 -#, fuzzy msgctxt "Swatches height" msgid "Small" -msgstr "malĂ˝" +msgstr "Malá" #: ../src/ui/widget/panel.cpp:145 -#, fuzzy msgctxt "Swatches height" msgid "Medium" -msgstr "stĹ™ednĂ­" +msgstr "StĹ™ednĂ­" #: ../src/ui/widget/panel.cpp:146 -#, fuzzy msgctxt "Swatches height" msgid "Large" msgstr "vÄ›tší" @@ -22976,7 +22873,7 @@ msgstr "ZalamovánĂ­" #: ../src/ui/widget/preferences-widget.cpp:802 msgid "_Browse..." -msgstr "Procházet..." +msgstr "_Procházet…" #: ../src/ui/widget/preferences-widget.cpp:888 #, fuzzy @@ -22995,42 +22892,39 @@ msgid "Backend" msgstr "PozadĂ­:" #: ../src/ui/widget/rendering-options.cpp:34 -#, fuzzy msgid "Vector" -msgstr "VĂ˝bÄ›r" +msgstr "Vektor" #: ../src/ui/widget/rendering-options.cpp:35 msgid "Bitmap" -msgstr "" +msgstr "Bitová mapa" #: ../src/ui/widget/rendering-options.cpp:36 msgid "Bitmap options" -msgstr "" +msgstr "Volby bitmapy" #: ../src/ui/widget/rendering-options.cpp:38 -#, fuzzy msgid "Preferred resolution of rendering, in dots per inch." -msgstr "UpĹ™ednostnÄ›nĂ© rozlišenĂ­ (v bodech na palec) bitovĂ© mapy" +msgstr "UpĹ™ednostnÄ›nĂ© rozlišenĂ­ bitovĂ© mapy (v bodech na palec)." #: ../src/ui/widget/rendering-options.cpp:47 -#, fuzzy msgid "" "Render using Cairo vector operations. The resulting image is usually " "smaller in file size and can be arbitrarily scaled, but some filter effects " "will not be correctly rendered." msgstr "" -"Používat vektorovĂ© operátory PDF. Velikost souboru s vĂ˝slednĂ˝m obrázkem je " -"obvykle menší a obrázek lze libovolnÄ› škálovat, ztratĂ­ se však vzory." +"Vkreslit pomocĂ­ vektorovĂ˝ch příkazĹŻ Cairo. Datová velikost vĂ˝slednĂ©ho obrazu je " +"obvykle menší a obrázek lze libovolnÄ› zvÄ›tšovat, ale nÄ›kterĂ© filtrovĂ© efekty " +"nebudou správnÄ› zakresleny." #: ../src/ui/widget/rendering-options.cpp:52 -#, fuzzy msgid "" "Render everything as bitmap. The resulting image is usually larger in file " "size and cannot be arbitrarily scaled without quality loss, but all objects " "will be rendered exactly as displayed." msgstr "" -"Tisknout vše jako bitovou mapu. VĂ˝slednĂ˝ obrázek bude (zpravidla) vÄ›tší a " -"jeho kvalita bude záviset na Ăşrovni zvÄ›tšenĂ­, budou však vykresleny všechny " +"Vkreslit vše jako bitovou mapu. VĂ˝slednĂ˝ obraz bude zpravidla datovÄ› " +"vÄ›tší a nebude jej lze libovolnÄ› zvÄ›tšovat, budou však zakresleny všechny " "grafickĂ© prvky tak, jak jsou zobrazeny" #: ../src/ui/widget/selected-style.cpp:130 @@ -23044,32 +22938,29 @@ msgstr "O:" #: ../src/ui/widget/selected-style.cpp:177 msgid "N/A" -msgstr "N/A" +msgstr "–" #: ../src/ui/widget/selected-style.cpp:180 #: ../src/ui/widget/selected-style.cpp:1088 #: ../src/ui/widget/selected-style.cpp:1089 #: ../src/widgets/gradient-toolbar.cpp:162 msgid "Nothing selected" -msgstr "NenĂ­ nic vybráno" +msgstr "Nic nevybráno" #: ../src/ui/widget/selected-style.cpp:182 #: ../src/ui/widget/style-swatch.cpp:320 -#, fuzzy msgctxt "Fill and stroke" msgid "None" -msgstr "ŽádnĂ˝" +msgstr "Nic" #: ../src/ui/widget/selected-style.cpp:185 #: ../src/ui/widget/style-swatch.cpp:322 -#, fuzzy msgctxt "Fill and stroke" msgid "No fill" msgstr "Bez vĂ˝plnÄ›" #: ../src/ui/widget/selected-style.cpp:185 #: ../src/ui/widget/style-swatch.cpp:322 -#, fuzzy msgctxt "Fill and stroke" msgid "No stroke" msgstr "Bez obrysu" @@ -23082,12 +22973,12 @@ msgstr "Vzorek" #: ../src/ui/widget/selected-style.cpp:190 #: ../src/ui/widget/style-swatch.cpp:303 msgid "Pattern fill" -msgstr "Vzorek vĂ˝plnÄ›" +msgstr "Vzorkovaná vĂ˝plĹ" #: ../src/ui/widget/selected-style.cpp:190 #: ../src/ui/widget/style-swatch.cpp:303 msgid "Pattern stroke" -msgstr "Obrys vzorkem" +msgstr "VzorkovanĂ˝ obrys" #: ../src/ui/widget/selected-style.cpp:192 msgid "L" @@ -23217,11 +23108,11 @@ msgstr "Prohodit vĂ˝plĹ a obrys" #: ../src/ui/widget/selected-style.cpp:584 #: ../src/ui/widget/selected-style.cpp:593 msgid "Make fill opaque" -msgstr "UdÄ›lá vĂ˝plĹ prĹŻsvitnou" +msgstr "ZneprĹŻhlednit vĂ˝plĹ" #: ../src/ui/widget/selected-style.cpp:273 msgid "Make stroke opaque" -msgstr "UdÄ›lá obrys prĹŻsvitnĂ˝" +msgstr "ZneprĹŻhlednit obrys" #: ../src/ui/widget/selected-style.cpp:282 #: ../src/ui/widget/selected-style.cpp:541 ../src/widgets/fill-style.cpp:510 @@ -23235,19 +23126,19 @@ msgstr "Odebrat obrys" #: ../src/ui/widget/selected-style.cpp:605 msgid "Apply last set color to fill" -msgstr "Aplikovat poslednĂ­ nastavenou barvu na vĂ˝plĹ" +msgstr "Použít poslednĂ­ nastavenou barvu na vĂ˝plĹ" #: ../src/ui/widget/selected-style.cpp:617 msgid "Apply last set color to stroke" -msgstr "Aplikovat poslednĂ­ nastavenou barvu na obrys" +msgstr "Použít poslednĂ­ nastavenou barvu na obrys" #: ../src/ui/widget/selected-style.cpp:628 msgid "Apply last selected color to fill" -msgstr "Aplikovat poslednĂ­ vybranou barvu na vĂ˝plĹ" +msgstr "Použít poslednĂ­ vybranou barvu na vĂ˝plĹ" #: ../src/ui/widget/selected-style.cpp:639 msgid "Apply last selected color to stroke" -msgstr "Aplikovat poslednĂ­ vybranou barvu na obrys" +msgstr "Použít poslednĂ­ vybranou barvu na obrys" #: ../src/ui/widget/selected-style.cpp:665 msgid "Invert fill" @@ -23283,16 +23174,16 @@ msgstr "VloĹľit obrys" #: ../src/ui/widget/selected-style.cpp:954 msgid "Change stroke width" -msgstr "ZmÄ›nit šířku okraje" +msgstr "ZmÄ›nit tloušťku obrysu" #: ../src/ui/widget/selected-style.cpp:1049 msgid ", drag to adjust" -msgstr "" +msgstr ", taĹľenĂ­m nastavĂ­te" #: ../src/ui/widget/selected-style.cpp:1134 #, c-format msgid "Stroke width: %.5g%s%s" -msgstr "Ĺ Ă­Ĺ™ka obrysu: %.5g%s%s" +msgstr "Tloušťka obrysu: %.5g%s%s" #: ../src/ui/widget/selected-style.cpp:1138 msgid " (averaged)" @@ -23304,12 +23195,11 @@ msgstr "0 (prĹŻhlednĂ˝)" #: ../src/ui/widget/selected-style.cpp:1190 msgid "100% (opaque)" -msgstr "100% (plnĂ© krytĂ­)" +msgstr "100 % (neprĹŻhlednĂ˝)" #: ../src/ui/widget/selected-style.cpp:1362 -#, fuzzy msgid "Adjust alpha" -msgstr "Táhnout kĹ™ivku" +msgstr "Nastavit poloprĹŻhlednost" #: ../src/ui/widget/selected-style.cpp:1364 #, c-format @@ -23318,11 +23208,13 @@ msgid "" "b> to adjust lightness, with Shift to adjust saturation, without " "modifiers to adjust hue" msgstr "" +"Nastavuji prĹŻhlednost: pĹ™edtĂ­m %.3g, nynĂ­ %.3g (rozdĂ­l %.3g); " +"s Ctrl nastavĂ­te jas, s Shiftem nastavĂ­te sytost, " +"bez pĹ™eĹ™aÄŹovaÄŤĹŻ nastavĂ­te odstĂ­n." #: ../src/ui/widget/selected-style.cpp:1368 -#, fuzzy msgid "Adjust saturation" -msgstr "MĂ©nÄ› sytosti" +msgstr "Nastavit sytost" #: ../src/ui/widget/selected-style.cpp:1370 #, c-format @@ -23331,11 +23223,13 @@ msgid "" "Ctrl to adjust lightness, with Alt to adjust alpha, without " "modifiers to adjust hue" msgstr "" +"Nastavuji sytost: pĹ™edtĂ­m %.3g, nynĂ­ %.3g (rozdĂ­l %.3g); " +"s Ctrl nastavĂ­te jas, s Altem nastavĂ­te prĹŻhlednost, " +"bez pĹ™eĹ™aÄŹovaÄŤĹŻ nastavĂ­te odstĂ­n." #: ../src/ui/widget/selected-style.cpp:1374 -#, fuzzy msgid "Adjust lightness" -msgstr "Jas" +msgstr "Nastavit jas" #: ../src/ui/widget/selected-style.cpp:1376 #, c-format @@ -23344,11 +23238,13 @@ msgid "" "Shift to adjust saturation, with Alt to adjust alpha, without " "modifiers to adjust hue" msgstr "" +"Nastavuji jas: pĹ™edtĂ­m %.3g, nynĂ­ %.3g (rozdĂ­l %.3g); " +"se Shiftem nastavĂ­te sytost, s Altem nastavĂ­te prĹŻhlednost, " +"bez pĹ™eĹ™aÄŹovaÄŤĹŻ nastavĂ­te odstĂ­n." #: ../src/ui/widget/selected-style.cpp:1380 -#, fuzzy msgid "Adjust hue" -msgstr "Táhnout kĹ™ivku" +msgstr "Nastavit odstĂ­n" #: ../src/ui/widget/selected-style.cpp:1382 #, c-format @@ -23357,17 +23253,20 @@ msgid "" "b> to adjust saturation, with Alt to adjust alpha, with Ctrl " "to adjust lightness" msgstr "" +"Nastavuji odstĂ­n: pĹ™edtĂ­m %.3g, nynĂ­ %.3g (rozdĂ­l %.3g); " +"se Shiftem nastavĂ­te sytost, s Altem nastavĂ­te prĹŻhlednost, " +"s Ctrl nastavĂ­te jas." #: ../src/ui/widget/selected-style.cpp:1500 #: ../src/ui/widget/selected-style.cpp:1514 -#, fuzzy msgid "Adjust stroke width" -msgstr "Ĺ Ă­Ĺ™ka čáry" +msgstr "Nastavit tloušťku obrysu" #: ../src/ui/widget/selected-style.cpp:1501 #, c-format msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" -msgstr "" +msgstr "Nastavuji tloušťku obrysu: pĹ™edtĂ­m %.3g, nynĂ­ %.3g " +"(rozdĂ­l %.3g)" #. TRANSLATORS: "Link" means to _link_ two sliders together #: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 @@ -24047,15 +23946,15 @@ msgstr "" #: ../src/verbs.cpp:2444 msgid "Clea_r All" -msgstr "Vymazat vše" +msgstr "Vyma_zat vše" #: ../src/verbs.cpp:2445 msgid "Delete all objects from document" -msgstr "Odstranit všechny objekty z dokumentu" +msgstr "OdstranĂ­ všechny objekty z dokumentu" #: ../src/verbs.cpp:2446 msgid "Select Al_l" -msgstr "Vybrat vše" +msgstr "Vybrat v_še" #: ../src/verbs.cpp:2447 msgid "Select all objects or all nodes" @@ -24063,76 +23962,70 @@ msgstr "Vybere všechny objekty nebo všechny uzly" #: ../src/verbs.cpp:2448 msgid "Select All in All La_yers" -msgstr "Vybrat vše ve všech vrstvách" +msgstr "Vybrat vše ve všech vrs_tvách" #: ../src/verbs.cpp:2449 msgid "Select all objects in all visible and unlocked layers" msgstr "Vybere všechny objekty ve všech viditelnĂ˝ch a odemÄŤenĂ˝ch vrstvách" #: ../src/verbs.cpp:2450 -#, fuzzy msgid "Fill _and Stroke" -msgstr "VĂ˝plĹ a čáry" +msgstr "Táž _vĂ˝plĹ a čáry" #: ../src/verbs.cpp:2451 -#, fuzzy msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" -"Vyberte objekt s vĂ˝plnĂ­ vzorkem ze kterĂ©ho se bude extrahovat objekt." +"Vybere všechny objekty s toutéž vĂ˝plnĂ­ a ÄŤarami jako vybranĂ© objekty" #: ../src/verbs.cpp:2452 -#, fuzzy msgid "_Fill Color" -msgstr "Jedna barva" +msgstr "Táž b_arva vĂ˝plnÄ›" #: ../src/verbs.cpp:2453 -#, fuzzy msgid "Select all objects with the same fill as the selected objects" msgstr "" -"Vyberte objekt s vĂ˝plnĂ­ vzorkem ze kterĂ©ho se bude extrahovat objekt." +"Vybere všechny objekty se toutéž barvou vĂ˝plnÄ› jako vybranĂ© objekty" #: ../src/verbs.cpp:2454 -#, fuzzy msgid "_Stroke Color" -msgstr "Nastavit barvu obrysu" +msgstr "Táž _barva čáry" #: ../src/verbs.cpp:2455 -#, fuzzy msgid "Select all objects with the same stroke as the selected objects" -msgstr "Ĺ kálovat kaĹľdĂ˝ z vybranĂ˝ch objektĹŻ na velikost zkopĂ­rovanĂ©ho objektu" +msgstr "Vybere všechny objekty s toutéž barvou ÄŤar jako vybranĂ© objekty" #: ../src/verbs.cpp:2456 -#, fuzzy msgid "Stroke St_yle" -msgstr "Styl čár_y" +msgstr "Týž styl _čáry" #: ../src/verbs.cpp:2457 -#, fuzzy msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" -msgstr "Ĺ kálovat kaĹľdĂ˝ z vybranĂ˝ch objektĹŻ na velikost zkopĂ­rovanĂ©ho objektu" +msgstr "" +"Vybere všechny objekty s tĂ­mĹľ stylem ÄŤar (tloušťka, ÄŤerchovánĂ­, zakonÄŤenĂ­) " +"jako má vybranĂ˝ objekt" #: ../src/verbs.cpp:2458 -#, fuzzy msgid "_Object Type" -msgstr "Objekt" +msgstr "Týž _druh objektu" #: ../src/verbs.cpp:2459 -#, fuzzy msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" -msgstr "Ĺ kálovat kaĹľdĂ˝ z vybranĂ˝ch objektĹŻ na velikost zkopĂ­rovanĂ©ho objektu" +msgstr "" +"Vybere všechny objekty tĂ©hoĹľ druhu (ÄŤtyřúhelnĂ­k, oblouk, text, " +"kĹ™ivku, bitmapu atd.) jako vybranĂ© objekty" #: ../src/verbs.cpp:2460 msgid "In_vert Selection" -msgstr "Invertovat vĂ˝bÄ›r" +msgstr "In_vertovat vĂ˝bÄ›r" #: ../src/verbs.cpp:2461 msgid "Invert selection (unselect what is selected and select everything else)" -msgstr "Invertovat vĂ˝bÄ›r (odznaÄŤit co je vybranĂ© a oznaÄŤit vše ostatnĂ­)" +msgstr "OdznaÄŤĂ­, co je vybranĂ©, a oznaÄŤĂ­ vše ostatnĂ­" #: ../src/verbs.cpp:2462 msgid "Invert in All Layers" @@ -24140,7 +24033,7 @@ msgstr "Invertovat ve všech vrstvách" #: ../src/verbs.cpp:2463 msgid "Invert selection in all visible and unlocked layers" -msgstr "Invertovat vĂ˝bÄ›r ve všech viditelnĂ˝ch a odemÄŤenĂ˝ch vrstvách" +msgstr "Invertuje vĂ˝bÄ›r ve všech viditelnĂ˝ch a odemÄŤenĂ˝ch vrstvách" #: ../src/verbs.cpp:2464 msgid "Select Next" @@ -24160,24 +24053,23 @@ msgstr "Vybere pĹ™edchozĂ­ objekt nebo uzel" #: ../src/verbs.cpp:2468 msgid "D_eselect" -msgstr "Zrušit vĂ˝bÄ›r" +msgstr "Z_rušit vĂ˝bÄ›r" #: ../src/verbs.cpp:2469 msgid "Deselect any selected objects or nodes" -msgstr "Zrušit vĂ˝bÄ›r jakĂ˝chkoliv vybranĂ˝ch objektĹŻ nebo uzlĹŻ" +msgstr "Zruší vĂ˝bÄ›r jakĂ˝chkoliv vybranĂ˝ch objektĹŻ nebo uzlĹŻ" #: ../src/verbs.cpp:2471 -#, fuzzy msgid "Delete all the guides in the document" -msgstr "Odstranit všechny objekty z dokumentu" +msgstr "Odstranit všechna vodĂ­tka z dokumentu" #: ../src/verbs.cpp:2472 msgid "Create _Guides Around the Page" -msgstr "" +msgstr "VytvoĹ™it _vodĂ­tka kolem plátna" #: ../src/verbs.cpp:2473 msgid "Create four guides aligned with the page borders" -msgstr "" +msgstr "Vytvoří ÄŤtyĹ™i vodĂ­tka souběžná s okraji stránky" #: ../src/verbs.cpp:2474 #, fuzzy @@ -24192,43 +24084,43 @@ msgstr "VloĹľit šířku oddÄ›lenÄ›" #. Selection #: ../src/verbs.cpp:2478 msgid "Raise to _Top" -msgstr "PĹ™esunout ĂşplnÄ› nahoru" +msgstr "PĹ™esunout na_vrch" #: ../src/verbs.cpp:2479 msgid "Raise selection to top" -msgstr "PĹ™esunout vĂ˝bÄ›r ĂşplnÄ› nahoru" +msgstr "PĹ™esune vĂ˝bÄ›r ĂşplnÄ› nahoru" #: ../src/verbs.cpp:2480 msgid "Lower to _Bottom" -msgstr "PĹ™esunout dospod" +msgstr "PĹ™esunout do_spod" #: ../src/verbs.cpp:2481 msgid "Lower selection to bottom" -msgstr "PĹ™esunout vĂ˝bÄ›r ĂşplnÄ› dolĹŻ" +msgstr "PĹ™esune vĂ˝bÄ›r ĂşplnÄ› dolĹŻ" #: ../src/verbs.cpp:2482 msgid "_Raise" -msgstr "Posunout výš" +msgstr "Posunout _výše" #: ../src/verbs.cpp:2483 msgid "Raise selection one step" -msgstr "PĹ™esunout vĂ˝bÄ›r o ĂşroveĹ výš" +msgstr "Posune vĂ˝bÄ›r o ĂşroveĹ výš" #: ../src/verbs.cpp:2484 msgid "_Lower" -msgstr "Posunout nĂ­Ĺľ" +msgstr "Posunout _nĂ­Ĺľe" #: ../src/verbs.cpp:2485 msgid "Lower selection one step" -msgstr "PĹ™esunout vĂ˝bÄ›r o ĂşroveĹ nĂ­Ĺľ" +msgstr "Posune vĂ˝bÄ›r o ĂşroveĹ nĂ­Ĺľ" #: ../src/verbs.cpp:2487 msgid "Group selected objects" -msgstr "Seskupit vybranĂ© objekty" +msgstr "_Seskupit vybranĂ© objekty" #: ../src/verbs.cpp:2489 msgid "Ungroup selected groups" -msgstr "Zrušit seskupenĂ­ vybranĂ˝ch skupin" +msgstr "_Zrušit seskupenĂ­ vybranĂ˝ch skupin" #: ../src/verbs.cpp:2491 msgid "_Put on Path" @@ -24236,17 +24128,17 @@ msgstr "_UmĂ­stit na kĹ™ivku" #: ../src/verbs.cpp:2493 msgid "_Remove from Path" -msgstr "Odstranit z kĹ™ivky" +msgstr "_Odstranit z kĹ™ivky" #: ../src/verbs.cpp:2495 msgid "Remove Manual _Kerns" -msgstr "Odstranit manuálnĂ­ _kerning" +msgstr "Odstranit ruÄŤnĂ­ _párovánĂ­" #. TRANSLATORS: "glyph": An image used in the visual representation of characters; #. roughly speaking, how a character looks. A font is a set of glyphs. #: ../src/verbs.cpp:2498 msgid "Remove all manual kerns and glyph rotations from a text object" -msgstr "Odstranit všechen manuálnĂ­ kerning a rotace znakĹŻ z textovĂ©ho objektu" +msgstr "OdstranĂ­ veškerĂ© ruÄŤnĂ­ párovánĂ­ a natoÄŤenĂ­ znakĹŻ z textovĂ©ho objektu" #: ../src/verbs.cpp:2500 msgid "_Union" @@ -24254,7 +24146,7 @@ msgstr "_SjednocenĂ­" #: ../src/verbs.cpp:2501 msgid "Create union of selected paths" -msgstr "VytvoĹ™it sjednocenĂ­ vybranĂ˝ch kĹ™ivek" +msgstr "Vytvoří kĹ™ivku danou tvarem oblasti zakrytĂ© vybranĂ˝mi kĹ™ivkami" #: ../src/verbs.cpp:2502 msgid "_Intersection" @@ -24262,7 +24154,7 @@ msgstr "PrĹŻn_ik" #: ../src/verbs.cpp:2503 msgid "Create intersection of selected paths" -msgstr "VytvoĹ™it prĹŻnik vybranĂ˝ch kĹ™ivek" +msgstr "Vytvoří kĹ™ivku danou tvarem vzájemnĂ©ho pĹ™ekryvu vybranĂ˝ch kĹ™ivek" #: ../src/verbs.cpp:2504 msgid "_Difference" @@ -24270,91 +24162,92 @@ msgstr "Roz_dĂ­l" #: ../src/verbs.cpp:2505 msgid "Create difference of selected paths (bottom minus top)" -msgstr "VytvoĹ™it rozdĂ­l vybranĂ˝ch kĹ™ivek (spodnĂ­ mĂ­nus hornĂ­)" +msgstr "Vytvoří kĹ™ivku danou tvarem vzniklĂ˝m odeÄŤtenĂ­m oblasti spodnĂ­ kĹ™ivky " +"od oblasti hornĂ­ kĹ™ivky" #: ../src/verbs.cpp:2506 msgid "E_xclusion" -msgstr "Non-Ekvivalence (XOR)" +msgstr "_VylouÄŤenĂ­ (XOR)" #: ../src/verbs.cpp:2507 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" msgstr "" -"ProvĂ©st operaci nonekvivalence na vybranĂ˝ch kĹ™ivkách (tÄ›ch částech kterĂ© " -"patří pouze jednĂ© z kĹ™ivek)" +"Vytvoří kĹ™ivku danou tvarem oblastĂ­ náleĹľejĂ­cĂ­ch jen jednĂ© z vybranĂ˝ch kĹ™ivek " +"(tj. pĹ™ekryvy budou odstranÄ›ny)" #: ../src/verbs.cpp:2508 msgid "Di_vision" -msgstr "DÄ›lenĂ­" +msgstr "DÄ›_lenĂ­" #: ../src/verbs.cpp:2509 msgid "Cut the bottom path into pieces" -msgstr "RozĹ™ezat spodnĂ­ kĹ™ivku na kousky" +msgstr "RozĹ™eĹľe spodnĂ­ kĹ™ivku podle obrysu hornĂ­ kĹ™ivky" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info #: ../src/verbs.cpp:2512 msgid "Cut _Path" -msgstr "Oříznout kĹ™ivku" +msgstr "O_říznout kĹ™ivku" #: ../src/verbs.cpp:2513 msgid "Cut the bottom path's stroke into pieces, removing fill" -msgstr "RozĹ™ezat obrys spodnĂ­ kĹ™ivky na kousky, odstranĂ­ vĂ˝plĹ" +msgstr "RozĹ™eĹľe obrys spodnĂ­ kĹ™ivky na kousky, odstranĂ­ vĂ˝plĹ" #. TRANSLATORS: "outset": expand a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. #: ../src/verbs.cpp:2517 msgid "Outs_et" -msgstr "Rozšířit" +msgstr "Zb_obtnat" #: ../src/verbs.cpp:2518 msgid "Outset selected paths" -msgstr "Rozšířit vybranĂ© kĹ™ivky" +msgstr "„Nafoukne“ vybranĂ© kĹ™ivky" #: ../src/verbs.cpp:2520 msgid "O_utset Path by 1 px" -msgstr "Rozšířit KĹ™ivku o 1px" +msgstr "Zb_obtnat kĹ™ivku o 1 px" #: ../src/verbs.cpp:2521 msgid "Outset selected paths by 1 px" -msgstr "Rozšířit vybranĂ© kĹ™ivky o 1px" +msgstr "„Nafoukne“ vybranĂ© kĹ™ivky o 1 px" #: ../src/verbs.cpp:2523 msgid "O_utset Path by 10 px" -msgstr "Rozšířit KĹ™ivku o 10px" +msgstr "Zb_obtnat kĹ™ivku o 10 px" #: ../src/verbs.cpp:2524 msgid "Outset selected paths by 10 px" -msgstr "Rozšířit vybranĂ© kĹ™ivky o 10px" +msgstr "„Nafoukne“ vybranĂ© kĹ™ivky o 10 px" #. TRANSLATORS: "inset": contract a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. #: ../src/verbs.cpp:2528 msgid "I_nset" -msgstr "Smrštit" +msgstr "S_mrštit" #: ../src/verbs.cpp:2529 msgid "Inset selected paths" -msgstr "Smrštit vybranĂ© kĹ™ivky" +msgstr "SmrštĂ­ vybranĂ© kĹ™ivky" #: ../src/verbs.cpp:2531 msgid "I_nset Path by 1 px" -msgstr "Smrštit KĹ™ivku o 1px" +msgstr "S_mrštit kĹ™ivku o 1 px" #: ../src/verbs.cpp:2532 msgid "Inset selected paths by 1 px" -msgstr "Smrštit vybranĂ© kĹ™ivky o 1px" +msgstr "SmrštĂ­ vybranĂ© kĹ™ivky o 1 px" #: ../src/verbs.cpp:2534 msgid "I_nset Path by 10 px" -msgstr "Smrštit KĹ™ivku o 10px" +msgstr "S_mrštit kĹ™ivku o 10 px" #: ../src/verbs.cpp:2535 msgid "Inset selected paths by 10 px" -msgstr "Smrštit vybranĂ© kĹ™ivky o 10px" +msgstr "SmrštĂ­ vybranĂ© kĹ™ivky o 10 px" #: ../src/verbs.cpp:2537 msgid "D_ynamic Offset" @@ -24374,19 +24267,19 @@ msgstr "VytvoĹ™it dynamicky rozšiĹ™ovanĂ˝ objekt propojenĂ˝ s pĹŻvodnĂ­ kĹ™ivko #: ../src/verbs.cpp:2542 msgid "_Stroke to Path" -msgstr "Obry_s na kĹ™ivku" +msgstr "_Obrys na kĹ™ivku" #: ../src/verbs.cpp:2543 msgid "Convert selected object's stroke to paths" -msgstr "PĹ™evĂ©st obrys vybranĂ©ho objektu na kĹ™ivky" +msgstr "PĹ™evede obrys vybranĂ©ho objektu na kĹ™ivky" #: ../src/verbs.cpp:2544 msgid "Si_mplify" -msgstr "Zjednodušit" +msgstr "Z_jednodušit" #: ../src/verbs.cpp:2545 msgid "Simplify selected paths (remove extra nodes)" -msgstr "Zjednodušit vybranĂ© kĹ™ivky (odstranĂ­ nadbyteÄŤnĂ© uzly)" +msgstr "Zjednoduší vybranĂ© kĹ™ivky (odstranĂ­ nadbyteÄŤnĂ© uzly)" #: ../src/verbs.cpp:2546 msgid "_Reverse" @@ -24400,262 +24293,235 @@ msgstr "" #: ../src/verbs.cpp:2550 msgid "Create one or more paths from a bitmap by tracing it" -msgstr "vytvoří jednu nebo vĂ­ce kĹ™ivek trasovánĂ­m z rastrovĂ©ho obrázku" +msgstr "Vytvoří jednu nebo vĂ­ce kĹ™ivek trasovánĂ­m rastrovĂ©ho obrázku" #: ../src/verbs.cpp:2551 -#, fuzzy msgid "Trace Pixel Art..." -msgstr "_Trasovat bitmapu" +msgstr "_Vektorizovat bitmapu…" #: ../src/verbs.cpp:2552 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" -msgstr "" +msgstr "Vytvoří kĹ™ivky podle bitmapy pomocĂ­ Kopfova-LischinskĂ©ho algoritmu" #: ../src/verbs.cpp:2553 -#, fuzzy msgid "Make a _Bitmap Copy" -msgstr "VytvoĹ™it bitmapovou kopii" +msgstr "VytvoĹ™it _bitmapovou kopii" #: ../src/verbs.cpp:2554 msgid "Export selection to a bitmap and insert it into document" -msgstr "Exportovat vĂ˝bÄ›r do bitmapy a vloĹľit do dokumentu" +msgstr "Exportuje vĂ˝bÄ›r do bitmapy a vloží do dokumentu" #: ../src/verbs.cpp:2555 msgid "_Combine" -msgstr "Kombinace" +msgstr "_SlouÄŤit" #: ../src/verbs.cpp:2556 msgid "Combine several paths into one" -msgstr "Kombinovat nÄ›kolik kĹ™ivek do jednĂ©" +msgstr "SlouÄŤĂ­ (zkombinuje) nÄ›kolik kĹ™ivek do jednĂ©" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info #: ../src/verbs.cpp:2559 msgid "Break _Apart" -msgstr "RozdÄ›lit na části" +msgstr "_RozbĂ­t" #: ../src/verbs.cpp:2560 msgid "Break selected paths into subpaths" -msgstr "RozdÄ›lit vybranĂ© kĹ™ivky na podkĹ™ivky" +msgstr "RozdÄ›lĂ­ vybranĂ© kĹ™ivky na podkĹ™ivky" #: ../src/verbs.cpp:2561 -#, fuzzy msgid "_Arrange..." -msgstr "Ăšhel" +msgstr "_Uspořádat…" #: ../src/verbs.cpp:2562 -#, fuzzy msgid "Arrange selected objects in a table or circle" -msgstr "Uspořádat vybranĂ© objekty do mřížky" +msgstr "Uspořádá vybranĂ© objekty do tabulky nebo do kruhu" #. Layer #: ../src/verbs.cpp:2564 msgid "_Add Layer..." -msgstr "PĹ™id_at vrstvu..." +msgstr "PĹ™id_at vrstvu…" #: ../src/verbs.cpp:2565 msgid "Create a new layer" -msgstr "VytvoĹ™it novou vrstvu" +msgstr "Vytvoří novou vrstvu" #: ../src/verbs.cpp:2566 msgid "Re_name Layer..." -msgstr "PĹ™ejme_novat vrstvu..." +msgstr "PĹ™ejme_novat vrstvu…" #: ../src/verbs.cpp:2567 msgid "Rename the current layer" -msgstr "PĹ™ejmenovat aktuálnĂ­ vrstvu" +msgstr "PĹ™ejmenuje souÄŤasnou vrstvu" #: ../src/verbs.cpp:2568 msgid "Switch to Layer Abov_e" -msgstr "PĹ™epnout O Vrstvu Výš" +msgstr "PĹ™epnout se o vrstvu _výše" #: ../src/verbs.cpp:2569 msgid "Switch to the layer above the current" -msgstr "PĹ™epnout na vrstvu nad souÄŤasnou" +msgstr "PĹ™epne na vrstvu nad souÄŤasnou vrstvou" #: ../src/verbs.cpp:2570 msgid "Switch to Layer Belo_w" -msgstr "PĹ™epnout O Vrstvu NĂ­Ĺľ" +msgstr "PĹ™epnout se o vrstvu _nĂ­Ĺľe" #: ../src/verbs.cpp:2571 msgid "Switch to the layer below the current" -msgstr "PĹ™epnout na vrstvu pod souÄŤasnou" +msgstr "PĹ™epne na vrstvu pod souÄŤasnou vrstvou" #: ../src/verbs.cpp:2572 msgid "Move Selection to Layer Abo_ve" -msgstr "PĹ™esunout VĂ˝bÄ›r o Vrstvu Výš" +msgstr "PĹ™esunout vĂ˝bÄ›r o vrstvu vĂ˝_še" #: ../src/verbs.cpp:2573 msgid "Move selection to the layer above the current" -msgstr "PĹ™esunou vĂ˝bÄ›r do vrstvy nad souÄŤasnou" +msgstr "PĹ™esune vĂ˝bÄ›r do vrstvy nad souÄŤasnou" #: ../src/verbs.cpp:2574 msgid "Move Selection to Layer Bel_ow" -msgstr "PĹ™esunout VĂ˝bÄ›r o Vrstvu NĂ­Ĺľ" +msgstr "PĹ™esunout vĂ˝bÄ›r o vrstvu nĂ­_Ĺľe" #: ../src/verbs.cpp:2575 msgid "Move selection to the layer below the current" -msgstr "PĹ™esunou vĂ˝bÄ›r do vrstvy pod souÄŤasnou" +msgstr "PĹ™esune vĂ˝bÄ›r do vrstvy pod souÄŤasnou" #: ../src/verbs.cpp:2576 -#, fuzzy msgid "Move Selection to Layer..." -msgstr "PĹ™esunout VĂ˝bÄ›r o Vrstvu Výš" +msgstr "PĹ™esunout vĂ˝bÄ›r do vrstvy…" #: ../src/verbs.cpp:2578 msgid "Layer to _Top" -msgstr "Vrstvu ĂşplnÄ› nahoru" +msgstr "Vrstvu _navrch" #: ../src/verbs.cpp:2579 msgid "Raise the current layer to the top" -msgstr "PĹ™esunout aktuálnĂ­ vrstvu ĂşplnÄ› nahoru" +msgstr "PĹ™esune nynÄ›jší vrstvu ĂşplnÄ› nahoru" #: ../src/verbs.cpp:2580 msgid "Layer to _Bottom" -msgstr "Vrstvu ĂşplnÄ› dolĹŻ" +msgstr "Vrstvu _dospod" #: ../src/verbs.cpp:2581 msgid "Lower the current layer to the bottom" -msgstr "PĹ™esunout aktuálnĂ­ vrstvy ĂşplnÄ› naspod" +msgstr "Posune nynÄ›jší vrstvu zcela naspod" #: ../src/verbs.cpp:2582 msgid "_Raise Layer" -msgstr "Posunout vrstvu výš" +msgstr "Posunout vrstvu _výše" #: ../src/verbs.cpp:2583 msgid "Raise the current layer" -msgstr "PĹ™esunout vrstvu nĂ­Ĺľ" +msgstr "Posune nynÄ›jší vrstvu o ĂşroveĹ výše" #: ../src/verbs.cpp:2584 msgid "_Lower Layer" -msgstr "Posunout vrstvu nĂ­Ĺľ" +msgstr "Posunout vrstvu _nĂ­Ĺľe" #: ../src/verbs.cpp:2585 msgid "Lower the current layer" -msgstr "PĹ™esunout vrstvu výš" +msgstr "Posune nynÄ›jší vrstvu o ĂşroveĹ nĂ­Ĺľe" #: ../src/verbs.cpp:2586 -#, fuzzy msgid "D_uplicate Current Layer" -msgstr "_Vymazat aktuálnĂ­ vrstvu" +msgstr "_Duplikovat souÄŤasnou vrstvu" #: ../src/verbs.cpp:2587 -#, fuzzy msgid "Duplicate an existing layer" -msgstr "Duplikovat uzel" +msgstr "Zduplikuje nynÄ›jší vrstvu" #: ../src/verbs.cpp:2588 msgid "_Delete Current Layer" -msgstr "_Vymazat aktuálnĂ­ vrstvu" +msgstr "_Smazat souÄŤasnou vrstvu" #: ../src/verbs.cpp:2589 msgid "Delete the current layer" -msgstr "Vymazat aktuálnĂ­ vrstvu" +msgstr "SmaĹľe nynÄ›jší vrstvu" #: ../src/verbs.cpp:2590 -#, fuzzy msgid "_Show/hide other layers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "Ukázat/skrĂ˝t os_tatnĂ­ vrstvy" #: ../src/verbs.cpp:2591 -#, fuzzy msgid "Solo the current layer" -msgstr "PĹ™esunout vrstvu výš" +msgstr "Ukáže nebo skryje všechny vrstvy kromÄ› tĂ© souÄŤasnĂ©" #: ../src/verbs.cpp:2592 -#, fuzzy msgid "_Show all layers" -msgstr "VybĂ­rat vše ve všech vrstvách" +msgstr "_Ukázat všechny vrstvy" #: ../src/verbs.cpp:2593 -#, fuzzy msgid "Show all the layers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "ZobrazĂ­ všechny vrstvy" #: ../src/verbs.cpp:2594 -#, fuzzy msgid "_Hide all layers" -msgstr "SkrĂ˝t vrstvu" +msgstr "_SkrĂ˝t všechny vrstvy" #: ../src/verbs.cpp:2595 -#, fuzzy msgid "Hide all the layers" -msgstr "SkrĂ˝t vrstvu" +msgstr "Skryje všechny vrstvy" #: ../src/verbs.cpp:2596 -#, fuzzy msgid "_Lock all layers" -msgstr "VybĂ­rat vše ve všech vrstvách" +msgstr "Z_amknout všechny vrstvy" #: ../src/verbs.cpp:2597 -#, fuzzy msgid "Lock all the layers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "Zamkne všechny vrstvy" #: ../src/verbs.cpp:2598 -#, fuzzy msgid "Lock/Unlock _other layers" -msgstr "Zamkne nebo odemkne aktuálnĂ­ vrstvu" +msgstr "Zamknout/odemknout _ostatnĂ­ vrstvy" #: ../src/verbs.cpp:2599 -#, fuzzy msgid "Lock all the other layers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "Zamkne všechny ostatnĂ­ vrstvy kromÄ› souÄŤasnĂ©" #: ../src/verbs.cpp:2600 -#, fuzzy msgid "_Unlock all layers" -msgstr "Odemknout vrstvu" +msgstr "Odemknout _všechny vrstvy" #: ../src/verbs.cpp:2601 -#, fuzzy msgid "Unlock all the layers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "Odemkne všechny vrstvy" #: ../src/verbs.cpp:2602 -#, fuzzy msgid "_Lock/Unlock Current Layer" -msgstr "Zamkne nebo odemkne aktuálnĂ­ vrstvu" +msgstr "Za_mknout/odemknout souÄŤasnou vrstvu" #: ../src/verbs.cpp:2603 -#, fuzzy msgid "Toggle lock on current layer" -msgstr "PĹ™esunout vrstvu výš" +msgstr "PĹ™epne zámek nynÄ›jší vrstvy" #: ../src/verbs.cpp:2604 -#, fuzzy msgid "_Show/hide Current Layer" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "_Zobrazit/skrĂ˝t souÄŤasnou vrstvu" #: ../src/verbs.cpp:2605 -#, fuzzy msgid "Toggle visibility of current layer" -msgstr "PĹ™esunout vrstvu výš" +msgstr "PĹ™epne viditelnost nynÄ›jší vrstvy" #. Object #: ../src/verbs.cpp:2608 -#, fuzzy msgid "Rotate _90° CW" -msgstr "OtoÄŤit o _90° vpravo" +msgstr "OtoÄŤit o 90 ° do_prava" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. #: ../src/verbs.cpp:2611 -#, fuzzy msgid "Rotate selection 90° clockwise" -msgstr "OtoÄŤit vĂ˝bÄ›r o 90° po smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek" +msgstr "OtoÄŤenĂ­ vĂ˝bÄ›ru o 90 ° doprava" #: ../src/verbs.cpp:2612 -#, fuzzy msgid "Rotate 9_0° CCW" -msgstr "OtoÄŤit o 9_0° vlevo" +msgstr "OtoÄŤit o 90 ° do_leva" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. #: ../src/verbs.cpp:2615 -#, fuzzy msgid "Rotate selection 90° counter-clockwise" -msgstr "OtoÄŤit vĂ˝bÄ›r o 90° po smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek" +msgstr "OtoÄŤenĂ­ vĂ˝bÄ›ru o 90 ° doleva" #: ../src/verbs.cpp:2616 msgid "Remove _Transformations" @@ -24751,47 +24617,42 @@ msgstr "Odstranit kĹ™ivky pro oĹ™ez z vĂ˝bÄ›ru" #. Tools #: ../src/verbs.cpp:2646 -#, fuzzy msgctxt "ContextVerb" msgid "Select" -msgstr "Vybrat" +msgstr "VybĂ­raÄŤ" #: ../src/verbs.cpp:2647 msgid "Select and transform objects" msgstr "VĂ˝bÄ›r a transformace objektĹŻ" #: ../src/verbs.cpp:2648 -#, fuzzy msgctxt "ContextVerb" msgid "Node Edit" -msgstr "Ăšpravy uzlĹŻ" +msgstr "UpravovaÄŤ uzlĹŻ" #: ../src/verbs.cpp:2649 -#, fuzzy msgid "Edit paths by nodes" -msgstr "Upravit uzly kĹ™ivek nebo jejich ovládacĂ­ táhla" +msgstr "Ăšprava kĹ™ivek na Ăşrovni uzlĹŻ" #: ../src/verbs.cpp:2650 msgctxt "ContextVerb" msgid "Tweak" -msgstr "" +msgstr "TvarovaÄŤ" #: ../src/verbs.cpp:2651 msgid "Tweak objects by sculpting or painting" -msgstr "" +msgstr "TvarovánĂ­ kĹ™ivek objektĹŻ" #: ../src/verbs.cpp:2652 -#, fuzzy msgctxt "ContextVerb" msgid "Spray" -msgstr "Spirála" +msgstr "Sprej" #: ../src/verbs.cpp:2653 msgid "Spray objects by sculpting or painting" -msgstr "" +msgstr "NástĹ™ik objektĹŻ" #: ../src/verbs.cpp:2654 -#, fuzzy msgctxt "ContextVerb" msgid "Rectangle" msgstr "ÄŚtyřúhelnĂ­k" @@ -24801,18 +24662,15 @@ msgid "Create rectangles and squares" msgstr "Tvorba obdĂ©lnĂ­kĹŻ a ÄŤtvercĹŻ" #: ../src/verbs.cpp:2656 -#, fuzzy msgctxt "ContextVerb" msgid "3D Box" -msgstr "3D Box" +msgstr "Kvádr" #: ../src/verbs.cpp:2657 -#, fuzzy msgid "Create 3D boxes" -msgstr "Dláždit pomocĂ­ klonĹŻ" +msgstr "Tvorba kvádrĹŻ" #: ../src/verbs.cpp:2658 -#, fuzzy msgctxt "ContextVerb" msgid "Ellipse" msgstr "Elipsa" @@ -24822,17 +24680,15 @@ msgid "Create circles, ellipses, and arcs" msgstr "Tvorba kruhĹŻ, elips a obloukĹŻ" #: ../src/verbs.cpp:2660 -#, fuzzy msgctxt "ContextVerb" msgid "Star" msgstr "HvÄ›zda" #: ../src/verbs.cpp:2661 msgid "Create stars and polygons" -msgstr "Tvorba hvÄ›zd a polygonĹŻ" +msgstr "Tvorba hvÄ›zd a mnohoĂşhelnĂ­kĹŻ" #: ../src/verbs.cpp:2662 -#, fuzzy msgctxt "ContextVerb" msgid "Spiral" msgstr "Spirála" @@ -24842,42 +24698,37 @@ msgid "Create spirals" msgstr "Tvorba spirál" #: ../src/verbs.cpp:2664 -#, fuzzy msgctxt "ContextVerb" msgid "Pencil" msgstr "TuĹľka" #: ../src/verbs.cpp:2665 msgid "Draw freehand lines" -msgstr "Kresba od ruky" +msgstr "Kresba ÄŤar od ruky" #: ../src/verbs.cpp:2666 -#, fuzzy msgctxt "ContextVerb" msgid "Pen" msgstr "Pero" #: ../src/verbs.cpp:2667 msgid "Draw Bezier curves and straight lines" -msgstr "Kresba BezierovĂ˝ch kĹ™ivek a přímĂ˝ch ÄŤar" +msgstr "Kresba BĂ©zierovĂ˝ch kĹ™ivek a přímek" #: ../src/verbs.cpp:2668 -#, fuzzy msgctxt "ContextVerb" msgid "Calligraphy" -msgstr "Kaligrafická linka" +msgstr "KaligrafickĂ© pero" #: ../src/verbs.cpp:2669 -#, fuzzy msgid "Draw calligraphic or brush strokes" -msgstr "VytvoĹ™it kaligrafickou kĹ™ivku" +msgstr "NakreslĂ­ kaligrafickĂ© ÄŤi štÄ›tcovĂ© tahy" #: ../src/verbs.cpp:2671 msgid "Create and edit text objects" msgstr "Tvorba a Ăşprava textovĂ˝ch objektĹŻ" #: ../src/verbs.cpp:2672 -#, fuzzy msgctxt "ContextVerb" msgid "Gradient" msgstr "BarevnĂ˝ pĹ™echod" @@ -24897,51 +24748,44 @@ msgid "Create and edit meshes" msgstr "Tvorba a Ăşpravy barevnĂ˝ch pĹ™echodĹŻ" #: ../src/verbs.cpp:2676 -#, fuzzy msgctxt "ContextVerb" msgid "Zoom" msgstr "Lupa" #: ../src/verbs.cpp:2677 msgid "Zoom in or out" -msgstr "PĹ™iblĂ­ĹľenĂ­/oddálenĂ­ obrázku" +msgstr "PĹ™iblíží nebo oddálĂ­ zobrazenĂ­" #: ../src/verbs.cpp:2679 -#, fuzzy msgid "Measurement tool" -msgstr "Změřit KĹ™ivku" +msgstr "Měřidlo" #: ../src/verbs.cpp:2680 -#, fuzzy msgctxt "ContextVerb" msgid "Dropper" -msgstr "Pipeta" +msgstr "Násoska" #: ../src/verbs.cpp:2681 ../src/widgets/sp-color-notebook.cpp:411 -#, fuzzy msgid "Pick colors from image" -msgstr "VĂ˝bÄ›r prĹŻmÄ›rnĂ˝ch barev z obrázku" +msgstr "Vybere barvu z obrázku" #: ../src/verbs.cpp:2682 -#, fuzzy msgctxt "ContextVerb" msgid "Connector" msgstr "Konektor" #: ../src/verbs.cpp:2683 -#, fuzzy msgid "Create diagram connectors" -msgstr "VytvoĹ™it konektory" +msgstr "VytvoĹ™it diagramovĂ© spojky" #: ../src/verbs.cpp:2684 -#, fuzzy msgctxt "ContextVerb" msgid "Paint Bucket" -msgstr "Plechovka barvy" +msgstr "KbelĂ­k" #: ../src/verbs.cpp:2685 msgid "Fill bounded areas" -msgstr "" +msgstr "VyplnĂ­ ohraniÄŤenou oblast" #: ../src/verbs.cpp:2686 #, fuzzy @@ -24955,15 +24799,13 @@ msgid "Edit Path Effect parameters" msgstr "VloĹľit šířku oddÄ›lenÄ›" #: ../src/verbs.cpp:2688 -#, fuzzy msgctxt "ContextVerb" msgid "Eraser" -msgstr "Posunout výš" +msgstr "Guma" #: ../src/verbs.cpp:2689 -#, fuzzy msgid "Erase existing paths" -msgstr "Uvolnit cestu oĹ™ezu" +msgstr "VymaĹľe existujĂ­cĂ­ kĹ™ivky" #: ../src/verbs.cpp:2690 #, fuzzy @@ -24978,121 +24820,115 @@ msgstr "" #. Tool prefs #: ../src/verbs.cpp:2693 msgid "Selector Preferences" -msgstr "Vlastnosti nástroje pro vĂ˝bÄ›r" +msgstr "Vlastnosti vybĂ­raÄŤe" #: ../src/verbs.cpp:2694 msgid "Open Preferences for the Selector tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj vĂ˝bÄ›ru" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj VybĂ­raÄŤ" #: ../src/verbs.cpp:2695 msgid "Node Tool Preferences" -msgstr "Vlastnosti nástroje editace uzlĹŻ" +msgstr "Vlastnosti upravovaÄŤe uzlĹŻ" #: ../src/verbs.cpp:2696 msgid "Open Preferences for the Node tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Ăşpravy uzlĹŻ" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj UpravovaÄŤ uzlĹŻ" #: ../src/verbs.cpp:2697 -#, fuzzy msgid "Tweak Tool Preferences" -msgstr "Vlastnosti nástroje editace uzlĹŻ" +msgstr "NastavenĂ­ tvarovaÄŤe" #: ../src/verbs.cpp:2698 -#, fuzzy msgid "Open Preferences for the Tweak tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Text" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj TvarovaÄŤ" #: ../src/verbs.cpp:2699 -#, fuzzy msgid "Spray Tool Preferences" -msgstr "Vlastnosti spirály" +msgstr "NastavenĂ­ spreje" #: ../src/verbs.cpp:2700 -#, fuzzy msgid "Open Preferences for the Spray tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Spirála" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj Sprej" #: ../src/verbs.cpp:2701 msgid "Rectangle Preferences" -msgstr "Vlastnosti ÄŤtyřúhelnĂ­ku" +msgstr "NastavenĂ­ ÄŤtyřúhelnĂ­ku" #: ../src/verbs.cpp:2702 msgid "Open Preferences for the Rectangle tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj ÄŚtyřúhelnĂ­k" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj ÄŚtyřúhelnĂ­k" #: ../src/verbs.cpp:2703 -#, fuzzy msgid "3D Box Preferences" -msgstr "Vlastnosti textu" +msgstr "NastavenĂ­ kvádru" #: ../src/verbs.cpp:2704 -#, fuzzy msgid "Open Preferences for the 3D Box tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Ăşpravy uzlĹŻ" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj Kvádr" #: ../src/verbs.cpp:2705 msgid "Ellipse Preferences" -msgstr "Vlastnosti elipsy" +msgstr "NastavenĂ­ elipsy" #: ../src/verbs.cpp:2706 msgid "Open Preferences for the Ellipse tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Elipsa" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj Elipsa" #: ../src/verbs.cpp:2707 msgid "Star Preferences" -msgstr "Vlastnosti hvÄ›zdy" +msgstr "NastavenĂ­ hvÄ›zdy" #: ../src/verbs.cpp:2708 msgid "Open Preferences for the Star tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj HvÄ›zda" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj HvÄ›zda" #: ../src/verbs.cpp:2709 msgid "Spiral Preferences" -msgstr "Vlastnosti spirály" +msgstr "NastavenĂ­ spirály" #: ../src/verbs.cpp:2710 msgid "Open Preferences for the Spiral tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Spirála" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj Spirála" #: ../src/verbs.cpp:2711 msgid "Pencil Preferences" -msgstr "Vlastnosti tuĹľky" +msgstr "NastavenĂ­ tuĹľky" #: ../src/verbs.cpp:2712 msgid "Open Preferences for the Pencil tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj TuĹľka" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj TuĹľka" #: ../src/verbs.cpp:2713 msgid "Pen Preferences" -msgstr "Vlastnosti pera" +msgstr "NastavenĂ­ pera" #: ../src/verbs.cpp:2714 msgid "Open Preferences for the Pen tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Pero" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj Pero" #: ../src/verbs.cpp:2715 msgid "Calligraphic Preferences" -msgstr "Vlastnosti kaligrafickĂ© linie" +msgstr "NastavenĂ­ kaligrafickĂ©ho pera" #: ../src/verbs.cpp:2716 msgid "Open Preferences for the Calligraphy tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj KaligrafickĂ© pero" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj KaligrafickĂ© pero" #: ../src/verbs.cpp:2717 msgid "Text Preferences" -msgstr "Vlastnosti textu" +msgstr "NastavenĂ­ textu" #: ../src/verbs.cpp:2718 msgid "Open Preferences for the Text tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Text" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj text" #: ../src/verbs.cpp:2719 msgid "Gradient Preferences" -msgstr "Vlastnosti BarevnĂ©ho pĹ™echodu" +msgstr "NastavenĂ­ barevnĂ©ho pĹ™echodu" #: ../src/verbs.cpp:2720 msgid "Open Preferences for the Gradient tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj BarevnĂ© pĹ™echody" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj barevnĂ˝ pĹ™echod" #: ../src/verbs.cpp:2721 #, fuzzy @@ -25102,61 +24938,55 @@ msgstr "Vlastnosti hvÄ›zdy" #: ../src/verbs.cpp:2722 #, fuzzy msgid "Open Preferences for the Mesh tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj HvÄ›zda" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj HvÄ›zda" #: ../src/verbs.cpp:2723 msgid "Zoom Preferences" -msgstr "Vlastnosti lupy" +msgstr "NastavenĂ­ lupy" #: ../src/verbs.cpp:2724 msgid "Open Preferences for the Zoom tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Lupa" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj lupa" #: ../src/verbs.cpp:2725 -#, fuzzy msgid "Measure Preferences" -msgstr "Vlastnosti hvÄ›zdy" +msgstr "PĹ™edvolby měřidla" #: ../src/verbs.cpp:2726 -#, fuzzy msgid "Open Preferences for the Measure tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj HvÄ›zda" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj měřidlo" #: ../src/verbs.cpp:2727 msgid "Dropper Preferences" -msgstr "Vlastnosti pipety" +msgstr "NastavenĂ­ násosky" #: ../src/verbs.cpp:2728 msgid "Open Preferences for the Dropper tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Pipeta" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj násoska" #: ../src/verbs.cpp:2729 msgid "Connector Preferences" -msgstr "PĹ™edvolby KonektorĹŻ" +msgstr "NastavenĂ­ konektoru" #: ../src/verbs.cpp:2730 msgid "Open Preferences for the Connector tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Konektor" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj konektor" #: ../src/verbs.cpp:2731 -#, fuzzy msgid "Paint Bucket Preferences" -msgstr "Vlastnosti BarevnĂ©ho pĹ™echodu" +msgstr "NastavenĂ­ kbelĂ­ku" #: ../src/verbs.cpp:2732 -#, fuzzy msgid "Open Preferences for the Paint Bucket tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj Pero" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj kbelĂ­k" #: ../src/verbs.cpp:2733 -#, fuzzy msgid "Eraser Preferences" -msgstr "Vlastnosti hvÄ›zdy" +msgstr "NastavenĂ­ gumy" #: ../src/verbs.cpp:2734 -#, fuzzy msgid "Open Preferences for the Eraser tool" -msgstr "OtevĹ™e NastavenĂ­ pro Nástroj HvÄ›zda" +msgstr "OtevĹ™e nastavenĂ­ pro nástroj guma" #: ../src/verbs.cpp:2735 #, fuzzy @@ -25175,7 +25005,7 @@ msgstr "PĹ™iblĂ­Ĺľit" #: ../src/verbs.cpp:2738 msgid "Zoom in" -msgstr "PĹ™iblĂ­Ĺľit" +msgstr "PĹ™iblíží (zvÄ›tší) zobrazenĂ­" #: ../src/verbs.cpp:2739 msgid "Zoom Out" @@ -25183,7 +25013,7 @@ msgstr "Oddálit" #: ../src/verbs.cpp:2739 msgid "Zoom out" -msgstr "Oddálit" +msgstr "OddálĂ­ (zmenší) zobrazenĂ­" #: ../src/verbs.cpp:2740 msgid "_Rulers" @@ -25191,66 +25021,60 @@ msgstr "P_ravĂ­tka" #: ../src/verbs.cpp:2740 msgid "Show or hide the canvas rulers" -msgstr "Zobrazit/SkrĂ˝t pravĂ­tka" +msgstr "ZobrazĂ­ nebo skryje pravĂ­tka" #: ../src/verbs.cpp:2741 msgid "Scroll_bars" -msgstr "PosuvnĂ­ky" +msgstr "_PosuvnĂ­ky" #: ../src/verbs.cpp:2741 msgid "Show or hide the canvas scrollbars" -msgstr "Zobrazit/SkrĂ˝t posuvnĂ­ky" +msgstr "ZobrazĂ­ nebo skryje posuvnĂ­ky" #: ../src/verbs.cpp:2742 -#, fuzzy msgid "Page _Grid" -msgstr "Ĺ Ă­Ĺ™ka strany" +msgstr "_Mřížka plátna" #: ../src/verbs.cpp:2742 -#, fuzzy msgid "Show or hide the page grid" -msgstr "Zobrazit nebo skrĂ˝t mřížku" +msgstr "ZobrazĂ­ nebo skryje mřížku" #: ../src/verbs.cpp:2743 msgid "G_uides" -msgstr "VodĂ­tka" +msgstr "_VodĂ­tka" #: ../src/verbs.cpp:2743 msgid "Show or hide guides (drag from a ruler to create a guide)" -msgstr "Ukázat nebo skrĂ˝t vodĂ­tka (taĹľenĂ­m z pravĂ­tka vytvoříte vodĂ­tko)" +msgstr "Ukáže nebo skryje vodĂ­tka (taĹľenĂ­m z pravĂ­tka vytvoříte vodĂ­tko)" #: ../src/verbs.cpp:2744 -#, fuzzy msgid "Enable snapping" -msgstr "Náhled" +msgstr "Zapnout p_Ĺ™ichytávánĂ­" #: ../src/verbs.cpp:2745 #, fuzzy msgid "_Commands Bar" -msgstr "Panel příkazĹŻ" +msgstr "P_ovelovĂ˝ panel" #: ../src/verbs.cpp:2745 msgid "Show or hide the Commands bar (under the menu)" -msgstr "Zobrazit/SkrĂ˝t panel PříkazĹŻ (pod menu)" +msgstr "ZobrazĂ­ nebo skryje panel příkazĹŻ (pod menu)" #: ../src/verbs.cpp:2746 -#, fuzzy msgid "Sn_ap Controls Bar" -msgstr "Panel s OvládacĂ­mi prvky nástroje" +msgstr "Panel _pĹ™ichycovánĂ­" #: ../src/verbs.cpp:2746 -#, fuzzy msgid "Show or hide the snapping controls" -msgstr "Zobrazit nebo skrĂ˝t panel s ovládacĂ­mi prvky nástroje" +msgstr "Zobrazit nebo skrĂ˝t panel pĹ™ichycovánĂ­" #: ../src/verbs.cpp:2747 -#, fuzzy msgid "T_ool Controls Bar" -msgstr "Panel s OvládacĂ­mi prvky nástroje" +msgstr "_ObjektovĂ˝ panel" #: ../src/verbs.cpp:2747 msgid "Show or hide the Tool Controls bar" -msgstr "Zobrazit nebo skrĂ˝t panel s ovládacĂ­mi prvky nástroje" +msgstr "Zobrazit nebo skrĂ˝t panel pro práci s vlastnostmi objektĹŻ" #: ../src/verbs.cpp:2748 msgid "_Toolbox" @@ -25266,7 +25090,7 @@ msgstr "_Paleta" #: ../src/verbs.cpp:2749 msgid "Show or hide the color palette" -msgstr "Zobrazit nebo skrĂ˝t paletu barev" +msgstr "ZobrazĂ­ nebo skryje paletu barev" #: ../src/verbs.cpp:2750 msgid "_Statusbar" @@ -25274,67 +25098,67 @@ msgstr "_StavovĂ˝ řádek" #: ../src/verbs.cpp:2750 msgid "Show or hide the statusbar (at the bottom of the window)" -msgstr "Ukázat/SkrĂ˝t stavovĂ˝ řádek (vespod okna)" +msgstr "Ukázat nebo skrĂ˝t stavovĂ˝ řádek (vespod okna)" #: ../src/verbs.cpp:2751 msgid "Nex_t Zoom" -msgstr "NásledujĂ­cĂ­ pĹ™iblĂ­ĹľenĂ­" +msgstr "_NásledujĂ­cĂ­ pĹ™iblĂ­ĹľenĂ­" #: ../src/verbs.cpp:2751 msgid "Next zoom (from the history of zooms)" -msgstr "NásledujĂ­cĂ­ pĹ™iblĂ­ĹľenĂ­(z historie pĹ™iblĂ­ĹľenĂ­)" +msgstr "NásledujĂ­cĂ­ pĹ™iblĂ­ĹľenĂ­ (z historie pĹ™iblĂ­ĹľenĂ­)" #: ../src/verbs.cpp:2753 msgid "Pre_vious Zoom" -msgstr "PĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­" +msgstr "_PĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­" #: ../src/verbs.cpp:2753 msgid "Previous zoom (from the history of zooms)" -msgstr "PĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­(z historie pĹ™iblĂ­ĹľenĂ­)" +msgstr "PĹ™edchozĂ­ pĹ™iblĂ­ĹľenĂ­ (z historie pĹ™iblĂ­ĹľenĂ­)" #: ../src/verbs.cpp:2755 msgid "Zoom 1:_1" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 1:_1" +msgstr "Zobraze_nĂ­ 1:1" #: ../src/verbs.cpp:2755 msgid "Zoom to 1:1" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 1:1" +msgstr "ZobrazenĂ­ v měřítku 1:1" #: ../src/verbs.cpp:2757 msgid "Zoom 1:_2" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 1:_2" +msgstr "Oddálit _1:2" #: ../src/verbs.cpp:2757 msgid "Zoom to 1:2" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 1:2" +msgstr "OddálĂ­ v měřítku 1:2" #: ../src/verbs.cpp:2759 msgid "_Zoom 2:1" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 2:1" +msgstr "PĹ™iblĂ­Ĺľit _2:1" #: ../src/verbs.cpp:2759 msgid "Zoom to 2:1" -msgstr "Nastavit pomÄ›r zvÄ›tšenĂ­ na 2:1" +msgstr "PĹ™iblíží v měřítku 2:1" #: ../src/verbs.cpp:2762 msgid "_Fullscreen" -msgstr "Celá obrazovka" +msgstr "_Celoobrazovka" #: ../src/verbs.cpp:2762 ../src/verbs.cpp:2764 msgid "Stretch this document window to full screen" -msgstr "PĹ™epne velikost okna dokumentu na celou obrazovku" +msgstr "Roztáhne okno dokumentu na celou obrazovku" #: ../src/verbs.cpp:2764 msgid "Fullscreen & Focus Mode" -msgstr "" +msgstr "ReĹľim celá obrazovka a jen kresba" #: ../src/verbs.cpp:2767 msgid "Toggle _Focus Mode" -msgstr "" +msgstr "ReĹľim „_jen kresba“" #: ../src/verbs.cpp:2767 msgid "Remove excess toolbars to focus on drawing" -msgstr "" +msgstr "OdstranĂ­ nadbyteÄŤnĂ© panely nástrojĹŻ a umoĹľnĂ­ se soustĹ™edit na kresbu" #: ../src/verbs.cpp:2769 msgid "Duplic_ate Window" @@ -25362,14 +25186,12 @@ msgid "Switch to normal display mode" msgstr "PĹ™epnout do normálnĂ­ho reĹľimu zobrazenĂ­" #: ../src/verbs.cpp:2776 -#, fuzzy msgid "No _Filters" -msgstr "Filtry" +msgstr "Bez _filtrĹŻ" #: ../src/verbs.cpp:2777 -#, fuzzy msgid "Switch to normal display without filters" -msgstr "PĹ™epnout do normálnĂ­ho reĹľimu zobrazenĂ­" +msgstr "PĹ™epnout do normálnĂ­ho zobrazenĂ­ bez filtrĹŻ" #: ../src/verbs.cpp:2778 msgid "_Outline" @@ -28536,41 +28358,39 @@ msgstr "Typ čáry:" #. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes #. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. #: ../src/widgets/stroke-style.cpp:352 -#, fuzzy msgid "Markers:" -msgstr "Ztmavit" +msgstr "ZnaÄŤky:" #: ../src/widgets/stroke-style.cpp:358 msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "" +msgstr "PočáteÄŤnĂ­ znaÄŤky jsou vykresleny na prvnĂ­m uzlu kĹ™ivky nebo tvaru" #: ../src/widgets/stroke-style.cpp:367 msgid "" "Mid Markers are drawn on every node of a path or shape except the first and " "last nodes" -msgstr "" +msgstr "StĹ™edovĂ© znaÄŤky jsou vykresleny na kaĹľdĂ©m uzlu kĹ™ivky nebo tvaru " +"kromÄ› prvnĂ­ho a poslednĂ­ho uzlu" #: ../src/widgets/stroke-style.cpp:376 msgid "End Markers are drawn on the last node of a path or shape" -msgstr "" +msgstr "KoncovĂ© znaÄŤky jsou vykresleny na poslednĂ­m uzlu kĹ™ivky nebo tvaru" #: ../src/widgets/stroke-style.cpp:494 msgid "Set markers" -msgstr "Nastavit konce ÄŤar" +msgstr "Nastavit znaÄŤky" #: ../src/widgets/stroke-style.cpp:1024 ../src/widgets/stroke-style.cpp:1109 msgid "Set stroke style" -msgstr "Nastavit styl čáry" +msgstr "Nastavit styl obrysu" #: ../src/widgets/stroke-style.cpp:1197 -#, fuzzy msgid "Set marker color" -msgstr "Nastavit barvu obrysu" +msgstr "Nastavit barvu znaÄŤky" #: ../src/widgets/swatch-selector.cpp:137 -#, fuzzy msgid "Change swatch color" -msgstr "ZmÄ›nit barvu zarážky barevnĂ©ho pĹ™echodu" +msgstr "ZmÄ›nit barvu vzorku" #: ../src/widgets/text-toolbar.cpp:169 msgid "Text: Change font family" @@ -28586,7 +28406,7 @@ msgstr "Text: ZmÄ›nit styl pĂ­sma " #: ../src/widgets/text-toolbar.cpp:349 msgid "Text: Change superscript or subscript" -msgstr "" +msgstr "Text: ZmÄ›nit dolnĂ­ index nebo hornĂ­ index" #: ../src/widgets/text-toolbar.cpp:494 msgid "Text: Change alignment" @@ -28623,14 +28443,12 @@ msgid "Text: Change orientation" msgstr "Text: ZmÄ›nit orientaci" #: ../src/widgets/text-toolbar.cpp:1221 -#, fuzzy msgid "Font Family" -msgstr "Rodina pĂ­sma" +msgstr "PĂ­smo" #: ../src/widgets/text-toolbar.cpp:1222 -#, fuzzy msgid "Select Font Family (Alt-X to access)" -msgstr "Rodina pĂ­sma" +msgstr "Vyberte font (Alt-X)" #. Focus widget #. Enable entry completion @@ -34229,86 +34047,89 @@ msgstr "" #: ../share/extensions/plotter.inx.h:1 msgid "Plot" -msgstr "" +msgstr "Plotrovat" #: ../share/extensions/plotter.inx.h:2 msgid "" "Please make sure that all objects you want to plot are converted to paths." msgstr "" +"PĹ™esvÄ›dÄŤte se, Ĺľe všechny objekty, kterĂ© chcete plotrovat, jsou pĹ™evedeny " +"na kĹ™ivky." #: ../share/extensions/plotter.inx.h:3 -#, fuzzy msgid "Connection Settings " -msgstr "Konektor" +msgstr "NastavenĂ­ pĹ™ipojenĂ­" #: ../share/extensions/plotter.inx.h:4 -#, fuzzy msgid "Serial port:" -msgstr "SvislĂ˝ text" +msgstr "SĂ©riovĂ˝ port:" #: ../share/extensions/plotter.inx.h:5 msgid "" "The port of your serial connection, on Windows something like 'COM1', on " "Linux something like: '/dev/ttyUSB0' (Default: COM1)" msgstr "" +"Port sĂ©riovĂ©ho pĹ™ipojenĂ­, ve Windows nÄ›co jako COM1, v Linuxu nÄ›co jako " +"dev/ttyUSB0 (vĂ˝chozĂ­: COM1)" #: ../share/extensions/plotter.inx.h:6 -#, fuzzy msgid "Serial baud rate:" -msgstr "Svisle" +msgstr "SĂ©riová pĹ™enosová rychlost:" #: ../share/extensions/plotter.inx.h:7 msgid "The Baud rate of your serial connection (Default: 9600)" -msgstr "" +msgstr "PĹ™enosová rychlost sĂ©riovĂ©ho pĹ™ipojenĂ­ (vĂ˝chozĂ­: 9600)" #: ../share/extensions/plotter.inx.h:8 msgid "Flow control:" -msgstr "" +msgstr "ĹĂ­zenĂ­ toku:" #: ../share/extensions/plotter.inx.h:9 msgid "" "The Software / Hardware flow control of your serial connection (Default: " "Software)" msgstr "" +"SoftverovĂ©/hardverovĂ© řízenĂ­ toku sĂ©riovĂ©ho pĹ™ipojenĂ­ (vĂ˝chozĂ­: softwarovĂ©)" #: ../share/extensions/plotter.inx.h:10 -#, fuzzy msgid "Command language:" -msgstr "Jazyk" +msgstr "PovelovĂ˝ jazyk" #: ../share/extensions/plotter.inx.h:11 msgid "The command language to use (Default: HPGL)" -msgstr "" +msgstr "JakĂ˝ povelovĂ˝ jazyk použít (vĂ˝chozĂ­: HPGL)" #: ../share/extensions/plotter.inx.h:12 msgid "Software (XON/XOFF)" -msgstr "" +msgstr "SoftverovĂ© (XON/XOFF)" #: ../share/extensions/plotter.inx.h:13 msgid "Hardware (RTS/CTS)" -msgstr "" +msgstr "HardverovĂ© (RTS/CTS)" #: ../share/extensions/plotter.inx.h:14 msgid "Hardware (DSR/DTR + RTS/CTS)" -msgstr "" +msgstr "HardverovĂ© (DSR/DTR + RTS/CTS)" #: ../share/extensions/plotter.inx.h:16 msgid "HPGL" -msgstr "" +msgstr "HPGL" #: ../share/extensions/plotter.inx.h:17 msgid "DMPL" -msgstr "" +msgstr "DMPL" #: ../share/extensions/plotter.inx.h:18 msgid "KNK Zing (HPGL variant)" -msgstr "" +msgstr "KNK Zing (varianta HPGL)" #: ../share/extensions/plotter.inx.h:19 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" msgstr "" +"UĹľitĂ­ nesprávnĂ˝ch nastavenĂ­ mĹŻĹľe za jistĂ˝ch okolnostĂ­ zpĹŻsobit zamrznutĂ­ " +"Inkscapu. PĹ™ed plotrovánĂ­m vĹľdy uloĹľte svou práci!" #: ../share/extensions/plotter.inx.h:20 msgid "" @@ -34318,7 +34139,7 @@ msgstr "" #: ../share/extensions/plotter.inx.h:21 msgid "Parallel (LPT) connections are not supported." -msgstr "" +msgstr "PĹ™ipojenĂ­ paralelnĂ­m portem (LPT) nepodporováno." #: ../share/extensions/plotter.inx.h:32 msgid "" @@ -34326,6 +34147,9 @@ msgid "" "(depending on your plotter model), set to 0 to omit command. Most plotters " "ignore this command. (Default: 0)" msgstr "" +"Rychlost, jĂ­Ĺľ se pero bude pohybovat, v centimetrech nebo milimetrech za " +"sekundu (v závislosti na modelu plotru), pro opominutĂ­ příkazu nastavte 0. " +"VÄ›tšina plotrĹŻ tento příkaz ignoruje. (VĂ˝chozĂ­: 0)" #: ../share/extensions/plotter.inx.h:33 #, fuzzy @@ -34333,49 +34157,45 @@ msgid "Rotation (°, clockwise):" msgstr "Otáčí po smÄ›ru hodinovĂ˝ch ruÄŤiÄŤek" #: ../share/extensions/plotter.inx.h:52 -#, fuzzy msgid "Show debug information" -msgstr "Informace o užívánĂ­ pamÄ›ti" +msgstr "Ukázat ladicĂ­ informace" #: ../share/extensions/plotter.inx.h:53 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" msgstr "" +"ZaškrtnÄ›te pro zĂ­skánĂ­ vyÄŤerpávajĂ­ch informacĂ­ o plotrovĂ© kresbÄ› " +"bez poslánĂ­ dat na plotr (VĂ˝choznÄ› nezaškrtnuto)" #: ../share/extensions/plt_input.inx.h:1 msgid "AutoCAD Plot Input" -msgstr "" +msgstr "Vstup AutoCAD Plot" #: ../share/extensions/plt_input.inx.h:2 #: ../share/extensions/plt_output.inx.h:2 -#, fuzzy msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" -msgstr "GrafickĂ˝ soubor XFIG (*.fig)" +msgstr "Soubor HP Graphics Language Plot [AutoCAD] (*.plt)" #: ../share/extensions/plt_input.inx.h:3 -#, fuzzy msgid "Open HPGL plotter files" -msgstr "Odebrat vĂ˝plĹ" +msgstr "Otevřít soubory plotrĹŻ HPGL" #: ../share/extensions/plt_output.inx.h:1 msgid "AutoCAD Plot Output" -msgstr "" +msgstr "VĂ˝stup AutoCAD Plot" #: ../share/extensions/plt_output.inx.h:3 -#, fuzzy msgid "Save a file for plotters" -msgstr "Vyberte jmĂ©no souboru pro export" +msgstr "UloĹľit soubor pro plotry" #: ../share/extensions/polyhedron_3d.inx.h:1 -#, fuzzy msgid "3D Polyhedron" -msgstr "MnohoĂşhelnĂ­k" +msgstr "3rozmÄ›rnĂ˝ mnohostÄ›n" #: ../share/extensions/polyhedron_3d.inx.h:2 -#, fuzzy msgid "Model file" -msgstr "Všechny typy" +msgstr "Soubor modelu" #: ../share/extensions/polyhedron_3d.inx.h:3 #, fuzzy @@ -34383,9 +34203,8 @@ msgid "Object:" msgstr "Objekt" #: ../share/extensions/polyhedron_3d.inx.h:4 -#, fuzzy msgid "Filename:" -msgstr "Nastavit jmĂ©no souboru" +msgstr "Název souboru:" #: ../share/extensions/polyhedron_3d.inx.h:5 #, fuzzy @@ -34399,7 +34218,7 @@ msgstr "Odemknout objekt" #: ../share/extensions/polyhedron_3d.inx.h:7 msgid "Cube" -msgstr "" +msgstr "Kvádr" #: ../share/extensions/polyhedron_3d.inx.h:8 msgid "Truncated Cube" @@ -34423,9 +34242,8 @@ msgid "Truncated Tetrahedron" msgstr "" #: ../share/extensions/polyhedron_3d.inx.h:13 -#, fuzzy msgid "Octahedron" -msgstr "Další" +msgstr "OsmistÄ›n" #: ../share/extensions/polyhedron_3d.inx.h:14 msgid "Truncated Octahedron" @@ -34433,7 +34251,7 @@ msgstr "" #: ../share/extensions/polyhedron_3d.inx.h:15 msgid "Icosahedron" -msgstr "" +msgstr "DvacetistÄ›n" #: ../share/extensions/polyhedron_3d.inx.h:16 msgid "Truncated Icosahedron" @@ -34445,7 +34263,7 @@ msgstr "" #: ../share/extensions/polyhedron_3d.inx.h:18 msgid "Dodecahedron" -msgstr "" +msgstr "DvanáctistÄ›n" #: ../share/extensions/polyhedron_3d.inx.h:19 msgid "Truncated Dodecahedron" @@ -34464,9 +34282,8 @@ msgid "Great Stellated Dodecahedron" msgstr "" #: ../share/extensions/polyhedron_3d.inx.h:23 -#, fuzzy msgid "Load from file" -msgstr "Vlastnosti odkazu" +msgstr "NaÄŤĂ­st ze souboru" #: ../share/extensions/polyhedron_3d.inx.h:24 msgid "Face-Specified" @@ -34604,18 +34421,16 @@ msgid "View Previous Glyph" msgstr "PĹ™edchozĂ­ efekt" #: ../share/extensions/print_win32_vector.inx.h:1 -#, fuzzy msgid "Win32 Vector Print" -msgstr "Windows 32-bit Tisk" +msgstr "VektorovĂ˝ tisk Win32" #: ../share/extensions/printing_marks.inx.h:1 -#, fuzzy msgid "Printing Marks" -msgstr "Tisknout pomocĂ­ operátorĹŻ PDF" +msgstr "TiskovĂ© znaÄŤky" #: ../share/extensions/printing_marks.inx.h:3 msgid "Crop Marks" -msgstr "" +msgstr "OĹ™ezovĂ© znaÄŤky" #: ../share/extensions/printing_marks.inx.h:4 #, fuzzy @@ -34709,29 +34524,26 @@ msgid "Classic" msgstr "" #: ../share/extensions/render_barcode.inx.h:2 -#, fuzzy msgid "Barcode Type:" -msgstr "Typ mřížky: " +msgstr "Typ čárovĂ©ho kĂłdu:" #: ../share/extensions/render_barcode.inx.h:3 msgid "Barcode Data:" -msgstr "" +msgstr "Data čárovĂ©ho kĂłdu:" #: ../share/extensions/render_barcode.inx.h:4 -#, fuzzy msgid "Bar Height:" -msgstr "Výška:" +msgstr "Výška čárovĂ©ho kĂłdu:" #: ../share/extensions/render_barcode.inx.h:6 #: ../share/extensions/render_barcode_datamatrix.inx.h:6 #: ../share/extensions/render_barcode_qrcode.inx.h:19 msgid "Barcode" -msgstr "" +msgstr "ČárovĂ˝ kĂłd" #: ../share/extensions/render_barcode_datamatrix.inx.h:1 -#, fuzzy msgid "Datamatrix" -msgstr "Matice" +msgstr "Datová matice" #: ../share/extensions/render_barcode_datamatrix.inx.h:3 #: ../share/extensions/render_barcode_qrcode.inx.h:4 @@ -34739,58 +34551,55 @@ msgid "Size, in unit squares:" msgstr "" #: ../share/extensions/render_barcode_datamatrix.inx.h:4 -#, fuzzy msgid "Square Size (px):" -msgstr "ÄŚtvercovĂ˝ konec" +msgstr "Velikost ÄŤtverce (px):" #: ../share/extensions/render_barcode_qrcode.inx.h:1 msgid "QR Code" -msgstr "" +msgstr "KĂłd QR" #: ../share/extensions/render_barcode_qrcode.inx.h:2 msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" -msgstr "" +msgstr "Podrobnosti viz http://www.denso-wave.com/qrcode/index-e.html" #: ../share/extensions/render_barcode_qrcode.inx.h:5 -#, fuzzy msgid "Auto" -msgstr "_AutoĹ™i" +msgstr "Automaticky" #: ../share/extensions/render_barcode_qrcode.inx.h:6 msgid "" "With \"Auto\", the size of the barcode depends on the length of the text and " "the error correction level" -msgstr "" +msgstr "S nastavenĂ­m „Auto“ závisĂ­ velikost čárovĂ©ho kĂłdu na dĂ©lce textu a " +"sĂ­le samoopravy" #: ../share/extensions/render_barcode_qrcode.inx.h:7 -#, fuzzy msgid "Error correction level:" -msgstr "PM: odraz" +msgstr "SĂ­la samoopravy:" #: ../share/extensions/render_barcode_qrcode.inx.h:9 #, no-c-format msgid "L (Approx. 7%)" -msgstr "" +msgstr "NĂ­zká (prĹŻm. 7 %)" #: ../share/extensions/render_barcode_qrcode.inx.h:11 #, no-c-format msgid "M (Approx. 15%)" -msgstr "" +msgstr "StĹ™ednĂ­ (prĹŻm. 15 %)" #: ../share/extensions/render_barcode_qrcode.inx.h:13 #, no-c-format msgid "Q (Approx. 25%)" -msgstr "" +msgstr "KvalitnĂ­ (prĹŻm. 25 %)" #: ../share/extensions/render_barcode_qrcode.inx.h:15 #, no-c-format msgid "H (Approx. 30%)" -msgstr "" +msgstr "Vysoká (prĹŻm. 30 %)" #: ../share/extensions/render_barcode_qrcode.inx.h:17 -#, fuzzy msgid "Square size (px):" -msgstr "ÄŚtvercovĂ˝ konec" +msgstr "Velikost ÄŤtverce (px):" #: ../share/extensions/render_gear_rack.inx.h:1 #, fuzzy @@ -34852,22 +34661,20 @@ msgid "Find and Replace font" msgstr "NalĂ©zt objekty v dokumentu" #: ../share/extensions/replace_font.inx.h:3 -#, fuzzy msgid "Find font: " -msgstr "PĹ™idat vrstvu" +msgstr "Vyhledat pĂ­smo:" #: ../share/extensions/replace_font.inx.h:4 -#, fuzzy msgid "Replace with: " -msgstr "Nahradit" +msgstr "Nahradit ÄŤĂ­m:" #: ../share/extensions/replace_font.inx.h:5 msgid "Replace all fonts with: " -msgstr "" +msgstr "Nahradit všechna pĂ­sma ÄŤĂ­m:" #: ../share/extensions/replace_font.inx.h:6 msgid "List all fonts" -msgstr "" +msgstr "Vypsat všechna pĂ­sma" #: ../share/extensions/replace_font.inx.h:7 msgid "" @@ -34885,9 +34692,8 @@ msgid "Entire drawing" msgstr "Exportovaná oblast je celĂ© plátno" #: ../share/extensions/replace_font.inx.h:10 -#, fuzzy msgid "Selected objects only" -msgstr "Obrátit vybranĂ© objekty vodorovnÄ›" +msgstr "Pouze vybranĂ© objekty" #: ../share/extensions/restack.inx.h:1 #, fuzzy @@ -34927,9 +34733,8 @@ msgid "Radial Inward" msgstr "KruhovĂ˝ pĹ™echod" #: ../share/extensions/restack.inx.h:9 -#, fuzzy msgid "Arbitrary Angle" -msgstr "Ăšhel" +msgstr "LibovolnĂ˝ Ăşhel" #: ../share/extensions/restack.inx.h:11 #, fuzzy @@ -34968,17 +34773,15 @@ msgstr "Ăšhel" #: ../share/extensions/rtree.inx.h:1 msgid "Random Tree" -msgstr "NáhodnĂ˝ Strom" +msgstr "NáhodnĂ˝ strom" #: ../share/extensions/rtree.inx.h:2 -#, fuzzy msgid "Initial size:" -msgstr "PočáteÄŤnĂ­ velikost" +msgstr "PočáteÄŤnĂ­ velikost:" #: ../share/extensions/rtree.inx.h:3 -#, fuzzy msgid "Minimum size:" -msgstr "Nejmenší velikost" +msgstr "Nejmenší velikost:" #: ../share/extensions/rubberstretch.inx.h:1 #, fuzzy @@ -34996,19 +34799,16 @@ msgid "Curve (%):" msgstr "" #: ../share/extensions/scour.inx.h:1 -#, fuzzy msgid "Optimized SVG Output" -msgstr "SVG VĂ˝stup" +msgstr "VĂ˝stup optimalizovanĂ©ho SVG" #: ../share/extensions/scour.inx.h:3 -#, fuzzy msgid "Shorten color values" -msgstr "Vynechat barvu" +msgstr "Zkrátit barvovĂ© hodnoty" #: ../share/extensions/scour.inx.h:4 -#, fuzzy msgid "Convert CSS attributes to XML attributes" -msgstr "Odstranit atribut" +msgstr "PĹ™evĂ©st vlastnosti CSS na vlastnosti XML" #: ../share/extensions/scour.inx.h:5 msgid "Group collapsing" @@ -35019,23 +34819,20 @@ msgid "Create groups for similar attributes" msgstr "" #: ../share/extensions/scour.inx.h:7 -#, fuzzy msgid "Embed rasters" -msgstr "PĹ™iloĹľit Všechny Obrázky" +msgstr "VloĹľit rastrovĂ© obrázky" #: ../share/extensions/scour.inx.h:8 msgid "Keep editor data" -msgstr "" +msgstr "Uchovat data editoru" #: ../share/extensions/scour.inx.h:9 -#, fuzzy msgid "Remove metadata" -msgstr "Odebrat ÄŤervenou" +msgstr "Odebrat metadata" #: ../share/extensions/scour.inx.h:10 -#, fuzzy msgid "Remove comments" -msgstr "Odebrat vĂ˝plĹ" +msgstr "Odebrat komentáře" #: ../share/extensions/scour.inx.h:11 msgid "Work around renderer bugs" @@ -35155,23 +34952,20 @@ msgid "" msgstr "" #: ../share/extensions/scour.inx.h:47 -#, fuzzy msgid "Optimized SVG (*.svg)" -msgstr "Inkscape SVG (*.svg)" +msgstr "OptimalizovanĂ© SVG (*.svg)" #: ../share/extensions/scour.inx.h:48 -#, fuzzy msgid "Scalable Vector Graphics" -msgstr "Ĺ kálovatelná Vektorová Grafika (*.svg)" +msgstr "Ĺ kálovatelná vektorová grafika SVG (*.svg)" #: ../share/extensions/setup_typography_canvas.inx.h:1 msgid "1 - Setup Typography Canvas" msgstr "" #: ../share/extensions/setup_typography_canvas.inx.h:2 -#, fuzzy msgid "Em-size:" -msgstr "Velikost:" +msgstr "Velikost ÄŤtverÄŤĂ­ku:" #: ../share/extensions/setup_typography_canvas.inx.h:3 #, fuzzy @@ -35179,9 +34973,8 @@ msgid "Ascender:" msgstr "Vykreslit" #: ../share/extensions/setup_typography_canvas.inx.h:4 -#, fuzzy msgid "Caps Height:" -msgstr "Výška:" +msgstr "Výška kapitálek:" #: ../share/extensions/setup_typography_canvas.inx.h:5 #, fuzzy @@ -35195,30 +34988,28 @@ msgstr "Závislost:" #: ../share/extensions/sk1_input.inx.h:1 msgid "sK1 vector graphics files input" -msgstr "" +msgstr "Vstup vektorovĂ˝ch grafickĂ˝ch souborĹŻ sK1" #: ../share/extensions/sk1_input.inx.h:2 #: ../share/extensions/sk1_output.inx.h:2 msgid "sK1 vector graphics files (*.sk1)" -msgstr "" +msgstr "vektorovĂ© grafickĂ© soubory sK1 (*.sk1)" #: ../share/extensions/sk1_input.inx.h:3 -#, fuzzy msgid "Open files saved in sK1 vector graphics editor" -msgstr "Inkscape SVG VektorovĂ˝ Ilustrátor" +msgstr "OtevĹ™e soubor uloĹľenĂ˝ ve vektorovĂ©m grafickĂ©m editoru sK1" #: ../share/extensions/sk1_output.inx.h:1 msgid "sK1 vector graphics files output" -msgstr "" +msgstr "VĂ˝stup vektorovĂ˝ch grafickĂ˝ch souborĹŻ sK1" #: ../share/extensions/sk1_output.inx.h:3 -#, fuzzy msgid "File format for use in sK1 vector graphics editor" -msgstr "Inkscape SVG VektorovĂ˝ Ilustrátor" +msgstr "SouborovĂ˝ formát pro pouĹľitĂ­ ve vektorovĂ©m grafickĂ©m editoru sK1" #: ../share/extensions/sk_input.inx.h:1 msgid "Sketch Input" -msgstr "Sketch Vstup" +msgstr "Vstup Sketche" #: ../share/extensions/sk_input.inx.h:2 msgid "Sketch Diagram (*.sk)" @@ -35260,7 +35051,7 @@ msgstr "" #: ../share/extensions/spirograph.inx.h:9 msgid "Quality (Default = 16):" -msgstr "" +msgstr "Kvalita (vĂ˝chozĂ­ = 16):" #: ../share/extensions/split.inx.h:1 #, fuzzy @@ -35273,7 +35064,7 @@ msgstr "" #: ../share/extensions/split.inx.h:4 msgid "Preserve original text" -msgstr "" +msgstr "Zachovat pĹŻvodnĂ­ text" #: ../share/extensions/split.inx.h:5 #, fuzzy @@ -35304,182 +35095,158 @@ msgstr "Narovnat segmenty" #: ../share/extensions/straightseg.inx.h:2 #, fuzzy msgid "Percent:" -msgstr "Procento" +msgstr "Procento:" #: ../share/extensions/straightseg.inx.h:3 -#, fuzzy msgid "Behavior:" -msgstr "ChovánĂ­" +msgstr "ChovánĂ­:" #: ../share/extensions/summersnight.inx.h:1 msgid "Envelope" msgstr "Obálka" #: ../share/extensions/svg2fxg.inx.h:1 -#, fuzzy msgid "FXG Output" -msgstr "SVG VĂ˝stup" +msgstr "VĂ˝stup FXG" #: ../share/extensions/svg2fxg.inx.h:2 -#, fuzzy msgid "Flash XML Graphics (*.fxg)" -msgstr "GrafickĂ˝ soubor XFIG (*.fig)" +msgstr "Flash XML Graphics (*.fxg)" #: ../share/extensions/svg2fxg.inx.h:3 msgid "Adobe's XML Graphics file format" -msgstr "" +msgstr "Formát XML Graphics firmy Adobe" #: ../share/extensions/svg2xaml.inx.h:1 -#, fuzzy msgid "XAML Output" -msgstr "VĂ˝stup DXF" +msgstr "VĂ˝stup XAML" #: ../share/extensions/svg2xaml.inx.h:2 msgid "Silverlight compatible XAML" -msgstr "" +msgstr "XAML sluÄŤitelnĂ© se Silverlightem" #: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 msgid "Microsoft XAML (*.xaml)" -msgstr "" +msgstr "XAML Mikrosoftu (*.xaml)" #: ../share/extensions/svg2xaml.inx.h:4 ../share/extensions/xaml2svg.inx.h:3 msgid "Microsoft's GUI definition format" -msgstr "" +msgstr "DefiniÄŤnĂ­ formát GUI Mikrosoftu" #: ../share/extensions/svg_and_media_zip_output.inx.h:1 -#, fuzzy msgid "Compressed Inkscape SVG with media export" -msgstr "KomprimovanĂ© Inkscape SVG s mĂ©dii (*.svgz)" +msgstr "KomprimovanĂ© SVG Inkscapu s exportem mĂ©diĂ­ (*.svgz)" #: ../share/extensions/svg_and_media_zip_output.inx.h:2 -#, fuzzy msgid "Image zip directory:" -msgstr "" -"%s nenĂ­ skuteÄŤnĂ˝ adresář.\n" -"%s" +msgstr "ZIPovĂ˝ adresář pro obrázky:" #: ../share/extensions/svg_and_media_zip_output.inx.h:3 -#, fuzzy msgid "Add font list" -msgstr "PĹ™idat vrstvu" +msgstr "PĹ™idat seznam fontĹŻ" #: ../share/extensions/svg_and_media_zip_output.inx.h:4 msgid "Compressed Inkscape SVG with media (*.zip)" -msgstr "KomprimovanĂ© Inkscape SVG s mĂ©dii (*.svgz)" +msgstr "KomprimovanĂ© SVG Inkscapu s mĂ©dii (*.svgz)" #: ../share/extensions/svg_and_media_zip_output.inx.h:5 msgid "" "Inkscape's native file format compressed with Zip and including all media " "files" -msgstr "NativnĂ­ formát Inkscape komrpimovanĂ˝ pomocĂ­ Zip vÄŤetnÄ› vloĹľenĂ˝ch mĂ©diĂ­" +msgstr "NativnĂ­ formát Inkscapu komprimovanĂ˝ pomocĂ­ ZIPu vÄŤetnÄ› vloĹľenĂ˝ch " +"mediálnĂ­ch souborĹŻ" #: ../share/extensions/svgcalendar.inx.h:1 -#, fuzzy msgid "Calendar" -msgstr "VyÄŤistit" +msgstr "Kalendář" #: ../share/extensions/svgcalendar.inx.h:3 msgid "Year (4 digits):" -msgstr "" +msgstr "Rok (4cifernÄ›):" #: ../share/extensions/svgcalendar.inx.h:4 msgid "Month (0 for all):" -msgstr "" +msgstr "MÄ›sĂ­c (0 pro všechny):" #: ../share/extensions/svgcalendar.inx.h:5 msgid "Fill empty day boxes with next month's days" -msgstr "" +msgstr "VyplĹte prázdná pole dnĹŻ dny následujĂ­cĂ­ho mÄ›sĂ­ce" #: ../share/extensions/svgcalendar.inx.h:6 -#, fuzzy msgid "Show week number" -msgstr "Ăšhel" +msgstr "Zobrazit ÄŤĂ­slo tĂ˝dne" #: ../share/extensions/svgcalendar.inx.h:7 msgid "Week start day:" -msgstr "" +msgstr "PočáteÄŤnĂ­ den tĂ˝dne:" #: ../share/extensions/svgcalendar.inx.h:8 -#, fuzzy msgid "Weekend:" -msgstr "Rychlost:" +msgstr "VĂ­kend:" #: ../share/extensions/svgcalendar.inx.h:9 -#, fuzzy msgid "Sunday" -msgstr "RazĂ­tkovat" +msgstr "NedÄ›le" #: ../share/extensions/svgcalendar.inx.h:10 -#, fuzzy msgid "Monday" -msgstr "ReĹľim" +msgstr "PondÄ›lĂ­" #: ../share/extensions/svgcalendar.inx.h:11 msgid "Saturday and Sunday" -msgstr "" +msgstr "Sobota a nedÄ›le" #: ../share/extensions/svgcalendar.inx.h:12 -#, fuzzy msgid "Saturday" -msgstr "Sytost" +msgstr "Sobota" #: ../share/extensions/svgcalendar.inx.h:14 msgid "Automatically set size and position" -msgstr "" +msgstr "SamoÄŤinnÄ› nastavit velikost a polohu" #: ../share/extensions/svgcalendar.inx.h:15 -#, fuzzy msgid "Months per line:" -msgstr "ZarovnánĂ­ na stĹ™ed" +msgstr "MÄ›sĂ­cĹŻ na řádek:" #: ../share/extensions/svgcalendar.inx.h:16 -#, fuzzy msgid "Month Width:" -msgstr "Ĺ Ă­Ĺ™ka strany" +msgstr "Ĺ Ă­Ĺ™ka mÄ›sĂ­ce:" #: ../share/extensions/svgcalendar.inx.h:17 -#, fuzzy msgid "Month Margin:" -msgstr "Vynechat barvu" +msgstr "OdsazenĂ­ mÄ›sĂ­ce:" #: ../share/extensions/svgcalendar.inx.h:18 msgid "The options below have no influence when the above is checked." msgstr "" #: ../share/extensions/svgcalendar.inx.h:20 -#, fuzzy msgid "Year color:" -msgstr "Vynechat barvu" +msgstr "Barva roku:" #: ../share/extensions/svgcalendar.inx.h:21 -#, fuzzy msgid "Month color:" -msgstr "Vynechat barvu" +msgstr "Barva mÄ›sĂ­ce:" #: ../share/extensions/svgcalendar.inx.h:22 -#, fuzzy msgid "Weekday name color:" -msgstr "Nastavit nabranou barvu" +msgstr "Barva názvu dne:" #: ../share/extensions/svgcalendar.inx.h:23 -#, fuzzy msgid "Day color:" -msgstr "Vynechat barvu" +msgstr "Barva dne:" #: ../share/extensions/svgcalendar.inx.h:24 -#, fuzzy msgid "Weekend day color:" -msgstr "Nastavit nabranou barvu" +msgstr "Barva vĂ­kendovĂ©ho dne:" #: ../share/extensions/svgcalendar.inx.h:25 -#, fuzzy msgid "Next month day color:" -msgstr "Nastavit nabranou barvu" +msgstr "Barva dne dalšího mÄ›sĂ­ce:" #: ../share/extensions/svgcalendar.inx.h:26 -#, fuzzy msgid "Week number color:" -msgstr "Nastavit nabranou barvu" +msgstr "Barva ÄŤĂ­sla tĂ˝dne:" #: ../share/extensions/svgcalendar.inx.h:27 #, fuzzy @@ -35487,24 +35254,20 @@ msgid "Localization" msgstr "_Rotace" #: ../share/extensions/svgcalendar.inx.h:28 -#, fuzzy msgid "Month names:" -msgstr "NepojmenovanĂ˝" +msgstr "Názvy mÄ›sĂ­cĹŻ:" #: ../share/extensions/svgcalendar.inx.h:29 -#, fuzzy msgid "Day names:" -msgstr "JmĂ©no vrstvy:" +msgstr "Názvy dnĹŻ:" #: ../share/extensions/svgcalendar.inx.h:30 -#, fuzzy msgid "Week number column name:" -msgstr "PoÄŤet sloupcĹŻ" +msgstr "Název sloupce ÄŤĂ­sel tĂ˝dnĹŻ:" #: ../share/extensions/svgcalendar.inx.h:31 -#, fuzzy msgid "Char Encoding:" -msgstr "HvÄ›zda: ZmÄ›na zaoblenĂ­" +msgstr "ZnakovĂ© kĂłdovánĂ­:" #: ../share/extensions/svgcalendar.inx.h:32 msgid "You may change the names for other languages:" @@ -35514,11 +35277,12 @@ msgstr "" msgid "" "January February March April May June July August September October November " "December" -msgstr "" +msgstr "Leden Ăšnor BĹ™ezen Duben KvÄ›ten ÄŚerven ÄŚervenec Srpen Září ĹĂ­jen " +"Listopad Prosinec" #: ../share/extensions/svgcalendar.inx.h:34 msgid "Sun Mon Tue Wed Thu Fri Sat" -msgstr "" +msgstr "Ne Po Ăšt St ÄŚt Pá So" #: ../share/extensions/svgcalendar.inx.h:35 msgid "The day names list must start from Sunday." diff --git a/po/it.po b/po/it.po index 939147f20..f4d62d39a 100644 --- a/po/it.po +++ b/po/it.po @@ -2,18 +2,19 @@ # Copyright (C) 2000-2009 Free Software Foundation, Inc. # This file is distributed under the same license as the inkscape package. # Brisa Francesco , 2000. -# Alessio Frusciante , 2002, 2003. +# Alessio Frusciante , 2002-2003. # Luca Ferretti , 2005. # Luca Bruno , 2005-2009. +# Firas Hanife , 2014. # msgid "" msgstr "" -"Project-Id-Version: Inkscape 0.47\n" +"Project-Id-Version: Inkscape 0.91\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2014-08-14 23:05-0700\n" +"POT-Creation-Date: 2014-08-26 12:52+0200\n" "PO-Revision-Date: 2009-10-11 17:07+0100\n" -"Last-Translator: Luca Bruno \n" -"Language-Team: Italian \n" +"Last-Translator: Firas Hanife \n" +"Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,37819 +42,37924 @@ msgstr "Crea e modifica immagini Scalable Vector Graphics" msgid "New Drawing" msgstr "Disegno" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:2 +#: ../share/filters/filters.svg.h:2 +#, fuzzy +msgid "Smart Jelly" +msgstr "Gelatina migliorata" + +#: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:7 +#: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:31 +#: ../share/filters/filters.svg.h:35 ../share/filters/filters.svg.h:107 +#: ../share/filters/filters.svg.h:139 ../share/filters/filters.svg.h:143 +#: ../share/filters/filters.svg.h:147 ../share/filters/filters.svg.h:151 +#: ../share/filters/filters.svg.h:163 ../share/filters/filters.svg.h:171 +#: ../share/filters/filters.svg.h:219 ../share/filters/filters.svg.h:227 +#: ../share/filters/filters.svg.h:283 ../share/filters/filters.svg.h:299 +#: ../share/filters/filters.svg.h:303 ../share/filters/filters.svg.h:551 +#: ../share/filters/filters.svg.h:555 ../share/filters/filters.svg.h:559 +#: ../share/filters/filters.svg.h:563 ../share/filters/filters.svg.h:567 +#: ../src/extension/internal/filter/bevels.h:63 +#: ../src/extension/internal/filter/bevels.h:144 +#: ../src/extension/internal/filter/bevels.h:228 +msgid "Bevels" +msgstr "Sfumature" + +#: ../share/filters/filters.svg.h:4 +msgid "Same as Matte jelly but with more controls" +msgstr "Come Gelatina opaca, ma con piĂą parametri" + +#: ../share/filters/filters.svg.h:6 #, fuzzy -msgctxt "Palette" -msgid "Black" -msgstr "Nero" +msgid "Metal Casting" +msgstr "Colata metallica" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:3 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "90% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:8 +msgid "Smooth drop-like bevel with metallic finish" +msgstr "Smussatura dolce a goccia, con finiture metalliche" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:4 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "80% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:10 +msgid "Apparition" +msgstr "Apparizione" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:5 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "70% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:323 +#: ../share/filters/filters.svg.h:655 +#: ../src/extension/internal/filter/blurs.h:63 +#: ../src/extension/internal/filter/blurs.h:132 +#: ../src/extension/internal/filter/blurs.h:201 +#: ../src/extension/internal/filter/blurs.h:267 +#: ../src/extension/internal/filter/blurs.h:351 +msgid "Blurs" +msgstr "Sfocature" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:6 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "60% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:12 +msgid "Edges are partly feathered out" +msgstr "I bordi sono parzialmente spiumati" + +#: ../share/filters/filters.svg.h:14 +#, fuzzy +msgid "Jigsaw Piece" +msgstr "Puzzle" + +#: ../share/filters/filters.svg.h:16 +msgid "Low, sharp bevel" +msgstr "Smussatura netta e bassa" + +#: ../share/filters/filters.svg.h:18 +#, fuzzy +msgid "Rubber Stamp" +msgstr "Timbro di gomma" + +#: ../share/filters/filters.svg.h:19 ../share/filters/filters.svg.h:43 +#: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:51 +#: ../share/filters/filters.svg.h:59 ../share/filters/filters.svg.h:63 +#: ../share/filters/filters.svg.h:95 ../share/filters/filters.svg.h:99 +#: ../share/filters/filters.svg.h:103 ../share/filters/filters.svg.h:287 +#: ../share/filters/filters.svg.h:291 ../share/filters/filters.svg.h:331 +#: ../share/filters/filters.svg.h:335 ../share/filters/filters.svg.h:339 +#: ../share/filters/filters.svg.h:391 ../share/filters/filters.svg.h:407 +#: ../share/filters/filters.svg.h:451 ../share/filters/filters.svg.h:455 +#: ../share/filters/filters.svg.h:459 ../share/filters/filters.svg.h:475 +#: ../share/filters/filters.svg.h:487 ../share/filters/filters.svg.h:583 +#: ../share/filters/filters.svg.h:643 ../share/filters/filters.svg.h:683 +#: ../share/filters/filters.svg.h:687 ../share/filters/filters.svg.h:691 +#: ../share/filters/filters.svg.h:695 ../share/filters/filters.svg.h:699 +#: ../share/filters/filters.svg.h:703 ../share/filters/filters.svg.h:707 +#: ../share/filters/filters.svg.h:711 ../share/filters/filters.svg.h:715 +#: ../share/filters/filters.svg.h:723 +#: ../src/extension/internal/filter/overlays.h:80 +msgid "Overlays" +msgstr "Sovrapposizione" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:7 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "50% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:20 +msgid "Random whiteouts inside" +msgstr "Tratti interne casuali di bianchetto" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:8 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "40% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:22 +#, fuzzy +msgid "Ink Bleed" +msgstr "Macchie d'inchiostro" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:9 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "30% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:27 +#: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:431 +msgid "Protrusions" +msgstr "Protrusioni" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:10 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "20% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:24 +msgid "Inky splotches underneath the object" +msgstr "Macchie di inchiostro sotto l'oggetto" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:11 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "10% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:26 +msgid "Fire" +msgstr "Fuoco" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:12 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "7.5% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:28 +msgid "Edges of object are on fire" +msgstr "Bordi dell'oggetto infiammati" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:13 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "5% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:30 +msgid "Bloom" +msgstr "Riverbero" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:14 -#, fuzzy, no-c-format -msgctxt "Palette" -msgid "2.5% Gray" -msgstr "Grigio" +#: ../share/filters/filters.svg.h:32 +msgid "Soft, cushion-like bevel with matte highlights" +msgstr "Smussatura lieve \"a cuscino\", con riflessi opachi" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:15 +#: ../share/filters/filters.svg.h:34 #, fuzzy -msgctxt "Palette" -msgid "White" -msgstr "Bianco" +msgid "Ridged Border" +msgstr "Bordo con cresta" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:16 -msgctxt "Palette" -msgid "Maroon (#800000)" -msgstr "" +#: ../share/filters/filters.svg.h:36 +msgid "Ridged border with inner bevel" +msgstr "Bordo truccato con smussatura interna" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:17 -msgctxt "Palette" -msgid "Red (#FF0000)" -msgstr "" +#: ../share/filters/filters.svg.h:38 +msgid "Ripple" +msgstr "Oscillazione" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:18 -msgctxt "Palette" -msgid "Olive (#808000)" -msgstr "" +#: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 +#: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 +#: ../share/filters/filters.svg.h:327 ../share/filters/filters.svg.h:363 +#: ../share/filters/filters.svg.h:443 ../share/filters/filters.svg.h:519 +#: ../share/filters/filters.svg.h:635 +#: ../src/extension/internal/filter/distort.h:96 +#: ../src/extension/internal/filter/distort.h:205 +msgid "Distort" +msgstr "Distorto" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:19 -msgctxt "Palette" -msgid "Yellow (#FFFF00)" -msgstr "" +#: ../share/filters/filters.svg.h:40 +msgid "Horizontal rippling of edges" +msgstr "Ondulazione orizzontale dei bordi" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:20 -msgctxt "Palette" -msgid "Green (#008000)" -msgstr "" +#: ../share/filters/filters.svg.h:42 +msgid "Speckle" +msgstr "Macchia" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:21 -msgctxt "Palette" -msgid "Lime (#00FF00)" -msgstr "" +#: ../share/filters/filters.svg.h:44 +msgid "Fill object with sparse translucent specks" +msgstr "Disegna l'oggetto con granelli traslucidi sparsi" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:22 -msgctxt "Palette" -msgid "Teal (#008080)" -msgstr "" +#: ../share/filters/filters.svg.h:46 +#, fuzzy +msgid "Oil Slick" +msgstr "Macchia oleosa" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:23 -msgctxt "Palette" -msgid "Aqua (#00FFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:48 +msgid "Rainbow-colored semitransparent oily splotches" +msgstr "Macchie oleose semitrasparenti iridate" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:24 -msgctxt "Palette" -msgid "Navy (#000080)" -msgstr "" +#: ../share/filters/filters.svg.h:50 +msgid "Frost" +msgstr "Brina" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:25 -msgctxt "Palette" -msgid "Blue (#0000FF)" -msgstr "" +#: ../share/filters/filters.svg.h:52 +msgid "Flake-like white splotches" +msgstr "Macchie bianche simili a fiocchi di neve" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:26 -msgctxt "Palette" -msgid "Purple (#800080)" -msgstr "" +#: ../share/filters/filters.svg.h:54 +#, fuzzy +msgid "Leopard Fur" +msgstr "Pelo di leopardo" -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:27 -msgctxt "Palette" -msgid "Fuchsia (#FF00FF)" -msgstr "" +#: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:175 +#: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:183 +#: ../share/filters/filters.svg.h:191 ../share/filters/filters.svg.h:211 +#: ../share/filters/filters.svg.h:239 ../share/filters/filters.svg.h:243 +#: ../share/filters/filters.svg.h:247 ../share/filters/filters.svg.h:255 +#: ../share/filters/filters.svg.h:387 ../share/filters/filters.svg.h:395 +#: ../share/filters/filters.svg.h:399 ../share/filters/filters.svg.h:403 +msgid "Materials" +msgstr "Materiali" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:28 -msgctxt "Palette" -msgid "black (#000000)" -msgstr "" +#: ../share/filters/filters.svg.h:56 +msgid "Leopard spots (loses object's own color)" +msgstr "Macchie di leopardo (per il colore originario dell'oggetto)" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:29 -msgctxt "Palette" -msgid "dimgray (#696969)" -msgstr "" +#: ../share/filters/filters.svg.h:58 +msgid "Zebra" +msgstr "Zebra" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:30 -msgctxt "Palette" -msgid "gray (#808080)" +#: ../share/filters/filters.svg.h:60 +msgid "Irregular vertical dark stripes (loses object's own color)" msgstr "" +"Irregolari strisce scure verticali (rimuove il colore originale dell'oggetto)" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:31 -msgctxt "Palette" -msgid "darkgray (#A9A9A9)" -msgstr "" +#: ../share/filters/filters.svg.h:62 +msgid "Clouds" +msgstr "Nuvole" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:32 -msgctxt "Palette" -msgid "silver (#C0C0C0)" -msgstr "" +#: ../share/filters/filters.svg.h:64 +msgid "Airy, fluffy, sparse white clouds" +msgstr "Nuvole bianche sparse, soffici e rade" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:33 -msgctxt "Palette" -msgid "lightgray (#D3D3D3)" -msgstr "" +#: ../share/filters/filters.svg.h:66 +#: ../src/extension/internal/bitmap/sharpen.cpp:38 +msgid "Sharpen" +msgstr "Nitidezza" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:34 -msgctxt "Palette" -msgid "gainsboro (#DCDCDC)" -msgstr "" +#: ../share/filters/filters.svg.h:67 ../share/filters/filters.svg.h:71 +#: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:295 +#: ../share/filters/filters.svg.h:415 +#: ../src/extension/internal/filter/image.h:62 +msgid "Image Effects" +msgstr "Effetti immagine" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:35 -msgctxt "Palette" -msgid "whitesmoke (#F5F5F5)" -msgstr "" +#: ../share/filters/filters.svg.h:68 +msgid "Sharpen edges and boundaries within the object, force=0.15" +msgstr "Affina bordi e riquadri interni all'oggetto, forza=0.15" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:36 -msgctxt "Palette" -msgid "white (#FFFFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:70 +#, fuzzy +msgid "Sharpen More" +msgstr "Maggiore nitidezza" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:37 -msgctxt "Palette" -msgid "rosybrown (#BC8F8F)" -msgstr "" +#: ../share/filters/filters.svg.h:72 +msgid "Sharpen edges and boundaries within the object, force=0.3" +msgstr "Affina bordi e riquadri interni all'oggetto, forza=0.3" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:38 -msgctxt "Palette" -msgid "indianred (#CD5C5C)" -msgstr "" +#: ../share/filters/filters.svg.h:74 +msgid "Oil painting" +msgstr "Pittura ad olio" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:39 -msgctxt "Palette" -msgid "brown (#A52A2A)" +#: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:79 +#: ../share/filters/filters.svg.h:83 ../share/filters/filters.svg.h:447 +#: ../share/filters/filters.svg.h:495 ../share/filters/filters.svg.h:499 +#: ../share/filters/filters.svg.h:503 ../share/filters/filters.svg.h:507 +#: ../share/filters/filters.svg.h:515 ../share/filters/filters.svg.h:659 +#: ../share/filters/filters.svg.h:663 ../share/filters/filters.svg.h:667 +#: ../share/filters/filters.svg.h:671 ../share/filters/filters.svg.h:675 +#: ../share/filters/filters.svg.h:679 ../share/filters/filters.svg.h:719 +#: ../share/filters/filters.svg.h:803 ../share/filters/filters.svg.h:815 +#: ../src/extension/internal/filter/paint.h:113 +#: ../src/extension/internal/filter/paint.h:244 +#: ../src/extension/internal/filter/paint.h:363 +#: ../src/extension/internal/filter/paint.h:507 +#: ../src/extension/internal/filter/paint.h:602 +#: ../src/extension/internal/filter/paint.h:725 +#: ../src/extension/internal/filter/paint.h:877 +#: ../src/extension/internal/filter/paint.h:981 +msgid "Image Paint and Draw" msgstr "" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:40 -msgctxt "Palette" -msgid "firebrick (#B22222)" -msgstr "" +#: ../share/filters/filters.svg.h:76 +msgid "Simulate oil painting style" +msgstr "Simula lo stile dei dipinti ad olio" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:41 -msgctxt "Palette" -msgid "lightcoral (#F08080)" -msgstr "" +#. Pencil +#: ../share/filters/filters.svg.h:78 +#: ../src/ui/dialog/inkscape-preferences.cpp:416 +msgid "Pencil" +msgstr "Pastello" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:42 -msgctxt "Palette" -msgid "maroon (#800000)" -msgstr "" +#: ../share/filters/filters.svg.h:80 +msgid "Detect color edges and retrace them in grayscale" +msgstr "Rileva bordi colorati e li ridisegna in scala di grigi" + +#: ../share/filters/filters.svg.h:82 +msgid "Blueprint" +msgstr "Cianotipo" + +#: ../share/filters/filters.svg.h:84 +msgid "Detect color edges and retrace them in blue" +msgstr "Rileva bordi colorati e li ridisegna in blu" + +#: ../share/filters/filters.svg.h:86 +msgid "Age" +msgstr "Invecchiato" + +#: ../share/filters/filters.svg.h:88 +msgid "Imitate aged photograph" +msgstr "Imita fotografie antiche" + +#: ../share/filters/filters.svg.h:90 +msgid "Organic" +msgstr "Organico" + +#: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:119 +#: ../share/filters/filters.svg.h:127 ../share/filters/filters.svg.h:187 +#: ../share/filters/filters.svg.h:195 ../share/filters/filters.svg.h:199 +#: ../share/filters/filters.svg.h:251 ../share/filters/filters.svg.h:259 +#: ../share/filters/filters.svg.h:263 ../share/filters/filters.svg.h:355 +#: ../share/filters/filters.svg.h:359 ../share/filters/filters.svg.h:367 +#: ../share/filters/filters.svg.h:371 ../share/filters/filters.svg.h:375 +#: ../share/filters/filters.svg.h:379 ../share/filters/filters.svg.h:383 +#: ../share/filters/filters.svg.h:439 ../share/filters/filters.svg.h:467 +#: ../share/filters/filters.svg.h:491 ../share/filters/filters.svg.h:531 +msgid "Textures" +msgstr "Texture" + +#: ../share/filters/filters.svg.h:92 +msgid "Bulging, knotty, slick 3D surface" +msgstr "Superficie 3D nodosa, patinata e con protrusioni" + +#: ../share/filters/filters.svg.h:94 +#, fuzzy +msgid "Barbed Wire" +msgstr "Filo spinato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:43 -msgctxt "Palette" -msgid "darkred (#8B0000)" -msgstr "" +#: ../share/filters/filters.svg.h:96 +msgid "Gray bevelled wires with drop shadows" +msgstr "Filo grigio spigoloso, con ombreggiature" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:44 -msgctxt "Palette" -msgid "red (#FF0000)" -msgstr "" +#: ../share/filters/filters.svg.h:98 +#, fuzzy +msgid "Swiss Cheese" +msgstr "Gruviera" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:45 -msgctxt "Palette" -msgid "snow (#FFFAFA)" -msgstr "" +#: ../share/filters/filters.svg.h:100 +msgid "Random inner-bevel holes" +msgstr "Buchi casuali interni agli spigoli" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:46 -msgctxt "Palette" -msgid "mistyrose (#FFE4E1)" -msgstr "" +#: ../share/filters/filters.svg.h:102 +#, fuzzy +msgid "Blue Cheese" +msgstr "Gorgonzola" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:47 -msgctxt "Palette" -msgid "salmon (#FA8072)" -msgstr "" +#: ../share/filters/filters.svg.h:104 +msgid "Marble-like bluish speckles" +msgstr "Chiazze bluastre simili a marmo" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:48 -msgctxt "Palette" -msgid "tomato (#FF6347)" -msgstr "" +#: ../share/filters/filters.svg.h:106 +msgid "Button" +msgstr "Bottone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:49 -msgctxt "Palette" -msgid "darksalmon (#E9967A)" -msgstr "" +#: ../share/filters/filters.svg.h:108 +msgid "Soft bevel, slightly depressed middle" +msgstr "Leggera smussatura, lieve depressione intermedia" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:50 -msgctxt "Palette" -msgid "coral (#FF7F50)" -msgstr "" +#: ../share/filters/filters.svg.h:110 +msgid "Inset" +msgstr "Intrusione" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:51 -msgctxt "Palette" -msgid "orangered (#FF4500)" -msgstr "" +#: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:267 +#: ../share/filters/filters.svg.h:343 ../share/filters/filters.svg.h:435 +#: ../share/filters/filters.svg.h:811 +#: ../src/extension/internal/filter/shadows.h:81 +msgid "Shadows and Glows" +msgstr "Ombre e aloni" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:52 -msgctxt "Palette" -msgid "lightsalmon (#FFA07A)" -msgstr "" +#: ../share/filters/filters.svg.h:112 +msgid "Shadowy outer bevel" +msgstr "Smussatura esterna ombreggiata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:53 -msgctxt "Palette" -msgid "sienna (#A0522D)" -msgstr "" +#: ../share/filters/filters.svg.h:114 +#, fuzzy +msgid "Dripping" +msgstr "Colate" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:54 -msgctxt "Palette" -msgid "seashell (#FFF5EE)" -msgstr "" +#: ../share/filters/filters.svg.h:116 +msgid "Random paint streaks downwards" +msgstr "Colate casuali di pittura" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:55 -msgctxt "Palette" -msgid "chocolate (#D2691E)" -msgstr "" +#: ../share/filters/filters.svg.h:118 +#, fuzzy +msgid "Jam Spread" +msgstr "Marmellata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:56 -msgctxt "Palette" -msgid "saddlebrown (#8B4513)" -msgstr "" +#: ../share/filters/filters.svg.h:120 +msgid "Glossy clumpy jam spread" +msgstr "Marmellata con grumi e riflessi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:57 -msgctxt "Palette" -msgid "sandybrown (#F4A460)" -msgstr "" +#: ../share/filters/filters.svg.h:122 +#, fuzzy +msgid "Pixel Smear" +msgstr "Sbaffi di pixel" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:58 -msgctxt "Palette" -msgid "peachpuff (#FFDAB9)" -msgstr "" +#: ../share/filters/filters.svg.h:124 +msgid "Van Gogh painting effect for bitmaps" +msgstr "Effetto Van Gogh per bitmap" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:59 -msgctxt "Palette" -msgid "peru (#CD853F)" -msgstr "" +#: ../share/filters/filters.svg.h:126 +#, fuzzy +msgid "Cracked Glass" +msgstr "Vetro rotto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:60 -msgctxt "Palette" -msgid "linen (#FAF0E6)" -msgstr "" +#: ../share/filters/filters.svg.h:128 +msgid "Under a cracked glass" +msgstr "Sotto un vetro rotto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:61 -msgctxt "Palette" -msgid "bisque (#FFE4C4)" -msgstr "" +#: ../share/filters/filters.svg.h:130 +msgid "Bubbly Bumps" +msgstr "Rughe a bolle" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:62 -msgctxt "Palette" -msgid "darkorange (#FF8C00)" -msgstr "" +#: ../share/filters/filters.svg.h:131 ../share/filters/filters.svg.h:307 +#: ../share/filters/filters.svg.h:311 ../share/filters/filters.svg.h:347 +#: ../share/filters/filters.svg.h:351 ../share/filters/filters.svg.h:419 +#: ../share/filters/filters.svg.h:423 ../share/filters/filters.svg.h:463 +#: ../share/filters/filters.svg.h:471 ../share/filters/filters.svg.h:479 +#: ../share/filters/filters.svg.h:483 ../share/filters/filters.svg.h:511 +#: ../share/filters/filters.svg.h:535 ../share/filters/filters.svg.h:539 +#: ../share/filters/filters.svg.h:543 ../share/filters/filters.svg.h:547 +#: ../share/filters/filters.svg.h:571 ../share/filters/filters.svg.h:579 +#: ../share/filters/filters.svg.h:595 ../share/filters/filters.svg.h:599 +#: ../share/filters/filters.svg.h:603 ../share/filters/filters.svg.h:607 +#: ../share/filters/filters.svg.h:611 ../share/filters/filters.svg.h:615 +#: ../share/filters/filters.svg.h:619 ../share/filters/filters.svg.h:623 +#: ../share/filters/filters.svg.h:799 ../share/filters/filters.svg.h:807 +#: ../src/extension/internal/filter/bumps.h:142 +#: ../src/extension/internal/filter/bumps.h:362 +msgid "Bumps" +msgstr "RugositĂ " -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:63 -msgctxt "Palette" -msgid "burlywood (#DEB887)" -msgstr "" +#: ../share/filters/filters.svg.h:132 +msgid "Flexible bubbles effect with some displacement" +msgstr "Bolle parametrizzate con una quantitĂ  di spostamento" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:64 -msgctxt "Palette" -msgid "tan (#D2B48C)" -msgstr "" +#: ../share/filters/filters.svg.h:134 +#, fuzzy +msgid "Glowing Bubble" +msgstr "Bolle con alone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:65 -msgctxt "Palette" -msgid "antiquewhite (#FAEBD7)" -msgstr "" +#: ../share/filters/filters.svg.h:135 ../share/filters/filters.svg.h:155 +#: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 +#: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 +#: ../share/filters/filters.svg.h:223 +msgid "Ridges" +msgstr "Creste" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:66 -msgctxt "Palette" -msgid "navajowhite (#FFDEAD)" -msgstr "" +#: ../share/filters/filters.svg.h:136 +msgid "Bubble effect with refraction and glow" +msgstr "Bolle con effetti di alone e rifrazione" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:67 -msgctxt "Palette" -msgid "blanchedalmond (#FFEBCD)" -msgstr "" +#: ../share/filters/filters.svg.h:138 +msgid "Neon" +msgstr "Neon" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:68 -msgctxt "Palette" -msgid "papayawhip (#FFEFD5)" -msgstr "" +#: ../share/filters/filters.svg.h:140 +msgid "Neon light effect" +msgstr "Luce neon" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:69 -msgctxt "Palette" -msgid "moccasin (#FFE4B5)" -msgstr "" +#: ../share/filters/filters.svg.h:142 +#, fuzzy +msgid "Molten Metal" +msgstr "Metallo fuso" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:70 -msgctxt "Palette" -msgid "orange (#FFA500)" +#: ../share/filters/filters.svg.h:144 +msgid "Melting parts of object together, with a glossy bevel and a glow" msgstr "" +"Fonde insieme parti dell'oggetto, con un alone e una sfumatura patinata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:71 -msgctxt "Palette" -msgid "wheat (#F5DEB3)" -msgstr "" +#: ../share/filters/filters.svg.h:146 +#, fuzzy +msgid "Pressed Steel" +msgstr "Acciaio pressato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:72 -msgctxt "Palette" -msgid "oldlace (#FDF5E6)" -msgstr "" +#: ../share/filters/filters.svg.h:148 +msgid "Pressed metal with a rolled edge" +msgstr "Metallo pressato con bordi incurvati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:73 -msgctxt "Palette" -msgid "floralwhite (#FFFAF0)" -msgstr "" +#: ../share/filters/filters.svg.h:150 +#, fuzzy +msgid "Matte Bevel" +msgstr "Sfumatura opaca" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:74 -msgctxt "Palette" -msgid "darkgoldenrod (#B8860B)" -msgstr "" +#: ../share/filters/filters.svg.h:152 +msgid "Soft, pastel-colored, blurry bevel" +msgstr "Sfumatura sfocata leggera, color pastello" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:75 -msgctxt "Palette" -msgid "goldenrod (#DAA520)" -msgstr "" +#: ../share/filters/filters.svg.h:154 +msgid "Thin Membrane" +msgstr "Membrana sottile" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:76 -msgctxt "Palette" -msgid "cornsilk (#FFF8DC)" -msgstr "" +#: ../share/filters/filters.svg.h:156 +msgid "Thin like a soap membrane" +msgstr "Membrana sottile come il sapone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:77 -msgctxt "Palette" -msgid "gold (#FFD700)" -msgstr "" +#: ../share/filters/filters.svg.h:158 +#, fuzzy +msgid "Matte Ridge" +msgstr "Cresta opaca" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:78 -msgctxt "Palette" -msgid "khaki (#F0E68C)" -msgstr "" +#: ../share/filters/filters.svg.h:160 +msgid "Soft pastel ridge" +msgstr "Creste a pastello leggero" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:79 -msgctxt "Palette" -msgid "lemonchiffon (#FFFACD)" -msgstr "" +#: ../share/filters/filters.svg.h:162 +#, fuzzy +msgid "Glowing Metal" +msgstr "Metallo lucidato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:80 -msgctxt "Palette" -msgid "palegoldenrod (#EEE8AA)" -msgstr "" +#: ../share/filters/filters.svg.h:164 +msgid "Glowing metal texture" +msgstr "Texture metallica con alone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:81 -msgctxt "Palette" -msgid "darkkhaki (#BDB76B)" -msgstr "" +#: ../share/filters/filters.svg.h:166 +msgid "Leaves" +msgstr "Foglie" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:82 -msgctxt "Palette" -msgid "beige (#F5F5DC)" -msgstr "" +#: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 +#: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 +#: ../share/extensions/pathscatter.inx.h:1 +msgid "Scatter" +msgstr "Sciame" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:83 -msgctxt "Palette" -msgid "lightgoldenrodyellow (#FAFAD2)" -msgstr "" +#: ../share/filters/filters.svg.h:168 +msgid "Leaves on the ground in Fall, or living foliage" +msgstr "Foglie cadute in autunno, o foglie vive" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:84 -msgctxt "Palette" -msgid "olive (#808000)" -msgstr "" +#: ../share/filters/filters.svg.h:170 +#: ../src/extension/internal/filter/paint.h:339 +msgid "Translucent" +msgstr "Traslucido" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:85 -msgctxt "Palette" -msgid "yellow (#FFFF00)" +#: ../share/filters/filters.svg.h:172 +msgid "Illuminated translucent plastic or glass effect" +msgstr "Vetro o plastica lucidi e illuminati" + +#: ../share/filters/filters.svg.h:174 +#, fuzzy +msgid "Iridescent Beeswax" +msgstr "Cera d'api iridescente" + +#: ../share/filters/filters.svg.h:176 +msgid "Waxy texture which keeps its iridescence through color fill change" msgstr "" +"Texture ondulata che mantiene l'iridescenza con cambiamenti del colore di " +"riempimento" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:86 -msgctxt "Palette" -msgid "lightyellow (#FFFFE0)" -msgstr "" +#: ../share/filters/filters.svg.h:178 +#, fuzzy +msgid "Eroded Metal" +msgstr "Metallo consumato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:87 -msgctxt "Palette" -msgid "ivory (#FFFFF0)" -msgstr "" +#: ../share/filters/filters.svg.h:180 +msgid "Eroded metal texture with ridges, grooves, holes and bumps" +msgstr "Texture a metallo consumato con sporgenze, buchi, aloni e righe" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:88 -msgctxt "Palette" -msgid "olivedrab (#6B8E23)" -msgstr "" +#: ../share/filters/filters.svg.h:182 +msgid "Cracked Lava" +msgstr "Magma frammentato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:89 -msgctxt "Palette" -msgid "yellowgreen (#9ACD32)" -msgstr "" +#: ../share/filters/filters.svg.h:184 +msgid "A volcanic texture, a little like leather" +msgstr "Una texture magmatica, simile al cuoio" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:90 -msgctxt "Palette" -msgid "darkolivegreen (#556B2F)" +#: ../share/filters/filters.svg.h:186 +msgid "Bark" msgstr "" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:91 -msgctxt "Palette" -msgid "greenyellow (#ADFF2F)" -msgstr "" +#: ../share/filters/filters.svg.h:188 +msgid "Bark texture, vertical; use with deep colors" +msgstr "Texture a corteccia, verticale; usare con colori scuri" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:92 -msgctxt "Palette" -msgid "chartreuse (#7FFF00)" -msgstr "" +#: ../share/filters/filters.svg.h:190 +#, fuzzy +msgid "Lizard Skin" +msgstr "Pelle di lucertola" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:93 -msgctxt "Palette" -msgid "lawngreen (#7CFC00)" -msgstr "" +#: ../share/filters/filters.svg.h:192 +msgid "Stylized reptile skin texture" +msgstr "Texture stilizzata come pelle di rettile" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:94 -msgctxt "Palette" -msgid "darkseagreen (#8FBC8F)" -msgstr "" +#: ../share/filters/filters.svg.h:194 +#, fuzzy +msgid "Stone Wall" +msgstr "Muro in pietra" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:95 -msgctxt "Palette" -msgid "forestgreen (#228B22)" -msgstr "" +#: ../share/filters/filters.svg.h:196 +msgid "Stone wall texture to use with not too saturated colors" +msgstr "Texture a muro di pietra, da usare con colori non troppo saturi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:96 -msgctxt "Palette" -msgid "limegreen (#32CD32)" -msgstr "" +#: ../share/filters/filters.svg.h:198 +#, fuzzy +msgid "Silk Carpet" +msgstr "Tappeto di seta" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:97 -msgctxt "Palette" -msgid "lightgreen (#90EE90)" -msgstr "" +#: ../share/filters/filters.svg.h:200 +msgid "Silk carpet texture, horizontal stripes" +msgstr "Texture a tappeto di seta, con strisce orizzontali" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:98 -msgctxt "Palette" -msgid "palegreen (#98FB98)" -msgstr "" +#: ../share/filters/filters.svg.h:202 +#, fuzzy +msgid "Refractive Gel A" +msgstr "Gel rifrangente A" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:99 -msgctxt "Palette" -msgid "darkgreen (#006400)" -msgstr "" +#: ../share/filters/filters.svg.h:204 +msgid "Gel effect with light refraction" +msgstr "Effetto gel con debole rifrazione" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:100 -msgctxt "Palette" -msgid "green (#008000)" -msgstr "" +#: ../share/filters/filters.svg.h:206 +#, fuzzy +msgid "Refractive Gel B" +msgstr "Gel rifrangente B" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:101 -msgctxt "Palette" -msgid "lime (#00FF00)" -msgstr "" +#: ../share/filters/filters.svg.h:208 +msgid "Gel effect with strong refraction" +msgstr "Effetto gel con forte rifrazione" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:102 -msgctxt "Palette" -msgid "honeydew (#F0FFF0)" -msgstr "" +#: ../share/filters/filters.svg.h:210 +#, fuzzy +msgid "Metallized Paint" +msgstr "Vernice metallizzata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:103 -msgctxt "Palette" -msgid "seagreen (#2E8B57)" +#: ../share/filters/filters.svg.h:212 +msgid "" +"Metallized effect with a soft lighting, slightly translucent at the edges" msgstr "" +"Effetto metallizzato con tenue illuminazione, leggermente traslucido ai bordi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:104 -msgctxt "Palette" -msgid "mediumseagreen (#3CB371)" -msgstr "" +#: ../share/filters/filters.svg.h:214 +msgid "Dragee" +msgstr "Confetti" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:105 -msgctxt "Palette" -msgid "springgreen (#00FF7F)" -msgstr "" +#: ../share/filters/filters.svg.h:216 +msgid "Gel Ridge with a pearlescent look" +msgstr "Cresta gelatinosa con un effetto perlaceo" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:106 -msgctxt "Palette" -msgid "mintcream (#F5FFFA)" -msgstr "" +#: ../share/filters/filters.svg.h:218 +#, fuzzy +msgid "Raised Border" +msgstr "Bordo rialzato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:107 -msgctxt "Palette" -msgid "mediumspringgreen (#00FA9A)" -msgstr "" +#: ../share/filters/filters.svg.h:220 +msgid "Strongly raised border around a flat surface" +msgstr "Bordo molto sporgente da una superficie piatta" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:108 -msgctxt "Palette" -msgid "mediumaquamarine (#66CDAA)" -msgstr "" +#: ../share/filters/filters.svg.h:222 +#, fuzzy +msgid "Metallized Ridge" +msgstr "Cresta metallizzata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:109 -msgctxt "Palette" -msgid "aquamarine (#7FFFD4)" -msgstr "" +#: ../share/filters/filters.svg.h:224 +msgid "Gel Ridge metallized at its top" +msgstr "Cresta gelatinosa con punta metallizzata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:110 -msgctxt "Palette" -msgid "turquoise (#40E0D0)" -msgstr "" +#: ../share/filters/filters.svg.h:226 +#, fuzzy +msgid "Fat Oil" +msgstr "Copertura oleosa" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:111 -msgctxt "Palette" -msgid "lightseagreen (#20B2AA)" -msgstr "" +#: ../share/filters/filters.svg.h:228 +msgid "Fat oil with some adjustable turbulence" +msgstr "Copertura oleosa con turbolenza variabile" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:112 -msgctxt "Palette" -msgid "mediumturquoise (#48D1CC)" -msgstr "" +#: ../share/filters/filters.svg.h:230 +#, fuzzy +msgid "Black Hole" +msgstr "Buco nero" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:113 -msgctxt "Palette" -msgid "darkslategray (#2F4F4F)" -msgstr "" +#: ../share/filters/filters.svg.h:231 ../share/filters/filters.svg.h:275 +#: ../share/filters/filters.svg.h:279 ../share/filters/filters.svg.h:835 +#: ../share/filters/filters.svg.h:839 ../share/filters/filters.svg.h:843 +#: ../src/extension/internal/filter/morphology.h:76 +#: ../src/extension/internal/filter/morphology.h:203 +#: ../src/filter-enums.cpp:31 +msgid "Morphology" +msgstr "Morfologia" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:114 -msgctxt "Palette" -msgid "paleturquoise (#AFEEEE)" -msgstr "" +#: ../share/filters/filters.svg.h:232 +msgid "Creates a black light inside and outside" +msgstr "Crea una luce scura all'interno e all'esterno" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:115 -msgctxt "Palette" -msgid "teal (#008080)" -msgstr "" +#: ../share/filters/filters.svg.h:234 +msgid "Cubes" +msgstr "Cubi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:116 -msgctxt "Palette" -msgid "darkcyan (#008B8B)" -msgstr "" +#: ../share/filters/filters.svg.h:236 +msgid "Scattered cubes; adjust the Morphology primitive to vary size" +msgstr "Cubi sparsi; dimensione regolabile tramite il filtro Morfologia" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:117 -msgctxt "Palette" -msgid "cyan (#00FFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:238 +#, fuzzy +msgid "Peel Off" +msgstr "Strappi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:118 -msgctxt "Palette" -msgid "lightcyan (#E0FFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:240 +msgid "Peeling painting on a wall" +msgstr "Carta da parati strappata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:119 -msgctxt "Palette" -msgid "azure (#F0FFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:242 +#, fuzzy +msgid "Gold Splatter" +msgstr "Spruzzi dorati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:120 -msgctxt "Palette" -msgid "darkturquoise (#00CED1)" -msgstr "" +#: ../share/filters/filters.svg.h:244 +msgid "Splattered cast metal, with golden highlights" +msgstr "Stampo metallico a spruzzi, con riflessi dorati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:121 -msgctxt "Palette" -msgid "cadetblue (#5F9EA0)" -msgstr "" +#: ../share/filters/filters.svg.h:246 +#, fuzzy +msgid "Gold Paste" +msgstr "Campiture dorate" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:122 -msgctxt "Palette" -msgid "powderblue (#B0E0E6)" -msgstr "" +#: ../share/filters/filters.svg.h:248 +msgid "Fat pasted cast metal, with golden highlights" +msgstr "Stampo metallico a campiture, con riflessi dorati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:123 -msgctxt "Palette" -msgid "lightblue (#ADD8E6)" -msgstr "" +#: ../share/filters/filters.svg.h:250 +#, fuzzy +msgid "Crumpled Plastic" +msgstr "Plastica spiegazzata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:124 -msgctxt "Palette" -msgid "deepskyblue (#00BFFF)" -msgstr "" +#: ../share/filters/filters.svg.h:252 +msgid "Crumpled matte plastic, with melted edge" +msgstr "Plastica spiegazzata opaca, con bordi fusi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:125 -msgctxt "Palette" -msgid "skyblue (#87CEEB)" -msgstr "" +#: ../share/filters/filters.svg.h:254 +#, fuzzy +msgid "Enamel Jewelry" +msgstr "Gioielli smaltati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:126 -msgctxt "Palette" -msgid "lightskyblue (#87CEFA)" -msgstr "" +#: ../share/filters/filters.svg.h:256 +msgid "Slightly cracked enameled texture" +msgstr "Texture smaltata con leggere striature" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:127 -msgctxt "Palette" -msgid "steelblue (#4682B4)" -msgstr "" +#: ../share/filters/filters.svg.h:258 +#, fuzzy +msgid "Rough Paper" +msgstr "Carta grezza" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:128 -msgctxt "Palette" -msgid "aliceblue (#F0F8FF)" -msgstr "" +#: ../share/filters/filters.svg.h:260 +msgid "Aquarelle paper effect which can be used for pictures as for objects" +msgstr "Carta acquarellata, usabile per oggetti o immagini" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:129 -msgctxt "Palette" -msgid "dodgerblue (#1E90FF)" -msgstr "" +#: ../share/filters/filters.svg.h:262 +#, fuzzy +msgid "Rough and Glossy" +msgstr "Grezza e patinata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:130 -msgctxt "Palette" -msgid "slategray (#708090)" -msgstr "" +#: ../share/filters/filters.svg.h:264 +msgid "" +"Crumpled glossy paper effect which can be used for pictures as for objects" +msgstr "Carta stropicciata e patinata, può essere usa per oggetti o immagini" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:131 -msgctxt "Palette" -msgid "lightslategray (#778899)" -msgstr "" +#: ../share/filters/filters.svg.h:266 +#, fuzzy +msgid "In and Out" +msgstr "Dentro e fuori" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:132 -msgctxt "Palette" -msgid "lightsteelblue (#B0C4DE)" -msgstr "" +#: ../share/filters/filters.svg.h:268 +msgid "Inner colorized shadow, outer black shadow" +msgstr "Ombra interna colorabile, ombra scura esterna" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:133 -msgctxt "Palette" -msgid "cornflowerblue (#6495ED)" -msgstr "" +#: ../share/filters/filters.svg.h:270 +#, fuzzy +msgid "Air Spray" +msgstr "Nebulizzatore" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:134 -msgctxt "Palette" -msgid "royalblue (#4169E1)" -msgstr "" +#: ../share/filters/filters.svg.h:272 +msgid "Convert to small scattered particles with some thickness" +msgstr "Converte in piccole particelle sparse dotate di spessore" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:135 -msgctxt "Palette" -msgid "midnightblue (#191970)" -msgstr "" +#: ../share/filters/filters.svg.h:274 +#, fuzzy +msgid "Warm Inside" +msgstr "Calore interno" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:136 -msgctxt "Palette" -msgid "lavender (#E6E6FA)" -msgstr "" +#: ../share/filters/filters.svg.h:276 +msgid "Blurred colorized contour, filled inside" +msgstr "Contorno sfumato colorabile, riempimento interno" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:137 -msgctxt "Palette" -msgid "navy (#000080)" -msgstr "" +#: ../share/filters/filters.svg.h:278 +#, fuzzy +msgid "Cool Outside" +msgstr "Esterno freddo" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:138 -msgctxt "Palette" -msgid "darkblue (#00008B)" -msgstr "" +#: ../share/filters/filters.svg.h:280 +msgid "Blurred colorized contour, empty inside" +msgstr "Contorno sfumato colorabile, interno vuoto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:139 -msgctxt "Palette" -msgid "mediumblue (#0000CD)" -msgstr "" +#: ../share/filters/filters.svg.h:282 +#, fuzzy +msgid "Electronic Microscopy" +msgstr "Microscopio elettronico" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:140 -msgctxt "Palette" -msgid "blue (#0000FF)" +#: ../share/filters/filters.svg.h:284 +msgid "" +"Bevel, crude light, discoloration and glow like in electronic microscopy" msgstr "" +"Luce fredda, opaca, scolorata e smussature come in un microscopio elettronico" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:141 -msgctxt "Palette" -msgid "ghostwhite (#F8F8FF)" -msgstr "" +#: ../share/filters/filters.svg.h:286 +msgid "Tartan" +msgstr "Tartan" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:142 -msgctxt "Palette" -msgid "slateblue (#6A5ACD)" -msgstr "" +#: ../share/filters/filters.svg.h:288 +msgid "Checkered tartan pattern" +msgstr "Tartan con trama quadrettata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:143 -msgctxt "Palette" -msgid "darkslateblue (#483D8B)" -msgstr "" +#: ../share/filters/filters.svg.h:290 +#, fuzzy +msgid "Shaken Liquid" +msgstr "Liquido agitato" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:144 -msgctxt "Palette" -msgid "mediumslateblue (#7B68EE)" -msgstr "" +#: ../share/filters/filters.svg.h:292 +msgid "Colorizable filling with flow inside like transparency" +msgstr "Riempimento colorabile con flussi interni in trasparenza" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:145 -msgctxt "Palette" -msgid "mediumpurple (#9370DB)" -msgstr "" +#: ../share/filters/filters.svg.h:294 +#, fuzzy +msgid "Soft Focus Lens" +msgstr "Lente focale leggera" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:146 -msgctxt "Palette" -msgid "blueviolet (#8A2BE2)" -msgstr "" +#: ../share/filters/filters.svg.h:296 +msgid "Glowing image content without blurring it" +msgstr "Aggiunge bagliore all'immagine senza sfuocarla" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:147 -msgctxt "Palette" -msgid "indigo (#4B0082)" -msgstr "" +#: ../share/filters/filters.svg.h:298 +#, fuzzy +msgid "Stained Glass" +msgstr "Vetro rotto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:148 -msgctxt "Palette" -msgid "darkorchid (#9932CC)" -msgstr "" +#: ../share/filters/filters.svg.h:300 +msgid "Illuminated stained glass effect" +msgstr "Vetrata illuminata" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:149 -msgctxt "Palette" -msgid "darkviolet (#9400D3)" -msgstr "" +#: ../share/filters/filters.svg.h:302 +#, fuzzy +msgid "Dark Glass" +msgstr "Vetro scuro" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:150 -msgctxt "Palette" -msgid "mediumorchid (#BA55D3)" -msgstr "" +#: ../share/filters/filters.svg.h:304 +msgid "Illuminated glass effect with light coming from beneath" +msgstr "Vetro illuminato da sotto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:151 -msgctxt "Palette" -msgid "thistle (#D8BFD8)" -msgstr "" +#: ../share/filters/filters.svg.h:306 +#, fuzzy +msgid "HSL Bumps Alpha" +msgstr "Rughe HSL e alpha" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:152 -msgctxt "Palette" -msgid "plum (#DDA0DD)" -msgstr "" +#: ../share/filters/filters.svg.h:308 +msgid "Same as HSL Bumps but with transparent highlights" +msgstr "Come Rughe HSL, ma con riflessi trasparenti" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:153 -msgctxt "Palette" -msgid "violet (#EE82EE)" -msgstr "" +#: ../share/filters/filters.svg.h:310 +#, fuzzy +msgid "Bubbly Bumps Alpha" +msgstr "Rughe a bolle, con trasparenza" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:154 -msgctxt "Palette" -msgid "purple (#800080)" -msgstr "" +#: ../share/filters/filters.svg.h:312 +msgid "Same as Bubbly Bumps but with transparent highlights" +msgstr "Come Rughe a bolle, ma con un riflesso trasparente" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:155 -msgctxt "Palette" -msgid "darkmagenta (#8B008B)" -msgstr "" +#: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 +#, fuzzy +msgid "Torn Edges" +msgstr "Contorni frastagliati" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:156 -msgctxt "Palette" -msgid "magenta (#FF00FF)" -msgstr "" +#: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 +msgid "" +"Displace the outside of shapes and pictures without altering their content" +msgstr "Scosta l'esterno di forme e immagine senza alterare il contenuto" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:157 -msgctxt "Palette" -msgid "orchid (#DA70D6)" -msgstr "" +#: ../share/filters/filters.svg.h:318 +#, fuzzy +msgid "Roughen Inside" +msgstr "Interno nitido" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:158 -msgctxt "Palette" -msgid "mediumvioletred (#C71585)" -msgstr "" +#: ../share/filters/filters.svg.h:320 +msgid "Roughen all inside shapes" +msgstr "Interni delle forme piĂą nitidi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:159 -msgctxt "Palette" -msgid "deeppink (#FF1493)" -msgstr "" +#: ../share/filters/filters.svg.h:322 +msgid "Evanescent" +msgstr "Evanescente" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:160 -msgctxt "Palette" -msgid "hotpink (#FF69B4)" +#: ../share/filters/filters.svg.h:324 +msgid "" +"Blur the contents of objects, preserving the outline and adding progressive " +"transparency at edges" msgstr "" +"Sfuma il contenuto dell'oggetto, preservando il contorno e aggiungendo una " +"trasparenza progressiva ai bordi" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:161 -msgctxt "Palette" -msgid "lavenderblush (#FFF0F5)" -msgstr "" +#: ../share/filters/filters.svg.h:326 +#, fuzzy +msgid "Chalk and Sponge" +msgstr "Gesso e spugna" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:162 -msgctxt "Palette" -msgid "palevioletred (#DB7093)" -msgstr "" +#: ../share/filters/filters.svg.h:328 +msgid "Low turbulence gives sponge look and high turbulence chalk" +msgstr "Una bassa turbolenza per un effetto spugna, alta per effetto gesso" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:163 -msgctxt "Palette" -msgid "crimson (#DC143C)" -msgstr "" +#: ../share/filters/filters.svg.h:330 +msgid "People" +msgstr "Persone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:164 -msgctxt "Palette" -msgid "pink (#FFC0CB)" -msgstr "" +#: ../share/filters/filters.svg.h:332 +msgid "Colorized blotches, like a crowd of people" +msgstr "Macchie colorate, simile a una folla di persone" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:165 -msgctxt "Palette" -msgid "lightpink (#FFB6C1)" +#: ../share/filters/filters.svg.h:334 +msgid "Scotland" +msgstr "Tartan" + +#: ../share/filters/filters.svg.h:336 +msgid "Colorized mountain tops out of the fog" +msgstr "Montagna colorata con la cima annuvolata" + +#: ../share/filters/filters.svg.h:338 +msgid "Garden of Delights" +msgstr "Giardino delle delizie" + +#: ../share/filters/filters.svg.h:340 +msgid "" +"Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" msgstr "" +"Ammasso fantasmagorico e turbolento, come nel Giardino delle Delizie di " +"Hieronymus Bosch" -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:166 -msgctxt "Palette" -msgid "rebeccapurple (#663399)" +#: ../share/filters/filters.svg.h:342 +msgid "Cutout Glow" +msgstr "Alone netto" + +#: ../share/filters/filters.svg.h:344 +msgid "In and out glow with a possible offset and colorizable flood" msgstr "" +"Alone interno e esterno con riempimento colorabile ed eventuale spiazzamento" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:167 +#: ../share/filters/filters.svg.h:346 +msgid "Dark Emboss" +msgstr "Rilievo scuro" + +#: ../share/filters/filters.svg.h:348 +msgid "Emboss effect : 3D relief where white is replaced by black" +msgstr "Rilievo: effetto 3D dove il bianco è rimpiazzato col nero" + +#: ../share/filters/filters.svg.h:350 #, fuzzy -msgctxt "Palette" -msgid "Butter 1" -msgstr "Estremo geometrico" +msgid "Bubbly Bumps Matte" +msgstr "Rughe a bolle, opache" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:168 +#: ../share/filters/filters.svg.h:352 +msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" +msgstr "Come rughe a bolle ma con un'illuminazione diffusa anzichĂ© speculare" + +#: ../share/filters/filters.svg.h:354 #, fuzzy -msgctxt "Palette" -msgid "Butter 2" -msgstr "Estremo geometrico" +msgid "Blotting Paper" +msgstr "Carta macchiata" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:169 +#: ../share/filters/filters.svg.h:356 +msgid "Inkblot on blotting paper" +msgstr "Macchie d'inchiostro su carta" + +#: ../share/filters/filters.svg.h:358 #, fuzzy -msgctxt "Palette" -msgid "Butter 3" -msgstr "Estremo geometrico" +msgid "Wax Print" +msgstr "Dipinto a cera" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:170 -msgctxt "Palette" -msgid "Chameleon 1" -msgstr "" +#: ../share/filters/filters.svg.h:360 +msgid "Wax print on tissue texture" +msgstr "Texture stampa a cera su tessuto" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:171 -msgctxt "Palette" -msgid "Chameleon 2" -msgstr "" +#: ../share/filters/filters.svg.h:366 +msgid "Watercolor" +msgstr "Colore ad acqua" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:172 -msgctxt "Palette" -msgid "Chameleon 3" +#: ../share/filters/filters.svg.h:368 +msgid "Cloudy watercolor effect" +msgstr "Effetto nuvola acquerellata" + +#: ../share/filters/filters.svg.h:370 +msgid "Felt" +msgstr "Feltro" + +#: ../share/filters/filters.svg.h:372 +msgid "" +"Felt like texture with color turbulence and slightly darker at the edges" msgstr "" +"Texture simile a feltro con turbolenza colorata e leggermente piĂą scura ai " +"bordi" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:173 +#: ../share/filters/filters.svg.h:374 #, fuzzy -msgctxt "Palette" -msgid "Orange 1" -msgstr "Ordinamento" +msgid "Ink Paint" +msgstr "Disegno a china" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:174 -#, fuzzy -msgctxt "Palette" -msgid "Orange 2" -msgstr "Ordinamento" +#: ../share/filters/filters.svg.h:376 +msgid "Ink paint on paper with some turbulent color shift" +msgstr "Inchiostro su carta con variazioni di colore turbolente" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:175 +#: ../share/filters/filters.svg.h:378 #, fuzzy -msgctxt "Palette" -msgid "Orange 3" -msgstr "Ordinamento" +msgid "Tinted Rainbow" +msgstr "Arcobaleno tinto" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:176 -msgctxt "Palette" -msgid "Sky Blue 1" -msgstr "" +#: ../share/filters/filters.svg.h:380 +msgid "Smooth rainbow colors melted along the edges and colorizable" +msgstr "Arcobaleno di colori, fuso lungo i bordi e colorabile" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:177 -msgctxt "Palette" -msgid "Sky Blue 2" -msgstr "" +#: ../share/filters/filters.svg.h:382 +#, fuzzy +msgid "Melted Rainbow" +msgstr "Arcobaleno fuso" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:178 -msgctxt "Palette" -msgid "Sky Blue 3" -msgstr "" +#: ../share/filters/filters.svg.h:384 +msgid "Smooth rainbow colors slightly melted along the edges" +msgstr "Arcobaleno di colori, leggermente fuso lungo i bordi" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:179 -msgctxt "Palette" -msgid "Plum 1" -msgstr "" +#: ../share/filters/filters.svg.h:386 +#, fuzzy +msgid "Flex Metal" +msgstr "Metallo colato" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:180 -msgctxt "Palette" -msgid "Plum 2" -msgstr "" +#: ../share/filters/filters.svg.h:388 +msgid "Bright, polished uneven metal casting, colorizable" +msgstr "Colata metallica irregolare e brillante, colorabile" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:181 -msgctxt "Palette" -msgid "Plum 3" -msgstr "" +#: ../share/filters/filters.svg.h:390 +#, fuzzy +msgid "Wavy Tartan" +msgstr "Tartan increspato" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:182 -msgctxt "Palette" -msgid "Chocolate 1" -msgstr "" +#: ../share/filters/filters.svg.h:392 +msgid "Tartan pattern with a wavy displacement and bevel around the edges" +msgstr "Motivo a tartan con spostamento a onde e smussatura ai bordi" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:183 -msgctxt "Palette" -msgid "Chocolate 2" -msgstr "" +#: ../share/filters/filters.svg.h:394 +#, fuzzy +msgid "3D Marble" +msgstr "Marmo 3D" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:184 -msgctxt "Palette" -msgid "Chocolate 3" +#: ../share/filters/filters.svg.h:396 +msgid "3D warped marble texture" +msgstr "Texture marmorea convoluta 3D" + +#: ../share/filters/filters.svg.h:398 +msgid "3D Wood" msgstr "" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:185 -#, fuzzy -msgctxt "Palette" -msgid "Scarlet Red 1" -msgstr "ModalitĂ  ridimensionamento" +#: ../share/filters/filters.svg.h:400 +msgid "3D warped, fibered wood texture" +msgstr "Texture convoluta 3D, legno fibroso" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:186 +#: ../share/filters/filters.svg.h:402 #, fuzzy -msgctxt "Palette" -msgid "Scarlet Red 2" -msgstr "ModalitĂ  ridimensionamento" +msgid "3D Mother of Pearl" +msgstr "Madreperla 3D" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:187 +#: ../share/filters/filters.svg.h:404 +msgid "3D warped, iridescent pearly shell texture" +msgstr "Texture convoluta 3D, perlaceo iridescente" + +#: ../share/filters/filters.svg.h:406 #, fuzzy -msgctxt "Palette" -msgid "Scarlet Red 3" -msgstr "ModalitĂ  ridimensionamento" +msgid "Tiger Fur" +msgstr "Pelo di tigre" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:188 +#: ../share/filters/filters.svg.h:408 +msgid "Tiger fur pattern with folds and bevel around the edges" +msgstr "Motivo tigrati con pieghe e smussature lungo i bordi" + +#: ../share/filters/filters.svg.h:410 +msgid "Black Light" +msgstr "Luce nera" + +#: ../share/filters/filters.svg.h:411 ../share/filters/filters.svg.h:575 +#: ../share/filters/filters.svg.h:587 ../share/filters/filters.svg.h:627 +#: ../share/filters/filters.svg.h:631 ../share/filters/filters.svg.h:819 +#: ../share/filters/filters.svg.h:827 ../share/filters/filters.svg.h:831 +#: ../src/extension/internal/bitmap/colorize.cpp:52 +#: ../src/extension/internal/filter/bumps.h:101 +#: ../src/extension/internal/filter/bumps.h:321 +#: ../src/extension/internal/filter/bumps.h:328 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:164 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:262 +#: ../src/extension/internal/filter/color.h:340 +#: ../src/extension/internal/filter/color.h:347 +#: ../src/extension/internal/filter/color.h:437 +#: ../src/extension/internal/filter/color.h:532 +#: ../src/extension/internal/filter/color.h:654 +#: ../src/extension/internal/filter/color.h:751 +#: ../src/extension/internal/filter/color.h:830 +#: ../src/extension/internal/filter/color.h:921 +#: ../src/extension/internal/filter/color.h:1049 +#: ../src/extension/internal/filter/color.h:1119 +#: ../src/extension/internal/filter/color.h:1212 +#: ../src/extension/internal/filter/color.h:1324 +#: ../src/extension/internal/filter/color.h:1429 +#: ../src/extension/internal/filter/color.h:1505 +#: ../src/extension/internal/filter/color.h:1609 +#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/morphology.h:194 +#: ../src/extension/internal/filter/overlays.h:73 +#: ../src/extension/internal/filter/paint.h:99 +#: ../src/extension/internal/filter/paint.h:713 +#: ../src/extension/internal/filter/paint.h:717 +#: ../src/extension/internal/filter/shadows.h:73 +#: ../src/extension/internal/filter/transparency.h:345 +#: ../src/filter-enums.cpp:66 ../src/ui/dialog/clonetiler.cpp:832 +#: ../src/ui/dialog/clonetiler.cpp:983 +#: ../src/ui/dialog/document-properties.cpp:157 +#: ../share/extensions/color_HSL_adjust.inx.h:20 +#: ../share/extensions/color_blackandwhite.inx.h:3 +#: ../share/extensions/color_brighter.inx.h:2 +#: ../share/extensions/color_custom.inx.h:15 +#: ../share/extensions/color_darker.inx.h:2 +#: ../share/extensions/color_desaturate.inx.h:2 +#: ../share/extensions/color_grayscale.inx.h:2 +#: ../share/extensions/color_lesshue.inx.h:2 +#: ../share/extensions/color_lesslight.inx.h:2 +#: ../share/extensions/color_lesssaturation.inx.h:2 +#: ../share/extensions/color_morehue.inx.h:2 +#: ../share/extensions/color_morelight.inx.h:2 +#: ../share/extensions/color_moresaturation.inx.h:2 +#: ../share/extensions/color_negative.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:8 +#: ../share/extensions/color_removeblue.inx.h:2 +#: ../share/extensions/color_removegreen.inx.h:2 +#: ../share/extensions/color_removered.inx.h:2 +#: ../share/extensions/color_replace.inx.h:6 +#: ../share/extensions/color_rgbbarrel.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:19 +msgid "Color" +msgstr "Colore" + +#: ../share/filters/filters.svg.h:412 +msgid "Light areas turn to black" +msgstr "Le aree chiare diventano nere" + +#: ../share/filters/filters.svg.h:414 #, fuzzy -msgctxt "Palette" -msgid "Snowy White" -msgstr "Bianco" +msgid "Film Grain" +msgstr "Pellicola a grani" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:189 +#: ../share/filters/filters.svg.h:416 +msgid "Adds a small scale graininess" +msgstr "Aggiunge una leggere granularitĂ " + +#: ../share/filters/filters.svg.h:418 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 1" -msgstr "Alluminio" +msgid "Plaster Color" +msgstr "Incolla colore" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:190 +#: ../share/filters/filters.svg.h:420 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 2" -msgstr "Alluminio" +msgid "Colored plaster emboss effect" +msgstr "Effetto nuvola acquerellata" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:191 +#: ../share/filters/filters.svg.h:422 +msgid "Velvet Bumps" +msgstr "Rughe vellutate" + +#: ../share/filters/filters.svg.h:424 +msgid "Gives Smooth Bumps velvet like" +msgstr "Crea rughe soffici ad effetto velluto" + +#: ../share/filters/filters.svg.h:426 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 3" -msgstr "Alluminio" +msgid "Comics Cream" +msgstr "Fumetto crema" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:192 +#: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 +#: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 +#: ../share/filters/filters.svg.h:739 ../share/filters/filters.svg.h:743 +#: ../share/filters/filters.svg.h:747 ../share/filters/filters.svg.h:751 +#: ../share/filters/filters.svg.h:755 ../share/filters/filters.svg.h:759 +#: ../share/filters/filters.svg.h:763 ../share/filters/filters.svg.h:767 +#: ../share/filters/filters.svg.h:771 ../share/filters/filters.svg.h:775 +#: ../share/filters/filters.svg.h:779 ../share/filters/filters.svg.h:783 +#: ../share/filters/filters.svg.h:787 ../share/filters/filters.svg.h:791 +#: ../share/filters/filters.svg.h:795 +msgid "Non realistic 3D shaders" +msgstr "Shader 3D non realistici" + +#: ../share/filters/filters.svg.h:428 +msgid "Comics shader with creamy waves transparency" +msgstr "Shader a fumetto con onde cremose in trasparenza" + +#: ../share/filters/filters.svg.h:430 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 4" -msgstr "Alluminio" +msgid "Chewing Gum" +msgstr "Chewing gum" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:193 +#: ../share/filters/filters.svg.h:432 +msgid "" +"Creates colorizable blotches which smoothly flow over the edges of the lines " +"at their crossings" +msgstr "" +"Crea macchie colorabili che fluiscono dolcemente lungo i bordi delle linee " +"dai punti di intersezione" + +#: ../share/filters/filters.svg.h:434 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 5" -msgstr "Alluminio" +msgid "Dark And Glow" +msgstr "Scuro e con alone" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:194 +#: ../share/filters/filters.svg.h:436 +msgid "Darkens the edge with an inner blur and adds a flexible glow" +msgstr "" +"Scurisce il bordo con una sfocatura interna e aggiunge un alone controllabile" + +#: ../share/filters/filters.svg.h:438 #, fuzzy -msgctxt "Palette" -msgid "Aluminium 6" -msgstr "Alluminio" +msgid "Warped Rainbow" +msgstr "Arcobaleno distorto" -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:195 +#: ../share/filters/filters.svg.h:440 +msgid "Smooth rainbow colors warped along the edges and colorizable" +msgstr "Arcobaleno colorato deformato lungo i bordi e colorabile" + +#: ../share/filters/filters.svg.h:442 #, fuzzy -msgctxt "Palette" -msgid "Jet Black" -msgstr "Nero" +msgid "Rough and Dilate" +msgstr "Espansione con increspature" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:2 -msgctxt "Symbol" -msgid "AIGA Symbol Signs" -msgstr "" +#: ../share/filters/filters.svg.h:444 +msgid "Create a turbulent contour around" +msgstr "Crea un contorno turbolento attorno" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 -msgctxt "Symbol" -msgid "Telephone" -msgstr "" +#: ../share/filters/filters.svg.h:446 +#, fuzzy +msgid "Old Postcard" +msgstr "Cartolina antica" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 -msgctxt "Symbol" -msgid "Mail" +#: ../share/filters/filters.svg.h:448 +msgid "Slightly posterize and draw edges like on old printed postcards" msgstr "" +"Posterizza leggermente e disegna i bordi come nelle vecchie cartoline " +"stampate" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 +#: ../share/filters/filters.svg.h:450 #, fuzzy -msgctxt "Symbol" -msgid "Currency Exchange" -msgstr "Livello attuale" +msgid "Dots Transparency" +msgstr "Puntinatura in trasparenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 -msgctxt "Symbol" -msgid "Currency Exchange - Euro" -msgstr "" +#: ../share/filters/filters.svg.h:452 +msgid "Gives a pointillist HSL sensitive transparency" +msgstr "Produce una trasparenza con HSL regolabili in stile puntinista" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 -msgctxt "Symbol" -msgid "Cashier" -msgstr "" +#: ../share/filters/filters.svg.h:454 +#, fuzzy +msgid "Canvas Transparency" +msgstr "Tela in trasparenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 +#: ../share/filters/filters.svg.h:456 #, fuzzy -msgctxt "Symbol" -msgid "First Aid" -msgstr "Primo selezionato" +msgid "Gives a canvas like HSL sensitive transparency." +msgstr "Produce una trasparenza con HSL regolabili simile alla tela" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 +#: ../share/filters/filters.svg.h:458 #, fuzzy -msgctxt "Symbol" -msgid "Lost and Found" -msgstr "Non arrotondato" +msgid "Smear Transparency" +msgstr "Sbavatura in trasparenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 -msgctxt "Symbol" -msgid "Coat Check" +#: ../share/filters/filters.svg.h:460 +msgid "" +"Paint objects with a transparent turbulence which turns around color edges" msgstr "" +"Dipinge l'oggetto con una turbolenza trasparente che gira attorno ai bordi " +"di colore" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 -msgctxt "Symbol" -msgid "Baggage Lockers" -msgstr "" +#: ../share/filters/filters.svg.h:462 +#, fuzzy +msgid "Thick Paint" +msgstr "Pittura densa" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 -msgctxt "Symbol" -msgid "Escalator" -msgstr "" +#: ../share/filters/filters.svg.h:464 +msgid "Thick painting effect with turbulence" +msgstr "Effetto pittura spessa con turbolenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 -msgctxt "Symbol" -msgid "Escalator Down" -msgstr "" +#: ../share/filters/filters.svg.h:466 +msgid "Burst" +msgstr "Palloncino scoppiato" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 -msgctxt "Symbol" -msgid "Escalator Up" -msgstr "" +#: ../share/filters/filters.svg.h:468 +msgid "Burst balloon texture crumpled and with holes" +msgstr "Texture a palloncino scoppiato con pieghe e buchi" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 -msgctxt "Symbol" -msgid "Stairs" +#: ../share/filters/filters.svg.h:470 +#, fuzzy +msgid "Embossed Leather" +msgstr "Pelle goffrata" + +#: ../share/filters/filters.svg.h:472 +msgid "" +"Combine a HSL edges detection bump with a leathery or woody and colorizable " +"texture" msgstr "" +"Combina Rughe HSL con rilevamento dei bordi con una texture legnosa o in " +"pelle colorabile" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 -msgctxt "Symbol" -msgid "Stairs Down" +#: ../share/filters/filters.svg.h:474 +msgid "Carnaval" +msgstr "Carnevale" + +#: ../share/filters/filters.svg.h:476 +msgid "White splotches evocating carnaval masks" +msgstr "Macchie bianche simili a quelle della maschere di carnevale" + +#: ../share/filters/filters.svg.h:478 +msgid "Plastify" +msgstr "Plastificato" + +#: ../share/filters/filters.svg.h:480 +msgid "" +"HSL edges detection bump with a wavy reflective surface effect and variable " +"crumple" msgstr "" +"Rughe HSL con rilevamento dei bordi con una superficie increspata " +"riflettente e pieghe adattabili" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 -msgctxt "Symbol" -msgid "Stairs Up" +#: ../share/filters/filters.svg.h:482 +msgid "Plaster" +msgstr "Gesso" + +#: ../share/filters/filters.svg.h:484 +msgid "" +"Combine a HSL edges detection bump with a matte and crumpled surface effect" msgstr "" +"Combina Rughe HSL con rilevamento dei bordi con una superficie stropicciata " +"e sbiadita" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 +#: ../share/filters/filters.svg.h:486 #, fuzzy -msgctxt "Symbol" -msgid "Elevator" -msgstr "Elevazione" +msgid "Rough Transparency" +msgstr "Trasparenza grezza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 -msgctxt "Symbol" -msgid "Toilets - Men" +#: ../share/filters/filters.svg.h:488 +msgid "Adds a turbulent transparency which displaces pixels at the same time" msgstr "" +"Aggiunge una turbolenza trasparente che sposta vari pixel contemporaneamente" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 -msgctxt "Symbol" -msgid "Toilets - Women" -msgstr "" +#: ../share/filters/filters.svg.h:490 +msgid "Gouache" +msgstr "Guazzo" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 -msgctxt "Symbol" -msgid "Toilets" -msgstr "" +#: ../share/filters/filters.svg.h:492 +msgid "Partly opaque water color effect with bleed" +msgstr "Effetto acqua colorata parzialmente opaca e con macchie" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 -#: ../share/symbols/symbols.h:227 -msgctxt "Symbol" -msgid "Nursery" -msgstr "" +#: ../share/filters/filters.svg.h:494 +#, fuzzy +msgid "Alpha Engraving" +msgstr "Incisione in trasparenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 -msgctxt "Symbol" -msgid "Drinking Fountain" +#: ../share/filters/filters.svg.h:496 +msgid "Gives a transparent engraving effect with rough line and filling" msgstr "" +"Aggiunge un effetto di incisione in trasparenza con linee e riempimenti " +"grezzi" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 +#: ../share/filters/filters.svg.h:498 #, fuzzy -msgctxt "Symbol" -msgid "Waiting Room" -msgstr "Script" +msgid "Alpha Draw Liquid" +msgstr "Disegno liquido in trasparenza" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 -#: ../share/symbols/symbols.h:308 -#, fuzzy -msgctxt "Symbol" -msgid "Information" -msgstr "Informazioni" +#: ../share/filters/filters.svg.h:500 +msgid "Gives a transparent fluid drawing effect with rough line and filling" +msgstr "" +"Aggiunge un effetto fluido e trasparente alle immagini con linee e " +"riempimenti grezzi" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 +#: ../share/filters/filters.svg.h:502 #, fuzzy -msgctxt "Symbol" -msgid "Hotel Information" -msgstr "Informazioni pagina" +msgid "Liquid Drawing" +msgstr "Pittura ad acqua" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 -#, fuzzy -msgctxt "Symbol" -msgid "Air Transportation" -msgstr "Trasformazione" +#: ../share/filters/filters.svg.h:504 +msgid "Gives a fluid and wavy expressionist drawing effect to images" +msgstr "Aggiunge un effetto espressionista fluido e ondulato alle immagini" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 -#: ../share/symbols/symbols.h:318 -msgctxt "Symbol" -msgid "Heliport" -msgstr "" +#: ../share/filters/filters.svg.h:506 +#, fuzzy +msgid "Marbled Ink" +msgstr "Inchiostro marmorizzato" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 -#: ../share/symbols/symbols.h:314 -msgctxt "Symbol" -msgid "Taxi" +#: ../share/filters/filters.svg.h:508 +msgid "Marbled transparency effect which conforms to image detected edges" msgstr "" +"Effetto marmoreo trasparente che si adatta ai bordi rilevati dell'immagine" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 +#: ../share/filters/filters.svg.h:510 #, fuzzy -msgctxt "Symbol" -msgid "Bus" -msgstr "Sfocature" +msgid "Thick Acrylic" +msgstr "Acrilico denso" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 -#, fuzzy -msgctxt "Symbol" -msgid "Ground Transportation" -msgstr "Trasformazione" +#: ../share/filters/filters.svg.h:512 +msgid "Thick acrylic paint texture with high texture depth" +msgstr "Texture acrilico denso con forte profonditĂ " -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 +#: ../share/filters/filters.svg.h:514 #, fuzzy -msgctxt "Symbol" -msgid "Rail Transportation" -msgstr "Trasformazione" +msgid "Alpha Engraving B" +msgstr "Incisione B in trasparenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 -#, fuzzy -msgctxt "Symbol" -msgid "Water Transportation" -msgstr "Trasformazione" +#: ../share/filters/filters.svg.h:516 +msgid "" +"Gives a controllable roughness engraving effect to bitmaps and materials" +msgstr "Aggiunge un effetto incisione grezza regolabile a immagine e materiali" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 -#: ../share/symbols/symbols.h:316 -msgctxt "Symbol" -msgid "Car Rental" -msgstr "" +#: ../share/filters/filters.svg.h:518 +msgid "Lapping" +msgstr "Lappatura" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 -#: ../share/symbols/symbols.h:228 -msgctxt "Symbol" -msgid "Restaurant" -msgstr "" +#: ../share/filters/filters.svg.h:520 +msgid "Something like a water noise" +msgstr "Simile ai disturbi dovuti all'acqua" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 -msgctxt "Symbol" -msgid "Coffeeshop" -msgstr "" +#: ../share/filters/filters.svg.h:522 +#, fuzzy +msgid "Monochrome Transparency" +msgstr "Trasparenza monocromatica" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 +#: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 +#: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 +#: ../share/filters/filters.svg.h:823 +#: ../src/extension/internal/filter/transparency.h:70 +#: ../src/extension/internal/filter/transparency.h:141 +#: ../src/extension/internal/filter/transparency.h:215 +#: ../src/extension/internal/filter/transparency.h:288 +#: ../src/extension/internal/filter/transparency.h:350 +msgid "Fill and Transparency" +msgstr "Riempimento e trasparenza" + +#: ../share/filters/filters.svg.h:524 +msgid "Convert to a colorizable transparent positive or negative" +msgstr "Converte in un negativo o positivo trasparente colorabile" + +#: ../share/filters/filters.svg.h:526 #, fuzzy -msgctxt "Symbol" -msgid "Bar" -msgstr "Corteccia" +msgid "Saturation Map" +msgstr "Mappa di saturazione" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 -msgctxt "Symbol" -msgid "Shops" +#: ../share/filters/filters.svg.h:528 +msgid "" +"Creates an approximative semi-transparent and colorizable image of the " +"saturation levels" msgstr "" +"Crea un'immagine approssimativa semi-trasparente e colorabile dei livelli di " +"saturazione" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 -msgctxt "Symbol" -msgid "Barber Shop - Beauty Salon" -msgstr "" +#: ../share/filters/filters.svg.h:530 +msgid "Riddled" +msgstr "Crivellato" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 -msgctxt "Symbol" -msgid "Barber Shop" -msgstr "" +#: ../share/filters/filters.svg.h:532 +msgid "Riddle the surface and add bump to images" +msgstr "Crivella la superficie e aggiunge rughe all'immagine" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 -msgctxt "Symbol" -msgid "Beauty Salon" -msgstr "" +#: ../share/filters/filters.svg.h:534 +#, fuzzy +msgid "Wrinkled Varnish" +msgstr "Smalto rugoso" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 -msgctxt "Symbol" -msgid "Ticket Purchase" -msgstr "" +#: ../share/filters/filters.svg.h:536 +msgid "Thick glossy and translucent paint texture with high depth" +msgstr "Texture di pittura traslucida spessa e con riflessi" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 -msgctxt "Symbol" -msgid "Baggage Check In" -msgstr "" +#: ../share/filters/filters.svg.h:538 +msgid "Canvas Bumps" +msgstr "Tela rugosa" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 -msgctxt "Symbol" -msgid "Baggage Claim" -msgstr "" +#: ../share/filters/filters.svg.h:540 +msgid "Canvas texture with an HSL sensitive height map" +msgstr "Texture simile a tela con HSL dipendenti dalla mappa del rilievo" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 +#: ../share/filters/filters.svg.h:542 #, fuzzy -msgctxt "Symbol" -msgid "Customs" -msgstr "Personalizzata" +msgid "Canvas Bumps Matte" +msgstr "Rughe della tela, opache" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 -#, fuzzy -msgctxt "Symbol" -msgid "Immigration" -msgstr "Configurazione" +#: ../share/filters/filters.svg.h:544 +msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" +msgstr "Come Tela rugosa, ma con un'illuminazione diffusa anzichè speculare" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 +#: ../share/filters/filters.svg.h:546 #, fuzzy -msgctxt "Symbol" -msgid "Departing Flights" -msgstr "Altezza destinazione" +msgid "Canvas Bumps Alpha" +msgstr "Rughe della tela, con alpha" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 -#, fuzzy -msgctxt "Symbol" -msgid "Arriving Flights" -msgstr "LuminositĂ " +#: ../share/filters/filters.svg.h:548 +msgid "Same as Canvas Bumps but with transparent highlights" +msgstr "Come Tela rugosa, ma con riflesso trasparente " -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 -msgctxt "Symbol" -msgid "Smoking" -msgstr "" +#: ../share/filters/filters.svg.h:550 +#, fuzzy +msgid "Bright Metal" +msgstr "Metallo lucido" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 -msgctxt "Symbol" -msgid "No Smoking" -msgstr "" +#: ../share/filters/filters.svg.h:552 +msgid "Bright metallic effect for any color" +msgstr "Effetto metallico brillante per qualsiasi colore" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:99 ../share/symbols/symbols.h:100 -#: ../share/symbols/symbols.h:325 -msgctxt "Symbol" -msgid "Parking" -msgstr "" +#: ../share/filters/filters.svg.h:554 +#, fuzzy +msgid "Deep Colors Plastic" +msgstr "Plastica a colori scuri" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 -msgctxt "Symbol" -msgid "No Parking" -msgstr "" +#: ../share/filters/filters.svg.h:556 +msgid "Transparent plastic with deep colors" +msgstr "Plastica trasparente con colori scuri" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 -msgctxt "Symbol" -msgid "No Dogs" -msgstr "" +#: ../share/filters/filters.svg.h:558 +#, fuzzy +msgid "Melted Jelly Matte" +msgstr "Gelatina sciolta, opaca" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 -msgctxt "Symbol" -msgid "No Entry" -msgstr "" +#: ../share/filters/filters.svg.h:560 +msgid "Matte bevel with blurred edges" +msgstr "Smussatura opaca con contorni sfumati" -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 -#: ../share/symbols/symbols.h:218 -msgctxt "Symbol" -msgid "Exit" -msgstr "" +#: ../share/filters/filters.svg.h:562 +#, fuzzy +msgid "Melted Jelly" +msgstr "Gelatina sciolta" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 -msgctxt "Symbol" -msgid "Fire Extinguisher" -msgstr "" +#: ../share/filters/filters.svg.h:564 +msgid "Glossy bevel with blurred edges" +msgstr "Smussatura vitrea con bordi sfumati" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 +#: ../share/filters/filters.svg.h:566 #, fuzzy -msgctxt "Symbol" -msgid "Right Arrow" -msgstr "Destra" +msgid "Combined Lighting" +msgstr "Illuminazione combinata" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 -msgctxt "Symbol" -msgid "Forward and Right Arrow" -msgstr "" +#: ../share/filters/filters.svg.h:568 +#: ../src/extension/internal/filter/bevels.h:231 +msgid "Basic specular bevel to use for building textures" +msgstr "Smussatura base speculare per costruire altre texture" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 +#: ../share/filters/filters.svg.h:570 +msgid "Tinfoil" +msgstr "Stagnola" + +#: ../share/filters/filters.svg.h:572 +msgid "Metallic foil effect combining two lighting types and variable crumple" +msgstr "Effetto carta stagnola con due tipi d'illuminazione e pieghe variabili" + +#: ../share/filters/filters.svg.h:574 #, fuzzy -msgctxt "Symbol" -msgid "Up Arrow" -msgstr "Errori" +msgid "Soft Colors" +msgstr "Colori tenui" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 -msgctxt "Symbol" -msgid "Forward and Left Arrow" +#: ../share/filters/filters.svg.h:576 +msgid "Adds a colorizable edges glow inside objects and pictures" msgstr "" +"Proietta un alone colorabile dei bordi all'interno di oggetti e immagini" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 +#: ../share/filters/filters.svg.h:578 #, fuzzy -msgctxt "Symbol" -msgid "Left Arrow" -msgstr "Errori" +msgid "Relief Print" +msgstr "Stampa in rilievo" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 -msgctxt "Symbol" -msgid "Left and Down Arrow" +#: ../share/filters/filters.svg.h:580 +msgid "Bumps effect with a bevel, color flood and complex lighting" msgstr "" +"Effetto rugoso con smussatura, riempimento colorato e illuminazione avanzata" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 +#: ../share/filters/filters.svg.h:582 #, fuzzy -msgctxt "Symbol" -msgid "Down Arrow" -msgstr "Errori" +msgid "Growing Cells" +msgstr "Coltura di cellule" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 -msgctxt "Symbol" -msgid "Right and Down Arrow" -msgstr "" +#: ../share/filters/filters.svg.h:584 +msgid "Random rounded living cells like fill" +msgstr "Riempimento casuale con piccole cellule viventi tondeggianti" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible - 1996" -msgstr "" +#: ../share/filters/filters.svg.h:586 +msgid "Fluorescence" +msgstr "Fluorescenza" -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible" -msgstr "" +#: ../share/filters/filters.svg.h:588 +msgid "Oversaturate colors which can be fluorescent in real world" +msgstr "Rende sovrasaturi colori che possono essere fluorescenti nella realtĂ " -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 -msgctxt "Symbol" -msgid "New Wheelchair Accessible" -msgstr "" +#: ../share/filters/filters.svg.h:590 +msgid "Pixellize" +msgstr "Pixelizza" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:133 -msgctxt "Symbol" -msgid "Word Balloons" -msgstr "" +#: ../share/filters/filters.svg.h:591 +msgid "Pixel tools" +msgstr "Pixel" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:134 -msgctxt "Symbol" -msgid "Thought Balloon" +#: ../share/filters/filters.svg.h:592 +msgid "Reduce or remove antialiasing around shapes" msgstr "" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:135 -msgctxt "Symbol" -msgid "Dream Speaking" -msgstr "" +#: ../share/filters/filters.svg.h:594 +#, fuzzy +msgid "Basic Diffuse Bump" +msgstr "Esponente speculare" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:136 +#: ../share/filters/filters.svg.h:596 #, fuzzy -msgctxt "Symbol" -msgid "Rounded Balloon" -msgstr "Spigolo arrotondato" +msgid "Matte emboss effect" +msgstr "Rimuove effetti su tracciato" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:137 +#: ../share/filters/filters.svg.h:598 #, fuzzy -msgctxt "Symbol" -msgid "Squared Balloon" -msgstr "Estremo squadrato" +msgid "Basic Specular Bump" +msgstr "Esponente speculare" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:138 -msgctxt "Symbol" -msgid "Over the Phone" -msgstr "" +#: ../share/filters/filters.svg.h:600 +#, fuzzy +msgid "Specular emboss effect" +msgstr "Esponente speculare" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:139 -msgctxt "Symbol" -msgid "Hip Balloon" +#: ../share/filters/filters.svg.h:602 +msgid "Basic Two Lights Bump" msgstr "" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:140 +#: ../share/filters/filters.svg.h:604 #, fuzzy -msgctxt "Symbol" -msgid "Circle Balloon" -msgstr "Cerchio" +msgid "Two types of lighting emboss effect" +msgstr "Incolla effetto su tracciato" -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:141 -msgctxt "Symbol" -msgid "Exclaim Balloon" -msgstr "" +#: ../share/filters/filters.svg.h:606 +#, fuzzy +msgid "Linen Canvas" +msgstr "Tela" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:142 -msgctxt "Symbol" -msgid "Flow Chart Shapes" -msgstr "" +#: ../share/filters/filters.svg.h:608 ../share/filters/filters.svg.h:616 +#, fuzzy +msgid "Painting canvas emboss effect" +msgstr "Incolla effetto su tracciato" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:143 -msgctxt "Symbol" -msgid "Process" -msgstr "" +#: ../share/filters/filters.svg.h:610 +#, fuzzy +msgid "Plasticine" +msgstr "Gesso" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:144 +#: ../share/filters/filters.svg.h:612 #, fuzzy -msgctxt "Symbol" -msgid "Input/Output" -msgstr "Output" +msgid "Matte modeling paste emboss effect" +msgstr "Incolla effetto su tracciato" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:145 +#: ../share/filters/filters.svg.h:614 #, fuzzy -msgctxt "Symbol" -msgid "Document" -msgstr "Documento" +msgid "Rough Canvas Painting" +msgstr "Pittura ad olio" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:146 +#: ../share/filters/filters.svg.h:618 #, fuzzy -msgctxt "Symbol" -msgid "Manual Operation" -msgstr "Saturazione" +msgid "Paper Bump" +msgstr "RugositĂ " -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:147 +#: ../share/filters/filters.svg.h:620 #, fuzzy -msgctxt "Symbol" -msgid "Preparation" -msgstr "Saturazione" +msgid "Paper like emboss effect" +msgstr "Incolla effetto su tracciato" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:148 +#: ../share/filters/filters.svg.h:622 #, fuzzy -msgctxt "Symbol" -msgid "Merge" -msgstr "Mischia" +msgid "Jelly Bump" +msgstr "Rughe a bolle" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:149 +#: ../share/filters/filters.svg.h:624 #, fuzzy -msgctxt "Symbol" -msgid "Decision" -msgstr "Precisione" +msgid "Convert pictures to thick jelly" +msgstr "Converti testo in tracciato" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:150 -msgctxt "Symbol" -msgid "Magnetic Tape" +#: ../share/filters/filters.svg.h:626 +#, fuzzy +msgid "Blend Opposites" +msgstr "ModalitĂ  mi_scela:" + +#: ../share/filters/filters.svg.h:628 +msgid "Blend an image with its hue opposite" msgstr "" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:151 +#: ../share/filters/filters.svg.h:630 #, fuzzy -msgctxt "Symbol" -msgid "Display" -msgstr "ModalitĂ  visualizzazione" +msgid "Hue to White" +msgstr "Ruota luminositĂ " -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:152 -msgctxt "Symbol" -msgid "Auxiliary Operation" +#: ../share/filters/filters.svg.h:632 +msgid "Fades hue progressively to white" msgstr "" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:153 +#: ../share/filters/filters.svg.h:634 +#: ../src/extension/internal/bitmap/swirl.cpp:37 +msgid "Swirl" +msgstr "Spirale" + +#: ../share/filters/filters.svg.h:636 #, fuzzy -msgctxt "Symbol" -msgid "Manual Input" -msgstr "Input EMF" +msgid "" +"Paint objects with a transparent turbulence which wraps around color edges" +msgstr "" +"Dipinge l'oggetto con una turbolenza trasparente che gira attorno ai bordi " +"di colore" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:154 +#: ../share/filters/filters.svg.h:638 #, fuzzy -msgctxt "Symbol" -msgid "Extract" -msgstr "Estrai immagine" +msgid "Pointillism" +msgstr "Punti" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:155 -msgctxt "Symbol" -msgid "Terminal/Interrupt" -msgstr "" +#: ../share/filters/filters.svg.h:640 +#, fuzzy +msgid "Gives a turbulent pointillist HSL sensitive transparency" +msgstr "Produce una trasparenza con HSL regolabili in stile puntinista" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:156 -msgctxt "Symbol" -msgid "Punched Card" +#: ../share/filters/filters.svg.h:642 +msgid "Silhouette Marbled" msgstr "" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:157 +#: ../share/filters/filters.svg.h:644 +msgid "Basic noise transparency texture" +msgstr "Texture semplice con disturbo in trasparenza" + +#: ../share/filters/filters.svg.h:646 #, fuzzy -msgctxt "Symbol" -msgid "Punch Tape" -msgstr "Buca" +msgid "Fill Background" +msgstr "Sfondo" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:158 -msgctxt "Symbol" -msgid "Online Storage" -msgstr "" +#: ../share/filters/filters.svg.h:648 +#, fuzzy +msgid "Adds a colorizable opaque background" +msgstr "Proietta un'ombra interna colorabile" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:159 -msgctxt "Symbol" -msgid "Keying" -msgstr "" +#: ../share/filters/filters.svg.h:650 +#, fuzzy +msgid "Flatten Transparency" +msgstr "Trasparenza finestre:" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:160 -msgctxt "Symbol" -msgid "Sort" +#: ../share/filters/filters.svg.h:652 +#, fuzzy +msgid "Adds a white opaque background" +msgstr "Rimuovi sfondo" + +#: ../share/filters/filters.svg.h:654 +#, fuzzy +msgid "Blur Double" +msgstr "ModalitĂ  sfocatura" + +#: ../share/filters/filters.svg.h:656 +msgid "" +"Overlays two copies with different blur amounts and modifiable blend and " +"composite" msgstr "" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:161 +#: ../share/filters/filters.svg.h:658 #, fuzzy -msgctxt "Symbol" -msgid "Connector" -msgstr "Connettore" +msgid "Image Drawing Basic" +msgstr "Disegno" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:162 +#: ../share/filters/filters.svg.h:660 #, fuzzy -msgctxt "Symbol" -msgid "Off-Page Connector" -msgstr "Connettore" +msgid "Enhance and redraw color edges in 1 bit black and white" +msgstr "Solo bianco e nero" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:163 -msgctxt "Symbol" -msgid "Transmittal Tape" -msgstr "" +#: ../share/filters/filters.svg.h:662 +#, fuzzy +msgid "Poster Draw" +msgstr "Gesso" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:164 -msgctxt "Symbol" -msgid "Communication Link" -msgstr "" +#: ../share/filters/filters.svg.h:664 +#, fuzzy +msgid "Enhance and redraw edges around posterized areas" +msgstr "Solo bianco e nero" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:165 +#: ../share/filters/filters.svg.h:666 #, fuzzy -msgctxt "Symbol" -msgid "Collate" -msgstr "Modula" +msgid "Cross Noise Poster" +msgstr "Disturbo di Poisson" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:166 -msgctxt "Symbol" -msgid "Comment/Annotation" -msgstr "" +#: ../share/filters/filters.svg.h:668 +#, fuzzy +msgid "Overlay with a small scale screen like noise" +msgstr "Aggiunge una leggere granularitĂ " -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:167 -msgctxt "Symbol" -msgid "Core" -msgstr "" +#: ../share/filters/filters.svg.h:670 +#, fuzzy +msgid "Cross Noise Poster B" +msgstr "Disturbo di Poisson" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:168 -msgctxt "Symbol" -msgid "Predefined Process" -msgstr "" +#: ../share/filters/filters.svg.h:672 +#, fuzzy +msgid "Adds a small scale screen like noise locally" +msgstr "Aggiunge una leggere granularitĂ " -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:169 -msgctxt "Symbol" -msgid "Magnetic Disk (Database)" -msgstr "" +#: ../share/filters/filters.svg.h:674 +#, fuzzy +msgid "Poster Color Fun" +msgstr "Incolla colore" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:170 -msgctxt "Symbol" -msgid "Magnetic Drum (Direct Access)" -msgstr "" +#: ../share/filters/filters.svg.h:678 +#, fuzzy +msgid "Poster Rough" +msgstr "Gesso" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:171 -msgctxt "Symbol" -msgid "Offline Storage" +#: ../share/filters/filters.svg.h:680 +msgid "Adds roughness to one of the two channels of the Poster paint filter" msgstr "" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:172 -msgctxt "Symbol" -msgid "Logical Or" -msgstr "" +#: ../share/filters/filters.svg.h:682 +#, fuzzy +msgid "Alpha Monochrome Cracked" +msgstr "Negativo monocromo" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:173 -msgctxt "Symbol" -msgid "Logical And" +#: ../share/filters/filters.svg.h:684 ../share/filters/filters.svg.h:688 +#: ../share/filters/filters.svg.h:692 ../share/filters/filters.svg.h:704 +#: ../share/filters/filters.svg.h:708 ../share/filters/filters.svg.h:712 +msgid "Basic noise fill texture; adjust color in Flood" msgstr "" +"Texture semplice di riempimento rumoroso; colore impostabile in Riempimento" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:174 -msgctxt "Symbol" -msgid "Delay" -msgstr "" +#: ../share/filters/filters.svg.h:686 +#, fuzzy +msgid "Alpha Turbulent" +msgstr "Tinta con trasparenza" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:175 -msgctxt "Symbol" -msgid "Loop Limit Begin" -msgstr "" +#: ../share/filters/filters.svg.h:690 +#, fuzzy +msgid "Colorize Turbulent" +msgstr "Colora" -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:176 -msgctxt "Symbol" -msgid "Loop Limit End" -msgstr "" +#: ../share/filters/filters.svg.h:694 +#, fuzzy +msgid "Cross Noise B" +msgstr "Disturbo di Poisson" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:177 +#: ../share/filters/filters.svg.h:696 #, fuzzy -msgctxt "Symbol" -msgid "Logic Symbols" -msgstr "Khmer (km)" +msgid "Adds a small scale crossy graininess" +msgstr "Aggiunge una leggere granularitĂ " -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:178 -msgctxt "Symbol" -msgid "Xnor Gate" -msgstr "" +#: ../share/filters/filters.svg.h:698 +#, fuzzy +msgid "Cross Noise" +msgstr "Disturbo di Poisson" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:179 -msgctxt "Symbol" -msgid "Xor Gate" -msgstr "" +#: ../share/filters/filters.svg.h:700 +#, fuzzy +msgid "Adds a small scale screen like graininess" +msgstr "Aggiunge una leggere granularitĂ " -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:180 -msgctxt "Symbol" -msgid "Nor Gate" -msgstr "" +#: ../share/filters/filters.svg.h:702 +#, fuzzy +msgid "Duotone Turbulent" +msgstr "Turbolenza" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:181 -msgctxt "Symbol" -msgid "Or Gate" -msgstr "" +#: ../share/filters/filters.svg.h:706 +#, fuzzy +msgid "Light Eraser Cracked" +msgstr "Sovraesposto" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:182 -msgctxt "Symbol" -msgid "Nand Gate" -msgstr "" +#: ../share/filters/filters.svg.h:710 +#, fuzzy +msgid "Poster Turbulent" +msgstr "Turbolenza" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:183 -msgctxt "Symbol" -msgid "And Gate" -msgstr "" +#: ../share/filters/filters.svg.h:714 +#, fuzzy +msgid "Tartan Smart" +msgstr "Tartan" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:184 -msgctxt "Symbol" -msgid "Buffer" -msgstr "" +#: ../share/filters/filters.svg.h:716 +#, fuzzy +msgid "Highly configurable checkered tartan pattern" +msgstr "Tartan con trama quadrettata" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:185 -msgctxt "Symbol" -msgid "Not Gate" -msgstr "" +#: ../share/filters/filters.svg.h:718 +#, fuzzy +msgid "Light Contour" +msgstr "Sorgente d'illuminazione:" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:186 -msgctxt "Symbol" -msgid "Buffer Small" +#: ../share/filters/filters.svg.h:720 +msgid "Uses vertical specular light to draw lines" msgstr "" -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:187 -msgctxt "Symbol" -msgid "Not Gate Small" -msgstr "" +#: ../share/filters/filters.svg.h:722 +msgid "Liquid" +msgstr "Liquido" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:188 +#: ../share/filters/filters.svg.h:724 +msgid "Colorizable filling with liquid transparency" +msgstr "Riempimento colorabile con una trasparenza liquida" + +#: ../share/filters/filters.svg.h:726 +msgid "Aluminium" +msgstr "Alluminio" + +#: ../share/filters/filters.svg.h:728 #, fuzzy -msgctxt "Symbol" -msgid "Map Symbols" -msgstr "Khmer (km)" +msgid "Aluminium effect with sharp brushed reflections" +msgstr "Effetto gel con forte rifrazione" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:189 +#: ../share/filters/filters.svg.h:730 +msgid "Comics" +msgstr "Fumetti" + +#: ../share/filters/filters.svg.h:732 #, fuzzy -msgctxt "Symbol" -msgid "Bed and Breakfast" -msgstr "Crea e modifica i gradienti" +msgid "Comics cartoon drawing effect" +msgstr "Disegno di fumetto abbozzato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:190 -msgctxt "Symbol" -msgid "Youth Hostel" -msgstr "" +#: ../share/filters/filters.svg.h:734 +#, fuzzy +msgid "Comics Draft" +msgstr "Fumetto" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:191 +#: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768 +msgid "Draft painted cartoon shading with a glassy look" +msgstr "Ombreggiatura a fumetto grezza con un aspetto vitreo" + +#: ../share/filters/filters.svg.h:738 #, fuzzy -msgctxt "Symbol" -msgid "Shelter" -msgstr "filtro" +msgid "Comics Fading" +msgstr "Fumetto scolorito" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:192 -msgctxt "Symbol" -msgid "Motel" -msgstr "" +#: ../share/filters/filters.svg.h:740 +msgid "Cartoon paint style with some fading at the edges" +msgstr "Tinta in stile fumetto con bordi scoloriti" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:193 -msgctxt "Symbol" -msgid "Hotel" -msgstr "" +#: ../share/filters/filters.svg.h:742 +#, fuzzy +msgid "Brushed Metal" +msgstr "Metallo consumato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:194 +#: ../share/filters/filters.svg.h:744 #, fuzzy -msgctxt "Symbol" -msgid "Hostel" -msgstr "Ospitante" +msgid "Satiny metal surface effect" +msgstr "Vetrata illuminata" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:195 +#: ../share/filters/filters.svg.h:746 #, fuzzy -msgctxt "Symbol" -msgid "Chalet" -msgstr "_Paletta" +msgid "Opaline" +msgstr "Scheletro" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:196 -msgctxt "Symbol" -msgid "Caravan Park" -msgstr "" +#: ../share/filters/filters.svg.h:748 +msgid "Contouring version of smooth shader" +msgstr "Versione contornata dello shader liscio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:197 +#: ../share/filters/filters.svg.h:750 +msgid "Chrome" +msgstr "Cromatura" + +#: ../share/filters/filters.svg.h:752 #, fuzzy -msgctxt "Symbol" -msgid "Camping" -msgstr "Lappatura" +msgid "Bright chrome effect" +msgstr "Metallo lucido" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:198 -msgctxt "Symbol" -msgid "Alpine Hut" -msgstr "" +#: ../share/filters/filters.svg.h:754 +#, fuzzy +msgid "Deep Chrome" +msgstr "Cromatura" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:199 -msgctxt "Symbol" -msgid "Bench or Park" -msgstr "" +#: ../share/filters/filters.svg.h:756 +#, fuzzy +msgid "Dark chrome effect" +msgstr "Effetto attuale" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:200 +#: ../share/filters/filters.svg.h:758 #, fuzzy -msgctxt "Symbol" -msgid "Playground" -msgstr "Sfondo" +msgid "Emboss Shader" +msgstr "Shader rilievo" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:201 -msgctxt "Symbol" -msgid "Fountain" -msgstr "" +#: ../share/filters/filters.svg.h:760 +#, fuzzy +msgid "Combination of satiny and emboss effect" +msgstr "Combinazione di ombreggiatura dolce e rilievo" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:202 -msgctxt "Symbol" -msgid "Library" -msgstr "" +#: ../share/filters/filters.svg.h:762 +#, fuzzy +msgid "Sharp Metal" +msgstr "Nitidezza" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:203 -msgctxt "Symbol" -msgid "Town Hall" -msgstr "" +#: ../share/filters/filters.svg.h:764 +#, fuzzy +msgid "Chrome effect with darkened edges" +msgstr "Metallo pressato con bordi incurvati" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:204 -msgctxt "Symbol" -msgid "Court" -msgstr "" +#: ../share/filters/filters.svg.h:766 +#, fuzzy +msgid "Brush Draw" +msgstr "Pennello" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:205 -msgctxt "Symbol" -msgid "Fire Station / House" -msgstr "" +#: ../share/filters/filters.svg.h:770 +#, fuzzy +msgid "Chrome Emboss" +msgstr "Rilievo scuro" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:206 +#: ../share/filters/filters.svg.h:772 #, fuzzy -msgctxt "Symbol" -msgid "Police Station" -msgstr "Maggior saturazione" +msgid "Embossed chrome effect" +msgstr "Rimuove effetti su tracciato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:207 -msgctxt "Symbol" -msgid "Prison" -msgstr "" +#: ../share/filters/filters.svg.h:774 +#, fuzzy +msgid "Contour Emboss" +msgstr "Rilievo colorato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:208 -msgctxt "Symbol" -msgid "Post Office" -msgstr "" +#: ../share/filters/filters.svg.h:776 +#, fuzzy +msgid "Satiny and embossed contour effect" +msgstr "Vetrata illuminata" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:209 +#: ../share/filters/filters.svg.h:778 #, fuzzy -msgctxt "Symbol" -msgid "Public Building" -msgstr "Pubblico dominio" +msgid "Sharp Deco" +msgstr "Nitidezza" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:210 -msgctxt "Symbol" -msgid "Recycling" -msgstr "" +#: ../share/filters/filters.svg.h:780 +#, fuzzy +msgid "Unrealistic reflections with sharp edges" +msgstr "Metallo pressato con bordi incurvati" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:211 +#: ../share/filters/filters.svg.h:782 #, fuzzy -msgctxt "Symbol" -msgid "Survey Point" -msgstr "Punto di Gergonne" +msgid "Deep Metal" +msgstr "Metallo colato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:212 -msgctxt "Symbol" -msgid "Toll Booth" +#: ../share/filters/filters.svg.h:784 +msgid "Deep and dark metal shading" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:213 -msgctxt "Symbol" -msgid "Lift Gate" +#: ../share/filters/filters.svg.h:786 +#, fuzzy +msgid "Aluminium Emboss" +msgstr "Alluminio" + +#: ../share/filters/filters.svg.h:788 +msgid "Satiny aluminium effect with embossing" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:214 +#: ../share/filters/filters.svg.h:790 #, fuzzy -msgctxt "Symbol" -msgid "Steps" -msgstr "Scatti" +msgid "Refractive Glass" +msgstr "Gel rifrangente A" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:215 -msgctxt "Symbol" -msgid "Stile" -msgstr "" +#: ../share/filters/filters.svg.h:792 +#, fuzzy +msgid "Double reflection through glass with some refraction" +msgstr "Effetto gel con forte rifrazione" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:216 +#: ../share/filters/filters.svg.h:794 #, fuzzy -msgctxt "Symbol" -msgid "Kissing Gate" -msgstr "Glifi mancanti:" +msgid "Frosted Glass" +msgstr "Vetro smerigliato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:217 -msgctxt "Symbol" -msgid "Gate" -msgstr "" +#: ../share/filters/filters.svg.h:796 +#, fuzzy +msgid "Satiny glass effect" +msgstr "Vetrata illuminata" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:219 +#: ../share/filters/filters.svg.h:798 #, fuzzy -msgctxt "Symbol" -msgid "Entrance" -msgstr "Migliora" +msgid "Bump Engraving" +msgstr "Incisione in trasparenza" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:220 -msgctxt "Symbol" -msgid "Cycle Barrier" +#: ../share/filters/filters.svg.h:800 +#, fuzzy +msgid "Carving emboss effect" +msgstr "Incolla effetto su tracciato" + +#: ../share/filters/filters.svg.h:802 +msgid "Chromolitho Alternate" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:221 +#: ../share/filters/filters.svg.h:804 #, fuzzy -msgctxt "Symbol" -msgid "Cattle Grid" -msgstr "Griglia cartesiana" +msgid "Old chromolithographic effect" +msgstr "Crea e applica effetti su tracciato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:222 -msgctxt "Symbol" -msgid "Bollard" -msgstr "" +#: ../share/filters/filters.svg.h:806 +#, fuzzy +msgid "Convoluted Bump" +msgstr "Sfoca o contrasta" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:223 +#: ../share/filters/filters.svg.h:808 #, fuzzy -msgctxt "Symbol" -msgid "University" -msgstr "Intersezione" +msgid "Convoluted emboss effect" +msgstr "Effetto nuvola acquerellata" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:224 -msgctxt "Symbol" -msgid "High/Secondary School" -msgstr "" +#: ../share/filters/filters.svg.h:810 +#, fuzzy +msgid "Emergence" +msgstr "Divergenza" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:225 -msgctxt "Symbol" -msgid "School" +#: ../share/filters/filters.svg.h:812 +msgid "Cut out, add inner shadow and colorize some parts of an image" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:226 -msgctxt "Symbol" -msgid "Kindergarten" +#: ../share/filters/filters.svg.h:814 +msgid "Litho" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:229 -msgctxt "Symbol" -msgid "Pub" -msgstr "" +#: ../share/filters/filters.svg.h:816 +#, fuzzy +msgid "Create a two colors lithographic effect" +msgstr "Crea e applica effetti su tracciato" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:230 -msgctxt "Symbol" -msgid "Desserts/Cakes Shop" -msgstr "" +#: ../share/filters/filters.svg.h:818 +#, fuzzy +msgid "Paint Channels" +msgstr "Canale «Ciano»" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:231 -msgctxt "Symbol" -msgid "Fast Food" +#: ../share/filters/filters.svg.h:820 +msgid "Colorize separately the three color channels" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:232 -msgctxt "Symbol" -msgid "Public Tap/Water" -msgstr "" +#: ../share/filters/filters.svg.h:822 +#, fuzzy +msgid "Posterized Light Eraser" +msgstr "Sovraesposto" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:233 -msgctxt "Symbol" -msgid "Cafe" +#: ../share/filters/filters.svg.h:824 +msgid "Create a semi transparent posterized image" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:234 -msgctxt "Symbol" -msgid "Beer Garden" +#: ../share/filters/filters.svg.h:826 +#, fuzzy +msgid "Trichrome" +msgstr "Cromatura" + +#: ../share/filters/filters.svg.h:828 +msgid "Like Duochrome but with three colors" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:235 -msgctxt "Symbol" -msgid "Wine Bar" +#: ../share/filters/filters.svg.h:830 +msgid "Simulate CMY" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:236 -msgctxt "Symbol" -msgid "Opticians/Eye Doctors" +#: ../share/filters/filters.svg.h:832 +msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:237 +#: ../share/filters/filters.svg.h:834 #, fuzzy -msgctxt "Symbol" -msgid "Dentist" -msgstr "IdentitĂ " +msgid "Contouring table" +msgstr "Triangolo inscritto" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:238 -msgctxt "Symbol" -msgid "Veterinarian" -msgstr "" +#: ../share/filters/filters.svg.h:836 +#, fuzzy +msgid "Blurred multiple contours for objects" +msgstr "Contorno sfumato colorabile, interno vuoto" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:239 -msgctxt "Symbol" -msgid "Drugs Dispensary" -msgstr "" +#: ../share/filters/filters.svg.h:838 +#, fuzzy +msgid "Posterized Blur" +msgstr "Sovraesposto" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:240 -msgctxt "Symbol" -msgid "Pharmacy" +#: ../share/filters/filters.svg.h:840 +msgid "Converts blurred contour to posterized steps" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:241 +#: ../share/filters/filters.svg.h:842 #, fuzzy -msgctxt "Symbol" -msgid "Accident & Emergency" -msgstr "Incentro" +msgid "Contouring discrete" +msgstr "Pannello atto al controllo" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:242 -msgctxt "Symbol" -msgid "Hospital" -msgstr "" +#: ../share/filters/filters.svg.h:844 +#, fuzzy +msgid "Sharp multiple contour for objects" +msgstr "Aggancia a e con i centri degli oggetti" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:243 +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:2 #, fuzzy -msgctxt "Symbol" -msgid "Doctors" -msgstr "Connettore" +msgctxt "Palette" +msgid "Black" +msgstr "Nero" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:244 -msgctxt "Symbol" -msgid "Scrub Land" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:3 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "90% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:245 -msgctxt "Symbol" -msgid "Swamp" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:4 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "80% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:246 -msgctxt "Symbol" -msgid "Hills" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:5 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "70% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:247 -msgctxt "Symbol" -msgid "Grass Land" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:6 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "60% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:248 -msgctxt "Symbol" -msgid "Deciduous Forest" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:7 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "50% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:249 -msgctxt "Symbol" -msgid "Mixed Forest" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:8 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "40% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:250 -msgctxt "Symbol" -msgid "Coniferous Forest" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:9 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "30% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:251 -msgctxt "Symbol" -msgid "Church or Place of Worship" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:10 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "20% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:252 -msgctxt "Symbol" -msgid "Bank" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:11 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "10% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:253 -#, fuzzy -msgctxt "Symbol" -msgid "Power Lines" -msgstr "Nodo linea" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:12 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "7.5% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:254 -msgctxt "Symbol" -msgid "Watch Tower" -msgstr "" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:13 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "5% Gray" +msgstr "Grigio" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:255 +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:14 +#, fuzzy, no-c-format +msgctxt "Palette" +msgid "2.5% Gray" +msgstr "Grigio" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:15 #, fuzzy -msgctxt "Symbol" -msgid "Transmitter" -msgstr "Trasforma motivi" +msgctxt "Palette" +msgid "White" +msgstr "Bianco" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:256 -msgctxt "Symbol" -msgid "Village" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:16 +msgctxt "Palette" +msgid "Maroon (#800000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:257 -msgctxt "Symbol" -msgid "Town" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:17 +msgctxt "Palette" +msgid "Red (#FF0000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:258 -msgctxt "Symbol" -msgid "Hamlet" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:18 +msgctxt "Palette" +msgid "Olive (#808000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:259 -msgctxt "Symbol" -msgid "City" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:19 +msgctxt "Palette" +msgid "Yellow (#FFFF00)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:260 -msgctxt "Symbol" -msgid "Peak" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:20 +msgctxt "Palette" +msgid "Green (#008000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:261 -#, fuzzy -msgctxt "Symbol" -msgid "Mountain Pass" -msgstr "Vetrata" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:262 -msgctxt "Symbol" -msgid "Mine" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:21 +msgctxt "Palette" +msgid "Lime (#00FF00)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:263 -msgctxt "Symbol" -msgid "Military Complex" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:22 +msgctxt "Palette" +msgid "Teal (#008080)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:264 -msgctxt "Symbol" -msgid "Embassy" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:23 +msgctxt "Palette" +msgid "Aqua (#00FFFF)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:265 -msgctxt "Symbol" -msgid "Toy Shop" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:24 +msgctxt "Palette" +msgid "Navy (#000080)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:266 -#, fuzzy -msgctxt "Symbol" -msgid "Supermarket" -msgstr "Imposta delimitatori" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:267 -msgctxt "Symbol" -msgid "Jewlers" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:25 +msgctxt "Palette" +msgid "Blue (#0000FF)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:268 -msgctxt "Symbol" -msgid "Hairdressers" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:26 +msgctxt "Palette" +msgid "Purple (#800080)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:269 -#, fuzzy -msgctxt "Symbol" -msgid "Greengrocer" -msgstr "Verde" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:270 -msgctxt "Symbol" -msgid "Gift Shop" +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:27 +msgctxt "Palette" +msgid "Fuchsia (#FF00FF)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:271 -#, fuzzy -msgctxt "Symbol" -msgid "Garden Center" -msgstr "Tracciato lato superiore" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:272 -msgctxt "Symbol" -msgid "Florist" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:28 +msgctxt "Palette" +msgid "black (#000000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:273 -msgctxt "Symbol" -msgid "Fish Monger" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:29 +msgctxt "Palette" +msgid "dimgray (#696969)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:274 -msgctxt "Symbol" -msgid "Real Estate" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:30 +msgctxt "Palette" +msgid "gray (#808080)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:275 -#, fuzzy -msgctxt "Symbol" -msgid "Hardware / DIY" -msgstr "Filo spinato" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:276 -msgctxt "Symbol" -msgid "Shop" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:31 +msgctxt "Palette" +msgid "darkgray (#A9A9A9)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:277 -#, fuzzy -msgctxt "Symbol" -msgid "Confectioner" -msgstr "Connessione" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:278 -msgctxt "Symbol" -msgid "Computer Shop" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:32 +msgctxt "Palette" +msgid "silver (#C0C0C0)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:279 -#, fuzzy -msgctxt "Symbol" -msgid "Clothing" -msgstr "Smussamento:" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:280 -msgctxt "Symbol" -msgid "Mechanic" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:33 +msgctxt "Palette" +msgid "lightgray (#D3D3D3)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:281 -msgctxt "Symbol" -msgid "Car Dealer" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:34 +msgctxt "Palette" +msgid "gainsboro (#DCDCDC)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:282 -msgctxt "Symbol" -msgid "Butcher" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:35 +msgctxt "Palette" +msgid "whitesmoke (#F5F5F5)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:283 -msgctxt "Symbol" -msgid "Meat Shop" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:36 +msgctxt "Palette" +msgid "white (#FFFFFF)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:284 -msgctxt "Symbol" -msgid "Bicycle Shop" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:37 +msgctxt "Palette" +msgid "rosybrown (#BC8F8F)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:285 -msgctxt "Symbol" -msgid "Baker" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:38 +msgctxt "Palette" +msgid "indianred (#CD5C5C)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:286 -msgctxt "Symbol" -msgid "Off License / Liquor Store" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:39 +msgctxt "Palette" +msgid "brown (#A52A2A)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:287 -msgctxt "Symbol" -msgid "Wind Surfing" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:40 +msgctxt "Palette" +msgid "firebrick (#B22222)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:288 -msgctxt "Symbol" -msgid "Tennis" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:41 +msgctxt "Palette" +msgid "lightcoral (#F08080)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:289 -msgctxt "Symbol" -msgid "Outdoor Pool" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:42 +msgctxt "Palette" +msgid "maroon (#800000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:290 -msgctxt "Symbol" -msgid "Indoor Pool" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:43 +msgctxt "Palette" +msgid "darkred (#8B0000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:291 -msgctxt "Symbol" -msgid "Skiing" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:44 +msgctxt "Palette" +msgid "red (#FF0000)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:292 -#, fuzzy -msgctxt "Symbol" -msgid "Sailing" -msgstr "Scorrimento" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:45 +msgctxt "Palette" +msgid "snow (#FFFAFA)" +msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:293 -#, fuzzy -msgctxt "Symbol" -msgid "Leisure Center" -msgstr "Resetta centro" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:46 +msgctxt "Palette" +msgid "mistyrose (#FFE4E1)" +msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:294 -#, fuzzy -msgctxt "Symbol" -msgid "Ice Skating" -msgstr "Satinato" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:47 +msgctxt "Palette" +msgid "salmon (#FA8072)" +msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:295 -msgctxt "Symbol" -msgid "Equine Sports" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:48 +msgctxt "Palette" +msgid "tomato (#FF6347)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:296 -msgctxt "Symbol" -msgid "Rock Climbing" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:49 +msgctxt "Palette" +msgid "darksalmon (#E9967A)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:297 -msgctxt "Symbol" -msgid "Gym" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:50 +msgctxt "Palette" +msgid "coral (#FF7F50)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:298 -msgctxt "Symbol" -msgid "Golf" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:51 +msgctxt "Palette" +msgid "orangered (#FF4500)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:299 -#, fuzzy -msgctxt "Symbol" -msgid "Diving" -msgstr "Divisione" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:300 -msgctxt "Symbol" -msgid "Archery" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:52 +msgctxt "Palette" +msgid "lightsalmon (#FFA07A)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:301 -#, fuzzy -msgctxt "Symbol" -msgid "Zoo" -msgstr "Ingrandimento" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:302 -msgctxt "Symbol" -msgid "Wreck" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:53 +msgctxt "Palette" +msgid "sienna (#A0522D)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:303 -#, fuzzy -msgctxt "Symbol" -msgid "Water Wheel" -msgstr "Ruota" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:304 -#, fuzzy -msgctxt "Symbol" -msgid "Point of Interest" -msgstr "Impostazioni stampa" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:305 -#, fuzzy -msgctxt "Symbol" -msgid "Theater" -msgstr "Crea" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:306 -msgctxt "Symbol" -msgid "Park / Picnic Area" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:54 +msgctxt "Palette" +msgid "seashell (#FFF5EE)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:307 -#, fuzzy -msgctxt "Symbol" -msgid "Monument" -msgstr "Documento" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:309 -msgctxt "Symbol" -msgid "Beach" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:55 +msgctxt "Palette" +msgid "chocolate (#D2691E)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:310 -#, fuzzy -msgctxt "Symbol" -msgid "Battle Location" -msgstr "Posizione" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:311 -msgctxt "Symbol" -msgid "Archaeology / Ruins" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:56 +msgctxt "Palette" +msgid "saddlebrown (#8B4513)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:312 -msgctxt "Symbol" -msgid "Walking" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:57 +msgctxt "Palette" +msgid "sandybrown (#F4A460)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:313 -#, fuzzy -msgctxt "Symbol" -msgid "Train" -msgstr "Disegno" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:315 -msgctxt "Symbol" -msgid "Underground Rail" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:58 +msgctxt "Palette" +msgid "peachpuff (#FFDAB9)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:317 -msgctxt "Symbol" -msgid "Bike Rental" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:59 +msgctxt "Palette" +msgid "peru (#CD853F)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:319 -msgctxt "Symbol" -msgid "Carpool" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:60 +msgctxt "Palette" +msgid "linen (#FAF0E6)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:320 -#, fuzzy -msgctxt "Symbol" -msgid "Flood Gate" -msgstr "Riempimento" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:321 -#, fuzzy -msgctxt "Symbol" -msgid "Shipping" -msgstr "Colate" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:322 -#, fuzzy -msgctxt "Symbol" -msgid "Disabled Parking" -msgstr "_Abilitata" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:323 -msgctxt "Symbol" -msgid "Paid Parking" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:61 +msgctxt "Palette" +msgid "bisque (#FFE4C4)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:324 -msgctxt "Symbol" -msgid "Bike Parking" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:62 +msgctxt "Palette" +msgid "darkorange (#FF8C00)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:326 -msgctxt "Symbol" -msgid "Marina" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:63 +msgctxt "Palette" +msgid "burlywood (#DEB887)" msgstr "" -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:327 -#, fuzzy -msgctxt "Symbol" -msgid "Fuel Station" -msgstr "Relazione" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:328 -#, fuzzy -msgctxt "Symbol" -msgid "Bus Stop" -msgstr "_Ferma" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:329 -#, fuzzy -msgctxt "Symbol" -msgid "Bus Station" -msgstr "Minor saturazione" - -#. Symbols: ./MapSymbols.svg -#: ../share/symbols/symbols.h:330 -#, fuzzy -msgctxt "Symbol" -msgid "Airport" -msgstr "Importa" - -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "A4 Landscape Page" -msgstr "Orizzonta_le" - -#: ../share/templates/templates.h:1 -msgid "Empty A4 landscape sheet" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:64 +msgctxt "Palette" +msgid "tan (#D2B48C)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty landscape" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:65 +msgctxt "Palette" +msgid "antiquewhite (#FAEBD7)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "A4 Page" -msgstr "Pagina" - -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Empty A4 sheet" -msgstr "Nessuna selezione" - -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:66 +msgctxt "Palette" +msgid "navajowhite (#FFDEAD)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Black Opaque" -msgstr "Canale «Nero»" - -#: ../share/templates/templates.h:1 -msgid "Empty black page" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:67 +msgctxt "Palette" +msgid "blanchedalmond (#FFEBCD)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "black opaque empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:68 +msgctxt "Palette" +msgid "papayawhip (#FFEFD5)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "White Opaque" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:69 +msgctxt "Palette" +msgid "moccasin (#FFE4B5)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Empty white page" -msgstr "esporta la selezione, non la pagina" - -#: ../share/templates/templates.h:1 -msgid "white opaque empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:70 +msgctxt "Palette" +msgid "orange (#FFA500)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Business Card 85x54mm" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:71 +msgctxt "Palette" +msgid "wheat (#F5DEB3)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty business card template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:72 +msgctxt "Palette" +msgid "oldlace (#FDF5E6)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "business card empty 85x54" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:73 +msgctxt "Palette" +msgid "floralwhite (#FFFAF0)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Business Card 90x50mm" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:74 +msgctxt "Palette" +msgid "darkgoldenrod (#B8860B)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "business card empty 90x50" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:75 +msgctxt "Palette" +msgid "goldenrod (#DAA520)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "CD Cover 300dpi" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:76 +msgctxt "Palette" +msgid "cornsilk (#FFF8DC)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty CD box cover." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:77 +msgctxt "Palette" +msgid "gold (#FFD700)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "CD cover disc disk 300dpi box" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:78 +msgctxt "Palette" +msgid "khaki (#F0E68C)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "CD Label 120x120 " +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:79 +msgctxt "Palette" +msgid "lemonchiffon (#FFFACD)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Simple CD Label template with disc's pattern." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:80 +msgctxt "Palette" +msgid "palegoldenrod (#EEE8AA)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "CD label 120x120 disc disk" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:81 +msgctxt "Palette" +msgid "darkkhaki (#BDB76B)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Regular 300dpi " +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:82 +msgctxt "Palette" +msgid "beige (#F5F5DC)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD covers." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:83 +msgctxt "Palette" +msgid "lightgoldenrodyellow (#FAFAD2)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD cover regular 300dpi" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:84 +msgctxt "Palette" +msgid "olive (#808000)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Slim 300dpi " +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:85 +msgctxt "Palette" +msgid "yellow (#FFFF00)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD slim covers." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:86 +msgctxt "Palette" +msgid "lightyellow (#FFFFE0)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD cover slim 300dpi" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:87 +msgctxt "Palette" +msgid "ivory (#FFFFF0)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Superslim 300dpi " +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:88 +msgctxt "Palette" +msgid "olivedrab (#6B8E23)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD superslim covers." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:89 +msgctxt "Palette" +msgid "yellowgreen (#9ACD32)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD cover superslim 300dpi" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:90 +msgctxt "Palette" +msgid "darkolivegreen (#556B2F)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD Cover Ultraslim 300dpi " +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:91 +msgctxt "Palette" +msgid "greenyellow (#ADFF2F)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD ultraslim covers." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:92 +msgctxt "Palette" +msgid "chartreuse (#7FFF00)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "DVD cover ultraslim 300dpi" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:93 +msgctxt "Palette" +msgid "lawngreen (#7CFC00)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Desktop 1024x768" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:94 +msgctxt "Palette" +msgid "darkseagreen (#8FBC8F)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty desktop size sheet" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:95 +msgctxt "Palette" +msgid "forestgreen (#228B22)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "desktop 1024x768 wallpaper" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:96 +msgctxt "Palette" +msgid "limegreen (#32CD32)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Desktop 1600x1200" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:97 +msgctxt "Palette" +msgid "lightgreen (#90EE90)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "desktop 1600x1200 wallpaper" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:98 +msgctxt "Palette" +msgid "palegreen (#98FB98)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Desktop 640x480" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:99 +msgctxt "Palette" +msgid "darkgreen (#006400)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "desktop 640x480 wallpaper" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:100 +msgctxt "Palette" +msgid "green (#008000)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Desktop 800x600" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:101 +msgctxt "Palette" +msgid "lime (#00FF00)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "desktop 800x600 wallpaper" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:102 +msgctxt "Palette" +msgid "honeydew (#F0FFF0)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Fontforge Glyph" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:103 +msgctxt "Palette" +msgid "seagreen (#2E8B57)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "font fontforge glyph 1000x1000" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:104 +msgctxt "Palette" +msgid "mediumseagreen (#3CB371)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Icon 16x16" -msgstr "16x16" - -#: ../share/templates/templates.h:1 -msgid "Small 16x16 icon template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:105 +msgctxt "Palette" +msgid "springgreen (#00FF7F)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "icon 16x16 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:106 +msgctxt "Palette" +msgid "mintcream (#F5FFFA)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Icon 32x32" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:107 +msgctxt "Palette" +msgid "mediumspringgreen (#00FA9A)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "32x32 icon template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:108 +msgctxt "Palette" +msgid "mediumaquamarine (#66CDAA)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "icon 32x32 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:109 +msgctxt "Palette" +msgid "aquamarine (#7FFFD4)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Icon 48x48" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:110 +msgctxt "Palette" +msgid "turquoise (#40E0D0)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "48x48 icon template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:111 +msgctxt "Palette" +msgid "lightseagreen (#20B2AA)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "icon 48x48 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:112 +msgctxt "Palette" +msgid "mediumturquoise (#48D1CC)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Icon 64x64" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:113 +msgctxt "Palette" +msgid "darkslategray (#2F4F4F)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "64x64 icon template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:114 +msgctxt "Palette" +msgid "paleturquoise (#AFEEEE)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "icon 64x64 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:115 +msgctxt "Palette" +msgid "teal (#008080)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Letter Landscape" -msgstr "Orizzonta_le" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:116 +msgctxt "Palette" +msgid "darkcyan (#008B8B)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Standard letter landscape sheet - 792x612" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:117 +msgctxt "Palette" +msgid "cyan (#00FFFF)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "letter landscape 792x612 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:118 +msgctxt "Palette" +msgid "lightcyan (#E0FFFF)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Letter" -msgstr "Sinistra:" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:119 +msgctxt "Palette" +msgid "azure (#F0FFFF)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Standard letter sheet - 612x792" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:120 +msgctxt "Palette" +msgid "darkturquoise (#00CED1)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "letter 612x792 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:121 +msgctxt "Palette" +msgid "cadetblue (#5F9EA0)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "No Borders" -msgstr "Ordine" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:122 +msgctxt "Palette" +msgid "powderblue (#B0E0E6)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no borders" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:123 +msgctxt "Palette" +msgid "lightblue (#ADD8E6)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "no borders empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:124 +msgctxt "Palette" +msgid "deepskyblue (#00BFFF)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "No Layers" -msgstr "Livello" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:125 +msgctxt "Palette" +msgid "skyblue (#87CEEB)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no layers" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:126 +msgctxt "Palette" +msgid "lightskyblue (#87CEFA)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "no layers empty" -msgstr "Modifica opacitĂ  livello" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:127 +msgctxt "Palette" +msgid "steelblue (#4682B4)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Video HDTV 1920x1080" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:128 +msgctxt "Palette" +msgid "aliceblue (#F0F8FF)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "HDTV video template for 1920x1080 resolution." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:129 +msgctxt "Palette" +msgid "dodgerblue (#1E90FF)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "HDTV video empty 1920x1080" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:130 +msgctxt "Palette" +msgid "slategray (#708090)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Video NTSC 720x486" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:131 +msgctxt "Palette" +msgid "lightslategray (#778899)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "NTSC video template for 720x486 resolution." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:132 +msgctxt "Palette" +msgid "lightsteelblue (#B0C4DE)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "NTSC video empty 720x486" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:133 +msgctxt "Palette" +msgid "cornflowerblue (#6495ED)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Video PAL 728x576" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:134 +msgctxt "Palette" +msgid "royalblue (#4169E1)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "PAL video template for 728x576 resolution." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:135 +msgctxt "Palette" +msgid "midnightblue (#191970)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "PAL video empty 728x576" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:136 +msgctxt "Palette" +msgid "lavender (#E6E6FA)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Web Banner 468x60" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:137 +msgctxt "Palette" +msgid "navy (#000080)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty 468x60 web banner template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:138 +msgctxt "Palette" +msgid "darkblue (#00008B)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "web banner 468x60 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:139 +msgctxt "Palette" +msgid "mediumblue (#0000CD)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Web Banner 728x90" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:140 +msgctxt "Palette" +msgid "blue (#0000FF)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty 728x90 web banner template." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:141 +msgctxt "Palette" +msgid "ghostwhite (#F8F8FF)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "web banner 728x90 empty" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:142 +msgctxt "Palette" +msgid "slateblue (#6A5ACD)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "LaTeX Beamer" -msgstr "Stampa LaTeX" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:143 +msgctxt "Palette" +msgid "darkslateblue (#483D8B)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "LaTeX beamer template with helping grid." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:144 +msgctxt "Palette" +msgid "mediumslateblue (#7B68EE)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "LaTex LaTeX latex grid beamer" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:145 +msgctxt "Palette" +msgid "mediumpurple (#9370DB)" msgstr "" -#: ../share/templates/templates.h:1 -#, fuzzy -msgid "Typography Canvas" -msgstr "Spirografo" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:146 +msgctxt "Palette" +msgid "blueviolet (#8A2BE2)" +msgstr "" -#: ../share/templates/templates.h:1 -msgid "Empty typography canvas with helping guidelines." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:147 +msgctxt "Palette" +msgid "indigo (#4B0082)" msgstr "" -#: ../share/templates/templates.h:1 -msgid "guidelines typography canvas" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:148 +msgctxt "Palette" +msgid "darkorchid (#9932CC)" msgstr "" -#. 3D box -#: ../src/box3d.cpp:259 ../src/box3d.cpp:1310 -#: ../src/ui/dialog/inkscape-preferences.cpp:398 -msgid "3D Box" -msgstr "Solido 3D" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:149 +msgctxt "Palette" +msgid "darkviolet (#9400D3)" +msgstr "" -#: ../src/color-profile.cpp:852 -#, c-format -msgid "Color profiles directory (%s) is unavailable." -msgstr "La cartella dei profili colore (%s) non è disponibile." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:150 +msgctxt "Palette" +msgid "mediumorchid (#BA55D3)" +msgstr "" -#: ../src/color-profile.cpp:911 ../src/color-profile.cpp:928 -msgid "(invalid UTF-8 string)" -msgstr "(stringa UTF-8 non valida)" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:151 +msgctxt "Palette" +msgid "thistle (#D8BFD8)" +msgstr "" -#: ../src/color-profile.cpp:913 ../src/filter-enums.cpp:121 -#: ../src/live_effects/lpe-ruler.cpp:32 -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 -#: ../src/ui/dialog/inkscape-preferences.cpp:332 -#: ../src/ui/dialog/inkscape-preferences.cpp:643 -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 -#: ../src/ui/dialog/inkscape-preferences.cpp:1837 -#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 -#: ../src/ui/dialog/input.cpp:1571 ../src/ui/dialog/input.cpp:1625 -#: ../src/verbs.cpp:2349 ../src/widgets/gradient-toolbar.cpp:1112 -#: ../src/widgets/pencil-toolbar.cpp:155 -#: ../src/widgets/stroke-marker-selector.cpp:388 -#: ../share/extensions/gcodetools_area.inx.h:48 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:26 -#: ../share/extensions/gcodetools_graffiti.inx.h:37 -#: ../share/extensions/gcodetools_lathe.inx.h:41 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 -#: ../share/extensions/grid_polar.inx.h:4 -#: ../share/extensions/guides_creator.inx.h:24 -#: ../share/extensions/plotter.inx.h:15 ../share/extensions/scour.inx.h:18 -msgid "None" -msgstr "Nessuno" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:152 +msgctxt "Palette" +msgid "plum (#DDA0DD)" +msgstr "" -#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 -msgid "Current layer is hidden. Unhide it to be able to draw on it." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:153 +msgctxt "Palette" +msgid "violet (#EE82EE)" msgstr "" -"Il livello attuale è nascosto. Per potervi disegnare occorre " -"mostrarlo." -#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 -msgid "Current layer is locked. Unlock it to be able to draw on it." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:154 +msgctxt "Palette" +msgid "purple (#800080)" msgstr "" -"Il livello attuale è bloccato. Per potervi disegnare occorre " -"sbloccarlo." -#: ../src/desktop-events.cpp:225 -msgid "Create guide" -msgstr "Crea guida" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:155 +msgctxt "Palette" +msgid "darkmagenta (#8B008B)" +msgstr "" -#: ../src/desktop-events.cpp:471 -msgid "Move guide" -msgstr "Muovi guida" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:156 +msgctxt "Palette" +msgid "magenta (#FF00FF)" +msgstr "" -#: ../src/desktop-events.cpp:478 ../src/desktop-events.cpp:536 -#: ../src/ui/dialog/guides.cpp:138 -msgid "Delete guide" -msgstr "Cancella guida" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:157 +msgctxt "Palette" +msgid "orchid (#DA70D6)" +msgstr "" -#: ../src/desktop-events.cpp:516 -#, c-format -msgid "Guideline: %s" -msgstr "Linea guida: %s" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:158 +msgctxt "Palette" +msgid "mediumvioletred (#C71585)" +msgstr "" -#: ../src/desktop.cpp:880 -msgid "No previous zoom." -msgstr "Nessuno zoom precedente." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:159 +msgctxt "Palette" +msgid "deeppink (#FF1493)" +msgstr "" -#: ../src/desktop.cpp:901 -msgid "No next zoom." -msgstr "Nessuno zoom successivo." +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:160 +msgctxt "Palette" +msgid "hotpink (#FF69B4)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 -msgid "Grid _units:" -msgstr "_UnitĂ  della griglia:" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:161 +msgctxt "Palette" +msgid "lavenderblush (#FFF0F5)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 -msgid "_Origin X:" -msgstr "_Origine X:" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:162 +msgctxt "Palette" +msgid "palevioletred (#DB7093)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 -#: ../src/ui/dialog/inkscape-preferences.cpp:737 -#: ../src/ui/dialog/inkscape-preferences.cpp:762 -msgid "X coordinate of grid origin" -msgstr "Coordinata X dell'origine della griglia" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:163 +msgctxt "Palette" +msgid "crimson (#DC143C)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 -msgid "O_rigin Y:" -msgstr "_Origine Y:" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:164 +msgctxt "Palette" +msgid "pink (#FFC0CB)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -msgid "Y coordinate of grid origin" -msgstr "Coordinate Y dell'origine della griglia" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:165 +msgctxt "Palette" +msgid "lightpink (#FFB6C1)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 -msgid "Spacing _Y:" -msgstr "Spaziatura _Y:" +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:166 +msgctxt "Palette" +msgid "rebeccapurple (#663399)" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:323 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 -msgid "Base length of z-axis" -msgstr "UnitĂ  di lunghezza dell'asse z" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:167 +#, fuzzy +msgctxt "Palette" +msgid "Butter 1" +msgstr "Estremo geometrico" -#: ../src/display/canvas-axonomgrid.cpp:325 -#: ../src/ui/dialog/inkscape-preferences.cpp:769 -#: ../src/widgets/box3d-toolbar.cpp:299 -msgid "Angle X:" -msgstr "Angolo X:" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:168 +#, fuzzy +msgctxt "Palette" +msgid "Butter 2" +msgstr "Estremo geometrico" -#: ../src/display/canvas-axonomgrid.cpp:325 -#: ../src/ui/dialog/inkscape-preferences.cpp:769 -msgid "Angle of x-axis" -msgstr "Angolo dell'asse x" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:169 +#, fuzzy +msgctxt "Palette" +msgid "Butter 3" +msgstr "Estremo geometrico" -#: ../src/display/canvas-axonomgrid.cpp:327 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 -#: ../src/widgets/box3d-toolbar.cpp:378 -msgid "Angle Z:" -msgstr "Angolo Z:" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:170 +msgctxt "Palette" +msgid "Chameleon 1" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:327 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 -msgid "Angle of z-axis" -msgstr "Angolo dell'asse z" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:171 +msgctxt "Palette" +msgid "Chameleon 2" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -#, fuzzy -msgid "Minor grid line _color:" -msgstr "Colore delle linee principali delle griglia:" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:172 +msgctxt "Palette" +msgid "Chameleon 3" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:173 #, fuzzy -msgid "Minor grid line color" -msgstr "Colore delle linee principali della griglia" +msgctxt "Palette" +msgid "Orange 1" +msgstr "Ordinamento" -#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:174 #, fuzzy -msgid "Color of the minor grid lines" -msgstr "Colore delle linee della griglia" +msgctxt "Palette" +msgid "Orange 2" +msgstr "Ordinamento" -#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 -msgid "Ma_jor grid line color:" -msgstr "Colore delle linee principali delle _griglia:" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:175 +#, fuzzy +msgctxt "Palette" +msgid "Orange 3" +msgstr "Ordinamento" -#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 -#: ../src/ui/dialog/inkscape-preferences.cpp:723 -msgid "Major grid line color" -msgstr "Colore delle linee principali della griglia" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:176 +msgctxt "Palette" +msgid "Sky Blue 1" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 -msgid "Color of the major (highlighted) grid lines" -msgstr "Colore delle linee principali (evidenziate) della griglia" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:177 +msgctxt "Palette" +msgid "Sky Blue 2" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 -msgid "_Major grid line every:" -msgstr "Li_nee principali della griglia ogni:" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:178 +msgctxt "Palette" +msgid "Sky Blue 3" +msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 -msgid "lines" -msgstr "linee" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:179 +msgctxt "Palette" +msgid "Plum 1" +msgstr "" -#: ../src/display/canvas-grid.cpp:63 -msgid "Rectangular grid" -msgstr "Griglia rettangolare" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:180 +msgctxt "Palette" +msgid "Plum 2" +msgstr "" -#: ../src/display/canvas-grid.cpp:64 -msgid "Axonometric grid" -msgstr "Griglia assonometrica" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:181 +msgctxt "Palette" +msgid "Plum 3" +msgstr "" -#: ../src/display/canvas-grid.cpp:275 -msgid "Create new grid" -msgstr "Crea nuova griglia" - -#: ../src/display/canvas-grid.cpp:341 -msgid "_Enabled" -msgstr "_Abilitata" - -#: ../src/display/canvas-grid.cpp:342 -msgid "" -"Determines whether to snap to this grid or not. Can be 'on' for invisible " -"grids." +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:182 +msgctxt "Palette" +msgid "Chocolate 1" msgstr "" -"Determina se agganciare a questa griglia o meno. Può essere attiva per " -"griglie invisibili." -#: ../src/display/canvas-grid.cpp:346 -msgid "Snap to visible _grid lines only" -msgstr "Aggancia solo alle linee visibili della griglia" - -#: ../src/display/canvas-grid.cpp:347 -msgid "" -"When zoomed out, not all grid lines will be displayed. Only the visible ones " -"will be snapped to" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:183 +msgctxt "Palette" +msgid "Chocolate 2" msgstr "" -"Quando si rimpicciolisce, non tutte le linee della griglia vengono mostrate. " -"L'aggancio si effettua solo su quelle visibili" - -#: ../src/display/canvas-grid.cpp:351 -msgid "_Visible" -msgstr "_Visibile" -#: ../src/display/canvas-grid.cpp:352 -msgid "" -"Determines whether the grid is displayed or not. Objects are still snapped " -"to invisible grids." +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:184 +msgctxt "Palette" +msgid "Chocolate 3" msgstr "" -"Determina se la griglia viene mostrata o meno. Gli oggetti vengono " -"agganciati anche alle griglie invisibili." - -#: ../src/display/canvas-grid.cpp:699 -msgid "Spacing _X:" -msgstr "Spaziatura _X:" -#: ../src/display/canvas-grid.cpp:699 -#: ../src/ui/dialog/inkscape-preferences.cpp:743 -msgid "Distance between vertical grid lines" -msgstr "Distanza tra linee guida verticali" - -#: ../src/display/canvas-grid.cpp:701 -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -msgid "Distance between horizontal grid lines" -msgstr "Distanza tra linee guida orizzontali" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:185 +#, fuzzy +msgctxt "Palette" +msgid "Scarlet Red 1" +msgstr "ModalitĂ  ridimensionamento" -#: ../src/display/canvas-grid.cpp:732 -msgid "_Show dots instead of lines" -msgstr "Vi_sualizza punti invece di linee" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:186 +#, fuzzy +msgctxt "Palette" +msgid "Scarlet Red 2" +msgstr "ModalitĂ  ridimensionamento" -#: ../src/display/canvas-grid.cpp:733 -msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "" -"Se impostato, visualizza i punti di intersezione delle griglie invece delle " -"linee" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:187 +#, fuzzy +msgctxt "Palette" +msgid "Scarlet Red 3" +msgstr "ModalitĂ  ridimensionamento" -#. TRANSLATORS: undefined target for snapping -#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 -#: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 -msgid "UNDEFINED" -msgstr "NON DEFINITO" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:188 +#, fuzzy +msgctxt "Palette" +msgid "Snowy White" +msgstr "Bianco" -#: ../src/display/snap-indicator.cpp:79 -msgid "grid line" -msgstr "linea della griglia" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:189 +#, fuzzy +msgctxt "Palette" +msgid "Aluminium 1" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:82 -msgid "grid intersection" -msgstr "intersezione della griglia" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:190 +#, fuzzy +msgctxt "Palette" +msgid "Aluminium 2" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:85 +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:191 #, fuzzy -msgid "grid line (perpendicular)" -msgstr "Bisettrice perpendicolare" +msgctxt "Palette" +msgid "Aluminium 3" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:88 -msgid "guide" -msgstr "guida" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:192 +#, fuzzy +msgctxt "Palette" +msgid "Aluminium 4" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:91 -msgid "guide intersection" -msgstr "intersezione guide" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:193 +#, fuzzy +msgctxt "Palette" +msgid "Aluminium 5" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:94 -msgid "guide origin" -msgstr "origine guida" +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:194 +#, fuzzy +msgctxt "Palette" +msgid "Aluminium 6" +msgstr "Alluminio" -#: ../src/display/snap-indicator.cpp:97 +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:195 #, fuzzy -msgid "guide (perpendicular)" -msgstr "Bisettrice perpendicolare" +msgctxt "Palette" +msgid "Jet Black" +msgstr "Nero" -#: ../src/display/snap-indicator.cpp:100 -msgid "grid-guide intersection" -msgstr "intersezioni griglia-guide" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1" +msgstr "Strisce 1:1" -#: ../src/display/snap-indicator.cpp:103 -msgid "cusp node" -msgstr "nodo angolare" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1 white" +msgstr "Strisce 1:1 bianche" -#: ../src/display/snap-indicator.cpp:106 -msgid "smooth node" -msgstr "nodo curvo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5" +msgstr "Strisce 1:1.5" -#: ../src/display/snap-indicator.cpp:109 -msgid "path" -msgstr "tracciato" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5 white" +msgstr "Strisce 1:1.5 bianche" -#: ../src/display/snap-indicator.cpp:112 -#, fuzzy -msgid "path (perpendicular)" -msgstr "Bisettrice perpendicolare" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2" +msgstr "Strisce 1:2" -#: ../src/display/snap-indicator.cpp:115 -msgid "path (tangential)" -msgstr "" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2 white" +msgstr "Strisce 1:2 bianche" -#: ../src/display/snap-indicator.cpp:118 -msgid "path intersection" -msgstr "intersezione tracciato" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3" +msgstr "Strisce 1:3" -#: ../src/display/snap-indicator.cpp:121 -#, fuzzy -msgid "guide-path intersection" -msgstr "intersezione guide" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3 white" +msgstr "Strisce 1:3 bianche" -#: ../src/display/snap-indicator.cpp:124 -#, fuzzy -msgid "clip-path" -msgstr "Imposta fissaggio" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4" +msgstr "Strisce 1:4" -#: ../src/display/snap-indicator.cpp:127 -#, fuzzy -msgid "mask-path" -msgstr "Modifica tracciato maschera" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4 white" +msgstr "Strisce 1:4 bianche" -#: ../src/display/snap-indicator.cpp:130 -msgid "bounding box corner" -msgstr "angolo riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5" +msgstr "Strisce 1:5" -#: ../src/display/snap-indicator.cpp:133 -msgid "bounding box side" -msgstr "lato riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5 white" +msgstr "Strisce 1:5 bianche" -#: ../src/display/snap-indicator.cpp:136 -msgid "page border" -msgstr "bordo pagina" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8" +msgstr "Strisce 1:8" -#: ../src/display/snap-indicator.cpp:139 -msgid "line midpoint" -msgstr "metĂ  linea" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8 white" +msgstr "Strisce 1:8 bianche" -#: ../src/display/snap-indicator.cpp:142 -msgid "object midpoint" -msgstr "baricentro oggetto" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10" +msgstr "Strisce 1:10" -#: ../src/display/snap-indicator.cpp:145 -msgid "object rotation center" -msgstr "centro di rotazione oggetto" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10 white" +msgstr "Strisce 1:10 bianche" -#: ../src/display/snap-indicator.cpp:148 -msgid "bounding box side midpoint" -msgstr "metĂ  lato riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16" +msgstr "Strisce 1:16" -#: ../src/display/snap-indicator.cpp:151 -msgid "bounding box midpoint" -msgstr "baricentro riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16 white" +msgstr "Strisce 1:16 bianche" -#: ../src/display/snap-indicator.cpp:154 -msgid "page corner" -msgstr "angolo pagina" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32" +msgstr "Strisce 1:32" -#: ../src/display/snap-indicator.cpp:157 -msgid "quadrant point" -msgstr "punto quadrante" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32 white" +msgstr "Strisce 1:32 bianche" -#: ../src/display/snap-indicator.cpp:161 -msgid "corner" -msgstr "angolo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:64" +msgstr "Strisce 1:64" -#: ../src/display/snap-indicator.cpp:164 -msgid "text anchor" -msgstr "" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1" +msgstr "Strisce 2:1" -#: ../src/display/snap-indicator.cpp:167 -msgid "text baseline" -msgstr "linea base del testo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1 white" +msgstr "Strisce 2:1 bianche" -#: ../src/display/snap-indicator.cpp:170 -#, fuzzy -msgid "constrained angle" -msgstr "Angolo di rotazione" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1" +msgstr "Strisce 4:1" -#: ../src/display/snap-indicator.cpp:173 -#, fuzzy -msgid "constraint" -msgstr "Costante:" +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1 white" +msgstr "Strisce 4:1 bianche" -#: ../src/display/snap-indicator.cpp:187 -msgid "Bounding box corner" -msgstr "Angolo riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard" +msgstr "Scacchiera" -#: ../src/display/snap-indicator.cpp:190 -msgid "Bounding box midpoint" -msgstr "Baricentro riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard white" +msgstr "Scacchiera bianca" -#: ../src/display/snap-indicator.cpp:193 -msgid "Bounding box side midpoint" -msgstr "MetĂ  lato riquadro" +#: ../share/patterns/patterns.svg.h:1 +msgid "Packed circles" +msgstr "Cerchi impacchettati" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1319 -msgid "Smooth node" -msgstr "Nodo curvo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small" +msgstr "Pois, piccoli" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1318 -msgid "Cusp node" -msgstr "Nodo angolare" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small white" +msgstr "A pois, piccoli e bianchi" -#: ../src/display/snap-indicator.cpp:202 -msgid "Line midpoint" -msgstr "MetĂ  linea" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium" +msgstr "Pois, medi" -#: ../src/display/snap-indicator.cpp:205 -msgid "Object midpoint" -msgstr "Baricentro oggetto" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium white" +msgstr "A pois, medi e bianchi" -#: ../src/display/snap-indicator.cpp:208 -msgid "Object rotation center" -msgstr "Centro di rotazione oggetto" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large" +msgstr "Pois, larghi" -#: ../src/display/snap-indicator.cpp:212 -msgid "Handle" -msgstr "Maniglia" +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large white" +msgstr "A pois, larghi e bianchi" -#: ../src/display/snap-indicator.cpp:215 -msgid "Path intersection" -msgstr "Intersezione tracciato" +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy" +msgstr "Ondulato" -#: ../src/display/snap-indicator.cpp:218 -msgid "Guide" -msgstr "Guida" +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy white" +msgstr "Ondulato bianco" -#: ../src/display/snap-indicator.cpp:221 -msgid "Guide origin" -msgstr "Origine guida" +#: ../share/patterns/patterns.svg.h:1 +msgid "Camouflage" +msgstr "Camuffamento" -#: ../src/display/snap-indicator.cpp:224 -msgid "Convex hull corner" -msgstr "Angolo convesso" +#: ../share/patterns/patterns.svg.h:1 +msgid "Ermine" +msgstr "Ermellino" -#: ../src/display/snap-indicator.cpp:227 -msgid "Quadrant point" -msgstr "Punto cardinale" +#: ../share/patterns/patterns.svg.h:1 +msgid "Sand (bitmap)" +msgstr "Sabbia (bitmap)" -#: ../src/display/snap-indicator.cpp:231 -msgid "Corner" -msgstr "Angolo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Cloth (bitmap)" +msgstr "Tessuto (bitmap)" -#: ../src/display/snap-indicator.cpp:234 -#, fuzzy -msgid "Text anchor" -msgstr "Input testo" +#: ../share/patterns/patterns.svg.h:1 +msgid "Old paint (bitmap)" +msgstr "Dipinto antico (bitmap)" -#: ../src/display/snap-indicator.cpp:237 -msgid "Multiple of grid spacing" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:2 +msgctxt "Symbol" +msgid "Flow Chart Shapes" msgstr "" -#: ../src/display/snap-indicator.cpp:268 -msgid " to " -msgstr " a " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:3 +msgctxt "Symbol" +msgid "Process" +msgstr "" -#: ../src/document.cpp:542 -#, c-format -msgid "New document %d" -msgstr "Nuovo documento %d" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:4 +#, fuzzy +msgctxt "Symbol" +msgid "Input/Output" +msgstr "Output" -#: ../src/document.cpp:547 -#, fuzzy, c-format -msgid "Memory document %d" -msgstr "Documento memoria %d" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:5 +#, fuzzy +msgctxt "Symbol" +msgid "Document" +msgstr "Documento" -#: ../src/document.cpp:576 +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:6 #, fuzzy -msgid "Memory document %1" -msgstr "Documento memoria %d" +msgctxt "Symbol" +msgid "Manual Operation" +msgstr "Saturazione" -#: ../src/document.cpp:788 -#, c-format -msgid "Unnamed document %d" -msgstr "Documento senza nome %d" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:7 +#, fuzzy +msgctxt "Symbol" +msgid "Preparation" +msgstr "Saturazione" -#: ../src/event-log.cpp:185 -msgid "[Unchanged]" -msgstr "[Non modificato]" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:8 +#, fuzzy +msgctxt "Symbol" +msgid "Merge" +msgstr "Mischia" -#. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2386 -msgid "_Undo" -msgstr "Ann_ulla" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:9 +#, fuzzy +msgctxt "Symbol" +msgid "Decision" +msgstr "Precisione" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2388 -msgid "_Redo" -msgstr "_Ripeti" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:10 +msgctxt "Symbol" +msgid "Magnetic Tape" +msgstr "" -#: ../src/extension/dependency.cpp:243 -msgid "Dependency:" -msgstr "Dipendenza:" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:11 +#, fuzzy +msgctxt "Symbol" +msgid "Display" +msgstr "ModalitĂ  visualizzazione" -#: ../src/extension/dependency.cpp:244 -msgid " type: " -msgstr " tipo: " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:12 +msgctxt "Symbol" +msgid "Auxiliary Operation" +msgstr "" -#: ../src/extension/dependency.cpp:245 -msgid " location: " -msgstr " posizione: " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:13 +#, fuzzy +msgctxt "Symbol" +msgid "Manual Input" +msgstr "Input EMF" -#: ../src/extension/dependency.cpp:246 -msgid " string: " -msgstr " stringa: " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:14 +#, fuzzy +msgctxt "Symbol" +msgid "Extract" +msgstr "Estrai immagine" -#: ../src/extension/dependency.cpp:249 -msgid " description: " -msgstr " descrizione: " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:15 +msgctxt "Symbol" +msgid "Terminal/Interrupt" +msgstr "" -#: ../src/extension/effect.cpp:41 -msgid " (No preferences)" -msgstr " (Nessuna preferenza)" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:16 +msgctxt "Symbol" +msgid "Punched Card" +msgstr "" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2160 +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:17 #, fuzzy -msgid "Extensions" -msgstr "Este_nsioni" +msgctxt "Symbol" +msgid "Punch Tape" +msgstr "Buca" -#. This is some filler text, needs to change before relase -#: ../src/extension/error-file.cpp:52 -msgid "" -"One or more extensions failed to load\n" -"\n" -"The failed extensions have been skipped. Inkscape will continue to run " -"normally but those extensions will be unavailable. For details to " -"troubleshoot this problem, please refer to the error log located at: " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:18 +msgctxt "Symbol" +msgid "Online Storage" msgstr "" -"Errore nel caricamento di una o piĂą " -"estensioni\n" -"\n" -"Le estensioni problematiche verranno ignorate. Inkscape continuerĂ  a " -"funzionare normalmente ma queste estensioni non saranno disponibili. Per " -"ottenere dettagli per risolvere questo problema, consultare il registro " -"degli errori disponibile presso: " - -#: ../src/extension/error-file.cpp:66 -msgid "Show dialog on startup" -msgstr "Mostra la finestra all'avvio" - -#: ../src/extension/execution-env.cpp:144 -#, c-format -msgid "'%s' working, please wait..." -msgstr "«%s» in esecuzione, attendere..." -#. static int i = 0; -#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:266 -msgid "" -" This is caused by an improper .inx file for this extension. An improper ." -"inx file could have been caused by a faulty installation of Inkscape." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:19 +msgctxt "Symbol" +msgid "Keying" msgstr "" -" Questo può essere stato causato da un file .inx per l'estensione scorretto." -"Un file .inx scorretto potrebbe essere causato da un'installazione " -"problematica di Inkscape." -#: ../src/extension/extension.cpp:276 -msgid "the extension is designed for Windows only." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:20 +msgctxt "Symbol" +msgid "Sort" msgstr "" -#: ../src/extension/extension.cpp:281 -msgid "an ID was not defined for it." -msgstr "non è stato definito un ID in proposito." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:21 +#, fuzzy +msgctxt "Symbol" +msgid "Connector" +msgstr "Connettore" -#: ../src/extension/extension.cpp:285 -msgid "there was no name defined for it." -msgstr "non è stato definito nessun nome in proposito." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:22 +#, fuzzy +msgctxt "Symbol" +msgid "Off-Page Connector" +msgstr "Connettore" -#: ../src/extension/extension.cpp:289 -msgid "the XML description of it got lost." -msgstr "la descrizione XML è andata perduta." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:23 +msgctxt "Symbol" +msgid "Transmittal Tape" +msgstr "" -#: ../src/extension/extension.cpp:293 -msgid "no implementation was defined for the extension." -msgstr "non è stata definita nessuna implementazione per l'estensione." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:24 +msgctxt "Symbol" +msgid "Communication Link" +msgstr "" -#. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:300 -msgid "a dependency was not met." -msgstr "una dipendenza non è stata soddisfatta." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:25 +#, fuzzy +msgctxt "Symbol" +msgid "Collate" +msgstr "Modula" -#: ../src/extension/extension.cpp:320 -msgid "Extension \"" -msgstr "Estensione \"" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:26 +msgctxt "Symbol" +msgid "Comment/Annotation" +msgstr "" -#: ../src/extension/extension.cpp:320 -msgid "\" failed to load because " -msgstr "\" non caricata perchè " +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:27 +msgctxt "Symbol" +msgid "Core" +msgstr "" -#: ../src/extension/extension.cpp:669 -#, c-format -msgid "Could not create extension error log file '%s'" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:28 +msgctxt "Symbol" +msgid "Predefined Process" msgstr "" -"Impossibile creare il file per il registro degli errori dell'estensione '%s'" -#: ../src/extension/extension.cpp:777 -#: ../share/extensions/webslicer_create_rect.inx.h:2 -msgid "Name:" -msgstr "Nome:" - -#: ../src/extension/extension.cpp:778 -msgid "ID:" -msgstr "ID:" - -#: ../src/extension/extension.cpp:779 -msgid "State:" -msgstr "Stato:" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:29 +msgctxt "Symbol" +msgid "Magnetic Disk (Database)" +msgstr "" -#: ../src/extension/extension.cpp:779 -msgid "Loaded" -msgstr "Caricato" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:30 +msgctxt "Symbol" +msgid "Magnetic Drum (Direct Access)" +msgstr "" -#: ../src/extension/extension.cpp:779 -msgid "Unloaded" -msgstr "Non caricato" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:31 +msgctxt "Symbol" +msgid "Offline Storage" +msgstr "" -#: ../src/extension/extension.cpp:779 -msgid "Deactivated" -msgstr "Disattivato" +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:32 +msgctxt "Symbol" +msgid "Logical Or" +msgstr "" -#: ../src/extension/extension.cpp:819 -msgid "" -"Currently there is no help available for this Extension. Please look on the " -"Inkscape website or ask on the mailing lists if you have questions regarding " -"this extension." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:33 +msgctxt "Symbol" +msgid "Logical And" msgstr "" -"Non è disponibile una guida per questa estensione. Per avere ulteriori " -"informazioni, consultare il sito web di Inkscape o rivolgersi alle mailing " -"list." -#: ../src/extension/implementation/script.cpp:1037 -msgid "" -"Inkscape has received additional data from the script executed. The script " -"did not return an error, but this may indicate the results will not be as " -"expected." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:34 +msgctxt "Symbol" +msgid "Delay" msgstr "" -"Inkscape ha ricevuto dei dati aggiuntivi dallo script invocato. Lo script " -"non ha riportato errori, ma questo potrebbe indicare che il risultato non è " -"quello atteso." -#: ../src/extension/init.cpp:288 -msgid "Null external module directory name. Modules will not be loaded." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:35 +msgctxt "Symbol" +msgid "Loop Limit Begin" msgstr "" -"Nessun nome per la cartella dei moduli esterni. I moduli non verranno " -"caricati." -#: ../src/extension/init.cpp:302 -#: ../src/extension/internal/filter/filter-file.cpp:59 -#, c-format -msgid "" -"Modules directory (%s) is unavailable. External modules in that directory " -"will not be loaded." +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:36 +msgctxt "Symbol" +msgid "Loop Limit End" msgstr "" -"La cartella dei moduli (%s) non è disponibile. I moduli esterni presenti in " -"questa cartella non verranno caricati." -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 -msgid "Adaptive Threshold" -msgstr "Soglia adattiva" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:37 +msgctxt "Symbol" +msgid "Map Symbols" +msgstr "Simboli mappa" -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 -#: ../src/extension/internal/bitmap/raise.cpp:42 -#: ../src/extension/internal/bitmap/sample.cpp:41 -#: ../src/extension/internal/bluredge.cpp:138 -#: ../src/ui/dialog/object-attributes.cpp:68 -#: ../src/ui/dialog/object-attributes.cpp:77 -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/foldablebox.inx.h:2 -msgid "Width:" -msgstr "Larghezza:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:38 +msgctxt "Symbol" +msgid "Bed and Breakfast" +msgstr "Bed and Breakfast" -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 -#: ../src/extension/internal/bitmap/raise.cpp:43 -#: ../src/extension/internal/bitmap/sample.cpp:42 -#: ../src/ui/dialog/object-attributes.cpp:69 -#: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 -msgid "Height:" -msgstr "Altezza:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:39 +msgctxt "Symbol" +msgid "Youth Hostel" +msgstr "Ostello per la GioventĂą" -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 -#: ../share/extensions/printing_marks.inx.h:12 -msgid "Offset:" -msgstr "Posizione:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:40 +msgctxt "Symbol" +msgid "Shelter" +msgstr "Rifugio" -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 -#: ../src/extension/internal/bitmap/addNoise.cpp:58 -#: ../src/extension/internal/bitmap/blur.cpp:45 -#: ../src/extension/internal/bitmap/channel.cpp:64 -#: ../src/extension/internal/bitmap/charcoal.cpp:45 -#: ../src/extension/internal/bitmap/colorize.cpp:56 -#: ../src/extension/internal/bitmap/contrast.cpp:46 -#: ../src/extension/internal/bitmap/crop.cpp:75 -#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 -#: ../src/extension/internal/bitmap/despeckle.cpp:41 -#: ../src/extension/internal/bitmap/edge.cpp:43 -#: ../src/extension/internal/bitmap/emboss.cpp:45 -#: ../src/extension/internal/bitmap/enhance.cpp:40 -#: ../src/extension/internal/bitmap/equalize.cpp:40 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 -#: ../src/extension/internal/bitmap/implode.cpp:43 -#: ../src/extension/internal/bitmap/level.cpp:49 -#: ../src/extension/internal/bitmap/levelChannel.cpp:71 -#: ../src/extension/internal/bitmap/medianFilter.cpp:43 -#: ../src/extension/internal/bitmap/modulate.cpp:48 -#: ../src/extension/internal/bitmap/negate.cpp:41 -#: ../src/extension/internal/bitmap/normalize.cpp:41 -#: ../src/extension/internal/bitmap/oilPaint.cpp:43 -#: ../src/extension/internal/bitmap/opacity.cpp:44 -#: ../src/extension/internal/bitmap/raise.cpp:48 -#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 -#: ../src/extension/internal/bitmap/sample.cpp:46 -#: ../src/extension/internal/bitmap/shade.cpp:48 -#: ../src/extension/internal/bitmap/sharpen.cpp:45 -#: ../src/extension/internal/bitmap/solarize.cpp:45 -#: ../src/extension/internal/bitmap/spread.cpp:43 -#: ../src/extension/internal/bitmap/swirl.cpp:43 -#: ../src/extension/internal/bitmap/threshold.cpp:44 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 -#: ../src/extension/internal/bitmap/wave.cpp:45 -msgid "Raster" -msgstr "Bitmap" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:41 +msgctxt "Symbol" +msgid "Motel" +msgstr "Motel" -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 -#, fuzzy -msgid "Apply adaptive thresholding to selected bitmap(s)" -msgstr "Applica soglia adattiva alla bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:42 +msgctxt "Symbol" +msgid "Hotel" +msgstr "Hotel" -#: ../src/extension/internal/bitmap/addNoise.cpp:45 -msgid "Add Noise" -msgstr "Aggiungi disturbo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:43 +msgctxt "Symbol" +msgid "Hostel" +msgstr "Ostello" -#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); -#: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 -#: ../src/extension/internal/filter/distort.h:69 -#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -#: ../src/ui/dialog/object-attributes.cpp:49 -#: ../share/extensions/jessyInk_effects.inx.h:5 -#: ../share/extensions/jessyInk_export.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:5 -#: ../share/extensions/webslicer_create_rect.inx.h:14 -msgid "Type:" -msgstr "Tipo:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:44 +msgctxt "Symbol" +msgid "Chalet" +msgstr "Chalet" -#: ../src/extension/internal/bitmap/addNoise.cpp:48 -msgid "Uniform Noise" -msgstr "Disturbo uniforme" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:45 +msgctxt "Symbol" +msgid "Caravan Park" +msgstr "Campeggio per roulotte" -#: ../src/extension/internal/bitmap/addNoise.cpp:49 -msgid "Gaussian Noise" -msgstr "Disturbo gaussiano" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:46 +msgctxt "Symbol" +msgid "Camping" +msgstr "Campeggio" -#: ../src/extension/internal/bitmap/addNoise.cpp:50 -msgid "Multiplicative Gaussian Noise" -msgstr "Disturbo moltiplicativo gaussiano" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:47 +msgctxt "Symbol" +msgid "Alpine Hut" +msgstr "Rifugio alpino" -#: ../src/extension/internal/bitmap/addNoise.cpp:51 -msgid "Impulse Noise" -msgstr "Disturbo ad impulso" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:48 +msgctxt "Symbol" +msgid "Bench or Park" +msgstr "Panca o Parco" -#: ../src/extension/internal/bitmap/addNoise.cpp:52 -msgid "Laplacian Noise" -msgstr "Disturbo di Laplace" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:49 +msgctxt "Symbol" +msgid "Playground" +msgstr "Parco giochi" -#: ../src/extension/internal/bitmap/addNoise.cpp:53 -msgid "Poisson Noise" -msgstr "Disturbo di Poisson" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:50 +msgctxt "Symbol" +msgid "Fountain" +msgstr "Fontana" -#: ../src/extension/internal/bitmap/addNoise.cpp:60 -#, fuzzy -msgid "Add random noise to selected bitmap(s)" -msgstr "Aggiunge un disturbo casuale alla bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:51 +msgctxt "Symbol" +msgid "Library" +msgstr "Biblioteca" -#: ../src/extension/internal/bitmap/blur.cpp:38 -#: ../src/extension/internal/filter/blurs.h:54 -#: ../src/extension/internal/filter/paint.h:710 -#: ../src/extension/internal/filter/transparency.h:343 -msgid "Blur" -msgstr "Sfocatura" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:52 +msgctxt "Symbol" +msgid "Town Hall" +msgstr "Municipio" -#: ../src/extension/internal/bitmap/blur.cpp:40 -#: ../src/extension/internal/bitmap/charcoal.cpp:40 -#: ../src/extension/internal/bitmap/edge.cpp:39 -#: ../src/extension/internal/bitmap/emboss.cpp:40 -#: ../src/extension/internal/bitmap/medianFilter.cpp:39 -#: ../src/extension/internal/bitmap/oilPaint.cpp:39 -#: ../src/extension/internal/bitmap/sharpen.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 -msgid "Radius:" -msgstr "Raggio:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:53 +msgctxt "Symbol" +msgid "Court" +msgstr "Tribunale" -#: ../src/extension/internal/bitmap/blur.cpp:41 -#: ../src/extension/internal/bitmap/charcoal.cpp:41 -#: ../src/extension/internal/bitmap/emboss.cpp:41 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 -#: ../src/extension/internal/bitmap/sharpen.cpp:41 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#, fuzzy -msgid "Sigma:" -msgstr "Sigma" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:54 +msgctxt "Symbol" +msgid "Fire Station / House" +msgstr "Caserma dei pompieri" -#: ../src/extension/internal/bitmap/blur.cpp:47 -msgid "Blur selected bitmap(s)" -msgstr "Sfoca le bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:55 +msgctxt "Symbol" +msgid "Police Station" +msgstr "Stazione di polizia" -#: ../src/extension/internal/bitmap/channel.cpp:48 -msgid "Channel" -msgstr "Canale" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:56 +msgctxt "Symbol" +msgid "Prison" +msgstr "Prison" -#: ../src/extension/internal/bitmap/channel.cpp:50 -#, fuzzy -msgid "Layer:" -msgstr "Livello" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:57 +msgctxt "Symbol" +msgid "Post Office" +msgstr "Ufficio postale" -#: ../src/extension/internal/bitmap/channel.cpp:51 -#: ../src/extension/internal/bitmap/levelChannel.cpp:55 -msgid "Red Channel" -msgstr "Canale «Rosso»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:58 +msgctxt "Symbol" +msgid "Public Building" +msgstr "Edificio pubblico" -#: ../src/extension/internal/bitmap/channel.cpp:52 -#: ../src/extension/internal/bitmap/levelChannel.cpp:56 -msgid "Green Channel" -msgstr "Canale «Verde»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:59 +msgctxt "Symbol" +msgid "Recycling" +msgstr "Riciclaggio" -#: ../src/extension/internal/bitmap/channel.cpp:53 -#: ../src/extension/internal/bitmap/levelChannel.cpp:57 -msgid "Blue Channel" -msgstr "Canale «Blu»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:60 +msgctxt "Symbol" +msgid "Survey Point" +msgstr "Punto di osservazione" -#: ../src/extension/internal/bitmap/channel.cpp:54 -#: ../src/extension/internal/bitmap/levelChannel.cpp:58 -msgid "Cyan Channel" -msgstr "Canale «Ciano»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:61 +msgctxt "Symbol" +msgid "Toll Booth" +msgstr "Casello" -#: ../src/extension/internal/bitmap/channel.cpp:55 -#: ../src/extension/internal/bitmap/levelChannel.cpp:59 -msgid "Magenta Channel" -msgstr "Canale «Magenta»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:62 +msgctxt "Symbol" +msgid "Lift Gate" +msgstr "Sponda montacarichi" -#: ../src/extension/internal/bitmap/channel.cpp:56 -#: ../src/extension/internal/bitmap/levelChannel.cpp:60 -msgid "Yellow Channel" -msgstr "Canale «Giallo»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:63 +msgctxt "Symbol" +msgid "Steps" +msgstr "Scalini" -#: ../src/extension/internal/bitmap/channel.cpp:57 -#: ../src/extension/internal/bitmap/levelChannel.cpp:61 -msgid "Black Channel" -msgstr "Canale «Nero»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:64 +msgctxt "Symbol" +msgid "Stile" +msgstr "Scaletta" -#: ../src/extension/internal/bitmap/channel.cpp:58 -#: ../src/extension/internal/bitmap/levelChannel.cpp:62 -msgid "Opacity Channel" -msgstr "Canale «Opacità»" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:65 +msgctxt "Symbol" +msgid "Kissing Gate" +msgstr "Cancello per il bestiame" -#: ../src/extension/internal/bitmap/channel.cpp:59 -#: ../src/extension/internal/bitmap/levelChannel.cpp:63 -msgid "Matte Channel" -msgstr "OpacitĂ  canale" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:66 +msgctxt "Symbol" +msgid "Gate" +msgstr "Cancello" -#: ../src/extension/internal/bitmap/channel.cpp:66 -#, fuzzy -msgid "Extract specific channel from image" -msgstr "Estrai canale specifico dall'immagine" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:305 +#: ../share/symbols/symbols.h:306 +msgctxt "Symbol" +msgid "Exit" +msgstr "Uscita" -#: ../src/extension/internal/bitmap/charcoal.cpp:38 -msgid "Charcoal" -msgstr "Carboncino" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:68 +msgctxt "Symbol" +msgid "Entrance" +msgstr "Entrata" -#: ../src/extension/internal/bitmap/charcoal.cpp:47 -#, fuzzy -msgid "Apply charcoal stylization to selected bitmap(s)" -msgstr "Applica stilizzazione al carboncino alle bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:69 +msgctxt "Symbol" +msgid "Cycle Barrier" +msgstr "Barriere biciclette" -#: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 -msgid "Colorize" -msgstr "Colora" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:70 +msgctxt "Symbol" +msgid "Cattle Grid" +msgstr "Grata che impedisce il passaggio di bestiame" -#: ../src/extension/internal/bitmap/colorize.cpp:52 -#: ../src/extension/internal/filter/bumps.h:101 -#: ../src/extension/internal/filter/bumps.h:321 -#: ../src/extension/internal/filter/bumps.h:328 -#: ../src/extension/internal/filter/color.h:82 -#: ../src/extension/internal/filter/color.h:164 -#: ../src/extension/internal/filter/color.h:171 -#: ../src/extension/internal/filter/color.h:262 -#: ../src/extension/internal/filter/color.h:340 -#: ../src/extension/internal/filter/color.h:347 -#: ../src/extension/internal/filter/color.h:437 -#: ../src/extension/internal/filter/color.h:532 -#: ../src/extension/internal/filter/color.h:654 -#: ../src/extension/internal/filter/color.h:751 -#: ../src/extension/internal/filter/color.h:830 -#: ../src/extension/internal/filter/color.h:921 -#: ../src/extension/internal/filter/color.h:1049 -#: ../src/extension/internal/filter/color.h:1119 -#: ../src/extension/internal/filter/color.h:1212 -#: ../src/extension/internal/filter/color.h:1324 -#: ../src/extension/internal/filter/color.h:1429 -#: ../src/extension/internal/filter/color.h:1505 -#: ../src/extension/internal/filter/color.h:1609 -#: ../src/extension/internal/filter/color.h:1616 -#: ../src/extension/internal/filter/morphology.h:194 -#: ../src/extension/internal/filter/overlays.h:73 -#: ../src/extension/internal/filter/paint.h:99 -#: ../src/extension/internal/filter/paint.h:713 -#: ../src/extension/internal/filter/paint.h:717 -#: ../src/extension/internal/filter/shadows.h:73 -#: ../src/extension/internal/filter/transparency.h:345 -#: ../src/filter-enums.cpp:66 ../src/ui/dialog/clonetiler.cpp:832 -#: ../src/ui/dialog/clonetiler.cpp:983 -#: ../src/ui/dialog/document-properties.cpp:157 -#: ../share/extensions/color_HSL_adjust.inx.h:20 -#: ../share/extensions/color_blackandwhite.inx.h:3 -#: ../share/extensions/color_brighter.inx.h:2 -#: ../share/extensions/color_custom.inx.h:15 -#: ../share/extensions/color_darker.inx.h:2 -#: ../share/extensions/color_desaturate.inx.h:2 -#: ../share/extensions/color_grayscale.inx.h:2 -#: ../share/extensions/color_lesshue.inx.h:2 -#: ../share/extensions/color_lesslight.inx.h:2 -#: ../share/extensions/color_lesssaturation.inx.h:2 -#: ../share/extensions/color_morehue.inx.h:2 -#: ../share/extensions/color_morelight.inx.h:2 -#: ../share/extensions/color_moresaturation.inx.h:2 -#: ../share/extensions/color_negative.inx.h:2 -#: ../share/extensions/color_randomize.inx.h:8 -#: ../share/extensions/color_removeblue.inx.h:2 -#: ../share/extensions/color_removegreen.inx.h:2 -#: ../share/extensions/color_removered.inx.h:2 -#: ../share/extensions/color_replace.inx.h:6 -#: ../share/extensions/color_rgbbarrel.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:19 -msgid "Color" -msgstr "Colore" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:71 +msgctxt "Symbol" +msgid "Bollard" +msgstr "Colonnina/Bitta" -#: ../src/extension/internal/bitmap/colorize.cpp:58 -#, fuzzy -msgid "Colorize selected bitmap(s) with specified color, using given opacity" -msgstr "" -"Colora la bitmap selezionata con il colore specificato, usando l'opacitĂ  " -"fornita." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:72 +msgctxt "Symbol" +msgid "University" +msgstr "UniversitĂ " -#: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 -msgid "Contrast" -msgstr "Contrasto" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:73 +msgctxt "Symbol" +msgid "High/Secondary School" +msgstr "Scuola superiore" -#: ../src/extension/internal/bitmap/contrast.cpp:42 -#, fuzzy -msgid "Adjust:" -msgstr "Modifica" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:74 +msgctxt "Symbol" +msgid "School" +msgstr "Scuola" -#: ../src/extension/internal/bitmap/contrast.cpp:48 -msgid "Increase or decrease contrast in bitmap(s)" -msgstr "Aumenta o diminuisce il contrasto di una bitmap" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:75 +msgctxt "Symbol" +msgid "Kindergarten" +msgstr "Scuola materna" -#: ../src/extension/internal/bitmap/crop.cpp:66 -#: ../src/extension/internal/filter/bumps.h:86 -#: ../src/extension/internal/filter/bumps.h:315 -msgid "Crop" -msgstr "" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:76 ../share/symbols/symbols.h:239 +#: ../share/symbols/symbols.h:240 +msgctxt "Symbol" +msgid "Nursery" +msgstr "Asilo nido" -#: ../src/extension/internal/bitmap/crop.cpp:68 -msgid "Top (px):" -msgstr "" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:265 +#: ../share/symbols/symbols.h:266 +msgctxt "Symbol" +msgid "Restaurant" +msgstr "Ristorante" -#: ../src/extension/internal/bitmap/crop.cpp:69 -#, fuzzy -msgid "Bottom (px):" -msgstr "Fondo:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:78 +msgctxt "Symbol" +msgid "Pub" +msgstr "Pub" -#: ../src/extension/internal/bitmap/crop.cpp:70 -#, fuzzy -msgid "Left (px):" -msgstr "Scostamento x" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:79 +msgctxt "Symbol" +msgid "Desserts/Cakes Shop" +msgstr "Pasticceria" -#: ../src/extension/internal/bitmap/crop.cpp:71 -#, fuzzy -msgid "Right (px):" -msgstr "Destro:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:80 +msgctxt "Symbol" +msgid "Fast Food" +msgstr "Fast food" -#: ../src/extension/internal/bitmap/crop.cpp:77 -#, fuzzy -msgid "Crop selected bitmap(s)." -msgstr "Sfoca le bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:81 +msgctxt "Symbol" +msgid "Public Tap/Water" +msgstr "Acqua pubblica" -#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 -msgid "Cycle Colormap" -msgstr "Cicla mappa dei colori" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:82 +msgctxt "Symbol" +msgid "Cafe" +msgstr "Caffè" -#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 -#: ../src/extension/internal/bitmap/spread.cpp:39 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/widgets/spray-toolbar.cpp:208 -#, fuzzy -msgid "Amount:" -msgstr "QuantitĂ " +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:83 +msgctxt "Symbol" +msgid "Beer Garden" +msgstr "Degustazione birra" -#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 -#, fuzzy -msgid "Cycle colormap(s) of selected bitmap(s)" -msgstr "Cicla la mappa dei colori della bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:84 +msgctxt "Symbol" +msgid "Wine Bar" +msgstr "Enoteca" -#: ../src/extension/internal/bitmap/despeckle.cpp:36 -msgid "Despeckle" -msgstr "Rimuovi macchie" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:85 +msgctxt "Symbol" +msgid "Opticians/Eye Doctors" +msgstr "Ottico" -#: ../src/extension/internal/bitmap/despeckle.cpp:43 -#, fuzzy -msgid "Reduce speckle noise of selected bitmap(s)" -msgstr "Riduce le macchie dalle bitmpa selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:86 +msgctxt "Symbol" +msgid "Dentist" +msgstr "Dentista" -#: ../src/extension/internal/bitmap/edge.cpp:37 -msgid "Edge" -msgstr "Bordatura" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:87 +msgctxt "Symbol" +msgid "Veterinarian" +msgstr "Veterinario" -#: ../src/extension/internal/bitmap/edge.cpp:45 -#, fuzzy -msgid "Highlight edges of selected bitmap(s)" -msgstr "Evidenzia i bordi delle bitmap selezionate." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:88 +msgctxt "Symbol" +msgid "Drugs Dispensary" +msgstr "Dispensario farmaci" -#: ../src/extension/internal/bitmap/emboss.cpp:38 -msgid "Emboss" -msgstr "Rilievo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:89 +msgctxt "Symbol" +msgid "Pharmacy" +msgstr "Farmacia" -#: ../src/extension/internal/bitmap/emboss.cpp:47 -#, fuzzy -msgid "Emboss selected bitmap(s); highlight edges with 3D effect" -msgstr "" -"Mette in rilievo le bitmap selezionate - esalta gli spigoli con un effetto " -"3D." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:90 +msgctxt "Symbol" +msgid "Accident & Emergency" +msgstr "Pronto soccorso" -#: ../src/extension/internal/bitmap/enhance.cpp:35 -msgid "Enhance" -msgstr "Migliora" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:91 +msgctxt "Symbol" +msgid "Hospital" +msgstr "Ospedale" -#: ../src/extension/internal/bitmap/enhance.cpp:42 -#, fuzzy -msgid "Enhance selected bitmap(s); minimize noise" -msgstr "Migliora le bitmap selezionate - minimizza i disturbi." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:92 +msgctxt "Symbol" +msgid "Doctors" +msgstr "Medici" -#: ../src/extension/internal/bitmap/equalize.cpp:35 -msgid "Equalize" -msgstr "Equalizza" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:93 +msgctxt "Symbol" +msgid "Scrub Land" +msgstr "Arbusteto" -#: ../src/extension/internal/bitmap/equalize.cpp:42 -#, fuzzy -msgid "Equalize selected bitmap(s); histogram equalization" -msgstr "Equalizza la bitmap selezionata - istogramma di equalizzazione." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:94 +msgctxt "Symbol" +msgid "Swamp" +msgstr "Palude" -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 -#: ../src/filter-enums.cpp:28 -msgid "Gaussian Blur" -msgstr "Sfocatura gaussiana" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:95 +msgctxt "Symbol" +msgid "Hills" +msgstr "Colline" -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 -#: ../src/extension/internal/bitmap/implode.cpp:39 -#: ../src/extension/internal/bitmap/solarize.cpp:41 -#, fuzzy -msgid "Factor:" -msgstr "Fattore" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:96 +msgctxt "Symbol" +msgid "Grass Land" +msgstr "Prato" -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 -#, fuzzy -msgid "Gaussian blur selected bitmap(s)" -msgstr "Applica una sfocatura gaussiana alla bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:97 +msgctxt "Symbol" +msgid "Deciduous Forest" +msgstr "Bosco di latifoglie" -#: ../src/extension/internal/bitmap/implode.cpp:37 -msgid "Implode" -msgstr "Implodi" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:98 +msgctxt "Symbol" +msgid "Mixed Forest" +msgstr "Bosco misto" -#: ../src/extension/internal/bitmap/implode.cpp:45 -#, fuzzy -msgid "Implode selected bitmap(s)" -msgstr "Implode le bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:99 +msgctxt "Symbol" +msgid "Coniferous Forest" +msgstr "Bosco di conifere" -#: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 -#: ../src/extension/internal/filter/image.h:56 -#: ../src/extension/internal/filter/morphology.h:66 -#: ../src/extension/internal/filter/paint.h:345 -msgid "Level" -msgstr "Livello" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:100 +msgctxt "Symbol" +msgid "Church or Place of Worship" +msgstr "Chiesa o luogo di preghiera" -#: ../src/extension/internal/bitmap/level.cpp:43 -#: ../src/extension/internal/bitmap/levelChannel.cpp:65 -#, fuzzy -msgid "Black Point:" -msgstr "Punto nero" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:101 +msgctxt "Symbol" +msgid "Bank" +msgstr "Banca" -#: ../src/extension/internal/bitmap/level.cpp:44 -#: ../src/extension/internal/bitmap/levelChannel.cpp:66 -#, fuzzy -msgid "White Point:" -msgstr "Punto bianco" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:102 +msgctxt "Symbol" +msgid "Power Lines" +msgstr "Linee elettriche" -#: ../src/extension/internal/bitmap/level.cpp:45 -#: ../src/extension/internal/bitmap/levelChannel.cpp:67 -#, fuzzy -msgid "Gamma Correction:" -msgstr "Correzione gamma" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:103 +msgctxt "Symbol" +msgid "Watch Tower" +msgstr "Torre di guardia" -#: ../src/extension/internal/bitmap/level.cpp:51 -#, fuzzy -msgid "" -"Level selected bitmap(s) by scaling values falling between the given ranges " -"to the full color range" -msgstr "" -"Livella le bitmap selezionate riportando i valori che cadono nell'intervallo " -"selezionato a tutta la scala cromatica." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:104 +msgctxt "Symbol" +msgid "Transmitter" +msgstr "Trasmettitore" -#: ../src/extension/internal/bitmap/levelChannel.cpp:52 -msgid "Level (with Channel)" -msgstr "Livello (tramite canale)" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:105 +msgctxt "Symbol" +msgid "Village" +msgstr "Paese" -#: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 -#, fuzzy -msgid "Channel:" -msgstr "Canali:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:106 +msgctxt "Symbol" +msgid "Town" +msgstr "CittĂ " -#: ../src/extension/internal/bitmap/levelChannel.cpp:73 -#, fuzzy -msgid "" -"Level the specified channel of selected bitmap(s) by scaling values falling " -"between the given ranges to the full color range" -msgstr "" -"Livella il canale specificato della bitmap selezionata con valori " -"decrescenti tra l'intervallo fornito e quello intero." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:107 +msgctxt "Symbol" +msgid "Hamlet" +msgstr "Frazione" -#: ../src/extension/internal/bitmap/medianFilter.cpp:37 -msgid "Median" -msgstr "Mediana" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:108 +msgctxt "Symbol" +msgid "City" +msgstr "CittĂ " -#: ../src/extension/internal/bitmap/medianFilter.cpp:45 -#, fuzzy -msgid "" -"Replace each pixel component with the median color in a circular neighborhood" -msgstr "" -"Rimpiazza le componenti di ogni pixel con il colore mediano dei vicini " -"prossimi." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:109 +msgctxt "Symbol" +msgid "Peak" +msgstr "Cima" -#: ../src/extension/internal/bitmap/modulate.cpp:40 -msgid "HSB Adjust" -msgstr "Modifica HSB" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:110 +msgctxt "Symbol" +msgid "Mountain Pass" +msgstr "Passo di montagna" -#: ../src/extension/internal/bitmap/modulate.cpp:42 -#, fuzzy -msgid "Hue:" -msgstr "Colore" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:111 +msgctxt "Symbol" +msgid "Mine" +msgstr "Miniera" -#: ../src/extension/internal/bitmap/modulate.cpp:43 -#, fuzzy -msgid "Saturation:" -msgstr "Saturazione" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:112 +msgctxt "Symbol" +msgid "Military Complex" +msgstr "Complesso militare" -#: ../src/extension/internal/bitmap/modulate.cpp:44 -#, fuzzy -msgid "Brightness:" -msgstr "LuminositĂ " +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:113 +msgctxt "Symbol" +msgid "Embassy" +msgstr "Ambasciata" -#: ../src/extension/internal/bitmap/modulate.cpp:50 -msgid "" -"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" -msgstr "" -"Modula la percentuale di colore, saturazione e luminositĂ  della bitmap " -"selezionata" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:114 +msgctxt "Symbol" +msgid "Toy Shop" +msgstr "Negozio di giocattoli" -#: ../src/extension/internal/bitmap/negate.cpp:36 -msgid "Negate" -msgstr "Negativo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:115 +msgctxt "Symbol" +msgid "Supermarket" +msgstr "Supermercato" -#: ../src/extension/internal/bitmap/negate.cpp:43 -#, fuzzy -msgid "Negate (take inverse) selected bitmap(s)" -msgstr "Inverte (crea negativo) la bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:116 +msgctxt "Symbol" +msgid "Jewlers" +msgstr "Gioielliere" -#: ../src/extension/internal/bitmap/normalize.cpp:36 -msgid "Normalize" -msgstr "Normalizza" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:117 +msgctxt "Symbol" +msgid "Hairdressers" +msgstr "Parrucchiere" -#: ../src/extension/internal/bitmap/normalize.cpp:43 -#, fuzzy -msgid "" -"Normalize selected bitmap(s), expanding color range to the full possible " -"range of color" -msgstr "" -"Normalizza le bitmap selezionate, espandendo l'intervallo cromatico al " -"massimo intervallo possibile." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:118 +msgctxt "Symbol" +msgid "Greengrocer" +msgstr "Fruttivendolo" -#: ../src/extension/internal/bitmap/oilPaint.cpp:37 -msgid "Oil Paint" -msgstr "Pittura ad olio" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:119 +msgctxt "Symbol" +msgid "Gift Shop" +msgstr "Negozio di articoli da regalo" -#: ../src/extension/internal/bitmap/oilPaint.cpp:45 -#, fuzzy -msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" -msgstr "Ritocca la bitmap selezionata per farla sembrare dipinta ad olio." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:120 +msgctxt "Symbol" +msgid "Garden Center" +msgstr "Vivaio" -#: ../src/extension/internal/bitmap/opacity.cpp:38 -#: ../src/extension/internal/filter/blurs.h:333 -#: ../src/extension/internal/filter/transparency.h:279 -#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 -#: ../src/widgets/tweak-toolbar.cpp:334 -#: ../share/extensions/interp_att_g.inx.h:16 -msgid "Opacity" -msgstr "OpacitĂ " +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:121 +msgctxt "Symbol" +msgid "Florist" +msgstr "Fioraio" -#: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/widgets/dropper-toolbar.cpp:83 -msgid "Opacity:" -msgstr "OpacitĂ :" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:122 +msgctxt "Symbol" +msgid "Fish Monger" +msgstr "Pescivendolo" -#: ../src/extension/internal/bitmap/opacity.cpp:46 -msgid "Modify opacity channel(s) of selected bitmap(s)." -msgstr "Modifica il canale opacitĂ  della bitmap selezionata." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:123 +msgctxt "Symbol" +msgid "Real Estate" +msgstr "Agenzia immobiliare" -#: ../src/extension/internal/bitmap/raise.cpp:40 -msgid "Raise" -msgstr "Alza" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:124 +msgctxt "Symbol" +msgid "Hardware / DIY" +msgstr "Attrezzi/Fai da te" -#: ../src/extension/internal/bitmap/raise.cpp:44 -msgid "Raised" -msgstr "Rialzato" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:125 +msgctxt "Symbol" +msgid "Shop" +msgstr "Negozio" -#: ../src/extension/internal/bitmap/raise.cpp:50 -#, fuzzy -msgid "" -"Alter lightness the edges of selected bitmap(s) to create a raised appearance" -msgstr "" -"Altera la luminositĂ  dei margini della bitmap selezionata per creare un " -"effetto di sporgenza." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:126 +msgctxt "Symbol" +msgid "Confectioner" +msgstr "Pasticciere" -#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 -msgid "Reduce Noise" -msgstr "Riduci disturbo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:127 +msgctxt "Symbol" +msgid "Computer Shop" +msgstr "Negozio di computer" -#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 -#: ../share/extensions/jessyInk_effects.inx.h:3 -#: ../share/extensions/jessyInk_view.inx.h:3 -#: ../share/extensions/lindenmayer.inx.h:5 -#, fuzzy -msgid "Order:" -msgstr "Ordine" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:128 +msgctxt "Symbol" +msgid "Clothing" +msgstr "Abbigliamento" -#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 -#, fuzzy -msgid "" -"Reduce noise in selected bitmap(s) using a noise peak elimination filter" -msgstr "" -"Riduce il disturbo nella bitmap selezionata usando un filtro di eliminazione " -"dei picco di disturbo." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:129 +msgctxt "Symbol" +msgid "Mechanic" +msgstr "Meccanico" -#: ../src/extension/internal/bitmap/sample.cpp:39 -msgid "Resample" -msgstr "Ricampiona" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:130 +msgctxt "Symbol" +msgid "Car Dealer" +msgstr "Rivenditore di auto" -#: ../src/extension/internal/bitmap/sample.cpp:48 -msgid "" -"Alter the resolution of selected image by resizing it to the given pixel size" -msgstr "" -"Modifica la risoluzione dell'immagine selezionata ridimensionandola alle " -"dimensioni volute" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:131 +msgctxt "Symbol" +msgid "Butcher" +msgstr "Macellaio" -#: ../src/extension/internal/bitmap/shade.cpp:40 -msgid "Shade" -msgstr "Ombreggia" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:132 +msgctxt "Symbol" +msgid "Meat Shop" +msgstr "Macelleria" -#: ../src/extension/internal/bitmap/shade.cpp:42 -#, fuzzy -msgid "Azimuth:" -msgstr "Azimuth" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:133 +msgctxt "Symbol" +msgid "Bicycle Shop" +msgstr "Negozio di biciclette" -#: ../src/extension/internal/bitmap/shade.cpp:43 -#, fuzzy -msgid "Elevation:" -msgstr "Elevazione" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:134 +msgctxt "Symbol" +msgid "Baker" +msgstr "Fornaio" -#: ../src/extension/internal/bitmap/shade.cpp:44 -msgid "Colored Shading" -msgstr "Ombra colorata" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:135 +msgctxt "Symbol" +msgid "Off License / Liquor Store" +msgstr "Negozio di bevande alcoliche" -#: ../src/extension/internal/bitmap/shade.cpp:50 -#, fuzzy -msgid "Shade selected bitmap(s) simulating distant light source" -msgstr "" -"Ombreggia le bitmap selezionate simulando una sorgente luminosa distante." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:136 +msgctxt "Symbol" +msgid "Wind Surfing" +msgstr "Windsurf" -#: ../src/extension/internal/bitmap/sharpen.cpp:38 -msgid "Sharpen" -msgstr "Nitidezza" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:137 +msgctxt "Symbol" +msgid "Tennis" +msgstr "Tennis" -#: ../src/extension/internal/bitmap/sharpen.cpp:47 -#, fuzzy -msgid "Sharpen selected bitmap(s)" -msgstr "Contrasta le bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:138 +msgctxt "Symbol" +msgid "Outdoor Pool" +msgstr "Piscina scoperta" -#: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 -msgid "Solarize" -msgstr "Sovraesponi" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:139 +msgctxt "Symbol" +msgid "Indoor Pool" +msgstr "Piscina coperta" -#: ../src/extension/internal/bitmap/solarize.cpp:47 -#, fuzzy -msgid "Solarize selected bitmap(s), like overexposing photographic film" -msgstr "" -"Illumina le bitmap selezionate, con un effetto simile ad una pellicola " -"sovraesposta." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:140 +msgctxt "Symbol" +msgid "Skiing" +msgstr "Sci" -#: ../src/extension/internal/bitmap/spread.cpp:37 -msgid "Dither" -msgstr "Dither" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:141 +msgctxt "Symbol" +msgid "Sailing" +msgstr "Vela" -#: ../src/extension/internal/bitmap/spread.cpp:45 -msgid "" -"Randomly scatter pixels in selected bitmap(s), within the given radius of " -"the original position" -msgstr "" -"Sparge casualmente i pixel delle bitmap selezionate, all'interno di raggio " -"specificato a partire dalla posizione originale" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:142 +msgctxt "Symbol" +msgid "Leisure Center" +msgstr "Centro ricreativo" -#: ../src/extension/internal/bitmap/swirl.cpp:37 -msgid "Swirl" -msgstr "Spirale" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:143 +msgctxt "Symbol" +msgid "Ice Skating" +msgstr "Pattinaggio sul ghiaccio" -#: ../src/extension/internal/bitmap/swirl.cpp:39 -msgid "Degrees:" -msgstr "Gradi:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:144 +msgctxt "Symbol" +msgid "Equine Sports" +msgstr "Equitazione" -#: ../src/extension/internal/bitmap/swirl.cpp:45 -#, fuzzy -msgid "Swirl selected bitmap(s) around center point" -msgstr "Ruota a spirale la bitmap selezionata attorno ad un centro." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:145 +msgctxt "Symbol" +msgid "Rock Climbing" +msgstr "Arrampicata" -#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html -#: ../src/extension/internal/bitmap/threshold.cpp:38 -msgid "Threshold" -msgstr "Soglia" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:146 +msgctxt "Symbol" +msgid "Gym" +msgstr "Palestra" -#: ../src/extension/internal/bitmap/threshold.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:146 -msgid "Threshold:" -msgstr "Soglia:" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:147 +msgctxt "Symbol" +msgid "Golf" +msgstr "Golf" -#: ../src/extension/internal/bitmap/threshold.cpp:46 -#, fuzzy -msgid "Threshold selected bitmap(s)" -msgstr "Applica soglia alle bitmap selezionate" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:148 +msgctxt "Symbol" +msgid "Diving" +msgstr "Tuffarsi" -#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 -msgid "Unsharp Mask" -msgstr "Maschera di decontrasto" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:149 +msgctxt "Symbol" +msgid "Archery" +msgstr "Tiro con l'arco" -#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 -#, fuzzy -msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" -msgstr "" -"Contrasta le bitmap selezionate usando l'algoritmo della maschera di " -"decontrasto." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:150 +msgctxt "Symbol" +msgid "Zoo" +msgstr "Zoo" -#: ../src/extension/internal/bitmap/wave.cpp:38 -msgid "Wave" -msgstr "Ondulazione" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:151 +msgctxt "Symbol" +msgid "Wreck" +msgstr "Relitto" -#: ../src/extension/internal/bitmap/wave.cpp:40 -#, fuzzy -msgid "Amplitude:" -msgstr "Ampiezza" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:152 +msgctxt "Symbol" +msgid "Water Wheel" +msgstr "Mulino ad acqua" -#: ../src/extension/internal/bitmap/wave.cpp:41 -#, fuzzy -msgid "Wavelength:" -msgstr "Lunghezza d'onda" - -#: ../src/extension/internal/bitmap/wave.cpp:47 -#, fuzzy -msgid "Alter selected bitmap(s) along sine wave" -msgstr "Altera le bitmap selezionate lungo un'onda sinusoidale." +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:153 +msgctxt "Symbol" +msgid "Point of Interest" +msgstr "Luogo d'interesse" -#: ../src/extension/internal/bluredge.cpp:136 -msgid "Inset/Outset Halo" -msgstr "Intrudi/Estrudi alone" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:154 +msgctxt "Symbol" +msgid "Theater" +msgstr "Teatro" -#: ../src/extension/internal/bluredge.cpp:138 -msgid "Width in px of the halo" -msgstr "Larghezza in pixel dell'alone" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:155 +msgctxt "Symbol" +msgid "Park / Picnic Area" +msgstr "Parco/Area picnic" -#: ../src/extension/internal/bluredge.cpp:139 -#, fuzzy -msgid "Number of steps:" -msgstr "Numero di passi" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:156 +msgctxt "Symbol" +msgid "Monument" +msgstr "Monumento" -#: ../src/extension/internal/bluredge.cpp:139 -msgid "Number of inset/outset copies of the object to make" -msgstr "Numero delle copie intruse/estruse dell'oggetto" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:157 ../share/symbols/symbols.h:245 +#: ../share/symbols/symbols.h:246 +msgctxt "Symbol" +msgid "Information" +msgstr "Informazioni" -#: ../src/extension/internal/bluredge.cpp:143 -#: ../share/extensions/extrude.inx.h:5 -#: ../share/extensions/generate_voronoi.inx.h:9 -#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 -#: ../share/extensions/pathalongpath.inx.h:18 -#: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 -msgid "Generate from Path" -msgstr "Genera da tracciato" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:158 +msgctxt "Symbol" +msgid "Beach" +msgstr "Spiaggia" -#: ../src/extension/internal/cairo-ps-out.cpp:327 -#: ../share/extensions/ps_input.inx.h:3 -msgid "PostScript" -msgstr "PostScript" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:159 +msgctxt "Symbol" +msgid "Battle Location" +msgstr "Posizione di battaglia" -#: ../src/extension/internal/cairo-ps-out.cpp:329 -#: ../src/extension/internal/cairo-ps-out.cpp:368 -#, fuzzy -msgid "Restrict to PS level:" -msgstr "Limita al livello PS" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:160 +msgctxt "Symbol" +msgid "Archaeology / Ruins" +msgstr "Archeologia/Rovine" -#: ../src/extension/internal/cairo-ps-out.cpp:330 -#: ../src/extension/internal/cairo-ps-out.cpp:369 -msgid "PostScript level 3" -msgstr "PostScript livello 3" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:161 +msgctxt "Symbol" +msgid "Walking" +msgstr "Camminare" -#: ../src/extension/internal/cairo-ps-out.cpp:331 -#: ../src/extension/internal/cairo-ps-out.cpp:370 -msgid "PostScript level 2" -msgstr "PostScript livello 2" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:162 +msgctxt "Symbol" +msgid "Train" +msgstr "Treno" -#: ../src/extension/internal/cairo-ps-out.cpp:333 -#: ../src/extension/internal/cairo-ps-out.cpp:372 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -#: ../src/extension/internal/emf-inout.cpp:3550 -#: ../src/extension/internal/wmf-inout.cpp:3141 -msgid "Convert texts to paths" -msgstr "Converti testo in tracciato" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:163 ../share/symbols/symbols.h:253 +#: ../share/symbols/symbols.h:254 +msgctxt "Symbol" +msgid "Taxi" +msgstr "Taxi" -#: ../src/extension/internal/cairo-ps-out.cpp:334 -msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -msgstr "" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:164 +msgctxt "Symbol" +msgid "Underground Rail" +msgstr "Ferrovia sotterranea" -#: ../src/extension/internal/cairo-ps-out.cpp:335 -#: ../src/extension/internal/cairo-ps-out.cpp:374 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -msgid "Rasterize filter effects" -msgstr "Rasterizza gli effetti" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:165 ../share/symbols/symbols.h:263 +#: ../share/symbols/symbols.h:264 +msgctxt "Symbol" +msgid "Car Rental" +msgstr "Autonoleggio" -#: ../src/extension/internal/cairo-ps-out.cpp:336 -#: ../src/extension/internal/cairo-ps-out.cpp:375 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 -#, fuzzy -msgid "Resolution for rasterization (dpi):" -msgstr "Risoluzione per la rasterizzazione (punti per pollice)" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:166 +msgctxt "Symbol" +msgid "Bike Rental" +msgstr "Noleggio di biciclette" -#: ../src/extension/internal/cairo-ps-out.cpp:337 -#: ../src/extension/internal/cairo-ps-out.cpp:376 -#, fuzzy -msgid "Output page size" -msgstr "Imposta dimensione pagina" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:167 ../share/symbols/symbols.h:251 +#: ../share/symbols/symbols.h:252 +msgctxt "Symbol" +msgid "Heliport" +msgstr "Eliporto" -#: ../src/extension/internal/cairo-ps-out.cpp:338 -#: ../src/extension/internal/cairo-ps-out.cpp:377 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 -#, fuzzy -msgid "Use document's page size" -msgstr "Imposta dimensione pagina" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:168 +msgctxt "Symbol" +msgid "Carpool" +msgstr "Car pooling" -#: ../src/extension/internal/cairo-ps-out.cpp:339 -#: ../src/extension/internal/cairo-ps-out.cpp:378 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 -msgid "Use exported object's size" -msgstr "" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:169 +msgctxt "Symbol" +msgid "Flood Gate" +msgstr "Paratia" -#: ../src/extension/internal/cairo-ps-out.cpp:341 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 -#, fuzzy -msgid "Bleed/margin (mm):" -msgstr "Margini di rifilo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:170 +msgctxt "Symbol" +msgid "Shipping" +msgstr "Imbarcazioni" -#: ../src/extension/internal/cairo-ps-out.cpp:342 -#: ../src/extension/internal/cairo-ps-out.cpp:381 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 -#, fuzzy -msgid "Limit export to the object with ID:" -msgstr "Limita l'esportazione agli oggetti con ID" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:171 +msgctxt "Symbol" +msgid "Disabled Parking" +msgstr "Parcheggio disabili" -#: ../src/extension/internal/cairo-ps-out.cpp:346 -#: ../share/extensions/ps_input.inx.h:2 -msgid "PostScript (*.ps)" -msgstr "PostScript (*.ps)" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:172 +msgctxt "Symbol" +msgid "Paid Parking" +msgstr "Parcheggio a pagamento" -#: ../src/extension/internal/cairo-ps-out.cpp:347 -msgid "PostScript File" -msgstr "File PostScript" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:173 +msgctxt "Symbol" +msgid "Bike Parking" +msgstr "Parcheggio biciclette" -#: ../src/extension/internal/cairo-ps-out.cpp:366 -#: ../share/extensions/eps_input.inx.h:3 -msgid "Encapsulated PostScript" -msgstr "Encapsulated PostScript" +#. Symbols: ./MapSymbols.svg +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:174 ../share/symbols/symbols.h:297 +#: ../share/symbols/symbols.h:298 +msgctxt "Symbol" +msgid "Parking" +msgstr "Parcheggio" -#: ../src/extension/internal/cairo-ps-out.cpp:373 -msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -msgstr "" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:175 +msgctxt "Symbol" +msgid "Marina" +msgstr "Marina" -#: ../src/extension/internal/cairo-ps-out.cpp:380 -#, fuzzy -msgid "Bleed/margin (mm)" -msgstr "Margini di rifilo" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:176 +msgctxt "Symbol" +msgid "Fuel Station" +msgstr "Stazione di servizio" -#: ../src/extension/internal/cairo-ps-out.cpp:385 -#: ../share/extensions/eps_input.inx.h:2 -msgid "Encapsulated PostScript (*.eps)" -msgstr "Encapsulated PostScript (*.eps)" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:177 +msgctxt "Symbol" +msgid "Bus Stop" +msgstr "Fermata dell'autobus" -#: ../src/extension/internal/cairo-ps-out.cpp:386 -msgid "Encapsulated PostScript File" -msgstr "File Encapsulated PostScript" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:178 +msgctxt "Symbol" +msgid "Bus Station" +msgstr "Stazione degli autobus" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 -#, fuzzy -msgid "Restrict to PDF version:" -msgstr "Limita alla versione PDF" +#. Symbols: ./MapSymbols.svg +#: ../share/symbols/symbols.h:179 +msgctxt "Symbol" +msgid "Airport" +msgstr "Aereoporto" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 -#, fuzzy -msgid "PDF 1.5" -msgstr "PDF 1.4" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:180 +msgctxt "Symbol" +msgid "Word Balloons" +msgstr "Nuvolette" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 -msgid "PDF 1.4" -msgstr "PDF 1.4" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:181 +msgctxt "Symbol" +msgid "Thought Balloon" +msgstr "Nuvoletta di pensiero" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:182 +msgctxt "Symbol" +msgid "Dream Speaking" msgstr "" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 -#, fuzzy -msgid "Output page size:" -msgstr "Imposta dimensione pagina" - -#: ../src/extension/internal/cdr-input.cpp:102 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 -#: ../src/extension/internal/vsd-input.cpp:101 -msgid "Select page:" -msgstr "Seleziona pagina:" - -#. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:114 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 -#: ../src/extension/internal/vsd-input.cpp:113 -#, c-format -msgid "out of %i" -msgstr "su %i" - -#: ../src/extension/internal/cdr-input.cpp:145 -#: ../src/extension/internal/vsd-input.cpp:144 -#, fuzzy -msgid "Page Selector" -msgstr "Selettore" - -#: ../src/extension/internal/cdr-input.cpp:274 -msgid "Corel DRAW Input" -msgstr "Input Corel DRAW" - -#: ../src/extension/internal/cdr-input.cpp:279 -msgid "Corel DRAW 7-X4 files (*.cdr)" -msgstr "File Corel DRAW 7-X4 (*.cdr)" - -#: ../src/extension/internal/cdr-input.cpp:280 -msgid "Open files saved in Corel DRAW 7-X4" -msgstr "Apre file salvati con Corel DRAW 7-X4" - -#: ../src/extension/internal/cdr-input.cpp:287 -msgid "Corel DRAW templates input" -msgstr "Input modello Corel DRAW" - -#: ../src/extension/internal/cdr-input.cpp:292 -#, fuzzy -msgid "Corel DRAW 7-13 template files (*.cdt)" -msgstr "File modello Corel DRAW 7-13 (.cdt)" - -#: ../src/extension/internal/cdr-input.cpp:293 -msgid "Open files saved in Corel DRAW 7-13" -msgstr "Apre file salvati con Corel DRAW 7-13" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:183 +msgctxt "Symbol" +msgid "Rounded Balloon" +msgstr "Nuvoletta arrotondata" -#: ../src/extension/internal/cdr-input.cpp:300 -msgid "Corel DRAW Compressed Exchange files input" -msgstr " Files input Corel DRAW Compressed Exchange" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:184 +msgctxt "Symbol" +msgid "Squared Balloon" +msgstr "Nuvoletta squadrata" -#: ../src/extension/internal/cdr-input.cpp:305 -#, fuzzy -msgid "Corel DRAW Compressed Exchange files (*.ccx)" -msgstr "File Corel DRAW Compressed Exchang (.ccx)" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:185 +msgctxt "Symbol" +msgid "Over the Phone" +msgstr "" -#: ../src/extension/internal/cdr-input.cpp:306 -msgid "Open compressed exchange files saved in Corel DRAW" -msgstr "File Open compressed exchange salvato con Corel DRAW" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:186 +msgctxt "Symbol" +msgid "Hip Balloon" +msgstr "" -#: ../src/extension/internal/cdr-input.cpp:313 -msgid "Corel DRAW Presentation Exchange files input" -msgstr "File input Corel DRAW Presentation Exchange" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:187 +msgctxt "Symbol" +msgid "Circle Balloon" +msgstr "Nuvoletta rotonda" -#: ../src/extension/internal/cdr-input.cpp:318 -#, fuzzy -msgid "Corel DRAW Presentation Exchange files (*.cmx)" -msgstr "File Corel DRAW Presentation Exchange (.cmx)" +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:188 +msgctxt "Symbol" +msgid "Exclaim Balloon" +msgstr "Nuvoletta di esclamazione" -#: ../src/extension/internal/cdr-input.cpp:319 -msgid "Open presentation exchange files saved in Corel DRAW" -msgstr "File Open presentation exchange salvato con Corel DRAW" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:189 +msgctxt "Symbol" +msgid "Logic Symbols" +msgstr "Simboli logici" -#: ../src/extension/internal/emf-inout.cpp:3534 -msgid "EMF Input" -msgstr "Input EMF" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:190 +msgctxt "Symbol" +msgid "Xnor Gate" +msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3539 -msgid "Enhanced Metafiles (*.emf)" -msgstr "Metafile avanzato(*.emf)" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:191 +msgctxt "Symbol" +msgid "Xor Gate" +msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3540 -msgid "Enhanced Metafiles" -msgstr "Metafile avanzato" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:192 +msgctxt "Symbol" +msgid "Nor Gate" +msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3548 -msgid "EMF Output" -msgstr "Output EMF" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:193 +msgctxt "Symbol" +msgid "Or Gate" +msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3551 -#: ../src/extension/internal/wmf-inout.cpp:3142 -msgid "Map Unicode to Symbol font" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:194 +msgctxt "Symbol" +msgid "Nand Gate" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3552 -#: ../src/extension/internal/wmf-inout.cpp:3143 -msgid "Map Unicode to Wingdings" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:195 +msgctxt "Symbol" +msgid "And Gate" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3553 -#: ../src/extension/internal/wmf-inout.cpp:3144 -msgid "Map Unicode to Zapf Dingbats" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:196 +msgctxt "Symbol" +msgid "Buffer" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3554 -#: ../src/extension/internal/wmf-inout.cpp:3145 -msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:197 +msgctxt "Symbol" +msgid "Not Gate" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3555 -#: ../src/extension/internal/wmf-inout.cpp:3146 -msgid "Compensate for PPT font bug" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:198 +msgctxt "Symbol" +msgid "Buffer Small" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3556 -#: ../src/extension/internal/wmf-inout.cpp:3147 -msgid "Convert dashed/dotted lines to single lines" +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:199 +msgctxt "Symbol" +msgid "Not Gate Small" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3557 -#: ../src/extension/internal/wmf-inout.cpp:3148 -#, fuzzy -msgid "Convert gradients to colored polygon series" -msgstr "Gradiente lineare di contorno" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:200 +msgctxt "Symbol" +msgid "AIGA Symbol Signs" +msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3558 -#, fuzzy -msgid "Use native rectangular linear gradients" -msgstr "Crea gradiente lineare" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:201 ../share/symbols/symbols.h:202 +msgctxt "Symbol" +msgid "Telephone" +msgstr "Telefono" -#: ../src/extension/internal/emf-inout.cpp:3559 -msgid "Map all fill patterns to standard EMF hatches" -msgstr "" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:203 ../share/symbols/symbols.h:204 +msgctxt "Symbol" +msgid "Mail" +msgstr "Posta" -#: ../src/extension/internal/emf-inout.cpp:3560 -#, fuzzy -msgid "Ignore image rotations" -msgstr "Centro della rotazione" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206 +msgctxt "Symbol" +msgid "Currency Exchange" +msgstr "Cambiavalute" -#: ../src/extension/internal/emf-inout.cpp:3564 -msgid "Enhanced Metafile (*.emf)" -msgstr "Metafile avanzato(*.wmf)" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208 +msgctxt "Symbol" +msgid "Currency Exchange - Euro" +msgstr "Cambiavalute - Euro" -#: ../src/extension/internal/emf-inout.cpp:3565 -msgid "Enhanced Metafile" -msgstr "Metafile avanzato" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:209 ../share/symbols/symbols.h:210 +msgctxt "Symbol" +msgid "Cashier" +msgstr "Cassiere" -#: ../src/extension/internal/filter/bevels.h:53 -#, fuzzy -msgid "Diffuse Light" -msgstr "Illuminazione diffusa" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:211 ../share/symbols/symbols.h:212 +msgctxt "Symbol" +msgid "First Aid" +msgstr "Primo soccorso" -#: ../src/extension/internal/filter/bevels.h:55 -#: ../src/extension/internal/filter/bevels.h:135 -#: ../src/extension/internal/filter/bevels.h:219 -#: ../src/extension/internal/filter/paint.h:89 -#: ../src/extension/internal/filter/paint.h:340 -#, fuzzy -msgid "Smoothness" -msgstr "Smussatura" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:213 ../share/symbols/symbols.h:214 +msgctxt "Symbol" +msgid "Lost and Found" +msgstr "Oggetti smarriti" -#: ../src/extension/internal/filter/bevels.h:56 -#: ../src/extension/internal/filter/bevels.h:137 -#: ../src/extension/internal/filter/bevels.h:221 -#, fuzzy -msgid "Elevation (°)" -msgstr "Elevazione" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:215 ../share/symbols/symbols.h:216 +msgctxt "Symbol" +msgid "Coat Check" +msgstr "Guardaroba" -#: ../src/extension/internal/filter/bevels.h:57 -#: ../src/extension/internal/filter/bevels.h:138 -#: ../src/extension/internal/filter/bevels.h:222 -#, fuzzy -msgid "Azimuth (°)" -msgstr "Azimuth" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:217 ../share/symbols/symbols.h:218 +msgctxt "Symbol" +msgid "Baggage Lockers" +msgstr "" -#: ../src/extension/internal/filter/bevels.h:58 -#: ../src/extension/internal/filter/bevels.h:139 -#: ../src/extension/internal/filter/bevels.h:223 -#, fuzzy -msgid "Lighting color" -msgstr "Colore di e_videnziazione:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:219 ../share/symbols/symbols.h:220 +msgctxt "Symbol" +msgid "Escalator" +msgstr "Scala mobile" -#: ../src/extension/internal/filter/bevels.h:62 -#: ../src/extension/internal/filter/bevels.h:143 -#: ../src/extension/internal/filter/bevels.h:227 -#: ../src/extension/internal/filter/blurs.h:62 -#: ../src/extension/internal/filter/blurs.h:131 -#: ../src/extension/internal/filter/blurs.h:200 -#: ../src/extension/internal/filter/blurs.h:266 -#: ../src/extension/internal/filter/blurs.h:350 -#: ../src/extension/internal/filter/bumps.h:141 -#: ../src/extension/internal/filter/bumps.h:361 -#: ../src/extension/internal/filter/color.h:81 -#: ../src/extension/internal/filter/color.h:170 -#: ../src/extension/internal/filter/color.h:261 -#: ../src/extension/internal/filter/color.h:346 -#: ../src/extension/internal/filter/color.h:436 -#: ../src/extension/internal/filter/color.h:531 -#: ../src/extension/internal/filter/color.h:653 -#: ../src/extension/internal/filter/color.h:750 -#: ../src/extension/internal/filter/color.h:829 -#: ../src/extension/internal/filter/color.h:920 -#: ../src/extension/internal/filter/color.h:1048 -#: ../src/extension/internal/filter/color.h:1118 -#: ../src/extension/internal/filter/color.h:1211 -#: ../src/extension/internal/filter/color.h:1323 -#: ../src/extension/internal/filter/color.h:1428 -#: ../src/extension/internal/filter/color.h:1504 -#: ../src/extension/internal/filter/color.h:1615 -#: ../src/extension/internal/filter/distort.h:95 -#: ../src/extension/internal/filter/distort.h:204 -#: ../src/extension/internal/filter/filter-file.cpp:151 -#: ../src/extension/internal/filter/filter.cpp:214 -#: ../src/extension/internal/filter/image.h:61 -#: ../src/extension/internal/filter/morphology.h:75 -#: ../src/extension/internal/filter/morphology.h:202 -#: ../src/extension/internal/filter/overlays.h:79 -#: ../src/extension/internal/filter/paint.h:112 -#: ../src/extension/internal/filter/paint.h:243 -#: ../src/extension/internal/filter/paint.h:362 -#: ../src/extension/internal/filter/paint.h:506 -#: ../src/extension/internal/filter/paint.h:601 -#: ../src/extension/internal/filter/paint.h:724 -#: ../src/extension/internal/filter/paint.h:876 -#: ../src/extension/internal/filter/paint.h:980 -#: ../src/extension/internal/filter/protrusions.h:54 -#: ../src/extension/internal/filter/shadows.h:80 -#: ../src/extension/internal/filter/textures.h:90 -#: ../src/extension/internal/filter/transparency.h:69 -#: ../src/extension/internal/filter/transparency.h:140 -#: ../src/extension/internal/filter/transparency.h:214 -#: ../src/extension/internal/filter/transparency.h:287 -#: ../src/extension/internal/filter/transparency.h:349 -msgid "Filters" -msgstr "Filtri" - -#: ../src/extension/internal/filter/bevels.h:63 -#: ../src/extension/internal/filter/bevels.h:144 -#: ../src/extension/internal/filter/bevels.h:228 -msgid "Bevels" -msgstr "Sfumature" - -#: ../src/extension/internal/filter/bevels.h:66 -msgid "Basic diffuse bevel to use for building textures" -msgstr "Smussatura base diffusa per costruire altre texture" - -#: ../src/extension/internal/filter/bevels.h:133 -#, fuzzy -msgid "Matte Jelly" -msgstr "Gelatina opaca" - -#: ../src/extension/internal/filter/bevels.h:136 -#: ../src/extension/internal/filter/bevels.h:220 -#: ../src/extension/internal/filter/blurs.h:187 -#: ../src/extension/internal/filter/color.h:74 -#, fuzzy -msgid "Brightness" -msgstr "LuminositĂ " - -#: ../src/extension/internal/filter/bevels.h:147 -msgid "Bulging, matte jelly covering" -msgstr "Protruso, coperto con gel opaco" - -#: ../src/extension/internal/filter/bevels.h:217 -#, fuzzy -msgid "Specular Light" -msgstr "Illuminazione speculare" - -#: ../src/extension/internal/filter/bevels.h:231 -msgid "Basic specular bevel to use for building textures" -msgstr "Smussatura base speculare per costruire altre texture" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:221 ../share/symbols/symbols.h:222 +msgctxt "Symbol" +msgid "Escalator Down" +msgstr "Scala mobile giĂą" -#: ../src/extension/internal/filter/blurs.h:56 -#: ../src/extension/internal/filter/blurs.h:189 -#: ../src/extension/internal/filter/blurs.h:329 -#: ../src/extension/internal/filter/distort.h:73 -#, fuzzy -msgid "Horizontal blur" -msgstr "Ori_zzontale" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:223 ../share/symbols/symbols.h:224 +msgctxt "Symbol" +msgid "Escalator Up" +msgstr "Scala mobile su" -#: ../src/extension/internal/filter/blurs.h:57 -#: ../src/extension/internal/filter/blurs.h:190 -#: ../src/extension/internal/filter/blurs.h:330 -#: ../src/extension/internal/filter/distort.h:74 -#, fuzzy -msgid "Vertical blur" -msgstr "_Verticale" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:225 ../share/symbols/symbols.h:226 +msgctxt "Symbol" +msgid "Stairs" +msgstr "Scale" -#: ../src/extension/internal/filter/blurs.h:58 -#, fuzzy -msgid "Blur content only" -msgstr "Sfocatura contenuto" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:227 ../share/symbols/symbols.h:228 +msgctxt "Symbol" +msgid "Stairs Down" +msgstr "Scale giĂą" -#: ../src/extension/internal/filter/blurs.h:63 -#: ../src/extension/internal/filter/blurs.h:132 -#: ../src/extension/internal/filter/blurs.h:201 -#: ../src/extension/internal/filter/blurs.h:267 -#: ../src/extension/internal/filter/blurs.h:351 -msgid "Blurs" -msgstr "Sfocature" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:229 ../share/symbols/symbols.h:230 +msgctxt "Symbol" +msgid "Stairs Up" +msgstr "Scale su" -#: ../src/extension/internal/filter/blurs.h:66 -msgid "Simple vertical and horizontal blur effect" -msgstr "" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:231 ../share/symbols/symbols.h:232 +msgctxt "Symbol" +msgid "Elevator" +msgstr "Ascensore" -#: ../src/extension/internal/filter/blurs.h:125 -#, fuzzy -msgid "Clean Edges" -msgstr "Bordi puliti" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:233 ../share/symbols/symbols.h:234 +msgctxt "Symbol" +msgid "Toilets - Men" +msgstr "Servizi - Uomo" -#: ../src/extension/internal/filter/blurs.h:127 -#: ../src/extension/internal/filter/blurs.h:262 -#: ../src/extension/internal/filter/paint.h:237 -#: ../src/extension/internal/filter/paint.h:336 -#: ../src/extension/internal/filter/paint.h:341 -#, fuzzy -msgid "Strength" -msgstr "Forza (%)" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236 +msgctxt "Symbol" +msgid "Toilets - Women" +msgstr "Servizi - Donna" -#: ../src/extension/internal/filter/blurs.h:135 -msgid "" -"Removes or decreases glows and jaggeries around objects edges after applying " -"some filters" -msgstr "" -"Rimuove o diminuisce aloni o frastagliature attorno ai bordi degli oggetti " -"dopo aver applicato alcuni filtri" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238 +msgctxt "Symbol" +msgid "Toilets" +msgstr "Servizi" -#: ../src/extension/internal/filter/blurs.h:185 -#, fuzzy -msgid "Cross Blur" -msgstr "Sfocatura gaussiana" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:241 ../share/symbols/symbols.h:242 +msgctxt "Symbol" +msgid "Drinking Fountain" +msgstr "Fontanella" -#: ../src/extension/internal/filter/blurs.h:188 -#, fuzzy -msgid "Fading" -msgstr "Ombreggiatura" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244 +msgctxt "Symbol" +msgid "Waiting Room" +msgstr "Sala di attesa" -#: ../src/extension/internal/filter/blurs.h:191 -#: ../src/extension/internal/filter/textures.h:74 -#, fuzzy -msgid "Blend:" -msgstr "Miscela" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:247 ../share/symbols/symbols.h:248 +msgctxt "Symbol" +msgid "Hotel Information" +msgstr "Informazioni hotel" -#: ../src/extension/internal/filter/blurs.h:192 -#: ../src/extension/internal/filter/blurs.h:339 -#: ../src/extension/internal/filter/bumps.h:131 -#: ../src/extension/internal/filter/bumps.h:337 -#: ../src/extension/internal/filter/bumps.h:344 -#: ../src/extension/internal/filter/color.h:329 -#: ../src/extension/internal/filter/color.h:336 -#: ../src/extension/internal/filter/color.h:1423 -#: ../src/extension/internal/filter/color.h:1596 -#: ../src/extension/internal/filter/color.h:1602 -#: ../src/extension/internal/filter/paint.h:705 -#: ../src/extension/internal/filter/transparency.h:63 -#: ../src/filter-enums.cpp:54 -#, fuzzy -msgid "Darken" -msgstr "Scurisci" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:249 ../share/symbols/symbols.h:250 +msgctxt "Symbol" +msgid "Air Transportation" +msgstr "Trasporto aereo" -#: ../src/extension/internal/filter/blurs.h:193 -#: ../src/extension/internal/filter/blurs.h:340 -#: ../src/extension/internal/filter/bumps.h:132 -#: ../src/extension/internal/filter/bumps.h:335 -#: ../src/extension/internal/filter/bumps.h:342 -#: ../src/extension/internal/filter/color.h:327 -#: ../src/extension/internal/filter/color.h:332 -#: ../src/extension/internal/filter/color.h:647 -#: ../src/extension/internal/filter/color.h:1415 -#: ../src/extension/internal/filter/color.h:1420 -#: ../src/extension/internal/filter/color.h:1594 -#: ../src/extension/internal/filter/paint.h:703 -#: ../src/extension/internal/filter/transparency.h:62 -#: ../src/filter-enums.cpp:53 ../src/ui/dialog/input.cpp:382 -msgid "Screen" -msgstr "Scherma" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256 +msgctxt "Symbol" +msgid "Bus" +msgstr "Autobus" -#: ../src/extension/internal/filter/blurs.h:194 -#: ../src/extension/internal/filter/blurs.h:341 -#: ../src/extension/internal/filter/bumps.h:133 -#: ../src/extension/internal/filter/bumps.h:338 -#: ../src/extension/internal/filter/bumps.h:345 -#: ../src/extension/internal/filter/color.h:325 -#: ../src/extension/internal/filter/color.h:333 -#: ../src/extension/internal/filter/color.h:645 -#: ../src/extension/internal/filter/color.h:1414 -#: ../src/extension/internal/filter/color.h:1421 -#: ../src/extension/internal/filter/color.h:1595 -#: ../src/extension/internal/filter/color.h:1601 -#: ../src/extension/internal/filter/paint.h:701 -#: ../src/extension/internal/filter/transparency.h:60 -#: ../src/filter-enums.cpp:52 -#, fuzzy -msgid "Multiply" -msgstr "Moltiplica" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258 +msgctxt "Symbol" +msgid "Ground Transportation" +msgstr "Trasporto via terra" -#: ../src/extension/internal/filter/blurs.h:195 -#: ../src/extension/internal/filter/blurs.h:342 -#: ../src/extension/internal/filter/bumps.h:134 -#: ../src/extension/internal/filter/bumps.h:339 -#: ../src/extension/internal/filter/bumps.h:346 -#: ../src/extension/internal/filter/color.h:328 -#: ../src/extension/internal/filter/color.h:335 -#: ../src/extension/internal/filter/color.h:1422 -#: ../src/extension/internal/filter/color.h:1593 -#: ../src/extension/internal/filter/paint.h:704 -#: ../src/extension/internal/filter/transparency.h:64 -#: ../src/filter-enums.cpp:55 -#, fuzzy -msgid "Lighten" -msgstr "Illumina" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:259 ../share/symbols/symbols.h:260 +msgctxt "Symbol" +msgid "Rail Transportation" +msgstr "Trasporto ferroviario" -#: ../src/extension/internal/filter/blurs.h:204 -#, fuzzy -msgid "Combine vertical and horizontal blur" -msgstr "Muove i nodi verticalmente" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 +msgctxt "Symbol" +msgid "Water Transportation" +msgstr "Trasporto via mare" -#: ../src/extension/internal/filter/blurs.h:260 -msgid "Feather" -msgstr "Cuoio" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268 +msgctxt "Symbol" +msgid "Coffeeshop" +msgstr "Caffè" -#: ../src/extension/internal/filter/blurs.h:270 -msgid "Blurred mask on the edge without altering the contents" -msgstr "Applica una maschera di sfocatura al bordo senza alterare il contenuto" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:269 ../share/symbols/symbols.h:270 +msgctxt "Symbol" +msgid "Bar" +msgstr "Bar" -#: ../src/extension/internal/filter/blurs.h:325 -#, fuzzy -msgid "Out of Focus" -msgstr "Colore avviso fuori gamma:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:271 ../share/symbols/symbols.h:272 +msgctxt "Symbol" +msgid "Shops" +msgstr "Negozi" -#: ../src/extension/internal/filter/blurs.h:331 -#: ../src/extension/internal/filter/distort.h:75 -#: ../src/extension/internal/filter/morphology.h:67 -#: ../src/extension/internal/filter/paint.h:235 -#: ../src/extension/internal/filter/paint.h:342 -#: ../src/extension/internal/filter/paint.h:346 -#, fuzzy -msgid "Dilatation" -msgstr "Saturazione" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:273 ../share/symbols/symbols.h:274 +msgctxt "Symbol" +msgid "Barber Shop - Beauty Salon" +msgstr "Barbiere - Salone di bellezza" -#: ../src/extension/internal/filter/blurs.h:332 -#: ../src/extension/internal/filter/distort.h:76 -#: ../src/extension/internal/filter/morphology.h:68 -#: ../src/extension/internal/filter/paint.h:98 -#: ../src/extension/internal/filter/paint.h:236 -#: ../src/extension/internal/filter/paint.h:343 -#: ../src/extension/internal/filter/paint.h:347 -#: ../src/extension/internal/filter/transparency.h:208 -#: ../src/extension/internal/filter/transparency.h:282 -#, fuzzy -msgid "Erosion" -msgstr "Posizione:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:275 ../share/symbols/symbols.h:276 +msgctxt "Symbol" +msgid "Barber Shop" +msgstr "Barbiere" -#: ../src/extension/internal/filter/blurs.h:336 -#: ../src/extension/internal/filter/color.h:1205 -#: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Background color" -msgstr "Colore di sfondo" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:277 ../share/symbols/symbols.h:278 +msgctxt "Symbol" +msgid "Beauty Salon" +msgstr "Salone di bellezza" -#: ../src/extension/internal/filter/blurs.h:337 -#: ../src/extension/internal/filter/bumps.h:129 -#, fuzzy -msgid "Blend type:" -msgstr " tipo: " +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:279 ../share/symbols/symbols.h:280 +msgctxt "Symbol" +msgid "Ticket Purchase" +msgstr "" -#: ../src/extension/internal/filter/blurs.h:338 -#: ../src/extension/internal/filter/bumps.h:130 -#: ../src/extension/internal/filter/bumps.h:336 -#: ../src/extension/internal/filter/bumps.h:343 -#: ../src/extension/internal/filter/color.h:326 -#: ../src/extension/internal/filter/color.h:334 -#: ../src/extension/internal/filter/color.h:646 -#: ../src/extension/internal/filter/color.h:1413 -#: ../src/extension/internal/filter/color.h:1419 -#: ../src/extension/internal/filter/color.h:1586 -#: ../src/extension/internal/filter/color.h:1600 -#: ../src/extension/internal/filter/distort.h:78 -#: ../src/extension/internal/filter/paint.h:702 -#: ../src/extension/internal/filter/textures.h:77 -#: ../src/extension/internal/filter/transparency.h:61 -#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:644 -msgid "Normal" -msgstr "Normale" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:281 ../share/symbols/symbols.h:282 +msgctxt "Symbol" +msgid "Baggage Check In" +msgstr "Check in bagagli" -#: ../src/extension/internal/filter/blurs.h:344 -#, fuzzy -msgid "Blend to background" -msgstr "Rimuovi sfondo" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:283 ../share/symbols/symbols.h:284 +msgctxt "Symbol" +msgid "Baggage Claim" +msgstr "Ritiro bagagli" -#: ../src/extension/internal/filter/blurs.h:354 -msgid "Blur eroded by white or transparency" -msgstr "" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:285 ../share/symbols/symbols.h:286 +msgctxt "Symbol" +msgid "Customs" +msgstr "Dogana" -#: ../src/extension/internal/filter/bumps.h:80 -#, fuzzy -msgid "Bump" -msgstr "RugositĂ " +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:287 ../share/symbols/symbols.h:288 +msgctxt "Symbol" +msgid "Immigration" +msgstr "Immigrazione" -#: ../src/extension/internal/filter/bumps.h:84 -#: ../src/extension/internal/filter/bumps.h:313 -#, fuzzy -msgid "Image simplification" -msgstr "Cartella di lavoro non valida: %s" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:289 ../share/symbols/symbols.h:290 +msgctxt "Symbol" +msgid "Departing Flights" +msgstr "Voli in partenza" -#: ../src/extension/internal/filter/bumps.h:85 -#: ../src/extension/internal/filter/bumps.h:314 -#, fuzzy -msgid "Bump simplification" -msgstr "Soglia per la semplificazione:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:291 ../share/symbols/symbols.h:292 +msgctxt "Symbol" +msgid "Arriving Flights" +msgstr "Voli in arrivo" -#: ../src/extension/internal/filter/bumps.h:87 -#: ../src/extension/internal/filter/bumps.h:316 -#, fuzzy -msgid "Bump source" -msgstr "RugositĂ " +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:293 ../share/symbols/symbols.h:294 +msgctxt "Symbol" +msgid "Smoking" +msgstr "Fumare" -#: ../src/extension/internal/filter/bumps.h:88 -#: ../src/extension/internal/filter/bumps.h:317 -#: ../src/extension/internal/filter/color.h:157 -#: ../src/extension/internal/filter/color.h:637 -#: ../src/extension/internal/filter/color.h:821 -#: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:127 ../src/ui/tools/flood-tool.cpp:193 -#: ../src/widgets/sp-color-icc-selector.cpp:355 -#: ../src/widgets/sp-color-scales.cpp:429 -#: ../src/widgets/sp-color-scales.cpp:430 -msgid "Red" -msgstr "Rosso" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:295 ../share/symbols/symbols.h:296 +msgctxt "Symbol" +msgid "No Smoking" +msgstr "Vietato fumare" -#: ../src/extension/internal/filter/bumps.h:89 -#: ../src/extension/internal/filter/bumps.h:318 -#: ../src/extension/internal/filter/color.h:158 -#: ../src/extension/internal/filter/color.h:638 -#: ../src/extension/internal/filter/color.h:822 -#: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:194 -#: ../src/widgets/sp-color-icc-selector.cpp:356 -#: ../src/widgets/sp-color-scales.cpp:432 -#: ../src/widgets/sp-color-scales.cpp:433 -msgid "Green" -msgstr "Verde" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:299 ../share/symbols/symbols.h:300 +msgctxt "Symbol" +msgid "No Parking" +msgstr "Divieto di parcheggio" -#: ../src/extension/internal/filter/bumps.h:90 -#: ../src/extension/internal/filter/bumps.h:319 -#: ../src/extension/internal/filter/color.h:159 -#: ../src/extension/internal/filter/color.h:639 -#: ../src/extension/internal/filter/color.h:823 -#: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:195 -#: ../src/widgets/sp-color-icc-selector.cpp:357 -#: ../src/widgets/sp-color-scales.cpp:435 -#: ../src/widgets/sp-color-scales.cpp:436 -msgid "Blue" -msgstr "Blu" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:301 ../share/symbols/symbols.h:302 +msgctxt "Symbol" +msgid "No Dogs" +msgstr "Divieto per i cani" -#: ../src/extension/internal/filter/bumps.h:91 -#, fuzzy -msgid "Bump from background" -msgstr "Rimuovi sfondo" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:303 ../share/symbols/symbols.h:304 +msgctxt "Symbol" +msgid "No Entry" +msgstr "Divieto di ingresso" -#: ../src/extension/internal/filter/bumps.h:94 -#, fuzzy -msgid "Lighting type:" -msgstr " tipo: " +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:307 ../share/symbols/symbols.h:308 +msgctxt "Symbol" +msgid "Fire Extinguisher" +msgstr "Estintore" -#: ../src/extension/internal/filter/bumps.h:95 -#, fuzzy -msgid "Specular" -msgstr "Esponente speculare" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:309 ../share/symbols/symbols.h:310 +msgctxt "Symbol" +msgid "Right Arrow" +msgstr "Freccia destra" -#: ../src/extension/internal/filter/bumps.h:96 -#, fuzzy -msgid "Diffuse" -msgstr "Illuminazione diffusa" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:311 ../share/symbols/symbols.h:312 +msgctxt "Symbol" +msgid "Forward and Right Arrow" +msgstr "Freccia avanti e destra" -#: ../src/extension/internal/filter/bumps.h:98 -#: ../src/extension/internal/filter/bumps.h:329 -#: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:331 -#: ../share/extensions/interp_att_g.inx.h:11 -msgid "Height" -msgstr "Altezza" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:313 ../share/symbols/symbols.h:314 +msgctxt "Symbol" +msgid "Up Arrow" +msgstr "Freccia su" -#: ../src/extension/internal/filter/bumps.h:99 -#: ../src/extension/internal/filter/bumps.h:330 -#: ../src/extension/internal/filter/color.h:76 -#: ../src/extension/internal/filter/color.h:824 -#: ../src/extension/internal/filter/color.h:1113 -#: ../src/extension/internal/filter/paint.h:86 -#: ../src/extension/internal/filter/paint.h:592 -#: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 -#: ../src/widgets/sp-color-icc-selector.cpp:366 -#: ../src/widgets/sp-color-scales.cpp:461 -#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:318 -#: ../share/extensions/color_randomize.inx.h:5 -msgid "Lightness" -msgstr "LuminositĂ " +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:315 ../share/symbols/symbols.h:316 +msgctxt "Symbol" +msgid "Forward and Left Arrow" +msgstr "Freccia avanti e sinistra" -#: ../src/extension/internal/filter/bumps.h:100 -#: ../src/extension/internal/filter/bumps.h:331 -#, fuzzy -msgid "Precision" -msgstr "Precisione" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:317 ../share/symbols/symbols.h:318 +msgctxt "Symbol" +msgid "Left Arrow" +msgstr "Freccia sinistra" -#: ../src/extension/internal/filter/bumps.h:103 -#, fuzzy -msgid "Light source" -msgstr "Sorgente d'illuminazione:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:319 ../share/symbols/symbols.h:320 +msgctxt "Symbol" +msgid "Left and Down Arrow" +msgstr "Freccia sinistra e giĂą" -#: ../src/extension/internal/filter/bumps.h:104 -#, fuzzy -msgid "Light source:" -msgstr "Sorgente d'illuminazione:" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:321 ../share/symbols/symbols.h:322 +msgctxt "Symbol" +msgid "Down Arrow" +msgstr "Freccia giĂą" -#: ../src/extension/internal/filter/bumps.h:105 -#, fuzzy -msgid "Distant" -msgstr "Distorto" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:323 ../share/symbols/symbols.h:324 +msgctxt "Symbol" +msgid "Right and Down Arrow" +msgstr "Freccia destra e giĂą" -#: ../src/extension/internal/filter/bumps.h:106 -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Point" -msgstr "Punto" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:325 ../share/symbols/symbols.h:326 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible - 1996" +msgstr "" -#: ../src/extension/internal/filter/bumps.h:107 -msgid "Spot" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:327 ../share/symbols/symbols.h:328 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible" msgstr "" -#: ../src/extension/internal/filter/bumps.h:109 -#, fuzzy -msgid "Distant light options" -msgstr "Luce distante" +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:329 ../share/symbols/symbols.h:330 +msgctxt "Symbol" +msgid "New Wheelchair Accessible" +msgstr "" -#: ../src/extension/internal/filter/bumps.h:110 -#: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 -msgid "Azimuth" -msgstr "Azimuth" +#: ../share/templates/templates.h:1 +msgid "A4 Landscape Page" +msgstr "Pagina A4 Orizzontale" -#: ../src/extension/internal/filter/bumps.h:111 -#: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -msgid "Elevation" -msgstr "Elevazione" +#: ../share/templates/templates.h:1 +msgid "Empty A4 landscape sheet" +msgstr "Foglio A4 orizzontale vuoto" -#: ../src/extension/internal/filter/bumps.h:112 -#, fuzzy -msgid "Point light options" -msgstr "Luce puntiforme" +#: ../share/templates/templates.h:1 +msgid "A4 paper sheet empty landscape" +msgstr "A4 pagina foglio vuoto orizzontale" -#: ../src/extension/internal/filter/bumps.h:113 -#: ../src/extension/internal/filter/bumps.h:117 -#, fuzzy -msgid "X location" -msgstr " posizione: " +#: ../share/templates/templates.h:1 +msgid "A4 Page" +msgstr "Pagina A4" -#: ../src/extension/internal/filter/bumps.h:114 -#: ../src/extension/internal/filter/bumps.h:118 -#, fuzzy -msgid "Y location" -msgstr " posizione: " +#: ../share/templates/templates.h:1 +msgid "Empty A4 sheet" +msgstr "Foglio A4 vuoto" -#: ../src/extension/internal/filter/bumps.h:115 -#: ../src/extension/internal/filter/bumps.h:119 -#, fuzzy -msgid "Z location" -msgstr " posizione: " +#: ../share/templates/templates.h:1 +msgid "A4 paper sheet empty" +msgstr "A4 pagina foglio vuoto" -#: ../src/extension/internal/filter/bumps.h:116 -#, fuzzy -msgid "Spot light options" -msgstr "Punto luce" +#: ../share/templates/templates.h:1 +msgid "Black Opaque" +msgstr "Nero opaco" -#: ../src/extension/internal/filter/bumps.h:120 -#, fuzzy -msgid "X target" -msgstr "Target:" +#: ../share/templates/templates.h:1 +msgid "Empty black page" +msgstr "Pagina nera vuota" -#: ../src/extension/internal/filter/bumps.h:121 -#, fuzzy -msgid "Y target" -msgstr "Target:" +#: ../share/templates/templates.h:1 +msgid "black opaque empty" +msgstr "nero opaco vuoto" -#: ../src/extension/internal/filter/bumps.h:122 -#, fuzzy -msgid "Z target" -msgstr "Target:" +#: ../share/templates/templates.h:1 +msgid "White Opaque" +msgstr "Bianco opaco" -#: ../src/extension/internal/filter/bumps.h:123 -#, fuzzy -msgid "Specular exponent" -msgstr "Esponente speculare" +#: ../share/templates/templates.h:1 +msgid "Empty white page" +msgstr "Pagina bianca vuota" -#: ../src/extension/internal/filter/bumps.h:124 -#, fuzzy -msgid "Cone angle" -msgstr "Angolo del cono" +#: ../share/templates/templates.h:1 +msgid "white opaque empty" +msgstr "bianco opaco vuoto" -#: ../src/extension/internal/filter/bumps.h:127 -#, fuzzy -msgid "Image color" -msgstr "Incolla colore" +#: ../share/templates/templates.h:1 +msgid "Business Card 85x54mm" +msgstr "Biglietto da visita 85x54mm" -#: ../src/extension/internal/filter/bumps.h:128 -#, fuzzy -msgid "Color bump" -msgstr "Colore" +#: ../share/templates/templates.h:1 +msgid "Empty business card template." +msgstr "Modello biglietto da visita vuoto." -#: ../src/extension/internal/filter/bumps.h:142 -#: ../src/extension/internal/filter/bumps.h:362 -msgid "Bumps" -msgstr "RugositĂ " +#: ../share/templates/templates.h:1 +msgid "business card empty 85x54" +msgstr "biglietto visita vuoto 85x54" -#: ../src/extension/internal/filter/bumps.h:145 -msgid "All purposes bump filter" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "Business Card 90x50mm" +msgstr "Biglietto da visita 90x50mm" -#: ../src/extension/internal/filter/bumps.h:309 -#, fuzzy -msgid "Wax Bump" -msgstr "RugositĂ " +#: ../share/templates/templates.h:1 +msgid "business card empty 90x50" +msgstr "biglietto visita vuoto 90x50" -#: ../src/extension/internal/filter/bumps.h:320 -#, fuzzy -msgid "Background:" -msgstr "Sfo_ndo:" +#: ../share/templates/templates.h:1 +msgid "CD Cover 300dpi" +msgstr "Cover CD 300dpi" -#: ../src/extension/internal/filter/bumps.h:322 -#: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:517 -msgid "Image" -msgstr "Immagine" +#: ../share/templates/templates.h:1 +msgid "Empty CD box cover." +msgstr "Cover CD vuota." -#: ../src/extension/internal/filter/bumps.h:323 -#, fuzzy -msgid "Blurred image" -msgstr "Incorpora immagini" +#: ../share/templates/templates.h:1 +msgid "CD cover disc disk 300dpi box" +msgstr "CD cover disco 300dpi" -#: ../src/extension/internal/filter/bumps.h:325 -#, fuzzy -msgid "Background opacity" -msgstr "Trasparenza dello sfondo" +#: ../share/templates/templates.h:1 +msgid "CD Label 120x120 " +msgstr "Etichetta CD 120x120 " -#: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 -#, fuzzy -msgid "Lighting" -msgstr "Illumina" +#: ../share/templates/templates.h:1 +msgid "Simple CD Label template with disc's pattern." +msgstr "Semplice modello di etichetta per CD." -#: ../src/extension/internal/filter/bumps.h:334 -#, fuzzy -msgid "Lighting blend:" -msgstr "Disegno cancellato" +#: ../share/templates/templates.h:1 +msgid "CD label 120x120 disc disk" +msgstr "CD etichetta 120x120 disco" -#: ../src/extension/internal/filter/bumps.h:341 -#, fuzzy -msgid "Highlight blend:" -msgstr "Colore di e_videnziazione:" +#: ../share/templates/templates.h:1 +msgid "DVD Cover Regular 300dpi " +msgstr "Cover DVD Normale 300dpi " -#: ../src/extension/internal/filter/bumps.h:350 -#, fuzzy -msgid "Bump color" -msgstr "Rilascia colore" +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD covers." +msgstr "Modello per cover DVD fronte-retro" -#: ../src/extension/internal/filter/bumps.h:351 -#, fuzzy -msgid "Revert bump" -msgstr "Ri_carica" +#: ../share/templates/templates.h:1 +msgid "DVD cover regular 300dpi" +msgstr "DVD cover normale 300dpi" -#: ../src/extension/internal/filter/bumps.h:352 -#, fuzzy -msgid "Transparency type:" -msgstr "0 (trasparente)" +#: ../share/templates/templates.h:1 +msgid "DVD Cover Slim 300dpi " +msgstr "Cover DVD slim 300dpi " -#: ../src/extension/internal/filter/bumps.h:353 -#: ../src/extension/internal/filter/morphology.h:176 -#: ../src/filter-enums.cpp:90 -msgid "Atop" -msgstr "In cima" +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD slim covers." +msgstr "Modello per cover DVD slim fronte-retro." -#: ../src/extension/internal/filter/bumps.h:354 -#: ../src/extension/internal/filter/distort.h:70 -#: ../src/extension/internal/filter/morphology.h:174 -#: ../src/filter-enums.cpp:88 -msgid "In" -msgstr "In" +#: ../share/templates/templates.h:1 +msgid "DVD cover slim 300dpi" +msgstr "DVD cover slim 300dpi" -#: ../src/extension/internal/filter/bumps.h:365 -msgid "Turns an image to jelly" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "DVD Cover Superslim 300dpi " +msgstr "Cover DVD superslim 300dpi " -#: ../src/extension/internal/filter/color.h:72 -msgid "Brilliance" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD superslim covers." +msgstr "Modello per cover DVD fronte-retro superslim." -#: ../src/extension/internal/filter/color.h:75 -#: ../src/extension/internal/filter/color.h:1417 -#, fuzzy -msgid "Over-saturation" -msgstr "Saturazione" +#: ../share/templates/templates.h:1 +msgid "DVD cover superslim 300dpi" +msgstr "DVD cover superslim 300dpi" -#: ../src/extension/internal/filter/color.h:77 -#: ../src/extension/internal/filter/color.h:161 -#: ../src/extension/internal/filter/overlays.h:70 -#: ../src/extension/internal/filter/paint.h:85 -#: ../src/extension/internal/filter/paint.h:502 -#: ../src/extension/internal/filter/transparency.h:136 -#: ../src/extension/internal/filter/transparency.h:210 -#, fuzzy -msgid "Inverted" -msgstr "Inverti" +#: ../share/templates/templates.h:1 +msgid "DVD Cover Ultraslim 300dpi " +msgstr "Cover DVD ultraslim 300dpi " -#: ../src/extension/internal/filter/color.h:85 -#, fuzzy -msgid "Brightness filter" -msgstr "Passaggi di luminositĂ " +#: ../share/templates/templates.h:1 +msgid "Template for both-sides DVD ultraslim covers." +msgstr "Modello per cover DVD ultraslim fronte-retro." -#: ../src/extension/internal/filter/color.h:152 -#, fuzzy -msgid "Channel Painting" -msgstr "Pittura ad olio" +#: ../share/templates/templates.h:1 +msgid "DVD cover ultraslim 300dpi" +msgstr "DVD cover ultraslim 300dpi" -#: ../src/extension/internal/filter/color.h:156 -#: ../src/extension/internal/filter/color.h:257 -#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:65 -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -#: ../src/ui/tools/flood-tool.cpp:197 -#: ../src/widgets/sp-color-icc-selector.cpp:362 -#: ../src/widgets/sp-color-icc-selector.cpp:367 -#: ../src/widgets/sp-color-scales.cpp:458 -#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:302 -#: ../share/extensions/color_randomize.inx.h:4 -msgid "Saturation" -msgstr "Saturazione" +#: ../share/templates/templates.h:1 +msgid "Desktop 1024x768" +msgstr "Desktop 1024x768" -#: ../src/extension/internal/filter/color.h:160 -#: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:199 -msgid "Alpha" -msgstr "Alfa" +#: ../share/templates/templates.h:1 +msgid "Empty desktop size sheet" +msgstr "Foglio dimensione desktop vuoto" -#: ../src/extension/internal/filter/color.h:174 -#, fuzzy -msgid "Replace RGB by any color" -msgstr "Rimpiazza tinta con due colori" +#: ../share/templates/templates.h:1 +msgid "desktop 1024x768 wallpaper" +msgstr "desktop 1024x768 wallpaper" -#: ../src/extension/internal/filter/color.h:254 -#, fuzzy -msgid "Color Shift" -msgstr "Ombra colorata" +#: ../share/templates/templates.h:1 +msgid "Desktop 1600x1200" +msgstr "Desktop 1600x1200" -#: ../src/extension/internal/filter/color.h:256 -#, fuzzy -msgid "Shift (°)" -msgstr "Spos_tamento" +#: ../share/templates/templates.h:1 +msgid "desktop 1600x1200 wallpaper" +msgstr "desktop 1600x1200 wallpaper" -#: ../src/extension/internal/filter/color.h:265 -msgid "Rotate and desaturate hue" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "Desktop 640x480" +msgstr "Desktop 640x480" -#: ../src/extension/internal/filter/color.h:321 -#, fuzzy -msgid "Harsh light" -msgstr "Altezza barre:" +#: ../share/templates/templates.h:1 +msgid "desktop 640x480 wallpaper" +msgstr "desktop 640x480 wallpaper" -#: ../src/extension/internal/filter/color.h:322 -#, fuzzy -msgid "Normal light" -msgstr "Proiezione normale" +#: ../share/templates/templates.h:1 +msgid "Desktop 800x600" +msgstr "Desktop 800x600" -#: ../src/extension/internal/filter/color.h:323 -msgid "Duotone" -msgstr "Due toni" +#: ../share/templates/templates.h:1 +msgid "desktop 800x600 wallpaper" +msgstr "desktop 800x600 wallpaper" -#: ../src/extension/internal/filter/color.h:324 -#: ../src/extension/internal/filter/color.h:1412 -#, fuzzy -msgid "Blend 1:" -msgstr "Miscela" +#: ../share/templates/templates.h:1 +msgid "Fontforge Glyph" +msgstr "Glifo Fontforge" -#: ../src/extension/internal/filter/color.h:331 -#: ../src/extension/internal/filter/color.h:1418 -#, fuzzy -msgid "Blend 2:" -msgstr "Miscela" +#: ../share/templates/templates.h:1 +msgid "font fontforge glyph 1000x1000" +msgstr "font fontforge glifo 1000x1000" -#: ../src/extension/internal/filter/color.h:350 -#, fuzzy -msgid "Blend image or object with a flood color" -msgstr "" -"Miscela immagini o oggetti con un colore di riempimento e importa luminositĂ  " -"e contrasto" +#: ../share/templates/templates.h:1 +msgid "Icon 16x16" +msgstr "Icona 16x16" -#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:22 -msgid "Component Transfer" -msgstr "Trasferimento componenti" +#: ../share/templates/templates.h:1 +msgid "Small 16x16 icon template." +msgstr "Modello icona piccola 16x16." -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:109 -msgid "Identity" -msgstr "IdentitĂ " +#: ../share/templates/templates.h:1 +msgid "icon 16x16 empty" +msgstr "icona 16x16 vuota" -#: ../src/extension/internal/filter/color.h:428 -#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:110 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 -msgid "Table" -msgstr "Tabella" +#: ../share/templates/templates.h:1 +msgid "Icon 32x32" +msgstr "Icona 32x32" -#: ../src/extension/internal/filter/color.h:429 -#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:111 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 -msgid "Discrete" -msgstr "Discreto" +#: ../share/templates/templates.h:1 +msgid "32x32 icon template." +msgstr "Modello icona 32x32." -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:112 -#: ../src/live_effects/lpe-powerstroke.cpp:188 -msgid "Linear" -msgstr "Lineare" +#: ../share/templates/templates.h:1 +msgid "icon 32x32 empty" +msgstr "icona 32x32 vuota" -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:113 -msgid "Gamma" -msgstr "Gamma" +#: ../share/templates/templates.h:1 +msgid "Icon 48x48" +msgstr "Icona 48x48" -#: ../src/extension/internal/filter/color.h:440 -#, fuzzy -msgid "Basic component transfer structure" -msgstr "Texture semplice con disturbo in trasparenza" +#: ../share/templates/templates.h:1 +msgid "48x48 icon template." +msgstr "Modello icona 48x48." -#: ../src/extension/internal/filter/color.h:509 -#, fuzzy -msgid "Duochrome" -msgstr "Cromatura" +#: ../share/templates/templates.h:1 +msgid "icon 48x48 empty" +msgstr "icona 48x48 vuota" -#: ../src/extension/internal/filter/color.h:513 -#, fuzzy -msgid "Fluorescence level" -msgstr "Fluorescenza" +#: ../share/templates/templates.h:1 +msgid "Icon 64x64" +msgstr "Icona 64x64" -#: ../src/extension/internal/filter/color.h:514 -msgid "Swap:" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "64x64 icon template." +msgstr "Modello icona 64x64." -#: ../src/extension/internal/filter/color.h:515 -msgid "No swap" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "icon 64x64 empty" +msgstr "icona 64x64 vuota" -#: ../src/extension/internal/filter/color.h:516 -#, fuzzy -msgid "Color and alpha" -msgstr "Gestione del colore" +#: ../share/templates/templates.h:1 +msgid "Letter Landscape" +msgstr "Letter Orizzontale" -#: ../src/extension/internal/filter/color.h:517 -#, fuzzy -msgid "Color only" -msgstr "Colore delle linee guida" +#: ../share/templates/templates.h:1 +msgid "Standard letter landscape sheet - 792x612" +msgstr "Foglio letter standard orizzontale - 792x612" -#: ../src/extension/internal/filter/color.h:518 -#, fuzzy -msgid "Alpha only" -msgstr "Alfa" +#: ../share/templates/templates.h:1 +msgid "letter landscape 792x612 empty" +msgstr "letter orizzontale 792x612 vuoto" -#: ../src/extension/internal/filter/color.h:522 -#, fuzzy -msgid "Color 1" -msgstr "Colore" +#: ../share/templates/templates.h:1 +msgid "Letter" +msgstr "Letter" -#: ../src/extension/internal/filter/color.h:525 -#, fuzzy -msgid "Color 2" -msgstr "Colore" +#: ../share/templates/templates.h:1 +msgid "Standard letter sheet - 612x792" +msgstr "Foglio letter standard - 612x792" -#: ../src/extension/internal/filter/color.h:535 -#, fuzzy -msgid "Convert luminance values to a duochrome palette" -msgstr "Cambia i colori in una tavolozza a due toni" +#: ../share/templates/templates.h:1 +msgid "letter 612x792 empty" +msgstr "letter 612x792 vuoto" -#: ../src/extension/internal/filter/color.h:634 -#, fuzzy -msgid "Extract Channel" -msgstr "Canale «Opacità»" +#: ../share/templates/templates.h:1 +msgid "No Borders" +msgstr "Nessun bordo" -#: ../src/extension/internal/filter/color.h:640 -#: ../src/widgets/sp-color-icc-selector.cpp:369 -#: ../src/widgets/sp-color-icc-selector.cpp:374 -#: ../src/widgets/sp-color-scales.cpp:483 -#: ../src/widgets/sp-color-scales.cpp:484 -msgid "Cyan" -msgstr "Cyan" +#: ../share/templates/templates.h:1 +msgid "Empty sheet with no borders" +msgstr "Foglio vuoto senza bordi" -#: ../src/extension/internal/filter/color.h:641 -#: ../src/widgets/sp-color-icc-selector.cpp:370 -#: ../src/widgets/sp-color-icc-selector.cpp:375 -#: ../src/widgets/sp-color-scales.cpp:486 -#: ../src/widgets/sp-color-scales.cpp:487 -msgid "Magenta" -msgstr "Magenta" +#: ../share/templates/templates.h:1 +msgid "no borders empty" +msgstr "no bordi vuoto" -#: ../src/extension/internal/filter/color.h:642 -#: ../src/widgets/sp-color-icc-selector.cpp:371 -#: ../src/widgets/sp-color-icc-selector.cpp:376 -#: ../src/widgets/sp-color-scales.cpp:489 -#: ../src/widgets/sp-color-scales.cpp:490 -msgid "Yellow" -msgstr "Giallo" +#: ../share/templates/templates.h:1 +msgid "No Layers" +msgstr "Nessun livello" -#: ../src/extension/internal/filter/color.h:644 -#, fuzzy -msgid "Background blend mode:" -msgstr "Colore di sfondo" +#: ../share/templates/templates.h:1 +msgid "Empty sheet with no layers" +msgstr "Foglio vuoto senza livelli" -#: ../src/extension/internal/filter/color.h:649 -#, fuzzy -msgid "Channel to alpha" -msgstr "Da luminanza a trasparenza" +#: ../share/templates/templates.h:1 +msgid "no layers empty" +msgstr "no livelli vuoto" -#: ../src/extension/internal/filter/color.h:657 -#, fuzzy -msgid "Extract color channel as a transparent image" -msgstr "Estrai canale specifico dall'immagine" +#: ../share/templates/templates.h:1 +msgid "Video HDTV 1920x1080" +msgstr "Video HDTV 1920x1080" -#: ../src/extension/internal/filter/color.h:740 -#, fuzzy -msgid "Fade to Black or White" -msgstr "Solo bianco e nero" +#: ../share/templates/templates.h:1 +msgid "HDTV video template for 1920x1080 resolution." +msgstr "Modello video HDTV per risoluzione 1920x1080." -#: ../src/extension/internal/filter/color.h:743 -#, fuzzy -msgid "Fade to:" -msgstr "OpacitĂ :" +#: ../share/templates/templates.h:1 +msgid "HDTV video empty 1920x1080" +msgstr "HDTV video vuoto 1920x1080" -#: ../src/extension/internal/filter/color.h:744 -#: ../src/ui/widget/selected-style.cpp:257 -#: ../src/widgets/sp-color-icc-selector.cpp:372 -#: ../src/widgets/sp-color-scales.cpp:492 -#: ../src/widgets/sp-color-scales.cpp:493 -msgid "Black" -msgstr "Nero" +#: ../share/templates/templates.h:1 +msgid "Video NTSC 720x486" +msgstr "Video NTSC 720x486" -#: ../src/extension/internal/filter/color.h:745 -#: ../src/ui/widget/selected-style.cpp:253 -msgid "White" -msgstr "Bianco" +#: ../share/templates/templates.h:1 +msgid "NTSC video template for 720x486 resolution." +msgstr "Modello video NTSC per risoluzione 720x486." -#: ../src/extension/internal/filter/color.h:754 -#, fuzzy -msgid "Fade to black or white" -msgstr "Solo bianco e nero" +#: ../share/templates/templates.h:1 +msgid "NTSC video empty 720x486" +msgstr "NTSC video vuoto 720x486" -#: ../src/extension/internal/filter/color.h:819 -#, fuzzy -msgid "Greyscale" -msgstr "Scala di grigi" +#: ../share/templates/templates.h:1 +msgid "Video PAL 728x576" +msgstr "Video PAL 728x576" -#: ../src/extension/internal/filter/color.h:825 -#: ../src/extension/internal/filter/paint.h:83 -#: ../src/extension/internal/filter/paint.h:239 -#, fuzzy -msgid "Transparent" -msgstr "0 (trasparente)" +#: ../share/templates/templates.h:1 +msgid "PAL video template for 728x576 resolution." +msgstr "Modello video PAL per risoluzione 728x576." -#: ../src/extension/internal/filter/color.h:833 -msgid "Customize greyscale components" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "PAL video empty 728x576" +msgstr "PAL video vuoto 728x576" -#: ../src/extension/internal/filter/color.h:905 -#: ../src/ui/widget/selected-style.cpp:249 -msgid "Invert" -msgstr "Inverti" +#: ../share/templates/templates.h:1 +msgid "Web Banner 468x60" +msgstr "Web Banner 468x60" -#: ../src/extension/internal/filter/color.h:907 -#, fuzzy -msgid "Invert channels:" -msgstr "Inverti tinta" +#: ../share/templates/templates.h:1 +msgid "Empty 468x60 web banner template." +msgstr "Modello web banner vuoto 468x60." -#: ../src/extension/internal/filter/color.h:908 -#, fuzzy -msgid "No inversion" -msgstr "NovitĂ  di questa versione" +#: ../share/templates/templates.h:1 +msgid "web banner 468x60 empty" +msgstr "web banner 468x60 vuoto" -#: ../src/extension/internal/filter/color.h:909 -#, fuzzy -msgid "Red and blue" -msgstr "Canale «Rosso»" +#: ../share/templates/templates.h:1 +msgid "Web Banner 728x90" +msgstr "Web Banner 728x90" -#: ../src/extension/internal/filter/color.h:910 -#, fuzzy -msgid "Red and green" -msgstr "Crea e modifica i gradienti" +#: ../share/templates/templates.h:1 +msgid "Empty 728x90 web banner template." +msgstr "Modello web banner vuoto 728x90." -#: ../src/extension/internal/filter/color.h:911 -#, fuzzy -msgid "Green and blue" -msgstr "Canale «Verde»" +#: ../share/templates/templates.h:1 +msgid "web banner 728x90 empty" +msgstr "web banner 728x90 vuoto" -#: ../src/extension/internal/filter/color.h:913 -#, fuzzy -msgid "Light transparency" -msgstr "Trasparenza grezza" +#: ../share/templates/templates.h:1 +msgid "LaTeX Beamer" +msgstr "LaTeX Beamer" -#: ../src/extension/internal/filter/color.h:914 -msgid "Invert hue" -msgstr "Inverti tinta" +#: ../share/templates/templates.h:1 +msgid "LaTeX beamer template with helping grid." +msgstr "Modello LaTeX beamer con guide di aiuto." -#: ../src/extension/internal/filter/color.h:915 -#, fuzzy -msgid "Invert lightness" -msgstr "Negativo immagine" +#: ../share/templates/templates.h:1 +msgid "LaTex LaTeX latex grid beamer" +msgstr "LaTex LaTeX latex guide beamer" -#: ../src/extension/internal/filter/color.h:916 -#, fuzzy -msgid "Invert transparency" -msgstr "Sbavatura in trasparenza" +#: ../share/templates/templates.h:1 +msgid "Typography Canvas" +msgstr "Canvas tipografico" -#: ../src/extension/internal/filter/color.h:924 -msgid "Manage hue, lightness and transparency inversions" -msgstr "" +#: ../share/templates/templates.h:1 +msgid "Empty typography canvas with helping guidelines." +msgstr "Modello canvas tipografico vuoto con guide di aiuto." -#: ../src/extension/internal/filter/color.h:1042 -#, fuzzy -msgid "Lights" -msgstr "Destro:" +#: ../share/templates/templates.h:1 +msgid "guidelines typography canvas" +msgstr "guide tipografia tipografico canvas" -#: ../src/extension/internal/filter/color.h:1043 -#, fuzzy -msgid "Shadows" -msgstr "Ombreggia" +#. 3D box +#: ../src/box3d.cpp:259 ../src/box3d.cpp:1310 +#: ../src/ui/dialog/inkscape-preferences.cpp:399 +msgid "3D Box" +msgstr "Solido 3D" -#: ../src/extension/internal/filter/color.h:1044 -#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:32 -#: ../src/live_effects/effect.cpp:95 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1156 -msgid "Offset" -msgstr "Proiezione" +#: ../src/color-profile.cpp:852 +#, c-format +msgid "Color profiles directory (%s) is unavailable." +msgstr "La cartella dei profili colore (%s) non è disponibile." -#: ../src/extension/internal/filter/color.h:1052 -msgid "Modify lights and shadows separately" -msgstr "" +#: ../src/color-profile.cpp:911 ../src/color-profile.cpp:928 +msgid "(invalid UTF-8 string)" +msgstr "(stringa UTF-8 non valida)" -#: ../src/extension/internal/filter/color.h:1111 -msgid "Lightness-Contrast" -msgstr "LuminositĂ -Contrasto" +#: ../src/color-profile.cpp:913 ../src/filter-enums.cpp:121 +#: ../src/live_effects/lpe-ruler.cpp:32 +#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:333 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1838 +#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 +#: ../src/ui/dialog/input.cpp:1571 ../src/ui/dialog/input.cpp:1625 +#: ../src/verbs.cpp:2349 ../src/widgets/gradient-toolbar.cpp:1112 +#: ../src/widgets/pencil-toolbar.cpp:155 +#: ../src/widgets/stroke-marker-selector.cpp:388 +#: ../share/extensions/gcodetools_area.inx.h:48 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +#: ../share/extensions/grid_polar.inx.h:4 +#: ../share/extensions/guides_creator.inx.h:24 +#: ../share/extensions/plotter.inx.h:15 ../share/extensions/scour.inx.h:18 +msgid "None" +msgstr "Nessuno" -#: ../src/extension/internal/filter/color.h:1122 -#, fuzzy -msgid "Modify lightness and contrast separately" -msgstr "Aumenta o diminuisce luminositĂ  e contrasto" +#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 +msgid "Current layer is hidden. Unhide it to be able to draw on it." +msgstr "" +"Il livello attuale è nascosto. Per potervi disegnare occorre " +"mostrarlo." -#: ../src/extension/internal/filter/color.h:1190 -msgid "Nudge RGB" +#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 +msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "" +"Il livello attuale è bloccato. Per potervi disegnare occorre " +"sbloccarlo." -#: ../src/extension/internal/filter/color.h:1194 -#, fuzzy -msgid "Red offset" -msgstr "Spessore del motivo" +#: ../src/desktop-events.cpp:225 +msgid "Create guide" +msgstr "Crea guida" -#: ../src/extension/internal/filter/color.h:1195 -#: ../src/extension/internal/filter/color.h:1198 -#: ../src/extension/internal/filter/color.h:1201 -#: ../src/extension/internal/filter/color.h:1307 -#: ../src/extension/internal/filter/color.h:1310 -#: ../src/extension/internal/filter/color.h:1313 -#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 -msgid "X" -msgstr "X" +#: ../src/desktop-events.cpp:471 +msgid "Move guide" +msgstr "Muovi guida" -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 -#: ../src/ui/dialog/input.cpp:1616 -#, fuzzy -msgid "Y" -msgstr "Y:" +#: ../src/desktop-events.cpp:478 ../src/desktop-events.cpp:536 +#: ../src/ui/dialog/guides.cpp:138 +msgid "Delete guide" +msgstr "Cancella guida" -#: ../src/extension/internal/filter/color.h:1197 -#, fuzzy -msgid "Green offset" -msgstr "Spessore del motivo" +#: ../src/desktop-events.cpp:516 +#, c-format +msgid "Guideline: %s" +msgstr "Linea guida: %s" -#: ../src/extension/internal/filter/color.h:1200 -#, fuzzy -msgid "Blue offset" -msgstr "Valore da impostare" +#: ../src/desktop.cpp:880 +msgid "No previous zoom." +msgstr "Nessuno zoom precedente." -#: ../src/extension/internal/filter/color.h:1215 -msgid "" -"Nudge RGB channels separately and blend them to different types of " -"backgrounds" -msgstr "" +#: ../src/desktop.cpp:901 +msgid "No next zoom." +msgstr "Nessuno zoom successivo." -#: ../src/extension/internal/filter/color.h:1302 -msgid "Nudge CMY" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:317 ../src/display/canvas-grid.cpp:693 +msgid "Grid _units:" +msgstr "_UnitĂ  della griglia:" -#: ../src/extension/internal/filter/color.h:1306 -#, fuzzy -msgid "Cyan offset" -msgstr "Spessore del motivo" +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +msgid "_Origin X:" +msgstr "_Origine X:" -#: ../src/extension/internal/filter/color.h:1309 -#, fuzzy -msgid "Magenta offset" -msgstr "Proiezione tangenziale" +#: ../src/display/canvas-axonomgrid.cpp:319 ../src/display/canvas-grid.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:763 +msgid "X coordinate of grid origin" +msgstr "Coordinata X dell'origine della griglia" -#: ../src/extension/internal/filter/color.h:1312 -#, fuzzy -msgid "Yellow offset" -msgstr "Spessore del motivo" +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +msgid "O_rigin Y:" +msgstr "_Origine Y:" -#: ../src/extension/internal/filter/color.h:1327 -msgid "" -"Nudge CMY channels separately and blend them to different types of " -"backgrounds" -msgstr "" +#: ../src/display/canvas-axonomgrid.cpp:321 ../src/display/canvas-grid.cpp:697 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Y coordinate of grid origin" +msgstr "Coordinate Y dell'origine della griglia" -#: ../src/extension/internal/filter/color.h:1408 -msgid "Quadritone fantasy" -msgstr "Fantasia in quattro torni" +#: ../src/display/canvas-axonomgrid.cpp:323 ../src/display/canvas-grid.cpp:701 +msgid "Spacing _Y:" +msgstr "Spaziatura _Y:" -#: ../src/extension/internal/filter/color.h:1410 -#, fuzzy -msgid "Hue distribution (°)" -msgstr "Usa distribuzione normale" +#: ../src/display/canvas-axonomgrid.cpp:323 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +msgid "Base length of z-axis" +msgstr "UnitĂ  di lunghezza dell'asse z" -#: ../src/extension/internal/filter/color.h:1411 -#: ../share/extensions/svgcalendar.inx.h:19 -msgid "Colors" -msgstr "Colori" +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +#: ../src/widgets/box3d-toolbar.cpp:299 +msgid "Angle X:" +msgstr "Angolo X:" -#: ../src/extension/internal/filter/color.h:1432 -msgid "Replace hue by two colors" -msgstr "Rimpiazza tinta con due colori" +#: ../src/display/canvas-axonomgrid.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 +msgid "Angle of x-axis" +msgstr "Angolo dell'asse x" -#: ../src/extension/internal/filter/color.h:1496 -#, fuzzy -msgid "Hue rotation (°)" -msgstr "Rotazione (gradi)" +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +#: ../src/widgets/box3d-toolbar.cpp:378 +msgid "Angle Z:" +msgstr "Angolo Z:" -#: ../src/extension/internal/filter/color.h:1499 -msgid "Moonarize" -msgstr "Lunare" +#: ../src/display/canvas-axonomgrid.cpp:327 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +msgid "Angle of z-axis" +msgstr "Angolo dell'asse z" -#: ../src/extension/internal/filter/color.h:1508 -#, fuzzy -msgid "Classic photographic solarization effect" -msgstr "Classico effetto fotografico" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Minor grid line _color:" +msgstr "_Colore delle linee minori della griglia:" -#: ../src/extension/internal/filter/color.h:1581 -msgid "Tritone" -msgstr "Tre toni" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 +msgid "Minor grid line color" +msgstr "Colore delle linee minori della griglia" -#: ../src/extension/internal/filter/color.h:1587 -#, fuzzy -msgid "Enhance hue" -msgstr "Migliora" +#: ../src/display/canvas-axonomgrid.cpp:331 ../src/display/canvas-grid.cpp:705 +msgid "Color of the minor grid lines" +msgstr "Colore delle linee minori della griglia" -#: ../src/extension/internal/filter/color.h:1588 -#, fuzzy -msgid "Phosphorescence" -msgstr "Presenza" +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +msgid "Ma_jor grid line color:" +msgstr "Colore delle linee principali della _griglia:" -#: ../src/extension/internal/filter/color.h:1589 -#, fuzzy -msgid "Colored nights" -msgstr "Ombra colorata" +#: ../src/display/canvas-axonomgrid.cpp:336 ../src/display/canvas-grid.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +msgid "Major grid line color" +msgstr "Colore delle linee principali della griglia" -#: ../src/extension/internal/filter/color.h:1590 -#, fuzzy -msgid "Hue to background" -msgstr "Rimuovi sfondo" +#: ../src/display/canvas-axonomgrid.cpp:337 ../src/display/canvas-grid.cpp:711 +msgid "Color of the major (highlighted) grid lines" +msgstr "Colore delle linee principali (evidenziate) della griglia" -#: ../src/extension/internal/filter/color.h:1592 -#, fuzzy -msgid "Global blend:" -msgstr "Piegatura globale" +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "_Major grid line every:" +msgstr "Li_nee principali della griglia ogni:" -#: ../src/extension/internal/filter/color.h:1598 -msgid "Glow" -msgstr "Alone" +#: ../src/display/canvas-axonomgrid.cpp:341 ../src/display/canvas-grid.cpp:715 +msgid "lines" +msgstr "linee" -#: ../src/extension/internal/filter/color.h:1599 -#, fuzzy -msgid "Glow blend:" -msgstr "Bolle con alone" +#: ../src/display/canvas-grid.cpp:63 +msgid "Rectangular grid" +msgstr "Griglia rettangolare" -#: ../src/extension/internal/filter/color.h:1604 -#, fuzzy -msgid "Local light" -msgstr "Illuminazione speculare" +#: ../src/display/canvas-grid.cpp:64 +msgid "Axonometric grid" +msgstr "Griglia assonometrica" -#: ../src/extension/internal/filter/color.h:1605 -#, fuzzy -msgid "Global light" -msgstr "Piegatura globale" +#: ../src/display/canvas-grid.cpp:275 +msgid "Create new grid" +msgstr "Crea nuova griglia" -#: ../src/extension/internal/filter/color.h:1608 -#, fuzzy -msgid "Hue distribution (°):" -msgstr "Usa distribuzione normale" +#: ../src/display/canvas-grid.cpp:341 +msgid "_Enabled" +msgstr "_Abilitata" -#: ../src/extension/internal/filter/color.h:1619 +#: ../src/display/canvas-grid.cpp:342 msgid "" -"Create a custom tritone palette with additional glow, blend modes and hue " -"moving" +"Determines whether to snap to this grid or not. Can be 'on' for invisible " +"grids." msgstr "" +"Determina se agganciare a questa griglia o meno. Può essere attiva per " +"griglie invisibili." -#: ../src/extension/internal/filter/distort.h:67 -#, fuzzy -msgid "Felt Feather" -msgstr "Cuoio" - -#: ../src/extension/internal/filter/distort.h:71 -#: ../src/extension/internal/filter/morphology.h:175 -#: ../src/filter-enums.cpp:89 -msgid "Out" -msgstr "Out" +#: ../src/display/canvas-grid.cpp:346 +msgid "Snap to visible _grid lines only" +msgstr "Aggancia solo alle linee visibili della griglia" -#: ../src/extension/internal/filter/distort.h:77 -#: ../src/extension/internal/filter/textures.h:75 -#: ../src/ui/widget/selected-style.cpp:131 -#: ../src/ui/widget/style-swatch.cpp:128 -msgid "Stroke:" -msgstr "Contorno:" +#: ../src/display/canvas-grid.cpp:347 +msgid "" +"When zoomed out, not all grid lines will be displayed. Only the visible ones " +"will be snapped to" +msgstr "" +"Quando si rimpicciolisce, non tutte le linee della griglia vengono mostrate. " +"L'aggancio si effettua solo su quelle visibili" -#: ../src/extension/internal/filter/distort.h:79 -#: ../src/extension/internal/filter/textures.h:76 -msgid "Wide" -msgstr "Larga" +#: ../src/display/canvas-grid.cpp:351 +msgid "_Visible" +msgstr "_Visibile" -#: ../src/extension/internal/filter/distort.h:80 -#: ../src/extension/internal/filter/textures.h:78 -#, fuzzy -msgid "Narrow" -msgstr "stretto" +#: ../src/display/canvas-grid.cpp:352 +msgid "" +"Determines whether the grid is displayed or not. Objects are still snapped " +"to invisible grids." +msgstr "" +"Determina se la griglia viene mostrata o meno. Gli oggetti vengono " +"agganciati anche alle griglie invisibili." -#: ../src/extension/internal/filter/distort.h:81 -msgid "No fill" -msgstr "Nessun riempimento" +#: ../src/display/canvas-grid.cpp:699 +msgid "Spacing _X:" +msgstr "Spaziatura _X:" -#: ../src/extension/internal/filter/distort.h:83 -#, fuzzy -msgid "Turbulence:" -msgstr "Turbolenza" +#: ../src/display/canvas-grid.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:744 +msgid "Distance between vertical grid lines" +msgstr "Distanza tra linee guida verticali" -#: ../src/extension/internal/filter/distort.h:84 -#: ../src/extension/internal/filter/distort.h:193 -#: ../src/extension/internal/filter/overlays.h:61 -#: ../src/extension/internal/filter/paint.h:692 -#, fuzzy -msgid "Fractal noise" -msgstr "Rumore frattale" +#: ../src/display/canvas-grid.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +msgid "Distance between horizontal grid lines" +msgstr "Distanza tra linee guida orizzontali" -#: ../src/extension/internal/filter/distort.h:85 -#: ../src/extension/internal/filter/distort.h:194 -#: ../src/extension/internal/filter/overlays.h:62 -#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:35 -#: ../src/filter-enums.cpp:144 -msgid "Turbulence" -msgstr "Turbolenza" +#: ../src/display/canvas-grid.cpp:732 +msgid "_Show dots instead of lines" +msgstr "Vi_sualizza punti invece di linee" -#: ../src/extension/internal/filter/distort.h:87 -#: ../src/extension/internal/filter/distort.h:196 -#: ../src/extension/internal/filter/paint.h:93 -#: ../src/extension/internal/filter/paint.h:695 -#, fuzzy -msgid "Horizontal frequency" -msgstr "Proiezione orizzontale" +#: ../src/display/canvas-grid.cpp:733 +msgid "If set, displays dots at gridpoints instead of gridlines" +msgstr "" +"Se impostato, visualizza i punti di intersezione delle griglie invece delle " +"linee" -#: ../src/extension/internal/filter/distort.h:88 -#: ../src/extension/internal/filter/distort.h:197 -#: ../src/extension/internal/filter/paint.h:94 -#: ../src/extension/internal/filter/paint.h:696 -#, fuzzy -msgid "Vertical frequency" -msgstr "Frequenza tremore" +#. TRANSLATORS: undefined target for snapping +#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 +#: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 +msgid "UNDEFINED" +msgstr "NON DEFINITO" -#: ../src/extension/internal/filter/distort.h:89 -#: ../src/extension/internal/filter/distort.h:198 -#: ../src/extension/internal/filter/paint.h:95 -#: ../src/extension/internal/filter/paint.h:697 -#, fuzzy -msgid "Complexity" -msgstr "ComplessitĂ  massima" +#: ../src/display/snap-indicator.cpp:79 +msgid "grid line" +msgstr "linea della griglia" -#: ../src/extension/internal/filter/distort.h:90 -#: ../src/extension/internal/filter/distort.h:199 -#: ../src/extension/internal/filter/paint.h:96 -#: ../src/extension/internal/filter/paint.h:698 -#, fuzzy -msgid "Variation" -msgstr "Saturazione" +#: ../src/display/snap-indicator.cpp:82 +msgid "grid intersection" +msgstr "intersezione della griglia" -#: ../src/extension/internal/filter/distort.h:91 -#: ../src/extension/internal/filter/distort.h:200 +#: ../src/display/snap-indicator.cpp:85 #, fuzzy -msgid "Intensity" -msgstr "Intersezione" +msgid "grid line (perpendicular)" +msgstr "Bisettrice perpendicolare" -#: ../src/extension/internal/filter/distort.h:96 -#: ../src/extension/internal/filter/distort.h:205 -msgid "Distort" -msgstr "Distorto" +#: ../src/display/snap-indicator.cpp:88 +msgid "guide" +msgstr "guida" -#: ../src/extension/internal/filter/distort.h:99 -#, fuzzy -msgid "Blur and displace edges of shapes and pictures" -msgstr "" -"Proietta un alone colorabile dei bordi all'interno di oggetti e immagini" +#: ../src/display/snap-indicator.cpp:91 +msgid "guide intersection" +msgstr "intersezione guide" -#: ../src/extension/internal/filter/distort.h:190 -msgid "Roughen" -msgstr "Increspato" +#: ../src/display/snap-indicator.cpp:94 +msgid "guide origin" +msgstr "origine guida" -#: ../src/extension/internal/filter/distort.h:192 -#: ../src/extension/internal/filter/overlays.h:60 -#: ../src/extension/internal/filter/paint.h:691 -#: ../src/extension/internal/filter/textures.h:64 +#: ../src/display/snap-indicator.cpp:97 #, fuzzy -msgid "Turbulence type:" -msgstr "Turbolenza" +msgid "guide (perpendicular)" +msgstr "Bisettrice perpendicolare" -#: ../src/extension/internal/filter/distort.h:208 -msgid "Small-scale roughening to edges and content" -msgstr "Piccole increspature sui bordi e all'interno" +#: ../src/display/snap-indicator.cpp:100 +msgid "grid-guide intersection" +msgstr "intersezioni griglia-guide" -#: ../src/extension/internal/filter/filter-file.cpp:34 -msgid "Bundled" -msgstr "Incluso" +#: ../src/display/snap-indicator.cpp:103 +msgid "cusp node" +msgstr "nodo angolare" -#: ../src/extension/internal/filter/filter-file.cpp:35 -msgid "Personal" -msgstr "Personale" +#: ../src/display/snap-indicator.cpp:106 +msgid "smooth node" +msgstr "nodo curvo" -#: ../src/extension/internal/filter/filter-file.cpp:47 -msgid "Null external module directory name. Filters will not be loaded." -msgstr "" -"Nome per la cartella dei moduli esterni non valido. I moduli non verranno " -"caricati." +#: ../src/display/snap-indicator.cpp:109 +msgid "path" +msgstr "tracciato" -#: ../src/extension/internal/filter/image.h:49 +#: ../src/display/snap-indicator.cpp:112 #, fuzzy -msgid "Edge Detect" -msgstr "Rilevamento bordi" +msgid "path (perpendicular)" +msgstr "Bisettrice perpendicolare" -#: ../src/extension/internal/filter/image.h:51 -msgid "Detect:" +#: ../src/display/snap-indicator.cpp:115 +msgid "path (tangential)" msgstr "" -#: ../src/extension/internal/filter/image.h:52 -#: ../src/ui/dialog/template-load-tab.cpp:105 -#: ../src/ui/dialog/template-load-tab.cpp:142 +#: ../src/display/snap-indicator.cpp:118 +msgid "path intersection" +msgstr "intersezione tracciato" + +#: ../src/display/snap-indicator.cpp:121 #, fuzzy -msgid "All" -msgstr "Stretta" +msgid "guide-path intersection" +msgstr "intersezione guide" -#: ../src/extension/internal/filter/image.h:53 +#: ../src/display/snap-indicator.cpp:124 #, fuzzy -msgid "Vertical lines" -msgstr "Raggio verticale" +msgid "clip-path" +msgstr "Imposta fissaggio" -#: ../src/extension/internal/filter/image.h:54 +#: ../src/display/snap-indicator.cpp:127 #, fuzzy -msgid "Horizontal lines" -msgstr "Raggio orizzontale" +msgid "mask-path" +msgstr "Modifica tracciato maschera" -#: ../src/extension/internal/filter/image.h:57 -msgid "Invert colors" -msgstr "Inverti colori" +#: ../src/display/snap-indicator.cpp:130 +msgid "bounding box corner" +msgstr "angolo riquadro" -#: ../src/extension/internal/filter/image.h:62 -#, fuzzy -msgid "Image Effects" -msgstr "Effetti immagine" +#: ../src/display/snap-indicator.cpp:133 +msgid "bounding box side" +msgstr "lato riquadro" -#: ../src/extension/internal/filter/image.h:65 -msgid "Detect color edges in object" -msgstr "Rileva bordi colorati nell'oggetto" +#: ../src/display/snap-indicator.cpp:136 +msgid "page border" +msgstr "bordo pagina" -#: ../src/extension/internal/filter/morphology.h:58 -msgid "Cross-smooth" -msgstr "Intersezioni dolci" +#: ../src/display/snap-indicator.cpp:139 +msgid "line midpoint" +msgstr "metĂ  linea" -#: ../src/extension/internal/filter/morphology.h:61 -#: ../src/extension/internal/filter/shadows.h:66 -#, fuzzy -msgid "Inner" -msgstr "Alone interno" +#: ../src/display/snap-indicator.cpp:142 +msgid "object midpoint" +msgstr "baricentro oggetto" -#: ../src/extension/internal/filter/morphology.h:62 -#: ../src/extension/internal/filter/shadows.h:65 -msgid "Outer" -msgstr "" +#: ../src/display/snap-indicator.cpp:145 +msgid "object rotation center" +msgstr "centro di rotazione oggetto" -#: ../src/extension/internal/filter/morphology.h:63 -#, fuzzy -msgid "Open" -msgstr "_Apri..." +#: ../src/display/snap-indicator.cpp:148 +msgid "bounding box side midpoint" +msgstr "metĂ  lato riquadro" -#: ../src/extension/internal/filter/morphology.h:65 -#: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:314 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/interp_att_g.inx.h:10 -msgid "Width" -msgstr "Larghezza" +#: ../src/display/snap-indicator.cpp:151 +msgid "bounding box midpoint" +msgstr "baricentro riquadro" -#: ../src/extension/internal/filter/morphology.h:69 -#: ../src/extension/internal/filter/morphology.h:190 -#, fuzzy -msgid "Antialiasing" -msgstr "Antialias" +#: ../src/display/snap-indicator.cpp:154 +msgid "page corner" +msgstr "angolo pagina" -#: ../src/extension/internal/filter/morphology.h:70 -msgid "Blur content" -msgstr "Sfocatura contenuto" +#: ../src/display/snap-indicator.cpp:157 +msgid "quadrant point" +msgstr "punto quadrante" -#: ../src/extension/internal/filter/morphology.h:76 -#: ../src/extension/internal/filter/morphology.h:203 -#: ../src/filter-enums.cpp:31 -msgid "Morphology" -msgstr "Morfologia" +#: ../src/display/snap-indicator.cpp:161 +msgid "corner" +msgstr "angolo" -#: ../src/extension/internal/filter/morphology.h:79 -msgid "Smooth edges and angles of shapes" +#: ../src/display/snap-indicator.cpp:164 +msgid "text anchor" msgstr "" -#: ../src/extension/internal/filter/morphology.h:166 -msgid "Outline" -msgstr "Scheletro" - -#: ../src/extension/internal/filter/morphology.h:170 -#, fuzzy -msgid "Fill image" -msgstr "Tutte le immagini" +#: ../src/display/snap-indicator.cpp:167 +msgid "text baseline" +msgstr "linea base del testo" -#: ../src/extension/internal/filter/morphology.h:171 +#: ../src/display/snap-indicator.cpp:170 #, fuzzy -msgid "Hide image" -msgstr "Nascondi livello" +msgid "constrained angle" +msgstr "Angolo di rotazione" -#: ../src/extension/internal/filter/morphology.h:172 +#: ../src/display/snap-indicator.cpp:173 #, fuzzy -msgid "Composite type:" -msgstr "Composto" - -#: ../src/extension/internal/filter/morphology.h:173 -#: ../src/filter-enums.cpp:87 -msgid "Over" -msgstr "Sovrapposizione" - -#: ../src/extension/internal/filter/morphology.h:177 -#: ../src/filter-enums.cpp:91 -msgid "XOR" -msgstr "XOR" - -#: ../src/extension/internal/filter/morphology.h:179 -#: ../src/ui/dialog/layer-properties.cpp:185 -msgid "Position:" -msgstr "Posizione:" +msgid "constraint" +msgstr "Costante:" -#: ../src/extension/internal/filter/morphology.h:180 -#, fuzzy -msgid "Inside" -msgstr "lato superiore" +#: ../src/display/snap-indicator.cpp:187 +msgid "Bounding box corner" +msgstr "Angolo riquadro" -#: ../src/extension/internal/filter/morphology.h:181 -#, fuzzy -msgid "Outside" -msgstr "_Estrudi" +#: ../src/display/snap-indicator.cpp:190 +msgid "Bounding box midpoint" +msgstr "Baricentro riquadro" -#: ../src/extension/internal/filter/morphology.h:182 -#, fuzzy -msgid "Overlayed" -msgstr "Sovrapposizione" +#: ../src/display/snap-indicator.cpp:193 +msgid "Bounding box side midpoint" +msgstr "MetĂ  lato riquadro" -#: ../src/extension/internal/filter/morphology.h:184 -#, fuzzy -msgid "Width 1" -msgstr "Larghezza:" +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1319 +msgid "Smooth node" +msgstr "Nodo curvo" -#: ../src/extension/internal/filter/morphology.h:185 -#, fuzzy -msgid "Dilatation 1" -msgstr "Saturazione" +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1318 +msgid "Cusp node" +msgstr "Nodo angolare" -#: ../src/extension/internal/filter/morphology.h:186 -#, fuzzy -msgid "Erosion 1" -msgstr "Posizione:" +#: ../src/display/snap-indicator.cpp:202 +msgid "Line midpoint" +msgstr "MetĂ  linea" -#: ../src/extension/internal/filter/morphology.h:187 -#, fuzzy -msgid "Width 2" -msgstr "Larghezza:" +#: ../src/display/snap-indicator.cpp:205 +msgid "Object midpoint" +msgstr "Baricentro oggetto" -#: ../src/extension/internal/filter/morphology.h:188 -#, fuzzy -msgid "Dilatation 2" -msgstr "Saturazione" +#: ../src/display/snap-indicator.cpp:208 +msgid "Object rotation center" +msgstr "Centro di rotazione oggetto" -#: ../src/extension/internal/filter/morphology.h:189 -#, fuzzy -msgid "Erosion 2" -msgstr "Posizione:" +#: ../src/display/snap-indicator.cpp:212 +msgid "Handle" +msgstr "Maniglia" -#: ../src/extension/internal/filter/morphology.h:191 -msgid "Smooth" -msgstr "UniformitĂ " +#: ../src/display/snap-indicator.cpp:215 +msgid "Path intersection" +msgstr "Intersezione tracciato" -#: ../src/extension/internal/filter/morphology.h:195 -#, fuzzy -msgid "Fill opacity:" -msgstr "OpacitĂ  riempimento, %" +#: ../src/display/snap-indicator.cpp:218 +msgid "Guide" +msgstr "Guida" -#: ../src/extension/internal/filter/morphology.h:196 -#, fuzzy -msgid "Stroke opacity:" -msgstr "OpacitĂ  contorno, %" +#: ../src/display/snap-indicator.cpp:221 +msgid "Guide origin" +msgstr "Origine guida" -#: ../src/extension/internal/filter/morphology.h:206 -#, fuzzy -msgid "Adds a colorizable outline" -msgstr "Proietta un alone interno colorabile" +#: ../src/display/snap-indicator.cpp:224 +msgid "Convex hull corner" +msgstr "Angolo convesso" -#: ../src/extension/internal/filter/overlays.h:56 -#, fuzzy -msgid "Noise Fill" -msgstr "Riempimento rumoroso" +#: ../src/display/snap-indicator.cpp:227 +msgid "Quadrant point" +msgstr "Punto cardinale" -#: ../src/extension/internal/filter/overlays.h:59 -#: ../src/extension/internal/filter/paint.h:690 -#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 -#: ../src/ui/dialog/tracedialog.cpp:747 -#: ../share/extensions/color_HSL_adjust.inx.h:2 -#: ../share/extensions/color_custom.inx.h:2 -#: ../share/extensions/color_randomize.inx.h:2 -#: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 -#: ../share/extensions/dxf_outlines.inx.h:2 -#: ../share/extensions/gcodetools_area.inx.h:29 -#: ../share/extensions/gcodetools_engraving.inx.h:7 -#: ../share/extensions/gcodetools_graffiti.inx.h:21 -#: ../share/extensions/gcodetools_lathe.inx.h:22 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 -#: ../share/extensions/generate_voronoi.inx.h:2 -#: ../share/extensions/gimp_xcf.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:2 -#: ../share/extensions/jessyInk_uninstall.inx.h:2 -#: ../share/extensions/lorem_ipsum.inx.h:2 -#: ../share/extensions/pathalongpath.inx.h:2 -#: ../share/extensions/pathscatter.inx.h:2 -#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 -#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 -#: ../share/extensions/web-set-att.inx.h:2 -#: ../share/extensions/web-transmit-att.inx.h:2 -#: ../share/extensions/webslicer_create_group.inx.h:2 -#: ../share/extensions/webslicer_export.inx.h:2 -msgid "Options" -msgstr "Opzioni" +#: ../src/display/snap-indicator.cpp:231 +msgid "Corner" +msgstr "Angolo" -#: ../src/extension/internal/filter/overlays.h:64 +#: ../src/display/snap-indicator.cpp:234 #, fuzzy -msgid "Horizontal frequency:" -msgstr "Proiezione orizzontale" +msgid "Text anchor" +msgstr "Input testo" -#: ../src/extension/internal/filter/overlays.h:65 -#, fuzzy -msgid "Vertical frequency:" -msgstr "Frequenza tremore" +#: ../src/display/snap-indicator.cpp:237 +msgid "Multiple of grid spacing" +msgstr "" -#: ../src/extension/internal/filter/overlays.h:66 -#: ../src/extension/internal/filter/textures.h:69 -#, fuzzy -msgid "Complexity:" -msgstr "ComplessitĂ  massima" +#: ../src/display/snap-indicator.cpp:268 +msgid " to " +msgstr " a " -#: ../src/extension/internal/filter/overlays.h:67 -#: ../src/extension/internal/filter/textures.h:70 -#, fuzzy -msgid "Variation:" -msgstr "Saturazione" +#: ../src/document.cpp:542 +#, c-format +msgid "New document %d" +msgstr "Nuovo documento %d" -#: ../src/extension/internal/filter/overlays.h:68 -#, fuzzy -msgid "Dilatation:" -msgstr "Saturazione" +#: ../src/document.cpp:547 +#, fuzzy, c-format +msgid "Memory document %d" +msgstr "Documento memoria %d" -#: ../src/extension/internal/filter/overlays.h:69 +#: ../src/document.cpp:576 #, fuzzy -msgid "Erosion:" -msgstr "Posizione:" +msgid "Memory document %1" +msgstr "Documento memoria %d" -#: ../src/extension/internal/filter/overlays.h:72 -#, fuzzy -msgid "Noise color" -msgstr "Colore anno" +#: ../src/document.cpp:788 +#, c-format +msgid "Unnamed document %d" +msgstr "Documento senza nome %d" -#: ../src/extension/internal/filter/overlays.h:80 -msgid "Overlays" -msgstr "Sovrapposizione" +#: ../src/event-log.cpp:185 +msgid "[Unchanged]" +msgstr "[Non modificato]" -#: ../src/extension/internal/filter/overlays.h:83 -#, fuzzy -msgid "Basic noise fill and transparency texture" -msgstr "Texture semplice con disturbo in trasparenza" +#. Edit +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2386 +msgid "_Undo" +msgstr "Ann_ulla" -#: ../src/extension/internal/filter/paint.h:71 -msgid "Chromolitho" -msgstr "" +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2388 +msgid "_Redo" +msgstr "_Ripeti" -#: ../src/extension/internal/filter/paint.h:75 -#: ../share/extensions/jessyInk_keyBindings.inx.h:16 -#, fuzzy -msgid "Drawing mode" -msgstr "Disegno" +#: ../src/extension/dependency.cpp:243 +msgid "Dependency:" +msgstr "Dipendenza:" -#: ../src/extension/internal/filter/paint.h:76 -#, fuzzy -msgid "Drawing blend:" -msgstr "Disegno cancellato" +#: ../src/extension/dependency.cpp:244 +msgid " type: " +msgstr " tipo: " -#: ../src/extension/internal/filter/paint.h:84 -#, fuzzy -msgid "Dented" -msgstr "centro" +#: ../src/extension/dependency.cpp:245 +msgid " location: " +msgstr " posizione: " -#: ../src/extension/internal/filter/paint.h:88 -#: ../src/extension/internal/filter/paint.h:699 -#, fuzzy -msgid "Noise reduction" -msgstr "Descrizione" +#: ../src/extension/dependency.cpp:246 +msgid " string: " +msgstr " stringa: " -#: ../src/extension/internal/filter/paint.h:91 -#, fuzzy -msgid "Grain" -msgstr "Disegno" +#: ../src/extension/dependency.cpp:249 +msgid " description: " +msgstr " descrizione: " -#: ../src/extension/internal/filter/paint.h:92 -#, fuzzy -msgid "Grain mode" -msgstr "Disegno" +#: ../src/extension/effect.cpp:41 +msgid " (No preferences)" +msgstr " (Nessuna preferenza)" -#: ../src/extension/internal/filter/paint.h:97 -#: ../src/extension/internal/filter/transparency.h:207 -#: ../src/extension/internal/filter/transparency.h:281 -#, fuzzy -msgid "Expansion" -msgstr "Estensione \"" +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2160 +msgid "Extensions" +msgstr "Estensioni" -#: ../src/extension/internal/filter/paint.h:100 -msgid "Grain blend:" +#. This is some filler text, needs to change before relase +#: ../src/extension/error-file.cpp:52 +msgid "" +"One or more extensions failed to load\n" +"\n" +"The failed extensions have been skipped. Inkscape will continue to run " +"normally but those extensions will be unavailable. For details to " +"troubleshoot this problem, please refer to the error log located at: " msgstr "" +"Errore nel caricamento di una o piĂą " +"estensioni\n" +"\n" +"Le estensioni problematiche verranno ignorate. Inkscape continuerĂ  a " +"funzionare normalmente ma queste estensioni non saranno disponibili. Per " +"ottenere dettagli per risolvere questo problema, consultare il registro " +"degli errori disponibile presso: " -#: ../src/extension/internal/filter/paint.h:113 -#: ../src/extension/internal/filter/paint.h:244 -#: ../src/extension/internal/filter/paint.h:363 -#: ../src/extension/internal/filter/paint.h:507 -#: ../src/extension/internal/filter/paint.h:602 -#: ../src/extension/internal/filter/paint.h:725 -#: ../src/extension/internal/filter/paint.h:877 -#: ../src/extension/internal/filter/paint.h:981 -msgid "Image Paint and Draw" -msgstr "" +#: ../src/extension/error-file.cpp:66 +msgid "Show dialog on startup" +msgstr "Mostra la finestra all'avvio" -#: ../src/extension/internal/filter/paint.h:116 -msgid "Chromo effect with customizable edge drawing and graininess" +#: ../src/extension/execution-env.cpp:144 +#, c-format +msgid "'%s' working, please wait..." +msgstr "«%s» in esecuzione, attendere..." + +#. static int i = 0; +#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; +#: ../src/extension/extension.cpp:266 +msgid "" +" This is caused by an improper .inx file for this extension. An improper ." +"inx file could have been caused by a faulty installation of Inkscape." msgstr "" +" Questo può essere stato causato da un file .inx per l'estensione scorretto." +"Un file .inx scorretto potrebbe essere causato da un'installazione " +"problematica di Inkscape." -#: ../src/extension/internal/filter/paint.h:232 -#, fuzzy -msgid "Cross Engraving" -msgstr "Incisione in trasparenza" - -#: ../src/extension/internal/filter/paint.h:234 -#: ../src/extension/internal/filter/paint.h:337 -msgid "Clean-up" +#: ../src/extension/extension.cpp:276 +msgid "the extension is designed for Windows only." msgstr "" -#: ../src/extension/internal/filter/paint.h:238 -#: ../share/extensions/measure.inx.h:11 -#, fuzzy -msgid "Length" -msgstr "Lunghezza:" +#: ../src/extension/extension.cpp:281 +msgid "an ID was not defined for it." +msgstr "non è stato definito un ID in proposito." -#: ../src/extension/internal/filter/paint.h:247 -msgid "Convert image to an engraving made of vertical and horizontal lines" -msgstr "" +#: ../src/extension/extension.cpp:285 +msgid "there was no name defined for it." +msgstr "non è stato definito nessun nome in proposito." -#: ../src/extension/internal/filter/paint.h:331 -#: ../src/ui/dialog/align-and-distribute.cpp:1004 -#: ../src/widgets/desktop-widget.cpp:1996 -msgid "Drawing" -msgstr "Disegno" +#: ../src/extension/extension.cpp:289 +msgid "the XML description of it got lost." +msgstr "la descrizione XML è andata perduta." -#: ../src/extension/internal/filter/paint.h:335 -#: ../src/extension/internal/filter/paint.h:496 -#: ../src/extension/internal/filter/paint.h:590 -#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2212 -msgid "Simplify" -msgstr "Semplifica" +#: ../src/extension/extension.cpp:293 +msgid "no implementation was defined for the extension." +msgstr "non è stata definita nessuna implementazione per l'estensione." -#: ../src/extension/internal/filter/paint.h:338 -#: ../src/extension/internal/filter/paint.h:709 -#, fuzzy -msgid "Erase" -msgstr "Gomma" +#. std::cout << "Failed: " << *(_deps[i]) << std::endl; +#: ../src/extension/extension.cpp:300 +msgid "a dependency was not met." +msgstr "una dipendenza non è stata soddisfatta." -#: ../src/extension/internal/filter/paint.h:339 -msgid "Translucent" -msgstr "Traslucido" +#: ../src/extension/extension.cpp:320 +msgid "Extension \"" +msgstr "Estensione \"" -#: ../src/extension/internal/filter/paint.h:344 -msgid "Melt" +#: ../src/extension/extension.cpp:320 +msgid "\" failed to load because " +msgstr "\" non caricata perchè " + +#: ../src/extension/extension.cpp:669 +#, c-format +msgid "Could not create extension error log file '%s'" msgstr "" +"Impossibile creare il file per il registro degli errori dell'estensione '%s'" -#: ../src/extension/internal/filter/paint.h:350 -#: ../src/extension/internal/filter/paint.h:712 -#, fuzzy -msgid "Fill color" -msgstr "Colore uniforme" +#: ../src/extension/extension.cpp:777 +#: ../share/extensions/webslicer_create_rect.inx.h:2 +msgid "Name:" +msgstr "Nome:" -#: ../src/extension/internal/filter/paint.h:351 -#: ../src/extension/internal/filter/paint.h:714 -#, fuzzy -msgid "Image on fill" -msgstr "File immagine" +#: ../src/extension/extension.cpp:778 +msgid "ID:" +msgstr "ID:" -#: ../src/extension/internal/filter/paint.h:354 -#, fuzzy -msgid "Stroke color" -msgstr "Imposta colore contorno" +#: ../src/extension/extension.cpp:779 +msgid "State:" +msgstr "Stato:" -#: ../src/extension/internal/filter/paint.h:355 -#, fuzzy -msgid "Image on stroke" -msgstr "Motivo del contorno" +#: ../src/extension/extension.cpp:779 +msgid "Loaded" +msgstr "Caricato" -#: ../src/extension/internal/filter/paint.h:366 -#, fuzzy -msgid "Convert images to duochrome drawings" -msgstr "Adatta la pagina al disegno" +#: ../src/extension/extension.cpp:779 +msgid "Unloaded" +msgstr "Non caricato" -#: ../src/extension/internal/filter/paint.h:494 -msgid "Electrize" +#: ../src/extension/extension.cpp:779 +msgid "Deactivated" +msgstr "Disattivato" + +#: ../src/extension/extension.cpp:819 +msgid "" +"Currently there is no help available for this Extension. Please look on the " +"Inkscape website or ask on the mailing lists if you have questions regarding " +"this extension." msgstr "" +"Non è disponibile una guida per questa estensione. Per avere ulteriori " +"informazioni, consultare il sito web di Inkscape o rivolgersi alle mailing " +"list." -#: ../src/extension/internal/filter/paint.h:497 -#: ../src/extension/internal/filter/paint.h:852 -#, fuzzy -msgid "Effect type:" -msgstr "Lista effetti" +#: ../src/extension/implementation/script.cpp:1037 +msgid "" +"Inkscape has received additional data from the script executed. The script " +"did not return an error, but this may indicate the results will not be as " +"expected." +msgstr "" +"Inkscape ha ricevuto dei dati aggiuntivi dallo script invocato. Lo script " +"non ha riportato errori, ma questo potrebbe indicare che il risultato non è " +"quello atteso." -#: ../src/extension/internal/filter/paint.h:501 -#: ../src/extension/internal/filter/paint.h:860 -#: ../src/extension/internal/filter/paint.h:975 -#, fuzzy -msgid "Levels" -msgstr "Livello" +#: ../src/extension/init.cpp:288 +msgid "Null external module directory name. Modules will not be loaded." +msgstr "" +"Nessun nome per la cartella dei moduli esterni. I moduli non verranno " +"caricati." -#: ../src/extension/internal/filter/paint.h:510 -#, fuzzy -msgid "Electro solarization effects" -msgstr "Classico effetto fotografico" +#: ../src/extension/init.cpp:302 +#: ../src/extension/internal/filter/filter-file.cpp:59 +#, c-format +msgid "" +"Modules directory (%s) is unavailable. External modules in that directory " +"will not be loaded." +msgstr "" +"La cartella dei moduli (%s) non è disponibile. I moduli esterni presenti in " +"questa cartella non verranno caricati." -#: ../src/extension/internal/filter/paint.h:584 -#, fuzzy -msgid "Neon Draw" -msgstr "Neon" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 +msgid "Adaptive Threshold" +msgstr "Soglia adattiva" -#: ../src/extension/internal/filter/paint.h:586 -#, fuzzy -msgid "Line type:" -msgstr " tipo: " +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 +#: ../src/extension/internal/bitmap/raise.cpp:42 +#: ../src/extension/internal/bitmap/sample.cpp:41 +#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/ui/dialog/object-attributes.cpp:68 +#: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/foldablebox.inx.h:2 +msgid "Width:" +msgstr "Larghezza:" -#: ../src/extension/internal/filter/paint.h:587 -#, fuzzy -msgid "Smoothed" -msgstr "UniformitĂ " +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 +#: ../src/extension/internal/bitmap/raise.cpp:43 +#: ../src/extension/internal/bitmap/sample.cpp:42 +#: ../src/ui/dialog/object-attributes.cpp:69 +#: ../src/ui/dialog/object-attributes.cpp:78 +#: ../share/extensions/foldablebox.inx.h:3 +msgid "Height:" +msgstr "Altezza:" -#: ../src/extension/internal/filter/paint.h:588 -#, fuzzy -msgid "Contrasted" -msgstr "Contrasto" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 +#: ../share/extensions/printing_marks.inx.h:12 +msgid "Offset:" +msgstr "Posizione:" -#: ../src/extension/internal/filter/paint.h:591 -#, fuzzy -msgid "Line width" -msgstr "Larghezza linea" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 +#: ../src/extension/internal/bitmap/addNoise.cpp:58 +#: ../src/extension/internal/bitmap/blur.cpp:45 +#: ../src/extension/internal/bitmap/channel.cpp:64 +#: ../src/extension/internal/bitmap/charcoal.cpp:45 +#: ../src/extension/internal/bitmap/colorize.cpp:56 +#: ../src/extension/internal/bitmap/contrast.cpp:46 +#: ../src/extension/internal/bitmap/crop.cpp:75 +#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 +#: ../src/extension/internal/bitmap/despeckle.cpp:41 +#: ../src/extension/internal/bitmap/edge.cpp:43 +#: ../src/extension/internal/bitmap/emboss.cpp:45 +#: ../src/extension/internal/bitmap/enhance.cpp:40 +#: ../src/extension/internal/bitmap/equalize.cpp:40 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 +#: ../src/extension/internal/bitmap/implode.cpp:43 +#: ../src/extension/internal/bitmap/level.cpp:49 +#: ../src/extension/internal/bitmap/levelChannel.cpp:71 +#: ../src/extension/internal/bitmap/medianFilter.cpp:43 +#: ../src/extension/internal/bitmap/modulate.cpp:48 +#: ../src/extension/internal/bitmap/negate.cpp:41 +#: ../src/extension/internal/bitmap/normalize.cpp:41 +#: ../src/extension/internal/bitmap/oilPaint.cpp:43 +#: ../src/extension/internal/bitmap/opacity.cpp:44 +#: ../src/extension/internal/bitmap/raise.cpp:48 +#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 +#: ../src/extension/internal/bitmap/sample.cpp:46 +#: ../src/extension/internal/bitmap/shade.cpp:48 +#: ../src/extension/internal/bitmap/sharpen.cpp:45 +#: ../src/extension/internal/bitmap/solarize.cpp:45 +#: ../src/extension/internal/bitmap/spread.cpp:43 +#: ../src/extension/internal/bitmap/swirl.cpp:43 +#: ../src/extension/internal/bitmap/threshold.cpp:44 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 +#: ../src/extension/internal/bitmap/wave.cpp:45 +msgid "Raster" +msgstr "Bitmap" -#: ../src/extension/internal/filter/paint.h:593 -#: ../src/extension/internal/filter/paint.h:861 -#: ../src/ui/widget/filter-effect-chooser.cpp:25 -#, fuzzy -msgid "Blend mode:" -msgstr "ModalitĂ  mi_scela:" +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 +msgid "Apply adaptive thresholding to selected bitmap(s)" +msgstr "Applica soglia adattiva alle bitmap selezionate" -#: ../src/extension/internal/filter/paint.h:605 -msgid "Posterize and draw smooth lines around color shapes" -msgstr "" +#: ../src/extension/internal/bitmap/addNoise.cpp:45 +msgid "Add Noise" +msgstr "Aggiungi disturbo" -#: ../src/extension/internal/filter/paint.h:687 -#, fuzzy -msgid "Point Engraving" -msgstr "Incisione in trasparenza" +#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); +#: ../src/extension/internal/bitmap/addNoise.cpp:47 +#: ../src/extension/internal/filter/color.h:426 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/distort.h:69 +#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/object-attributes.cpp:49 +#: ../share/extensions/jessyInk_effects.inx.h:5 +#: ../share/extensions/jessyInk_export.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:5 +#: ../share/extensions/webslicer_create_rect.inx.h:14 +msgid "Type:" +msgstr "Tipo:" -#: ../src/extension/internal/filter/paint.h:700 -#, fuzzy -msgid "Noise blend:" -msgstr "Bolle con alone" +#: ../src/extension/internal/bitmap/addNoise.cpp:48 +msgid "Uniform Noise" +msgstr "Disturbo uniforme" -#: ../src/extension/internal/filter/paint.h:708 -#, fuzzy -msgid "Grain lightness" -msgstr "LuminositĂ " +#: ../src/extension/internal/bitmap/addNoise.cpp:49 +msgid "Gaussian Noise" +msgstr "Disturbo gaussiano" -#: ../src/extension/internal/filter/paint.h:716 -#, fuzzy -msgid "Points color" -msgstr "Colore del mese" +#: ../src/extension/internal/bitmap/addNoise.cpp:50 +msgid "Multiplicative Gaussian Noise" +msgstr "Disturbo moltiplicativo gaussiano" -#: ../src/extension/internal/filter/paint.h:718 -#, fuzzy -msgid "Image on points" -msgstr "File immagine" +#: ../src/extension/internal/bitmap/addNoise.cpp:51 +msgid "Impulse Noise" +msgstr "Disturbo ad impulso" -#: ../src/extension/internal/filter/paint.h:728 -#, fuzzy -msgid "Convert image to a transparent point engraving" -msgstr "Converte in un negativo o positivo trasparente colorabile" +#: ../src/extension/internal/bitmap/addNoise.cpp:52 +msgid "Laplacian Noise" +msgstr "Disturbo di Laplace" -#: ../src/extension/internal/filter/paint.h:850 -#, fuzzy -msgid "Poster Paint" -msgstr "Costante:" +#: ../src/extension/internal/bitmap/addNoise.cpp:53 +msgid "Poisson Noise" +msgstr "Disturbo di Poisson" -#: ../src/extension/internal/filter/paint.h:856 -#, fuzzy -msgid "Transfer type:" -msgstr "Tipo operazione booleana" +#: ../src/extension/internal/bitmap/addNoise.cpp:60 +msgid "Add random noise to selected bitmap(s)" +msgstr "Aggiunge un disturbo casuale alle bitmap selezionate" -#: ../src/extension/internal/filter/paint.h:857 -#, fuzzy -msgid "Poster" -msgstr "Gesso" +#: ../src/extension/internal/bitmap/blur.cpp:38 +#: ../src/extension/internal/filter/blurs.h:54 +#: ../src/extension/internal/filter/paint.h:710 +#: ../src/extension/internal/filter/transparency.h:343 +msgid "Blur" +msgstr "Sfocatura" -#: ../src/extension/internal/filter/paint.h:858 -#, fuzzy -msgid "Painting" -msgstr "Pittura ad olio" +#: ../src/extension/internal/bitmap/blur.cpp:40 +#: ../src/extension/internal/bitmap/charcoal.cpp:40 +#: ../src/extension/internal/bitmap/edge.cpp:39 +#: ../src/extension/internal/bitmap/emboss.cpp:40 +#: ../src/extension/internal/bitmap/medianFilter.cpp:39 +#: ../src/extension/internal/bitmap/oilPaint.cpp:39 +#: ../src/extension/internal/bitmap/sharpen.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +msgid "Radius:" +msgstr "Raggio:" -#: ../src/extension/internal/filter/paint.h:868 +#: ../src/extension/internal/bitmap/blur.cpp:41 +#: ../src/extension/internal/bitmap/charcoal.cpp:41 +#: ../src/extension/internal/bitmap/emboss.cpp:41 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 +#: ../src/extension/internal/bitmap/sharpen.cpp:41 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 #, fuzzy -msgid "Simplify (primary)" -msgstr "Semplificazione tracciati:" +msgid "Sigma:" +msgstr "Sigma" -#: ../src/extension/internal/filter/paint.h:869 -#, fuzzy -msgid "Simplify (secondary)" -msgstr "Semplifica" +#: ../src/extension/internal/bitmap/blur.cpp:47 +msgid "Blur selected bitmap(s)" +msgstr "Sfoca le bitmap selezionate" -#: ../src/extension/internal/filter/paint.h:870 -#, fuzzy -msgid "Pre-saturation" -msgstr "Saturazione" +#: ../src/extension/internal/bitmap/channel.cpp:48 +msgid "Channel" +msgstr "Canale" -#: ../src/extension/internal/filter/paint.h:871 -#, fuzzy -msgid "Post-saturation" -msgstr "Saturazione" +#: ../src/extension/internal/bitmap/channel.cpp:50 +msgid "Layer:" +msgstr "Livello:" -#: ../src/extension/internal/filter/paint.h:872 -#, fuzzy -msgid "Simulate antialiasing" -msgstr "Simula lo stile dei dipinti ad olio" +#: ../src/extension/internal/bitmap/channel.cpp:51 +#: ../src/extension/internal/bitmap/levelChannel.cpp:55 +msgid "Red Channel" +msgstr "Canale «Rosso»" -#: ../src/extension/internal/filter/paint.h:880 -#, fuzzy -msgid "Poster and painting effects" -msgstr "Incolla effetto su tracciato" +#: ../src/extension/internal/bitmap/channel.cpp:52 +#: ../src/extension/internal/bitmap/levelChannel.cpp:56 +msgid "Green Channel" +msgstr "Canale «Verde»" -#: ../src/extension/internal/filter/paint.h:973 -msgid "Posterize Basic" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:53 +#: ../src/extension/internal/bitmap/levelChannel.cpp:57 +msgid "Blue Channel" +msgstr "Canale «Blu»" -#: ../src/extension/internal/filter/paint.h:984 -msgid "Simple posterizing effect" -msgstr "" +#: ../src/extension/internal/bitmap/channel.cpp:54 +#: ../src/extension/internal/bitmap/levelChannel.cpp:58 +msgid "Cyan Channel" +msgstr "Canale «Ciano»" -#: ../src/extension/internal/filter/protrusions.h:48 -msgid "Snow crest" -msgstr "Cresta innevata" +#: ../src/extension/internal/bitmap/channel.cpp:55 +#: ../src/extension/internal/bitmap/levelChannel.cpp:59 +msgid "Magenta Channel" +msgstr "Canale «Magenta»" -#: ../src/extension/internal/filter/protrusions.h:50 -#, fuzzy -msgid "Drift Size" -msgstr "Dimensione cumuli" +#: ../src/extension/internal/bitmap/channel.cpp:56 +#: ../src/extension/internal/bitmap/levelChannel.cpp:60 +msgid "Yellow Channel" +msgstr "Canale «Giallo»" -#: ../src/extension/internal/filter/protrusions.h:58 -msgid "Snow has fallen on object" -msgstr "La neve s'è posata sull'oggetto" +#: ../src/extension/internal/bitmap/channel.cpp:57 +#: ../src/extension/internal/bitmap/levelChannel.cpp:61 +msgid "Black Channel" +msgstr "Canale «Nero»" -#: ../src/extension/internal/filter/shadows.h:57 -msgid "Drop Shadow" -msgstr "Proietta ombra" +#: ../src/extension/internal/bitmap/channel.cpp:58 +#: ../src/extension/internal/bitmap/levelChannel.cpp:62 +msgid "Opacity Channel" +msgstr "Canale «Opacità»" -#: ../src/extension/internal/filter/shadows.h:61 -#, fuzzy -msgid "Blur radius (px)" -msgstr "Raggio sfocatura, px" +#: ../src/extension/internal/bitmap/channel.cpp:59 +#: ../src/extension/internal/bitmap/levelChannel.cpp:63 +msgid "Matte Channel" +msgstr "OpacitĂ  canale" -#: ../src/extension/internal/filter/shadows.h:62 -#, fuzzy -msgid "Horizontal offset (px)" -msgstr "Proiezione orizzontale, px" +#: ../src/extension/internal/bitmap/channel.cpp:66 +msgid "Extract specific channel from image" +msgstr "Estrai canale specifico dall'immagine" -#: ../src/extension/internal/filter/shadows.h:63 -#, fuzzy -msgid "Vertical offset (px)" -msgstr "Proiezione verticale, px" +#: ../src/extension/internal/bitmap/charcoal.cpp:38 +msgid "Charcoal" +msgstr "Carboncino" -#: ../src/extension/internal/filter/shadows.h:64 -#, fuzzy -msgid "Shadow type:" -msgstr "Ombreggia" +#: ../src/extension/internal/bitmap/charcoal.cpp:47 +msgid "Apply charcoal stylization to selected bitmap(s)" +msgstr "Applica stilizzazione al carboncino alle bitmap selezionate" -#: ../src/extension/internal/filter/shadows.h:67 -msgid "Outer cutout" +#: ../src/extension/internal/bitmap/colorize.cpp:50 +#: ../src/extension/internal/filter/color.h:317 +msgid "Colorize" +msgstr "Colora" + +#: ../src/extension/internal/bitmap/colorize.cpp:58 +msgid "Colorize selected bitmap(s) with specified color, using given opacity" msgstr "" +"Colora le bitmap selezionate con il colore specificato, usando l'opacitĂ  " +"fornita" -#: ../src/extension/internal/filter/shadows.h:68 -#, fuzzy -msgid "Inner cutout" -msgstr "Contorno interno" +#: ../src/extension/internal/bitmap/contrast.cpp:40 +#: ../src/extension/internal/filter/color.h:1114 +msgid "Contrast" +msgstr "Contrasto" -#: ../src/extension/internal/filter/shadows.h:69 -#, fuzzy -msgid "Shadow only" -msgstr "Alfa" +#: ../src/extension/internal/bitmap/contrast.cpp:42 +msgid "Adjust:" +msgstr "Modifica:" -#: ../src/extension/internal/filter/shadows.h:72 -#, fuzzy -msgid "Blur color" -msgstr "Colore uniforme" +#: ../src/extension/internal/bitmap/contrast.cpp:48 +msgid "Increase or decrease contrast in bitmap(s)" +msgstr "Aumenta o diminuisce il contrasto di una bitmap" -#: ../src/extension/internal/filter/shadows.h:74 -#, fuzzy -msgid "Use object's color" -msgstr "Usa nomi colori" +#: ../src/extension/internal/bitmap/crop.cpp:66 +#: ../src/extension/internal/filter/bumps.h:86 +#: ../src/extension/internal/filter/bumps.h:315 +msgid "Crop" +msgstr "Taglia" -#: ../src/extension/internal/filter/shadows.h:81 -msgid "Shadows and Glows" -msgstr "Ombre e aloni" +#: ../src/extension/internal/bitmap/crop.cpp:68 +msgid "Top (px):" +msgstr "Superiore (px):" -#: ../src/extension/internal/filter/shadows.h:84 -#, fuzzy -msgid "Colorizable Drop shadow" -msgstr "Proietta un'ombra interna colorabile" +#: ../src/extension/internal/bitmap/crop.cpp:69 +msgid "Bottom (px):" +msgstr "Inferiore (px):" -#: ../src/extension/internal/filter/textures.h:62 -msgid "Ink Blot" -msgstr "" +#: ../src/extension/internal/bitmap/crop.cpp:70 +msgid "Left (px):" +msgstr "Sinistra (px):" -#: ../src/extension/internal/filter/textures.h:68 -#, fuzzy -msgid "Frequency:" -msgstr "Frequenza base:" +#: ../src/extension/internal/bitmap/crop.cpp:71 +msgid "Right (px):" +msgstr "Destra (px):" -#: ../src/extension/internal/filter/textures.h:71 -#, fuzzy -msgid "Horizontal inlay:" -msgstr "Punto orizzontale:" +#: ../src/extension/internal/bitmap/crop.cpp:77 +msgid "Crop selected bitmap(s)" +msgstr "Taglia le bitmap selezionate" -#: ../src/extension/internal/filter/textures.h:72 -#, fuzzy -msgid "Vertical inlay:" -msgstr "Punto verticale:" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 +msgid "Cycle Colormap" +msgstr "Cicla mappa dei colori" -#: ../src/extension/internal/filter/textures.h:73 -#, fuzzy -msgid "Displacement:" -msgstr "Spostamento X:" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 +#: ../src/extension/internal/bitmap/spread.cpp:39 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount:" +msgstr "QuantitĂ :" -#: ../src/extension/internal/filter/textures.h:79 -#, fuzzy -msgid "Overlapping" -msgstr "Lappatura" +#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 +msgid "Cycle colormap(s) of selected bitmap(s)" +msgstr "Cicla la mappa dei colori delle bitmap selezionate" -#: ../src/extension/internal/filter/textures.h:80 -#, fuzzy -msgid "External" -msgstr "Modifica con programma esterno..." +#: ../src/extension/internal/bitmap/despeckle.cpp:36 +msgid "Despeckle" +msgstr "Rimuovi macchie" -#: ../src/extension/internal/filter/textures.h:81 -#: ../share/extensions/markers_strokepaint.inx.h:8 -msgid "Custom" -msgstr "Personalizzata" +#: ../src/extension/internal/bitmap/despeckle.cpp:43 +msgid "Reduce speckle noise of selected bitmap(s)" +msgstr "Riduce le macchie dalle bitmap selezionate" -#: ../src/extension/internal/filter/textures.h:83 -#, fuzzy -msgid "Custom stroke options" -msgstr "Opzioni e punti personalizzati" +#: ../src/extension/internal/bitmap/edge.cpp:37 +msgid "Edge" +msgstr "Bordatura" -#: ../src/extension/internal/filter/textures.h:84 -#, fuzzy -msgid "k1:" -msgstr "K1:" +#: ../src/extension/internal/bitmap/edge.cpp:45 +msgid "Highlight edges of selected bitmap(s)" +msgstr "Evidenzia i bordi delle bitmap selezionate" -#: ../src/extension/internal/filter/textures.h:85 -#, fuzzy -msgid "k2:" -msgstr "K2:" +#: ../src/extension/internal/bitmap/emboss.cpp:38 +msgid "Emboss" +msgstr "Rilievo" -#: ../src/extension/internal/filter/textures.h:86 -#, fuzzy -msgid "k3:" -msgstr "K3:" +#: ../src/extension/internal/bitmap/emboss.cpp:47 +msgid "Emboss selected bitmap(s); highlight edges with 3D effect" +msgstr "" +"Mette in rilievo le bitmap selezionate - esalta gli spigoli con un effetto " +"3D." -#: ../src/extension/internal/filter/textures.h:94 -msgid "Inkblot on tissue or rough paper" -msgstr "Macchie di inchiostro su tessuto o carta grezza" +#: ../src/extension/internal/bitmap/enhance.cpp:35 +msgid "Enhance" +msgstr "Migliora" -#: ../src/extension/internal/filter/transparency.h:53 -#: ../src/filter-enums.cpp:20 -msgid "Blend" -msgstr "Miscela" +#: ../src/extension/internal/bitmap/enhance.cpp:42 +msgid "Enhance selected bitmap(s); minimize noise" +msgstr "Migliora le bitmap selezionate - minimizza i disturbi" -#: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 -msgid "Source:" -msgstr "Sorgente:" +#: ../src/extension/internal/bitmap/equalize.cpp:35 +msgid "Equalize" +msgstr "Equalizza" -#: ../src/extension/internal/filter/transparency.h:56 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 -msgid "Background" -msgstr "Sfondo" +#: ../src/extension/internal/bitmap/equalize.cpp:42 +msgid "Equalize selected bitmap(s); histogram equalization" +msgstr "Equalizza le bitmap selezionate - istogramma di equalizzazione" -#: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 -#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 -#: ../src/widgets/pencil-toolbar.cpp:127 ../src/widgets/spray-toolbar.cpp:186 -#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 -#: ../share/extensions/triangle.inx.h:8 -msgid "Mode:" -msgstr "ModalitĂ :" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 +#: ../src/filter-enums.cpp:28 +msgid "Gaussian Blur" +msgstr "Sfocatura gaussiana" -#: ../src/extension/internal/filter/transparency.h:70 -#: ../src/extension/internal/filter/transparency.h:141 -#: ../src/extension/internal/filter/transparency.h:215 -#: ../src/extension/internal/filter/transparency.h:288 -#: ../src/extension/internal/filter/transparency.h:350 -#, fuzzy -msgid "Fill and Transparency" -msgstr "Trasparenza finestre:" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 +#: ../src/extension/internal/bitmap/implode.cpp:39 +#: ../src/extension/internal/bitmap/solarize.cpp:41 +msgid "Factor:" +msgstr "Fattore:" -#: ../src/extension/internal/filter/transparency.h:73 -msgid "Blend objects with background images or with themselves" -msgstr "" +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 +msgid "Gaussian blur selected bitmap(s)" +msgstr "Applica una sfocatura gaussiana alle bitmap selezionate" -#: ../src/extension/internal/filter/transparency.h:130 -#, fuzzy -msgid "Channel Transparency" -msgstr "Trasparenza finestre:" +#: ../src/extension/internal/bitmap/implode.cpp:37 +msgid "Implode" +msgstr "Implodi" -#: ../src/extension/internal/filter/transparency.h:144 -#, fuzzy -msgid "Replace RGB with transparency" -msgstr "Trasparenza grezza" +#: ../src/extension/internal/bitmap/implode.cpp:45 +msgid "Implode selected bitmap(s)" +msgstr "Implode le bitmap selezionate" -#: ../src/extension/internal/filter/transparency.h:205 -#, fuzzy -msgid "Light Eraser" -msgstr "Sovraesposto" +#: ../src/extension/internal/bitmap/level.cpp:41 +#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/image.h:56 +#: ../src/extension/internal/filter/morphology.h:66 +#: ../src/extension/internal/filter/paint.h:345 +msgid "Level" +msgstr "Livello" -#: ../src/extension/internal/filter/transparency.h:209 -#: ../src/extension/internal/filter/transparency.h:283 -#, fuzzy -msgid "Global opacity" -msgstr "Piegatura globale" +#: ../src/extension/internal/bitmap/level.cpp:43 +#: ../src/extension/internal/bitmap/levelChannel.cpp:65 +msgid "Black Point:" +msgstr "Punto nero:" -#: ../src/extension/internal/filter/transparency.h:218 -msgid "Make the lightest parts of the object progressively transparent" -msgstr "Rende le parti piĂą chiare dell'oggetto progressivamente trasparenti" +#: ../src/extension/internal/bitmap/level.cpp:44 +#: ../src/extension/internal/bitmap/levelChannel.cpp:66 +msgid "White Point:" +msgstr "Punto bianco:" -#: ../src/extension/internal/filter/transparency.h:291 -msgid "Set opacity and strength of opacity boundaries" -msgstr "" +#: ../src/extension/internal/bitmap/level.cpp:45 +#: ../src/extension/internal/bitmap/levelChannel.cpp:67 +msgid "Gamma Correction:" +msgstr "Correzione gamma:" -#: ../src/extension/internal/filter/transparency.h:341 -msgid "Silhouette" +#: ../src/extension/internal/bitmap/level.cpp:51 +msgid "" +"Level selected bitmap(s) by scaling values falling between the given ranges " +"to the full color range" msgstr "" +"Livella le bitmap selezionate riportando i valori che cadono nell'intervallo " +"selezionato a tutta la scala cromatica." -#: ../src/extension/internal/filter/transparency.h:344 -msgid "Cutout" -msgstr "Taglio" - -#: ../src/extension/internal/filter/transparency.h:353 -#, fuzzy -msgid "Repaint anything visible monochrome" -msgstr "Ridipinge tutto monocromo" +#: ../src/extension/internal/bitmap/levelChannel.cpp:52 +msgid "Level (with Channel)" +msgstr "Livello (tramite canale)" -#: ../src/extension/internal/gdkpixbuf-input.cpp:184 -#, fuzzy, c-format -msgid "%s bitmap image import" -msgstr "Rilascia immagine bitmap" +#: ../src/extension/internal/bitmap/levelChannel.cpp:54 +#: ../src/extension/internal/filter/color.h:636 +msgid "Channel:" +msgstr "Canale:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 -msgid "Image Import Type:" +#: ../src/extension/internal/bitmap/levelChannel.cpp:73 +msgid "" +"Level the specified channel of selected bitmap(s) by scaling values falling " +"between the given ranges to the full color range" msgstr "" +"Livella il canale specificato delle bitmap selezionate con valori " +"decrescenti tra l'intervallo fornito e quello intero" -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#: ../src/extension/internal/bitmap/medianFilter.cpp:37 +msgid "Median" +msgstr "Mediana" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:45 msgid "" -"Embed results in stand-alone, larger SVG files. Link references a file " -"outside this SVG document and all files must be moved together." +"Replace each pixel component with the median color in a circular neighborhood" msgstr "" +"Rimpiazza le componenti di ogni pixel con il colore mediano dei vicini " +"prossimi" -#: ../src/extension/internal/gdkpixbuf-input.cpp:192 -#: ../src/ui/dialog/inkscape-preferences.cpp:1447 -#, fuzzy -msgid "Embed" -msgstr "integrato" +#: ../src/extension/internal/bitmap/modulate.cpp:40 +msgid "HSB Adjust" +msgstr "Modifica HSB" -#: ../src/extension/internal/gdkpixbuf-input.cpp:193 ../src/sp-anchor.cpp:119 -#: ../src/ui/dialog/inkscape-preferences.cpp:1447 -#, fuzzy -msgid "Link" -msgstr "Linea" +#: ../src/extension/internal/bitmap/modulate.cpp:42 +msgid "Hue:" +msgstr "TonalitĂ :" -#: ../src/extension/internal/gdkpixbuf-input.cpp:196 -#, fuzzy -msgid "Image DPI:" -msgstr "Immagine" +#: ../src/extension/internal/bitmap/modulate.cpp:43 +msgid "Saturation:" +msgstr "Saturazione:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#: ../src/extension/internal/bitmap/modulate.cpp:44 +msgid "Brightness:" +msgstr "LuminositĂ :" + +#: ../src/extension/internal/bitmap/modulate.cpp:50 msgid "" -"Take information from file or use default bitmap import resolution as " -"defined in the preferences." +"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" msgstr "" +"Modula la percentuale di tonalitĂ , saturazione e luminositĂ  delle bitmap " +"selezionate" -#: ../src/extension/internal/gdkpixbuf-input.cpp:197 -#, fuzzy -msgid "From file" -msgstr "Carica da file" +#: ../src/extension/internal/bitmap/negate.cpp:36 +msgid "Negate" +msgstr "Negativo" -#: ../src/extension/internal/gdkpixbuf-input.cpp:198 -#, fuzzy -msgid "Default import resolution" -msgstr "Risoluzione predefinita per l'esportazione" +#: ../src/extension/internal/bitmap/negate.cpp:43 +msgid "Negate (take inverse) selected bitmap(s)" +msgstr "Inverte (crea negativo) le bitmap selezionate" -#: ../src/extension/internal/gdkpixbuf-input.cpp:201 -#, fuzzy -msgid "Image Rendering Mode:" -msgstr "Rendering" +#: ../src/extension/internal/bitmap/normalize.cpp:36 +msgid "Normalize" +msgstr "Normalizza" -#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#: ../src/extension/internal/bitmap/normalize.cpp:43 msgid "" -"When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " -"not work in all browsers.)" +"Normalize selected bitmap(s), expanding color range to the full possible " +"range of color" msgstr "" +"Normalizza le bitmap selezionate, espandendo l'intervallo cromatico al " +"massimo intervallo possibile" -#: ../src/extension/internal/gdkpixbuf-input.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:1454 -#, fuzzy -msgid "None (auto)" -msgstr "(predefinito)" +#: ../src/extension/internal/bitmap/oilPaint.cpp:37 +msgid "Oil Paint" +msgstr "Pittura ad olio" -#: ../src/extension/internal/gdkpixbuf-input.cpp:203 -#: ../src/ui/dialog/inkscape-preferences.cpp:1454 -msgid "Smooth (optimizeQuality)" -msgstr "" +#: ../src/extension/internal/bitmap/oilPaint.cpp:45 +msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" +msgstr "Ritocca le bitmap selezionate per farle sembrare dipinte ad olio" -#: ../src/extension/internal/gdkpixbuf-input.cpp:204 -#: ../src/ui/dialog/inkscape-preferences.cpp:1454 -msgid "Blocky (optimizeSpeed)" -msgstr "" +#: ../src/extension/internal/bitmap/opacity.cpp:38 +#: ../src/extension/internal/filter/blurs.h:333 +#: ../src/extension/internal/filter/transparency.h:279 +#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 +#: ../src/widgets/tweak-toolbar.cpp:334 +#: ../share/extensions/interp_att_g.inx.h:16 +msgid "Opacity" +msgstr "OpacitĂ " -#: ../src/extension/internal/gdkpixbuf-input.cpp:207 -msgid "Hide the dialog next time and always apply the same actions." -msgstr "" +#: ../src/extension/internal/bitmap/opacity.cpp:40 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 +#: ../src/widgets/dropper-toolbar.cpp:83 +msgid "Opacity:" +msgstr "OpacitĂ :" -#: ../src/extension/internal/gdkpixbuf-input.cpp:207 -msgid "Don't ask again" +#: ../src/extension/internal/bitmap/opacity.cpp:46 +msgid "Modify opacity channel(s) of selected bitmap(s)" +msgstr "Modifica il canale opacitĂ  delle bitmap selezionate" + +#: ../src/extension/internal/bitmap/raise.cpp:40 +msgid "Raise" +msgstr "Alza" + +#: ../src/extension/internal/bitmap/raise.cpp:44 +msgid "Raised" +msgstr "Rialzato" + +#: ../src/extension/internal/bitmap/raise.cpp:50 +msgid "" +"Alter lightness the edges of selected bitmap(s) to create a raised appearance" msgstr "" +"Altera la luminositĂ  dei margini delle bitmap selezionate per creare un " +"effetto di sporgenza" -#: ../src/extension/internal/gimpgrad.cpp:272 -msgid "GIMP Gradients" -msgstr "Gradiente GIMP" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 +msgid "Reduce Noise" +msgstr "Riduci disturbo" -#: ../src/extension/internal/gimpgrad.cpp:277 -msgid "GIMP Gradient (*.ggr)" -msgstr "Gradiente GIMP (*.ggr)" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../share/extensions/jessyInk_effects.inx.h:3 +#: ../share/extensions/jessyInk_view.inx.h:3 +#: ../share/extensions/lindenmayer.inx.h:5 +msgid "Order:" +msgstr "Ordine:" -#: ../src/extension/internal/gimpgrad.cpp:278 -msgid "Gradients used in GIMP" -msgstr "Gradienti usati in GIMP" +#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 +msgid "" +"Reduce noise in selected bitmap(s) using a noise peak elimination filter" +msgstr "" +"Riduce il disturbo nelle bitmap selezionate usando un filtro di eliminazione " +"del picco di disturbo" -#: ../src/extension/internal/grid.cpp:210 ../src/ui/widget/panel.cpp:117 -msgid "Grid" -msgstr "Griglia" +#: ../src/extension/internal/bitmap/sample.cpp:39 +msgid "Resample" +msgstr "Ricampiona" -#: ../src/extension/internal/grid.cpp:212 -#, fuzzy -msgid "Line Width:" -msgstr "Larghezza linea" +#: ../src/extension/internal/bitmap/sample.cpp:48 +msgid "" +"Alter the resolution of selected image by resizing it to the given pixel size" +msgstr "" +"Modifica la risoluzione dell'immagine selezionata ridimensionandola alle " +"dimensioni volute" -#: ../src/extension/internal/grid.cpp:213 -#, fuzzy -msgid "Horizontal Spacing:" -msgstr "Spaziatura orizzontale" +#: ../src/extension/internal/bitmap/shade.cpp:40 +msgid "Shade" +msgstr "Ombreggia" -#: ../src/extension/internal/grid.cpp:214 -#, fuzzy -msgid "Vertical Spacing:" -msgstr "Spaziatura verticale" +#: ../src/extension/internal/bitmap/shade.cpp:42 +msgid "Azimuth:" +msgstr "Azimut:" -#: ../src/extension/internal/grid.cpp:215 -#, fuzzy -msgid "Horizontal Offset:" -msgstr "Proiezione orizzontale" +#: ../src/extension/internal/bitmap/shade.cpp:43 +msgid "Elevation:" +msgstr "Elevazione:" -#: ../src/extension/internal/grid.cpp:216 -#, fuzzy -msgid "Vertical Offset:" -msgstr "Proiezione verticale" +#: ../src/extension/internal/bitmap/shade.cpp:44 +msgid "Colored Shading" +msgstr "Ombra colorata" -#: ../src/extension/internal/grid.cpp:220 -#: ../src/ui/dialog/inkscape-preferences.cpp:1468 -#: ../share/extensions/draw_from_triangle.inx.h:58 -#: ../share/extensions/eqtexsvg.inx.h:4 -#: ../share/extensions/foldablebox.inx.h:9 -#: ../share/extensions/funcplot.inx.h:38 -#: ../share/extensions/grid_cartesian.inx.h:23 -#: ../share/extensions/grid_isometric.inx.h:11 -#: ../share/extensions/grid_polar.inx.h:22 -#: ../share/extensions/guides_creator.inx.h:25 -#: ../share/extensions/hershey.inx.h:52 -#: ../share/extensions/layout_nup.inx.h:35 -#: ../share/extensions/lindenmayer.inx.h:34 -#: ../share/extensions/param_curves.inx.h:30 -#: ../share/extensions/perfectboundcover.inx.h:19 -#: ../share/extensions/polyhedron_3d.inx.h:56 -#: ../share/extensions/printing_marks.inx.h:20 -#: ../share/extensions/render_alphabetsoup.inx.h:5 -#: ../share/extensions/render_barcode.inx.h:5 -#: ../share/extensions/render_barcode_datamatrix.inx.h:5 -#: ../share/extensions/render_barcode_qrcode.inx.h:18 -#: ../share/extensions/render_gear_rack.inx.h:5 -#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 -#: ../share/extensions/spirograph.inx.h:10 -#: ../share/extensions/svgcalendar.inx.h:38 -#: ../share/extensions/triangle.inx.h:14 -#: ../share/extensions/wireframe_sphere.inx.h:8 -msgid "Render" -msgstr "Render" +#: ../src/extension/internal/bitmap/shade.cpp:50 +msgid "Shade selected bitmap(s) simulating distant light source" +msgstr "" +"Ombreggia le bitmap selezionate simulando una sorgente luminosa distante" -#: ../src/extension/internal/grid.cpp:221 -#: ../src/ui/dialog/document-properties.cpp:155 -#: ../src/ui/dialog/inkscape-preferences.cpp:778 -#: ../src/widgets/toolbox.cpp:1826 -msgid "Grids" -msgstr "Griglie" +#: ../src/extension/internal/bitmap/sharpen.cpp:47 +msgid "Sharpen selected bitmap(s)" +msgstr "Contrasta le bitmap selezionate" -#: ../src/extension/internal/grid.cpp:224 -msgid "Draw a path which is a grid" -msgstr "Disegna un tracciato a forma di griglia" +#: ../src/extension/internal/bitmap/solarize.cpp:39 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1498 +msgid "Solarize" +msgstr "Sovraesponi" -#: ../src/extension/internal/javafx-out.cpp:966 -msgid "JavaFX Output" -msgstr "Ouput JavaFX" +#: ../src/extension/internal/bitmap/solarize.cpp:47 +msgid "Solarize selected bitmap(s), like overexposing photographic film" +msgstr "" +"Illumina le bitmap selezionate, con un effetto simile ad una pellicola " +"sovraesposta" -#: ../src/extension/internal/javafx-out.cpp:971 -msgid "JavaFX (*.fx)" -msgstr "JavaFX (*.fx)" +#: ../src/extension/internal/bitmap/spread.cpp:37 +msgid "Dither" +msgstr "Dither" -#: ../src/extension/internal/javafx-out.cpp:972 -msgid "JavaFX Raytracer File" -msgstr "File JavaFX Raytracer" +#: ../src/extension/internal/bitmap/spread.cpp:45 +msgid "" +"Randomly scatter pixels in selected bitmap(s), within the given radius of " +"the original position" +msgstr "" +"Sparge casualmente i pixel delle bitmap selezionate, all'interno di raggio " +"specificato a partire dalla posizione originale" -#: ../src/extension/internal/latex-pstricks-out.cpp:95 -msgid "LaTeX Output" -msgstr "Output LaTeX" +#: ../src/extension/internal/bitmap/swirl.cpp:39 +msgid "Degrees:" +msgstr "Gradi:" -#: ../src/extension/internal/latex-pstricks-out.cpp:100 -msgid "LaTeX With PSTricks macros (*.tex)" -msgstr "LaTeX con macro PSTricks (*.tex)" +#: ../src/extension/internal/bitmap/swirl.cpp:45 +msgid "Swirl selected bitmap(s) around center point" +msgstr "Ruota a spirale le bitmap selezionate attorno ad un centro" -#: ../src/extension/internal/latex-pstricks-out.cpp:101 -msgid "LaTeX PSTricks File" -msgstr "LaTeX PSTricks File" +#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html +#: ../src/extension/internal/bitmap/threshold.cpp:38 +msgid "Threshold" +msgstr "Soglia" -#: ../src/extension/internal/latex-pstricks.cpp:331 -msgid "LaTeX Print" -msgstr "Stampa LaTeX" +#: ../src/extension/internal/bitmap/threshold.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 +#: ../src/widgets/paintbucket-toolbar.cpp:146 +msgid "Threshold:" +msgstr "Soglia:" -#: ../src/extension/internal/odf.cpp:2142 -msgid "OpenDocument Drawing Output" -msgstr "Output OpenDocument Drawing" +#: ../src/extension/internal/bitmap/threshold.cpp:46 +#, fuzzy +msgid "Threshold selected bitmap(s)" +msgstr "Applica soglia alle bitmap selezionate" -#: ../src/extension/internal/odf.cpp:2147 -msgid "OpenDocument drawing (*.odg)" -msgstr "Disegno OpenDocument (*.odg)" +#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 +msgid "Unsharp Mask" +msgstr "Maschera di decontrasto" -#: ../src/extension/internal/odf.cpp:2148 -msgid "OpenDocument drawing file" -msgstr "File di disegno OpenDocument" +#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 +msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" +msgstr "" +"Contrasta le bitmap selezionate usando l'algoritmo della maschera di " +"decontrasto" -#. TRANSLATORS: The following are document crop settings for PDF import -#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ -#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 -msgid "media box" -msgstr "riquadro contenuto" +#: ../src/extension/internal/bitmap/wave.cpp:38 +msgid "Wave" +msgstr "Ondulazione" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 -msgid "crop box" -msgstr "riquadro adattato" +#: ../src/extension/internal/bitmap/wave.cpp:40 +msgid "Amplitude:" +msgstr "Ampiezza:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 -msgid "trim box" -msgstr "riquadro ritaglio" +#: ../src/extension/internal/bitmap/wave.cpp:41 +msgid "Wavelength:" +msgstr "Lunghezza d'onda:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 -msgid "bleed box" -msgstr "riquadro rifilo" +#: ../src/extension/internal/bitmap/wave.cpp:47 +msgid "Alter selected bitmap(s) along sine wave" +msgstr "Altera le bitmap selezionate lungo un'onda sinusoidale" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 -msgid "art box" -msgstr "riquadro immagine" +#: ../src/extension/internal/bluredge.cpp:136 +msgid "Inset/Outset Halo" +msgstr "Intrudi/Estrudi alone" -#. Crop settings -#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 -msgid "Clip to:" -msgstr "Fissa a:" +#: ../src/extension/internal/bluredge.cpp:138 +msgid "Width in px of the halo" +msgstr "Larghezza in pixel dell'alone" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 -msgid "Page settings" -msgstr "Impostazioni pagina" +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of steps:" +msgstr "Numero di passi:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 -msgid "Precision of approximating gradient meshes:" -msgstr "Precisione approssimazione delle mesh dei gradienti:" +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of inset/outset copies of the object to make" +msgstr "Numero delle copie intruse/estruse dell'oggetto" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 -msgid "" -"Note: setting the precision too high may result in a large SVG file " -"and slow performance." -msgstr "" -"Nota: impostare la precisione ad un valore troppo alto può comportare " -"file SVG molto grossie un peggioramento delle performance." +#: ../src/extension/internal/bluredge.cpp:143 +#: ../share/extensions/extrude.inx.h:5 +#: ../share/extensions/generate_voronoi.inx.h:9 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 +#: ../share/extensions/pathalongpath.inx.h:18 +#: ../share/extensions/pathscatter.inx.h:20 +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Generate from Path" +msgstr "Genera da tracciato" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 -msgid "import via Poppler" -msgstr "" +#: ../src/extension/internal/cairo-ps-out.cpp:327 +#: ../share/extensions/ps_input.inx.h:3 +msgid "PostScript" +msgstr "PostScript" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:138 -msgid "rough" -msgstr "grezzo" +#: ../src/extension/internal/cairo-ps-out.cpp:329 +#: ../src/extension/internal/cairo-ps-out.cpp:368 +msgid "Restrict to PS level:" +msgstr "Limita al livello PS:" -#. Text options -#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 -msgid "Text handling:" -msgstr "Gestione testo:" +#: ../src/extension/internal/cairo-ps-out.cpp:330 +#: ../src/extension/internal/cairo-ps-out.cpp:369 +msgid "PostScript level 3" +msgstr "PostScript livello 3" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:144 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:145 -msgid "Import text as text" -msgstr "Importa testo come testo" +#: ../src/extension/internal/cairo-ps-out.cpp:331 +#: ../src/extension/internal/cairo-ps-out.cpp:370 +msgid "PostScript level 2" +msgstr "PostScript livello 2" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 -msgid "Replace PDF fonts by closest-named installed fonts" -msgstr "Rimpiazza font PDF con il font installato dal nome piĂą simile" +#: ../src/extension/internal/cairo-ps-out.cpp:333 +#: ../src/extension/internal/cairo-ps-out.cpp:372 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +#: ../src/extension/internal/emf-inout.cpp:3550 +#: ../src/extension/internal/wmf-inout.cpp:3141 +msgid "Convert texts to paths" +msgstr "Converti testo in tracciato" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:149 -msgid "Embed images" -msgstr "Incorpora immagini" +#: ../src/extension/internal/cairo-ps-out.cpp:334 +msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +msgstr "" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:151 -msgid "Import settings" -msgstr "Impostazioni importazione" +#: ../src/extension/internal/cairo-ps-out.cpp:335 +#: ../src/extension/internal/cairo-ps-out.cpp:374 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 +msgid "Rasterize filter effects" +msgstr "Rasterizza gli effetti" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:268 -msgid "PDF Import Settings" -msgstr "Impostazioni importazione PDF" +#: ../src/extension/internal/cairo-ps-out.cpp:336 +#: ../src/extension/internal/cairo-ps-out.cpp:375 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +msgid "Resolution for rasterization (dpi):" +msgstr "Risoluzione per la rasterizzazione (dpi):" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:431 -#, fuzzy -msgctxt "PDF input precision" -msgid "rough" -msgstr "grezzo" +#: ../src/extension/internal/cairo-ps-out.cpp:337 +#: ../src/extension/internal/cairo-ps-out.cpp:376 +msgid "Output page size" +msgstr "Imposta dimensione pagina" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:432 -#, fuzzy -msgctxt "PDF input precision" -msgid "medium" -msgstr "media" +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:377 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Use document's page size" +msgstr "Usa dimensione pagina documento" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:433 -#, fuzzy -msgctxt "PDF input precision" -msgid "fine" -msgstr "buono" +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:378 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +msgid "Use exported object's size" +msgstr "Usa dimensione oggetto esportato" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:434 -#, fuzzy -msgctxt "PDF input precision" -msgid "very fine" -msgstr "ottimo" +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +msgid "Bleed/margin (mm):" +msgstr "Margini di rifilo (mm):" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:877 -msgid "PDF Input" -msgstr "Input PDF" +#: ../src/extension/internal/cairo-ps-out.cpp:342 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +msgid "Limit export to the object with ID:" +msgstr "Limita l'esportazione agli oggetti con ID:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:882 -msgid "Adobe PDF (*.pdf)" -msgstr "PDF Adobe (*.pdf)" +#: ../src/extension/internal/cairo-ps-out.cpp:346 +#: ../share/extensions/ps_input.inx.h:2 +msgid "PostScript (*.ps)" +msgstr "PostScript (*.ps)" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:883 -msgid "Adobe Portable Document Format" -msgstr "Documento Adobe Portable Format" +#: ../src/extension/internal/cairo-ps-out.cpp:347 +msgid "PostScript File" +msgstr "File PostScript" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:890 -msgid "AI Input" -msgstr "Input AI" +#: ../src/extension/internal/cairo-ps-out.cpp:366 +#: ../share/extensions/eps_input.inx.h:3 +msgid "Encapsulated PostScript" +msgstr "Encapsulated PostScript" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:895 -msgid "Adobe Illustrator 9.0 and above (*.ai)" -msgstr "Adobe Illustrator 9.0 e superiori (*.ai)" +#: ../src/extension/internal/cairo-ps-out.cpp:373 +msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +msgstr "" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:896 -msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" -msgstr "Apre file salvati con Adobe Illustrator 9.0 o piĂą recenti" +#: ../src/extension/internal/cairo-ps-out.cpp:380 +msgid "Bleed/margin (mm)" +msgstr "Margini di rifilo (mm)" -#: ../src/extension/internal/pov-out.cpp:715 -msgid "PovRay Output" -msgstr "Output PovRay" +#: ../src/extension/internal/cairo-ps-out.cpp:385 +#: ../share/extensions/eps_input.inx.h:2 +msgid "Encapsulated PostScript (*.eps)" +msgstr "Encapsulated PostScript (*.eps)" -#: ../src/extension/internal/pov-out.cpp:720 -msgid "PovRay (*.pov) (paths and shapes only)" -msgstr "PovRay (*.pov) (solo tracciati e forme)" +#: ../src/extension/internal/cairo-ps-out.cpp:386 +msgid "Encapsulated PostScript File" +msgstr "File Encapsulated PostScript" -#: ../src/extension/internal/pov-out.cpp:721 -msgid "PovRay Raytracer File" -msgstr "File PovRay Raytracer" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 +msgid "Restrict to PDF version:" +msgstr "Limita alla versione PDF:" -#: ../src/extension/internal/svg.cpp:100 -msgid "SVG Input" -msgstr "Input SVG" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 +msgid "PDF 1.5" +msgstr "PDF 1.5" -#: ../src/extension/internal/svg.cpp:105 -msgid "Scalable Vector Graphic (*.svg)" -msgstr "Scalable Vector Graphic (*.svg)" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 +msgid "PDF 1.4" +msgstr "PDF 1.4" -#: ../src/extension/internal/svg.cpp:106 -msgid "Inkscape native file format and W3C standard" -msgstr "Formato nativo di Inkscape e standard W3C" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +msgstr "" -#: ../src/extension/internal/svg.cpp:114 -msgid "SVG Output Inkscape" -msgstr "Output Inkscape SVG" +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +msgid "Output page size:" +msgstr "Imposta dimensione pagina:" -#: ../src/extension/internal/svg.cpp:119 -msgid "Inkscape SVG (*.svg)" -msgstr "Inkscape SVG (*.svg)" +#: ../src/extension/internal/cdr-input.cpp:102 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 +#: ../src/extension/internal/vsd-input.cpp:101 +msgid "Select page:" +msgstr "Seleziona pagina:" -#: ../src/extension/internal/svg.cpp:120 -msgid "SVG format with Inkscape extensions" -msgstr "Formato SVG con estensioni di Inkscape" +#. Display total number of pages +#: ../src/extension/internal/cdr-input.cpp:114 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 +#: ../src/extension/internal/vsd-input.cpp:113 +#, c-format +msgid "out of %i" +msgstr "su %i" -#: ../src/extension/internal/svg.cpp:128 -msgid "SVG Output" -msgstr "Output SVG" +#: ../src/extension/internal/cdr-input.cpp:145 +#: ../src/extension/internal/vsd-input.cpp:144 +#, fuzzy +msgid "Page Selector" +msgstr "Selettore" -#: ../src/extension/internal/svg.cpp:133 -msgid "Plain SVG (*.svg)" -msgstr "SVG puro (*.svg)" +#: ../src/extension/internal/cdr-input.cpp:274 +msgid "Corel DRAW Input" +msgstr "Input Corel DRAW" -#: ../src/extension/internal/svg.cpp:134 -msgid "Scalable Vector Graphics format as defined by the W3C" -msgstr "Formato Scalable Vector Graphics come definito dal W3C" +#: ../src/extension/internal/cdr-input.cpp:279 +msgid "Corel DRAW 7-X4 files (*.cdr)" +msgstr "File Corel DRAW 7-X4 (*.cdr)" -#: ../src/extension/internal/svgz.cpp:46 -msgid "SVGZ Input" -msgstr "Input SVGZ" +#: ../src/extension/internal/cdr-input.cpp:280 +msgid "Open files saved in Corel DRAW 7-X4" +msgstr "Apre file salvati con Corel DRAW 7-X4" -#: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 -msgid "Compressed Inkscape SVG (*.svgz)" -msgstr "Inkscape SVG compresso (*.svgz)" +#: ../src/extension/internal/cdr-input.cpp:287 +msgid "Corel DRAW templates input" +msgstr "Input modello Corel DRAW" -#: ../src/extension/internal/svgz.cpp:53 -msgid "SVG file format compressed with GZip" -msgstr "Formato SVG compresso con GZip" +#: ../src/extension/internal/cdr-input.cpp:292 +msgid "Corel DRAW 7-13 template files (*.cdt)" +msgstr "File modello Corel DRAW 7-13 (*.cdt)" -#: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 -msgid "SVGZ Output" -msgstr "Output SVGZ" +#: ../src/extension/internal/cdr-input.cpp:293 +msgid "Open files saved in Corel DRAW 7-13" +msgstr "Apre file salvati con Corel DRAW 7-13" -#: ../src/extension/internal/svgz.cpp:67 -msgid "Inkscape's native file format compressed with GZip" -msgstr "Formato nativo di Inkscape compresso con GZip" +#: ../src/extension/internal/cdr-input.cpp:300 +msgid "Corel DRAW Compressed Exchange files input" +msgstr " Files input Corel DRAW Compressed Exchange" -#: ../src/extension/internal/svgz.cpp:80 -msgid "Compressed plain SVG (*.svgz)" -msgstr "SVG puro compresso (*.svgz)" +#: ../src/extension/internal/cdr-input.cpp:305 +msgid "Corel DRAW Compressed Exchange files (*.ccx)" +msgstr "File Corel DRAW Compressed Exchang (*.ccx)" -#: ../src/extension/internal/svgz.cpp:81 -msgid "Scalable Vector Graphics format compressed with GZip" -msgstr "Fomrato Scalable Vector Graphics compresso con GZip" +#: ../src/extension/internal/cdr-input.cpp:306 +msgid "Open compressed exchange files saved in Corel DRAW" +msgstr "File Open compressed exchange salvato con Corel DRAW" -#: ../src/extension/internal/vsd-input.cpp:274 -#, fuzzy -msgid "VSD Input" -msgstr "Input PDF" +#: ../src/extension/internal/cdr-input.cpp:313 +msgid "Corel DRAW Presentation Exchange files input" +msgstr "File input Corel DRAW Presentation Exchange" -#: ../src/extension/internal/vsd-input.cpp:279 -#, fuzzy -msgid "Microsoft Visio Diagram (*.vsd)" -msgstr "Diagramma Dia (*.dia)" +#: ../src/extension/internal/cdr-input.cpp:318 +msgid "Corel DRAW Presentation Exchange files (*.cmx)" +msgstr "File Corel DRAW Presentation Exchange (*.cmx)" -#: ../src/extension/internal/vsd-input.cpp:280 -msgid "File format used by Microsoft Visio 6 and later" -msgstr "" +#: ../src/extension/internal/cdr-input.cpp:319 +msgid "Open presentation exchange files saved in Corel DRAW" +msgstr "File Open presentation exchange salvato con Corel DRAW" -#: ../src/extension/internal/vsd-input.cpp:287 -#, fuzzy -msgid "VDX Input" -msgstr "Input DXF" +#: ../src/extension/internal/emf-inout.cpp:3534 +msgid "EMF Input" +msgstr "Input EMF" -#: ../src/extension/internal/vsd-input.cpp:292 -#, fuzzy -msgid "Microsoft Visio XML Diagram (*.vdx)" -msgstr "Microsoft XAML (*.xaml)" +#: ../src/extension/internal/emf-inout.cpp:3539 +msgid "Enhanced Metafiles (*.emf)" +msgstr "Metafile avanzato(*.emf)" -#: ../src/extension/internal/vsd-input.cpp:293 -msgid "File format used by Microsoft Visio 2010 and later" -msgstr "" +#: ../src/extension/internal/emf-inout.cpp:3540 +msgid "Enhanced Metafiles" +msgstr "Metafile avanzato" -#: ../src/extension/internal/vsd-input.cpp:300 -#, fuzzy -msgid "VSDM Input" -msgstr "Input EMF" +#: ../src/extension/internal/emf-inout.cpp:3548 +msgid "EMF Output" +msgstr "Output EMF" -#: ../src/extension/internal/vsd-input.cpp:305 -msgid "Microsoft Visio 2013 drawing (*.vsdm)" +#: ../src/extension/internal/emf-inout.cpp:3551 +#: ../src/extension/internal/wmf-inout.cpp:3142 +msgid "Map Unicode to Symbol font" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:306 -#: ../src/extension/internal/vsd-input.cpp:319 -msgid "File format used by Microsoft Visio 2013 and later" +#: ../src/extension/internal/emf-inout.cpp:3552 +#: ../src/extension/internal/wmf-inout.cpp:3143 +msgid "Map Unicode to Wingdings" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:313 -#, fuzzy -msgid "VSDX Input" -msgstr "Input DXF" +#: ../src/extension/internal/emf-inout.cpp:3553 +#: ../src/extension/internal/wmf-inout.cpp:3144 +msgid "Map Unicode to Zapf Dingbats" +msgstr "" -#: ../src/extension/internal/vsd-input.cpp:318 -msgid "Microsoft Visio 2013 drawing (*.vsdx)" +#: ../src/extension/internal/emf-inout.cpp:3554 +#: ../src/extension/internal/wmf-inout.cpp:3145 +msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3125 -msgid "WMF Input" -msgstr "Input WMF" +#: ../src/extension/internal/emf-inout.cpp:3555 +#: ../src/extension/internal/wmf-inout.cpp:3146 +msgid "Compensate for PPT font bug" +msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3130 -msgid "Windows Metafiles (*.wmf)" -msgstr "Windows Metafile (*.wmf)" +#: ../src/extension/internal/emf-inout.cpp:3556 +#: ../src/extension/internal/wmf-inout.cpp:3147 +msgid "Convert dashed/dotted lines to single lines" +msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3131 -msgid "Windows Metafiles" -msgstr "Windows Metafile" +#: ../src/extension/internal/emf-inout.cpp:3557 +#: ../src/extension/internal/wmf-inout.cpp:3148 +#, fuzzy +msgid "Convert gradients to colored polygon series" +msgstr "Gradiente lineare di contorno" -#: ../src/extension/internal/wmf-inout.cpp:3139 +#: ../src/extension/internal/emf-inout.cpp:3558 #, fuzzy -msgid "WMF Output" -msgstr "Output EMF" +msgid "Use native rectangular linear gradients" +msgstr "Crea gradiente lineare" -#: ../src/extension/internal/wmf-inout.cpp:3149 -msgid "Map all fill patterns to standard WMF hatches" +#: ../src/extension/internal/emf-inout.cpp:3559 +msgid "Map all fill patterns to standard EMF hatches" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3153 -#: ../share/extensions/wmf_input.inx.h:2 -#: ../share/extensions/wmf_output.inx.h:2 -msgid "Windows Metafile (*.wmf)" -msgstr "Windows Metafile (*.wmf)" - -#: ../src/extension/internal/wmf-inout.cpp:3154 +#: ../src/extension/internal/emf-inout.cpp:3560 #, fuzzy -msgid "Windows Metafile" -msgstr "Windows Metafile" - -#: ../src/extension/internal/wpg-input.cpp:129 -msgid "WPG Input" -msgstr "Input WPG" +msgid "Ignore image rotations" +msgstr "Centro della rotazione" -#: ../src/extension/internal/wpg-input.cpp:134 -msgid "WordPerfect Graphics (*.wpg)" -msgstr "WordPerfect Graphic (*.wpg)" +#: ../src/extension/internal/emf-inout.cpp:3564 +msgid "Enhanced Metafile (*.emf)" +msgstr "Metafile avanzato(*.wmf)" -#: ../src/extension/internal/wpg-input.cpp:135 -msgid "Vector graphics format used by Corel WordPerfect" -msgstr "Formato grafico vettoriale usato da Corel WordPerfect" +#: ../src/extension/internal/emf-inout.cpp:3565 +msgid "Enhanced Metafile" +msgstr "Metafile avanzato" -#: ../src/extension/prefdialog.cpp:272 -msgid "Live preview" -msgstr "Anteprima diretta" +#: ../src/extension/internal/filter/bevels.h:53 +#, fuzzy +msgid "Diffuse Light" +msgstr "Illuminazione diffusa" -#: ../src/extension/prefdialog.cpp:272 -msgid "Is the effect previewed live on canvas?" -msgstr "Aggiornamento in tempo reale degli effetti sul disegno?" +#: ../src/extension/internal/filter/bevels.h:55 +#: ../src/extension/internal/filter/bevels.h:135 +#: ../src/extension/internal/filter/bevels.h:219 +#: ../src/extension/internal/filter/paint.h:89 +#: ../src/extension/internal/filter/paint.h:340 +#, fuzzy +msgid "Smoothness" +msgstr "Smussatura" -#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 -msgid "Format autodetect failed. The file is being opened as SVG." -msgstr "" -"Impossibile determinare automaticamente il formato. Il file verrĂ  aperto " -"come SVG." +#: ../src/extension/internal/filter/bevels.h:56 +#: ../src/extension/internal/filter/bevels.h:137 +#: ../src/extension/internal/filter/bevels.h:221 +#, fuzzy +msgid "Elevation (°)" +msgstr "Elevazione (°)" -#: ../src/file.cpp:181 -msgid "default.svg" -msgstr "default.it.svg" +#: ../src/extension/internal/filter/bevels.h:57 +#: ../src/extension/internal/filter/bevels.h:138 +#: ../src/extension/internal/filter/bevels.h:222 +msgid "Azimuth (°)" +msgstr "Azimut (°)" -#: ../src/file.cpp:320 -msgid "Broken links have been changed to point to existing files." -msgstr "" +#: ../src/extension/internal/filter/bevels.h:58 +#: ../src/extension/internal/filter/bevels.h:139 +#: ../src/extension/internal/filter/bevels.h:223 +#, fuzzy +msgid "Lighting color" +msgstr "Colore di e_videnziazione:" -#: ../src/file.cpp:331 ../src/file.cpp:1247 +#: ../src/extension/internal/filter/bevels.h:62 +#: ../src/extension/internal/filter/bevels.h:143 +#: ../src/extension/internal/filter/bevels.h:227 +#: ../src/extension/internal/filter/blurs.h:62 +#: ../src/extension/internal/filter/blurs.h:131 +#: ../src/extension/internal/filter/blurs.h:200 +#: ../src/extension/internal/filter/blurs.h:266 +#: ../src/extension/internal/filter/blurs.h:350 +#: ../src/extension/internal/filter/bumps.h:141 +#: ../src/extension/internal/filter/bumps.h:361 +#: ../src/extension/internal/filter/color.h:81 +#: ../src/extension/internal/filter/color.h:170 +#: ../src/extension/internal/filter/color.h:261 +#: ../src/extension/internal/filter/color.h:346 +#: ../src/extension/internal/filter/color.h:436 +#: ../src/extension/internal/filter/color.h:531 +#: ../src/extension/internal/filter/color.h:653 +#: ../src/extension/internal/filter/color.h:750 +#: ../src/extension/internal/filter/color.h:829 +#: ../src/extension/internal/filter/color.h:920 +#: ../src/extension/internal/filter/color.h:1048 +#: ../src/extension/internal/filter/color.h:1118 +#: ../src/extension/internal/filter/color.h:1211 +#: ../src/extension/internal/filter/color.h:1323 +#: ../src/extension/internal/filter/color.h:1428 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/distort.h:95 +#: ../src/extension/internal/filter/distort.h:204 +#: ../src/extension/internal/filter/filter-file.cpp:151 +#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/image.h:61 +#: ../src/extension/internal/filter/morphology.h:75 +#: ../src/extension/internal/filter/morphology.h:202 +#: ../src/extension/internal/filter/overlays.h:79 +#: ../src/extension/internal/filter/paint.h:112 +#: ../src/extension/internal/filter/paint.h:243 +#: ../src/extension/internal/filter/paint.h:362 +#: ../src/extension/internal/filter/paint.h:506 +#: ../src/extension/internal/filter/paint.h:601 +#: ../src/extension/internal/filter/paint.h:724 +#: ../src/extension/internal/filter/paint.h:876 +#: ../src/extension/internal/filter/paint.h:980 +#: ../src/extension/internal/filter/protrusions.h:54 +#: ../src/extension/internal/filter/shadows.h:80 +#: ../src/extension/internal/filter/textures.h:90 +#: ../src/extension/internal/filter/transparency.h:69 +#: ../src/extension/internal/filter/transparency.h:140 +#: ../src/extension/internal/filter/transparency.h:214 +#: ../src/extension/internal/filter/transparency.h:287 +#: ../src/extension/internal/filter/transparency.h:349 #, c-format -msgid "Failed to load the requested file %s" -msgstr "Impossibile caricare il file %s" +msgid "Filters" +msgstr "Filtri" -#: ../src/file.cpp:357 -msgid "Document not saved yet. Cannot revert." -msgstr "Documento non ancora salvato. Impossibile ricaricarlo." +#: ../src/extension/internal/filter/bevels.h:66 +msgid "Basic diffuse bevel to use for building textures" +msgstr "Smussatura base diffusa per costruire altre texture" -#: ../src/file.cpp:363 +#: ../src/extension/internal/filter/bevels.h:133 #, fuzzy -msgid "Changes will be lost! Are you sure you want to reload document %1?" -msgstr "" -"Le modifiche andranno perdute! Sicuri di voler ricaricare il documento %s?" +msgid "Matte Jelly" +msgstr "Gelatina opaca" -#: ../src/file.cpp:389 -msgid "Document reverted." -msgstr "Documento ricaricato." +#: ../src/extension/internal/filter/bevels.h:136 +#: ../src/extension/internal/filter/bevels.h:220 +#: ../src/extension/internal/filter/blurs.h:187 +#: ../src/extension/internal/filter/color.h:74 +#, fuzzy +msgid "Brightness" +msgstr "LuminositĂ " -#: ../src/file.cpp:391 -msgid "Document not reverted." -msgstr "Documento non ricaricato." +#: ../src/extension/internal/filter/bevels.h:147 +msgid "Bulging, matte jelly covering" +msgstr "Protruso, coperto con gel opaco" -#: ../src/file.cpp:541 -msgid "Select file to open" -msgstr "Selezionare il file da aprire" +#: ../src/extension/internal/filter/bevels.h:217 +#, fuzzy +msgid "Specular Light" +msgstr "Illuminazione speculare" -#: ../src/file.cpp:623 +#: ../src/extension/internal/filter/blurs.h:56 +#: ../src/extension/internal/filter/blurs.h:189 +#: ../src/extension/internal/filter/blurs.h:329 +#: ../src/extension/internal/filter/distort.h:73 #, fuzzy -msgid "Clean up document" -msgstr "Salva il documento" +msgid "Horizontal blur" +msgstr "Ori_zzontale" -#: ../src/file.cpp:630 -#, c-format -msgid "Removed %i unused definition in <defs>." -msgid_plural "Removed %i unused definitions in <defs>." -msgstr[0] "Rimossa %i definizione inutilizzata in <defs>." -msgstr[1] "Rimosse %i definizioni inutilizzate in <defs>." +#: ../src/extension/internal/filter/blurs.h:57 +#: ../src/extension/internal/filter/blurs.h:190 +#: ../src/extension/internal/filter/blurs.h:330 +#: ../src/extension/internal/filter/distort.h:74 +#, fuzzy +msgid "Vertical blur" +msgstr "_Verticale" -#: ../src/file.cpp:635 -msgid "No unused definitions in <defs>." -msgstr "Nessuna definizione inutilizzata in <defs>." +#: ../src/extension/internal/filter/blurs.h:58 +#, fuzzy +msgid "Blur content only" +msgstr "Sfocatura contenuto" -#: ../src/file.cpp:667 -#, c-format -msgid "" -"No Inkscape extension found to save document (%s). This may have been " -"caused by an unknown filename extension." +#: ../src/extension/internal/filter/blurs.h:66 +msgid "Simple vertical and horizontal blur effect" msgstr "" -"Non è stata trovata alcuna estensione di Inkscape per salvare il documento " -"(%s). Ciò potrebbe esser stato causato da un'estensione del nome del file " -"sconosciuta." -#: ../src/file.cpp:668 ../src/file.cpp:676 ../src/file.cpp:684 -#: ../src/file.cpp:690 ../src/file.cpp:695 -msgid "Document not saved." -msgstr "Documento non salvato." +#: ../src/extension/internal/filter/blurs.h:125 +#, fuzzy +msgid "Clean Edges" +msgstr "Bordi puliti" -#: ../src/file.cpp:675 -#, c-format +#: ../src/extension/internal/filter/blurs.h:127 +#: ../src/extension/internal/filter/blurs.h:262 +#: ../src/extension/internal/filter/paint.h:237 +#: ../src/extension/internal/filter/paint.h:336 +#: ../src/extension/internal/filter/paint.h:341 +#, fuzzy +msgid "Strength" +msgstr "Forza (%)" + +#: ../src/extension/internal/filter/blurs.h:135 msgid "" -"File %s is write protected. Please remove write protection and try again." +"Removes or decreases glows and jaggeries around objects edges after applying " +"some filters" msgstr "" -"Il file %s è protetto dalla scrittura. Rimuovere la protezione e riprovare." - -#: ../src/file.cpp:683 -#, c-format -msgid "File %s could not be saved." -msgstr "Impossibile salvare il file %s." +"Rimuove o diminuisce aloni o frastagliature attorno ai bordi degli oggetti " +"dopo aver applicato alcuni filtri" -#: ../src/file.cpp:713 ../src/file.cpp:715 -msgid "Document saved." -msgstr "Documento salvato." +#: ../src/extension/internal/filter/blurs.h:185 +#, fuzzy +msgid "Cross Blur" +msgstr "Sfocatura gaussiana" -#. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:858 ../src/file.cpp:1406 +#: ../src/extension/internal/filter/blurs.h:188 #, fuzzy -msgid "drawing" -msgstr "disegno%s" +msgid "Fading" +msgstr "Ombreggiatura" -#: ../src/file.cpp:863 +#: ../src/extension/internal/filter/blurs.h:191 +#: ../src/extension/internal/filter/textures.h:74 #, fuzzy -msgid "drawing-%1" -msgstr "disegno%s" +msgid "Blend:" +msgstr "Miscela" -#: ../src/file.cpp:880 -msgid "Select file to save a copy to" -msgstr "Selezionare il file in cui salvare una copia" +#: ../src/extension/internal/filter/blurs.h:192 +#: ../src/extension/internal/filter/blurs.h:339 +#: ../src/extension/internal/filter/bumps.h:131 +#: ../src/extension/internal/filter/bumps.h:337 +#: ../src/extension/internal/filter/bumps.h:344 +#: ../src/extension/internal/filter/color.h:329 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:1423 +#: ../src/extension/internal/filter/color.h:1596 +#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/paint.h:705 +#: ../src/extension/internal/filter/transparency.h:63 +#: ../src/filter-enums.cpp:54 +#, fuzzy +msgid "Darken" +msgstr "Scurisci" -#: ../src/file.cpp:882 -msgid "Select file to save to" -msgstr "Selezionare il file da salvare" +#: ../src/extension/internal/filter/blurs.h:193 +#: ../src/extension/internal/filter/blurs.h:340 +#: ../src/extension/internal/filter/bumps.h:132 +#: ../src/extension/internal/filter/bumps.h:335 +#: ../src/extension/internal/filter/bumps.h:342 +#: ../src/extension/internal/filter/color.h:327 +#: ../src/extension/internal/filter/color.h:332 +#: ../src/extension/internal/filter/color.h:647 +#: ../src/extension/internal/filter/color.h:1415 +#: ../src/extension/internal/filter/color.h:1420 +#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/paint.h:703 +#: ../src/extension/internal/filter/transparency.h:62 +#: ../src/filter-enums.cpp:53 ../src/ui/dialog/input.cpp:382 +msgid "Screen" +msgstr "Scherma" -#: ../src/file.cpp:987 ../src/file.cpp:989 -msgid "No changes need to be saved." -msgstr "Nessuna modifica da salvare." +#: ../src/extension/internal/filter/blurs.h:194 +#: ../src/extension/internal/filter/blurs.h:341 +#: ../src/extension/internal/filter/bumps.h:133 +#: ../src/extension/internal/filter/bumps.h:338 +#: ../src/extension/internal/filter/bumps.h:345 +#: ../src/extension/internal/filter/color.h:325 +#: ../src/extension/internal/filter/color.h:333 +#: ../src/extension/internal/filter/color.h:645 +#: ../src/extension/internal/filter/color.h:1414 +#: ../src/extension/internal/filter/color.h:1421 +#: ../src/extension/internal/filter/color.h:1595 +#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/paint.h:701 +#: ../src/extension/internal/filter/transparency.h:60 +#: ../src/filter-enums.cpp:52 +#, fuzzy +msgid "Multiply" +msgstr "Moltiplica" -#: ../src/file.cpp:1008 -msgid "Saving document..." -msgstr "Salvataggio del documento..." +#: ../src/extension/internal/filter/blurs.h:195 +#: ../src/extension/internal/filter/blurs.h:342 +#: ../src/extension/internal/filter/bumps.h:134 +#: ../src/extension/internal/filter/bumps.h:339 +#: ../src/extension/internal/filter/bumps.h:346 +#: ../src/extension/internal/filter/color.h:328 +#: ../src/extension/internal/filter/color.h:335 +#: ../src/extension/internal/filter/color.h:1422 +#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/paint.h:704 +#: ../src/extension/internal/filter/transparency.h:64 +#: ../src/filter-enums.cpp:55 +#, fuzzy +msgid "Lighten" +msgstr "Illumina" -#: ../src/file.cpp:1244 ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../src/ui/dialog/ocaldialogs.cpp:1244 -msgid "Import" -msgstr "Importa" +#: ../src/extension/internal/filter/blurs.h:204 +#, fuzzy +msgid "Combine vertical and horizontal blur" +msgstr "Muove i nodi verticalmente" -#: ../src/file.cpp:1294 -msgid "Select file to import" -msgstr "Selezionare il file da importare" +#: ../src/extension/internal/filter/blurs.h:260 +msgid "Feather" +msgstr "Cuoio" -#: ../src/file.cpp:1427 -msgid "Select file to export to" -msgstr "Selezionare il file su cui esportare" +#: ../src/extension/internal/filter/blurs.h:270 +msgid "Blurred mask on the edge without altering the contents" +msgstr "Applica una maschera di sfocatura al bordo senza alterare il contenuto" -#: ../src/file.cpp:1680 +#: ../src/extension/internal/filter/blurs.h:325 #, fuzzy -msgid "Import Clip Art" -msgstr "Importa/Esporta" - -#: ../src/filter-enums.cpp:21 -msgid "Color Matrix" -msgstr "Matrice di colore" +msgid "Out of Focus" +msgstr "Colore avviso fuori gamma:" -#: ../src/filter-enums.cpp:23 -msgid "Composite" -msgstr "Composto" +#: ../src/extension/internal/filter/blurs.h:331 +#: ../src/extension/internal/filter/distort.h:75 +#: ../src/extension/internal/filter/morphology.h:67 +#: ../src/extension/internal/filter/paint.h:235 +#: ../src/extension/internal/filter/paint.h:342 +#: ../src/extension/internal/filter/paint.h:346 +#, fuzzy +msgid "Dilatation" +msgstr "Saturazione" -#: ../src/filter-enums.cpp:24 -msgid "Convolve Matrix" -msgstr "Matrice di convoluzione" +#: ../src/extension/internal/filter/blurs.h:332 +#: ../src/extension/internal/filter/distort.h:76 +#: ../src/extension/internal/filter/morphology.h:68 +#: ../src/extension/internal/filter/paint.h:98 +#: ../src/extension/internal/filter/paint.h:236 +#: ../src/extension/internal/filter/paint.h:343 +#: ../src/extension/internal/filter/paint.h:347 +#: ../src/extension/internal/filter/transparency.h:208 +#: ../src/extension/internal/filter/transparency.h:282 +#, fuzzy +msgid "Erosion" +msgstr "Posizione:" -#: ../src/filter-enums.cpp:25 -msgid "Diffuse Lighting" -msgstr "Illuminazione diffusa" +#: ../src/extension/internal/filter/blurs.h:336 +#: ../src/extension/internal/filter/color.h:1205 +#: ../src/extension/internal/filter/color.h:1317 +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "Background color" +msgstr "Colore di sfondo" -#: ../src/filter-enums.cpp:26 -msgid "Displacement Map" -msgstr "Mappa di spostamento" +#: ../src/extension/internal/filter/blurs.h:337 +#: ../src/extension/internal/filter/bumps.h:129 +#, fuzzy +msgid "Blend type:" +msgstr " tipo: " -#: ../src/filter-enums.cpp:27 -msgid "Flood" -msgstr "Riempimento" +#: ../src/extension/internal/filter/blurs.h:338 +#: ../src/extension/internal/filter/bumps.h:130 +#: ../src/extension/internal/filter/bumps.h:336 +#: ../src/extension/internal/filter/bumps.h:343 +#: ../src/extension/internal/filter/color.h:326 +#: ../src/extension/internal/filter/color.h:334 +#: ../src/extension/internal/filter/color.h:646 +#: ../src/extension/internal/filter/color.h:1413 +#: ../src/extension/internal/filter/color.h:1419 +#: ../src/extension/internal/filter/color.h:1586 +#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/distort.h:78 +#: ../src/extension/internal/filter/paint.h:702 +#: ../src/extension/internal/filter/textures.h:77 +#: ../src/extension/internal/filter/transparency.h:61 +#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:645 +msgid "Normal" +msgstr "Normale" -#: ../src/filter-enums.cpp:30 ../share/extensions/text_merge.inx.h:1 -msgid "Merge" -msgstr "Mischia" +#: ../src/extension/internal/filter/blurs.h:344 +#, fuzzy +msgid "Blend to background" +msgstr "Rimuovi sfondo" -#: ../src/filter-enums.cpp:33 -msgid "Specular Lighting" -msgstr "Illuminazione speculare" +#: ../src/extension/internal/filter/blurs.h:354 +msgid "Blur eroded by white or transparency" +msgstr "" -#: ../src/filter-enums.cpp:34 -msgid "Tile" -msgstr "Piastrella" +#: ../src/extension/internal/filter/bumps.h:80 +#, fuzzy +msgid "Bump" +msgstr "RugositĂ " -#: ../src/filter-enums.cpp:40 -msgid "Source Graphic" -msgstr "Sorgente immagine" +#: ../src/extension/internal/filter/bumps.h:84 +#: ../src/extension/internal/filter/bumps.h:313 +#, fuzzy +msgid "Image simplification" +msgstr "Cartella di lavoro non valida: %s" -#: ../src/filter-enums.cpp:41 -msgid "Source Alpha" -msgstr "Sorgente trasparenza" +#: ../src/extension/internal/filter/bumps.h:85 +#: ../src/extension/internal/filter/bumps.h:314 +#, fuzzy +msgid "Bump simplification" +msgstr "Soglia per la semplificazione:" -#: ../src/filter-enums.cpp:42 -msgid "Background Image" -msgstr "Immagine di sfondo" +#: ../src/extension/internal/filter/bumps.h:87 +#: ../src/extension/internal/filter/bumps.h:316 +#, fuzzy +msgid "Bump source" +msgstr "RugositĂ " -#: ../src/filter-enums.cpp:43 -msgid "Background Alpha" -msgstr "Trasparenza dello sfondo" +#: ../src/extension/internal/filter/bumps.h:88 +#: ../src/extension/internal/filter/bumps.h:317 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:637 +#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/transparency.h:132 +#: ../src/filter-enums.cpp:127 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/widgets/sp-color-icc-selector.cpp:355 +#: ../src/widgets/sp-color-scales.cpp:429 +#: ../src/widgets/sp-color-scales.cpp:430 +msgid "Red" +msgstr "Rosso" -#: ../src/filter-enums.cpp:44 -msgid "Fill Paint" -msgstr "Riempimento uniforme" +#: ../src/extension/internal/filter/bumps.h:89 +#: ../src/extension/internal/filter/bumps.h:318 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:638 +#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/transparency.h:133 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/widgets/sp-color-icc-selector.cpp:356 +#: ../src/widgets/sp-color-scales.cpp:432 +#: ../src/widgets/sp-color-scales.cpp:433 +msgid "Green" +msgstr "Verde" -#: ../src/filter-enums.cpp:45 -msgid "Stroke Paint" -msgstr "Colore contorno" +#: ../src/extension/internal/filter/bumps.h:90 +#: ../src/extension/internal/filter/bumps.h:319 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:639 +#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/transparency.h:134 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/widgets/sp-color-icc-selector.cpp:357 +#: ../src/widgets/sp-color-scales.cpp:435 +#: ../src/widgets/sp-color-scales.cpp:436 +msgid "Blue" +msgstr "Blu" -#. New in Compositing and Blending Level 1 -#: ../src/filter-enums.cpp:57 +#: ../src/extension/internal/filter/bumps.h:91 #, fuzzy -msgid "Overlay" -msgstr "Sovrapposizione" +msgid "Bump from background" +msgstr "Rimuovi sfondo" -#: ../src/filter-enums.cpp:58 +#: ../src/extension/internal/filter/bumps.h:94 #, fuzzy -msgid "Color Dodge" -msgstr "Colore delle linee guida" +msgid "Lighting type:" +msgstr " tipo: " -#: ../src/filter-enums.cpp:59 +#: ../src/extension/internal/filter/bumps.h:95 #, fuzzy -msgid "Color Burn" -msgstr "Barra colori" +msgid "Specular" +msgstr "Esponente speculare" -#: ../src/filter-enums.cpp:60 +#: ../src/extension/internal/filter/bumps.h:96 #, fuzzy -msgid "Hard Light" -msgstr "Altezza barre:" +msgid "Diffuse" +msgstr "Illuminazione diffusa" -#: ../src/filter-enums.cpp:61 +#: ../src/extension/internal/filter/bumps.h:98 +#: ../src/extension/internal/filter/bumps.h:329 +#: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 +#: ../src/widgets/rect-toolbar.cpp:331 +#: ../share/extensions/interp_att_g.inx.h:11 +msgid "Height" +msgstr "Altezza" + +#: ../src/extension/internal/filter/bumps.h:99 +#: ../src/extension/internal/filter/bumps.h:330 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:824 +#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/paint.h:86 +#: ../src/extension/internal/filter/paint.h:592 +#: ../src/extension/internal/filter/paint.h:707 +#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/widgets/sp-color-icc-selector.cpp:366 +#: ../src/widgets/sp-color-scales.cpp:461 +#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:318 +#: ../share/extensions/color_randomize.inx.h:5 +msgid "Lightness" +msgstr "LuminositĂ " + +#: ../src/extension/internal/filter/bumps.h:100 +#: ../src/extension/internal/filter/bumps.h:331 +msgid "Precision" +msgstr "Precisione" + +#: ../src/extension/internal/filter/bumps.h:103 #, fuzzy -msgid "Soft Light" -msgstr "Punto luce" +msgid "Light source" +msgstr "Sorgente d'illuminazione:" -#: ../src/filter-enums.cpp:62 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 -msgid "Difference" -msgstr "Differenza" +#: ../src/extension/internal/filter/bumps.h:104 +#, fuzzy +msgid "Light source:" +msgstr "Sorgente d'illuminazione:" -#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:100 -msgid "Exclusion" -msgstr "Esclusione" +#: ../src/extension/internal/filter/bumps.h:105 +#, fuzzy +msgid "Distant" +msgstr "Distorto" -#: ../src/filter-enums.cpp:64 ../src/ui/tools/flood-tool.cpp:196 -#: ../src/widgets/sp-color-icc-selector.cpp:361 -#: ../src/widgets/sp-color-icc-selector.cpp:365 -#: ../src/widgets/sp-color-scales.cpp:455 -#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:286 -#: ../share/extensions/color_randomize.inx.h:3 -msgid "Hue" -msgstr "Colore" +#: ../src/extension/internal/filter/bumps.h:106 +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Point" +msgstr "Punto" -#: ../src/filter-enums.cpp:67 -msgid "Luminosity" +#: ../src/extension/internal/filter/bumps.h:107 +msgid "Spot" msgstr "" -#: ../src/filter-enums.cpp:77 -msgid "Matrix" -msgstr "Matrice" +#: ../src/extension/internal/filter/bumps.h:109 +#, fuzzy +msgid "Distant light options" +msgstr "Luce distante" -#: ../src/filter-enums.cpp:78 -msgid "Saturate" -msgstr "Satura" +#: ../src/extension/internal/filter/bumps.h:110 +#: ../src/extension/internal/filter/bumps.h:332 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Azimuth" +msgstr "Azimut" -#: ../src/filter-enums.cpp:79 -msgid "Hue Rotate" -msgstr "Ruota luminositĂ " +#: ../src/extension/internal/filter/bumps.h:111 +#: ../src/extension/internal/filter/bumps.h:333 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Elevation" +msgstr "Elevazione" -#: ../src/filter-enums.cpp:80 -msgid "Luminance to Alpha" -msgstr "Da luminanza a trasparenza" +#: ../src/extension/internal/filter/bumps.h:112 +#, fuzzy +msgid "Point light options" +msgstr "Luce puntiforme" -#. File -#: ../src/filter-enums.cpp:86 ../src/verbs.cpp:2352 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:7 -msgid "Default" -msgstr "Predefinito" +#: ../src/extension/internal/filter/bumps.h:113 +#: ../src/extension/internal/filter/bumps.h:117 +msgid "X location" +msgstr "Locazione X" + +#: ../src/extension/internal/filter/bumps.h:114 +#: ../src/extension/internal/filter/bumps.h:118 +msgid "Y location" +msgstr "Locazione Y" -#. New CSS -#: ../src/filter-enums.cpp:94 +#: ../src/extension/internal/filter/bumps.h:115 +#: ../src/extension/internal/filter/bumps.h:119 +msgid "Z location" +msgstr "Locazione Z" + +#: ../src/extension/internal/filter/bumps.h:116 #, fuzzy -msgid "Clear" -msgstr "_Pulisci" +msgid "Spot light options" +msgstr "Punto luce" -#: ../src/filter-enums.cpp:95 +#: ../src/extension/internal/filter/bumps.h:120 #, fuzzy -msgid "Copy" -msgstr "_Copia" +msgid "X target" +msgstr "Target:" -#: ../src/filter-enums.cpp:96 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1571 -msgid "Destination" -msgstr "Destinazione" +#: ../src/extension/internal/filter/bumps.h:121 +#, fuzzy +msgid "Y target" +msgstr "Target:" -#: ../src/filter-enums.cpp:97 +#: ../src/extension/internal/filter/bumps.h:122 #, fuzzy -msgid "Destination Over" -msgstr "Destinazione" +msgid "Z target" +msgstr "Target:" -#: ../src/filter-enums.cpp:98 +#: ../src/extension/internal/filter/bumps.h:123 #, fuzzy -msgid "Destination In" -msgstr "Destinazione" +msgid "Specular exponent" +msgstr "Esponente speculare" -#: ../src/filter-enums.cpp:99 +#: ../src/extension/internal/filter/bumps.h:124 #, fuzzy -msgid "Destination Out" -msgstr "Destinazione" +msgid "Cone angle" +msgstr "Angolo del cono" -#: ../src/filter-enums.cpp:100 +#: ../src/extension/internal/filter/bumps.h:127 #, fuzzy -msgid "Destination Atop" -msgstr "Destinazione" +msgid "Image color" +msgstr "Incolla colore" -#: ../src/filter-enums.cpp:101 +#: ../src/extension/internal/filter/bumps.h:128 #, fuzzy -msgid "Lighter" -msgstr "Illumina" +msgid "Color bump" +msgstr "Colore" -#: ../src/filter-enums.cpp:103 -msgid "Arithmetic" -msgstr "Aritmetico" +#: ../src/extension/internal/filter/bumps.h:145 +msgid "All purposes bump filter" +msgstr "" -#: ../src/filter-enums.cpp:119 ../src/selection-chemistry.cpp:535 -msgid "Duplicate" -msgstr "Duplica" +#: ../src/extension/internal/filter/bumps.h:309 +#, fuzzy +msgid "Wax Bump" +msgstr "RugositĂ " -#: ../src/filter-enums.cpp:120 -msgid "Wrap" -msgstr "Ingloba" +#: ../src/extension/internal/filter/bumps.h:320 +#, fuzzy +msgid "Background:" +msgstr "Sfo_ndo:" -#: ../src/filter-enums.cpp:136 -msgid "Erode" -msgstr "Erodi" +#: ../src/extension/internal/filter/bumps.h:322 +#: ../src/extension/internal/filter/transparency.h:57 +#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:517 +msgid "Image" +msgstr "Immagine" -#: ../src/filter-enums.cpp:137 -msgid "Dilate" -msgstr "Dilata" +#: ../src/extension/internal/filter/bumps.h:323 +#, fuzzy +msgid "Blurred image" +msgstr "Incorpora immagini" -#: ../src/filter-enums.cpp:143 -msgid "Fractal Noise" -msgstr "Rumore frattale" +#: ../src/extension/internal/filter/bumps.h:325 +#, fuzzy +msgid "Background opacity" +msgstr "Trasparenza dello sfondo" -#: ../src/filter-enums.cpp:150 -msgid "Distant Light" -msgstr "Luce distante" +#: ../src/extension/internal/filter/bumps.h:327 +#: ../src/extension/internal/filter/color.h:1040 +#, fuzzy +msgid "Lighting" +msgstr "Illumina" -#: ../src/filter-enums.cpp:151 -msgid "Point Light" -msgstr "Luce puntiforme" +#: ../src/extension/internal/filter/bumps.h:334 +#, fuzzy +msgid "Lighting blend:" +msgstr "Disegno cancellato" -#: ../src/filter-enums.cpp:152 -msgid "Spot Light" -msgstr "Punto luce" +#: ../src/extension/internal/filter/bumps.h:341 +#, fuzzy +msgid "Highlight blend:" +msgstr "Colore di e_videnziazione:" -#: ../src/gradient-chemistry.cpp:1580 +#: ../src/extension/internal/filter/bumps.h:350 #, fuzzy -msgid "Invert gradient colors" -msgstr "Inverti gradiente" +msgid "Bump color" +msgstr "Rilascia colore" -#: ../src/gradient-chemistry.cpp:1606 +#: ../src/extension/internal/filter/bumps.h:351 #, fuzzy -msgid "Reverse gradient" -msgstr "Inverti gradiente" +msgid "Revert bump" +msgstr "Ri_carica" -#: ../src/gradient-chemistry.cpp:1620 ../src/widgets/gradient-selector.cpp:245 +#: ../src/extension/internal/filter/bumps.h:352 #, fuzzy -msgid "Delete swatch" -msgstr "Cancella passaggio" +msgid "Transparency type:" +msgstr "0 (trasparente)" -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 -msgid "Linear gradient start" -msgstr "Inizio del gradiente lineare" +#: ../src/extension/internal/filter/bumps.h:353 +#: ../src/extension/internal/filter/morphology.h:176 +#: ../src/filter-enums.cpp:90 +msgid "Atop" +msgstr "In cima" -#. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 -msgid "Linear gradient end" -msgstr "Fine del gradiente lineare" +#: ../src/extension/internal/filter/bumps.h:354 +#: ../src/extension/internal/filter/distort.h:70 +#: ../src/extension/internal/filter/morphology.h:174 +#: ../src/filter-enums.cpp:88 +msgid "In" +msgstr "In" -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 -msgid "Linear gradient mid stop" -msgstr "Passaggio intermedio del gradiente lineare" +#: ../src/extension/internal/filter/bumps.h:365 +msgid "Turns an image to jelly" +msgstr "" -#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 -msgid "Radial gradient center" -msgstr "Centro del gradiente radiale" +#: ../src/extension/internal/filter/color.h:72 +msgid "Brilliance" +msgstr "" -#: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 -msgid "Radial gradient radius" -msgstr "Raggio del gradiente radiale" +#: ../src/extension/internal/filter/color.h:75 +#: ../src/extension/internal/filter/color.h:1417 +#, fuzzy +msgid "Over-saturation" +msgstr "Saturazione" -#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 -msgid "Radial gradient focus" -msgstr "Fuoco del gradiente radiale" +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/overlays.h:70 +#: ../src/extension/internal/filter/paint.h:85 +#: ../src/extension/internal/filter/paint.h:502 +#: ../src/extension/internal/filter/transparency.h:136 +#: ../src/extension/internal/filter/transparency.h:210 +#, fuzzy +msgid "Inverted" +msgstr "Inverti" -#. POINT_RG_FOCUS -#: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 -msgid "Radial gradient mid stop" -msgstr "Passaggio intermedio del gradiente lineare" +#: ../src/extension/internal/filter/color.h:85 +#, fuzzy +msgid "Brightness filter" +msgstr "Passaggi di luminositĂ " -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 +#: ../src/extension/internal/filter/color.h:152 #, fuzzy -msgid "Mesh gradient corner" -msgstr "Centro del gradiente radiale" +msgid "Channel Painting" +msgstr "Pittura ad olio" -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +#: ../src/extension/internal/filter/color.h:156 +#: ../src/extension/internal/filter/color.h:257 +#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:65 +#: ../src/ui/dialog/inkscape-preferences.cpp:944 +#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/widgets/sp-color-icc-selector.cpp:362 +#: ../src/widgets/sp-color-icc-selector.cpp:367 +#: ../src/widgets/sp-color-scales.cpp:458 +#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:302 +#: ../share/extensions/color_randomize.inx.h:4 +msgid "Saturation" +msgstr "Saturazione" + +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/transparency.h:135 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:199 +msgid "Alpha" +msgstr "Alfa" + +#: ../src/extension/internal/filter/color.h:174 #, fuzzy -msgid "Mesh gradient handle" -msgstr "Muovi maniglia del gradiente" +msgid "Replace RGB by any color" +msgstr "Rimpiazza tinta con due colori" -#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +#: ../src/extension/internal/filter/color.h:254 #, fuzzy -msgid "Mesh gradient tensor" -msgstr "Fine del gradiente lineare" +msgid "Color Shift" +msgstr "Ombra colorata" -#: ../src/gradient-drag.cpp:567 -msgid "Added patch row or column" +#: ../src/extension/internal/filter/color.h:256 +#, fuzzy +msgid "Shift (°)" +msgstr "Spos_tamento" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Rotate and desaturate hue" msgstr "" -#: ../src/gradient-drag.cpp:797 -msgid "Merge gradient handles" -msgstr "Unisci maniglie del gradiente" +#: ../src/extension/internal/filter/color.h:321 +#, fuzzy +msgid "Harsh light" +msgstr "Altezza barre:" -#: ../src/gradient-drag.cpp:1104 -msgid "Move gradient handle" -msgstr "Muovi maniglia del gradiente" +#: ../src/extension/internal/filter/color.h:322 +#, fuzzy +msgid "Normal light" +msgstr "Proiezione normale" -#: ../src/gradient-drag.cpp:1163 ../src/widgets/gradient-vector.cpp:847 -msgid "Delete gradient stop" -msgstr "Cancella passaggio del gradiente" +#: ../src/extension/internal/filter/color.h:323 +msgid "Duotone" +msgstr "Due toni" -#: ../src/gradient-drag.cpp:1426 -#, c-format -msgid "" -"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" -"+Alt to delete stop" -msgstr "" -"%s %d per: %s%s; trascinare con Ctrl per far scattare l'offset; con " -"Ctrl+Alt per cancellare il passaggio" +#: ../src/extension/internal/filter/color.h:324 +#: ../src/extension/internal/filter/color.h:1412 +#, fuzzy +msgid "Blend 1:" +msgstr "Miscela" -#: ../src/gradient-drag.cpp:1430 ../src/gradient-drag.cpp:1437 -msgid " (stroke)" -msgstr " (contorno)" +#: ../src/extension/internal/filter/color.h:331 +#: ../src/extension/internal/filter/color.h:1418 +#, fuzzy +msgid "Blend 2:" +msgstr "Miscela" -#: ../src/gradient-drag.cpp:1434 -#, c-format -msgid "" -"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " -"preserve angle, with Ctrl+Shift to scale around center" +#: ../src/extension/internal/filter/color.h:350 +#, fuzzy +msgid "Blend image or object with a flood color" msgstr "" -"%s per: %s%s; trascinare con Ctrl per far scattare l'angolo; con " -"Ctrl+Alt per mantenere l'angolo; con Ctrl+Maiusc per " -"ridimensionare attorno al centro" +"Miscela immagini o oggetti con un colore di riempimento e importa luminositĂ  " +"e contrasto" -#: ../src/gradient-drag.cpp:1442 -msgid "" -"Radial gradient center and focus; drag with Shift to " -"separate focus" -msgstr "" -"Centro e fuoco del gradiente radiale; trascinare con " -"Maiusc per separare il fuoco" +#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:22 +msgid "Component Transfer" +msgstr "Trasferimento componenti" -#: ../src/gradient-drag.cpp:1445 -#, c-format -msgid "" -"Gradient point shared by %d gradient; drag with Shift to " -"separate" -msgid_plural "" -"Gradient point shared by %d gradients; drag with Shift to " -"separate" -msgstr[0] "" -"Punto di gradiente condiviso da %d gradiente; trascinare con " -"Maiusc per separare" -msgstr[1] "" -"Punto di gradiente condiviso da %d gradienti; trascinare con " -"Maiusc per separare" +#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:109 +msgid "Identity" +msgstr "IdentitĂ " -#: ../src/gradient-drag.cpp:2377 -msgid "Move gradient handle(s)" -msgstr "Muovi maniglia del gradiente" +#: ../src/extension/internal/filter/color.h:428 +#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:110 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 +msgid "Table" +msgstr "Tabella" -#: ../src/gradient-drag.cpp:2413 -msgid "Move gradient mid stop(s)" -msgstr "Muovi passaggio intermedio del gradiente" +#: ../src/extension/internal/filter/color.h:429 +#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:111 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 +msgid "Discrete" +msgstr "Discreto" -#: ../src/gradient-drag.cpp:2702 -msgid "Delete gradient stop(s)" -msgstr "Cancella passaggio del gradiente" +#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:112 +#: ../src/live_effects/lpe-powerstroke.cpp:188 +msgid "Linear" +msgstr "Lineare" -#: ../src/inkscape.cpp:344 +#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:113 +msgid "Gamma" +msgstr "Gamma" + +#: ../src/extension/internal/filter/color.h:440 #, fuzzy -msgid "Autosave failed! Cannot create directory %1." -msgstr "Impossibile creare la cartella di profilo %s." +msgid "Basic component transfer structure" +msgstr "Texture semplice con disturbo in trasparenza" -#: ../src/inkscape.cpp:353 +#: ../src/extension/internal/filter/color.h:509 #, fuzzy -msgid "Autosave failed! Cannot open directory %1." -msgstr "Impossibile creare la cartella di profilo %s." +msgid "Duochrome" +msgstr "Cromatura" -#: ../src/inkscape.cpp:369 -msgid "Autosaving documents..." -msgstr "Salvataggio automatico documenti..." +#: ../src/extension/internal/filter/color.h:513 +#, fuzzy +msgid "Fluorescence level" +msgstr "Fluorescenza" -#: ../src/inkscape.cpp:442 -msgid "Autosave failed! Could not find inkscape extension to save document." +#: ../src/extension/internal/filter/color.h:514 +msgid "Swap:" msgstr "" -"Errore nel salvataggio automatico! Impossibile trovare un'estensione di " -"Inkscape per salvare il documento." - -#: ../src/inkscape.cpp:445 ../src/inkscape.cpp:452 -#, c-format -msgid "Autosave failed! File %s could not be saved." -msgstr "Errore nel salvataggio automatico! Impossibile salvare il file %s." -#: ../src/inkscape.cpp:467 -msgid "Autosave complete." -msgstr "Salvataggio automatico completato." +#: ../src/extension/internal/filter/color.h:515 +msgid "No swap" +msgstr "" -#: ../src/inkscape.cpp:715 -msgid "Untitled document" -msgstr "Documento senza nome" +#: ../src/extension/internal/filter/color.h:516 +#, fuzzy +msgid "Color and alpha" +msgstr "Gestione del colore" -#. Show nice dialog box -#: ../src/inkscape.cpp:747 -msgid "Inkscape encountered an internal error and will close now.\n" -msgstr "" -"Si è verificato un errore interno ed Inkscape verrĂ  chiuso immediatamente.\n" +#: ../src/extension/internal/filter/color.h:517 +#, fuzzy +msgid "Color only" +msgstr "Colore delle linee guida" -#: ../src/inkscape.cpp:748 -msgid "" -"Automatic backups of unsaved documents were done to the following " -"locations:\n" -msgstr "" -"I backup automatici dei documenti non salvati sono stati fatti ai seguenti " -"indirizzi:\n" +#: ../src/extension/internal/filter/color.h:518 +#, fuzzy +msgid "Alpha only" +msgstr "Alfa" -#: ../src/inkscape.cpp:749 -msgid "Automatic backup of the following documents failed:\n" -msgstr "Fallito il backup automatico dei seguenti documenti:\n" +#: ../src/extension/internal/filter/color.h:522 +#, fuzzy +msgid "Color 1" +msgstr "Colore" -#: ../src/interface.cpp:748 +#: ../src/extension/internal/filter/color.h:525 #, fuzzy -msgctxt "Interface setup" -msgid "Default" -msgstr "Predefinito" +msgid "Color 2" +msgstr "Colore" -#: ../src/interface.cpp:748 +#: ../src/extension/internal/filter/color.h:535 #, fuzzy -msgid "Default interface setup" -msgstr "Licenza predefinita" +msgid "Convert luminance values to a duochrome palette" +msgstr "Cambia i colori in una tavolozza a due toni" -#: ../src/interface.cpp:749 +#: ../src/extension/internal/filter/color.h:634 #, fuzzy -msgctxt "Interface setup" -msgid "Custom" -msgstr "Personalizzata" +msgid "Extract Channel" +msgstr "Canale «Opacità»" -#: ../src/interface.cpp:749 -msgid "Setup for custom task" -msgstr "" +#: ../src/extension/internal/filter/color.h:640 +#: ../src/widgets/sp-color-icc-selector.cpp:369 +#: ../src/widgets/sp-color-icc-selector.cpp:374 +#: ../src/widgets/sp-color-scales.cpp:483 +#: ../src/widgets/sp-color-scales.cpp:484 +msgid "Cyan" +msgstr "Ciano" -#: ../src/interface.cpp:750 +#: ../src/extension/internal/filter/color.h:641 +#: ../src/widgets/sp-color-icc-selector.cpp:370 +#: ../src/widgets/sp-color-icc-selector.cpp:375 +#: ../src/widgets/sp-color-scales.cpp:486 +#: ../src/widgets/sp-color-scales.cpp:487 +msgid "Magenta" +msgstr "Magenta" + +#: ../src/extension/internal/filter/color.h:642 +#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:376 +#: ../src/widgets/sp-color-scales.cpp:489 +#: ../src/widgets/sp-color-scales.cpp:490 +msgid "Yellow" +msgstr "Giallo" + +#: ../src/extension/internal/filter/color.h:644 #, fuzzy -msgctxt "Interface setup" -msgid "Wide" -msgstr "Larga" +msgid "Background blend mode:" +msgstr "Colore di sfondo" -#: ../src/interface.cpp:750 -msgid "Setup for widescreen work" -msgstr "" +#: ../src/extension/internal/filter/color.h:649 +#, fuzzy +msgid "Channel to alpha" +msgstr "Da luminanza a trasparenza" -# Verb dovrebbe essere parola chiave per menĂą scritti in XML -# del GTK+ versione 2.6 o superiore -Luca -#: ../src/interface.cpp:862 -#, c-format -msgid "Verb \"%s\" Unknown" -msgstr "Verb \"%s\" sconosciuto" +#: ../src/extension/internal/filter/color.h:657 +#, fuzzy +msgid "Extract color channel as a transparent image" +msgstr "Estrai canale specifico dall'immagine" -#: ../src/interface.cpp:901 -msgid "Open _Recent" -msgstr "Apri _recenti" +#: ../src/extension/internal/filter/color.h:740 +#, fuzzy +msgid "Fade to Black or White" +msgstr "Solo bianco e nero" -#: ../src/interface.cpp:1009 ../src/interface.cpp:1095 -#: ../src/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:528 -msgid "Drop color" -msgstr "Rilascia colore" +#: ../src/extension/internal/filter/color.h:743 +#, fuzzy +msgid "Fade to:" +msgstr "OpacitĂ :" -#: ../src/interface.cpp:1048 ../src/interface.cpp:1158 -msgid "Drop color on gradient" -msgstr "Usa colore per il gradiente" +#: ../src/extension/internal/filter/color.h:744 +#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/widgets/sp-color-icc-selector.cpp:372 +#: ../src/widgets/sp-color-scales.cpp:492 +#: ../src/widgets/sp-color-scales.cpp:493 +msgid "Black" +msgstr "Nero" -#: ../src/interface.cpp:1211 -msgid "Could not parse SVG data" -msgstr "Impossibile leggere i dati SVG" +#: ../src/extension/internal/filter/color.h:745 +#: ../src/ui/widget/selected-style.cpp:253 +msgid "White" +msgstr "Bianco" -#: ../src/interface.cpp:1250 -msgid "Drop SVG" -msgstr "Rilascia SVG" +#: ../src/extension/internal/filter/color.h:754 +#, fuzzy +msgid "Fade to black or white" +msgstr "Solo bianco e nero" -#: ../src/interface.cpp:1263 +#: ../src/extension/internal/filter/color.h:819 #, fuzzy -msgid "Drop Symbol" -msgstr "Khmer (km)" +msgid "Greyscale" +msgstr "Scala di grigi" -#: ../src/interface.cpp:1294 -msgid "Drop bitmap image" -msgstr "Rilascia immagine bitmap" +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/paint.h:83 +#: ../src/extension/internal/filter/paint.h:239 +#, fuzzy +msgid "Transparent" +msgstr "0 (trasparente)" -#: ../src/interface.cpp:1386 -#, c-format -msgid "" -"A file named \"%s\" already exists. Do " -"you want to replace it?\n" -"\n" -"The file already exists in \"%s\". Replacing it will overwrite its contents." +#: ../src/extension/internal/filter/color.h:833 +msgid "Customize greyscale components" msgstr "" -"Esiste giĂ  un file di nome \"%s\". Lo " -"si vuole rimpiazzare?\n" -"\n" -"Il file esiste giĂ  in \"%s\". Rimpiazzandolo si sovrascriverĂ  il contenuto." - -#: ../src/interface.cpp:1392 ../src/ui/dialog/export.cpp:1302 -#: ../src/widgets/desktop-widget.cpp:1122 -#: ../src/widgets/desktop-widget.cpp:1184 -msgid "_Cancel" -msgstr "_Annulla" -#: ../src/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 -#: ../share/extensions/web-transmit-att.inx.h:19 -msgid "Replace" -msgstr "Rimpiazza" +#: ../src/extension/internal/filter/color.h:905 +#: ../src/ui/widget/selected-style.cpp:249 +msgid "Invert" +msgstr "Inverti" -#: ../src/interface.cpp:1464 -msgid "Go to parent" -msgstr "Livello superiore" +#: ../src/extension/internal/filter/color.h:907 +msgid "Invert channels:" +msgstr "Inverti canali:" -#. TRANSLATORS: #%1 is the id of the group e.g. , not a number. -#: ../src/interface.cpp:1505 -#, fuzzy -msgid "Enter group #%1" -msgstr "Modifica gruppo #%s" +#: ../src/extension/internal/filter/color.h:908 +msgid "No inversion" +msgstr "Nessuna inversione" -#. Item dialog -#: ../src/interface.cpp:1641 ../src/verbs.cpp:2849 -msgid "_Object Properties..." -msgstr "ProprietĂ  _oggetto..." +#: ../src/extension/internal/filter/color.h:909 +msgid "Red and blue" +msgstr "Rosso e blu" -#: ../src/interface.cpp:1650 -msgid "_Select This" -msgstr "_Seleziona questo" +#: ../src/extension/internal/filter/color.h:910 +msgid "Red and green" +msgstr "Rosso e verde" -#: ../src/interface.cpp:1661 -#, fuzzy -msgid "Select Same" -msgstr "Seleziona pagina:" +#: ../src/extension/internal/filter/color.h:911 +msgid "Green and blue" +msgstr "Verde e blu" -#. Select same fill and stroke -#: ../src/interface.cpp:1671 +#: ../src/extension/internal/filter/color.h:913 #, fuzzy -msgid "Fill and Stroke" -msgstr "_Riempimento e Contorni" +msgid "Light transparency" +msgstr "Trasparenza grezza" -#. Select same fill color -#: ../src/interface.cpp:1678 -#, fuzzy -msgid "Fill Color" -msgstr "Colore uniforme" +#: ../src/extension/internal/filter/color.h:914 +msgid "Invert hue" +msgstr "Inverti tonalitĂ " -#. Select same stroke color -#: ../src/interface.cpp:1685 +#: ../src/extension/internal/filter/color.h:915 #, fuzzy -msgid "Stroke Color" -msgstr "Imposta colore contorno" +msgid "Invert lightness" +msgstr "Negativo immagine" -#. Select same stroke style -#: ../src/interface.cpp:1692 +#: ../src/extension/internal/filter/color.h:916 #, fuzzy -msgid "Stroke Style" -msgstr "St_ile contorno" +msgid "Invert transparency" +msgstr "Sbavatura in trasparenza" -#. Select same stroke style -#: ../src/interface.cpp:1699 -#, fuzzy -msgid "Object type" -msgstr "Tipo oggetto" +#: ../src/extension/internal/filter/color.h:924 +msgid "Manage hue, lightness and transparency inversions" +msgstr "" -#. Move to layer -#: ../src/interface.cpp:1706 -#, fuzzy -msgid "_Move to layer ..." -msgstr "Abbassa livello" +#: ../src/extension/internal/filter/color.h:1042 +msgid "Lights" +msgstr "Luci" -#. Create link -#: ../src/interface.cpp:1716 -#, fuzzy -msgid "Create _Link" -msgstr "_Crea collegamento" +#: ../src/extension/internal/filter/color.h:1043 +msgid "Shadows" +msgstr "Ombre" -#. Set mask -#: ../src/interface.cpp:1739 -msgid "Set Mask" -msgstr "Imposta maschera" +#: ../src/extension/internal/filter/color.h:1044 +#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:32 +#: ../src/live_effects/effect.cpp:95 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 +#: ../src/widgets/gradient-toolbar.cpp:1156 +msgid "Offset" +msgstr "Proiezione" -#. Release mask -#: ../src/interface.cpp:1750 -msgid "Release Mask" -msgstr "Rimuovi maschera" +#: ../src/extension/internal/filter/color.h:1052 +msgid "Modify lights and shadows separately" +msgstr "" -#. Set Clip -#: ../src/interface.cpp:1761 -#, fuzzy -msgid "Set Cl_ip" -msgstr "Imposta fissaggio" +#: ../src/extension/internal/filter/color.h:1111 +msgid "Lightness-Contrast" +msgstr "LuminositĂ -Contrasto" -#. Release Clip -#: ../src/interface.cpp:1772 +#: ../src/extension/internal/filter/color.h:1122 #, fuzzy -msgid "Release C_lip" -msgstr "Rilascia fissaggio" - -#. Group -#: ../src/interface.cpp:1783 ../src/verbs.cpp:2486 -msgid "_Group" -msgstr "Ra_ggruppa" - -#: ../src/interface.cpp:1854 -msgid "Create link" -msgstr "Crea collegamento" +msgid "Modify lightness and contrast separately" +msgstr "Aumenta o diminuisce luminositĂ  e contrasto" -#. Ungroup -#: ../src/interface.cpp:1885 ../src/verbs.cpp:2488 -msgid "_Ungroup" -msgstr "_Dividi" +#: ../src/extension/internal/filter/color.h:1190 +msgid "Nudge RGB" +msgstr "" -#. Link dialog -#: ../src/interface.cpp:1910 +#: ../src/extension/internal/filter/color.h:1194 #, fuzzy -msgid "Link _Properties..." -msgstr "ProprietĂ  Collegamento" +msgid "Red offset" +msgstr "Spessore del motivo" -#. Select item -#: ../src/interface.cpp:1916 -msgid "_Follow Link" -msgstr "Segui Collegamento" +#: ../src/extension/internal/filter/color.h:1195 +#: ../src/extension/internal/filter/color.h:1198 +#: ../src/extension/internal/filter/color.h:1201 +#: ../src/extension/internal/filter/color.h:1307 +#: ../src/extension/internal/filter/color.h:1310 +#: ../src/extension/internal/filter/color.h:1313 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 +msgid "X" +msgstr "X" -#. Reset transformations -#: ../src/interface.cpp:1922 -msgid "_Remove Link" -msgstr "_Rimuovi collegamento" +#: ../src/extension/internal/filter/color.h:1196 +#: ../src/extension/internal/filter/color.h:1199 +#: ../src/extension/internal/filter/color.h:1202 +#: ../src/extension/internal/filter/color.h:1308 +#: ../src/extension/internal/filter/color.h:1311 +#: ../src/extension/internal/filter/color.h:1314 +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y" +msgstr "Y" -#: ../src/interface.cpp:1953 +#: ../src/extension/internal/filter/color.h:1197 #, fuzzy -msgid "Remove link" -msgstr "_Rimuovi collegamento" +msgid "Green offset" +msgstr "Spessore del motivo" -#. Image properties -#: ../src/interface.cpp:1964 +#: ../src/extension/internal/filter/color.h:1200 #, fuzzy -msgid "Image _Properties..." -msgstr "_ProprietĂ  Immagine" - -#. Edit externally -#: ../src/interface.cpp:1970 -msgid "Edit Externally..." -msgstr "Modifica con programma esterno..." +msgid "Blue offset" +msgstr "Valore da impostare" -#. Trace Bitmap -#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/interface.cpp:1979 ../src/verbs.cpp:2549 -msgid "_Trace Bitmap..." -msgstr "Ve_ttorizza bitmap..." +#: ../src/extension/internal/filter/color.h:1215 +msgid "" +"Nudge RGB channels separately and blend them to different types of " +"backgrounds" +msgstr "" -#. Trace Pixel Art -#: ../src/interface.cpp:1988 -msgid "Trace Pixel Art" +#: ../src/extension/internal/filter/color.h:1302 +msgid "Nudge CMY" msgstr "" -#: ../src/interface.cpp:1998 +#: ../src/extension/internal/filter/color.h:1306 #, fuzzy -msgctxt "Context menu" -msgid "Embed Image" -msgstr "Incorpora immagini" +msgid "Cyan offset" +msgstr "Spessore del motivo" -#: ../src/interface.cpp:2009 +#: ../src/extension/internal/filter/color.h:1309 #, fuzzy -msgctxt "Context menu" -msgid "Extract Image..." -msgstr "Estrai immagine" - -#. Item dialog -#. Fill and Stroke dialog -#: ../src/interface.cpp:2154 ../src/interface.cpp:2174 ../src/verbs.cpp:2812 -msgid "_Fill and Stroke..." -msgstr "Riem_pimento e contorni..." - -#. Edit Text dialog -#: ../src/interface.cpp:2180 ../src/verbs.cpp:2831 -msgid "_Text and Font..." -msgstr "_Testo e carattere..." +msgid "Magenta offset" +msgstr "Proiezione tangenziale" -#. Spellcheck dialog -#: ../src/interface.cpp:2186 ../src/verbs.cpp:2839 -msgid "Check Spellin_g..." -msgstr "Controlla orto_grafia..." +#: ../src/extension/internal/filter/color.h:1312 +#, fuzzy +msgid "Yellow offset" +msgstr "Spessore del motivo" -#: ../src/knot.cpp:332 -msgid "Node or handle drag canceled." -msgstr "Nodo o maniglia cancellato." +#: ../src/extension/internal/filter/color.h:1327 +msgid "" +"Nudge CMY channels separately and blend them to different types of " +"backgrounds" +msgstr "" -#: ../src/knotholder.cpp:158 -msgid "Change handle" -msgstr "Modifica maniglia" +#: ../src/extension/internal/filter/color.h:1408 +msgid "Quadritone fantasy" +msgstr "Fantasia in quattro torni" -#: ../src/knotholder.cpp:237 -msgid "Move handle" -msgstr "Muovi maniglia" +#: ../src/extension/internal/filter/color.h:1410 +#, fuzzy +msgid "Hue distribution (°)" +msgstr "Usa distribuzione normale" -#. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:256 ../src/knotholder.cpp:278 -msgid "Move the pattern fill inside the object" -msgstr "Muove il motivo di riempimento all'interno dell'oggetto" +#: ../src/extension/internal/filter/color.h:1411 +#: ../share/extensions/svgcalendar.inx.h:19 +msgid "Colors" +msgstr "Colori" -#: ../src/knotholder.cpp:260 ../src/knotholder.cpp:282 -msgid "Scale the pattern fill; uniformly if with Ctrl" -msgstr "" -"Ridimensiona il motivo di riempimento; in maniera uniforme con " -"Ctrl" +#: ../src/extension/internal/filter/color.h:1432 +msgid "Replace hue by two colors" +msgstr "Rimpiazza tonalitĂ  con due colori" -#: ../src/knotholder.cpp:264 ../src/knotholder.cpp:286 -msgid "Rotate the pattern fill; with Ctrl to snap angle" -msgstr "" -"Ruota il motivo di riempimento; con Ctrl per far scattare " -"l'angolo" +#: ../src/extension/internal/filter/color.h:1496 +#, fuzzy +msgid "Hue rotation (°)" +msgstr "Rotazione (gradi)" -#: ../src/libgdl/gdl-dock-bar.c:105 -msgid "Master" -msgstr "Principale" +#: ../src/extension/internal/filter/color.h:1499 +msgid "Moonarize" +msgstr "Lunare" -#: ../src/libgdl/gdl-dock-bar.c:106 -msgid "GdlDockMaster object which the dockbar widget is attached to" -msgstr "" -"Oggetto GdlDockMaster a cui è attaccato il widget della barra del pannello" +#: ../src/extension/internal/filter/color.h:1508 +#, fuzzy +msgid "Classic photographic solarization effect" +msgstr "Classico effetto fotografico" -#: ../src/libgdl/gdl-dock-bar.c:113 -msgid "Dockbar style" -msgstr "Stile barra dei pannelli" +#: ../src/extension/internal/filter/color.h:1581 +msgid "Tritone" +msgstr "Tre toni" -#: ../src/libgdl/gdl-dock-bar.c:114 -msgid "Dockbar style to show items on it" -msgstr "Stile della barra del pannello su cui mostrare gli oggetti" +#: ../src/extension/internal/filter/color.h:1587 +#, fuzzy +msgid "Enhance hue" +msgstr "Migliora" -#: ../src/libgdl/gdl-dock-item-grip.c:399 -msgid "Iconify this dock" -msgstr "Iconifica questo pannello" +#: ../src/extension/internal/filter/color.h:1588 +#, fuzzy +msgid "Phosphorescence" +msgstr "Presenza" -#: ../src/libgdl/gdl-dock-item-grip.c:401 -msgid "Close this dock" -msgstr "Chiude questo pannello" +#: ../src/extension/internal/filter/color.h:1589 +#, fuzzy +msgid "Colored nights" +msgstr "Ombra colorata" -#: ../src/libgdl/gdl-dock-item-grip.c:720 -#: ../src/libgdl/gdl-dock-tablabel.c:125 -msgid "Controlling dock item" -msgstr "Pannello atto al controllo" +#: ../src/extension/internal/filter/color.h:1590 +#, fuzzy +msgid "Hue to background" +msgstr "Rimuovi sfondo" -#: ../src/libgdl/gdl-dock-item-grip.c:721 -msgid "Dockitem which 'owns' this grip" -msgstr "Pannello a cui appartiene questa scheda" +#: ../src/extension/internal/filter/color.h:1592 +#, fuzzy +msgid "Global blend:" +msgstr "Piegatura globale" -#. Name -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 -#: ../src/widgets/text-toolbar.cpp:1416 -#: ../share/extensions/gcodetools_graffiti.inx.h:9 -#: ../share/extensions/gcodetools_orientation_points.inx.h:2 -msgid "Orientation" -msgstr "Orientamento" +#: ../src/extension/internal/filter/color.h:1598 +msgid "Glow" +msgstr "Alone" -#: ../src/libgdl/gdl-dock-item.c:299 -msgid "Orientation of the docking item" -msgstr "Orientazione dell'elemento del pannello" +#: ../src/extension/internal/filter/color.h:1599 +#, fuzzy +msgid "Glow blend:" +msgstr "Bolle con alone" -#: ../src/libgdl/gdl-dock-item.c:314 -msgid "Resizable" -msgstr "Ridimensionabile" +#: ../src/extension/internal/filter/color.h:1604 +#, fuzzy +msgid "Local light" +msgstr "Illuminazione speculare" -#: ../src/libgdl/gdl-dock-item.c:315 +#: ../src/extension/internal/filter/color.h:1605 #, fuzzy -msgid "If set, the dock item can be resized when docked in a GtkPanel widget" -msgstr "" -"Se attivo, l'elemento del pannello può essere ridimensionato quando " -"incorniciato in un pannello" +msgid "Global light" +msgstr "Piegatura globale" -#: ../src/libgdl/gdl-dock-item.c:322 -msgid "Item behavior" -msgstr "Comportamento oggetto" +#: ../src/extension/internal/filter/color.h:1608 +#, fuzzy +msgid "Hue distribution (°):" +msgstr "Usa distribuzione normale" -#: ../src/libgdl/gdl-dock-item.c:323 +#: ../src/extension/internal/filter/color.h:1619 msgid "" -"General behavior for the dock item (i.e. whether it can float, if it's " -"locked, etc.)" +"Create a custom tritone palette with additional glow, blend modes and hue " +"moving" msgstr "" -"Comportamento predefinito del pannello (se può fluttuare, è bloccato, etc...)" -#: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 -msgid "Locked" -msgstr "Bloccato" +#: ../src/extension/internal/filter/distort.h:67 +#, fuzzy +msgid "Felt Feather" +msgstr "Cuoio" -#: ../src/libgdl/gdl-dock-item.c:332 -msgid "" -"If set, the dock item cannot be dragged around and it doesn't show a grip" -msgstr "" -"Se attivo, il pannello non può essere trascinato e non mostra un'etichetta " -"di controllo" +#: ../src/extension/internal/filter/distort.h:71 +#: ../src/extension/internal/filter/morphology.h:175 +#: ../src/filter-enums.cpp:89 +msgid "Out" +msgstr "Out" -#: ../src/libgdl/gdl-dock-item.c:340 -msgid "Preferred width" -msgstr "Larghezza preferita" +#: ../src/extension/internal/filter/distort.h:77 +#: ../src/extension/internal/filter/textures.h:75 +#: ../src/ui/widget/selected-style.cpp:131 +#: ../src/ui/widget/style-swatch.cpp:128 +msgid "Stroke:" +msgstr "Contorno:" -#: ../src/libgdl/gdl-dock-item.c:341 -msgid "Preferred width for the dock item" -msgstr "Larghezza preferita per il pannello" +#: ../src/extension/internal/filter/distort.h:79 +#: ../src/extension/internal/filter/textures.h:76 +msgid "Wide" +msgstr "Larga" -#: ../src/libgdl/gdl-dock-item.c:347 -msgid "Preferred height" -msgstr "Altezza preferita" +#: ../src/extension/internal/filter/distort.h:80 +#: ../src/extension/internal/filter/textures.h:78 +#, fuzzy +msgid "Narrow" +msgstr "stretto" -#: ../src/libgdl/gdl-dock-item.c:348 -msgid "Preferred height for the dock item" -msgstr "Altezza preferita per il pannello" +#: ../src/extension/internal/filter/distort.h:81 +msgid "No fill" +msgstr "Nessun riempimento" -#: ../src/libgdl/gdl-dock-item.c:716 -#, c-format -msgid "" -"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " -"some other compound dock object." -msgstr "" -"Non è possibile aggiungere un pannello (%p di tipo %s) all'interno di %s. " -"Usare un GdlDock o altri oggetti per pannelli." +#: ../src/extension/internal/filter/distort.h:83 +#, fuzzy +msgid "Turbulence:" +msgstr "Turbolenza" -#: ../src/libgdl/gdl-dock-item.c:723 -#, c-format -msgid "" -"Attempting to add a widget with type %s to a %s, but it can only contain one " -"widget at a time; it already contains a widget of type %s" -msgstr "" -"Tentativo di aggiunta di un widget di tipo %s a un %s, che può contenere un " -"solo widget per volta, mentre contiene giĂ  un elemento di tipo %s" +#: ../src/extension/internal/filter/distort.h:84 +#: ../src/extension/internal/filter/distort.h:193 +#: ../src/extension/internal/filter/overlays.h:61 +#: ../src/extension/internal/filter/paint.h:692 +#, fuzzy +msgid "Fractal noise" +msgstr "Rumore frattale" + +#: ../src/extension/internal/filter/distort.h:85 +#: ../src/extension/internal/filter/distort.h:194 +#: ../src/extension/internal/filter/overlays.h:62 +#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:35 +#: ../src/filter-enums.cpp:144 +msgid "Turbulence" +msgstr "Turbolenza" -#: ../src/libgdl/gdl-dock-item.c:1471 ../src/libgdl/gdl-dock-item.c:1521 -#, c-format -msgid "Unsupported docking strategy %s in dock object of type %s" -msgstr "Strategia di riquadro %s non supportata per un pannello di tipo %s" +#: ../src/extension/internal/filter/distort.h:87 +#: ../src/extension/internal/filter/distort.h:196 +#: ../src/extension/internal/filter/paint.h:93 +#: ../src/extension/internal/filter/paint.h:695 +#, fuzzy +msgid "Horizontal frequency" +msgstr "Proiezione orizzontale" -#. UnLock menuitem -#: ../src/libgdl/gdl-dock-item.c:1629 -msgid "UnLock" -msgstr "Sblocca" +#: ../src/extension/internal/filter/distort.h:88 +#: ../src/extension/internal/filter/distort.h:197 +#: ../src/extension/internal/filter/paint.h:94 +#: ../src/extension/internal/filter/paint.h:696 +#, fuzzy +msgid "Vertical frequency" +msgstr "Frequenza tremore" -#. Hide menuitem. -#: ../src/libgdl/gdl-dock-item.c:1636 -msgid "Hide" -msgstr "Nascondi" +#: ../src/extension/internal/filter/distort.h:89 +#: ../src/extension/internal/filter/distort.h:198 +#: ../src/extension/internal/filter/paint.h:95 +#: ../src/extension/internal/filter/paint.h:697 +#, fuzzy +msgid "Complexity" +msgstr "ComplessitĂ  massima" -#. Lock menuitem -#: ../src/libgdl/gdl-dock-item.c:1641 -msgid "Lock" -msgstr "Blocca" +#: ../src/extension/internal/filter/distort.h:90 +#: ../src/extension/internal/filter/distort.h:199 +#: ../src/extension/internal/filter/paint.h:96 +#: ../src/extension/internal/filter/paint.h:698 +#, fuzzy +msgid "Variation" +msgstr "Saturazione" -#: ../src/libgdl/gdl-dock-item.c:1904 -#, c-format -msgid "Attempt to bind an unbound item %p" -msgstr "Tentativo di aggancio di un oggetto libero %p" +#: ../src/extension/internal/filter/distort.h:91 +#: ../src/extension/internal/filter/distort.h:200 +#, fuzzy +msgid "Intensity" +msgstr "Intersezione" -#: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 -msgid "Default title" -msgstr "Titolo predefinito" +#: ../src/extension/internal/filter/distort.h:99 +#, fuzzy +msgid "Blur and displace edges of shapes and pictures" +msgstr "" +"Proietta un alone colorabile dei bordi all'interno di oggetti e immagini" -#: ../src/libgdl/gdl-dock-master.c:142 -msgid "Default title for newly created floating docks" -msgstr "Titolo predefinito per i nuovi pannelli fluttuanti" +#: ../src/extension/internal/filter/distort.h:190 +msgid "Roughen" +msgstr "Increspato" -#: ../src/libgdl/gdl-dock-master.c:149 -msgid "" -"If is set to 1, all the dock items bound to the master are locked; if it's " -"0, all are unlocked; -1 indicates inconsistency among the items" -msgstr "" -"Se impostato a 1, tutti i pannelli legati al master sono bloccati; se è 0, " -"sono tutti sbloccati; -1 indica inconsistenza tra gli oggetti" +#: ../src/extension/internal/filter/distort.h:192 +#: ../src/extension/internal/filter/overlays.h:60 +#: ../src/extension/internal/filter/paint.h:691 +#: ../src/extension/internal/filter/textures.h:64 +#, fuzzy +msgid "Turbulence type:" +msgstr "Turbolenza" -#: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 -msgid "Switcher Style" -msgstr "Stile campioni" +#: ../src/extension/internal/filter/distort.h:208 +msgid "Small-scale roughening to edges and content" +msgstr "Piccole increspature sui bordi e all'interno" -#: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 -msgid "Switcher buttons style" -msgstr "Stile dei bottoni di scambio" +#: ../src/extension/internal/filter/filter-file.cpp:34 +msgid "Bundled" +msgstr "Incluso" -#: ../src/libgdl/gdl-dock-master.c:783 -#, c-format -msgid "" -"master %p: unable to add object %p[%s] to the hash. There already is an " -"item with that name (%p)." -msgstr "" -"master %p: impossibile aggiungere l'oggetto %p[%s] alla serie. Esiste giĂ  un " -"oggetto con quel nome (%p)." +#: ../src/extension/internal/filter/filter-file.cpp:35 +msgid "Personal" +msgstr "Personale" -#: ../src/libgdl/gdl-dock-master.c:955 -#, c-format -msgid "" -"The new dock controller %p is automatic. Only manual dock objects should be " -"named controller." +#: ../src/extension/internal/filter/filter-file.cpp:47 +msgid "Null external module directory name. Filters will not be loaded." msgstr "" -"Il nuovo pannello controllore %p è automatico. Andrebbero impostati " -"controllori sono pannelli manuali." +"Nome per la cartella dei moduli esterni non valido. I moduli non verranno " +"caricati." -#: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1003 -#: ../src/ui/dialog/document-properties.cpp:153 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1497 -#: ../src/widgets/desktop-widget.cpp:1992 -#: ../share/extensions/voronoi2svg.inx.h:9 -msgid "Page" -msgstr "Pagina" +#: ../src/extension/internal/filter/image.h:49 +#, fuzzy +msgid "Edge Detect" +msgstr "Rilevamento bordi" -#: ../src/libgdl/gdl-dock-notebook.c:133 -msgid "The index of the current page" -msgstr "L'indice della pagina attuale" +#: ../src/extension/internal/filter/image.h:51 +msgid "Detect:" +msgstr "" -#: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/ui/dialog/inkscape-preferences.cpp:1502 -#: ../src/ui/widget/page-sizer.cpp:258 -#: ../src/widgets/gradient-selector.cpp:158 -#: ../src/widgets/sp-xmlview-attr-list.cpp:54 -msgid "Name" -msgstr "Nome" +#: ../src/extension/internal/filter/image.h:52 +#: ../src/ui/dialog/template-load-tab.cpp:105 +#: ../src/ui/dialog/template-load-tab.cpp:142 +msgid "All" +msgstr "Tutti" -#: ../src/libgdl/gdl-dock-object.c:126 -msgid "Unique name for identifying the dock object" -msgstr "Nome unico per identificare il pannello" +#: ../src/extension/internal/filter/image.h:53 +#, fuzzy +msgid "Vertical lines" +msgstr "Raggio verticale" -#: ../src/libgdl/gdl-dock-object.c:133 -msgid "Long name" -msgstr "Nome esteso" +#: ../src/extension/internal/filter/image.h:54 +#, fuzzy +msgid "Horizontal lines" +msgstr "Raggio orizzontale" -#: ../src/libgdl/gdl-dock-object.c:134 -msgid "Human readable name for the dock object" -msgstr "Nome descrittivo del pannello" +#: ../src/extension/internal/filter/image.h:57 +msgid "Invert colors" +msgstr "Inverti colori" -#: ../src/libgdl/gdl-dock-object.c:140 -msgid "Stock Icon" -msgstr "Icona stock" +#: ../src/extension/internal/filter/image.h:65 +msgid "Detect color edges in object" +msgstr "Rileva bordi colorati nell'oggetto" -#: ../src/libgdl/gdl-dock-object.c:141 -msgid "Stock icon for the dock object" -msgstr "Icona stock per il pannello" +#: ../src/extension/internal/filter/morphology.h:58 +msgid "Cross-smooth" +msgstr "Intersezioni dolci" -#: ../src/libgdl/gdl-dock-object.c:147 -msgid "Pixbuf Icon" -msgstr "Icona pixbuf" +#: ../src/extension/internal/filter/morphology.h:61 +#: ../src/extension/internal/filter/shadows.h:66 +#, fuzzy +msgid "Inner" +msgstr "Alone interno" -#: ../src/libgdl/gdl-dock-object.c:148 -msgid "Pixbuf icon for the dock object" -msgstr "Icona pixbuf per il pannello" +#: ../src/extension/internal/filter/morphology.h:62 +#: ../src/extension/internal/filter/shadows.h:65 +msgid "Outer" +msgstr "" -#: ../src/libgdl/gdl-dock-object.c:153 -msgid "Dock master" -msgstr "Pannello master" +#: ../src/extension/internal/filter/morphology.h:63 +#, fuzzy +msgid "Open" +msgstr "_Apri..." -#: ../src/libgdl/gdl-dock-object.c:154 -msgid "Dock master this dock object is bound to" -msgstr "Pannello master a cui questo pannello è legato" +#: ../src/extension/internal/filter/morphology.h:65 +#: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 +#: ../src/widgets/rect-toolbar.cpp:314 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/interp_att_g.inx.h:10 +msgid "Width" +msgstr "Larghezza" -#: ../src/libgdl/gdl-dock-object.c:463 -#, c-format -msgid "" -"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " -"hasn't implemented this method" -msgstr "" -"Chiamata a gdl_dock_object_dock in un pannello %p (del tipo %s) per cui " -"questo metodo non è implementato" +#: ../src/extension/internal/filter/morphology.h:69 +#: ../src/extension/internal/filter/morphology.h:190 +#, fuzzy +msgid "Antialiasing" +msgstr "Antialias" -#: ../src/libgdl/gdl-dock-object.c:602 -#, c-format -msgid "" -"Dock operation requested in a non-bound object %p. The application might " -"crash" +#: ../src/extension/internal/filter/morphology.h:70 +msgid "Blur content" +msgstr "Sfocatura contenuto" + +#: ../src/extension/internal/filter/morphology.h:79 +msgid "Smooth edges and angles of shapes" msgstr "" -"Operazione di aggancio richiesta per un oggetto libero %p. L'applicazione " -"potrebbe andare in crash" -#: ../src/libgdl/gdl-dock-object.c:609 -#, c-format -msgid "Cannot dock %p to %p because they belong to different masters" -msgstr "Impossibile agganciare %p a %p perchĂ© appartengono a master diversi" +#: ../src/extension/internal/filter/morphology.h:166 +msgid "Outline" +msgstr "Scheletro" -#: ../src/libgdl/gdl-dock-object.c:651 -#, c-format -msgid "" -"Attempt to bind to %p an already bound dock object %p (current master: %p)" -msgstr "" -"Tentativo di agganciare a %p un pannello %p giĂ  collegato (master attuale: " -"%p)" +#: ../src/extension/internal/filter/morphology.h:170 +#, fuzzy +msgid "Fill image" +msgstr "Tutte le immagini" -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 -msgid "Position" -msgstr "Posizione" +#: ../src/extension/internal/filter/morphology.h:171 +#, fuzzy +msgid "Hide image" +msgstr "Nascondi livello" -#: ../src/libgdl/gdl-dock-paned.c:131 -msgid "Position of the divider in pixels" -msgstr "Posizione del divisore in pixel" +#: ../src/extension/internal/filter/morphology.h:172 +#, fuzzy +msgid "Composite type:" +msgstr "Composto" -#: ../src/libgdl/gdl-dock-placeholder.c:141 -msgid "Sticky" -msgstr "Fissato" +#: ../src/extension/internal/filter/morphology.h:173 +#: ../src/filter-enums.cpp:87 +msgid "Over" +msgstr "Sovrapposizione" -#: ../src/libgdl/gdl-dock-placeholder.c:142 -msgid "" -"Whether the placeholder will stick to its host or move up the hierarchy when " -"the host is redocked" -msgstr "" -"Determina se il segnaposto resterĂ  legato al suo ospitante o scalerĂ  la " -"gerarchia quando l'ospitante viene riagganciato" +#: ../src/extension/internal/filter/morphology.h:177 +#: ../src/filter-enums.cpp:91 +msgid "XOR" +msgstr "XOR" -#: ../src/libgdl/gdl-dock-placeholder.c:149 -msgid "Host" -msgstr "Ospitante" +#: ../src/extension/internal/filter/morphology.h:179 +#: ../src/ui/dialog/layer-properties.cpp:185 +msgid "Position:" +msgstr "Posizione:" -#: ../src/libgdl/gdl-dock-placeholder.c:150 -msgid "The dock object this placeholder is attached to" -msgstr "Il pannello a cui questo segnaposto è agganciato" +#: ../src/extension/internal/filter/morphology.h:180 +#, fuzzy +msgid "Inside" +msgstr "lato superiore" -#: ../src/libgdl/gdl-dock-placeholder.c:157 -msgid "Next placement" -msgstr "Prossima posizione" +#: ../src/extension/internal/filter/morphology.h:181 +#, fuzzy +msgid "Outside" +msgstr "_Estrudi" -#: ../src/libgdl/gdl-dock-placeholder.c:158 -msgid "" -"The position an item will be docked to our host if a request is made to dock " -"to us" -msgstr "" -"La posizione in cui un oggetto verrĂ  agganciato all'ospitante attuale se " -"questo elemento riceverĂ  una richiesta di aggancio" +#: ../src/extension/internal/filter/morphology.h:182 +#, fuzzy +msgid "Overlayed" +msgstr "Sovrapposizione" -#: ../src/libgdl/gdl-dock-placeholder.c:168 -msgid "Width for the widget when it's attached to the placeholder" -msgstr "Larghezza del widget quando è attaccato ad un segnaposto" +#: ../src/extension/internal/filter/morphology.h:184 +#, fuzzy +msgid "Width 1" +msgstr "Larghezza:" -#: ../src/libgdl/gdl-dock-placeholder.c:176 -msgid "Height for the widget when it's attached to the placeholder" -msgstr "Altezza del widget quando è attaccato ad un segnaposto" +#: ../src/extension/internal/filter/morphology.h:185 +#, fuzzy +msgid "Dilatation 1" +msgstr "Saturazione" -#: ../src/libgdl/gdl-dock-placeholder.c:182 -msgid "Floating Toplevel" -msgstr "Livello principale fluttuante" +#: ../src/extension/internal/filter/morphology.h:186 +#, fuzzy +msgid "Erosion 1" +msgstr "Posizione:" -#: ../src/libgdl/gdl-dock-placeholder.c:183 -msgid "Whether the placeholder is standing in for a floating toplevel dock" -msgstr "" -"Determina se il segnaposto rimane per un pannello fluttuante di primo livello" +#: ../src/extension/internal/filter/morphology.h:187 +#, fuzzy +msgid "Width 2" +msgstr "Larghezza:" -#: ../src/libgdl/gdl-dock-placeholder.c:189 +#: ../src/extension/internal/filter/morphology.h:188 #, fuzzy -msgid "X Coordinate" -msgstr "Coordinata X" +msgid "Dilatation 2" +msgstr "Saturazione" -#: ../src/libgdl/gdl-dock-placeholder.c:190 +#: ../src/extension/internal/filter/morphology.h:189 #, fuzzy -msgid "X coordinate for dock when floating" -msgstr "Coordinata X del pannello quando fluttuante" +msgid "Erosion 2" +msgstr "Posizione:" -#: ../src/libgdl/gdl-dock-placeholder.c:196 +#: ../src/extension/internal/filter/morphology.h:191 +msgid "Smooth" +msgstr "UniformitĂ " + +#: ../src/extension/internal/filter/morphology.h:195 #, fuzzy -msgid "Y Coordinate" -msgstr "Coordinata Y" +msgid "Fill opacity:" +msgstr "OpacitĂ  riempimento, %" -#: ../src/libgdl/gdl-dock-placeholder.c:197 +#: ../src/extension/internal/filter/morphology.h:196 #, fuzzy -msgid "Y coordinate for dock when floating" -msgstr "Coordinata X del pannello quando fluttuante" +msgid "Stroke opacity:" +msgstr "OpacitĂ  contorno, %" -#: ../src/libgdl/gdl-dock-placeholder.c:499 -msgid "Attempt to dock a dock object to an unbound placeholder" -msgstr "Tentativo di aggancio di un pannello ad un segnaposto non fisso" +#: ../src/extension/internal/filter/morphology.h:206 +#, fuzzy +msgid "Adds a colorizable outline" +msgstr "Proietta un alone interno colorabile" -#: ../src/libgdl/gdl-dock-placeholder.c:611 -#, c-format -msgid "Got a detach signal from an object (%p) who is not our host %p" -msgstr "" -"Ricevuto un segnale di distacco da un oggetto (%p) diverso dall'ospitante " -"attuale %p" +#: ../src/extension/internal/filter/overlays.h:56 +#, fuzzy +msgid "Noise Fill" +msgstr "Riempimento rumoroso" -#: ../src/libgdl/gdl-dock-placeholder.c:636 -#, c-format -msgid "" -"Something weird happened while getting the child placement for %p from " -"parent %p" -msgstr "" -"Ă successo qualcosa di strano durante la richiesta della posizione di %p " -"all'elemento padre %p" +#: ../src/extension/internal/filter/overlays.h:59 +#: ../src/extension/internal/filter/paint.h:690 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 +#: ../src/ui/dialog/tracedialog.cpp:747 +#: ../share/extensions/color_HSL_adjust.inx.h:2 +#: ../share/extensions/color_custom.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:2 +#: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 +#: ../share/extensions/dxf_outlines.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:29 +#: ../share/extensions/gcodetools_engraving.inx.h:7 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:22 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/generate_voronoi.inx.h:2 +#: ../share/extensions/gimp_xcf.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:2 +#: ../share/extensions/jessyInk_uninstall.inx.h:2 +#: ../share/extensions/lorem_ipsum.inx.h:2 +#: ../share/extensions/pathalongpath.inx.h:2 +#: ../share/extensions/pathscatter.inx.h:2 +#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 +#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 +#: ../share/extensions/web-set-att.inx.h:2 +#: ../share/extensions/web-transmit-att.inx.h:2 +#: ../share/extensions/webslicer_create_group.inx.h:2 +#: ../share/extensions/webslicer_export.inx.h:2 +msgid "Options" +msgstr "Opzioni" -#: ../src/libgdl/gdl-dock-tablabel.c:126 -msgid "Dockitem which 'owns' this tablabel" -msgstr "Elemento del pannello a cui appartiene questa scheda" +#: ../src/extension/internal/filter/overlays.h:64 +#, fuzzy +msgid "Horizontal frequency:" +msgstr "Proiezione orizzontale" -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:633 -#: ../src/ui/dialog/inkscape-preferences.cpp:676 -msgid "Floating" -msgstr "Fluttuante" +#: ../src/extension/internal/filter/overlays.h:65 +#, fuzzy +msgid "Vertical frequency:" +msgstr "Frequenza tremore" -#: ../src/libgdl/gdl-dock.c:177 -msgid "Whether the dock is floating in its own window" -msgstr "Determina se il pannello è fluttuante con una propria finestra" +#: ../src/extension/internal/filter/overlays.h:66 +#: ../src/extension/internal/filter/textures.h:69 +#, fuzzy +msgid "Complexity:" +msgstr "ComplessitĂ  massima" -#: ../src/libgdl/gdl-dock.c:185 -msgid "Default title for the newly created floating docks" -msgstr "Titolo predefinito per i nuovi pannelli fluttuanti" +#: ../src/extension/internal/filter/overlays.h:67 +#: ../src/extension/internal/filter/textures.h:70 +#, fuzzy +msgid "Variation:" +msgstr "Saturazione" -#: ../src/libgdl/gdl-dock.c:192 -msgid "Width for the dock when it's of floating type" -msgstr "Larghezza del pannello quando fluttuante" +#: ../src/extension/internal/filter/overlays.h:68 +#, fuzzy +msgid "Dilatation:" +msgstr "Saturazione" -#: ../src/libgdl/gdl-dock.c:200 -msgid "Height for the dock when it's of floating type" -msgstr "Altezza del pannello quando fluttuante" +#: ../src/extension/internal/filter/overlays.h:69 +#, fuzzy +msgid "Erosion:" +msgstr "Posizione:" -#: ../src/libgdl/gdl-dock.c:207 -msgid "Float X" -msgstr "X fluttuante" +#: ../src/extension/internal/filter/overlays.h:72 +#, fuzzy +msgid "Noise color" +msgstr "Colore anno" -#: ../src/libgdl/gdl-dock.c:208 -msgid "X coordinate for a floating dock" -msgstr "Coordinata X per un pannello fluttuante" +#: ../src/extension/internal/filter/overlays.h:83 +#, fuzzy +msgid "Basic noise fill and transparency texture" +msgstr "Texture semplice con disturbo in trasparenza" -#: ../src/libgdl/gdl-dock.c:215 -msgid "Float Y" -msgstr "Y fluttuante" +#: ../src/extension/internal/filter/paint.h:71 +msgid "Chromolitho" +msgstr "" -#: ../src/libgdl/gdl-dock.c:216 -msgid "Y coordinate for a floating dock" -msgstr "Coordinata Y per un pannello fluttuante" +#: ../src/extension/internal/filter/paint.h:75 +#: ../share/extensions/jessyInk_keyBindings.inx.h:16 +#, fuzzy +msgid "Drawing mode" +msgstr "Disegno" -#: ../src/libgdl/gdl-dock.c:476 -#, c-format -msgid "Dock #%d" -msgstr "Pannello %d" +#: ../src/extension/internal/filter/paint.h:76 +#, fuzzy +msgid "Drawing blend:" +msgstr "Disegno cancellato" -#: ../src/libnrtype/FontFactory.cpp:767 -msgid "Ignoring font without family that will crash Pango" -msgstr "I font senza famiglia che fanno andare in crash Pango vengono ignorati" +#: ../src/extension/internal/filter/paint.h:84 +#, fuzzy +msgid "Dented" +msgstr "centro" -#: ../src/live_effects/effect.cpp:84 -msgid "doEffect stack test" -msgstr "test stack doEffect" +#: ../src/extension/internal/filter/paint.h:88 +#: ../src/extension/internal/filter/paint.h:699 +#, fuzzy +msgid "Noise reduction" +msgstr "Descrizione" -#: ../src/live_effects/effect.cpp:85 -msgid "Angle bisector" -msgstr "Bisettrice angolo" +#: ../src/extension/internal/filter/paint.h:91 +#, fuzzy +msgid "Grain" +msgstr "Disegno" -#. TRANSLATORS: boolean operations -#: ../src/live_effects/effect.cpp:87 -msgid "Boolops" -msgstr "Operazione booleana" +#: ../src/extension/internal/filter/paint.h:92 +#, fuzzy +msgid "Grain mode" +msgstr "Disegno" -#: ../src/live_effects/effect.cpp:88 -msgid "Circle (by center and radius)" -msgstr "Cerchio (tramite centro e raggio)" +#: ../src/extension/internal/filter/paint.h:97 +#: ../src/extension/internal/filter/transparency.h:207 +#: ../src/extension/internal/filter/transparency.h:281 +#, fuzzy +msgid "Expansion" +msgstr "Estensione \"" -#: ../src/live_effects/effect.cpp:89 -msgid "Circle by 3 points" -msgstr "Cerchio da 3 punti" +#: ../src/extension/internal/filter/paint.h:100 +msgid "Grain blend:" +msgstr "" -#: ../src/live_effects/effect.cpp:90 -msgid "Dynamic stroke" -msgstr "Contorno dinamico" +#: ../src/extension/internal/filter/paint.h:116 +msgid "Chromo effect with customizable edge drawing and graininess" +msgstr "" -#: ../src/live_effects/effect.cpp:91 ../share/extensions/extrude.inx.h:1 -msgid "Extrude" -msgstr "Estrudi" +#: ../src/extension/internal/filter/paint.h:232 +#, fuzzy +msgid "Cross Engraving" +msgstr "Incisione in trasparenza" -#: ../src/live_effects/effect.cpp:92 -msgid "Lattice Deformation" -msgstr "Deformazione reticolare" +#: ../src/extension/internal/filter/paint.h:234 +#: ../src/extension/internal/filter/paint.h:337 +msgid "Clean-up" +msgstr "" -#: ../src/live_effects/effect.cpp:93 -msgid "Line Segment" -msgstr "Segmento" +#: ../src/extension/internal/filter/paint.h:238 +#: ../share/extensions/measure.inx.h:11 +msgid "Length" +msgstr "Lunghezza" -#: ../src/live_effects/effect.cpp:94 -msgid "Mirror symmetry" -msgstr "Simmetria speculare" +#: ../src/extension/internal/filter/paint.h:247 +msgid "Convert image to an engraving made of vertical and horizontal lines" +msgstr "" -#: ../src/live_effects/effect.cpp:96 -msgid "Parallel" -msgstr "Parallelo" +#: ../src/extension/internal/filter/paint.h:331 +#: ../src/ui/dialog/align-and-distribute.cpp:1004 +#: ../src/widgets/desktop-widget.cpp:1996 +msgid "Drawing" +msgstr "Disegno" -#: ../src/live_effects/effect.cpp:97 -msgid "Path length" -msgstr "Lunghezza tracciato" +#: ../src/extension/internal/filter/paint.h:335 +#: ../src/extension/internal/filter/paint.h:496 +#: ../src/extension/internal/filter/paint.h:590 +#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2212 +msgid "Simplify" +msgstr "Semplifica" -#: ../src/live_effects/effect.cpp:98 -msgid "Perpendicular bisector" -msgstr "Bisettrice perpendicolare" +#: ../src/extension/internal/filter/paint.h:338 +#: ../src/extension/internal/filter/paint.h:709 +#, fuzzy +msgid "Erase" +msgstr "Gomma" -#: ../src/live_effects/effect.cpp:99 -msgid "Perspective path" -msgstr "Tracciato in prospettiva" +#: ../src/extension/internal/filter/paint.h:344 +msgid "Melt" +msgstr "" -#: ../src/live_effects/effect.cpp:100 -msgid "Rotate copies" -msgstr "Ruota copie" +#: ../src/extension/internal/filter/paint.h:350 +#: ../src/extension/internal/filter/paint.h:712 +#, fuzzy +msgid "Fill color" +msgstr "Colore uniforme" -#: ../src/live_effects/effect.cpp:101 -msgid "Recursive skeleton" -msgstr "Scheletro ricorsivo" +#: ../src/extension/internal/filter/paint.h:351 +#: ../src/extension/internal/filter/paint.h:714 +#, fuzzy +msgid "Image on fill" +msgstr "File immagine" -#: ../src/live_effects/effect.cpp:102 -msgid "Tangent to curve" -msgstr "Tangente alla curva" +#: ../src/extension/internal/filter/paint.h:354 +#, fuzzy +msgid "Stroke color" +msgstr "Imposta colore contorno" -#: ../src/live_effects/effect.cpp:103 -msgid "Text label" -msgstr "Etichetta testuale" +#: ../src/extension/internal/filter/paint.h:355 +#, fuzzy +msgid "Image on stroke" +msgstr "Motivo del contorno" -#. 0.46 -#: ../src/live_effects/effect.cpp:106 -msgid "Bend" -msgstr "Piegatura" +#: ../src/extension/internal/filter/paint.h:366 +#, fuzzy +msgid "Convert images to duochrome drawings" +msgstr "Adatta la pagina al disegno" -#: ../src/live_effects/effect.cpp:107 -msgid "Gears" -msgstr "Ingranaggi" +#: ../src/extension/internal/filter/paint.h:494 +msgid "Electrize" +msgstr "" -#: ../src/live_effects/effect.cpp:108 -msgid "Pattern Along Path" -msgstr "Motivo lungo tracciato" +#: ../src/extension/internal/filter/paint.h:497 +#: ../src/extension/internal/filter/paint.h:852 +#, fuzzy +msgid "Effect type:" +msgstr "Lista effetti" -#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:109 -msgid "Stitch Sub-Paths" -msgstr "Cucitura sotto-tracciati" +#: ../src/extension/internal/filter/paint.h:501 +#: ../src/extension/internal/filter/paint.h:860 +#: ../src/extension/internal/filter/paint.h:975 +#, fuzzy +msgid "Levels" +msgstr "Livello" -#. 0.47 -#: ../src/live_effects/effect.cpp:111 -msgid "VonKoch" -msgstr "VonKoch" +#: ../src/extension/internal/filter/paint.h:510 +#, fuzzy +msgid "Electro solarization effects" +msgstr "Classico effetto fotografico" -#: ../src/live_effects/effect.cpp:112 -msgid "Knot" -msgstr "Nodo" +#: ../src/extension/internal/filter/paint.h:584 +#, fuzzy +msgid "Neon Draw" +msgstr "Neon" -#: ../src/live_effects/effect.cpp:113 -msgid "Construct grid" -msgstr "Costruzione griglia" +#: ../src/extension/internal/filter/paint.h:586 +#, fuzzy +msgid "Line type:" +msgstr " tipo: " -#: ../src/live_effects/effect.cpp:114 -msgid "Spiro spline" -msgstr "Spline Spiro" +#: ../src/extension/internal/filter/paint.h:587 +#, fuzzy +msgid "Smoothed" +msgstr "UniformitĂ " -#: ../src/live_effects/effect.cpp:115 -msgid "Envelope Deformation" -msgstr "Deformazione a busta" +#: ../src/extension/internal/filter/paint.h:588 +#, fuzzy +msgid "Contrasted" +msgstr "Contrasto" -#: ../src/live_effects/effect.cpp:116 -msgid "Interpolate Sub-Paths" -msgstr "Interpola sotto-tracciati" +#: ../src/extension/internal/filter/paint.h:591 +#, fuzzy +msgid "Line width" +msgstr "Larghezza linea" -#: ../src/live_effects/effect.cpp:117 -msgid "Hatches (rough)" -msgstr "Scarabocchi (grezzo)" +#: ../src/extension/internal/filter/paint.h:593 +#: ../src/extension/internal/filter/paint.h:861 +#: ../src/ui/widget/filter-effect-chooser.cpp:25 +#, fuzzy +msgid "Blend mode:" +msgstr "ModalitĂ  mi_scela:" -#: ../src/live_effects/effect.cpp:118 -msgid "Sketch" -msgstr "Bozzetto" +#: ../src/extension/internal/filter/paint.h:605 +msgid "Posterize and draw smooth lines around color shapes" +msgstr "" -#: ../src/live_effects/effect.cpp:119 -msgid "Ruler" -msgstr "Righello" +#: ../src/extension/internal/filter/paint.h:687 +#, fuzzy +msgid "Point Engraving" +msgstr "Incisione in trasparenza" -#. 0.49 -#: ../src/live_effects/effect.cpp:121 +#: ../src/extension/internal/filter/paint.h:700 #, fuzzy -msgid "Power stroke" -msgstr "Motivo del contorno" +msgid "Noise blend:" +msgstr "Bolle con alone" -#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2835 +#: ../src/extension/internal/filter/paint.h:708 #, fuzzy -msgid "Clone original path" -msgstr "Sostituisci testo" +msgid "Grain lightness" +msgstr "LuminositĂ " -#: ../src/live_effects/effect.cpp:284 -msgid "Is visible?" -msgstr "Visibile?" +#: ../src/extension/internal/filter/paint.h:716 +#, fuzzy +msgid "Points color" +msgstr "Colore del mese" -#: ../src/live_effects/effect.cpp:284 -msgid "" -"If unchecked, the effect remains applied to the object but is temporarily " -"disabled on canvas" -msgstr "" -"Se non selezionato, l'effetto rimane applicato all'oggetto ma è " -"temporaneamente disabilitato sulla tela" +#: ../src/extension/internal/filter/paint.h:718 +#, fuzzy +msgid "Image on points" +msgstr "File immagine" -#: ../src/live_effects/effect.cpp:305 -msgid "No effect" -msgstr "Nessun effetto" +#: ../src/extension/internal/filter/paint.h:728 +#, fuzzy +msgid "Convert image to a transparent point engraving" +msgstr "Converte in un negativo o positivo trasparente colorabile" -#: ../src/live_effects/effect.cpp:352 -#, c-format -msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" -msgstr "Specificare un tracciato parametro per l'effetto «%s» con %d clic" +#: ../src/extension/internal/filter/paint.h:850 +#, fuzzy +msgid "Poster Paint" +msgstr "Costante:" -#: ../src/live_effects/effect.cpp:624 -#, c-format -msgid "Editing parameter %s." -msgstr "Modifica del parametro %s." +#: ../src/extension/internal/filter/paint.h:856 +#, fuzzy +msgid "Transfer type:" +msgstr "Tipo operazione booleana" -#: ../src/live_effects/effect.cpp:629 -msgid "None of the applied path effect's parameters can be edited on-canvas." -msgstr "" -"Nessuno dei parametri dell'effetto su tracciato applicato può essere " -"modificato direttamente sulla tela." +#: ../src/extension/internal/filter/paint.h:857 +#, fuzzy +msgid "Poster" +msgstr "Gesso" -#: ../src/live_effects/lpe-bendpath.cpp:53 +#: ../src/extension/internal/filter/paint.h:858 #, fuzzy -msgid "Bend path:" -msgstr "Tracciato di piega" +msgid "Painting" +msgstr "Pittura ad olio" -#: ../src/live_effects/lpe-bendpath.cpp:53 -msgid "Path along which to bend the original path" -msgstr "Tracciato secondo il quale piegare il tracciato originale" +#: ../src/extension/internal/filter/paint.h:868 +#, fuzzy +msgid "Simplify (primary)" +msgstr "Semplificazione tracciati:" -#: ../src/live_effects/lpe-bendpath.cpp:54 -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/transformation.cpp:80 -#: ../src/ui/widget/page-sizer.cpp:236 -msgid "_Width:" -msgstr "_Larghezza:" +#: ../src/extension/internal/filter/paint.h:869 +#, fuzzy +msgid "Simplify (secondary)" +msgstr "Semplifica" -#: ../src/live_effects/lpe-bendpath.cpp:54 -msgid "Width of the path" -msgstr "Larghezza del tracciato" +#: ../src/extension/internal/filter/paint.h:870 +#, fuzzy +msgid "Pre-saturation" +msgstr "Saturazione" -#: ../src/live_effects/lpe-bendpath.cpp:55 +#: ../src/extension/internal/filter/paint.h:871 #, fuzzy -msgid "W_idth in units of length" -msgstr "Larghezza in unitĂ  di lunghezza" +msgid "Post-saturation" +msgstr "Saturazione" -#: ../src/live_effects/lpe-bendpath.cpp:55 -msgid "Scale the width of the path in units of its length" -msgstr "Ridimensiona la larghezza del motivo in unitĂ  della sua lunghezza" +#: ../src/extension/internal/filter/paint.h:872 +#, fuzzy +msgid "Simulate antialiasing" +msgstr "Simula lo stile dei dipinti ad olio" -#: ../src/live_effects/lpe-bendpath.cpp:56 +#: ../src/extension/internal/filter/paint.h:880 #, fuzzy -msgid "_Original path is vertical" -msgstr "Tracciato verticale" +msgid "Poster and painting effects" +msgstr "Incolla effetto su tracciato" -#: ../src/live_effects/lpe-bendpath.cpp:56 -msgid "Rotates the original 90 degrees, before bending it along the bend path" +#: ../src/extension/internal/filter/paint.h:973 +msgid "Posterize Basic" msgstr "" -"Ruota l'originale di 90 gradi, prima di piegarlo lungo il tracciato di " -"piegatura" -#: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/extension/internal/filter/paint.h:984 +msgid "Simple posterizing effect" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:48 +msgid "Snow crest" +msgstr "Cresta innevata" + +#: ../src/extension/internal/filter/protrusions.h:50 #, fuzzy -msgid "Linked path:" -msgstr "Lega al tracciato" +msgid "Drift Size" +msgstr "Dimensione cumuli" -#: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/extension/internal/filter/protrusions.h:58 +msgid "Snow has fallen on object" +msgstr "La neve s'è posata sull'oggetto" + +#: ../src/extension/internal/filter/shadows.h:57 +msgid "Drop Shadow" +msgstr "Proietta ombra" + +#: ../src/extension/internal/filter/shadows.h:61 #, fuzzy -msgid "Path from which to take the original path data" -msgstr "Tracciato secondo il quale piegare il tracciato originale" +msgid "Blur radius (px)" +msgstr "Raggio sfocatura, px" -#: ../src/live_effects/lpe-constructgrid.cpp:27 +#: ../src/extension/internal/filter/shadows.h:62 #, fuzzy -msgid "Size _X:" -msgstr "Dimensione X" +msgid "Horizontal offset (px)" +msgstr "Proiezione orizzontale, px" -#: ../src/live_effects/lpe-constructgrid.cpp:27 -msgid "The size of the grid in X direction." -msgstr "Dimensione della griglia sulla direzione X." +#: ../src/extension/internal/filter/shadows.h:63 +#, fuzzy +msgid "Vertical offset (px)" +msgstr "Proiezione verticale, px" -#: ../src/live_effects/lpe-constructgrid.cpp:28 +#: ../src/extension/internal/filter/shadows.h:64 #, fuzzy -msgid "Size _Y:" -msgstr "Dimensione Y" +msgid "Shadow type:" +msgstr "Ombreggia" -#: ../src/live_effects/lpe-constructgrid.cpp:28 -msgid "The size of the grid in Y direction." -msgstr "Dimensione della griglia sulla direzione Y." +#: ../src/extension/internal/filter/shadows.h:67 +msgid "Outer cutout" +msgstr "" -#: ../src/live_effects/lpe-curvestitch.cpp:41 +#: ../src/extension/internal/filter/shadows.h:68 #, fuzzy -msgid "Stitch path:" -msgstr "Tracciato di cucitura" +msgid "Inner cutout" +msgstr "Contorno interno" -#: ../src/live_effects/lpe-curvestitch.cpp:41 -msgid "The path that will be used as stitch." -msgstr "Il tracciato che sarĂ  usato come cucitura." +#: ../src/extension/internal/filter/shadows.h:69 +#, fuzzy +msgid "Shadow only" +msgstr "Alfa" -#: ../src/live_effects/lpe-curvestitch.cpp:42 +#: ../src/extension/internal/filter/shadows.h:72 #, fuzzy -msgid "N_umber of paths:" -msgstr "Numero di tracciati" +msgid "Blur color" +msgstr "Colore uniforme" -#: ../src/live_effects/lpe-curvestitch.cpp:42 -msgid "The number of paths that will be generated." -msgstr "Numero di tracciati che verranno generati." +#: ../src/extension/internal/filter/shadows.h:74 +#, fuzzy +msgid "Use object's color" +msgstr "Usa nomi colori" -#: ../src/live_effects/lpe-curvestitch.cpp:43 +#: ../src/extension/internal/filter/shadows.h:84 #, fuzzy -msgid "Sta_rt edge variance:" -msgstr "Varianza margine iniziale" +msgid "Colorizable Drop shadow" +msgstr "Proietta un'ombra interna colorabile" -#: ../src/live_effects/lpe-curvestitch.cpp:43 -msgid "" -"The amount of random jitter to move the start points of the stitches inside " -"& outside the guide path" +#: ../src/extension/internal/filter/textures.h:62 +msgid "Ink Blot" msgstr "" -"La quantitĂ  casuale di cui muovere il punto iniziale dei fili verso " -"l'interno o l'esterno del tracciato guida" -#: ../src/live_effects/lpe-curvestitch.cpp:44 +#: ../src/extension/internal/filter/textures.h:68 #, fuzzy -msgid "Sta_rt spacing variance:" -msgstr "Varianza spaziatura iniziale" - -#: ../src/live_effects/lpe-curvestitch.cpp:44 -msgid "" -"The amount of random shifting to move the start points of the stitches back " -"& forth along the guide path" -msgstr "" -"La quantitĂ  casuale di cui muovere il punto iniziale dei fili avanti e " -"indietro lungo il tracciato guida" +msgid "Frequency:" +msgstr "Frequenza base:" -#: ../src/live_effects/lpe-curvestitch.cpp:45 +#: ../src/extension/internal/filter/textures.h:71 #, fuzzy -msgid "End ed_ge variance:" -msgstr "Varianza margine finale" +msgid "Horizontal inlay:" +msgstr "Punto orizzontale:" -#: ../src/live_effects/lpe-curvestitch.cpp:45 -msgid "" -"The amount of randomness that moves the end points of the stitches inside & " -"outside the guide path" -msgstr "" -"La quantitĂ  casuale di cui muovere il punto finale dei fili verso l'interno " -"o l'esterno del tracciato guida" +#: ../src/extension/internal/filter/textures.h:72 +#, fuzzy +msgid "Vertical inlay:" +msgstr "Punto verticale:" -#: ../src/live_effects/lpe-curvestitch.cpp:46 +#: ../src/extension/internal/filter/textures.h:73 #, fuzzy -msgid "End spa_cing variance:" -msgstr "Varianza spaziatura iniziale" +msgid "Displacement:" +msgstr "Spostamento X:" -#: ../src/live_effects/lpe-curvestitch.cpp:46 -msgid "" -"The amount of random shifting to move the end points of the stitches back & " -"forth along the guide path" -msgstr "" -"La quantitĂ  casuale di cui muovere il punto iniziale dei fili avanti e " -"indietro lungo il tracciato guida" +#: ../src/extension/internal/filter/textures.h:79 +#, fuzzy +msgid "Overlapping" +msgstr "Lappatura" -#: ../src/live_effects/lpe-curvestitch.cpp:47 +#: ../src/extension/internal/filter/textures.h:80 #, fuzzy -msgid "Scale _width:" -msgstr "Ridimensiona larghezza" +msgid "External" +msgstr "Modifica con programma esterno..." -#: ../src/live_effects/lpe-curvestitch.cpp:47 -msgid "Scale the width of the stitch path" -msgstr "Ridimensiona la larghezza del tracciato di cucitura" +#: ../src/extension/internal/filter/textures.h:81 +#: ../share/extensions/markers_strokepaint.inx.h:8 +msgid "Custom" +msgstr "Personalizzata" -#: ../src/live_effects/lpe-curvestitch.cpp:48 +#: ../src/extension/internal/filter/textures.h:83 #, fuzzy -msgid "Scale _width relative to length" -msgstr "Ridimensiona larghezza relativamente alla lunghezza" - -#: ../src/live_effects/lpe-curvestitch.cpp:48 -msgid "Scale the width of the stitch path relative to its length" -msgstr "" -"Ridimensiona la larghezza del tracciato di cucitura relativamente alla sua " -"lunghezza" +msgid "Custom stroke options" +msgstr "Opzioni e punti personalizzati" -#: ../src/live_effects/lpe-envelope.cpp:31 +#: ../src/extension/internal/filter/textures.h:84 #, fuzzy -msgid "Top bend path:" -msgstr "Tracciato lato superiore" +msgid "k1:" +msgstr "K1:" -#: ../src/live_effects/lpe-envelope.cpp:31 -msgid "Top path along which to bend the original path" -msgstr "" -"Tracciato del lato superiore usato per deformare il tracciato originale" +#: ../src/extension/internal/filter/textures.h:85 +#, fuzzy +msgid "k2:" +msgstr "K2:" -#: ../src/live_effects/lpe-envelope.cpp:32 +#: ../src/extension/internal/filter/textures.h:86 #, fuzzy -msgid "Right bend path:" -msgstr "Tracciato lato destro" +msgid "k3:" +msgstr "K3:" -#: ../src/live_effects/lpe-envelope.cpp:32 -msgid "Right path along which to bend the original path" -msgstr "Tracciato del lato destro usato per deformare il tracciato originale" +#: ../src/extension/internal/filter/textures.h:94 +msgid "Inkblot on tissue or rough paper" +msgstr "Macchie di inchiostro su tessuto o carta grezza" -#: ../src/live_effects/lpe-envelope.cpp:33 -#, fuzzy -msgid "Bottom bend path:" -msgstr "Tracciato lato inferiore" +#: ../src/extension/internal/filter/transparency.h:53 +#: ../src/filter-enums.cpp:20 +msgid "Blend" +msgstr "Miscela" -#: ../src/live_effects/lpe-envelope.cpp:33 -msgid "Bottom path along which to bend the original path" +#: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 +msgid "Source:" +msgstr "Sorgente:" + +#: ../src/extension/internal/filter/transparency.h:56 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 +msgid "Background" +msgstr "Sfondo" + +#: ../src/extension/internal/filter/transparency.h:59 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 +#: ../src/widgets/pencil-toolbar.cpp:127 ../src/widgets/spray-toolbar.cpp:186 +#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 +#: ../share/extensions/triangle.inx.h:8 +msgid "Mode:" +msgstr "ModalitĂ :" + +#: ../src/extension/internal/filter/transparency.h:73 +msgid "Blend objects with background images or with themselves" msgstr "" -"Tracciato del lato inferiore usato per deformare il tracciato originale" -#: ../src/live_effects/lpe-envelope.cpp:34 +#: ../src/extension/internal/filter/transparency.h:130 #, fuzzy -msgid "Left bend path:" -msgstr "Tracciato lato sinistro" - -#: ../src/live_effects/lpe-envelope.cpp:34 -msgid "Left path along which to bend the original path" -msgstr "Tracciato del lato sinistro usato per deformare il tracciato originale" +msgid "Channel Transparency" +msgstr "Trasparenza finestre:" -#: ../src/live_effects/lpe-envelope.cpp:35 +#: ../src/extension/internal/filter/transparency.h:144 #, fuzzy -msgid "E_nable left & right paths" -msgstr "Abilita tracciati destro e sinistro" +msgid "Replace RGB with transparency" +msgstr "Trasparenza grezza" -#: ../src/live_effects/lpe-envelope.cpp:35 -msgid "Enable the left and right deformation paths" -msgstr "Attiva i tracciati di deformazione destro e sinistro" +#: ../src/extension/internal/filter/transparency.h:205 +#, fuzzy +msgid "Light Eraser" +msgstr "Sovraesposto" -#: ../src/live_effects/lpe-envelope.cpp:36 +#: ../src/extension/internal/filter/transparency.h:209 +#: ../src/extension/internal/filter/transparency.h:283 #, fuzzy -msgid "_Enable top & bottom paths" -msgstr "Abilita tracciati in cima e in fondo" +msgid "Global opacity" +msgstr "Piegatura globale" -#: ../src/live_effects/lpe-envelope.cpp:36 -msgid "Enable the top and bottom deformation paths" -msgstr "Attiva i tracciati di deformazione inferiore e superiore" +#: ../src/extension/internal/filter/transparency.h:218 +msgid "Make the lightest parts of the object progressively transparent" +msgstr "Rende le parti piĂą chiare dell'oggetto progressivamente trasparenti" -#: ../src/live_effects/lpe-extrude.cpp:30 -#, fuzzy -msgid "Direction" -msgstr "Descrizione" +#: ../src/extension/internal/filter/transparency.h:291 +msgid "Set opacity and strength of opacity boundaries" +msgstr "" -#: ../src/live_effects/lpe-extrude.cpp:30 -msgid "Defines the direction and magnitude of the extrusion" +#: ../src/extension/internal/filter/transparency.h:341 +msgid "Silhouette" msgstr "" -#: ../src/live_effects/lpe-gears.cpp:214 +#: ../src/extension/internal/filter/transparency.h:344 +msgid "Cutout" +msgstr "Taglio" + +#: ../src/extension/internal/filter/transparency.h:353 #, fuzzy -msgid "_Teeth:" -msgstr "Denti" +msgid "Repaint anything visible monochrome" +msgstr "Ridipinge tutto monocromo" -#: ../src/live_effects/lpe-gears.cpp:214 -msgid "The number of teeth" -msgstr "Numero di denti" +#: ../src/extension/internal/gdkpixbuf-input.cpp:184 +#, c-format +msgid "%s bitmap image import" +msgstr "Importa immagine bitmap %s" -#: ../src/live_effects/lpe-gears.cpp:215 -#, fuzzy -msgid "_Phi:" -msgstr "Phi" +#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#, c-format +msgid "Image Import Type:" +msgstr "ModalitĂ  importazione immagine:" -#: ../src/live_effects/lpe-gears.cpp:215 +#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#, c-format msgid "" -"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " -"contact." +"Embed results in stand-alone, larger SVG files. Link references a file " +"outside this SVG document and all files must be moved together." msgstr "" -"Angolo di pressione dei denti (tipicamente 20-25 gradi). Il rapporto tra i " -"denti non in contatto." +"Incorpora crea un file indipendente, quindi SVG piĂą grandi. Collega fa " +"riferimento a un file esterno al file SVG che necessita di essere spostato " +"insieme a tutti gli altri file." -#: ../src/live_effects/lpe-interpolate.cpp:31 -#, fuzzy -msgid "Trajectory:" -msgstr "Traiettoria" +#: ../src/extension/internal/gdkpixbuf-input.cpp:192 +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +#, c-format +msgid "Embed" +msgstr "Incorpora" -#: ../src/live_effects/lpe-interpolate.cpp:31 -msgid "Path along which intermediate steps are created." -msgstr "Tracciato lungo il quale creare i passaggi intermedi." +#: ../src/extension/internal/gdkpixbuf-input.cpp:193 ../src/sp-anchor.cpp:119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +#, c-format +msgid "Link" +msgstr "Collega" -#: ../src/live_effects/lpe-interpolate.cpp:32 -#, fuzzy -msgid "Steps_:" -msgstr "Scatti" +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#, c-format +msgid "Image DPI:" +msgstr "DPI immagine:" -#: ../src/live_effects/lpe-interpolate.cpp:32 -msgid "Determines the number of steps from start to end path." -msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#, c-format +msgid "" +"Take information from file or use default bitmap import resolution as " +"defined in the preferences." +msgstr "" +"Ottiene informazioni dal file o utilizza la risoluzione impostata nelle " +"preferenze per l'importazione bitmap." -#: ../src/live_effects/lpe-interpolate.cpp:33 -#, fuzzy -msgid "E_quidistant spacing" -msgstr "Spaziatura equidistante" +#: ../src/extension/internal/gdkpixbuf-input.cpp:197 +#, c-format +msgid "From file" +msgstr "Da file" -#: ../src/live_effects/lpe-interpolate.cpp:33 +#: ../src/extension/internal/gdkpixbuf-input.cpp:198 +#, c-format +msgid "Default import resolution" +msgstr "Risoluzione predefinita per l'importazione" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#, c-format +msgid "Image Rendering Mode:" +msgstr "ModalitĂ  rendering immagine:" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#, c-format msgid "" -"If true, the spacing between intermediates is constant along the length of " -"the path. If false, the distance depends on the location of the nodes of the " -"trajectory path." +"When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " +"not work in all browsers.)" msgstr "" -"Se attivo, la spaziatura tra i passaggi intermedi sarĂ  costante per la " -"lunghezza del tracciato. Altrimenti, la distanza sarĂ  determinata dalla " -"posizione dei nodi del tracciato di sostegno." -#. initialise your parameters here: -#: ../src/live_effects/lpe-knot.cpp:350 -#, fuzzy -msgid "Fi_xed width:" -msgstr "Larghezza fissa" +#: ../src/extension/internal/gdkpixbuf-input.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#, c-format +msgid "None (auto)" +msgstr "Nessuna (auto)" -#: ../src/live_effects/lpe-knot.cpp:350 -msgid "Size of hidden region of lower string" -msgstr "Dimensione della regione nascosta della stringa inferiore" +#: ../src/extension/internal/gdkpixbuf-input.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#, c-format +msgid "Smooth (optimizeQuality)" +msgstr "Fluida (ottimizzaQualitĂ )" -#: ../src/live_effects/lpe-knot.cpp:351 -#, fuzzy -msgid "_In units of stroke width" -msgstr "In unitĂ  della larghezza contorno" +#: ../src/extension/internal/gdkpixbuf-input.cpp:204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#, c-format +msgid "Blocky (optimizeSpeed)" +msgstr "Grezza (ottimizzaVelocitĂ )" -#: ../src/live_effects/lpe-knot.cpp:351 -msgid "Consider 'Interruption width' as a ratio of stroke width" +#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +#, c-format +msgid "Hide the dialog next time and always apply the same actions." msgstr "" -"Considera «Dimensione interruzione\" in rapporto alla dimensione del tratto" +"Nasconde questa finestra la prossima volta e applica le stesse opzioni." -#: ../src/live_effects/lpe-knot.cpp:352 -#, fuzzy -msgid "St_roke width" -msgstr "Larghezza contorno" +#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +#, c-format +msgid "Don't ask again" +msgstr "Non chiedere piĂą" -#: ../src/live_effects/lpe-knot.cpp:352 -msgid "Add the stroke width to the interruption size" -msgstr "Aggiunge la larghezza del tratto alla dimensione dell'interruzione" +#: ../src/extension/internal/gimpgrad.cpp:272 +msgid "GIMP Gradients" +msgstr "Gradiente GIMP" -#: ../src/live_effects/lpe-knot.cpp:353 -#, fuzzy -msgid "_Crossing path stroke width" -msgstr "Larghezza contorno tracciato intersecato" +#: ../src/extension/internal/gimpgrad.cpp:277 +msgid "GIMP Gradient (*.ggr)" +msgstr "Gradiente GIMP (*.ggr)" -#: ../src/live_effects/lpe-knot.cpp:353 -msgid "Add crossed stroke width to the interruption size" -msgstr "" -"Aggiunge la larghezza del tracciato intersecato alla dimensione " -"dell'interruzione" +#: ../src/extension/internal/gimpgrad.cpp:278 +msgid "Gradients used in GIMP" +msgstr "Gradienti usati in GIMP" -#: ../src/live_effects/lpe-knot.cpp:354 +#: ../src/extension/internal/grid.cpp:210 ../src/ui/widget/panel.cpp:117 +msgid "Grid" +msgstr "Griglia" + +#: ../src/extension/internal/grid.cpp:212 #, fuzzy -msgid "S_witcher size:" -msgstr "Dimensione indicatore" +msgid "Line Width:" +msgstr "Larghezza linea" -#: ../src/live_effects/lpe-knot.cpp:354 -msgid "Orientation indicator/switcher size" -msgstr "Direzione indicatore/dimensione selettore" +#: ../src/extension/internal/grid.cpp:213 +#, fuzzy +msgid "Horizontal Spacing:" +msgstr "Spaziatura orizzontale" -#: ../src/live_effects/lpe-knot.cpp:355 -msgid "Crossing Signs" -msgstr "Segni intersezione" +#: ../src/extension/internal/grid.cpp:214 +#, fuzzy +msgid "Vertical Spacing:" +msgstr "Spaziatura verticale:" -#: ../src/live_effects/lpe-knot.cpp:355 -msgid "Crossings signs" -msgstr "Segni intersezioni" +#: ../src/extension/internal/grid.cpp:215 +#, fuzzy +msgid "Horizontal Offset:" +msgstr "Proiezione orizzontale" -#: ../src/live_effects/lpe-knot.cpp:622 -msgid "Drag to select a crossing, click to flip it" -msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" +#: ../src/extension/internal/grid.cpp:216 +#, fuzzy +msgid "Vertical Offset:" +msgstr "Proiezione verticale" -#. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:660 -msgid "Change knot crossing" -msgstr "Cambia intersezione nodo" +#: ../src/extension/internal/grid.cpp:220 +#: ../src/ui/dialog/inkscape-preferences.cpp:1469 +#: ../share/extensions/draw_from_triangle.inx.h:58 +#: ../share/extensions/eqtexsvg.inx.h:4 +#: ../share/extensions/foldablebox.inx.h:9 +#: ../share/extensions/funcplot.inx.h:38 +#: ../share/extensions/grid_cartesian.inx.h:23 +#: ../share/extensions/grid_isometric.inx.h:11 +#: ../share/extensions/grid_polar.inx.h:22 +#: ../share/extensions/guides_creator.inx.h:25 +#: ../share/extensions/hershey.inx.h:52 +#: ../share/extensions/layout_nup.inx.h:35 +#: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/param_curves.inx.h:30 +#: ../share/extensions/perfectboundcover.inx.h:19 +#: ../share/extensions/polyhedron_3d.inx.h:56 +#: ../share/extensions/printing_marks.inx.h:20 +#: ../share/extensions/render_alphabetsoup.inx.h:5 +#: ../share/extensions/render_barcode.inx.h:5 +#: ../share/extensions/render_barcode_datamatrix.inx.h:5 +#: ../share/extensions/render_barcode_qrcode.inx.h:18 +#: ../share/extensions/render_gear_rack.inx.h:5 +#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 +#: ../share/extensions/spirograph.inx.h:10 +#: ../share/extensions/svgcalendar.inx.h:38 +#: ../share/extensions/triangle.inx.h:14 +#: ../share/extensions/wireframe_sphere.inx.h:8 +msgid "Render" +msgstr "Render" -#: ../src/live_effects/lpe-patternalongpath.cpp:50 -#: ../share/extensions/pathalongpath.inx.h:10 -msgid "Single" -msgstr "Singolo" +#: ../src/extension/internal/grid.cpp:221 +#: ../src/ui/dialog/document-properties.cpp:155 +#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/widgets/toolbox.cpp:1826 +msgid "Grids" +msgstr "Griglie" -#: ../src/live_effects/lpe-patternalongpath.cpp:51 -#: ../share/extensions/pathalongpath.inx.h:11 -msgid "Single, stretched" -msgstr "Singolo, adattato" +#: ../src/extension/internal/grid.cpp:224 +msgid "Draw a path which is a grid" +msgstr "Disegna un tracciato a forma di griglia" -#: ../src/live_effects/lpe-patternalongpath.cpp:52 -#: ../share/extensions/pathalongpath.inx.h:12 -msgid "Repeated" -msgstr "Ripetuto" +#: ../src/extension/internal/javafx-out.cpp:966 +msgid "JavaFX Output" +msgstr "Ouput JavaFX" -#: ../src/live_effects/lpe-patternalongpath.cpp:53 -#: ../share/extensions/pathalongpath.inx.h:13 -msgid "Repeated, stretched" -msgstr "Ripetuto, adattato" +#: ../src/extension/internal/javafx-out.cpp:971 +msgid "JavaFX (*.fx)" +msgstr "JavaFX (*.fx)" -#: ../src/live_effects/lpe-patternalongpath.cpp:59 -#, fuzzy -msgid "Pattern source:" -msgstr "Motivo sorgente" +#: ../src/extension/internal/javafx-out.cpp:972 +msgid "JavaFX Raytracer File" +msgstr "File JavaFX Raytracer" -#: ../src/live_effects/lpe-patternalongpath.cpp:59 -msgid "Path to put along the skeleton path" -msgstr "Tracciato da mettere sul tracciato scheletro" +#: ../src/extension/internal/latex-pstricks-out.cpp:95 +msgid "LaTeX Output" +msgstr "Output LaTeX" -#: ../src/live_effects/lpe-patternalongpath.cpp:60 -#, fuzzy -msgid "Pattern copies:" -msgstr "Motivi copia" +#: ../src/extension/internal/latex-pstricks-out.cpp:100 +msgid "LaTeX With PSTricks macros (*.tex)" +msgstr "LaTeX con macro PSTricks (*.tex)" -#: ../src/live_effects/lpe-patternalongpath.cpp:60 -msgid "How many pattern copies to place along the skeleton path" -msgstr "Numero di copie del motivo da ripetere lungo il tracciato scheletro" +#: ../src/extension/internal/latex-pstricks-out.cpp:101 +msgid "LaTeX PSTricks File" +msgstr "LaTeX PSTricks File" -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -msgid "Width of the pattern" -msgstr "Larghezza del motivo" +#: ../src/extension/internal/latex-pstricks.cpp:331 +msgid "LaTeX Print" +msgstr "Stampa LaTeX" -#: ../src/live_effects/lpe-patternalongpath.cpp:63 -#, fuzzy -msgid "Wid_th in units of length" -msgstr "Larghezza in unitĂ  di lunghezza" +#: ../src/extension/internal/odf.cpp:2142 +msgid "OpenDocument Drawing Output" +msgstr "Output OpenDocument Drawing" -#: ../src/live_effects/lpe-patternalongpath.cpp:64 -msgid "Scale the width of the pattern in units of its length" -msgstr "Ridimensiona la larghezza del motivo in unitĂ  della sua lunghezza" +#: ../src/extension/internal/odf.cpp:2147 +msgid "OpenDocument drawing (*.odg)" +msgstr "Disegno OpenDocument (*.odg)" -#: ../src/live_effects/lpe-patternalongpath.cpp:66 -#, fuzzy -msgid "Spa_cing:" -msgstr "Spaziatura:" +#: ../src/extension/internal/odf.cpp:2148 +msgid "OpenDocument drawing file" +msgstr "File di disegno OpenDocument" -#: ../src/live_effects/lpe-patternalongpath.cpp:68 -#, no-c-format -msgid "" -"Space between copies of the pattern. Negative values allowed, but are " -"limited to -90% of pattern width." -msgstr "" -"Spaziatura tra le copie del motivo. Sono permessi valori negativi, ma " -"limitati al -90% della larghezza del motivo." +#. TRANSLATORS: The following are document crop settings for PDF import +#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ +#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 +msgid "media box" +msgstr "riquadro contenuto" -#: ../src/live_effects/lpe-patternalongpath.cpp:70 -#, fuzzy -msgid "No_rmal offset:" -msgstr "Proiezione normale" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 +msgid "crop box" +msgstr "riquadro adattato" -#: ../src/live_effects/lpe-patternalongpath.cpp:71 -#, fuzzy -msgid "Tan_gential offset:" -msgstr "Proiezione tangenziale" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 +msgid "trim box" +msgstr "riquadro ritaglio" -#: ../src/live_effects/lpe-patternalongpath.cpp:72 -#, fuzzy -msgid "Offsets in _unit of pattern size" -msgstr "Spostamento in unita di dimensione del motivo" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 +msgid "bleed box" +msgstr "riquadro rifilo" -#: ../src/live_effects/lpe-patternalongpath.cpp:73 -msgid "" -"Spacing, tangential and normal offset are expressed as a ratio of width/" -"height" -msgstr "" -"Spaziatura e spostamento tangenziale e normale sono espressi come rapporto " -"larghezza/altezza" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 +msgid "art box" +msgstr "riquadro immagine" -#: ../src/live_effects/lpe-patternalongpath.cpp:75 -#, fuzzy -msgid "Pattern is _vertical" -msgstr "Motivo verticale" +#. Crop settings +#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 +msgid "Clip to:" +msgstr "Fissa a:" -#: ../src/live_effects/lpe-patternalongpath.cpp:75 -msgid "Rotate pattern 90 deg before applying" -msgstr "Ruota il motivo di 90° gradi prima di applicarlo" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 +msgid "Page settings" +msgstr "Impostazioni pagina" -#: ../src/live_effects/lpe-patternalongpath.cpp:77 -#, fuzzy -msgid "_Fuse nearby ends:" -msgstr "Fondi terminazioni vicine" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 +msgid "Precision of approximating gradient meshes:" +msgstr "Precisione approssimazione delle mesh dei gradienti:" -#: ../src/live_effects/lpe-patternalongpath.cpp:77 -msgid "Fuse ends closer than this number. 0 means don't fuse." +#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 +msgid "" +"Note: setting the precision too high may result in a large SVG file " +"and slow performance." msgstr "" -"Fonde terminazioni piĂą vicine di questo numero. 0 per non fonderle mai." - -#: ../src/live_effects/lpe-powerstroke.cpp:189 -#, fuzzy -msgid "CubicBezierFit" -msgstr "Bezier" +"Nota: impostare la precisione ad un valore troppo alto può comportare " +"file SVG molto grossie un peggioramento delle performance." -#: ../src/live_effects/lpe-powerstroke.cpp:190 -msgid "CubicBezierJohan" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 +msgid "import via Poppler" msgstr "" -#: ../src/live_effects/lpe-powerstroke.cpp:191 -#, fuzzy -msgid "SpiroInterpolator" -msgstr "Interpola" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:138 +msgid "rough" +msgstr "grezzo" -#: ../src/live_effects/lpe-powerstroke.cpp:203 -#, fuzzy -msgid "Butt" -msgstr "Bottone" +#. Text options +#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 +msgid "Text handling:" +msgstr "Gestione testo:" -#: ../src/live_effects/lpe-powerstroke.cpp:204 -msgid "Square" -msgstr "Quadrata" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:144 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:145 +msgid "Import text as text" +msgstr "Importa testo come testo" -#: ../src/live_effects/lpe-powerstroke.cpp:205 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 -#, fuzzy -msgid "Round" -msgstr "Arrotondamento" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 +msgid "Replace PDF fonts by closest-named installed fonts" +msgstr "Rimpiazza font PDF con il font installato dal nome piĂą simile" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:149 +msgid "Embed images" +msgstr "Incorpora immagini" -#: ../src/live_effects/lpe-powerstroke.cpp:206 -msgid "Peak" -msgstr "" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:151 +msgid "Import settings" +msgstr "Impostazioni importazione" -#: ../src/live_effects/lpe-powerstroke.cpp:207 -#, fuzzy -msgid "Zero width" -msgstr "Larghezza pennino" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:268 +msgid "PDF Import Settings" +msgstr "Impostazioni importazione PDF" -#: ../src/live_effects/lpe-powerstroke.cpp:220 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:431 #, fuzzy -msgid "Beveled" -msgstr "Sfumature" +msgctxt "PDF input precision" +msgid "rough" +msgstr "grezzo" -#: ../src/live_effects/lpe-powerstroke.cpp:221 -#: ../src/widgets/star-toolbar.cpp:534 -msgid "Rounded" -msgstr "Arrotondamento" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:432 +#, fuzzy +msgctxt "PDF input precision" +msgid "medium" +msgstr "media" -#: ../src/live_effects/lpe-powerstroke.cpp:222 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:433 #, fuzzy -msgid "Extrapolated" -msgstr "Interpola" +msgctxt "PDF input precision" +msgid "fine" +msgstr "buono" -#: ../src/live_effects/lpe-powerstroke.cpp:223 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:434 #, fuzzy -msgid "Miter" -msgstr "Spigolo vivo" +msgctxt "PDF input precision" +msgid "very fine" +msgstr "ottimo" -#: ../src/live_effects/lpe-powerstroke.cpp:224 -#: ../src/widgets/pencil-toolbar.cpp:103 -msgid "Spiro" -msgstr "Spiro" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:877 +msgid "PDF Input" +msgstr "Input PDF" -#: ../src/live_effects/lpe-powerstroke.cpp:226 -msgid "Extrapolated arc" -msgstr "" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:882 +msgid "Adobe PDF (*.pdf)" +msgstr "PDF Adobe (*.pdf)" -#: ../src/live_effects/lpe-powerstroke.cpp:233 -#, fuzzy -msgid "Offset points" -msgstr "Tracciato estruso" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:883 +msgid "Adobe Portable Document Format" +msgstr "Documento Adobe Portable Format" -#: ../src/live_effects/lpe-powerstroke.cpp:234 -#, fuzzy -msgid "Sort points" -msgstr "Orientamento" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:890 +msgid "AI Input" +msgstr "Input AI" -#: ../src/live_effects/lpe-powerstroke.cpp:234 -msgid "Sort offset points according to their time value along the curve" -msgstr "" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:895 +msgid "Adobe Illustrator 9.0 and above (*.ai)" +msgstr "Adobe Illustrator 9.0 e superiori (*.ai)" -#: ../src/live_effects/lpe-powerstroke.cpp:235 -#, fuzzy -msgid "Interpolator type:" -msgstr "Stile d'interpolazione" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:896 +msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" +msgstr "Apre file salvati con Adobe Illustrator 9.0 o piĂą recenti" -#: ../src/live_effects/lpe-powerstroke.cpp:235 -msgid "" -"Determines which kind of interpolator will be used to interpolate between " -"stroke width along the path" -msgstr "" +#: ../src/extension/internal/pov-out.cpp:715 +msgid "PovRay Output" +msgstr "Output PovRay" -#: ../src/live_effects/lpe-powerstroke.cpp:236 -#: ../share/extensions/fractalize.inx.h:3 -#, fuzzy -msgid "Smoothness:" -msgstr "Smussatura" +#: ../src/extension/internal/pov-out.cpp:720 +msgid "PovRay (*.pov) (paths and shapes only)" +msgstr "PovRay (*.pov) (solo tracciati e forme)" -#: ../src/live_effects/lpe-powerstroke.cpp:236 -msgid "" -"Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " -"interpolation, 1 = smooth" -msgstr "" +#: ../src/extension/internal/pov-out.cpp:721 +msgid "PovRay Raytracer File" +msgstr "File PovRay Raytracer" -#: ../src/live_effects/lpe-powerstroke.cpp:237 -#, fuzzy -msgid "Start cap:" -msgstr "Inizio:" +#: ../src/extension/internal/svg.cpp:100 +msgid "SVG Input" +msgstr "Input SVG" -#: ../src/live_effects/lpe-powerstroke.cpp:237 -#, fuzzy -msgid "Determines the shape of the path's start" -msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" +#: ../src/extension/internal/svg.cpp:105 +msgid "Scalable Vector Graphic (*.svg)" +msgstr "Scalable Vector Graphic (*.svg)" -#. Join type -#. TRANSLATORS: The line join style specifies the shape to be used at the -#. corners of paths. It can be "miter", "round" or "bevel". -#: ../src/live_effects/lpe-powerstroke.cpp:238 -#: ../src/widgets/stroke-style.cpp:227 -msgid "Join:" -msgstr "Spigoli:" +#: ../src/extension/internal/svg.cpp:106 +msgid "Inkscape native file format and W3C standard" +msgstr "Formato nativo di Inkscape e standard W3C" -#: ../src/live_effects/lpe-powerstroke.cpp:238 -#, fuzzy -msgid "Determines the shape of the path's corners" -msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" +#: ../src/extension/internal/svg.cpp:114 +msgid "SVG Output Inkscape" +msgstr "Output Inkscape SVG" -#: ../src/live_effects/lpe-powerstroke.cpp:239 -#, fuzzy -msgid "Miter limit:" -msgstr "SpigolositĂ :" +#: ../src/extension/internal/svg.cpp:119 +msgid "Inkscape SVG (*.svg)" +msgstr "Inkscape SVG (*.svg)" -#: ../src/live_effects/lpe-powerstroke.cpp:239 -#: ../src/widgets/stroke-style.cpp:278 -msgid "Maximum length of the miter (in units of stroke width)" -msgstr "" -"Lunghezza massima dello spigolo (in unitĂ  della larghezza del contorno)" +#: ../src/extension/internal/svg.cpp:120 +msgid "SVG format with Inkscape extensions" +msgstr "Formato SVG con estensioni di Inkscape" -#: ../src/live_effects/lpe-powerstroke.cpp:240 -#, fuzzy -msgid "End cap:" -msgstr "Estremo arrotondato" +#: ../src/extension/internal/svg.cpp:128 +msgid "SVG Output" +msgstr "Output SVG" -#: ../src/live_effects/lpe-powerstroke.cpp:240 -#, fuzzy -msgid "Determines the shape of the path's end" -msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" +#: ../src/extension/internal/svg.cpp:133 +msgid "Plain SVG (*.svg)" +msgstr "SVG puro (*.svg)" -#: ../src/live_effects/lpe-rough-hatches.cpp:225 -#, fuzzy -msgid "Frequency randomness:" -msgstr "CasualitĂ  frequenza" +#: ../src/extension/internal/svg.cpp:134 +msgid "Scalable Vector Graphics format as defined by the W3C" +msgstr "Formato Scalable Vector Graphics come definito dal W3C" -#: ../src/live_effects/lpe-rough-hatches.cpp:225 -msgid "Variation of distance between hatches, in %." -msgstr "Variazione di distanza tra i tratti, in %." +#: ../src/extension/internal/svgz.cpp:46 +msgid "SVGZ Input" +msgstr "Input SVGZ" -#: ../src/live_effects/lpe-rough-hatches.cpp:226 -#, fuzzy -msgid "Growth:" -msgstr "Accrescimento" +#: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 +msgid "Compressed Inkscape SVG (*.svgz)" +msgstr "Inkscape SVG compresso (*.svgz)" -#: ../src/live_effects/lpe-rough-hatches.cpp:226 -msgid "Growth of distance between hatches." -msgstr "Crescita della distanza tra i tratti." +#: ../src/extension/internal/svgz.cpp:53 +msgid "SVG file format compressed with GZip" +msgstr "Formato SVG compresso con GZip" -#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! -#: ../src/live_effects/lpe-rough-hatches.cpp:228 -#, fuzzy -msgid "Half-turns smoothness: 1st side, in:" -msgstr "Curvatura inversioni: lato inferiore, prima" +#: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 +msgid "SVGZ Output" +msgstr "Output SVGZ" -#: ../src/live_effects/lpe-rough-hatches.cpp:228 -msgid "" -"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " -"0=sharp, 1=default" -msgstr "" -"Imposta curvatura dolce/spigolosa del tracciato in arrivo alle inversioni in " -"\"fondo\". 0=spigoloso, 1=predefinito" +#: ../src/extension/internal/svgz.cpp:67 +msgid "Inkscape's native file format compressed with GZip" +msgstr "Formato nativo di Inkscape compresso con GZip" -#: ../src/live_effects/lpe-rough-hatches.cpp:229 -#, fuzzy -msgid "1st side, out:" -msgstr "lato inferiore, dopo" +#: ../src/extension/internal/svgz.cpp:80 +msgid "Compressed plain SVG (*.svgz)" +msgstr "SVG puro compresso (*.svgz)" -#: ../src/live_effects/lpe-rough-hatches.cpp:229 -msgid "" -"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " -"1=default" -msgstr "" -"Imposta curvatura dolce/spigolosa del tracciato in uscita dalle inversioni " -"in \"fondo\". 0=spigoloso, 1=predefinito" +#: ../src/extension/internal/svgz.cpp:81 +msgid "Scalable Vector Graphics format compressed with GZip" +msgstr "Fomrato Scalable Vector Graphics compresso con GZip" -#: ../src/live_effects/lpe-rough-hatches.cpp:230 +#: ../src/extension/internal/vsd-input.cpp:274 #, fuzzy -msgid "2nd side, in:" -msgstr "lato superiore, prima" - -#: ../src/live_effects/lpe-rough-hatches.cpp:230 -msgid "" -"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " -"1=default" -msgstr "" -"Imposta curvatura dolce/spigolosa del tracciato in arrivo alle inversioni in " -"\"cima\". 0=spigoloso, 1=predefinito" +msgid "VSD Input" +msgstr "Input PDF" -#: ../src/live_effects/lpe-rough-hatches.cpp:231 +#: ../src/extension/internal/vsd-input.cpp:279 #, fuzzy -msgid "2nd side, out:" -msgstr "lato superiore, dopo" +msgid "Microsoft Visio Diagram (*.vsd)" +msgstr "Diagramma Dia (*.dia)" -#: ../src/live_effects/lpe-rough-hatches.cpp:231 -msgid "" -"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " -"1=default" +#: ../src/extension/internal/vsd-input.cpp:280 +msgid "File format used by Microsoft Visio 6 and later" msgstr "" -"Imposta curvatura dolce/spigolosa del tracciato in uscita dalle inversioni " -"in \"cima\". 0=spigoloso, 1=predefinito" -#: ../src/live_effects/lpe-rough-hatches.cpp:232 +#: ../src/extension/internal/vsd-input.cpp:287 #, fuzzy -msgid "Magnitude jitter: 1st side:" -msgstr "CasualitĂ  dimensione: lato inferiore" - -#: ../src/live_effects/lpe-rough-hatches.cpp:232 -msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." -msgstr "" -"Sposta casualmente le inversioni in \"fondo\" per produrre variazioni di " -"dimensione." +msgid "VDX Input" +msgstr "Input DXF" -#: ../src/live_effects/lpe-rough-hatches.cpp:233 -#: ../src/live_effects/lpe-rough-hatches.cpp:235 -#: ../src/live_effects/lpe-rough-hatches.cpp:237 +#: ../src/extension/internal/vsd-input.cpp:292 #, fuzzy -msgid "2nd side:" -msgstr "lato superiore" +msgid "Microsoft Visio XML Diagram (*.vdx)" +msgstr "Microsoft XAML (*.xaml)" -#: ../src/live_effects/lpe-rough-hatches.cpp:233 -msgid "Randomly moves 'top' half-turns to produce magnitude variations." +#: ../src/extension/internal/vsd-input.cpp:293 +msgid "File format used by Microsoft Visio 2010 and later" msgstr "" -"Sposta casualmente le inversioni in \"cima\" per produrre variazioni di " -"dimensione." -#: ../src/live_effects/lpe-rough-hatches.cpp:234 +#: ../src/extension/internal/vsd-input.cpp:300 #, fuzzy -msgid "Parallelism jitter: 1st side:" -msgstr "CasualitĂ  parallelismo: lato inferiore" +msgid "VSDM Input" +msgstr "Input EMF" -#: ../src/live_effects/lpe-rough-hatches.cpp:234 -msgid "" -"Add direction randomness by moving 'bottom' half-turns tangentially to the " -"boundary." +#: ../src/extension/internal/vsd-input.cpp:305 +msgid "Microsoft Visio 2013 drawing (*.vsdm)" msgstr "" -"Aggiunge casualitĂ  alla direzione spostando le inversioni in \"fondo\" " -"tangenzialmente al contorno." -#: ../src/live_effects/lpe-rough-hatches.cpp:235 -msgid "" -"Add direction randomness by randomly moving 'top' half-turns tangentially to " -"the boundary." +#: ../src/extension/internal/vsd-input.cpp:306 +#: ../src/extension/internal/vsd-input.cpp:319 +msgid "File format used by Microsoft Visio 2013 and later" msgstr "" -"Aggiunge casualitĂ  alla direzione spostando le inversioni in \"cima\" " -"tangenzialmente al contorno." -#: ../src/live_effects/lpe-rough-hatches.cpp:236 +#: ../src/extension/internal/vsd-input.cpp:313 #, fuzzy -msgid "Variance: 1st side:" -msgstr "Variazione: lato inferiore" +msgid "VSDX Input" +msgstr "Input DXF" -#: ../src/live_effects/lpe-rough-hatches.cpp:236 -msgid "Randomness of 'bottom' half-turns smoothness" -msgstr "CasualitĂ  nella curvatura delle inversioni in \"fondo\"" +#: ../src/extension/internal/vsd-input.cpp:318 +msgid "Microsoft Visio 2013 drawing (*.vsdx)" +msgstr "" -#: ../src/live_effects/lpe-rough-hatches.cpp:237 -msgid "Randomness of 'top' half-turns smoothness" -msgstr "CasualitĂ  nella curvatura delle inversioni in \"cima\"" +#: ../src/extension/internal/wmf-inout.cpp:3125 +msgid "WMF Input" +msgstr "Input WMF" -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:239 -msgid "Generate thick/thin path" -msgstr "Genera tracciato sottile/spesso" +#: ../src/extension/internal/wmf-inout.cpp:3130 +msgid "Windows Metafiles (*.wmf)" +msgstr "Windows Metafile (*.wmf)" -#: ../src/live_effects/lpe-rough-hatches.cpp:239 -msgid "Simulate a stroke of varying width" -msgstr "Simula un contorno a larghezza variabile" +#: ../src/extension/internal/wmf-inout.cpp:3131 +msgid "Windows Metafiles" +msgstr "Windows Metafile" -#: ../src/live_effects/lpe-rough-hatches.cpp:240 -msgid "Bend hatches" -msgstr "Piega scarabocchio" +#: ../src/extension/internal/wmf-inout.cpp:3139 +#, fuzzy +msgid "WMF Output" +msgstr "Output EMF" -#: ../src/live_effects/lpe-rough-hatches.cpp:240 -msgid "Add a global bend to the hatches (slower)" -msgstr "Aggiunge una piega globale agli scarabocchi (lento)" +#: ../src/extension/internal/wmf-inout.cpp:3149 +msgid "Map all fill patterns to standard WMF hatches" +msgstr "" -#: ../src/live_effects/lpe-rough-hatches.cpp:241 +#: ../src/extension/internal/wmf-inout.cpp:3153 +#: ../share/extensions/wmf_input.inx.h:2 +#: ../share/extensions/wmf_output.inx.h:2 +msgid "Windows Metafile (*.wmf)" +msgstr "Windows Metafile (*.wmf)" + +#: ../src/extension/internal/wmf-inout.cpp:3154 #, fuzzy -msgid "Thickness: at 1st side:" -msgstr "Spessore: al lato inferiore" +msgid "Windows Metafile" +msgstr "Windows Metafile" -#: ../src/live_effects/lpe-rough-hatches.cpp:241 -msgid "Width at 'bottom' half-turns" -msgstr "Larghezza alle inversioni in \"fondo\"" +#: ../src/extension/internal/wpg-input.cpp:129 +msgid "WPG Input" +msgstr "Input WPG" -#: ../src/live_effects/lpe-rough-hatches.cpp:242 -#, fuzzy -msgid "At 2nd side:" -msgstr "al lato superiore" +#: ../src/extension/internal/wpg-input.cpp:134 +msgid "WordPerfect Graphics (*.wpg)" +msgstr "WordPerfect Graphic (*.wpg)" -#: ../src/live_effects/lpe-rough-hatches.cpp:242 -msgid "Width at 'top' half-turns" -msgstr "Larghezza alle inversioni in \"cima\"" +#: ../src/extension/internal/wpg-input.cpp:135 +msgid "Vector graphics format used by Corel WordPerfect" +msgstr "Formato grafico vettoriale usato da Corel WordPerfect" -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:244 -#, fuzzy -msgid "From 2nd to 1st side:" -msgstr "dal lato superiore a quello inferiore" +#: ../src/extension/prefdialog.cpp:272 +msgid "Live preview" +msgstr "Anteprima diretta" -#: ../src/live_effects/lpe-rough-hatches.cpp:244 -msgid "Width from 'top' to 'bottom'" -msgstr "Larghezza dalla \"cima\" al \"fondo\"" +#: ../src/extension/prefdialog.cpp:272 +msgid "Is the effect previewed live on canvas?" +msgstr "Aggiornamento in tempo reale degli effetti sul disegno?" -#: ../src/live_effects/lpe-rough-hatches.cpp:245 -#, fuzzy -msgid "From 1st to 2nd side:" -msgstr "dal lato inferiore a quello superiore" +#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +msgid "Format autodetect failed. The file is being opened as SVG." +msgstr "" +"Impossibile determinare automaticamente il formato. Il file verrĂ  aperto " +"come SVG." -#: ../src/live_effects/lpe-rough-hatches.cpp:245 -msgid "Width from 'bottom' to 'top'" -msgstr "Larghezza dal \"fondo\" alla \"fondo\"" +#: ../src/file.cpp:183 +msgid "default.svg" +msgstr "default.it.svg" -#: ../src/live_effects/lpe-rough-hatches.cpp:247 -msgid "Hatches width and dir" -msgstr "Larghezza e direzione scarabocchio" +#: ../src/file.cpp:322 +msgid "Broken links have been changed to point to existing files." +msgstr "" -#: ../src/live_effects/lpe-rough-hatches.cpp:247 -msgid "Defines hatches frequency and direction" -msgstr "Definisce la direzione e la frequenza degli scarabocchi" +#: ../src/file.cpp:333 ../src/file.cpp:1249 +#, c-format +msgid "Failed to load the requested file %s" +msgstr "Impossibile caricare il file %s" -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:249 -msgid "Global bending" -msgstr "Piegatura globale" +#: ../src/file.cpp:359 +msgid "Document not saved yet. Cannot revert." +msgstr "Documento non ancora salvato. Impossibile ricaricarlo." -#: ../src/live_effects/lpe-rough-hatches.cpp:249 -msgid "" -"Relative position to a reference point defines global bending direction and " -"amount" +#: ../src/file.cpp:365 +#, fuzzy +msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" -"La posizione relativa a un punto di riferimento definisce la quantitĂ  e la " -"direzione della piegatura globale" - -#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 -#: ../share/extensions/text_extract.inx.h:8 -#: ../share/extensions/text_merge.inx.h:8 -msgid "Left" -msgstr "Sinistra" +"Le modifiche andranno perdute! Sicuri di voler ricaricare il documento %s?" -#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 -#: ../share/extensions/text_extract.inx.h:10 -#: ../share/extensions/text_merge.inx.h:10 -msgid "Right" -msgstr "Destra" +#: ../src/file.cpp:391 +msgid "Document reverted." +msgstr "Documento ricaricato." -#: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 -msgid "Both" -msgstr "Entrambe" +#: ../src/file.cpp:393 +msgid "Document not reverted." +msgstr "Documento non ricaricato." -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:326 -msgid "Start" -msgstr "Inizio" +#: ../src/file.cpp:543 +msgid "Select file to open" +msgstr "Selezionare il file da aprire" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:339 -msgid "End" -msgstr "Fine" +#: ../src/file.cpp:625 +msgid "Clean up document" +msgstr "Pulisci documento" -#: ../src/live_effects/lpe-ruler.cpp:41 -#, fuzzy -msgid "_Mark distance:" -msgstr "Distanza segni" +#: ../src/file.cpp:632 +#, c-format +msgid "Removed %i unused definition in <defs>." +msgid_plural "Removed %i unused definitions in <defs>." +msgstr[0] "Rimossa %i definizione inutilizzata in <defs>." +msgstr[1] "Rimosse %i definizioni inutilizzate in <defs>." -#: ../src/live_effects/lpe-ruler.cpp:41 -msgid "Distance between successive ruler marks" -msgstr "Distanza tra segni successivi del righello" +#: ../src/file.cpp:637 +msgid "No unused definitions in <defs>." +msgstr "Nessuna definizione inutilizzata in <defs>." -#: ../src/live_effects/lpe-ruler.cpp:42 -#: ../share/extensions/foldablebox.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:9 -#: ../share/extensions/layout_nup.inx.h:3 -#: ../share/extensions/printing_marks.inx.h:11 -msgid "Unit:" -msgstr "UnitĂ :" +#: ../src/file.cpp:669 +#, c-format +msgid "" +"No Inkscape extension found to save document (%s). This may have been " +"caused by an unknown filename extension." +msgstr "" +"Non è stata trovata alcuna estensione di Inkscape per salvare il documento " +"(%s). Ciò potrebbe esser stato causato da un'estensione del nome del file " +"sconosciuta." -#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 -msgid "Unit" -msgstr "UnitĂ " +#: ../src/file.cpp:670 ../src/file.cpp:678 ../src/file.cpp:686 +#: ../src/file.cpp:692 ../src/file.cpp:697 +msgid "Document not saved." +msgstr "Documento non salvato." -#: ../src/live_effects/lpe-ruler.cpp:43 -#, fuzzy -msgid "Ma_jor length:" -msgstr "Lunghezza principali" +#: ../src/file.cpp:677 +#, c-format +msgid "" +"File %s is write protected. Please remove write protection and try again." +msgstr "" +"Il file %s è protetto dalla scrittura. Rimuovere la protezione e riprovare." -#: ../src/live_effects/lpe-ruler.cpp:43 -msgid "Length of major ruler marks" -msgstr "Lunghezza dei segni principali del righello" +#: ../src/file.cpp:685 +#, c-format +msgid "File %s could not be saved." +msgstr "Impossibile salvare il file %s." -#: ../src/live_effects/lpe-ruler.cpp:44 -#, fuzzy -msgid "Mino_r length:" -msgstr "Lunghezza secondari" +#: ../src/file.cpp:715 ../src/file.cpp:717 +msgid "Document saved." +msgstr "Documento salvato." -#: ../src/live_effects/lpe-ruler.cpp:44 -msgid "Length of minor ruler marks" -msgstr "Lunghezza dei segni secondari del righello" +#. We are saving for the first time; create a unique default filename +#: ../src/file.cpp:860 ../src/file.cpp:1408 +msgid "drawing" +msgstr "disegno" -#: ../src/live_effects/lpe-ruler.cpp:45 -#, fuzzy -msgid "Major steps_:" -msgstr "Passi principali" +#: ../src/file.cpp:865 +msgid "drawing-%1" +msgstr "disegno-%1" -#: ../src/live_effects/lpe-ruler.cpp:45 -msgid "Draw a major mark every ... steps" -msgstr "Traccia un segno ogni tot passi" +#: ../src/file.cpp:882 +msgid "Select file to save a copy to" +msgstr "Selezionare il file in cui salvare una copia" -#: ../src/live_effects/lpe-ruler.cpp:46 -#, fuzzy -msgid "Shift marks _by:" -msgstr "Sposta segni di" +#: ../src/file.cpp:884 +msgid "Select file to save to" +msgstr "Selezionare il file da salvare" -#: ../src/live_effects/lpe-ruler.cpp:46 -msgid "Shift marks by this many steps" -msgstr "Sposta segni di questi passi" +#: ../src/file.cpp:989 ../src/file.cpp:991 +msgid "No changes need to be saved." +msgstr "Nessuna modifica da salvare." -#: ../src/live_effects/lpe-ruler.cpp:47 -#, fuzzy -msgid "Mark direction:" -msgstr "Segna direzione" +#: ../src/file.cpp:1010 +msgid "Saving document..." +msgstr "Salvataggio del documento..." -#: ../src/live_effects/lpe-ruler.cpp:47 -msgid "Direction of marks (when viewing along the path from start to end)" -msgstr "Direzione delle tacche (osservando il tracciato dall'inzio alla fine)" +#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/ui/dialog/ocaldialogs.cpp:1244 +msgid "Import" +msgstr "Importa" -#: ../src/live_effects/lpe-ruler.cpp:48 -#, fuzzy -msgid "_Offset:" -msgstr "Posizione:" +#: ../src/file.cpp:1296 +msgid "Select file to import" +msgstr "Selezionare il file da importare" -#: ../src/live_effects/lpe-ruler.cpp:48 -msgid "Offset of first mark" -msgstr "Spostamento del primo segno" +#: ../src/file.cpp:1429 +msgid "Select file to export to" +msgstr "Selezionare il file su cui esportare" -#: ../src/live_effects/lpe-ruler.cpp:49 -#, fuzzy -msgid "Border marks:" -msgstr "Segni del bordo" +#: ../src/file.cpp:1682 +msgid "Import Clip Art" +msgstr "Importa Clip Art" -#: ../src/live_effects/lpe-ruler.cpp:49 -msgid "Choose whether to draw marks at the beginning and end of the path" -msgstr "Disegna o meno le tacche all'inizio e alla fine del tracciato" +#: ../src/filter-enums.cpp:21 +msgid "Color Matrix" +msgstr "Matrice di colore" -#. initialise your parameters here: -#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), -#: ../src/live_effects/lpe-sketch.cpp:38 -#, fuzzy -msgid "Strokes:" -msgstr "Contorni" +#: ../src/filter-enums.cpp:23 +msgid "Composite" +msgstr "Composto" -#: ../src/live_effects/lpe-sketch.cpp:38 -msgid "Draw that many approximating strokes" -msgstr "Disegna un tal numero di tratti approssimanti" +#: ../src/filter-enums.cpp:24 +msgid "Convolve Matrix" +msgstr "Matrice di convoluzione" -#: ../src/live_effects/lpe-sketch.cpp:39 -#, fuzzy -msgid "Max stroke length:" -msgstr "Lunghezza massima del contorno" +#: ../src/filter-enums.cpp:25 +msgid "Diffuse Lighting" +msgstr "Illuminazione diffusa" -#: ../src/live_effects/lpe-sketch.cpp:40 -msgid "Maximum length of approximating strokes" -msgstr "Lunghezza massima del tratto approssimante" +#: ../src/filter-enums.cpp:26 +msgid "Displacement Map" +msgstr "Mappa di spostamento" -#: ../src/live_effects/lpe-sketch.cpp:41 -#, fuzzy -msgid "Stroke length variation:" -msgstr "Variazione lunghezza tratto" +#: ../src/filter-enums.cpp:27 +msgid "Flood" +msgstr "Riempimento" -#: ../src/live_effects/lpe-sketch.cpp:42 -msgid "Random variation of stroke length (relative to maximum length)" -msgstr "" -"Variazione casuale della lunghezza del contorno (relativa alla lunghezza " -"massima)" +#: ../src/filter-enums.cpp:30 ../share/extensions/text_merge.inx.h:1 +msgid "Merge" +msgstr "Mischia" -#: ../src/live_effects/lpe-sketch.cpp:43 -#, fuzzy -msgid "Max. overlap:" -msgstr "Massima sovrapposizione" +#: ../src/filter-enums.cpp:33 +msgid "Specular Lighting" +msgstr "Illuminazione speculare" -#: ../src/live_effects/lpe-sketch.cpp:44 -msgid "How much successive strokes should overlap (relative to maximum length)" -msgstr "" -"Quanti tratti successivi devono sovrapporsi (relativamente alla massima " -"lunghezza)" +#: ../src/filter-enums.cpp:34 +msgid "Tile" +msgstr "Piastrella" -#: ../src/live_effects/lpe-sketch.cpp:45 -#, fuzzy -msgid "Overlap variation:" -msgstr "Variazione sovrapposizione" +#: ../src/filter-enums.cpp:40 +msgid "Source Graphic" +msgstr "Sorgente immagine" -#: ../src/live_effects/lpe-sketch.cpp:46 -msgid "Random variation of overlap (relative to maximum overlap)" -msgstr "" -"Variazione casuale della sovrapposizione (relativa alla sovrapposizione " -"massima)" +#: ../src/filter-enums.cpp:41 +msgid "Source Alpha" +msgstr "Sorgente trasparenza" -#: ../src/live_effects/lpe-sketch.cpp:47 -#, fuzzy -msgid "Max. end tolerance:" -msgstr "Massima tolleranza terminale" +#: ../src/filter-enums.cpp:42 +msgid "Background Image" +msgstr "Immagine di sfondo" -#: ../src/live_effects/lpe-sketch.cpp:48 -msgid "" -"Maximum distance between ends of original and approximating paths (relative " -"to maximum length)" -msgstr "" -"Massima distanza tra il termine dell'originale e del tracciato " -"d'approssimazione (relativo alla massima lunghezza)" +#: ../src/filter-enums.cpp:43 +msgid "Background Alpha" +msgstr "Trasparenza dello sfondo" -#: ../src/live_effects/lpe-sketch.cpp:49 -#, fuzzy -msgid "Average offset:" -msgstr "Proiezione media" +#: ../src/filter-enums.cpp:44 +msgid "Fill Paint" +msgstr "Riempimento uniforme" -#: ../src/live_effects/lpe-sketch.cpp:50 -msgid "Average distance each stroke is away from the original path" -msgstr "Distanza media" +#: ../src/filter-enums.cpp:45 +msgid "Stroke Paint" +msgstr "Colore contorno" -#: ../src/live_effects/lpe-sketch.cpp:51 +#. New in Compositing and Blending Level 1 +#: ../src/filter-enums.cpp:57 #, fuzzy -msgid "Max. tremble:" -msgstr "Tremore massimo" +msgid "Overlay" +msgstr "Sovrapposizione" -#: ../src/live_effects/lpe-sketch.cpp:52 -msgid "Maximum tremble magnitude" -msgstr "Grandezza massima del tremore" +#: ../src/filter-enums.cpp:58 +#, fuzzy +msgid "Color Dodge" +msgstr "Colore delle linee guida" -#: ../src/live_effects/lpe-sketch.cpp:53 +#: ../src/filter-enums.cpp:59 #, fuzzy -msgid "Tremble frequency:" -msgstr "Frequenza tremore" +msgid "Color Burn" +msgstr "Barra colori" -#: ../src/live_effects/lpe-sketch.cpp:54 -msgid "Average number of tremble periods in a stroke" -msgstr "Numero medio di periodi tremolanti in un bozzetto" +#: ../src/filter-enums.cpp:60 +#, fuzzy +msgid "Hard Light" +msgstr "Altezza barre:" -#: ../src/live_effects/lpe-sketch.cpp:56 +#: ../src/filter-enums.cpp:61 #, fuzzy -msgid "Construction lines:" -msgstr "Linee di costruzione" +msgid "Soft Light" +msgstr "Punto luce" -#: ../src/live_effects/lpe-sketch.cpp:57 -msgid "How many construction lines (tangents) to draw" -msgstr "Quante linee di costruzione (tangenti) disegnare" +#: ../src/filter-enums.cpp:62 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 +msgid "Difference" +msgstr "Differenza" -#: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -#: ../share/extensions/render_alphabetsoup.inx.h:3 -msgid "Scale:" -msgstr "Ridimensiona:" +#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:100 +msgid "Exclusion" +msgstr "Esclusione" -#: ../src/live_effects/lpe-sketch.cpp:59 -msgid "" -"Scale factor relating curvature and length of construction lines (try " -"5*offset)" -msgstr "" -"Ridimensiona il fattore di relazione tra curvatura e lunghezza linee di " -"costruzione (provare 5*proiezione)" +#: ../src/filter-enums.cpp:64 ../src/ui/tools/flood-tool.cpp:196 +#: ../src/widgets/sp-color-icc-selector.cpp:361 +#: ../src/widgets/sp-color-icc-selector.cpp:365 +#: ../src/widgets/sp-color-scales.cpp:455 +#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:286 +#: ../share/extensions/color_randomize.inx.h:3 +msgid "Hue" +msgstr "TonalitĂ " -#: ../src/live_effects/lpe-sketch.cpp:60 -#, fuzzy -msgid "Max. length:" -msgstr "Lunghezza massima" +#: ../src/filter-enums.cpp:67 +msgid "Luminosity" +msgstr "" -#: ../src/live_effects/lpe-sketch.cpp:60 -msgid "Maximum length of construction lines" -msgstr "Massima lunghezza delle linee di costruzione" +#: ../src/filter-enums.cpp:77 +msgid "Matrix" +msgstr "Matrice" -#: ../src/live_effects/lpe-sketch.cpp:61 -#, fuzzy -msgid "Length variation:" -msgstr "Variazione lunghezza" +#: ../src/filter-enums.cpp:78 +msgid "Saturate" +msgstr "Satura" -#: ../src/live_effects/lpe-sketch.cpp:61 -msgid "Random variation of the length of construction lines" -msgstr "Variazione casuale della lunghezza delle linee di costruzione" +#: ../src/filter-enums.cpp:79 +msgid "Hue Rotate" +msgstr "Ruota luminositĂ " -#: ../src/live_effects/lpe-sketch.cpp:62 -#, fuzzy -msgid "Placement randomness:" -msgstr "CasualitĂ  posizione" +#: ../src/filter-enums.cpp:80 +msgid "Luminance to Alpha" +msgstr "Da luminanza a trasparenza" -#: ../src/live_effects/lpe-sketch.cpp:62 -msgid "0: evenly distributed construction lines, 1: purely random placement" -msgstr "" -"0: linee di costruzione posizionate equamente, 1: posizione totalmente " -"casuale" +#. File +#: ../src/filter-enums.cpp:86 ../src/verbs.cpp:2352 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:7 +msgid "Default" +msgstr "Predefinito" -#: ../src/live_effects/lpe-sketch.cpp:64 +#. New CSS +#: ../src/filter-enums.cpp:94 #, fuzzy -msgid "k_min:" -msgstr "k_min" - -#: ../src/live_effects/lpe-sketch.cpp:64 -msgid "min curvature" -msgstr "curvatura minima" +msgid "Clear" +msgstr "_Pulisci" -#: ../src/live_effects/lpe-sketch.cpp:65 +#: ../src/filter-enums.cpp:95 #, fuzzy -msgid "k_max:" -msgstr "k_max" +msgid "Copy" +msgstr "_Copia" -#: ../src/live_effects/lpe-sketch.cpp:65 -msgid "max curvature" -msgstr "curvatura massima" +#: ../src/filter-enums.cpp:96 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1571 +msgid "Destination" +msgstr "Destinazione" -#: ../src/live_effects/lpe-vonkoch.cpp:46 +#: ../src/filter-enums.cpp:97 #, fuzzy -msgid "N_r of generations:" -msgstr "Numero di generazioni" - -#: ../src/live_effects/lpe-vonkoch.cpp:46 -msgid "Depth of the recursion --- keep low!!" -msgstr "ProfonditĂ  della ricorsione (non aumentare troppo)" +msgid "Destination Over" +msgstr "Destinazione" -#: ../src/live_effects/lpe-vonkoch.cpp:47 +#: ../src/filter-enums.cpp:98 #, fuzzy -msgid "Generating path:" -msgstr "Tracciato generatore" - -#: ../src/live_effects/lpe-vonkoch.cpp:47 -msgid "Path whose segments define the iterated transforms" -msgstr "" -"Tracciato i cui segmenti verranno usati per definire la trasformazione " -"iterativa" +msgid "Destination In" +msgstr "Destinazione" -#: ../src/live_effects/lpe-vonkoch.cpp:48 +#: ../src/filter-enums.cpp:99 #, fuzzy -msgid "_Use uniform transforms only" -msgstr "Usa solo trasformazioni uniformi" - -#: ../src/live_effects/lpe-vonkoch.cpp:48 -msgid "" -"2 consecutive segments are used to reverse/preserve orientation only " -"(otherwise, they define a general transform)." -msgstr "" -"2 segmenti consecutivi sono usati per invertire/preservare solo " -"l'orientamento (altrimenti definiscono una trasformazione generica)." +msgid "Destination Out" +msgstr "Destinazione" -#: ../src/live_effects/lpe-vonkoch.cpp:49 +#: ../src/filter-enums.cpp:100 #, fuzzy -msgid "Dra_w all generations" -msgstr "Disegna tutte le generazioni" - -#: ../src/live_effects/lpe-vonkoch.cpp:49 -msgid "If unchecked, draw only the last generation" -msgstr "Se non selezionato, disegna solo l'ultima generazione" +msgid "Destination Atop" +msgstr "Destinazione" -#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) -#: ../src/live_effects/lpe-vonkoch.cpp:51 +#: ../src/filter-enums.cpp:101 #, fuzzy -msgid "Reference segment:" -msgstr "Segmento di riferimento" +msgid "Lighter" +msgstr "Illumina" -#: ../src/live_effects/lpe-vonkoch.cpp:51 -msgid "The reference segment. Defaults to the horizontal midline of the bbox." -msgstr "" -"Il segmento di riferimento. La mediana orizzontale del riquadro è usato come " -"predefinito." +#: ../src/filter-enums.cpp:103 +msgid "Arithmetic" +msgstr "Aritmetico" -#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), -#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), -#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. -#: ../src/live_effects/lpe-vonkoch.cpp:55 -#, fuzzy -msgid "_Max complexity:" -msgstr "ComplessitĂ  massima" +#: ../src/filter-enums.cpp:119 ../src/selection-chemistry.cpp:535 +msgid "Duplicate" +msgstr "Duplica" -#: ../src/live_effects/lpe-vonkoch.cpp:55 -msgid "Disable effect if the output is too complex" -msgstr "DisabilitĂ  l'effetto se l'output è troppo complesso" +#: ../src/filter-enums.cpp:120 +msgid "Wrap" +msgstr "Ingloba" -#: ../src/live_effects/parameter/bool.cpp:67 -msgid "Change bool parameter" -msgstr "Modifica parametri booleani" +#: ../src/filter-enums.cpp:136 +msgid "Erode" +msgstr "Erodi" -#: ../src/live_effects/parameter/enum.h:47 -msgid "Change enumeration parameter" -msgstr "Cambia parametri enumerazione" +#: ../src/filter-enums.cpp:137 +msgid "Dilate" +msgstr "Dilata" -#: ../src/live_effects/parameter/originalpath.cpp:71 -msgid "Link to path" -msgstr "Lega al tracciato" +#: ../src/filter-enums.cpp:143 +msgid "Fractal Noise" +msgstr "Rumore frattale" -#: ../src/live_effects/parameter/originalpath.cpp:83 -#, fuzzy -msgid "Select original" -msgstr "Seleziona _originale" +#: ../src/filter-enums.cpp:150 +msgid "Distant Light" +msgstr "Luce distante" -#: ../src/live_effects/parameter/parameter.cpp:141 -msgid "Change scalar parameter" -msgstr "Cambia parametri scalari" +#: ../src/filter-enums.cpp:151 +msgid "Point Light" +msgstr "Luce puntiforme" -#: ../src/live_effects/parameter/path.cpp:170 -msgid "Edit on-canvas" -msgstr "Modifica sul disegno" +#: ../src/filter-enums.cpp:152 +msgid "Spot Light" +msgstr "Punto luce" -#: ../src/live_effects/parameter/path.cpp:180 -msgid "Copy path" -msgstr "Copia tracciato" +#: ../src/gradient-chemistry.cpp:1580 +#, fuzzy +msgid "Invert gradient colors" +msgstr "Inverti gradiente" -#: ../src/live_effects/parameter/path.cpp:190 -msgid "Paste path" -msgstr "Incolla tracciato" +#: ../src/gradient-chemistry.cpp:1606 +#, fuzzy +msgid "Reverse gradient" +msgstr "Inverti gradiente" -#: ../src/live_effects/parameter/path.cpp:200 +#: ../src/gradient-chemistry.cpp:1620 ../src/widgets/gradient-selector.cpp:245 #, fuzzy -msgid "Link to path on clipboard" -msgstr "Niente negli appunti." +msgid "Delete swatch" +msgstr "Cancella passaggio" -#: ../src/live_effects/parameter/path.cpp:443 -msgid "Paste path parameter" -msgstr "Incolla parametri tracciato" +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 +msgid "Linear gradient start" +msgstr "Inizio del gradiente lineare" -#: ../src/live_effects/parameter/path.cpp:475 -msgid "Link path parameter to path" -msgstr "Lega il parametro del tracciato al parametro" +#. POINT_LG_BEGIN +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 +msgid "Linear gradient end" +msgstr "Fine del gradiente lineare" -#: ../src/live_effects/parameter/point.cpp:89 -msgid "Change point parameter" -msgstr "Modifica parametri del punto" +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 +msgid "Linear gradient mid stop" +msgstr "Passaggio intermedio del gradiente lineare" -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:229 -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:241 -msgid "" -"Stroke width control point: drag to alter the stroke width. Ctrl" -"+click adds a control point, Ctrl+Alt+click deletes it." -msgstr "" +#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 +msgid "Radial gradient center" +msgstr "Centro del gradiente radiale" -#: ../src/live_effects/parameter/random.cpp:134 -msgid "Change random parameter" -msgstr "Modifica parametri casuali" +#: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 +#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +msgid "Radial gradient radius" +msgstr "Raggio del gradiente radiale" -#: ../src/live_effects/parameter/text.cpp:100 -msgid "Change text parameter" -msgstr "Cambia parametri testo" +#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 +msgid "Radial gradient focus" +msgstr "Fuoco del gradiente radiale" -#: ../src/live_effects/parameter/unit.cpp:80 -msgid "Change unit parameter" -msgstr "Cambia unitĂ  parametri" +#. POINT_RG_FOCUS +#: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 +#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +msgid "Radial gradient mid stop" +msgstr "Passaggio intermedio del gradiente lineare" -#: ../src/live_effects/parameter/vector.cpp:99 +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 #, fuzzy -msgid "Change vector parameter" -msgstr "Cambia parametri testo" - -#: ../src/main-cmdlineact.cpp:50 -#, c-format -msgid "Unable to find verb ID '%s' specified on the command line.\n" -msgstr "" -"Impossibile trovare l'ID dell'azione «%s» specificata da riga di comando.\n" +msgid "Mesh gradient corner" +msgstr "Centro del gradiente radiale" -#: ../src/main-cmdlineact.cpp:61 -#, c-format -msgid "Unable to find node ID: '%s'\n" -msgstr "Impossibile trovare il nodo con ID «%s»\n" +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +#, fuzzy +msgid "Mesh gradient handle" +msgstr "Muovi maniglia del gradiente" -#: ../src/main.cpp:295 -msgid "Print the Inkscape version number" -msgstr "Mostra la versione di Inkscape" +#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +#, fuzzy +msgid "Mesh gradient tensor" +msgstr "Fine del gradiente lineare" -#: ../src/main.cpp:300 -msgid "Do not use X server (only process files from console)" -msgstr "Non usare il server X (processa i file da console)" +#: ../src/gradient-drag.cpp:567 +msgid "Added patch row or column" +msgstr "" -#: ../src/main.cpp:305 -msgid "Try to use X server (even if $DISPLAY is not set)" -msgstr "Prova a usare il server X (anche se $DISPLAY non è impostata)" +#: ../src/gradient-drag.cpp:797 +msgid "Merge gradient handles" +msgstr "Unisci maniglie del gradiente" -#: ../src/main.cpp:310 -msgid "Open specified document(s) (option string may be excluded)" -msgstr "Apre il documento specificato (le opzioni possono essere omesse)" +#: ../src/gradient-drag.cpp:1104 +msgid "Move gradient handle" +msgstr "Muovi maniglia del gradiente" -#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 -#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 -#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 -msgid "FILENAME" -msgstr "NOMEFILE" +#: ../src/gradient-drag.cpp:1163 ../src/widgets/gradient-vector.cpp:847 +msgid "Delete gradient stop" +msgstr "Cancella passaggio del gradiente" -#: ../src/main.cpp:315 -msgid "Print document(s) to specified output file (use '| program' for pipe)" +#: ../src/gradient-drag.cpp:1426 +#, c-format +msgid "" +"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" +"+Alt to delete stop" msgstr "" -"Stampa il documento al file di output specificato (usare'| programma' per il " -"pipe)" +"%s %d per: %s%s; trascinare con Ctrl per far scattare l'offset; con " +"Ctrl+Alt per cancellare il passaggio" -#: ../src/main.cpp:320 -msgid "Export document to a PNG file" -msgstr "Esporta il documento come file PNG" +#: ../src/gradient-drag.cpp:1430 ../src/gradient-drag.cpp:1437 +msgid " (stroke)" +msgstr " (contorno)" -#: ../src/main.cpp:325 +#: ../src/gradient-drag.cpp:1434 +#, c-format msgid "" -"Resolution for exporting to bitmap and for rasterization of filters in PS/" -"EPS/PDF (default 90)" +"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " +"preserve angle, with Ctrl+Shift to scale around center" msgstr "" -"Risoluzione per esportare in bitmap e per la resa dei filtri in PS/EPS/PDF " -"(predefinito 90)" - -#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 -msgid "DPI" -msgstr "DPI" +"%s per: %s%s; trascinare con Ctrl per far scattare l'angolo; con " +"Ctrl+Alt per mantenere l'angolo; con Ctrl+Maiusc per " +"ridimensionare attorno al centro" -#: ../src/main.cpp:330 +#: ../src/gradient-drag.cpp:1442 msgid "" -"Exported area in SVG user units (default is the page; 0,0 is lower-left " -"corner)" +"Radial gradient center and focus; drag with Shift to " +"separate focus" msgstr "" -"L'area esportata in unitĂ  utente SVG (predefinita tutta la pagina; 0,0 è " -"l'angolo inferiore sinistro)" +"Centro e fuoco del gradiente radiale; trascinare con " +"Maiusc per separare il fuoco" -#: ../src/main.cpp:331 -msgid "x0:y0:x1:y1" -msgstr "x0:y0:x1:y1" +#: ../src/gradient-drag.cpp:1445 +#, c-format +msgid "" +"Gradient point shared by %d gradient; drag with Shift to " +"separate" +msgid_plural "" +"Gradient point shared by %d gradients; drag with Shift to " +"separate" +msgstr[0] "" +"Punto di gradiente condiviso da %d gradiente; trascinare con " +"Maiusc per separare" +msgstr[1] "" +"Punto di gradiente condiviso da %d gradienti; trascinare con " +"Maiusc per separare" -#: ../src/main.cpp:335 -msgid "Exported area is the entire drawing (not page)" -msgstr "L'area esportata è il disegno intero (non la tela)" +#: ../src/gradient-drag.cpp:2377 +msgid "Move gradient handle(s)" +msgstr "Muovi maniglia del gradiente" -#: ../src/main.cpp:340 -msgid "Exported area is the entire page" -msgstr "L'area esportata è l'intera pagina" +#: ../src/gradient-drag.cpp:2413 +msgid "Move gradient mid stop(s)" +msgstr "Muovi passaggio intermedio del gradiente" -#: ../src/main.cpp:345 -msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" -msgstr "" +#: ../src/gradient-drag.cpp:2702 +msgid "Delete gradient stop(s)" +msgstr "Cancella passaggio del gradiente" -#: ../src/main.cpp:346 ../src/main.cpp:388 -msgid "VALUE" -msgstr "VALORE" +#: ../src/inkscape.cpp:344 +#, fuzzy +msgid "Autosave failed! Cannot create directory %1." +msgstr "Impossibile creare la cartella di profilo %s." -#: ../src/main.cpp:350 -msgid "" -"Snap the bitmap export area outwards to the nearest integer values (in SVG " -"user units)" -msgstr "" -"Aggancia l'area esterna di esportazione bitmap al valore intero piĂą vicino " -"(in unitĂ  utente SVG)" +#: ../src/inkscape.cpp:353 +#, fuzzy +msgid "Autosave failed! Cannot open directory %1." +msgstr "Impossibile creare la cartella di profilo %s." -#: ../src/main.cpp:355 -msgid "The width of exported bitmap in pixels (overrides export-dpi)" -msgstr "La larghezza in pixel della bitmap esportata (precede export-dpi)" +#: ../src/inkscape.cpp:369 +msgid "Autosaving documents..." +msgstr "Salvataggio automatico documenti..." -#: ../src/main.cpp:356 -msgid "WIDTH" -msgstr "LARGHEZZA" +#: ../src/inkscape.cpp:442 +msgid "Autosave failed! Could not find inkscape extension to save document." +msgstr "" +"Errore nel salvataggio automatico! Impossibile trovare un'estensione di " +"Inkscape per salvare il documento." -#: ../src/main.cpp:360 -msgid "The height of exported bitmap in pixels (overrides export-dpi)" -msgstr "L'altezza in pixel della bitmap esportata (precede export-dpi)" +#: ../src/inkscape.cpp:445 ../src/inkscape.cpp:452 +#, c-format +msgid "Autosave failed! File %s could not be saved." +msgstr "Errore nel salvataggio automatico! Impossibile salvare il file %s." -#: ../src/main.cpp:361 -msgid "HEIGHT" -msgstr "ALTEZZA" +#: ../src/inkscape.cpp:467 +msgid "Autosave complete." +msgstr "Salvataggio automatico completato." -#: ../src/main.cpp:365 -msgid "The ID of the object to export" -msgstr "L'ID dell'oggetto da esportare" +#: ../src/inkscape.cpp:715 +msgid "Untitled document" +msgstr "Documento senza nome" -#: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1505 -msgid "ID" -msgstr "ID" +#. Show nice dialog box +#: ../src/inkscape.cpp:747 +msgid "Inkscape encountered an internal error and will close now.\n" +msgstr "" +"Si è verificato un errore interno ed Inkscape verrĂ  chiuso immediatamente.\n" -#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". -#. See "man inkscape" for details. -#: ../src/main.cpp:372 +#: ../src/inkscape.cpp:748 msgid "" -"Export just the object with export-id, hide all others (only with export-id)" +"Automatic backups of unsaved documents were done to the following " +"locations:\n" msgstr "" -"Esporta solo l'oggetto con l'export-id dato, nasconde tutti gli altri (solo " -"con export-id)" +"I backup automatici dei documenti non salvati sono stati fatti ai seguenti " +"indirizzi:\n" -#: ../src/main.cpp:377 -msgid "Use stored filename and DPI hints when exporting (only with export-id)" -msgstr "" -"Usa il nome del file e il valore DPI salvato quando esporta (solo con export-" -"id)" +#: ../src/inkscape.cpp:749 +msgid "Automatic backup of the following documents failed:\n" +msgstr "Fallito il backup automatico dei seguenti documenti:\n" -#: ../src/main.cpp:382 -msgid "Background color of exported bitmap (any SVG-supported color string)" -msgstr "" -"Colore di sfondo della bitmap esportata (ogni stringa di colore supportata " -"da SVG)" +#: ../src/interface.cpp:748 +msgctxt "Interface setup" +msgid "Default" +msgstr "Predefinita" -#: ../src/main.cpp:383 -msgid "COLOR" -msgstr "COLORE" +#: ../src/interface.cpp:748 +msgid "Default interface setup" +msgstr "Impostazione interfaccia predefinita" -#: ../src/main.cpp:387 -msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" -msgstr "" -"OpacitĂ  dello sfondo della bitmap esportata (sia da 0.0 a 1.0, che da 1 a " -"255)" +#: ../src/interface.cpp:749 +msgctxt "Interface setup" +msgid "Custom" +msgstr "Personalizzata" -#: ../src/main.cpp:392 -msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" -msgstr "" -"Esporta il documento come SVG puro (senza i namespace di sodipodi o di " -"inkscape)" +#: ../src/interface.cpp:749 +msgid "Setup for custom task" +msgstr "Impostazione interfaccia personalizzata" -#: ../src/main.cpp:397 -msgid "Export document to a PS file" -msgstr "Esporta il documento come file PS" +#: ../src/interface.cpp:750 +msgctxt "Interface setup" +msgid "Wide" +msgstr "Larga" -#: ../src/main.cpp:402 -msgid "Export document to an EPS file" -msgstr "Esporta il documento come file EPS" +#: ../src/interface.cpp:750 +msgid "Setup for widescreen work" +msgstr "Impostazione interfaccia per schermi larghi" -#: ../src/main.cpp:407 -msgid "" -"Choose the PostScript Level used to export. Possible choices are 2 (the " -"default) and 3" -msgstr "" +# Verb dovrebbe essere parola chiave per menĂą scritti in XML +# del GTK+ versione 2.6 o superiore -Luca +#: ../src/interface.cpp:862 +#, c-format +msgid "Verb \"%s\" Unknown" +msgstr "Verb \"%s\" sconosciuto" -#: ../src/main.cpp:409 +#: ../src/interface.cpp:901 +msgid "Open _Recent" +msgstr "Apri _recenti" + +#: ../src/interface.cpp:1009 ../src/interface.cpp:1095 +#: ../src/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:528 +msgid "Drop color" +msgstr "Rilascia colore" + +#: ../src/interface.cpp:1048 ../src/interface.cpp:1158 +msgid "Drop color on gradient" +msgstr "Usa colore per il gradiente" + +#: ../src/interface.cpp:1211 +msgid "Could not parse SVG data" +msgstr "Impossibile leggere i dati SVG" + +#: ../src/interface.cpp:1250 +msgid "Drop SVG" +msgstr "Rilascia SVG" + +#: ../src/interface.cpp:1263 #, fuzzy -msgid "PS Level" -msgstr "Livello" +msgid "Drop Symbol" +msgstr "Khmer (km)" -#: ../src/main.cpp:413 -msgid "Export document to a PDF file" -msgstr "Esporta il documento come file PDF" +#: ../src/interface.cpp:1294 +msgid "Drop bitmap image" +msgstr "Rilascia immagine bitmap" -#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:419 +#: ../src/interface.cpp:1386 +#, c-format msgid "" -"Export PDF to given version. (hint: make sure to input the exact string " -"found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" +"A file named \"%s\" already exists. Do " +"you want to replace it?\n" +"\n" +"The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" +"Esiste giĂ  un file di nome \"%s\". Lo " +"si vuole rimpiazzare?\n" +"\n" +"Il file esiste giĂ  in \"%s\". Rimpiazzandolo si sovrascriverĂ  il contenuto." -#: ../src/main.cpp:420 -msgid "PDF_VERSION" -msgstr "" +#: ../src/interface.cpp:1392 ../src/ui/dialog/export.cpp:1302 +#: ../src/widgets/desktop-widget.cpp:1122 +#: ../src/widgets/desktop-widget.cpp:1184 +msgid "_Cancel" +msgstr "_Annulla" -#: ../src/main.cpp:424 -msgid "" -"Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is " -"exported, putting the text on top of the PDF/PS/EPS file. Include the result " -"in LaTeX like: \\input{latexfile.tex}" -msgstr "" +#: ../src/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 +#: ../share/extensions/web-transmit-att.inx.h:19 +msgid "Replace" +msgstr "Rimpiazza" -#: ../src/main.cpp:429 -msgid "Export document to an Enhanced Metafile (EMF) File" -msgstr "Esporta il documento come file Enhanced Metafile (EMF)" +#: ../src/interface.cpp:1464 +msgid "Go to parent" +msgstr "Livello superiore" -#: ../src/main.cpp:434 +#. TRANSLATORS: #%1 is the id of the group e.g. , not a number. +#: ../src/interface.cpp:1505 #, fuzzy -msgid "Export document to a Windows Metafile (WMF) File" -msgstr "Esporta il documento come file Enhanced Metafile (EMF)" +msgid "Enter group #%1" +msgstr "Modifica gruppo #%s" -#: ../src/main.cpp:439 -#, fuzzy -msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" -msgstr "Converte i testi in tracciati durante l'esportazione (PS, EPS, PDF)" +#. Item dialog +#: ../src/interface.cpp:1641 ../src/verbs.cpp:2849 +msgid "_Object Properties..." +msgstr "ProprietĂ  _oggetto..." -#: ../src/main.cpp:444 -msgid "" -"Render filtered objects without filters, instead of rasterizing (PS, EPS, " -"PDF)" -msgstr "" -"Elimina filtri nella resa di oggetti con filtri, invece di farne una " -"versione raster (PS, EPS, PDF)" +#: ../src/interface.cpp:1650 +msgid "_Select This" +msgstr "_Seleziona questo" -#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:450 -msgid "" -"Query the X coordinate of the drawing or, if specified, of the object with --" -"query-id" -msgstr "" -"Richiede la coordinata X del disegno o dell'oggetto se specificato con --" -"query-id" +#: ../src/interface.cpp:1661 +msgid "Select Same" +msgstr "Seleziona stesso" -#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:456 -msgid "" -"Query the Y coordinate of the drawing or, if specified, of the object with --" -"query-id" -msgstr "" -"Richiede la coordinata Y del disegno o dell'oggetto se specificato con --" -"query-id" +#. Select same fill and stroke +#: ../src/interface.cpp:1671 +msgid "Fill and Stroke" +msgstr "Riempimento e Contorni" -#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:462 -msgid "" -"Query the width of the drawing or, if specified, of the object with --query-" -"id" -msgstr "" -"Richiede la larghezza del disegno o dell'oggetto se specificato con --query-" -"id" +#. Select same fill color +#: ../src/interface.cpp:1678 +msgid "Fill Color" +msgstr "Colore riempimento" -#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:468 -msgid "" -"Query the height of the drawing or, if specified, of the object with --query-" -"id" -msgstr "" -"Richiede l'altezza del disegno o dell'oggetto se specificato con --query-id" +#. Select same stroke color +#: ../src/interface.cpp:1685 +msgid "Stroke Color" +msgstr "Colore contorno" -#: ../src/main.cpp:473 -msgid "List id,x,y,w,h for all objects" -msgstr "Visualizza id,x,y,w,h per tutti gli oggetti" +#. Select same stroke style +#: ../src/interface.cpp:1692 +msgid "Stroke Style" +msgstr "Stile contorno" -#: ../src/main.cpp:478 -msgid "The ID of the object whose dimensions are queried" -msgstr "L'ID dell'oggetto di cui si richiedono le dimensioni" +#. Select same stroke style +#: ../src/interface.cpp:1699 +msgid "Object type" +msgstr "Tipo oggetto" -#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory -#: ../src/main.cpp:484 -msgid "Print out the extension directory and exit" -msgstr "Stampa la directory delle estensioni e esce" +#. Move to layer +#: ../src/interface.cpp:1706 +msgid "_Move to layer ..." +msgstr "_Sposta a livello..." -#: ../src/main.cpp:489 -msgid "Remove unused definitions from the defs section(s) of the document" -msgstr "Elimina definizioni superflue dalle sezioni defs del documento" +#. Create link +#: ../src/interface.cpp:1716 +#, fuzzy +msgid "Create _Link" +msgstr "_Crea collegamento" -#: ../src/main.cpp:495 -msgid "Enter a listening loop for D-Bus messages in console mode" -msgstr "" +#. Set mask +#: ../src/interface.cpp:1739 +msgid "Set Mask" +msgstr "Imposta maschera" -#: ../src/main.cpp:500 -msgid "" -"Specify the D-Bus bus name to listen for messages on (default is org." -"inkscape)" -msgstr "" +#. Release mask +#: ../src/interface.cpp:1750 +msgid "Release Mask" +msgstr "Rimuovi maschera" -#: ../src/main.cpp:501 -msgid "BUS-NAME" -msgstr "" +#. Set Clip +#: ../src/interface.cpp:1761 +#, fuzzy +msgid "Set Cl_ip" +msgstr "Imposta fissaggio" -#: ../src/main.cpp:506 -msgid "List the IDs of all the verbs in Inkscape" -msgstr "Mostra gli ID di tutte le azioni in Inkscape" +#. Release Clip +#: ../src/interface.cpp:1772 +#, fuzzy +msgid "Release C_lip" +msgstr "Rilascia fissaggio" -#: ../src/main.cpp:511 -msgid "Verb to call when Inkscape opens." -msgstr "Azioni da compiere all'apertura di Inkscape." +#. Group +#: ../src/interface.cpp:1783 ../src/verbs.cpp:2486 +msgid "_Group" +msgstr "Ra_ggruppa" -#: ../src/main.cpp:512 -msgid "VERB-ID" -msgstr "VERB-ID" +#: ../src/interface.cpp:1854 +msgid "Create link" +msgstr "Crea collegamento" -#: ../src/main.cpp:516 -msgid "Object ID to select when Inkscape opens." -msgstr "ID dell'oggetto da selezionare all'apertura di Inkscape." +#. Ungroup +#: ../src/interface.cpp:1885 ../src/verbs.cpp:2488 +msgid "_Ungroup" +msgstr "_Dividi" -#: ../src/main.cpp:517 -msgid "OBJECT-ID" -msgstr "OBJECT-ID" +#. Link dialog +#: ../src/interface.cpp:1910 +#, fuzzy +msgid "Link _Properties..." +msgstr "ProprietĂ  Collegamento" -#: ../src/main.cpp:521 -msgid "Start Inkscape in interactive shell mode." -msgstr "Avvia Inkscape in modalitĂ  interattiva per terminale" +#. Select item +#: ../src/interface.cpp:1916 +msgid "_Follow Link" +msgstr "Segui Collegamento" -#: ../src/main.cpp:871 ../src/main.cpp:1283 -msgid "" -"[OPTIONS...] [FILE...]\n" -"\n" -"Available options:" -msgstr "" -"[OPZIONI...] [FILE...]\n" -"\n" -"Opzioni disponibili:" +#. Reset transformations +#: ../src/interface.cpp:1922 +msgid "_Remove Link" +msgstr "_Rimuovi collegamento" -#. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 -msgid "_File" -msgstr "_File" +#: ../src/interface.cpp:1953 +#, fuzzy +msgid "Remove link" +msgstr "_Rimuovi collegamento" -#: ../src/menus-skeleton.h:17 -msgid "_New" -msgstr "_Nuovo" +#. Image properties +#: ../src/interface.cpp:1964 +#, fuzzy +msgid "Image _Properties..." +msgstr "_ProprietĂ  Immagine" -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2634 ../src/verbs.cpp:2640 -msgid "_Edit" -msgstr "_Modifica" +#. Edit externally +#: ../src/interface.cpp:1970 +msgid "Edit Externally..." +msgstr "Modifica con programma esterno..." -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2398 -msgid "Paste Si_ze" -msgstr "Incolla dimen_sione" +#. Trace Bitmap +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/interface.cpp:1979 ../src/verbs.cpp:2549 +msgid "_Trace Bitmap..." +msgstr "Ve_ttorizza bitmap..." -#: ../src/menus-skeleton.h:65 -msgid "Clo_ne" -msgstr "Clo_na" +#. Trace Pixel Art +#: ../src/interface.cpp:1988 +msgid "Trace Pixel Art" +msgstr "" -#: ../src/menus-skeleton.h:79 +#: ../src/interface.cpp:1998 +#, fuzzy +msgctxt "Context menu" +msgid "Embed Image" +msgstr "Incorpora immagini" + +#: ../src/interface.cpp:2009 #, fuzzy -msgid "Select Sa_me" -msgstr "Seleziona pagina:" +msgctxt "Context menu" +msgid "Extract Image..." +msgstr "Estrai immagine" -#: ../src/menus-skeleton.h:97 -msgid "_View" -msgstr "_Visualizza" +#. Item dialog +#. Fill and Stroke dialog +#: ../src/interface.cpp:2154 ../src/interface.cpp:2174 ../src/verbs.cpp:2812 +msgid "_Fill and Stroke..." +msgstr "Riem_pimento e contorni..." -#: ../src/menus-skeleton.h:98 -msgid "_Zoom" -msgstr "_Ingrandimento" +#. Edit Text dialog +#: ../src/interface.cpp:2180 ../src/verbs.cpp:2831 +msgid "_Text and Font..." +msgstr "_Testo e carattere..." -#: ../src/menus-skeleton.h:114 -msgid "_Display mode" -msgstr "ModalitĂ  visualizzazione" +#. Spellcheck dialog +#: ../src/interface.cpp:2186 ../src/verbs.cpp:2839 +msgid "Check Spellin_g..." +msgstr "Controlla orto_grafia..." -#. Better location in menu needs to be found -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:123 -#, fuzzy -msgid "_Color display mode" -msgstr "ModalitĂ  visualizzazione" +#: ../src/knot.cpp:332 +msgid "Node or handle drag canceled." +msgstr "Nodo o maniglia cancellato." -#. Better location in menu needs to be found -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:136 -#, fuzzy -msgid "Sh_ow/Hide" -msgstr "Mostra/Nascondi" +#: ../src/knotholder.cpp:158 +msgid "Change handle" +msgstr "Modifica maniglia" -#. Not quite ready to be in the menus. -#. " \n" -#: ../src/menus-skeleton.h:156 -msgid "_Layer" -msgstr "_Livello" +#: ../src/knotholder.cpp:237 +msgid "Move handle" +msgstr "Muovi maniglia" -#: ../src/menus-skeleton.h:180 -msgid "_Object" -msgstr "_Oggetto" +#. TRANSLATORS: This refers to the pattern that's inside the object +#: ../src/knotholder.cpp:256 ../src/knotholder.cpp:278 +msgid "Move the pattern fill inside the object" +msgstr "Muove il motivo di riempimento all'interno dell'oggetto" -#: ../src/menus-skeleton.h:188 -msgid "Cli_p" -msgstr "Fi_ssaggio" +#: ../src/knotholder.cpp:260 ../src/knotholder.cpp:282 +msgid "Scale the pattern fill; uniformly if with Ctrl" +msgstr "" +"Ridimensiona il motivo di riempimento; in maniera uniforme con " +"Ctrl" -#: ../src/menus-skeleton.h:192 -msgid "Mas_k" -msgstr "Masc_hera" +#: ../src/knotholder.cpp:264 ../src/knotholder.cpp:286 +msgid "Rotate the pattern fill; with Ctrl to snap angle" +msgstr "" +"Ruota il motivo di riempimento; con Ctrl per far scattare " +"l'angolo" -#: ../src/menus-skeleton.h:196 -msgid "Patter_n" -msgstr "Moti_vo" +#: ../src/libgdl/gdl-dock-bar.c:105 +msgid "Master" +msgstr "Principale" -#: ../src/menus-skeleton.h:220 -msgid "_Path" -msgstr "_Tracciato" +#: ../src/libgdl/gdl-dock-bar.c:106 +msgid "GdlDockMaster object which the dockbar widget is attached to" +msgstr "" +"Oggetto GdlDockMaster a cui è attaccato il widget della barra del pannello" -#: ../src/menus-skeleton.h:248 ../src/ui/dialog/find.cpp:77 -#: ../src/ui/dialog/text-edit.cpp:72 -msgid "_Text" -msgstr "Te_sto" +#: ../src/libgdl/gdl-dock-bar.c:113 +msgid "Dockbar style" +msgstr "Stile barra dei pannelli" -#: ../src/menus-skeleton.h:266 -msgid "Filter_s" -msgstr "Filt_ri" +#: ../src/libgdl/gdl-dock-bar.c:114 +msgid "Dockbar style to show items on it" +msgstr "Stile della barra del pannello su cui mostrare gli oggetti" -#: ../src/menus-skeleton.h:272 -msgid "Exte_nsions" -msgstr "Este_nsioni" +#: ../src/libgdl/gdl-dock-item-grip.c:399 +msgid "Iconify this dock" +msgstr "Iconifica questo pannello" -#: ../src/menus-skeleton.h:278 -msgid "_Help" -msgstr "_Aiuto" +#: ../src/libgdl/gdl-dock-item-grip.c:401 +msgid "Close this dock" +msgstr "Chiude questo pannello" -#: ../src/menus-skeleton.h:282 -msgid "Tutorials" -msgstr "Lezioni" +#: ../src/libgdl/gdl-dock-item-grip.c:720 +#: ../src/libgdl/gdl-dock-tablabel.c:125 +msgid "Controlling dock item" +msgstr "Pannello atto al controllo" -#: ../src/object-edit.cpp:439 -msgid "" -"Adjust the horizontal rounding radius; with Ctrl to make the " -"vertical radius the same" -msgstr "" -"Modifica l'arrotondamento orizzontale; con Ctrl per rendere " -"uguale l'arrotondamento verticale" +#: ../src/libgdl/gdl-dock-item-grip.c:721 +msgid "Dockitem which 'owns' this grip" +msgstr "Pannello a cui appartiene questa scheda" -#: ../src/object-edit.cpp:444 -msgid "" -"Adjust the vertical rounding radius; with Ctrl to make the " -"horizontal radius the same" -msgstr "" -"Modifica l'arrotondamento verticale; con Ctrl per rendere " -"uguale l'arrotondamento orizzontale" +#. Name +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 +#: ../src/widgets/text-toolbar.cpp:1416 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "Orientation" +msgstr "Orientamento" -#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 -msgid "" -"Adjust the width and height of the rectangle; with Ctrl to " -"lock ratio or stretch in one dimension only" -msgstr "" -"Modifica l'altezza e la larghezza del rettangolo; con Ctrl per " -"mantenere la proporzione o allungare su una sola dimensione" +#: ../src/libgdl/gdl-dock-item.c:299 +msgid "Orientation of the docking item" +msgstr "Orientazione dell'elemento del pannello" -#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 -#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 -msgid "" -"Resize box in X/Y direction; with Shift along the Z axis; with " -"Ctrl to constrain to the directions of edges or diagonals" -msgstr "" -"Ridimensiona il solido lungo gli assi X/Y; con Maiusc per l'asse Z; " -"con Ctrl per fissare alle direzioni degli spigoli o delle diagonali" +#: ../src/libgdl/gdl-dock-item.c:314 +msgid "Resizable" +msgstr "Ridimensionabile" -#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 -#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 -msgid "" -"Resize box along the Z axis; with Shift in X/Y direction; with " -"Ctrl to constrain to the directions of edges or diagonals" +#: ../src/libgdl/gdl-dock-item.c:315 +#, fuzzy +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" msgstr "" -"Ridimensiona il solido lungo l'asse Z; con Maiusc per gli assi X/Y; " -"con Ctrl per fissare alle direzioni degli spigoli o delle diagonali" +"Se attivo, l'elemento del pannello può essere ridimensionato quando " +"incorniciato in un pannello" -#: ../src/object-edit.cpp:721 -msgid "Move the box in perspective" -msgstr "Sposta il solido in prospettiva" +#: ../src/libgdl/gdl-dock-item.c:322 +msgid "Item behavior" +msgstr "Comportamento oggetto" -#: ../src/object-edit.cpp:948 -msgid "Adjust ellipse width, with Ctrl to make circle" +#: ../src/libgdl/gdl-dock-item.c:323 +msgid "" +"General behavior for the dock item (i.e. whether it can float, if it's " +"locked, etc.)" msgstr "" -"Modifica la larghezza dell'ellisse, con Ctrl per farne un " -"cerchio" +"Comportamento predefinito del pannello (se può fluttuare, è bloccato, etc...)" -#: ../src/object-edit.cpp:952 -msgid "Adjust ellipse height, with Ctrl to make circle" -msgstr "" -"Modifica l'altezza dell'ellisse, con Ctrl per farne un cerchio" +#: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 +msgid "Locked" +msgstr "Bloccato" -#: ../src/object-edit.cpp:956 +#: ../src/libgdl/gdl-dock-item.c:332 msgid "" -"Position the start point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" +"If set, the dock item cannot be dragged around and it doesn't show a grip" msgstr "" -"Posiziona il punto iniziale dell'arco o del segmento; con Ctrl " -"per far scattare l'angolo; trascinare dentro l'ellisse per un arco, " -"fuori per un segmento" +"Se attivo, il pannello non può essere trascinato e non mostra un'etichetta " +"di controllo" -#: ../src/object-edit.cpp:961 -msgid "" -"Position the end point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" -msgstr "" -"Posizionare il punto finale dell'arco o del segmento; con Ctrl " -"per far scattare l'angolo; trascinare dentro l'ellisse per un arco, " -"fuori per un segmento" +#: ../src/libgdl/gdl-dock-item.c:340 +msgid "Preferred width" +msgstr "Larghezza preferita" -#: ../src/object-edit.cpp:1101 -msgid "" -"Adjust the tip radius of the star or polygon; with Shift to " -"round; with Alt to randomize" -msgstr "" -"Modifica il diametro della stella o del poligono; con Maiusc " -"per arrotondare; con Alt per avere casualitĂ " +#: ../src/libgdl/gdl-dock-item.c:341 +msgid "Preferred width for the dock item" +msgstr "Larghezza preferita per il pannello" -#: ../src/object-edit.cpp:1109 -msgid "" -"Adjust the base radius of the star; with Ctrl to keep star " -"rays radial (no skew); with Shift to round; with Alt to " -"randomize" -msgstr "" -"Modifica il diametro interno della stella; con Ctrl per " -"mantenere la direzione dei raggi (senza deformazione); con Maiusc per " -"arrotondare; con Alt per avere casualitĂ " +#: ../src/libgdl/gdl-dock-item.c:347 +msgid "Preferred height" +msgstr "Altezza preferita" -#: ../src/object-edit.cpp:1299 +#: ../src/libgdl/gdl-dock-item.c:348 +msgid "Preferred height for the dock item" +msgstr "Altezza preferita per il pannello" + +#: ../src/libgdl/gdl-dock-item.c:716 +#, c-format msgid "" -"Roll/unroll the spiral from inside; with Ctrl to snap angle; " -"with Alt to converge/diverge" +"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " +"some other compound dock object." msgstr "" -"Arrotola/srotola una spirale dall'interno; con Ctrl per far " -"scattare l'angolo; con Alt per far convergere/divergere" +"Non è possibile aggiungere un pannello (%p di tipo %s) all'interno di %s. " +"Usare un GdlDock o altri oggetti per pannelli." -#: ../src/object-edit.cpp:1303 -#, fuzzy +#: ../src/libgdl/gdl-dock-item.c:723 +#, c-format msgid "" -"Roll/unroll the spiral from outside; with Ctrl to snap angle; " -"with Shift to scale/rotate; with Alt to lock radius" +"Attempting to add a widget with type %s to a %s, but it can only contain one " +"widget at a time; it already contains a widget of type %s" msgstr "" -"Arrotola/srotola una spirale dall'esterno; con Ctrl per far " -"scattare l'angolo; con Maiusc per ridimensionare/ruotare" - -#: ../src/object-edit.cpp:1348 -msgid "Adjust the offset distance" -msgstr "Regola la distanza di proiezione" - -#: ../src/object-edit.cpp:1384 -msgid "Drag to resize the flowed text frame" -msgstr "Trascinare per ridimensionare il riquadro del testo dinamico" +"Tentativo di aggiunta di un widget di tipo %s a un %s, che può contenere un " +"solo widget per volta, mentre contiene giĂ  un elemento di tipo %s" -#: ../src/path-chemistry.cpp:53 -msgid "Select object(s) to combine." -msgstr "Selezionare gli oggetti da combinare." +#: ../src/libgdl/gdl-dock-item.c:1471 ../src/libgdl/gdl-dock-item.c:1521 +#, c-format +msgid "Unsupported docking strategy %s in dock object of type %s" +msgstr "Strategia di riquadro %s non supportata per un pannello di tipo %s" -#: ../src/path-chemistry.cpp:57 -msgid "Combining paths..." -msgstr "Combinazione tracciati..." +#. UnLock menuitem +#: ../src/libgdl/gdl-dock-item.c:1629 +msgid "UnLock" +msgstr "Sblocca" -#: ../src/path-chemistry.cpp:170 -msgid "Combine" -msgstr "Combina" +#. Hide menuitem. +#: ../src/libgdl/gdl-dock-item.c:1636 +msgid "Hide" +msgstr "Nascondi" -#: ../src/path-chemistry.cpp:177 -msgid "No path(s) to combine in the selection." -msgstr "Nessun tracciato da combinare nella selezione." +#. Lock menuitem +#: ../src/libgdl/gdl-dock-item.c:1641 +msgid "Lock" +msgstr "Blocca" -#: ../src/path-chemistry.cpp:189 -msgid "Select path(s) to break apart." -msgstr "Selezionare il tracciato da separare." +#: ../src/libgdl/gdl-dock-item.c:1904 +#, c-format +msgid "Attempt to bind an unbound item %p" +msgstr "Tentativo di aggancio di un oggetto libero %p" -#: ../src/path-chemistry.cpp:193 -msgid "Breaking apart paths..." -msgstr "Separazione tracciati..." +#: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 +msgid "Default title" +msgstr "Titolo predefinito" -#: ../src/path-chemistry.cpp:284 -msgid "Break apart" -msgstr "Separa" +#: ../src/libgdl/gdl-dock-master.c:142 +msgid "Default title for newly created floating docks" +msgstr "Titolo predefinito per i nuovi pannelli fluttuanti" -#: ../src/path-chemistry.cpp:286 -msgid "No path(s) to break apart in the selection." -msgstr "Nessun tracciato da separare nella selezione." +#: ../src/libgdl/gdl-dock-master.c:149 +msgid "" +"If is set to 1, all the dock items bound to the master are locked; if it's " +"0, all are unlocked; -1 indicates inconsistency among the items" +msgstr "" +"Se impostato a 1, tutti i pannelli legati al master sono bloccati; se è 0, " +"sono tutti sbloccati; -1 indica inconsistenza tra gli oggetti" -#: ../src/path-chemistry.cpp:296 -msgid "Select object(s) to convert to path." -msgstr "Selezionare l'oggetto da convertire in tracciato." +#: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 +msgid "Switcher Style" +msgstr "Stile campioni" -#: ../src/path-chemistry.cpp:302 -msgid "Converting objects to paths..." -msgstr "Conversione oggetti in tracciati..." +#: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 +msgid "Switcher buttons style" +msgstr "Stile dei bottoni di scambio" -#: ../src/path-chemistry.cpp:324 -msgid "Object to path" -msgstr "Da oggetto a tracciato" +#: ../src/libgdl/gdl-dock-master.c:783 +#, c-format +msgid "" +"master %p: unable to add object %p[%s] to the hash. There already is an " +"item with that name (%p)." +msgstr "" +"master %p: impossibile aggiungere l'oggetto %p[%s] alla serie. Esiste giĂ  un " +"oggetto con quel nome (%p)." -#: ../src/path-chemistry.cpp:326 -msgid "No objects to convert to path in the selection." -msgstr "Nessun oggetto nella selezione da convertire in tracciato." +#: ../src/libgdl/gdl-dock-master.c:955 +#, c-format +msgid "" +"The new dock controller %p is automatic. Only manual dock objects should be " +"named controller." +msgstr "" +"Il nuovo pannello controllore %p è automatico. Andrebbero impostati " +"controllori sono pannelli manuali." -#: ../src/path-chemistry.cpp:603 -msgid "Select path(s) to reverse." -msgstr "Selezionare il tracciato da invertire." +#: ../src/libgdl/gdl-dock-notebook.c:132 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 +#: ../src/ui/dialog/document-properties.cpp:153 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1497 +#: ../src/widgets/desktop-widget.cpp:1992 +#: ../share/extensions/voronoi2svg.inx.h:9 +msgid "Page" +msgstr "Pagina" -#: ../src/path-chemistry.cpp:612 -msgid "Reversing paths..." -msgstr "Inversione tracciati" +#: ../src/libgdl/gdl-dock-notebook.c:133 +msgid "The index of the current page" +msgstr "L'indice della pagina attuale" -#: ../src/path-chemistry.cpp:647 -msgid "Reverse path" -msgstr "Inverti tracciato" +#: ../src/libgdl/gdl-dock-object.c:125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1503 +#: ../src/ui/widget/page-sizer.cpp:258 +#: ../src/widgets/gradient-selector.cpp:158 +#: ../src/widgets/sp-xmlview-attr-list.cpp:54 +msgid "Name" +msgstr "Nome" -#: ../src/path-chemistry.cpp:649 -msgid "No paths to reverse in the selection." -msgstr "Nessun tracciato nella selezione da invertire." +#: ../src/libgdl/gdl-dock-object.c:126 +msgid "Unique name for identifying the dock object" +msgstr "Nome unico per identificare il pannello" -#: ../src/persp3d.cpp:293 -msgid "Toggle vanishing point" -msgstr "Attiva punto di fuga" +#: ../src/libgdl/gdl-dock-object.c:133 +msgid "Long name" +msgstr "Nome esteso" -#: ../src/persp3d.cpp:304 -msgid "Toggle multiple vanishing points" -msgstr "Attiva punti di fuga multipli" +#: ../src/libgdl/gdl-dock-object.c:134 +msgid "Human readable name for the dock object" +msgstr "Nome descrittivo del pannello" -#: ../src/preferences-skeleton.h:101 -msgid "Dip pen" -msgstr "Calamaio" +#: ../src/libgdl/gdl-dock-object.c:140 +msgid "Stock Icon" +msgstr "Icona stock" -#: ../src/preferences-skeleton.h:102 -msgid "Marker" -msgstr "Delimitatore" +#: ../src/libgdl/gdl-dock-object.c:141 +msgid "Stock icon for the dock object" +msgstr "Icona stock per il pannello" -#: ../src/preferences-skeleton.h:103 -msgid "Brush" -msgstr "Pennello" +#: ../src/libgdl/gdl-dock-object.c:147 +msgid "Pixbuf Icon" +msgstr "Icona pixbuf" -#: ../src/preferences-skeleton.h:104 -msgid "Wiggly" -msgstr "Strisciante" +#: ../src/libgdl/gdl-dock-object.c:148 +msgid "Pixbuf icon for the dock object" +msgstr "Icona pixbuf per il pannello" -#: ../src/preferences-skeleton.h:105 -msgid "Splotchy" -msgstr "Macchiato" +#: ../src/libgdl/gdl-dock-object.c:153 +msgid "Dock master" +msgstr "Pannello master" -#: ../src/preferences-skeleton.h:106 -msgid "Tracing" -msgstr "China" +#: ../src/libgdl/gdl-dock-object.c:154 +msgid "Dock master this dock object is bound to" +msgstr "Pannello master a cui questo pannello è legato" -#: ../src/preferences.cpp:134 +#: ../src/libgdl/gdl-dock-object.c:463 +#, c-format msgid "" -"Inkscape will run with default settings, and new settings will not be saved. " +"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " +"hasn't implemented this method" msgstr "" -"Inkscape verrĂ  eseguito con le impostazioni predefinite, e le nuove " -"impostazioni non verranno salvate." +"Chiamata a gdl_dock_object_dock in un pannello %p (del tipo %s) per cui " +"questo metodo non è implementato" -#. the creation failed -#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:149 +#: ../src/libgdl/gdl-dock-object.c:602 #, c-format -msgid "Cannot create profile directory %s." -msgstr "Impossibile creare la cartella di profilo %s." +msgid "" +"Dock operation requested in a non-bound object %p. The application might " +"crash" +msgstr "" +"Operazione di aggancio richiesta per un oggetto libero %p. L'applicazione " +"potrebbe andare in crash" -#. The profile dir is not actually a directory -#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:167 +#: ../src/libgdl/gdl-dock-object.c:609 #, c-format -msgid "%s is not a valid directory." -msgstr "%s non è una cartella valida." +msgid "Cannot dock %p to %p because they belong to different masters" +msgstr "Impossibile agganciare %p a %p perchĂ© appartengono a master diversi" -#. The write failed. -#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), -#. Glib::filename_to_utf8(_prefs_filename)), not_saved); -#: ../src/preferences.cpp:178 +#: ../src/libgdl/gdl-dock-object.c:651 #, c-format -msgid "Failed to create the preferences file %s." -msgstr "Impossibile file di impostazioni %s." +msgid "" +"Attempt to bind to %p an already bound dock object %p (current master: %p)" +msgstr "" +"Tentativo di agganciare a %p un pannello %p giĂ  collegato (master attuale: " +"%p)" -#: ../src/preferences.cpp:214 -#, c-format -msgid "The preferences file %s is not a regular file." -msgstr "Il file di impostazioni %s non è un file regolare." +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +msgid "Position" +msgstr "Posizione" + +#: ../src/libgdl/gdl-dock-paned.c:131 +msgid "Position of the divider in pixels" +msgstr "Posizione del divisore in pixel" + +#: ../src/libgdl/gdl-dock-placeholder.c:141 +msgid "Sticky" +msgstr "Fissato" + +#: ../src/libgdl/gdl-dock-placeholder.c:142 +msgid "" +"Whether the placeholder will stick to its host or move up the hierarchy when " +"the host is redocked" +msgstr "" +"Determina se il segnaposto resterĂ  legato al suo ospitante o scalerĂ  la " +"gerarchia quando l'ospitante viene riagganciato" -#: ../src/preferences.cpp:224 -#, c-format -msgid "The preferences file %s could not be read." -msgstr "Il file di impostazioni %s non può esser letto." +#: ../src/libgdl/gdl-dock-placeholder.c:149 +msgid "Host" +msgstr "Ospitante" -#: ../src/preferences.cpp:235 -#, c-format -msgid "The preferences file %s is not a valid XML document." -msgstr "Il file di configurazione %s non è un documento XML valido." +#: ../src/libgdl/gdl-dock-placeholder.c:150 +msgid "The dock object this placeholder is attached to" +msgstr "Il pannello a cui questo segnaposto è agganciato" -#: ../src/preferences.cpp:244 -#, c-format -msgid "The file %s is not a valid Inkscape preferences file." -msgstr "Il file %s non è un file di impostazioni Inkscape valido." +#: ../src/libgdl/gdl-dock-placeholder.c:157 +msgid "Next placement" +msgstr "Prossima posizione" -#: ../src/rdf.cpp:175 -msgid "CC Attribution" -msgstr "CC Attribuzione" +#: ../src/libgdl/gdl-dock-placeholder.c:158 +msgid "" +"The position an item will be docked to our host if a request is made to dock " +"to us" +msgstr "" +"La posizione in cui un oggetto verrĂ  agganciato all'ospitante attuale se " +"questo elemento riceverĂ  una richiesta di aggancio" -#: ../src/rdf.cpp:180 -msgid "CC Attribution-ShareAlike" -msgstr "CC Attribuzione-CondividiComeQuesto" +#: ../src/libgdl/gdl-dock-placeholder.c:168 +msgid "Width for the widget when it's attached to the placeholder" +msgstr "Larghezza del widget quando è attaccato ad un segnaposto" -#: ../src/rdf.cpp:185 -msgid "CC Attribution-NoDerivs" -msgstr "CC Attribuzione-NoDeriv" +#: ../src/libgdl/gdl-dock-placeholder.c:176 +msgid "Height for the widget when it's attached to the placeholder" +msgstr "Altezza del widget quando è attaccato ad un segnaposto" -#: ../src/rdf.cpp:190 -msgid "CC Attribution-NonCommercial" -msgstr "CC Attribuzione-NonCommerciale" +#: ../src/libgdl/gdl-dock-placeholder.c:182 +msgid "Floating Toplevel" +msgstr "Livello principale fluttuante" -#: ../src/rdf.cpp:195 -msgid "CC Attribution-NonCommercial-ShareAlike" -msgstr "CC Attribuzione-NonCommerciale-CondividiComeQuesto" +#: ../src/libgdl/gdl-dock-placeholder.c:183 +msgid "Whether the placeholder is standing in for a floating toplevel dock" +msgstr "" +"Determina se il segnaposto rimane per un pannello fluttuante di primo livello" -#: ../src/rdf.cpp:200 -msgid "CC Attribution-NonCommercial-NoDerivs" -msgstr "CC Attribuzione-NonCommerciale-NoDeriv" +#: ../src/libgdl/gdl-dock-placeholder.c:189 +#, fuzzy +msgid "X Coordinate" +msgstr "Coordinata X" -#: ../src/rdf.cpp:205 +#: ../src/libgdl/gdl-dock-placeholder.c:190 #, fuzzy -msgid "CC0 Public Domain Dedication" -msgstr "Pubblico dominio" +msgid "X coordinate for dock when floating" +msgstr "Coordinata X del pannello quando fluttuante" -#: ../src/rdf.cpp:210 -msgid "FreeArt" -msgstr "FreeArt" +#: ../src/libgdl/gdl-dock-placeholder.c:196 +#, fuzzy +msgid "Y Coordinate" +msgstr "Coordinata Y" -#: ../src/rdf.cpp:215 -msgid "Open Font License" -msgstr "Licenza Open Font" +#: ../src/libgdl/gdl-dock-placeholder.c:197 +#, fuzzy +msgid "Y coordinate for dock when floating" +msgstr "Coordinata X del pannello quando fluttuante" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 -msgid "Title:" -msgstr "Titolo:" +#: ../src/libgdl/gdl-dock-placeholder.c:499 +msgid "Attempt to dock a dock object to an unbound placeholder" +msgstr "Tentativo di aggancio di un pannello ad un segnaposto non fisso" -#: ../src/rdf.cpp:236 -msgid "A name given to the resource" +#: ../src/libgdl/gdl-dock-placeholder.c:611 +#, c-format +msgid "Got a detach signal from an object (%p) who is not our host %p" msgstr "" +"Ricevuto un segnale di distacco da un oggetto (%p) diverso dall'ospitante " +"attuale %p" -#: ../src/rdf.cpp:238 -msgid "Date:" -msgstr "Data:" - -#: ../src/rdf.cpp:239 +#: ../src/libgdl/gdl-dock-placeholder.c:636 +#, c-format msgid "" -"A point or period of time associated with an event in the lifecycle of the " -"resource" +"Something weird happened while getting the child placement for %p from " +"parent %p" msgstr "" +"Ă successo qualcosa di strano durante la richiesta della posizione di %p " +"all'elemento padre %p" -#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 -msgid "Format:" -msgstr "Formato:" +#: ../src/libgdl/gdl-dock-tablabel.c:126 +msgid "Dockitem which 'owns' this tablabel" +msgstr "Elemento del pannello a cui appartiene questa scheda" -#: ../src/rdf.cpp:242 -msgid "The file format, physical medium, or dimensions of the resource" -msgstr "" +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:677 +msgid "Floating" +msgstr "Fluttuante" -#: ../src/rdf.cpp:245 -msgid "The nature or genre of the resource" -msgstr "" +#: ../src/libgdl/gdl-dock.c:177 +msgid "Whether the dock is floating in its own window" +msgstr "Determina se il pannello è fluttuante con una propria finestra" -#: ../src/rdf.cpp:248 -msgid "Creator:" -msgstr "Creatore:" +#: ../src/libgdl/gdl-dock.c:185 +msgid "Default title for the newly created floating docks" +msgstr "Titolo predefinito per i nuovi pannelli fluttuanti" -#: ../src/rdf.cpp:249 -#, fuzzy -msgid "An entity primarily responsible for making the resource" -msgstr "Nome del responsabile della creazione del documento." +#: ../src/libgdl/gdl-dock.c:192 +msgid "Width for the dock when it's of floating type" +msgstr "Larghezza del pannello quando fluttuante" -#: ../src/rdf.cpp:251 -#, fuzzy -msgid "Rights:" -msgstr "Destro:" +#: ../src/libgdl/gdl-dock.c:200 +msgid "Height for the dock when it's of floating type" +msgstr "Altezza del pannello quando fluttuante" -#: ../src/rdf.cpp:252 -msgid "Information about rights held in and over the resource" -msgstr "" +#: ../src/libgdl/gdl-dock.c:207 +msgid "Float X" +msgstr "X fluttuante" -#: ../src/rdf.cpp:254 -msgid "Publisher:" -msgstr "Editore:" +#: ../src/libgdl/gdl-dock.c:208 +msgid "X coordinate for a floating dock" +msgstr "Coordinata X per un pannello fluttuante" -#: ../src/rdf.cpp:255 -#, fuzzy -msgid "An entity responsible for making the resource available" -msgstr "Nome del responsabile della pubblicazione del documento." +#: ../src/libgdl/gdl-dock.c:215 +msgid "Float Y" +msgstr "Y fluttuante" -#: ../src/rdf.cpp:258 -msgid "Identifier:" -msgstr "Identificatore:" +#: ../src/libgdl/gdl-dock.c:216 +msgid "Y coordinate for a floating dock" +msgstr "Coordinata Y per un pannello fluttuante" -#: ../src/rdf.cpp:259 -msgid "An unambiguous reference to the resource within a given context" -msgstr "" +#: ../src/libgdl/gdl-dock.c:476 +#, c-format +msgid "Dock #%d" +msgstr "Pannello %d" -#: ../src/rdf.cpp:262 -msgid "A related resource from which the described resource is derived" -msgstr "" +#: ../src/libnrtype/FontFactory.cpp:767 +msgid "Ignoring font without family that will crash Pango" +msgstr "I font senza famiglia che fanno andare in crash Pango vengono ignorati" -#: ../src/rdf.cpp:264 -#, fuzzy -msgid "Relation:" -msgstr "Relazione" +#: ../src/live_effects/effect.cpp:84 +msgid "doEffect stack test" +msgstr "test stack doEffect" -#: ../src/rdf.cpp:265 -#, fuzzy -msgid "A related resource" -msgstr "ModalitĂ  mi_scela:" +#: ../src/live_effects/effect.cpp:85 +msgid "Angle bisector" +msgstr "Bisettrice angolo" -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1857 -msgid "Language:" -msgstr "Lingua:" +#. TRANSLATORS: boolean operations +#: ../src/live_effects/effect.cpp:87 +msgid "Boolops" +msgstr "Operazione booleana" -#: ../src/rdf.cpp:268 -#, fuzzy -msgid "A language of the resource" -msgstr "Angolo della prima copia" +#: ../src/live_effects/effect.cpp:88 +msgid "Circle (by center and radius)" +msgstr "Cerchio (tramite centro e raggio)" -#: ../src/rdf.cpp:270 -#, fuzzy -msgid "Keywords:" -msgstr "Parole chiave" +#: ../src/live_effects/effect.cpp:89 +msgid "Circle by 3 points" +msgstr "Cerchio da 3 punti" -#: ../src/rdf.cpp:271 -#, fuzzy -msgid "The topic of the resource" -msgstr "Lato superiore della sorgente" +#: ../src/live_effects/effect.cpp:90 +msgid "Dynamic stroke" +msgstr "Contorno dinamico" -#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. -#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ -#: ../src/rdf.cpp:275 -msgid "Coverage:" -msgstr "Intento:" +#: ../src/live_effects/effect.cpp:91 ../share/extensions/extrude.inx.h:1 +msgid "Extrude" +msgstr "Estrudi" -#: ../src/rdf.cpp:276 -msgid "" -"The spatial or temporal topic of the resource, the spatial applicability of " -"the resource, or the jurisdiction under which the resource is relevant" -msgstr "" +#: ../src/live_effects/effect.cpp:92 +msgid "Lattice Deformation" +msgstr "Deformazione reticolare" -#: ../src/rdf.cpp:279 -#, fuzzy -msgid "Description:" -msgstr "Descrizione" +#: ../src/live_effects/effect.cpp:93 +msgid "Line Segment" +msgstr "Segmento" -#: ../src/rdf.cpp:280 -#, fuzzy -msgid "An account of the resource" -msgstr "Una breve descrizione del contenuto del documento." +#: ../src/live_effects/effect.cpp:94 +msgid "Mirror symmetry" +msgstr "Simmetria speculare" -#. FIXME: need to handle 1 agent per line of input -#: ../src/rdf.cpp:284 -#, fuzzy -msgid "Contributors:" -msgstr "Contributori" +#: ../src/live_effects/effect.cpp:96 +msgid "Parallel" +msgstr "Parallelo" -#: ../src/rdf.cpp:285 -#, fuzzy -msgid "An entity responsible for making contributions to the resource" -msgstr "Nome dei contributori alla realizzazione del documento." +#: ../src/live_effects/effect.cpp:97 +msgid "Path length" +msgstr "Lunghezza tracciato" -#. TRANSLATORS: URL to a page that defines the license for the document -#: ../src/rdf.cpp:289 -#, fuzzy -msgid "URI:" -msgstr "URI" +#: ../src/live_effects/effect.cpp:98 +msgid "Perpendicular bisector" +msgstr "Bisettrice perpendicolare" -#. TRANSLATORS: this is where you put a URL to a page that defines the license -#: ../src/rdf.cpp:291 -#, fuzzy -msgid "URI to this document's license's namespace definition" -msgstr "Indirizzo della licenza completa" +#: ../src/live_effects/effect.cpp:99 +msgid "Perspective path" +msgstr "Tracciato in prospettiva" -#. TRANSLATORS: fragment of XML representing the license of the document -#: ../src/rdf.cpp:295 -#, fuzzy -msgid "Fragment:" -msgstr "Frammento" +#: ../src/live_effects/effect.cpp:100 +msgid "Rotate copies" +msgstr "Ruota copie" -#: ../src/rdf.cpp:296 -#, fuzzy -msgid "XML fragment for the RDF 'License' section" -msgstr "Frammento XML per la sezione 'License' delle RDF." +#: ../src/live_effects/effect.cpp:101 +msgid "Recursive skeleton" +msgstr "Scheletro ricorsivo" -#: ../src/resource-manager.cpp:332 -msgid "Fixup broken links" -msgstr "" +#: ../src/live_effects/effect.cpp:102 +msgid "Tangent to curve" +msgstr "Tangente alla curva" -#: ../src/selection-chemistry.cpp:396 -msgid "Delete text" -msgstr "Elimina testo" +#: ../src/live_effects/effect.cpp:103 +msgid "Text label" +msgstr "Etichetta testuale" -#: ../src/selection-chemistry.cpp:404 -msgid "Nothing was deleted." -msgstr "Niente da eliminare." +#. 0.46 +#: ../src/live_effects/effect.cpp:106 +msgid "Bend" +msgstr "Piegatura" -#: ../src/selection-chemistry.cpp:423 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:278 ../src/ui/tools/text-tool.cpp:974 -#: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1178 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-toolbar.cpp:1206 -#: ../src/widgets/node-toolbar.cpp:401 -msgid "Delete" -msgstr "Elimina" +#: ../src/live_effects/effect.cpp:107 +msgid "Gears" +msgstr "Ingranaggi" -#: ../src/selection-chemistry.cpp:451 -msgid "Select object(s) to duplicate." -msgstr "Selezionare l'oggetto da duplicare." +#: ../src/live_effects/effect.cpp:108 +msgid "Pattern Along Path" +msgstr "Motivo lungo tracciato" -#: ../src/selection-chemistry.cpp:560 -msgid "Delete all" -msgstr "Elimina tutto" +#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG +#: ../src/live_effects/effect.cpp:109 +msgid "Stitch Sub-Paths" +msgstr "Cucitura sotto-tracciati" -#: ../src/selection-chemistry.cpp:750 -msgid "Select some objects to group." -msgstr "Selezionare piĂą oggetti da raggruppare." +#. 0.47 +#: ../src/live_effects/effect.cpp:111 +msgid "VonKoch" +msgstr "VonKoch" -#: ../src/selection-chemistry.cpp:765 ../src/sp-item-group.cpp:329 -msgid "Group" -msgstr "Raggruppa" +#: ../src/live_effects/effect.cpp:112 +msgid "Knot" +msgstr "Nodo" -#: ../src/selection-chemistry.cpp:788 -msgid "Select a group to ungroup." -msgstr "Selezionare un gruppo da dividere." +#: ../src/live_effects/effect.cpp:113 +msgid "Construct grid" +msgstr "Costruzione griglia" -#: ../src/selection-chemistry.cpp:803 -msgid "No groups to ungroup in the selection." -msgstr "Nessun gruppo nella selezione da dividere." +#: ../src/live_effects/effect.cpp:114 +msgid "Spiro spline" +msgstr "Spline Spiro" -#: ../src/selection-chemistry.cpp:861 ../src/sp-item-group.cpp:562 -msgid "Ungroup" -msgstr "Dividi" +#: ../src/live_effects/effect.cpp:115 +msgid "Envelope Deformation" +msgstr "Deformazione a busta" -#: ../src/selection-chemistry.cpp:942 -msgid "Select object(s) to raise." -msgstr "Selezionare l'oggetto da alzare." +#: ../src/live_effects/effect.cpp:116 +msgid "Interpolate Sub-Paths" +msgstr "Interpola sotto-tracciati" -#: ../src/selection-chemistry.cpp:948 ../src/selection-chemistry.cpp:1004 -#: ../src/selection-chemistry.cpp:1032 ../src/selection-chemistry.cpp:1093 -msgid "" -"You cannot raise/lower objects from different groups or layers." -msgstr "" -"Non è possibile alzare/abbassare oggetti in gruppi o livelli " -"differenti." +#: ../src/live_effects/effect.cpp:117 +msgid "Hatches (rough)" +msgstr "Scarabocchi (grezzo)" -#. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:988 +#: ../src/live_effects/effect.cpp:118 +msgid "Sketch" +msgstr "Bozzetto" + +#: ../src/live_effects/effect.cpp:119 +msgid "Ruler" +msgstr "Righello" + +#. 0.49 +#: ../src/live_effects/effect.cpp:121 #, fuzzy -msgctxt "Undo action" -msgid "Raise" -msgstr "Alza" +msgid "Power stroke" +msgstr "Motivo del contorno" -#: ../src/selection-chemistry.cpp:996 -msgid "Select object(s) to raise to top." -msgstr "Selezionare l'oggetto da spostare in cima." +#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2837 +#, fuzzy +msgid "Clone original path" +msgstr "Sostituisci testo" -#: ../src/selection-chemistry.cpp:1019 -msgid "Raise to top" -msgstr "Sposta in cima" +#: ../src/live_effects/effect.cpp:284 +msgid "Is visible?" +msgstr "Visibile?" -#: ../src/selection-chemistry.cpp:1026 -msgid "Select object(s) to lower." -msgstr "Selezionare l'oggetto da abbassare." +#: ../src/live_effects/effect.cpp:284 +msgid "" +"If unchecked, the effect remains applied to the object but is temporarily " +"disabled on canvas" +msgstr "" +"Se non selezionato, l'effetto rimane applicato all'oggetto ma è " +"temporaneamente disabilitato sulla tela" -#. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1077 -#, fuzzy -msgctxt "Undo action" -msgid "Lower" -msgstr "Abbassa" +#: ../src/live_effects/effect.cpp:305 +msgid "No effect" +msgstr "Nessun effetto" -#: ../src/selection-chemistry.cpp:1085 -msgid "Select object(s) to lower to bottom." -msgstr "Selezionare l'oggetto da spostare in fondo." +#: ../src/live_effects/effect.cpp:352 +#, c-format +msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" +msgstr "Specificare un tracciato parametro per l'effetto «%s» con %d clic" -#: ../src/selection-chemistry.cpp:1120 -msgid "Lower to bottom" -msgstr "Sposta in fondo" +#: ../src/live_effects/effect.cpp:624 +#, c-format +msgid "Editing parameter %s." +msgstr "Modifica del parametro %s." -#: ../src/selection-chemistry.cpp:1130 -msgid "Nothing to undo." -msgstr "Niente da annullare." +#: ../src/live_effects/effect.cpp:629 +msgid "None of the applied path effect's parameters can be edited on-canvas." +msgstr "" +"Nessuno dei parametri dell'effetto su tracciato applicato può essere " +"modificato direttamente sulla tela." -#: ../src/selection-chemistry.cpp:1141 -msgid "Nothing to redo." -msgstr "Niente da ripetere." +#: ../src/live_effects/lpe-bendpath.cpp:53 +#, fuzzy +msgid "Bend path:" +msgstr "Tracciato di piega" -#: ../src/selection-chemistry.cpp:1208 -msgid "Paste" -msgstr "Incolla" +#: ../src/live_effects/lpe-bendpath.cpp:53 +msgid "Path along which to bend the original path" +msgstr "Tracciato secondo il quale piegare il tracciato originale" -#: ../src/selection-chemistry.cpp:1216 -msgid "Paste style" -msgstr "Incolla stile" +#: ../src/live_effects/lpe-bendpath.cpp:54 +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "_Width:" +msgstr "_Larghezza:" -#: ../src/selection-chemistry.cpp:1226 -msgid "Paste live path effect" -msgstr "Incolla effetto su tracciato" +#: ../src/live_effects/lpe-bendpath.cpp:54 +msgid "Width of the path" +msgstr "Larghezza del tracciato" -#: ../src/selection-chemistry.cpp:1248 -msgid "Select object(s) to remove live path effects from." -msgstr "" -"Selezionare gli oggetti da cui rimuovere gli effetti su tracciato." +#: ../src/live_effects/lpe-bendpath.cpp:55 +#, fuzzy +msgid "W_idth in units of length" +msgstr "Larghezza in unitĂ  di lunghezza" -#: ../src/selection-chemistry.cpp:1260 -msgid "Remove live path effect" -msgstr "Rimuovi effetto su tracciato" +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "Scale the width of the path in units of its length" +msgstr "Ridimensiona la larghezza del motivo in unitĂ  della sua lunghezza" -#: ../src/selection-chemistry.cpp:1271 -msgid "Select object(s) to remove filters from." -msgstr "Selezionare gli oggetti da cui rimuovere i filtri." +#: ../src/live_effects/lpe-bendpath.cpp:56 +#, fuzzy +msgid "_Original path is vertical" +msgstr "Tracciato verticale" -#: ../src/selection-chemistry.cpp:1281 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 -msgid "Remove filter" -msgstr "Rimuovi filtro" +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "Rotates the original 90 degrees, before bending it along the bend path" +msgstr "" +"Ruota l'originale di 90 gradi, prima di piegarlo lungo il tracciato di " +"piegatura" -#: ../src/selection-chemistry.cpp:1290 -msgid "Paste size" -msgstr "Incolla dimensione" +#: ../src/live_effects/lpe-clone-original.cpp:18 +#, fuzzy +msgid "Linked path:" +msgstr "Lega al tracciato" -#: ../src/selection-chemistry.cpp:1299 -msgid "Paste size separately" -msgstr "Incolla dimensione separatamente" +#: ../src/live_effects/lpe-clone-original.cpp:18 +#, fuzzy +msgid "Path from which to take the original path data" +msgstr "Tracciato secondo il quale piegare il tracciato originale" -#: ../src/selection-chemistry.cpp:1309 -msgid "Select object(s) to move to the layer above." -msgstr "Selezionare l'oggetto da spostare al livello superiore." +#: ../src/live_effects/lpe-constructgrid.cpp:27 +#, fuzzy +msgid "Size _X:" +msgstr "Dimensione X" -#: ../src/selection-chemistry.cpp:1335 -msgid "Raise to next layer" -msgstr "Sposta al livello successivo" +#: ../src/live_effects/lpe-constructgrid.cpp:27 +msgid "The size of the grid in X direction." +msgstr "Dimensione della griglia sulla direzione X." -#: ../src/selection-chemistry.cpp:1342 -msgid "No more layers above." -msgstr "Nessun livello superiore." +#: ../src/live_effects/lpe-constructgrid.cpp:28 +#, fuzzy +msgid "Size _Y:" +msgstr "Dimensione Y" -#: ../src/selection-chemistry.cpp:1354 -msgid "Select object(s) to move to the layer below." -msgstr "Selezionare l'oggetto da spostare al livello inferiore." +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "The size of the grid in Y direction." +msgstr "Dimensione della griglia sulla direzione Y." -#: ../src/selection-chemistry.cpp:1380 -msgid "Lower to previous layer" -msgstr "Sposta al livello precedente" +#: ../src/live_effects/lpe-curvestitch.cpp:41 +#, fuzzy +msgid "Stitch path:" +msgstr "Tracciato di cucitura" -#: ../src/selection-chemistry.cpp:1387 -msgid "No more layers below." -msgstr "Nessun livello inferiore." +#: ../src/live_effects/lpe-curvestitch.cpp:41 +msgid "The path that will be used as stitch." +msgstr "Il tracciato che sarĂ  usato come cucitura." -#: ../src/selection-chemistry.cpp:1399 +#: ../src/live_effects/lpe-curvestitch.cpp:42 #, fuzzy -msgid "Select object(s) to move." -msgstr "Selezionare l'oggetto da abbassare." +msgid "N_umber of paths:" +msgstr "Numero di tracciati" -#: ../src/selection-chemistry.cpp:1416 ../src/verbs.cpp:2577 +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "The number of paths that will be generated." +msgstr "Numero di tracciati che verranno generati." + +#: ../src/live_effects/lpe-curvestitch.cpp:43 #, fuzzy -msgid "Move selection to layer" -msgstr "Sposta selezione al li_vello superiore" +msgid "Sta_rt edge variance:" +msgstr "Varianza margine iniziale" -#. An SVG element cannot have a transform. We could change 'x' and 'y' in response -#. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1503 ../src/seltrans.cpp:388 -msgid "Cannot transform an embedded SVG." +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "" +"The amount of random jitter to move the start points of the stitches inside " +"& outside the guide path" msgstr "" +"La quantitĂ  casuale di cui muovere il punto iniziale dei fili verso " +"l'interno o l'esterno del tracciato guida" -#: ../src/selection-chemistry.cpp:1647 -msgid "Remove transform" -msgstr "Rimuovi trasformazione" - -#: ../src/selection-chemistry.cpp:1750 +#: ../src/live_effects/lpe-curvestitch.cpp:44 #, fuzzy -msgid "Rotate 90° CCW" -msgstr "Ruota di 90° anti-orari" +msgid "Sta_rt spacing variance:" +msgstr "Varianza spaziatura iniziale" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "" +"The amount of random shifting to move the start points of the stitches back " +"& forth along the guide path" +msgstr "" +"La quantitĂ  casuale di cui muovere il punto iniziale dei fili avanti e " +"indietro lungo il tracciato guida" -#: ../src/selection-chemistry.cpp:1750 +#: ../src/live_effects/lpe-curvestitch.cpp:45 #, fuzzy -msgid "Rotate 90° CW" -msgstr "Ruota di 90° orari" +msgid "End ed_ge variance:" +msgstr "Varianza margine finale" -#: ../src/selection-chemistry.cpp:1771 ../src/seltrans.cpp:483 -#: ../src/ui/dialog/transformation.cpp:894 -msgid "Rotate" -msgstr "Ruota" +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "" +"The amount of randomness that moves the end points of the stitches inside & " +"outside the guide path" +msgstr "" +"La quantitĂ  casuale di cui muovere il punto finale dei fili verso l'interno " +"o l'esterno del tracciato guida" -#: ../src/selection-chemistry.cpp:2142 -msgid "Rotate by pixels" -msgstr "Ruota tramite pixel" +#: ../src/live_effects/lpe-curvestitch.cpp:46 +#, fuzzy +msgid "End spa_cing variance:" +msgstr "Varianza spaziatura iniziale" -#: ../src/selection-chemistry.cpp:2172 ../src/seltrans.cpp:480 -#: ../src/ui/dialog/transformation.cpp:869 -#: ../share/extensions/interp_att_g.inx.h:12 -msgid "Scale" -msgstr "Ridimensiona" +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "" +"The amount of random shifting to move the end points of the stitches back & " +"forth along the guide path" +msgstr "" +"La quantitĂ  casuale di cui muovere il punto iniziale dei fili avanti e " +"indietro lungo il tracciato guida" -#: ../src/selection-chemistry.cpp:2197 -msgid "Scale by whole factor" -msgstr "Ridimensiona di un fattore intero" +#: ../src/live_effects/lpe-curvestitch.cpp:47 +#, fuzzy +msgid "Scale _width:" +msgstr "Ridimensiona larghezza" -#: ../src/selection-chemistry.cpp:2212 -msgid "Move vertically" -msgstr "Muovi verticalmente" +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "Scale the width of the stitch path" +msgstr "Ridimensiona la larghezza del tracciato di cucitura" -#: ../src/selection-chemistry.cpp:2215 -msgid "Move horizontally" -msgstr "Muovi orizzontalmente" +#: ../src/live_effects/lpe-curvestitch.cpp:48 +#, fuzzy +msgid "Scale _width relative to length" +msgstr "Ridimensiona larghezza relativamente alla lunghezza" -#: ../src/selection-chemistry.cpp:2218 ../src/selection-chemistry.cpp:2244 -#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:807 -msgid "Move" -msgstr "Muovi" +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale the width of the stitch path relative to its length" +msgstr "" +"Ridimensiona la larghezza del tracciato di cucitura relativamente alla sua " +"lunghezza" -#: ../src/selection-chemistry.cpp:2238 -msgid "Move vertically by pixels" -msgstr "Scosta verticalmente di pixel" +#: ../src/live_effects/lpe-envelope.cpp:31 +#, fuzzy +msgid "Top bend path:" +msgstr "Tracciato lato superiore" -#: ../src/selection-chemistry.cpp:2241 -msgid "Move horizontally by pixels" -msgstr "Scosta orizzontalmente di pixel" +#: ../src/live_effects/lpe-envelope.cpp:31 +msgid "Top path along which to bend the original path" +msgstr "" +"Tracciato del lato superiore usato per deformare il tracciato originale" -#: ../src/selection-chemistry.cpp:2373 -msgid "The selection has no applied path effect." -msgstr "La selezione non ha applicato alcun effetto su tracciato." +#: ../src/live_effects/lpe-envelope.cpp:32 +#, fuzzy +msgid "Right bend path:" +msgstr "Tracciato lato destro" -#: ../src/selection-chemistry.cpp:2542 ../src/ui/dialog/clonetiler.cpp:2218 -msgid "Select an object to clone." -msgstr "Selezionare un oggetto da clonare." +#: ../src/live_effects/lpe-envelope.cpp:32 +msgid "Right path along which to bend the original path" +msgstr "Tracciato del lato destro usato per deformare il tracciato originale" -#: ../src/selection-chemistry.cpp:2578 +#: ../src/live_effects/lpe-envelope.cpp:33 #, fuzzy -msgctxt "Action" -msgid "Clone" -msgstr "Clonato" +msgid "Bottom bend path:" +msgstr "Tracciato lato inferiore" -#: ../src/selection-chemistry.cpp:2594 -msgid "Select clones to relink." -msgstr "Selezionare i cloni da ricollegare." +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Bottom path along which to bend the original path" +msgstr "" +"Tracciato del lato inferiore usato per deformare il tracciato originale" -#: ../src/selection-chemistry.cpp:2601 -msgid "Copy an object to clipboard to relink clones to." -msgstr "Copiare un oggetto negli appunti per ricollegargli i cloni." +#: ../src/live_effects/lpe-envelope.cpp:34 +#, fuzzy +msgid "Left bend path:" +msgstr "Tracciato lato sinistro" -#: ../src/selection-chemistry.cpp:2625 -msgid "No clones to relink in the selection." -msgstr "Nessun clone da ricollegare nella selezione." +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Left path along which to bend the original path" +msgstr "Tracciato del lato sinistro usato per deformare il tracciato originale" -#: ../src/selection-chemistry.cpp:2628 -msgid "Relink clone" -msgstr "RIcollega clone" +#: ../src/live_effects/lpe-envelope.cpp:35 +#, fuzzy +msgid "E_nable left & right paths" +msgstr "Abilita tracciati destro e sinistro" -#: ../src/selection-chemistry.cpp:2642 -msgid "Select clones to unlink." -msgstr "Selezionare i cloni da scollegare." +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "Enable the left and right deformation paths" +msgstr "Attiva i tracciati di deformazione destro e sinistro" -#: ../src/selection-chemistry.cpp:2696 -msgid "No clones to unlink in the selection." -msgstr "Nessun clone da scollegare nella selezione." +#: ../src/live_effects/lpe-envelope.cpp:36 +#, fuzzy +msgid "_Enable top & bottom paths" +msgstr "Abilita tracciati in cima e in fondo" -#: ../src/selection-chemistry.cpp:2700 -msgid "Unlink clone" -msgstr "Scollega clone" +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "Enable the top and bottom deformation paths" +msgstr "Attiva i tracciati di deformazione inferiore e superiore" -#: ../src/selection-chemistry.cpp:2713 -msgid "" -"Select a clone to go to its original. Select a linked offset " -"to go to its source. Select a text on path to go to the path. Select " -"a flowed text to go to its frame." -msgstr "" -"Selezionare un clone per andare al suo originale. Selezionare una " -"proiezione collegata per andare alla sua fonte. Selezionare un " -"testo su tracciato per andare al tracciato. Selezionare un testo " -"dinamico per andare al suo riquadro." +#: ../src/live_effects/lpe-extrude.cpp:30 +#, fuzzy +msgid "Direction" +msgstr "Descrizione" -#: ../src/selection-chemistry.cpp:2746 -msgid "" -"Cannot find the object to select (orphaned clone, offset, textpath, " -"flowed text?)" +#: ../src/live_effects/lpe-extrude.cpp:30 +msgid "Defines the direction and magnitude of the extrusion" msgstr "" -"Impossibile trovare l'oggetto da selezionare (clone orfano, " -"proiezione, testo su percorso o testo dinamico?)" -#: ../src/selection-chemistry.cpp:2752 +#: ../src/live_effects/lpe-gears.cpp:214 +#, fuzzy +msgid "_Teeth:" +msgstr "Denti" + +#: ../src/live_effects/lpe-gears.cpp:214 +msgid "The number of teeth" +msgstr "Numero di denti" + +#: ../src/live_effects/lpe-gears.cpp:215 +#, fuzzy +msgid "_Phi:" +msgstr "Phi" + +#: ../src/live_effects/lpe-gears.cpp:215 msgid "" -"The object you're trying to select is not visible (it is in <" -"defs>)" +"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " +"contact." msgstr "" -"L'oggetto che si vuole selezionare non è visibile (è in <defs>)" +"Angolo di pressione dei denti (tipicamente 20-25 gradi). Il rapporto tra i " +"denti non in contatto." -#: ../src/selection-chemistry.cpp:2797 +#: ../src/live_effects/lpe-interpolate.cpp:31 #, fuzzy -msgid "Select one path to clone." -msgstr "Selezionare un oggetto da clonare." +msgid "Trajectory:" +msgstr "Traiettoria" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Path along which intermediate steps are created." +msgstr "Tracciato lungo il quale creare i passaggi intermedi." -#: ../src/selection-chemistry.cpp:2801 +#: ../src/live_effects/lpe-interpolate.cpp:32 #, fuzzy -msgid "Select one path to clone." -msgstr "Selezionare un oggetto da clonare." +msgid "Steps_:" +msgstr "Scatti" -#: ../src/selection-chemistry.cpp:2857 -msgid "Select object(s) to convert to marker." -msgstr "Selezionare l'oggetto da convertire in delimitatore." +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Determines the number of steps from start to end path." +msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" -#: ../src/selection-chemistry.cpp:2924 -msgid "Objects to marker" -msgstr "Da oggetto a delimitatore" +#: ../src/live_effects/lpe-interpolate.cpp:33 +#, fuzzy +msgid "E_quidistant spacing" +msgstr "Spaziatura equidistante" -#: ../src/selection-chemistry.cpp:2948 -msgid "Select object(s) to convert to guides." -msgstr "Selezionare l'oggetto da convertire in guide." +#: ../src/live_effects/lpe-interpolate.cpp:33 +msgid "" +"If true, the spacing between intermediates is constant along the length of " +"the path. If false, the distance depends on the location of the nodes of the " +"trajectory path." +msgstr "" +"Se attivo, la spaziatura tra i passaggi intermedi sarĂ  costante per la " +"lunghezza del tracciato. Altrimenti, la distanza sarĂ  determinata dalla " +"posizione dei nodi del tracciato di sostegno." -#: ../src/selection-chemistry.cpp:2971 -msgid "Objects to guides" -msgstr "Da oggetto a guida" +#. initialise your parameters here: +#: ../src/live_effects/lpe-knot.cpp:350 +#, fuzzy +msgid "Fi_xed width:" +msgstr "Larghezza fissa" + +#: ../src/live_effects/lpe-knot.cpp:350 +msgid "Size of hidden region of lower string" +msgstr "Dimensione della regione nascosta della stringa inferiore" -#: ../src/selection-chemistry.cpp:3007 +#: ../src/live_effects/lpe-knot.cpp:351 #, fuzzy -msgid "Select objects to convert to symbol." -msgstr "Selezionare l'oggetto da convertire in delimitatore." +msgid "_In units of stroke width" +msgstr "In unitĂ  della larghezza contorno" -#: ../src/selection-chemistry.cpp:3113 -msgid "Group to symbol" +#: ../src/live_effects/lpe-knot.cpp:351 +msgid "Consider 'Interruption width' as a ratio of stroke width" msgstr "" +"Considera «Dimensione interruzione\" in rapporto alla dimensione del tratto" -#: ../src/selection-chemistry.cpp:3132 +#: ../src/live_effects/lpe-knot.cpp:352 #, fuzzy -msgid "Select a symbol to extract objects from." -msgstr "" -"Selezionare un oggetto con motivo di riempimento da cui estrarre " -"l'oggetto." +msgid "St_roke width" +msgstr "Larghezza contorno" -#: ../src/selection-chemistry.cpp:3141 -msgid "Select only one symbol in Symbol dialog to convert to group." -msgstr "" +#: ../src/live_effects/lpe-knot.cpp:352 +msgid "Add the stroke width to the interruption size" +msgstr "Aggiunge la larghezza del tratto alla dimensione dell'interruzione" -#: ../src/selection-chemistry.cpp:3199 -msgid "Group from symbol" +#: ../src/live_effects/lpe-knot.cpp:353 +#, fuzzy +msgid "_Crossing path stroke width" +msgstr "Larghezza contorno tracciato intersecato" + +#: ../src/live_effects/lpe-knot.cpp:353 +msgid "Add crossed stroke width to the interruption size" msgstr "" +"Aggiunge la larghezza del tracciato intersecato alla dimensione " +"dell'interruzione" -#: ../src/selection-chemistry.cpp:3217 -msgid "Select object(s) to convert to pattern." -msgstr "Selezionare l'oggetto da convertire in motivo." +#: ../src/live_effects/lpe-knot.cpp:354 +#, fuzzy +msgid "S_witcher size:" +msgstr "Dimensione indicatore" -#: ../src/selection-chemistry.cpp:3307 -msgid "Objects to pattern" -msgstr "Da oggetto a motivo" +#: ../src/live_effects/lpe-knot.cpp:354 +msgid "Orientation indicator/switcher size" +msgstr "Direzione indicatore/dimensione selettore" -#: ../src/selection-chemistry.cpp:3323 -msgid "Select an object with pattern fill to extract objects from." -msgstr "" -"Selezionare un oggetto con motivo di riempimento da cui estrarre " -"l'oggetto." +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "Crossing Signs" +msgstr "Segni intersezione" -#: ../src/selection-chemistry.cpp:3378 -msgid "No pattern fills in the selection." -msgstr "Nessun motivo di riempimento nella selezione." +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "Crossings signs" +msgstr "Segni intersezioni" -#: ../src/selection-chemistry.cpp:3381 -msgid "Pattern to objects" -msgstr "Da motivo a oggetto" +#: ../src/live_effects/lpe-knot.cpp:622 +msgid "Drag to select a crossing, click to flip it" +msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" -#: ../src/selection-chemistry.cpp:3472 -msgid "Select object(s) to make a bitmap copy." -msgstr "Selezionare l'oggetto di cui fare una copia bitmap." +#. / @todo Is this the right verb? +#: ../src/live_effects/lpe-knot.cpp:660 +msgid "Change knot crossing" +msgstr "Cambia intersezione nodo" -#: ../src/selection-chemistry.cpp:3476 -msgid "Rendering bitmap..." -msgstr "Creazione bitmap..." +#: ../src/live_effects/lpe-patternalongpath.cpp:50 +#: ../share/extensions/pathalongpath.inx.h:10 +msgid "Single" +msgstr "Singolo" -#: ../src/selection-chemistry.cpp:3655 -msgid "Create bitmap" -msgstr "Crea bitmap" +#: ../src/live_effects/lpe-patternalongpath.cpp:51 +#: ../share/extensions/pathalongpath.inx.h:11 +msgid "Single, stretched" +msgstr "Singolo, adattato" -#: ../src/selection-chemistry.cpp:3687 -msgid "Select object(s) to create clippath or mask from." -msgstr "" -"Selezionare l'oggetto da cui creare la maschera o il fissaggio." +#: ../src/live_effects/lpe-patternalongpath.cpp:52 +#: ../share/extensions/pathalongpath.inx.h:12 +msgid "Repeated" +msgstr "Ripetuto" -#: ../src/selection-chemistry.cpp:3690 -msgid "Select mask object and object(s) to apply clippath or mask to." -msgstr "" -"Selezionare l'oggetto mascher e l'oggetto a cui applicare la maschera " -"o il fissaggio." +#: ../src/live_effects/lpe-patternalongpath.cpp:53 +#: ../share/extensions/pathalongpath.inx.h:13 +msgid "Repeated, stretched" +msgstr "Ripetuto, adattato" -#: ../src/selection-chemistry.cpp:3873 -msgid "Set clipping path" -msgstr "Imposta fissaggio" +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +#, fuzzy +msgid "Pattern source:" +msgstr "Motivo sorgente" -#: ../src/selection-chemistry.cpp:3875 -msgid "Set mask" -msgstr "Imposta maschera" +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +msgid "Path to put along the skeleton path" +msgstr "Tracciato da mettere sul tracciato scheletro" -#: ../src/selection-chemistry.cpp:3890 -msgid "Select object(s) to remove clippath or mask from." -msgstr "" -"Selezionare l'oggetto da cui rimuovere la maschera o il fissaggio." +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +#, fuzzy +msgid "Pattern copies:" +msgstr "Motivi copia" -#: ../src/selection-chemistry.cpp:4001 -msgid "Release clipping path" -msgstr "Rimuovi fissaggio" +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +msgid "How many pattern copies to place along the skeleton path" +msgstr "Numero di copie del motivo da ripetere lungo il tracciato scheletro" -#: ../src/selection-chemistry.cpp:4003 -msgid "Release mask" -msgstr "Rimuovi maschera" +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +msgid "Width of the pattern" +msgstr "Larghezza del motivo" -#: ../src/selection-chemistry.cpp:4022 -msgid "Select object(s) to fit canvas to." -msgstr "Selezionare l'oggetto a cui adattare la tela." +#: ../src/live_effects/lpe-patternalongpath.cpp:63 +#, fuzzy +msgid "Wid_th in units of length" +msgstr "Larghezza in unitĂ  di lunghezza" -#. Fit Page -#: ../src/selection-chemistry.cpp:4042 ../src/verbs.cpp:2905 -msgid "Fit Page to Selection" -msgstr "Adatta pagina alla selezione" +#: ../src/live_effects/lpe-patternalongpath.cpp:64 +msgid "Scale the width of the pattern in units of its length" +msgstr "Ridimensiona la larghezza del motivo in unitĂ  della sua lunghezza" -#: ../src/selection-chemistry.cpp:4071 ../src/verbs.cpp:2907 -msgid "Fit Page to Drawing" -msgstr "Adatta pagina al disegno" +#: ../src/live_effects/lpe-patternalongpath.cpp:66 +#, fuzzy +msgid "Spa_cing:" +msgstr "Spaziatura:" -#: ../src/selection-chemistry.cpp:4092 ../src/verbs.cpp:2909 -msgid "Fit Page to Selection or Drawing" -msgstr "Adatta pagina alla selezione o al disegno" +#: ../src/live_effects/lpe-patternalongpath.cpp:68 +#, no-c-format +msgid "" +"Space between copies of the pattern. Negative values allowed, but are " +"limited to -90% of pattern width." +msgstr "" +"Spaziatura tra le copie del motivo. Sono permessi valori negativi, ma " +"limitati al -90% della larghezza del motivo." -#: ../src/selection-describer.cpp:128 -msgid "root" -msgstr "(base)" +#: ../src/live_effects/lpe-patternalongpath.cpp:70 +#, fuzzy +msgid "No_rmal offset:" +msgstr "Proiezione normale" -#: ../src/selection-describer.cpp:130 ../src/widgets/ege-paint-def.cpp:66 -#: ../src/widgets/ege-paint-def.cpp:90 -msgid "none" -msgstr "nessuno" +#: ../src/live_effects/lpe-patternalongpath.cpp:71 +#, fuzzy +msgid "Tan_gential offset:" +msgstr "Proiezione tangenziale" -#: ../src/selection-describer.cpp:142 -#, c-format -msgid "layer %s" -msgstr "livello %s" +#: ../src/live_effects/lpe-patternalongpath.cpp:72 +#, fuzzy +msgid "Offsets in _unit of pattern size" +msgstr "Spostamento in unita di dimensione del motivo" -#: ../src/selection-describer.cpp:144 -#, c-format -msgid "layer %s" -msgstr "livello %s" +#: ../src/live_effects/lpe-patternalongpath.cpp:73 +msgid "" +"Spacing, tangential and normal offset are expressed as a ratio of width/" +"height" +msgstr "" +"Spaziatura e spostamento tangenziale e normale sono espressi come rapporto " +"larghezza/altezza" -#: ../src/selection-describer.cpp:155 -#, c-format -msgid "%s" -msgstr "%s" +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +#, fuzzy +msgid "Pattern is _vertical" +msgstr "Motivo verticale" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "Rotate pattern 90 deg before applying" +msgstr "Ruota il motivo di 90° gradi prima di applicarlo" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +#, fuzzy +msgid "_Fuse nearby ends:" +msgstr "Fondi terminazioni vicine" -#: ../src/selection-describer.cpp:165 -#, c-format -msgid " in %s" -msgstr " in %s" +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "Fuse ends closer than this number. 0 means don't fuse." +msgstr "" +"Fonde terminazioni piĂą vicine di questo numero. 0 per non fonderle mai." -#: ../src/selection-describer.cpp:167 +#: ../src/live_effects/lpe-powerstroke.cpp:189 #, fuzzy -msgid " hidden in definitions" -msgstr "Disabilita condivisione definizioni di gradiente" +msgid "CubicBezierFit" +msgstr "Bezier" -#: ../src/selection-describer.cpp:169 -#, c-format -msgid " in group %s (%s)" -msgstr " nel gruppo %s (%s)" +#: ../src/live_effects/lpe-powerstroke.cpp:190 +msgid "CubicBezierJohan" +msgstr "" -#: ../src/selection-describer.cpp:171 -#, fuzzy, c-format -msgid " in unnamed group (%s)" -msgstr " nel gruppo %s (%s)" +#: ../src/live_effects/lpe-powerstroke.cpp:191 +#, fuzzy +msgid "SpiroInterpolator" +msgstr "Interpola" -#: ../src/selection-describer.cpp:173 -#, fuzzy, c-format -msgid " in %i parent (%s)" -msgid_plural " in %i parents (%s)" -msgstr[0] " in %i parente (%s)" -msgstr[1] " in %i parenti (%s)" +#: ../src/live_effects/lpe-powerstroke.cpp:203 +#, fuzzy +msgid "Butt" +msgstr "Bottone" -#: ../src/selection-describer.cpp:176 -#, fuzzy, c-format -msgid " in %i layer" -msgid_plural " in %i layers" -msgstr[0] " in %i livello" -msgstr[1] " in %i livelli" +#: ../src/live_effects/lpe-powerstroke.cpp:204 +msgid "Square" +msgstr "Quadrata" -#: ../src/selection-describer.cpp:187 +#: ../src/live_effects/lpe-powerstroke.cpp:205 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 #, fuzzy -msgid "Convert symbol to group to edit" -msgstr "Converti contorno in tracciato" +msgid "Round" +msgstr "Arrotondamento" -#: ../src/selection-describer.cpp:191 -msgid "Remove from symbols tray to edit symbol" +#: ../src/live_effects/lpe-powerstroke.cpp:206 +msgid "Peak" msgstr "" -#: ../src/selection-describer.cpp:195 -msgid "Use Shift+D to look up original" -msgstr "Usare Maiusc+D per trovare l'originale" +#: ../src/live_effects/lpe-powerstroke.cpp:207 +#, fuzzy +msgid "Zero width" +msgstr "Larghezza pennino" -#: ../src/selection-describer.cpp:199 -msgid "Use Shift+D to look up path" -msgstr "Usare Maiusc+D per trovare il tracciato" +#: ../src/live_effects/lpe-powerstroke.cpp:220 +#, fuzzy +msgid "Beveled" +msgstr "Sfumature" -#: ../src/selection-describer.cpp:203 -msgid "Use Shift+D to look up frame" -msgstr "Usare Maiusc+D per trovare il riquadro" +#: ../src/live_effects/lpe-powerstroke.cpp:221 +#: ../src/widgets/star-toolbar.cpp:534 +msgid "Rounded" +msgstr "Arrotondamento" -#: ../src/selection-describer.cpp:215 -#, fuzzy, c-format -msgid "%i objects selected of type %s" -msgid_plural "%i objects selected of types %s" -msgstr[0] "%i oggetto selezionato" -msgstr[1] "%i oggetti selezionati" +#: ../src/live_effects/lpe-powerstroke.cpp:222 +#, fuzzy +msgid "Extrapolated" +msgstr "Interpola" -#: ../src/selection-describer.cpp:225 -#, fuzzy, c-format -msgid "; %d filtered object " -msgid_plural "; %d filtered objects " -msgstr[0] "%s; con filtro" -msgstr[1] "%s; con filtro" +#: ../src/live_effects/lpe-powerstroke.cpp:223 +#, fuzzy +msgid "Miter" +msgstr "Spigolo vivo" -#: ../src/seltrans-handles.cpp:9 -msgid "" -"Squeeze or stretch selection; with Ctrl to scale uniformly; " -"with Shift to scale around rotation center" -msgstr "" -"Accorcia o allunga la selezione; con Ctrl per ridimensionare " -"uniformemente; con Maiusc per ridimensionare attorno al centro di " -"rotazione" +#: ../src/live_effects/lpe-powerstroke.cpp:224 +#: ../src/widgets/pencil-toolbar.cpp:103 +msgid "Spiro" +msgstr "Spiro" -#: ../src/seltrans-handles.cpp:10 -msgid "" -"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +#: ../src/live_effects/lpe-powerstroke.cpp:226 +msgid "Extrapolated arc" msgstr "" -"Ridimensiona la selezione; con Ctrl per ridimensionare " -"uniformemente; con Maiusc per ridimensionare attorno al centro di " -"rotazione" -#: ../src/seltrans-handles.cpp:11 -msgid "" -"Skew selection; with Ctrl to snap angle; with Shift to " -"skew around the opposite side" +#: ../src/live_effects/lpe-powerstroke.cpp:233 +#, fuzzy +msgid "Offset points" +msgstr "Tracciato estruso" + +#: ../src/live_effects/lpe-powerstroke.cpp:234 +#, fuzzy +msgid "Sort points" +msgstr "Orientamento" + +#: ../src/live_effects/lpe-powerstroke.cpp:234 +msgid "Sort offset points according to their time value along the curve" msgstr "" -"Distorce la selezione; con Ctrl per far scattare l'angolo; con " -"Maiusc per distorcere attorno al lato opposto" -#: ../src/seltrans-handles.cpp:12 +#: ../src/live_effects/lpe-powerstroke.cpp:235 +#, fuzzy +msgid "Interpolator type:" +msgstr "Stile d'interpolazione" + +#: ../src/live_effects/lpe-powerstroke.cpp:235 msgid "" -"Rotate selection; with Ctrl to snap angle; with Shift " -"to rotate around the opposite corner" +"Determines which kind of interpolator will be used to interpolate between " +"stroke width along the path" msgstr "" -"Ruota la selezione; con Ctrl per far scattare l'angolo; con " -"Maiusc per ruotare attorno all'angolo opposto" -#: ../src/seltrans-handles.cpp:13 +#: ../src/live_effects/lpe-powerstroke.cpp:236 +#: ../share/extensions/fractalize.inx.h:3 +#, fuzzy +msgid "Smoothness:" +msgstr "Smussatura" + +#: ../src/live_effects/lpe-powerstroke.cpp:236 msgid "" -"Center of rotation and skewing: drag to reposition; scaling with " -"Shift also uses this center" +"Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " +"interpolation, 1 = smooth" msgstr "" -"Centro di rotazione e distorsione: trascinare per riposizionarlo; " -"anche il ridimensionamento con Maiusc usa questo centro" -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:982 -msgid "Skew" -msgstr "Distorsione" +#: ../src/live_effects/lpe-powerstroke.cpp:237 +#, fuzzy +msgid "Start cap:" +msgstr "Inizio:" -#: ../src/seltrans.cpp:499 -msgid "Set center" -msgstr "Imposta centro" +#: ../src/live_effects/lpe-powerstroke.cpp:237 +#, fuzzy +msgid "Determines the shape of the path's start" +msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" -#: ../src/seltrans.cpp:574 -msgid "Stamp" -msgstr "Timbro" +#. Join type +#. TRANSLATORS: The line join style specifies the shape to be used at the +#. corners of paths. It can be "miter", "round" or "bevel". +#: ../src/live_effects/lpe-powerstroke.cpp:238 +#: ../src/widgets/stroke-style.cpp:227 +msgid "Join:" +msgstr "Spigoli:" -#: ../src/seltrans.cpp:723 -msgid "Reset center" -msgstr "Resetta centro" +#: ../src/live_effects/lpe-powerstroke.cpp:238 +#, fuzzy +msgid "Determines the shape of the path's corners" +msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 -#, c-format -msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" -msgstr "" -"Ridimensiona: %0.2f%% x %0.2f%%; con Ctrl per mantenere la " -"proporzione" +#: ../src/live_effects/lpe-powerstroke.cpp:239 +msgid "Miter limit:" +msgstr "SpigolositĂ :" -#. TRANSLATORS: don't modify the first ";" -#. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1192 -#, c-format -msgid "Skew: %0.2f°; with Ctrl to snap angle" +#: ../src/live_effects/lpe-powerstroke.cpp:239 +#: ../src/widgets/stroke-style.cpp:278 +msgid "Maximum length of the miter (in units of stroke width)" msgstr "" -"Distorsione: %0.2f°; con Ctrl per far scattare l'angolo" +"Lunghezza massima dello spigolo (in unitĂ  della larghezza del contorno)" -#. TRANSLATORS: don't modify the first ";" -#. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1267 -#, c-format -msgid "Rotate: %0.2f°; with Ctrl to snap angle" -msgstr "" -"Rotazione: %0.2f gradi; con Ctrl per far scattare l'angolo" +#: ../src/live_effects/lpe-powerstroke.cpp:240 +#, fuzzy +msgid "End cap:" +msgstr "Estremo arrotondato" -#: ../src/seltrans.cpp:1304 -#, c-format -msgid "Move center to %s, %s" -msgstr "Muove il centro in %s, %s" +#: ../src/live_effects/lpe-powerstroke.cpp:240 +#, fuzzy +msgid "Determines the shape of the path's end" +msgstr "Determina il numero di passi dall'inizio alla fine del tracciato" -#: ../src/seltrans.cpp:1458 -#, c-format -msgid "" -"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " -"with Shift to disable snapping" -msgstr "" -"Muove di %s, %s; con Ctrl per restringere a oriz/vert; con " -"Maiusc per disabilitare lo scatto" +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Frequency randomness:" +msgstr "CasualitĂ  frequenza:" -#: ../src/shortcuts.cpp:226 -#, fuzzy, c-format -msgid "Keyboard directory (%s) is unavailable." -msgstr "La cartella delle tavolozze (%s) non è disponibile." +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Variation of distance between hatches, in %." +msgstr "Variazione di distanza tra i tratti, in %." -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1299 -#: ../src/ui/dialog/export.cpp:1333 -msgid "Select a filename for exporting" -msgstr "Selezionare il nome del file dove esportare" +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth:" +msgstr "Accrescimento:" -#: ../src/shortcuts.cpp:370 +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth of distance between hatches." +msgstr "Crescita della distanza tra i tratti." + +#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! +#: ../src/live_effects/lpe-rough-hatches.cpp:228 #, fuzzy -msgid "Select a file to import" -msgstr "Selezionare il file da importare" +msgid "Half-turns smoothness: 1st side, in:" +msgstr "Curvatura inversioni: lato inferiore, prima" -#: ../src/sp-anchor.cpp:125 -#, c-format -msgid "to %s" +#: ../src/live_effects/lpe-rough-hatches.cpp:228 +msgid "" +"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " +"0=sharp, 1=default" msgstr "" +"Imposta curvatura dolce/spigolosa del tracciato in arrivo alle inversioni in " +"\"fondo\". 0=spigoloso, 1=predefinito" -#: ../src/sp-anchor.cpp:129 +#: ../src/live_effects/lpe-rough-hatches.cpp:229 #, fuzzy -msgid "without URI" -msgstr "Collegamento senza URI" +msgid "1st side, out:" +msgstr "lato inferiore, dopo" -#: ../src/sp-ellipse.cpp:374 -#, fuzzy -msgid "Segment" -msgstr "Segmento" +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "" +"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " +"1=default" +msgstr "" +"Imposta curvatura dolce/spigolosa del tracciato in uscita dalle inversioni " +"in \"fondo\". 0=spigoloso, 1=predefinito" -#: ../src/sp-ellipse.cpp:376 +#: ../src/live_effects/lpe-rough-hatches.cpp:230 #, fuzzy -msgid "Arc" -msgstr "Arabo (ar)" - -#. Ellipse -#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 -#: ../src/ui/dialog/inkscape-preferences.cpp:403 -#: ../src/widgets/pencil-toolbar.cpp:158 -msgid "Ellipse" -msgstr "Ellisse" +msgid "2nd side, in:" +msgstr "lato superiore, prima" -#: ../src/sp-ellipse.cpp:383 -msgid "Circle" -msgstr "Cerchio" +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "" +"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" +"Imposta curvatura dolce/spigolosa del tracciato in arrivo alle inversioni in " +"\"cima\". 0=spigoloso, 1=predefinito" -#. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:192 +#: ../src/live_effects/lpe-rough-hatches.cpp:231 #, fuzzy -msgid "Flow Region" -msgstr "Regione dinamica" +msgid "2nd side, out:" +msgstr "lato superiore, dopo" -#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the -#. * flow excluded region. flowRegionExclude in SVG 1.2: see -#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and -#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. -#: ../src/sp-flowregion.cpp:342 -#, fuzzy -msgid "Flow Excluded Region" -msgstr "Regione non dinamica" +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "" +"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" +"Imposta curvatura dolce/spigolosa del tracciato in uscita dalle inversioni " +"in \"cima\". 0=spigoloso, 1=predefinito" -#: ../src/sp-flowtext.cpp:289 +#: ../src/live_effects/lpe-rough-hatches.cpp:232 #, fuzzy -msgid "Flowed Text" -msgstr "Il testo dinamico è stato creato" +msgid "Magnitude jitter: 1st side:" +msgstr "CasualitĂ  dimensione: lato inferiore" -#: ../src/sp-flowtext.cpp:291 -#, fuzzy -msgid "Linked Flowed Text" -msgstr "Il testo dinamico è stato creato" +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." +msgstr "" +"Sposta casualmente le inversioni in \"fondo\" per produrre variazioni di " +"dimensione." -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:353 -#: ../src/ui/tools/text-tool.cpp:1566 +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +#: ../src/live_effects/lpe-rough-hatches.cpp:237 #, fuzzy -msgid " [truncated]" -msgstr "Cubo tronco" - -#: ../src/sp-flowtext.cpp:300 -#, fuzzy, c-format -msgid "(%d character%s)" -msgid_plural "(%d characters%s)" -msgstr[0] "Inserisci carattere Unicode" -msgstr[1] "Inserisci carattere Unicode" +msgid "2nd side:" +msgstr "lato superiore" -#: ../src/sp-guide.cpp:303 -#, fuzzy -msgid "Create Guides Around the Page" -msgstr "Guide attorno alla pagina" +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +msgid "Randomly moves 'top' half-turns to produce magnitude variations." +msgstr "" +"Sposta casualmente le inversioni in \"cima\" per produrre variazioni di " +"dimensione." -#: ../src/sp-guide.cpp:315 ../src/verbs.cpp:2470 +#: ../src/live_effects/lpe-rough-hatches.cpp:234 #, fuzzy -msgid "Delete All Guides" -msgstr "Cancella guida" +msgid "Parallelism jitter: 1st side:" +msgstr "CasualitĂ  parallelismo: lato inferiore" -#. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:475 -#, fuzzy -msgid "Deleted" -msgstr "Elimina" +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "" +"Add direction randomness by moving 'bottom' half-turns tangentially to the " +"boundary." +msgstr "" +"Aggiunge casualitĂ  alla direzione spostando le inversioni in \"fondo\" " +"tangenzialmente al contorno." -#: ../src/sp-guide.cpp:484 +#: ../src/live_effects/lpe-rough-hatches.cpp:235 msgid "" -"Shift+drag to rotate, Ctrl+drag to move origin, Del to " -"delete" +"Add direction randomness by randomly moving 'top' half-turns tangentially to " +"the boundary." msgstr "" -"Maiusc+trascinare per ruotare, Ctrl+trascinare per spostare " -"l'origine, Canc per cancellare" +"Aggiunge casualitĂ  alla direzione spostando le inversioni in \"cima\" " +"tangenzialmente al contorno." -#: ../src/sp-guide.cpp:488 -#, c-format -msgid "vertical, at %s" -msgstr "verticale, a %s" +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +#, fuzzy +msgid "Variance: 1st side:" +msgstr "Variazione: lato inferiore" -#: ../src/sp-guide.cpp:491 -#, c-format -msgid "horizontal, at %s" -msgstr "orizzontale, a %s" +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "Randomness of 'bottom' half-turns smoothness" +msgstr "CasualitĂ  nella curvatura delle inversioni in \"fondo\"" -#: ../src/sp-guide.cpp:496 -#, c-format -msgid "at %d degrees, through (%s,%s)" -msgstr "a %d gradi, intersecante (%s,%s)" +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "Randomness of 'top' half-turns smoothness" +msgstr "CasualitĂ  nella curvatura delle inversioni in \"cima\"" -#: ../src/sp-image.cpp:525 -msgid "embedded" -msgstr "integrato" +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Generate thick/thin path" +msgstr "Genera tracciato sottile/spesso" -#: ../src/sp-image.cpp:533 -#, fuzzy, c-format -msgid "[bad reference]: %s" -msgstr "Preferenze stella" +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Simulate a stroke of varying width" +msgstr "Simula un contorno a larghezza variabile" -#: ../src/sp-image.cpp:534 -#, fuzzy, c-format -msgid "%d × %d: %s" -msgstr "Immagine %d × %d: %s" +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Bend hatches" +msgstr "Piega scarabocchio" -#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 -#, fuzzy, c-format -msgid "of %d object" -msgstr "Gruppo di %d oggetto" +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Add a global bend to the hatches (slower)" +msgstr "Aggiunge una piega globale agli scarabocchi (lento)" -#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 -#, fuzzy, c-format -msgid "of %d objects" -msgstr "Gruppo di %d oggetto" +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +#, fuzzy +msgid "Thickness: at 1st side:" +msgstr "Spessore: al lato inferiore" -#: ../src/sp-item.cpp:961 ../src/verbs.cpp:213 -msgid "Object" -msgstr "Oggetto" +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Width at 'bottom' half-turns" +msgstr "Larghezza alle inversioni in \"fondo\"" -#: ../src/sp-item.cpp:978 -#, c-format -msgid "%s; clipped" -msgstr "%s; con fissaggio" +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +#, fuzzy +msgid "At 2nd side:" +msgstr "al lato superiore" -#: ../src/sp-item.cpp:984 -#, c-format -msgid "%s; masked" -msgstr "%s; con maschera" +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "Width at 'top' half-turns" +msgstr "Larghezza alle inversioni in \"cima\"" -#: ../src/sp-item.cpp:994 -#, c-format -msgid "%s; filtered (%s)" -msgstr "%s; con filtro (%s)" +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +#, fuzzy +msgid "From 2nd to 1st side:" +msgstr "dal lato superiore a quello inferiore" -#: ../src/sp-item.cpp:996 -#, c-format -msgid "%s; filtered" -msgstr "%s; con filtro" +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +msgid "Width from 'top' to 'bottom'" +msgstr "Larghezza dalla \"cima\" al \"fondo\"" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +#, fuzzy +msgid "From 1st to 2nd side:" +msgstr "dal lato inferiore a quello superiore" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "Width from 'bottom' to 'top'" +msgstr "Larghezza dal \"fondo\" alla \"fondo\"" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Hatches width and dir" +msgstr "Larghezza e direzione scarabocchio" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Defines hatches frequency and direction" +msgstr "Definisce la direzione e la frequenza degli scarabocchi" -#: ../src/sp-line.cpp:126 -msgid "Line" -msgstr "Linea" +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "Global bending" +msgstr "Piegatura globale" -#: ../src/sp-lpe-item.cpp:262 -msgid "An exception occurred during execution of the Path Effect." +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "" +"Relative position to a reference point defines global bending direction and " +"amount" msgstr "" -"Ă occorsa un'eccezione durante l'applicazione dell'effetto su tracciato." +"La posizione relativa a un punto di riferimento definisce la quantitĂ  e la " +"direzione della piegatura globale" -#: ../src/sp-offset.cpp:339 -#, fuzzy -msgid "Linked Offset" -msgstr "Proiezione co_llegata" +#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 +#: ../share/extensions/text_extract.inx.h:8 +#: ../share/extensions/text_merge.inx.h:8 +msgid "Left" +msgstr "Sinistra" -#: ../src/sp-offset.cpp:341 -#, fuzzy -msgid "Dynamic Offset" -msgstr "Proiezione dina_mica" +#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 +#: ../share/extensions/text_extract.inx.h:10 +#: ../share/extensions/text_merge.inx.h:10 +msgid "Right" +msgstr "Destra" -#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:347 -#, c-format -msgid "%s by %f pt" -msgstr "" +#: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 +msgid "Both" +msgstr "Entrambe" -#: ../src/sp-offset.cpp:348 -msgid "outset" -msgstr "estrusione" +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:326 +msgid "Start" +msgstr "Inizio" -#: ../src/sp-offset.cpp:348 -msgid "inset" -msgstr "intrusione" +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:339 +msgid "End" +msgstr "Fine" -#: ../src/sp-path.cpp:70 -msgid "Path" -msgstr "Tracciato" +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "_Mark distance:" +msgstr "Distanza _tacche:" -#: ../src/sp-path.cpp:95 -#, fuzzy, c-format -msgid ", path effect: %s" -msgstr "Attiva effetto su tracciato" +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "Distance between successive ruler marks" +msgstr "Distanza tra le tacche del righello" -#: ../src/sp-path.cpp:98 -#, fuzzy, c-format -msgid "%i node%s" -msgstr "Unisci nodi" +#: ../src/live_effects/lpe-ruler.cpp:42 +#: ../share/extensions/foldablebox.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:9 +#: ../share/extensions/layout_nup.inx.h:3 +#: ../share/extensions/printing_marks.inx.h:11 +msgid "Unit:" +msgstr "UnitĂ :" -#: ../src/sp-path.cpp:98 -#, fuzzy, c-format -msgid "%i nodes%s" -msgstr "Unisci nodi" +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 +msgid "Unit" +msgstr "UnitĂ " -#: ../src/sp-polygon.cpp:185 -msgid "Polygon" -msgstr "Poligono" +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Ma_jor length:" +msgstr "Lunghezza p_rincipali:" -#: ../src/sp-polyline.cpp:131 -msgid "Polyline" -msgstr "Poligonale" +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Length of major ruler marks" +msgstr "Lunghezza delle tacche principali del righello" -#. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:393 -msgid "Rectangle" -msgstr "Rettangolo" +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Mino_r length:" +msgstr "Lunghezza secon_darie:" -#. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:411 -#: ../share/extensions/gcodetools_area.inx.h:11 -msgid "Spiral" -msgstr "Spirale" +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Length of minor ruler marks" +msgstr "Lunghezza delle tacche secondarie del righello" -#. TRANSLATORS: since turn count isn't an integer, please adjust the -#. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 -#, fuzzy, c-format -msgid "with %3f turns" -msgstr "Spirale di %3f giri" +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Major steps_:" +msgstr "_Tacche principali ogni:" -#. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:407 -#: ../src/widgets/star-toolbar.cpp:469 -msgid "Star" -msgstr "Stella" +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Draw a major mark every ... steps" +msgstr "Traccia una tacca principale ogni tot passi" -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:462 -msgid "Polygon" -msgstr "Poligono" +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks _by:" +msgstr "Sposta tacche _di:" -#. while there will never be less than 3 vertices, we still need to -#. make calls to ngettext because the pluralization may be different -#. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:264 -#, fuzzy, c-format -msgid "with %d vertex" -msgstr "Stella con %d vertice" +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks by this many steps" +msgstr "Sposta tacche di questi passi" -#: ../src/sp-star.cpp:264 -#, fuzzy, c-format -msgid "with %d vertices" -msgstr "Stella con %d vertice" +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Mark direction:" +msgstr "Direzione tacche:" -#: ../src/sp-switch.cpp:76 -msgid "Conditional Group" -msgstr "" +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Direction of marks (when viewing along the path from start to end)" +msgstr "Direzione delle tacche (osservando il tracciato dall'inzio alla fine)" -#: ../src/sp-text.cpp:326 ../src/verbs.cpp:328 -#: ../share/extensions/lorem_ipsum.inx.h:8 -#: ../share/extensions/replace_font.inx.h:11 -#: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 -#: ../share/extensions/text_extract.inx.h:14 -#: ../share/extensions/text_flipcase.inx.h:2 -#: ../share/extensions/text_lowercase.inx.h:2 -#: ../share/extensions/text_merge.inx.h:16 -#: ../share/extensions/text_randomcase.inx.h:2 -#: ../share/extensions/text_sentencecase.inx.h:2 -#: ../share/extensions/text_titlecase.inx.h:2 -#: ../share/extensions/text_uppercase.inx.h:2 -msgid "Text" -msgstr "Testo" +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "_Offset:" +msgstr "Sp_ostamento:" -#. TRANSLATORS: For description of font with no name. -#: ../src/sp-text.cpp:343 -msgid "<no name found>" -msgstr "<nessun nome trovato>" +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "Offset of first mark" +msgstr "Spostamento della prima tacca" -#: ../src/sp-text.cpp:357 -#, fuzzy, c-format -msgid "on path%s (%s, %s)" -msgstr "Testo su tracciato (%s, %s)" +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Border marks:" +msgstr "Segni del bordo:" -#: ../src/sp-text.cpp:358 -#, fuzzy, c-format -msgid "%s (%s, %s)" -msgstr "Testo (%s, %s)" +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Choose whether to draw marks at the beginning and end of the path" +msgstr "Disegna o meno le tacche all'inizio e alla fine del tracciato" -#: ../src/sp-tref.cpp:230 +#. initialise your parameters here: +#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), +#: ../src/live_effects/lpe-sketch.cpp:38 #, fuzzy -msgid "Cloned Character Data" -msgstr "Carattere clonato %s%s" - -#: ../src/sp-tref.cpp:246 -msgid " from " -msgstr " da " +msgid "Strokes:" +msgstr "Contorni" -#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:262 -msgid "[orphaned]" -msgstr "" +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Draw that many approximating strokes" +msgstr "Disegna un tal numero di tratti approssimanti" -#: ../src/sp-tspan.cpp:217 +#: ../src/live_effects/lpe-sketch.cpp:39 #, fuzzy -msgid "Text Span" -msgstr "Input testo" +msgid "Max stroke length:" +msgstr "Lunghezza massima del contorno" -#: ../src/sp-use.cpp:227 -#, fuzzy -msgid "Symbol" -msgstr "Khmer (km)" +#: ../src/live_effects/lpe-sketch.cpp:40 +msgid "Maximum length of approximating strokes" +msgstr "Lunghezza massima del tratto approssimante" -#: ../src/sp-use.cpp:230 +#: ../src/live_effects/lpe-sketch.cpp:41 #, fuzzy -msgid "Clone" -msgstr "Clonato" +msgid "Stroke length variation:" +msgstr "Variazione lunghezza tratto" -#: ../src/sp-use.cpp:237 ../src/sp-use.cpp:239 -#, c-format -msgid "called %s" +#: ../src/live_effects/lpe-sketch.cpp:42 +msgid "Random variation of stroke length (relative to maximum length)" msgstr "" +"Variazione casuale della lunghezza del contorno (relativa alla lunghezza " +"massima)" -#: ../src/sp-use.cpp:239 +#: ../src/live_effects/lpe-sketch.cpp:43 #, fuzzy -msgid "Unnamed Symbol" -msgstr "Khmer (km)" +msgid "Max. overlap:" +msgstr "Massima sovrapposizione" -#. TRANSLATORS: Used for statusbar description for long chains: -#. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:248 -msgid "..." -msgstr "..." +#: ../src/live_effects/lpe-sketch.cpp:44 +msgid "How much successive strokes should overlap (relative to maximum length)" +msgstr "" +"Quanti tratti successivi devono sovrapporsi (relativamente alla massima " +"lunghezza)" -#: ../src/sp-use.cpp:257 -#, fuzzy, c-format -msgid "of: %s" -msgstr "Errori" +#: ../src/live_effects/lpe-sketch.cpp:45 +#, fuzzy +msgid "Overlap variation:" +msgstr "Variazione sovrapposizione" -#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 -msgid "Union" -msgstr "Unione" +#: ../src/live_effects/lpe-sketch.cpp:46 +msgid "Random variation of overlap (relative to maximum overlap)" +msgstr "" +"Variazione casuale della sovrapposizione (relativa alla sovrapposizione " +"massima)" -#: ../src/splivarot.cpp:82 -msgid "Intersection" -msgstr "Intersezione" +#: ../src/live_effects/lpe-sketch.cpp:47 +#, fuzzy +msgid "Max. end tolerance:" +msgstr "Massima tolleranza terminale" -#: ../src/splivarot.cpp:105 -msgid "Division" -msgstr "Divisione" +#: ../src/live_effects/lpe-sketch.cpp:48 +msgid "" +"Maximum distance between ends of original and approximating paths (relative " +"to maximum length)" +msgstr "" +"Massima distanza tra il termine dell'originale e del tracciato " +"d'approssimazione (relativo alla massima lunghezza)" -#: ../src/splivarot.cpp:110 -msgid "Cut path" -msgstr "Taglia tracciato" +#: ../src/live_effects/lpe-sketch.cpp:49 +#, fuzzy +msgid "Average offset:" +msgstr "Proiezione media" -#: ../src/splivarot.cpp:333 -msgid "Select at least 2 paths to perform a boolean operation." -msgstr "" -"Selezionare almeno 2 tracciati per effettuare un'operazione booleana." +#: ../src/live_effects/lpe-sketch.cpp:50 +msgid "Average distance each stroke is away from the original path" +msgstr "Distanza media" -#: ../src/splivarot.cpp:337 -msgid "Select at least 1 path to perform a boolean union." -msgstr "" -"Selezionare almeno 1 tracciato per effettuare un'unione booleana." +#: ../src/live_effects/lpe-sketch.cpp:51 +#, fuzzy +msgid "Max. tremble:" +msgstr "Tremore massimo" -#: ../src/splivarot.cpp:345 -msgid "" -"Select exactly 2 paths to perform difference, division, or path cut." -msgstr "" -"Selezionare esattamente 2 tracciati per effettuare differenza, " -"divisione o taglio del tracciato." +#: ../src/live_effects/lpe-sketch.cpp:52 +msgid "Maximum tremble magnitude" +msgstr "Grandezza massima del tremore" -#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 -msgid "" -"Unable to determine the z-order of the objects selected for " -"difference, XOR, division, or path cut." -msgstr "" -"Impossibile determinare l'ordinamento-z degli oggetti selezionati per " -"la differenza, XOR, divisione o taglio del tracciato." +#: ../src/live_effects/lpe-sketch.cpp:53 +#, fuzzy +msgid "Tremble frequency:" +msgstr "Frequenza tremore" -#: ../src/splivarot.cpp:407 -msgid "" -"One of the objects is not a path, cannot perform boolean operation." -msgstr "" -"Uno degli oggetti non è un tracciato, impossibile eseguire " -"l'operazione booleana." +#: ../src/live_effects/lpe-sketch.cpp:54 +msgid "Average number of tremble periods in a stroke" +msgstr "Numero medio di periodi tremolanti in un bozzetto" -#: ../src/splivarot.cpp:1157 -msgid "Select stroked path(s) to convert stroke to path." -msgstr "" -"Selezionare il tracciato con contorno di cui convertire il contorno " -"in tracciato." +#: ../src/live_effects/lpe-sketch.cpp:56 +#, fuzzy +msgid "Construction lines:" +msgstr "Linee di costruzione" -#: ../src/splivarot.cpp:1516 -msgid "Convert stroke to path" -msgstr "Converti contorno in tracciato" +#: ../src/live_effects/lpe-sketch.cpp:57 +msgid "How many construction lines (tangents) to draw" +msgstr "Quante linee di costruzione (tangenti) disegnare" -#. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 -msgid "No stroked paths in the selection." -msgstr "Nessun tracciato contornato nella selezione." +#: ../src/live_effects/lpe-sketch.cpp:58 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../share/extensions/render_alphabetsoup.inx.h:3 +msgid "Scale:" +msgstr "Ridimensiona:" -#: ../src/splivarot.cpp:1590 -msgid "Selected object is not a path, cannot inset/outset." +#: ../src/live_effects/lpe-sketch.cpp:59 +msgid "" +"Scale factor relating curvature and length of construction lines (try " +"5*offset)" msgstr "" -"L'oggetto selezionato non è un tracciato, impossibile intrudere/" -"estrudere." +"Ridimensiona il fattore di relazione tra curvatura e lunghezza linee di " +"costruzione (provare 5*proiezione)" -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 -msgid "Create linked offset" -msgstr "Crea proiezione collegata" +#: ../src/live_effects/lpe-sketch.cpp:60 +#, fuzzy +msgid "Max. length:" +msgstr "Lunghezza massima" -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 -msgid "Create dynamic offset" -msgstr "Crea proiezione dinamica" +#: ../src/live_effects/lpe-sketch.cpp:60 +msgid "Maximum length of construction lines" +msgstr "Massima lunghezza delle linee di costruzione" -#: ../src/splivarot.cpp:1772 -msgid "Select path(s) to inset/outset." -msgstr "Selezionare il tracciato da intrudere/estrudere." +#: ../src/live_effects/lpe-sketch.cpp:61 +#, fuzzy +msgid "Length variation:" +msgstr "Variazione lunghezza" -#: ../src/splivarot.cpp:1968 -msgid "Outset path" -msgstr "Estrudi tracciato" +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "Random variation of the length of construction lines" +msgstr "Variazione casuale della lunghezza delle linee di costruzione" -#: ../src/splivarot.cpp:1968 -msgid "Inset path" -msgstr "Intrudi tracciaton" +#: ../src/live_effects/lpe-sketch.cpp:62 +#, fuzzy +msgid "Placement randomness:" +msgstr "CasualitĂ  posizione" -#: ../src/splivarot.cpp:1970 -msgid "No paths to inset/outset in the selection." -msgstr "Nessun tracciato da intrudere/estrudere nella selezione." +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "0: evenly distributed construction lines, 1: purely random placement" +msgstr "" +"0: linee di costruzione posizionate equamente, 1: posizione totalmente " +"casuale" -#: ../src/splivarot.cpp:2132 -msgid "Simplifying paths (separately):" -msgstr "Semplificazione tracciati (separatamente):" +#: ../src/live_effects/lpe-sketch.cpp:64 +#, fuzzy +msgid "k_min:" +msgstr "k_min" -#: ../src/splivarot.cpp:2134 -msgid "Simplifying paths:" -msgstr "Semplificazione tracciati:" +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "min curvature" +msgstr "curvatura minima" -#: ../src/splivarot.cpp:2171 -#, c-format -msgid "%s %d of %d paths simplified..." -msgstr "%s %d di %d tracciati semplificati..." +#: ../src/live_effects/lpe-sketch.cpp:65 +#, fuzzy +msgid "k_max:" +msgstr "k_max" -#: ../src/splivarot.cpp:2184 -#, c-format -msgid "%d paths simplified." -msgstr "%d tracciati semplificati." +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "max curvature" +msgstr "curvatura massima" -#: ../src/splivarot.cpp:2198 -msgid "Select path(s) to simplify." -msgstr "Selezionare il tracciato da semplificare." +#: ../src/live_effects/lpe-vonkoch.cpp:46 +#, fuzzy +msgid "N_r of generations:" +msgstr "Numero di generazioni" -#: ../src/splivarot.cpp:2214 -msgid "No paths to simplify in the selection." -msgstr "Nessun tracciato da semplificare nella selezione." +#: ../src/live_effects/lpe-vonkoch.cpp:46 +msgid "Depth of the recursion --- keep low!!" +msgstr "ProfonditĂ  della ricorsione (non aumentare troppo)" -#: ../src/text-chemistry.cpp:94 -msgid "Select a text and a path to put text on path." -msgstr "" -"Selezionare un testo ed un tracciato per mettere il testo sul " -"tracciato." +#: ../src/live_effects/lpe-vonkoch.cpp:47 +#, fuzzy +msgid "Generating path:" +msgstr "Tracciato generatore" -#: ../src/text-chemistry.cpp:99 -msgid "" -"This text object is already put on a path. Remove it from the path " -"first. Use Shift+D to look up its path." +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Path whose segments define the iterated transforms" msgstr "" -"Questo testo è giĂ  su un tracciato. Rimuoverlo prima dal tracciato." -"Usare Maiusc+D per trovare il suo tracciato." +"Tracciato i cui segmenti verranno usati per definire la trasformazione " +"iterativa" -#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 -msgid "" -"You cannot put text on a rectangle in this version. Convert rectangle to " -"path first." -msgstr "" -"In questa versione non è possibile mettere il testo sun un rettangolo. " -"Convertire prima il rettangolo in tracciato." +#: ../src/live_effects/lpe-vonkoch.cpp:48 +#, fuzzy +msgid "_Use uniform transforms only" +msgstr "Usa solo trasformazioni uniformi" -#: ../src/text-chemistry.cpp:115 -msgid "The flowed text(s) must be visible in order to be put on a path." +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "" +"2 consecutive segments are used to reverse/preserve orientation only " +"(otherwise, they define a general transform)." msgstr "" -"Il testo dinamico deve essere visibile per esser messo su un " -"tracciato." - -#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2492 -msgid "Put text on path" -msgstr "Mette il testo sul tracciato" - -#: ../src/text-chemistry.cpp:197 -msgid "Select a text on path to remove it from path." -msgstr "Selezionare un testo su tracciato per rimuoverlo dal tracciato." - -#: ../src/text-chemistry.cpp:218 -msgid "No texts-on-paths in the selection." -msgstr "Nessun testo su tracciato nella selezione." +"2 segmenti consecutivi sono usati per invertire/preservare solo " +"l'orientamento (altrimenti definiscono una trasformazione generica)." -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2494 -msgid "Remove text from path" -msgstr "Rimuove il testo dal tracciato" +#: ../src/live_effects/lpe-vonkoch.cpp:49 +#, fuzzy +msgid "Dra_w all generations" +msgstr "Disegna tutte le generazioni" -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 -msgid "Select text(s) to remove kerns from." -msgstr "Selezionare il testo da cui rimuovere le trasformazioni." +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "If unchecked, draw only the last generation" +msgstr "Se non selezionato, disegna solo l'ultima generazione" -#: ../src/text-chemistry.cpp:286 -msgid "Remove manual kerns" -msgstr "Rimuovi trasformazioni manuali" +#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) +#: ../src/live_effects/lpe-vonkoch.cpp:51 +#, fuzzy +msgid "Reference segment:" +msgstr "Segmento di riferimento" -#: ../src/text-chemistry.cpp:306 -msgid "" -"Select a text and one or more paths or shapes to flow text " -"into frame." +#: ../src/live_effects/lpe-vonkoch.cpp:51 +msgid "The reference segment. Defaults to the horizontal midline of the bbox." msgstr "" -"Selezionare un testo ed uno o piĂą tracciati o forme per " -"fluire il testo nella struttura." +"Il segmento di riferimento. La mediana orizzontale del riquadro è usato come " +"predefinito." -#: ../src/text-chemistry.cpp:376 -msgid "Flow text into shape" -msgstr "Fluisci testo in struttura" +#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), +#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), +#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. +#: ../src/live_effects/lpe-vonkoch.cpp:55 +#, fuzzy +msgid "_Max complexity:" +msgstr "ComplessitĂ  massima" -#: ../src/text-chemistry.cpp:398 -msgid "Select a flowed text to unflow it." -msgstr "Selezionare un testo dinamico da spezzare." +#: ../src/live_effects/lpe-vonkoch.cpp:55 +msgid "Disable effect if the output is too complex" +msgstr "DisabilitĂ  l'effetto se l'output è troppo complesso" -#: ../src/text-chemistry.cpp:472 -msgid "Unflow flowed text" -msgstr "Spezza testo dinamico" +#: ../src/live_effects/parameter/bool.cpp:67 +msgid "Change bool parameter" +msgstr "Modifica parametri booleani" -#: ../src/text-chemistry.cpp:484 -msgid "Select flowed text(s) to convert." -msgstr "Selezionare un testo dinamico da convertire." +#: ../src/live_effects/parameter/enum.h:47 +msgid "Change enumeration parameter" +msgstr "Cambia parametri enumerazione" -#: ../src/text-chemistry.cpp:502 -msgid "The flowed text(s) must be visible in order to be converted." -msgstr "Il testo dinamico deve essere visibile per esser convertito." +#: ../src/live_effects/parameter/originalpath.cpp:71 +msgid "Link to path" +msgstr "Lega al tracciato" -#: ../src/text-chemistry.cpp:530 -msgid "Convert flowed text to text" -msgstr "Converti testo dinamica in testo" +#: ../src/live_effects/parameter/originalpath.cpp:83 +#, fuzzy +msgid "Select original" +msgstr "Seleziona _originale" -#: ../src/text-chemistry.cpp:535 -msgid "No flowed text(s) to convert in the selection." -msgstr "Nessun testo dinamico nella selezione da convertire." +#: ../src/live_effects/parameter/parameter.cpp:147 +msgid "Change scalar parameter" +msgstr "Cambia parametri scalari" -#: ../src/text-editing.cpp:44 -msgid "You cannot edit cloned character data." -msgstr "Non è possibile modificare caratteri clonati." +#: ../src/live_effects/parameter/path.cpp:170 +msgid "Edit on-canvas" +msgstr "Modifica sul disegno" -#: ../src/tools-switch.cpp:91 -#, fuzzy -msgid "" -"Click to Select and Transform objects, Drag to select many " -"objects." -msgstr "Clicca per selezionare i nodi, Spostali per sistemarli." +#: ../src/live_effects/parameter/path.cpp:180 +msgid "Copy path" +msgstr "Copia tracciato" -#: ../src/tools-switch.cpp:92 +#: ../src/live_effects/parameter/path.cpp:190 +msgid "Paste path" +msgstr "Incolla tracciato" + +#: ../src/live_effects/parameter/path.cpp:200 #, fuzzy -msgid "Modify selected path points (nodes) directly." -msgstr "Semplifica il tracciato selezionato (rimuovendo nodi superflui)" +msgid "Link to path on clipboard" +msgstr "Niente negli appunti." -#: ../src/tools-switch.cpp:93 -msgid "To tweak a path by pushing, select it and drag over it." -msgstr "" -"Per ritoccare un tracciato tramite distorsione, selezionarlo e rimodellarlo " -"trascinando." +#: ../src/live_effects/parameter/path.cpp:443 +msgid "Paste path parameter" +msgstr "Incolla parametri tracciato" -#: ../src/tools-switch.cpp:94 -#, fuzzy -msgid "" -"Drag, click or click and scroll to spray the selected " -"objects." -msgstr "" -"Fare clic o fare clic e trascinare per chiudere e terminare il " -"tracciato." +#: ../src/live_effects/parameter/path.cpp:475 +msgid "Link path parameter to path" +msgstr "Lega il parametro del tracciato al parametro" -#: ../src/tools-switch.cpp:95 -msgid "" -"Drag to create a rectangle. Drag controls to round corners and " -"resize. Click to select." -msgstr "" -"Trascinare per creare un rettangolo. Trascinare i controlli " -"per arrotondare gli angoli e ridimensionare. Fare clic per " -"selezionare." +#: ../src/live_effects/parameter/point.cpp:89 +msgid "Change point parameter" +msgstr "Modifica parametri del punto" -#: ../src/tools-switch.cpp:96 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:229 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:241 msgid "" -"Drag to create a 3D box. Drag controls to resize in " -"perspective. Click to select (with Ctrl+Alt for single faces)." +"Stroke width control point: drag to alter the stroke width. Ctrl" +"+click adds a control point, Ctrl+Alt+click deletes it." msgstr "" -"Trascinare per creare un solido 3D. Trascinare i controlli per " -"ridimensionarlo in prospettiva. Fare clic per selezionare (con Ctrl" -"+Alt per le singole facce)." -#: ../src/tools-switch.cpp:97 -msgid "" -"Drag to create an ellipse. Drag controls to make an arc or " -"segment. Click to select." -msgstr "" -"Trascinare per creare un ellisse. Trascinare i controlli per " -"farne un arco o un segmento. Fare clic per selezionare." +#: ../src/live_effects/parameter/random.cpp:134 +msgid "Change random parameter" +msgstr "Modifica parametri casuali" -#: ../src/tools-switch.cpp:98 -msgid "" -"Drag to create a star. Drag controls to edit the star shape. " -"Click to select." -msgstr "" -"Trascinare per creare una stella. Trascinare i controlli per " -"modificarne la forma. Fare clic per selezionare." +#: ../src/live_effects/parameter/text.cpp:100 +msgid "Change text parameter" +msgstr "Cambia parametri testo" -#: ../src/tools-switch.cpp:99 -msgid "" -"Drag to create a spiral. Drag controls to edit the spiral " -"shape. Click to select." -msgstr "" -"Trascinare per creare una spirale. Trascinare i controlli per " -"modificarne la forma. Fare clic per selezionare." +#: ../src/live_effects/parameter/unit.cpp:80 +msgid "Change unit parameter" +msgstr "Cambia unitĂ  parametri" -#: ../src/tools-switch.cpp:100 -msgid "" -"Drag to create a freehand line. Shift appends to selected " -"path, Alt activates sketch mode." -msgstr "" -"Trascinare per creare una linea a mano libera. Con Maiusc per " -"aggiungere al tracciato selezionato, Alt per attivare la modalitĂ  a " -"mano libera." +#: ../src/live_effects/parameter/vector.cpp:99 +#, fuzzy +msgid "Change vector parameter" +msgstr "Cambia parametri testo" -#: ../src/tools-switch.cpp:101 -msgid "" -"Click or click and drag to start a path; with Shift to " -"append to selected path. Ctrl+click to create single dots (straight " -"line modes only)." +#: ../src/main-cmdlineact.cpp:50 +#, c-format +msgid "Unable to find verb ID '%s' specified on the command line.\n" msgstr "" -"Fare clic o fare clic e trascinare per iniziare un percorso; " -"con Maiusc per accodare al percorso selezionato. Ctrl+clic per " -"creare punti singoli (solo in modalitĂ  linea semplice)." +"Impossibile trovare l'ID dell'azione «%s» specificata da riga di comando.\n" -#: ../src/tools-switch.cpp:102 -msgid "" -"Drag to draw a calligraphic stroke; with Ctrl to track a guide " -"path. Arrow keys adjust width (left/right) and angle (up/down)." -msgstr "" -"Trascinare per disegnare un tratto di pennino; con Ctrl per " -"ricalcare una tracciato guida. Le frecce modificano la larghezza " -"(sinistra/destra) o l'angolo (su/giĂą)." +#: ../src/main-cmdlineact.cpp:61 +#, c-format +msgid "Unable to find node ID: '%s'\n" +msgstr "Impossibile trovare il nodo con ID «%s»\n" -#: ../src/tools-switch.cpp:103 ../src/ui/tools/text-tool.cpp:1593 -msgid "" -"Click to select or create text, drag to create flowed text; " -"then type." -msgstr "" -"Fare clic per selezionare o creare un testo, trascinare per " -"creare un testo dinamico; quindi scrivere." +#: ../src/main.cpp:295 +msgid "Print the Inkscape version number" +msgstr "Mostra la versione di Inkscape" -#: ../src/tools-switch.cpp:104 -msgid "" -"Drag or double click to create a gradient on selected objects, " -"drag handles to adjust gradients." -msgstr "" -"Trascinare o doppio clic per creare un gradiente sull'oggetto " -"selezionato; trascinare le maniglie per modificare il gradiente." +#: ../src/main.cpp:300 +msgid "Do not use X server (only process files from console)" +msgstr "Non usare il server X (processa i file da console)" -#: ../src/tools-switch.cpp:105 -#, fuzzy -msgid "" -"Drag or double click to create a mesh on selected objects, " -"drag handles to adjust meshes." -msgstr "" -"Trascinare o doppio clic per creare un gradiente sull'oggetto " -"selezionato; trascinare le maniglie per modificare il gradiente." +#: ../src/main.cpp:305 +msgid "Try to use X server (even if $DISPLAY is not set)" +msgstr "Prova a usare il server X (anche se $DISPLAY non è impostata)" -#: ../src/tools-switch.cpp:106 -msgid "" -"Click or drag around an area to zoom in, Shift+click to " -"zoom out." -msgstr "" -"Fare clic o trascinare una zona per ingrandire, Maiusc" -"+clic per rimpicciolire." +#: ../src/main.cpp:310 +msgid "Open specified document(s) (option string may be excluded)" +msgstr "Apre il documento specificato (le opzioni possono essere omesse)" -#: ../src/tools-switch.cpp:107 -msgid "Drag to measure the dimensions of objects." +#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 +#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 +#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 +msgid "FILENAME" +msgstr "NOMEFILE" + +#: ../src/main.cpp:315 +msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" +"Stampa il documento al file di output specificato (usare'| programma' per il " +"pipe)" -#: ../src/tools-switch.cpp:108 ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/main.cpp:320 +msgid "Export document to a PNG file" +msgstr "Esporta il documento come file PNG" + +#: ../src/main.cpp:325 msgid "" -"Click to set fill, Shift+click to set stroke; drag to " -"average color in area; with Alt to pick inverse color; Ctrl+C " -"to copy the color under mouse to clipboard" +"Resolution for exporting to bitmap and for rasterization of filters in PS/" +"EPS/PDF (default 90)" msgstr "" -"Fare clic per impostare il colore di riempimento, Maiusc+clic " -"per impostare il colore del contorno; trascinare per prelevare il " -"colore medio di un'area; con Alt per prelevare il colore inverso; " -"Ctrl+C per copiare negli appunti il colore sotto al mouse" +"Risoluzione per esportare in bitmap e per la resa dei filtri in PS/EPS/PDF " +"(predefinito 90)" -#: ../src/tools-switch.cpp:109 -msgid "Click and drag between shapes to create a connector." -msgstr "Fare clic e trascinare tra le forme per creare un connettore." +#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 +msgid "DPI" +msgstr "DPI" -#: ../src/tools-switch.cpp:110 +#: ../src/main.cpp:330 msgid "" -"Click to paint a bounded area, Shift+click to union the new " -"fill with the current selection, Ctrl+click to change the clicked " -"object's fill and stroke to the current setting." +"Exported area in SVG user units (default is the page; 0,0 is lower-left " +"corner)" msgstr "" -"Clic per riempire un'area delimitata, Maiusc+clic per unire il " -"nuovo riempimento alla selezione attuale, Ctrl+clic per applicare al " -"riempimento e al contorno dell'oggetto le impostazioni attuali." +"L'area esportata in unitĂ  utente SVG (predefinita tutta la pagina; 0,0 è " +"l'angolo inferiore sinistro)" -#: ../src/tools-switch.cpp:111 -msgid "Drag to erase." -msgstr "Trascinare per cancellare." +#: ../src/main.cpp:331 +msgid "x0:y0:x1:y1" +msgstr "x0:y0:x1:y1" -#: ../src/tools-switch.cpp:112 -msgid "Choose a subtool from the toolbar" -msgstr "Selezionare una sottobarra dalla barra degli strumenti" +#: ../src/main.cpp:335 +msgid "Exported area is the entire drawing (not page)" +msgstr "L'area esportata è il disegno intero (non la tela)" -#: ../src/trace/potrace/inkscape-potrace.cpp:512 -#: ../src/trace/potrace/inkscape-potrace.cpp:575 -#, fuzzy -msgid "Trace: %1. %2 nodes" -msgstr "Vettorizza: %d. %ld nodi" +#: ../src/main.cpp:340 +msgid "Exported area is the entire page" +msgstr "L'area esportata è l'intera pagina" -#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 -#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 -#: ../src/ui/dialog/pixelartdialog.cpp:370 -#: ../src/ui/dialog/pixelartdialog.cpp:402 -msgid "Select an image to trace" -msgstr "Selezionare una immagine da vettorizzare" +#: ../src/main.cpp:345 +msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" +msgstr "" -#: ../src/trace/trace.cpp:94 -msgid "Select only one image to trace" -msgstr "Selezionare una sola immagine da vettorizzare" +#: ../src/main.cpp:346 ../src/main.cpp:388 +msgid "VALUE" +msgstr "VALORE" -#: ../src/trace/trace.cpp:112 -msgid "Select one image and one or more shapes above it" -msgstr "Seleziona un'immagine ed una o piĂą forme sopra di essa" +#: ../src/main.cpp:350 +msgid "" +"Snap the bitmap export area outwards to the nearest integer values (in SVG " +"user units)" +msgstr "" +"Aggancia l'area esterna di esportazione bitmap al valore intero piĂą vicino " +"(in unitĂ  utente SVG)" -#: ../src/trace/trace.cpp:216 -msgid "Trace: No active desktop" -msgstr "Vettorizza: Nessun documento attivo" +#: ../src/main.cpp:355 +msgid "The width of exported bitmap in pixels (overrides export-dpi)" +msgstr "La larghezza in pixel della bitmap esportata (precede export-dpi)" -#: ../src/trace/trace.cpp:313 -msgid "Invalid SIOX result" -msgstr "Risultato SIOX non valido" +#: ../src/main.cpp:356 +msgid "WIDTH" +msgstr "LARGHEZZA" -#: ../src/trace/trace.cpp:406 -msgid "Trace: No active document" -msgstr "Vettorizza: Nessun documento attivo" +#: ../src/main.cpp:360 +msgid "The height of exported bitmap in pixels (overrides export-dpi)" +msgstr "L'altezza in pixel della bitmap esportata (precede export-dpi)" -#: ../src/trace/trace.cpp:438 -msgid "Trace: Image has no bitmap data" -msgstr "Vettorizza: L'immagine non contiene bitmap data" +#: ../src/main.cpp:361 +msgid "HEIGHT" +msgstr "ALTEZZA" -#: ../src/trace/trace.cpp:445 -msgid "Trace: Starting trace..." -msgstr "Vettorizza: inizio processo..." +#: ../src/main.cpp:365 +msgid "The ID of the object to export" +msgstr "L'ID dell'oggetto da esportare" -#. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 -msgid "Trace bitmap" -msgstr "Vettorizza bitmap" +#: ../src/main.cpp:366 ../src/main.cpp:479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1506 +msgid "ID" +msgstr "ID" -#: ../src/trace/trace.cpp:552 -#, c-format -msgid "Trace: Done. %ld nodes created" -msgstr "Vettorizza: Eseguito. %ld nodi creati" +#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". +#. See "man inkscape" for details. +#: ../src/main.cpp:372 +msgid "" +"Export just the object with export-id, hide all others (only with export-id)" +msgstr "" +"Esporta solo l'oggetto con l'export-id dato, nasconde tutti gli altri (solo " +"con export-id)" -#. check whether something is selected -#: ../src/ui/clipboard.cpp:261 -msgid "Nothing was copied." -msgstr "Niente da copiare." +#: ../src/main.cpp:377 +msgid "Use stored filename and DPI hints when exporting (only with export-id)" +msgstr "" +"Usa il nome del file e il valore DPI salvato quando esporta (solo con export-" +"id)" -#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 -#: ../src/ui/clipboard.cpp:612 -msgid "Nothing on the clipboard." -msgstr "Niente negli appunti." +#: ../src/main.cpp:382 +msgid "Background color of exported bitmap (any SVG-supported color string)" +msgstr "" +"Colore di sfondo della bitmap esportata (ogni stringa di colore supportata " +"da SVG)" -#: ../src/ui/clipboard.cpp:432 -msgid "Select object(s) to paste style to." -msgstr "Selezionare l'oggetto a cui incollare lo stile." +#: ../src/main.cpp:383 +msgid "COLOR" +msgstr "COLORE" -#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 -msgid "No style on the clipboard." -msgstr "Nessun stile negli appunti." +#: ../src/main.cpp:387 +msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" +msgstr "" +"OpacitĂ  dello sfondo della bitmap esportata (sia da 0.0 a 1.0, che da 1 a " +"255)" -#: ../src/ui/clipboard.cpp:485 -msgid "Select object(s) to paste size to." -msgstr "Selezionare l'oggetto a cui incollare la dimensione." +#: ../src/main.cpp:392 +msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" +msgstr "" +"Esporta il documento come SVG puro (senza i namespace di sodipodi o di " +"inkscape)" -#: ../src/ui/clipboard.cpp:492 -msgid "No size on the clipboard." -msgstr "Nessuna dimensione negli appunti." +#: ../src/main.cpp:397 +msgid "Export document to a PS file" +msgstr "Esporta il documento come file PS" -#: ../src/ui/clipboard.cpp:545 -msgid "Select object(s) to paste live path effect to." -msgstr "Selezionare l'oggetto a cui incollare l'effetto su tracciato." +#: ../src/main.cpp:402 +msgid "Export document to an EPS file" +msgstr "Esporta il documento come file EPS" -#. no_effect: -#: ../src/ui/clipboard.cpp:570 -msgid "No effect on the clipboard." -msgstr "Nessun effetto negli appunti." +#: ../src/main.cpp:407 +msgid "" +"Choose the PostScript Level used to export. Possible choices are 2 (the " +"default) and 3" +msgstr "" -#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:626 -msgid "Clipboard does not contain a path." -msgstr "Nessun tracciato negli appunti." +#: ../src/main.cpp:409 +#, fuzzy +msgid "PS Level" +msgstr "Livello" -#. * -#. * Constructor -#. -#: ../src/ui/dialog/aboutbox.cpp:80 -msgid "About Inkscape" -msgstr "Informazioni su Inkscape" +#: ../src/main.cpp:413 +msgid "Export document to a PDF file" +msgstr "Esporta il documento come file PDF" -#: ../src/ui/dialog/aboutbox.cpp:91 -msgid "_Splash" -msgstr "_Splash" +#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:419 +msgid "" +"Export PDF to given version. (hint: make sure to input the exact string " +"found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" +msgstr "" -#: ../src/ui/dialog/aboutbox.cpp:95 -msgid "_Authors" -msgstr "_Autori" +#: ../src/main.cpp:420 +msgid "PDF_VERSION" +msgstr "" -#: ../src/ui/dialog/aboutbox.cpp:97 -msgid "_Translators" -msgstr "_Traduttori" +#: ../src/main.cpp:424 +msgid "" +"Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is " +"exported, putting the text on top of the PDF/PS/EPS file. Include the result " +"in LaTeX like: \\input{latexfile.tex}" +msgstr "" -#: ../src/ui/dialog/aboutbox.cpp:99 -msgid "_License" -msgstr "_Licenza" +#: ../src/main.cpp:429 +msgid "Export document to an Enhanced Metafile (EMF) File" +msgstr "Esporta il documento come file Enhanced Metafile (EMF)" -#. TRANSLATORS: This is the filename of the `About Inkscape' picture in -#. the `screens' directory. Thus the translation of "about.svg" should be -#. the filename of its translated version, e.g. about.zh.svg for Chinese. -#. -#. N.B. about.svg changes once per release. (We should probably rename -#. the original to about-0.40.svg etc. as soon as we have a translation. -#. If we do so, then add an item to release-checklist saying that the -#. string here should be changed.) -#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the -#. native filename encoding... and the filename passed to sp_document_new -#. should be in UTF-*8.. -#: ../src/ui/dialog/aboutbox.cpp:166 -msgid "about.svg" -msgstr "about.svg" +#: ../src/main.cpp:434 +#, fuzzy +msgid "Export document to a Windows Metafile (WMF) File" +msgstr "Esporta il documento come file Enhanced Metafile (EMF)" -#. TRANSLATORS: Put here your name (and other national contributors') -#. one per line in the form of: name surname (email). Use \n for newline. -#: ../src/ui/dialog/aboutbox.cpp:416 -msgid "translator-credits" -msgstr "" -"Luca Bruno (lucab@debian.org)\n" -"Luca Ferretti (elle.uca@infinito.it)\n" -"Francesco Ricci (tardo2002@libero.it)" +#: ../src/main.cpp:439 +#, fuzzy +msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" +msgstr "Converte i testi in tracciati durante l'esportazione (PS, EPS, PDF)" + +#: ../src/main.cpp:444 +msgid "" +"Render filtered objects without filters, instead of rasterizing (PS, EPS, " +"PDF)" +msgstr "" +"Elimina filtri nella resa di oggetti con filtri, invece di farne una " +"versione raster (PS, EPS, PDF)" -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:852 -msgid "Align" -msgstr "Allineamento" +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:450 +msgid "" +"Query the X coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" +"Richiede la coordinata X del disegno o dell'oggetto se specificato con --" +"query-id" -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:853 -msgid "Distribute" -msgstr "Distribuzione" +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:456 +msgid "" +"Query the Y coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" +"Richiede la coordinata Y del disegno o dell'oggetto se specificato con --" +"query-id" -#: ../src/ui/dialog/align-and-distribute.cpp:420 -msgid "Minimum horizontal gap (in px units) between bounding boxes" -msgstr "Distanza orizzontale minima (in unitĂ  px) tra i riquadri" +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:462 +msgid "" +"Query the width of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" +"Richiede la larghezza del disegno o dell'oggetto se specificato con --query-" +"id" -#. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:422 -#, fuzzy -msgctxt "Gap" -msgid "_H:" -msgstr "_H" +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:468 +msgid "" +"Query the height of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" +"Richiede l'altezza del disegno o dell'oggetto se specificato con --query-id" -#: ../src/ui/dialog/align-and-distribute.cpp:430 -msgid "Minimum vertical gap (in px units) between bounding boxes" -msgstr "Distanza verticale minima (in unitĂ  px) tra i riquadri" +#: ../src/main.cpp:473 +msgid "List id,x,y,w,h for all objects" +msgstr "Visualizza id,x,y,w,h per tutti gli oggetti" -#. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 -#, fuzzy -msgctxt "Gap" -msgid "_V:" -msgstr "V:" +#: ../src/main.cpp:478 +msgid "The ID of the object whose dimensions are queried" +msgstr "L'ID dell'oggetto di cui si richiedono le dimensioni" -#: ../src/ui/dialog/align-and-distribute.cpp:468 -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/connector-toolbar.cpp:411 -msgid "Remove overlaps" -msgstr "Rimuovi sovrapposizione" +#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory +#: ../src/main.cpp:484 +msgid "Print out the extension directory and exit" +msgstr "Stampa la directory delle estensioni e esce" -#: ../src/ui/dialog/align-and-distribute.cpp:499 -#: ../src/widgets/connector-toolbar.cpp:240 -msgid "Arrange connector network" -msgstr "Sistema connettori rete" +#: ../src/main.cpp:489 +msgid "Remove unused definitions from the defs section(s) of the document" +msgstr "Elimina definizioni superflue dalle sezioni defs del documento" -#: ../src/ui/dialog/align-and-distribute.cpp:592 -#, fuzzy -msgid "Exchange Positions" -msgstr "Posizione casuale" +#: ../src/main.cpp:495 +msgid "Enter a listening loop for D-Bus messages in console mode" +msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:626 -msgid "Unclump" -msgstr " Sparpaglia " +#: ../src/main.cpp:500 +msgid "" +"Specify the D-Bus bus name to listen for messages on (default is org." +"inkscape)" +msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:698 -msgid "Randomize positions" -msgstr "Posizione casuale" +#: ../src/main.cpp:501 +msgid "BUS-NAME" +msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:801 -msgid "Distribute text baselines" -msgstr "Distribuisci linee del testo" +#: ../src/main.cpp:506 +msgid "List the IDs of all the verbs in Inkscape" +msgstr "Mostra gli ID di tutte le azioni in Inkscape" -#: ../src/ui/dialog/align-and-distribute.cpp:824 -msgid "Align text baselines" -msgstr "Allinea linee del testo" +#: ../src/main.cpp:511 +msgid "Verb to call when Inkscape opens." +msgstr "Azioni da compiere all'apertura di Inkscape." -#: ../src/ui/dialog/align-and-distribute.cpp:854 -#, fuzzy -msgid "Rearrange" -msgstr "Ordinamento" +#: ../src/main.cpp:512 +msgid "VERB-ID" +msgstr "VERB-ID" -#: ../src/ui/dialog/align-and-distribute.cpp:856 -#: ../src/widgets/toolbox.cpp:1728 -msgid "Nodes" -msgstr "Nodi" +#: ../src/main.cpp:516 +msgid "Object ID to select when Inkscape opens." +msgstr "ID dell'oggetto da selezionare all'apertura di Inkscape." -#: ../src/ui/dialog/align-and-distribute.cpp:870 -msgid "Relative to: " -msgstr "Relativo a: " +#: ../src/main.cpp:517 +msgid "OBJECT-ID" +msgstr "OBJECT-ID" -#: ../src/ui/dialog/align-and-distribute.cpp:871 -#, fuzzy -msgid "_Treat selection as group: " -msgstr "Tratta la selezione come gruppo:" +#: ../src/main.cpp:521 +msgid "Start Inkscape in interactive shell mode." +msgstr "Avvia Inkscape in modalitĂ  interattiva per terminale" -#. Align -#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2937 -#: ../src/verbs.cpp:2938 -msgid "Align right edges of objects to the left edge of the anchor" -msgstr "Allinea margine destro dell'oggetto al margine sinistro del fisso" +#: ../src/main.cpp:871 ../src/main.cpp:1283 +msgid "" +"[OPTIONS...] [FILE...]\n" +"\n" +"Available options:" +msgstr "" +"[OPZIONI...] [FILE...]\n" +"\n" +"Opzioni disponibili:" -#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2939 -#: ../src/verbs.cpp:2940 -msgid "Align left edges" -msgstr "Allinea margini sinistri" +#. ## Add a menu for clear() +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +msgid "_File" +msgstr "_File" -#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2941 -#: ../src/verbs.cpp:2942 -msgid "Center on vertical axis" -msgstr "Centra sull'asse verticale" +#: ../src/menus-skeleton.h:17 +msgid "_New" +msgstr "_Nuovo" -#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2943 -#: ../src/verbs.cpp:2944 -msgid "Align right sides" -msgstr "Allinea i lati destri" +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2634 ../src/verbs.cpp:2640 +msgid "_Edit" +msgstr "_Modifica" -#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2945 -#: ../src/verbs.cpp:2946 -msgid "Align left edges of objects to the right edge of the anchor" -msgstr "Allinea lato sinistro dell'oggetto al lato destro del fisso" +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2398 +msgid "Paste Si_ze" +msgstr "Incolla dimen_sione" -#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2947 -#: ../src/verbs.cpp:2948 -msgid "Align bottom edges of objects to the top edge of the anchor" -msgstr "Allinea margine inferiore dell'oggetto al margine superiore del fisso" +#: ../src/menus-skeleton.h:65 +msgid "Clo_ne" +msgstr "Clo_na" -#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2949 -#: ../src/verbs.cpp:2950 -msgid "Align top edges" -msgstr "Allinea i margini superiori" +#: ../src/menus-skeleton.h:79 +msgid "Select Sa_me" +msgstr "Sele_ziona stesso" -#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2951 -#: ../src/verbs.cpp:2952 -msgid "Center on horizontal axis" -msgstr "Centra sull'asse orizzontale" +#: ../src/menus-skeleton.h:97 +msgid "_View" +msgstr "_Visualizza" -#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2953 -#: ../src/verbs.cpp:2954 -msgid "Align bottom edges" -msgstr "Allinea i margini inferiori" +#: ../src/menus-skeleton.h:98 +msgid "_Zoom" +msgstr "_Ingrandimento" -#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2955 -#: ../src/verbs.cpp:2956 -msgid "Align top edges of objects to the bottom edge of the anchor" -msgstr "" -"Allinea il margine superiore dell'oggetto al margine inferiore del fisso" +#: ../src/menus-skeleton.h:114 +msgid "_Display mode" +msgstr "ModalitĂ  _visualizzazione" -#: ../src/ui/dialog/align-and-distribute.cpp:909 -msgid "Align baseline anchors of texts horizontally" -msgstr "Allinea orizzontalmente la linea base del testo" +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:123 +msgid "_Color display mode" +msgstr "ModalitĂ  _colore schermo" -#: ../src/ui/dialog/align-and-distribute.cpp:912 -msgid "Align baselines of texts" -msgstr "Allinea le linee base del testo" +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:136 +msgid "Sh_ow/Hide" +msgstr "M_ostra/Nascondi" -#: ../src/ui/dialog/align-and-distribute.cpp:917 -msgid "Make horizontal gaps between objects equal" -msgstr "Distribuisce equamente la distanza orizzontale tra gli oggetti" +#. Not quite ready to be in the menus. +#. " \n" +#: ../src/menus-skeleton.h:156 +msgid "_Layer" +msgstr "_Livello" -#: ../src/ui/dialog/align-and-distribute.cpp:921 -msgid "Distribute left edges equidistantly" -msgstr "Distribuisce i margini sinistri degli oggetti alla stessa distanza" +#: ../src/menus-skeleton.h:180 +msgid "_Object" +msgstr "_Oggetto" -#: ../src/ui/dialog/align-and-distribute.cpp:924 -msgid "Distribute centers equidistantly horizontally" -msgstr "" -"Distribuisce orizzontalmente i centri degli oggetti alla stessa distanza" +#: ../src/menus-skeleton.h:188 +msgid "Cli_p" +msgstr "Fi_ssaggio" -#: ../src/ui/dialog/align-and-distribute.cpp:927 -msgid "Distribute right edges equidistantly" -msgstr "Distribuisce i margini destri degli oggetti alla stessa distanza" +#: ../src/menus-skeleton.h:192 +msgid "Mas_k" +msgstr "Masc_hera" -#: ../src/ui/dialog/align-and-distribute.cpp:931 -msgid "Make vertical gaps between objects equal" -msgstr "Distribuisce equamente la distanza verticale tra gli oggetti" +#: ../src/menus-skeleton.h:196 +msgid "Patter_n" +msgstr "Moti_vo" -#: ../src/ui/dialog/align-and-distribute.cpp:935 -msgid "Distribute top edges equidistantly" -msgstr "Distribuisce i margini superiori degli oggetti alla stessa distanza" +#: ../src/menus-skeleton.h:220 +msgid "_Path" +msgstr "_Tracciato" -#: ../src/ui/dialog/align-and-distribute.cpp:938 -msgid "Distribute centers equidistantly vertically" -msgstr "Distribuisce verticalmente i centri degli oggetti alla stessa distanza" +#: ../src/menus-skeleton.h:248 ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/text-edit.cpp:72 +msgid "_Text" +msgstr "Te_sto" -#: ../src/ui/dialog/align-and-distribute.cpp:941 -msgid "Distribute bottom edges equidistantly" -msgstr "Distribuisce i lati inferiori in maniera equidistanziale" +#: ../src/menus-skeleton.h:266 +msgid "Filter_s" +msgstr "Filt_ri" -#: ../src/ui/dialog/align-and-distribute.cpp:946 -msgid "Distribute baseline anchors of texts horizontally" -msgstr "Distribuisce orizzontalmente la linea base del testo" +#: ../src/menus-skeleton.h:272 +msgid "Exte_nsions" +msgstr "Este_nsioni" -#: ../src/ui/dialog/align-and-distribute.cpp:949 -msgid "Distribute baselines of texts vertically" -msgstr "Distribuisce verticalmente le linee base del testo" +#: ../src/menus-skeleton.h:278 +msgid "_Help" +msgstr "_Aiuto" -#: ../src/ui/dialog/align-and-distribute.cpp:955 -#: ../src/widgets/connector-toolbar.cpp:373 -msgid "Nicely arrange selected connector network" -msgstr "Disponi ordinatamente i connettori di rete selezionati" +#: ../src/menus-skeleton.h:282 +msgid "Tutorials" +msgstr "Lezioni" -#: ../src/ui/dialog/align-and-distribute.cpp:958 -msgid "Exchange positions of selected objects - selection order" +#: ../src/object-edit.cpp:439 +msgid "" +"Adjust the horizontal rounding radius; with Ctrl to make the " +"vertical radius the same" msgstr "" +"Modifica l'arrotondamento orizzontale; con Ctrl per rendere " +"uguale l'arrotondamento verticale" -#: ../src/ui/dialog/align-and-distribute.cpp:961 -msgid "Exchange positions of selected objects - stacking order" +#: ../src/object-edit.cpp:444 +msgid "" +"Adjust the vertical rounding radius; with Ctrl to make the " +"horizontal radius the same" msgstr "" +"Modifica l'arrotondamento verticale; con Ctrl per rendere " +"uguale l'arrotondamento orizzontale" -#: ../src/ui/dialog/align-and-distribute.cpp:964 -msgid "Exchange positions of selected objects - clockwise rotate" +#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 +msgid "" +"Adjust the width and height of the rectangle; with Ctrl to " +"lock ratio or stretch in one dimension only" msgstr "" +"Modifica l'altezza e la larghezza del rettangolo; con Ctrl per " +"mantenere la proporzione o allungare su una sola dimensione" -#: ../src/ui/dialog/align-and-distribute.cpp:969 -msgid "Randomize centers in both dimensions" -msgstr "Rendi casuali i centri su entrambe le dimensioni" - -#: ../src/ui/dialog/align-and-distribute.cpp:972 -msgid "Unclump objects: try to equalize edge-to-edge distances" +#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 +#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 +msgid "" +"Resize box in X/Y direction; with Shift along the Z axis; with " +"Ctrl to constrain to the directions of edges or diagonals" msgstr "" -"Sparpaglia oggetti: prova a rendere uguali le distanze da bordo a bordo" +"Ridimensiona il solido lungo gli assi X/Y; con Maiusc per l'asse Z; " +"con Ctrl per fissare alle direzioni degli spigoli o delle diagonali" -#: ../src/ui/dialog/align-and-distribute.cpp:977 +#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 +#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 msgid "" -"Move objects as little as possible so that their bounding boxes do not " -"overlap" +"Resize box along the Z axis; with Shift in X/Y direction; with " +"Ctrl to constrain to the directions of edges or diagonals" msgstr "" -"Sposta gli oggetti il minimo indispensabile affinchĂ© i loro riquadri non si " -"sovrappongano" - -#: ../src/ui/dialog/align-and-distribute.cpp:985 -msgid "Align selected nodes to a common horizontal line" -msgstr "Allinea i nodi selezionati a una linea comune orizzontale" - -#: ../src/ui/dialog/align-and-distribute.cpp:988 -msgid "Align selected nodes to a common vertical line" -msgstr "Allinea i nodi selezionati a una linea comune verticale" - -#: ../src/ui/dialog/align-and-distribute.cpp:991 -msgid "Distribute selected nodes horizontally" -msgstr "Distribuisce orizzontalmente i nodi selezionati" - -#: ../src/ui/dialog/align-and-distribute.cpp:994 -msgid "Distribute selected nodes vertically" -msgstr "Distribuisce verticalmente i nodi selezionati" - -#. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:999 -msgid "Last selected" -msgstr "Ultimo selezionato" - -#: ../src/ui/dialog/align-and-distribute.cpp:1000 -msgid "First selected" -msgstr "Primo selezionato" - -#: ../src/ui/dialog/align-and-distribute.cpp:1001 -msgid "Biggest object" -msgstr "Oggetto piĂą grande" +"Ridimensiona il solido lungo l'asse Z; con Maiusc per gli assi X/Y; " +"con Ctrl per fissare alle direzioni degli spigoli o delle diagonali" -#: ../src/ui/dialog/align-and-distribute.cpp:1002 -msgid "Smallest object" -msgstr "Oggetto piĂą piccolo" +#: ../src/object-edit.cpp:721 +msgid "Move the box in perspective" +msgstr "Sposta il solido in prospettiva" -#: ../src/ui/dialog/align-and-distribute.cpp:1005 -#, fuzzy -msgid "Selection Area" -msgstr "Selezione" +#: ../src/object-edit.cpp:948 +msgid "Adjust ellipse width, with Ctrl to make circle" +msgstr "" +"Modifica la larghezza dell'ellisse, con Ctrl per farne un " +"cerchio" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 -#, fuzzy -msgid "Edit profile" -msgstr "Profilo dispositivo:" +#: ../src/object-edit.cpp:952 +msgid "Adjust ellipse height, with Ctrl to make circle" +msgstr "" +"Modifica l'altezza dell'ellisse, con Ctrl per farne un cerchio" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 -msgid "Profile name:" -msgstr "Nome profilo" +#: ../src/object-edit.cpp:956 +msgid "" +"Position the start point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" +"Posiziona il punto iniziale dell'arco o del segmento; con Ctrl " +"per far scattare l'angolo; trascinare dentro l'ellisse per un arco, " +"fuori per un segmento" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 -msgid "Save" -msgstr "Salva" +#: ../src/object-edit.cpp:961 +msgid "" +"Position the end point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" +"Posizionare il punto finale dell'arco o del segmento; con Ctrl " +"per far scattare l'angolo; trascinare dentro l'ellisse per un arco, " +"fuori per un segmento" -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 -#, fuzzy -msgid "Add profile" -msgstr "Aggiungi filtro" +#: ../src/object-edit.cpp:1101 +msgid "" +"Adjust the tip radius of the star or polygon; with Shift to " +"round; with Alt to randomize" +msgstr "" +"Modifica il diametro della stella o del poligono; con Maiusc " +"per arrotondare; con Alt per avere casualitĂ " -#: ../src/ui/dialog/clonetiler.cpp:112 -msgid "_Symmetry" -msgstr "_Simmetria" +#: ../src/object-edit.cpp:1109 +msgid "" +"Adjust the base radius of the star; with Ctrl to keep star " +"rays radial (no skew); with Shift to round; with Alt to " +"randomize" +msgstr "" +"Modifica il diametro interno della stella; con Ctrl per " +"mantenere la direzione dei raggi (senza deformazione); con Maiusc per " +"arrotondare; con Alt per avere casualitĂ " -#. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/ui/dialog/clonetiler.cpp:124 -msgid "P1: simple translation" -msgstr "P1: traslazione semplice" +#: ../src/object-edit.cpp:1299 +msgid "" +"Roll/unroll the spiral from inside; with Ctrl to snap angle; " +"with Alt to converge/diverge" +msgstr "" +"Arrotola/Srotola una spirale dall'interno; con Ctrl per far " +"scattare l'angolo; con Alt per far convergere/divergere" -#: ../src/ui/dialog/clonetiler.cpp:125 -msgid "P2: 180° rotation" -msgstr "P2: rotazione 180°" +#: ../src/object-edit.cpp:1303 +msgid "" +"Roll/unroll the spiral from outside; with Ctrl to snap angle; " +"with Shift to scale/rotate; with Alt to lock radius" +msgstr "" +"Arrotola/Srotola una spirale dall'esterno; con Ctrl per far " +"scattare l'angolo; con Maiusc per ridimensionare/ruotare; con Alt per bloccare il raggio" -#: ../src/ui/dialog/clonetiler.cpp:126 -msgid "PM: reflection" -msgstr "PM: riflessione" +#: ../src/object-edit.cpp:1348 +msgid "Adjust the offset distance" +msgstr "Regola la distanza di proiezione" -#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. -#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/ui/dialog/clonetiler.cpp:129 -msgid "PG: glide reflection" -msgstr "PG: riflessione scorrevole" +#: ../src/object-edit.cpp:1384 +msgid "Drag to resize the flowed text frame" +msgstr "Trascinare per ridimensionare il riquadro del testo dinamico" -#: ../src/ui/dialog/clonetiler.cpp:130 -msgid "CM: reflection + glide reflection" -msgstr "CM: riflessione + riflessione scorrevole" +#: ../src/path-chemistry.cpp:53 +msgid "Select object(s) to combine." +msgstr "Selezionare gli oggetti da combinare." -#: ../src/ui/dialog/clonetiler.cpp:131 -msgid "PMM: reflection + reflection" -msgstr "PMM: riflessione + riflessione" +#: ../src/path-chemistry.cpp:57 +msgid "Combining paths..." +msgstr "Combinazione tracciati..." -#: ../src/ui/dialog/clonetiler.cpp:132 -msgid "PMG: reflection + 180° rotation" -msgstr "PMG: riflessione + rotazione 180°" +#: ../src/path-chemistry.cpp:170 +msgid "Combine" +msgstr "Combina" -#: ../src/ui/dialog/clonetiler.cpp:133 -msgid "PGG: glide reflection + 180° rotation" -msgstr "PGG: riflessione scorrevole + rotazione 180°" +#: ../src/path-chemistry.cpp:177 +msgid "No path(s) to combine in the selection." +msgstr "Nessun tracciato da combinare nella selezione." -#: ../src/ui/dialog/clonetiler.cpp:134 -msgid "CMM: reflection + reflection + 180° rotation" -msgstr "CMM: riflessione + riflessione + rotazione 180°" +#: ../src/path-chemistry.cpp:189 +msgid "Select path(s) to break apart." +msgstr "Selezionare il tracciato da separare." -#: ../src/ui/dialog/clonetiler.cpp:135 -msgid "P4: 90° rotation" -msgstr "P4: rotazione 90°" +#: ../src/path-chemistry.cpp:193 +msgid "Breaking apart paths..." +msgstr "Separazione tracciati..." -#: ../src/ui/dialog/clonetiler.cpp:136 -msgid "P4M: 90° rotation + 45° reflection" -msgstr "P4M: rotazione 90° + riflessione 45°" +#: ../src/path-chemistry.cpp:284 +msgid "Break apart" +msgstr "Separa" -#: ../src/ui/dialog/clonetiler.cpp:137 -msgid "P4G: 90° rotation + 90° reflection" -msgstr "P4G: rotazione 90° + riflessione 90°" +#: ../src/path-chemistry.cpp:286 +msgid "No path(s) to break apart in the selection." +msgstr "Nessun tracciato da separare nella selezione." -#: ../src/ui/dialog/clonetiler.cpp:138 -msgid "P3: 120° rotation" -msgstr "P3: rotazione 120°" +#: ../src/path-chemistry.cpp:296 +msgid "Select object(s) to convert to path." +msgstr "Selezionare l'oggetto da convertire in tracciato." -#: ../src/ui/dialog/clonetiler.cpp:139 -msgid "P31M: reflection + 120° rotation, dense" -msgstr "P31M: riflessione + rotazione 120°, denso" +#: ../src/path-chemistry.cpp:302 +msgid "Converting objects to paths..." +msgstr "Conversione oggetti in tracciati..." -#: ../src/ui/dialog/clonetiler.cpp:140 -msgid "P3M1: reflection + 120° rotation, sparse" -msgstr "P3M1: riflessione + rotazione 120°, rado" +#: ../src/path-chemistry.cpp:324 +msgid "Object to path" +msgstr "Da oggetto a tracciato" -#: ../src/ui/dialog/clonetiler.cpp:141 -msgid "P6: 60° rotation" -msgstr "P6: rotazione 60°" +#: ../src/path-chemistry.cpp:326 +msgid "No objects to convert to path in the selection." +msgstr "Nessun oggetto nella selezione da convertire in tracciato." -#: ../src/ui/dialog/clonetiler.cpp:142 -msgid "P6M: reflection + 60° rotation" -msgstr "P6M: riflessione + rotazione 60°" +#: ../src/path-chemistry.cpp:603 +msgid "Select path(s) to reverse." +msgstr "Selezionare il tracciato da invertire." -#: ../src/ui/dialog/clonetiler.cpp:162 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "Selezionare uno dei 17 gruppi di simmetria per le serie" +#: ../src/path-chemistry.cpp:612 +msgid "Reversing paths..." +msgstr "Inversione tracciati" -#: ../src/ui/dialog/clonetiler.cpp:180 -msgid "S_hift" -msgstr "Spos_tamento" +#: ../src/path-chemistry.cpp:647 +msgid "Reverse path" +msgstr "Inverti tracciato" -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/ui/dialog/clonetiler.cpp:190 -#, no-c-format -msgid "Shift X:" -msgstr "Spostamento X:" +#: ../src/path-chemistry.cpp:649 +msgid "No paths to reverse in the selection." +msgstr "Nessun tracciato nella selezione da invertire." -#: ../src/ui/dialog/clonetiler.cpp:198 -#, no-c-format -msgid "Horizontal shift per row (in % of tile width)" -msgstr "" -"Lo spostamento orizzontale per ogni riga (in % sulla larghezza del clone)" +#: ../src/persp3d.cpp:293 +msgid "Toggle vanishing point" +msgstr "Attiva punto di fuga" -#: ../src/ui/dialog/clonetiler.cpp:206 -#, no-c-format -msgid "Horizontal shift per column (in % of tile width)" -msgstr "" -"Lo spostamento orizzontale per ogni colonna (in % sulla larghezza del clone)" +#: ../src/persp3d.cpp:304 +msgid "Toggle multiple vanishing points" +msgstr "Attiva punti di fuga multipli" -#: ../src/ui/dialog/clonetiler.cpp:212 -msgid "Randomize the horizontal shift by this percentage" -msgstr "Rende casuale di questa percentuale lo spostamento orizzontale" +#: ../src/preferences-skeleton.h:101 +msgid "Dip pen" +msgstr "Calamaio" -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/ui/dialog/clonetiler.cpp:222 -#, no-c-format -msgid "Shift Y:" -msgstr "Spostamento Y:" +#: ../src/preferences-skeleton.h:102 +msgid "Marker" +msgstr "Delimitatore" -#: ../src/ui/dialog/clonetiler.cpp:230 -#, no-c-format -msgid "Vertical shift per row (in % of tile height)" -msgstr "Lo spostamento verticale per ogni riga (in % sull'altezza del clone)" +#: ../src/preferences-skeleton.h:103 +msgid "Brush" +msgstr "Pennello" -#: ../src/ui/dialog/clonetiler.cpp:238 -#, no-c-format -msgid "Vertical shift per column (in % of tile height)" -msgstr "" -"Lo spostamento verticale per ogni colonna (in % sull'altezza del clone)" +#: ../src/preferences-skeleton.h:104 +msgid "Wiggly" +msgstr "Strisciante" -#: ../src/ui/dialog/clonetiler.cpp:245 -msgid "Randomize the vertical shift by this percentage" -msgstr "Rende casuale di questa percentuale lo spostamento verticale" +#: ../src/preferences-skeleton.h:105 +msgid "Splotchy" +msgstr "Macchiato" -#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 -msgid "Exponent:" -msgstr "Esponente:" +#: ../src/preferences-skeleton.h:106 +msgid "Tracing" +msgstr "China" -#: ../src/ui/dialog/clonetiler.cpp:260 -msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" +#: ../src/preferences.cpp:134 +msgid "" +"Inkscape will run with default settings, and new settings will not be saved. " msgstr "" -"Specifica se le righe sono a spaziatura costante (1), convergenti (<1) o " -"divergenti (>1)" +"Inkscape verrĂ  eseguito con le impostazioni predefinite, e le nuove " +"impostazioni non verranno salvate." -#: ../src/ui/dialog/clonetiler.cpp:267 -msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" -msgstr "" -"Specifica se le colonne sono a spaziatura costante (1), convergenti (<1) o " -"divergenti (>1)" +#. the creation failed +#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:149 +#, c-format +msgid "Cannot create profile directory %s." +msgstr "Impossibile creare la cartella di profilo %s." -#. TRANSLATORS: "Alternate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 -#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 -#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 -msgid "Alternate:" -msgstr "Alterna:" +#. The profile dir is not actually a directory +#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:167 +#, c-format +msgid "%s is not a valid directory." +msgstr "%s non è una cartella valida." -#: ../src/ui/dialog/clonetiler.cpp:281 -msgid "Alternate the sign of shifts for each row" -msgstr "Alterna il segno dello spostamento per ogni riga" +#. The write failed. +#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), +#. Glib::filename_to_utf8(_prefs_filename)), not_saved); +#: ../src/preferences.cpp:178 +#, c-format +msgid "Failed to create the preferences file %s." +msgstr "Impossibile file di impostazioni %s." -#: ../src/ui/dialog/clonetiler.cpp:286 -msgid "Alternate the sign of shifts for each column" -msgstr "Alterna il segno dello spostamento per ogni colonna" +#: ../src/preferences.cpp:214 +#, c-format +msgid "The preferences file %s is not a regular file." +msgstr "Il file di impostazioni %s non è un file regolare." -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 -#: ../src/ui/dialog/clonetiler.cpp:533 -msgid "Cumulate:" -msgstr "Accumula:" +#: ../src/preferences.cpp:224 +#, c-format +msgid "The preferences file %s could not be read." +msgstr "Il file di impostazioni %s non può esser letto." -#: ../src/ui/dialog/clonetiler.cpp:299 -msgid "Cumulate the shifts for each row" -msgstr "Accumula lo spostamento per ogni riga" +#: ../src/preferences.cpp:235 +#, c-format +msgid "The preferences file %s is not a valid XML document." +msgstr "Il file di configurazione %s non è un documento XML valido." -#: ../src/ui/dialog/clonetiler.cpp:304 -msgid "Cumulate the shifts for each column" -msgstr "Accumula lo spostamento per ogni colonna" +#: ../src/preferences.cpp:244 +#, c-format +msgid "The file %s is not a valid Inkscape preferences file." +msgstr "Il file %s non è un file di impostazioni Inkscape valido." -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:311 -msgid "Exclude tile:" -msgstr "Escludi clone:" +#: ../src/rdf.cpp:175 +msgid "CC Attribution" +msgstr "CC Attribuzione" -#: ../src/ui/dialog/clonetiler.cpp:317 -msgid "Exclude tile height in shift" -msgstr "Esclude l'altezza del clone nello spostamento" +#: ../src/rdf.cpp:180 +msgid "CC Attribution-ShareAlike" +msgstr "CC Attribuzione-CondividiComeQuesto" -#: ../src/ui/dialog/clonetiler.cpp:322 -msgid "Exclude tile width in shift" -msgstr "Esclude la larghezza del clone nello spostamento" +#: ../src/rdf.cpp:185 +msgid "CC Attribution-NoDerivs" +msgstr "CC Attribuzione-NoDeriv" -#: ../src/ui/dialog/clonetiler.cpp:331 -msgid "Sc_ale" -msgstr "Sc_ala" +#: ../src/rdf.cpp:190 +msgid "CC Attribution-NonCommercial" +msgstr "CC Attribuzione-NonCommerciale" -#: ../src/ui/dialog/clonetiler.cpp:339 -msgid "Scale X:" -msgstr "Scala X:" +#: ../src/rdf.cpp:195 +msgid "CC Attribution-NonCommercial-ShareAlike" +msgstr "CC Attribuzione-NonCommerciale-CondividiComeQuesto" -#: ../src/ui/dialog/clonetiler.cpp:347 -#, no-c-format -msgid "Horizontal scale per row (in % of tile width)" -msgstr "" -"Il ridimensionamento orizzontale per ogni riga (in % sulla larghezza del " -"clone)" +#: ../src/rdf.cpp:200 +msgid "CC Attribution-NonCommercial-NoDerivs" +msgstr "CC Attribuzione-NonCommerciale-NoDeriv" -#: ../src/ui/dialog/clonetiler.cpp:355 -#, no-c-format -msgid "Horizontal scale per column (in % of tile width)" -msgstr "" -"Il ridimensionamento orizzontale per ogni colonna (in % sulla larghezza del " -"clone)" +#: ../src/rdf.cpp:205 +#, fuzzy +msgid "CC0 Public Domain Dedication" +msgstr "Pubblico dominio" -#: ../src/ui/dialog/clonetiler.cpp:361 -msgid "Randomize the horizontal scale by this percentage" -msgstr "Rende casuale di questa percentuale il ridimensionamento orizzontale" +#: ../src/rdf.cpp:210 +msgid "FreeArt" +msgstr "FreeArt" -#: ../src/ui/dialog/clonetiler.cpp:369 -msgid "Scale Y:" -msgstr "Scala Y:" +#: ../src/rdf.cpp:215 +msgid "Open Font License" +msgstr "Licenza Open Font" -#: ../src/ui/dialog/clonetiler.cpp:377 -#, no-c-format -msgid "Vertical scale per row (in % of tile height)" -msgstr "" -"Il ridimensionamento verticale per ogni riga (in % sulla larghezza del clone)" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute +#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +msgid "Title:" +msgstr "Titolo:" -#: ../src/ui/dialog/clonetiler.cpp:385 -#, no-c-format -msgid "Vertical scale per column (in % of tile height)" -msgstr "" -"I ridimensionamento verticale per ogni colonna (in % sulla larghezza del " -"clone)" +#: ../src/rdf.cpp:236 +msgid "A name given to the resource" +msgstr "Nome dato alla risorsa" -#: ../src/ui/dialog/clonetiler.cpp:391 -msgid "Randomize the vertical scale by this percentage" -msgstr "Rende casuale di questa percentuale il ridimensionamento verticale" +#: ../src/rdf.cpp:238 +msgid "Date:" +msgstr "Data:" -#: ../src/ui/dialog/clonetiler.cpp:405 -msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" -msgstr "" -"Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " -"divergenti (>1)" +#: ../src/rdf.cpp:239 +msgid "" +"A point or period of time associated with an event in the lifecycle of the " +"resource" +msgstr "Data associata ad un evento del ciclo di vita della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:411 -msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" -msgstr "" -"Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " -"divergenti (>1)" +#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 +msgid "Format:" +msgstr "Formato:" -#: ../src/ui/dialog/clonetiler.cpp:419 -msgid "Base:" -msgstr "Base:" +#: ../src/rdf.cpp:242 +msgid "The file format, physical medium, or dimensions of the resource" +msgstr "Manifestazione fisica o digitale della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 -msgid "" -"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" -msgstr "" -"Base per una spirale logaritmica: non usata (0), convergente (<1) o " -"divergente (>1)" +#: ../src/rdf.cpp:245 +msgid "The nature or genre of the resource" +msgstr "La natura o il genere della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:445 -msgid "Alternate the sign of scales for each row" -msgstr "Alterna il segno del ridimensionamento per ogni riga" +#: ../src/rdf.cpp:248 +msgid "Creator:" +msgstr "Autore:" -#: ../src/ui/dialog/clonetiler.cpp:450 -msgid "Alternate the sign of scales for each column" -msgstr "Alterna il segno del ridimensionamento per ogni colonna" +#: ../src/rdf.cpp:249 +msgid "An entity primarily responsible for making the resource" +msgstr "" +"EntitĂ  che ha la responsabilitĂ  principale della produzione del contenuto " +"della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:463 -msgid "Cumulate the scales for each row" -msgstr "Accumula il ridimensionamento per ogni riga" +#: ../src/rdf.cpp:251 +msgid "Rights:" +msgstr "Diritti:" -#: ../src/ui/dialog/clonetiler.cpp:468 -msgid "Cumulate the scales for each column" -msgstr "Accumula il ridimensionamento per ogni colonna" +#: ../src/rdf.cpp:252 +msgid "Information about rights held in and over the resource" +msgstr "Informazione sui diritti esercitati sulla risorsa" -#: ../src/ui/dialog/clonetiler.cpp:477 -msgid "_Rotation" -msgstr "_Rotazione" +#: ../src/rdf.cpp:254 +msgid "Publisher:" +msgstr "Editore:" -#: ../src/ui/dialog/clonetiler.cpp:485 -msgid "Angle:" -msgstr "Angolo:" +#: ../src/rdf.cpp:255 +msgid "An entity responsible for making the resource available" +msgstr "EntitĂ  responsabile della pubblicazione della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:493 -#, no-c-format -msgid "Rotate tiles by this angle for each row" -msgstr "Ruota i cloni di questo angolo per ogni riga" +#: ../src/rdf.cpp:258 +msgid "Identifier:" +msgstr "Identificatore:" -#: ../src/ui/dialog/clonetiler.cpp:501 -#, no-c-format -msgid "Rotate tiles by this angle for each column" -msgstr "Ruota i cloni di questo angolo per ogni colonna" +#: ../src/rdf.cpp:259 +msgid "An unambiguous reference to the resource within a given context" +msgstr "Riferimento univoco alla risorsa nell’ambito di un dato contesto" -#: ../src/ui/dialog/clonetiler.cpp:507 -msgid "Randomize the rotation angle by this percentage" -msgstr "Rende casuale di questa percentuale l'angolo di rotazione" +#: ../src/rdf.cpp:262 +msgid "A related resource from which the described resource is derived" +msgstr "Riferimento a una risorsa dalla quale è derivata la risorsa in oggetto" -#: ../src/ui/dialog/clonetiler.cpp:521 -msgid "Alternate the rotation direction for each row" -msgstr "Alterna la direzione della rotazione per ogni riga" +#: ../src/rdf.cpp:264 +msgid "Relation:" +msgstr "Relazione:" -#: ../src/ui/dialog/clonetiler.cpp:526 -msgid "Alternate the rotation direction for each column" -msgstr "Alterna la direzione della rotazione per ogni colonna" +#: ../src/rdf.cpp:265 +msgid "A related resource" +msgstr "Riferimento ad una risorsa correlata" -#: ../src/ui/dialog/clonetiler.cpp:539 -msgid "Cumulate the rotation for each row" -msgstr "Accumula la rotazione per ogni riga" +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1858 +msgid "Language:" +msgstr "Lingua:" -#: ../src/ui/dialog/clonetiler.cpp:544 -msgid "Cumulate the rotation for each column" -msgstr "Accumula la rotazione per ogni colonna" +#: ../src/rdf.cpp:268 +msgid "A language of the resource" +msgstr "Lingua del contenuto intellettuale della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:553 -msgid "_Blur & opacity" -msgstr "Sfocatura & _opacitĂ " +#: ../src/rdf.cpp:270 +msgid "Keywords:" +msgstr "Parole chiave:" -#: ../src/ui/dialog/clonetiler.cpp:562 -msgid "Blur:" -msgstr "Sfocatura:" +#: ../src/rdf.cpp:271 +msgid "The topic of the resource" +msgstr "L'argomento della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:568 -msgid "Blur tiles by this percentage for each row" -msgstr "Sfuoca i cloni di questa percentuale per ogni riga" +#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. +#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ +#: ../src/rdf.cpp:275 +msgid "Coverage:" +msgstr "Copertura:" -#: ../src/ui/dialog/clonetiler.cpp:574 -msgid "Blur tiles by this percentage for each column" -msgstr "Sfuoca i cloni di questa percentuale per ogni colonna" +#: ../src/rdf.cpp:276 +msgid "" +"The spatial or temporal topic of the resource, the spatial applicability of " +"the resource, or the jurisdiction under which the resource is relevant" +msgstr "" +"La localizzazione spaziale (il nome o le coordinate geografiche di un " +"luogo), il periodo temporale (l’indicazione di un periodo, una data o una " +"serie di , date) o una giurisdizione (ad esempio il nome di un’entitĂ  " +"amministrativa)" -#: ../src/ui/dialog/clonetiler.cpp:580 -msgid "Randomize the tile blur by this percentage" -msgstr "Rende casuale di questa percentuale la sfocatura del clone" +#: ../src/rdf.cpp:279 +msgid "Description:" +msgstr "Descrizione:" -#: ../src/ui/dialog/clonetiler.cpp:594 -msgid "Alternate the sign of blur change for each row" -msgstr "Alterna il segno del valore di cambiamento di sfocatura per ogni riga" +#: ../src/rdf.cpp:280 +msgid "An account of the resource" +msgstr "Una breve descrizione del contenuto della risorsa" -#: ../src/ui/dialog/clonetiler.cpp:599 -msgid "Alternate the sign of blur change for each column" +#. FIXME: need to handle 1 agent per line of input +#: ../src/rdf.cpp:284 +msgid "Contributors:" +msgstr "Contributori:" + +#: ../src/rdf.cpp:285 +msgid "An entity responsible for making contributions to the resource" msgstr "" -"Alterna il segno del valore di cambiamento di sfocatura per ogni colonna" +"EntitĂ  responsabile della produzione di un contributo al contenuto della " +"risorsa" -#: ../src/ui/dialog/clonetiler.cpp:608 -#, fuzzy -msgid "Opacity:" -msgstr "OpacitĂ :" +#. TRANSLATORS: URL to a page that defines the license for the document +#: ../src/rdf.cpp:289 +msgid "URI:" +msgstr "URI:" -#: ../src/ui/dialog/clonetiler.cpp:614 -msgid "Decrease tile opacity by this percentage for each row" -msgstr "Riduce di questa percentuale per ogni riga l'opacitĂ  dei cloni" +#. TRANSLATORS: this is where you put a URL to a page that defines the license +#: ../src/rdf.cpp:291 +msgid "URI to this document's license's namespace definition" +msgstr "Indirizzo della licenza completa" -#: ../src/ui/dialog/clonetiler.cpp:620 -msgid "Decrease tile opacity by this percentage for each column" -msgstr "Riduce di questa percentuale per ogni colonna l'opacitĂ  dei cloni" +#. TRANSLATORS: fragment of XML representing the license of the document +#: ../src/rdf.cpp:295 +msgid "Fragment:" +msgstr "Frammento:" -#: ../src/ui/dialog/clonetiler.cpp:626 -msgid "Randomize the tile opacity by this percentage" -msgstr "Rende casuale di questa percentuale l'opacitĂ  dei cloni" +#: ../src/rdf.cpp:296 +msgid "XML fragment for the RDF 'License' section" +msgstr "Frammento XML per la sezione 'License' delle RDF" -#: ../src/ui/dialog/clonetiler.cpp:640 -msgid "Alternate the sign of opacity change for each row" -msgstr "Alterna il segno del valore di opacitĂ  per ogni riga" +#: ../src/resource-manager.cpp:332 +msgid "Fixup broken links" +msgstr "Ripara indirizzo danneggiato" -#: ../src/ui/dialog/clonetiler.cpp:645 -msgid "Alternate the sign of opacity change for each column" -msgstr "Alterna il segno del valore di opacitĂ  per ogni colonna" +#: ../src/selection-chemistry.cpp:396 +msgid "Delete text" +msgstr "Elimina testo" -#: ../src/ui/dialog/clonetiler.cpp:653 -msgid "Co_lor" -msgstr "Co_lore" +#: ../src/selection-chemistry.cpp:404 +msgid "Nothing was deleted." +msgstr "Niente da eliminare." -#: ../src/ui/dialog/clonetiler.cpp:663 -msgid "Initial color: " -msgstr "Colore iniziale: " +#: ../src/selection-chemistry.cpp:423 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 +#: ../src/ui/dialog/swatches.cpp:278 ../src/ui/tools/text-tool.cpp:974 +#: ../src/widgets/eraser-toolbar.cpp:93 +#: ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1192 +#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/node-toolbar.cpp:401 +msgid "Delete" +msgstr "Elimina" -#: ../src/ui/dialog/clonetiler.cpp:667 -msgid "Initial color of tiled clones" -msgstr "Colore iniziale dei cloni in serie" +#: ../src/selection-chemistry.cpp:451 +msgid "Select object(s) to duplicate." +msgstr "Selezionare l'oggetto da duplicare." -#: ../src/ui/dialog/clonetiler.cpp:667 -msgid "" -"Initial color for clones (works only if the original has unset fill or " -"stroke)" -msgstr "" -"Colore iniziale dei cloni (funziona solo se l'originale non possiede " -"riempimenti o bordi)" +#: ../src/selection-chemistry.cpp:560 +msgid "Delete all" +msgstr "Elimina tutto" -#: ../src/ui/dialog/clonetiler.cpp:682 -msgid "H:" -msgstr "H:" +#: ../src/selection-chemistry.cpp:750 +msgid "Select some objects to group." +msgstr "Selezionare piĂą oggetti da raggruppare." -#: ../src/ui/dialog/clonetiler.cpp:688 -msgid "Change the tile hue by this percentage for each row" -msgstr "Cambia di questa percentuale per ogni riga l'opacitĂ  dei cloni" +#: ../src/selection-chemistry.cpp:765 ../src/sp-item-group.cpp:329 +msgid "Group" +msgstr "Raggruppa" -#: ../src/ui/dialog/clonetiler.cpp:694 -msgid "Change the tile hue by this percentage for each column" -msgstr "Cambia di questa percentuale per ogni colonna l'opacitĂ  dei cloni" +#: ../src/selection-chemistry.cpp:788 +msgid "Select a group to ungroup." +msgstr "Selezionare un gruppo da dividere." -#: ../src/ui/dialog/clonetiler.cpp:700 -msgid "Randomize the tile hue by this percentage" -msgstr "Rende casuale di questa percentuale l'opacitĂ  del clone" +#: ../src/selection-chemistry.cpp:803 +msgid "No groups to ungroup in the selection." +msgstr "Nessun gruppo nella selezione da dividere." -#: ../src/ui/dialog/clonetiler.cpp:709 -msgid "S:" -msgstr "S:" +#: ../src/selection-chemistry.cpp:861 ../src/sp-item-group.cpp:562 +msgid "Ungroup" +msgstr "Dividi" -#: ../src/ui/dialog/clonetiler.cpp:715 -msgid "Change the color saturation by this percentage for each row" -msgstr "Cambia di questa percentuale per ogni riga la saturazione del colore" +#: ../src/selection-chemistry.cpp:942 +msgid "Select object(s) to raise." +msgstr "Selezionare l'oggetto da alzare." -#: ../src/ui/dialog/clonetiler.cpp:721 -msgid "Change the color saturation by this percentage for each column" +#: ../src/selection-chemistry.cpp:948 ../src/selection-chemistry.cpp:1004 +#: ../src/selection-chemistry.cpp:1032 ../src/selection-chemistry.cpp:1093 +msgid "" +"You cannot raise/lower objects from different groups or layers." msgstr "" -"Cambia di questa percentuale per ogni colonna la saturazione del colore" +"Non è possibile alzare/abbassare oggetti in gruppi o livelli " +"differenti." -#: ../src/ui/dialog/clonetiler.cpp:727 -msgid "Randomize the color saturation by this percentage" -msgstr "Rende casuale di questa percentuale la saturazione del clone" +#. TRANSLATORS: "Raise" means "to raise an object" in the undo history +#: ../src/selection-chemistry.cpp:988 +#, fuzzy +msgctxt "Undo action" +msgid "Raise" +msgstr "Alza" -#: ../src/ui/dialog/clonetiler.cpp:735 -msgid "L:" -msgstr "L:" +#: ../src/selection-chemistry.cpp:996 +msgid "Select object(s) to raise to top." +msgstr "Selezionare l'oggetto da spostare in cima." -#: ../src/ui/dialog/clonetiler.cpp:741 -msgid "Change the color lightness by this percentage for each row" -msgstr "Riduce di questa percentuale per ogni riga la luminositĂ  dei cloni" +#: ../src/selection-chemistry.cpp:1019 +msgid "Raise to top" +msgstr "Sposta in cima" -#: ../src/ui/dialog/clonetiler.cpp:747 -msgid "Change the color lightness by this percentage for each column" -msgstr "Riduce di questa percentuale per ogni colonna la luminositĂ  dei cloni" +#: ../src/selection-chemistry.cpp:1026 +msgid "Select object(s) to lower." +msgstr "Selezionare l'oggetto da abbassare." -#: ../src/ui/dialog/clonetiler.cpp:753 -msgid "Randomize the color lightness by this percentage" -msgstr "Rende casuale di questa percentuale la luminositĂ  del clone" +#. TRANSLATORS: "Lower" means "to lower an object" in the undo history +#: ../src/selection-chemistry.cpp:1077 +#, fuzzy +msgctxt "Undo action" +msgid "Lower" +msgstr "Abbassa" -#: ../src/ui/dialog/clonetiler.cpp:767 -msgid "Alternate the sign of color changes for each row" -msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" +#: ../src/selection-chemistry.cpp:1085 +msgid "Select object(s) to lower to bottom." +msgstr "Selezionare l'oggetto da spostare in fondo." -#: ../src/ui/dialog/clonetiler.cpp:772 -msgid "Alternate the sign of color changes for each column" -msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" +#: ../src/selection-chemistry.cpp:1120 +msgid "Lower to bottom" +msgstr "Sposta in fondo" -#: ../src/ui/dialog/clonetiler.cpp:780 -msgid "_Trace" -msgstr "Ve_ttorizza" +#: ../src/selection-chemistry.cpp:1130 +msgid "Nothing to undo." +msgstr "Niente da annullare." -#: ../src/ui/dialog/clonetiler.cpp:792 -msgid "Trace the drawing under the tiles" -msgstr "Vettorizza il disegno sotto i cloni" +#: ../src/selection-chemistry.cpp:1141 +msgid "Nothing to redo." +msgstr "Niente da ripetere." -#: ../src/ui/dialog/clonetiler.cpp:796 -msgid "" -"For each clone, pick a value from the drawing in that clone's location and " -"apply it to the clone" -msgstr "" -"Per ogni clone preleva il valore del disegno su cui il clone è posto e lo " -"applica al clone" +#: ../src/selection-chemistry.cpp:1208 +msgid "Paste" +msgstr "Incolla" -#: ../src/ui/dialog/clonetiler.cpp:815 -msgid "1. Pick from the drawing:" -msgstr "1. Preleva dal disegno:" +#: ../src/selection-chemistry.cpp:1216 +msgid "Paste style" +msgstr "Incolla stile" -#: ../src/ui/dialog/clonetiler.cpp:833 -msgid "Pick the visible color and opacity" -msgstr "Preleva il colore visibile e l'opacitĂ " +#: ../src/selection-chemistry.cpp:1226 +msgid "Paste live path effect" +msgstr "Incolla effetto su tracciato" -#: ../src/ui/dialog/clonetiler.cpp:841 -msgid "Pick the total accumulated opacity" -msgstr "Preleva l'opacitĂ  accumulata totale" +#: ../src/selection-chemistry.cpp:1248 +msgid "Select object(s) to remove live path effects from." +msgstr "" +"Selezionare gli oggetti da cui rimuovere gli effetti su tracciato." -#: ../src/ui/dialog/clonetiler.cpp:848 -msgid "R" -msgstr "R" +#: ../src/selection-chemistry.cpp:1260 +msgid "Remove live path effect" +msgstr "Rimuovi effetto su tracciato" -#: ../src/ui/dialog/clonetiler.cpp:849 -msgid "Pick the Red component of the color" -msgstr "Preleva la componente Rossa del colore" +#: ../src/selection-chemistry.cpp:1271 +msgid "Select object(s) to remove filters from." +msgstr "Selezionare gli oggetti da cui rimuovere i filtri." -#: ../src/ui/dialog/clonetiler.cpp:856 -msgid "G" -msgstr "G" +#: ../src/selection-chemistry.cpp:1281 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +msgid "Remove filter" +msgstr "Rimuovi filtro" -#: ../src/ui/dialog/clonetiler.cpp:857 -msgid "Pick the Green component of the color" -msgstr "Preleva la componente Verde del colore" +#: ../src/selection-chemistry.cpp:1290 +msgid "Paste size" +msgstr "Incolla dimensione" -#: ../src/ui/dialog/clonetiler.cpp:864 -msgid "B" -msgstr "B" +#: ../src/selection-chemistry.cpp:1299 +msgid "Paste size separately" +msgstr "Incolla dimensione separatamente" -#: ../src/ui/dialog/clonetiler.cpp:865 -msgid "Pick the Blue component of the color" -msgstr "Preleva la componente Blu del colore" +#: ../src/selection-chemistry.cpp:1309 +msgid "Select object(s) to move to the layer above." +msgstr "Selezionare l'oggetto da spostare al livello superiore." -#: ../src/ui/dialog/clonetiler.cpp:872 -#, fuzzy -msgctxt "Clonetiler color hue" -msgid "H" -msgstr "H" +#: ../src/selection-chemistry.cpp:1335 +msgid "Raise to next layer" +msgstr "Sposta al livello successivo" -#: ../src/ui/dialog/clonetiler.cpp:873 -msgid "Pick the hue of the color" -msgstr "Preleva l'opacitĂ  del colore" +#: ../src/selection-chemistry.cpp:1342 +msgid "No more layers above." +msgstr "Nessun livello superiore." -#: ../src/ui/dialog/clonetiler.cpp:880 -#, fuzzy -msgctxt "Clonetiler color saturation" -msgid "S" -msgstr "S" +#: ../src/selection-chemistry.cpp:1354 +msgid "Select object(s) to move to the layer below." +msgstr "Selezionare l'oggetto da spostare al livello inferiore." -#: ../src/ui/dialog/clonetiler.cpp:881 -msgid "Pick the saturation of the color" -msgstr "Preleva la saturazione del colore" +#: ../src/selection-chemistry.cpp:1380 +msgid "Lower to previous layer" +msgstr "Sposta al livello precedente" -#: ../src/ui/dialog/clonetiler.cpp:888 +#: ../src/selection-chemistry.cpp:1387 +msgid "No more layers below." +msgstr "Nessun livello inferiore." + +#: ../src/selection-chemistry.cpp:1399 #, fuzzy -msgctxt "Clonetiler color lightness" -msgid "L" -msgstr "L" +msgid "Select object(s) to move." +msgstr "Selezionare l'oggetto da abbassare." -#: ../src/ui/dialog/clonetiler.cpp:889 -msgid "Pick the lightness of the color" -msgstr "Preleva la luminositĂ  del colore" +#: ../src/selection-chemistry.cpp:1416 ../src/verbs.cpp:2577 +msgid "Move selection to layer" +msgstr "Sposta selezione al livello" -#: ../src/ui/dialog/clonetiler.cpp:899 -msgid "2. Tweak the picked value:" -msgstr "2. Corregge il valore prelevato:" +#. An SVG element cannot have a transform. We could change 'x' and 'y' in response +#. to a translation... but leave that for another day. +#: ../src/selection-chemistry.cpp:1503 ../src/seltrans.cpp:388 +msgid "Cannot transform an embedded SVG." +msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:916 -msgid "Gamma-correct:" -msgstr "Correzione-gamma:" +#: ../src/selection-chemistry.cpp:1649 +msgid "Remove transform" +msgstr "Rimuovi trasformazione" -#: ../src/ui/dialog/clonetiler.cpp:920 -msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" -msgstr "" -"Sposta l'intervallo medio del valore prelevato verso l'alto (>0) o verso il " -"basso (<0)" +#: ../src/selection-chemistry.cpp:1752 +#, fuzzy +msgid "Rotate 90° CCW" +msgstr "Ruota di 90° anti-orari" -#: ../src/ui/dialog/clonetiler.cpp:927 -msgid "Randomize:" -msgstr "CasualitĂ :" +#: ../src/selection-chemistry.cpp:1752 +#, fuzzy +msgid "Rotate 90° CW" +msgstr "Ruota di 90° orari" -#: ../src/ui/dialog/clonetiler.cpp:931 -msgid "Randomize the picked value by this percentage" -msgstr "Rende casuale di questa percentuale il valore prelevato" +#: ../src/selection-chemistry.cpp:1773 ../src/seltrans.cpp:483 +#: ../src/ui/dialog/transformation.cpp:894 +msgid "Rotate" +msgstr "Ruota" -#: ../src/ui/dialog/clonetiler.cpp:938 -msgid "Invert:" -msgstr "Inverti:" +#: ../src/selection-chemistry.cpp:2144 +msgid "Rotate by pixels" +msgstr "Ruota tramite pixel" -#: ../src/ui/dialog/clonetiler.cpp:942 -msgid "Invert the picked value" -msgstr "Inverti il valore prelevato" +#: ../src/selection-chemistry.cpp:2174 ../src/seltrans.cpp:480 +#: ../src/ui/dialog/transformation.cpp:869 +#: ../share/extensions/interp_att_g.inx.h:12 +msgid "Scale" +msgstr "Ridimensiona" -#: ../src/ui/dialog/clonetiler.cpp:948 -msgid "3. Apply the value to the clones':" -msgstr "3. Applica il valore prelevato ai cloni:" +#: ../src/selection-chemistry.cpp:2199 +msgid "Scale by whole factor" +msgstr "Ridimensiona di un fattore intero" -#: ../src/ui/dialog/clonetiler.cpp:963 -msgid "Presence" -msgstr "Presenza" +#: ../src/selection-chemistry.cpp:2214 +msgid "Move vertically" +msgstr "Muovi verticalmente" -#: ../src/ui/dialog/clonetiler.cpp:966 -msgid "" -"Each clone is created with the probability determined by the picked value in " -"that point" -msgstr "" -"Ogni clone viene creato con la probabilitĂ  determinata dal valore prelevato " -"in quel punto" +#: ../src/selection-chemistry.cpp:2217 +msgid "Move horizontally" +msgstr "Muovi orizzontalmente" -#: ../src/ui/dialog/clonetiler.cpp:973 -msgid "Size" -msgstr "Dimensione" +#: ../src/selection-chemistry.cpp:2220 ../src/selection-chemistry.cpp:2246 +#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:807 +msgid "Move" +msgstr "Muovi" -#: ../src/ui/dialog/clonetiler.cpp:976 -msgid "Each clone's size is determined by the picked value in that point" -msgstr "" -"La dimensione di ogni clone è determinata dal valore preso in quel punto" +#: ../src/selection-chemistry.cpp:2240 +msgid "Move vertically by pixels" +msgstr "Scosta verticalmente di pixel" -#: ../src/ui/dialog/clonetiler.cpp:986 -msgid "" -"Each clone is painted by the picked color (the original must have unset fill " -"or stroke)" -msgstr "" -"Ogni clone è colorato col colore prelevato (l'originale non deve avere " -"riempimento o bordo)" +#: ../src/selection-chemistry.cpp:2243 +msgid "Move horizontally by pixels" +msgstr "Scosta orizzontalmente di pixel" -#: ../src/ui/dialog/clonetiler.cpp:996 -msgid "Each clone's opacity is determined by the picked value in that point" -msgstr "L'opacitĂ  di ogni clone è determinata dal valore preso in quel punto" +#: ../src/selection-chemistry.cpp:2375 +msgid "The selection has no applied path effect." +msgstr "La selezione non ha applicato alcun effetto su tracciato." -#: ../src/ui/dialog/clonetiler.cpp:1044 -msgid "How many rows in the tiling" -msgstr "Il numero di righe della serie" +#: ../src/selection-chemistry.cpp:2544 ../src/ui/dialog/clonetiler.cpp:2218 +msgid "Select an object to clone." +msgstr "Selezionare un oggetto da clonare." -#: ../src/ui/dialog/clonetiler.cpp:1074 -msgid "How many columns in the tiling" -msgstr "Il numero di colonne della serie" +#: ../src/selection-chemistry.cpp:2580 +#, fuzzy +msgctxt "Action" +msgid "Clone" +msgstr "Clonato" -#: ../src/ui/dialog/clonetiler.cpp:1119 -msgid "Width of the rectangle to be filled" -msgstr "Larghezza del rettangolo da riempire" +#: ../src/selection-chemistry.cpp:2596 +msgid "Select clones to relink." +msgstr "Selezionare i cloni da ricollegare." -#: ../src/ui/dialog/clonetiler.cpp:1152 -msgid "Height of the rectangle to be filled" -msgstr "Altezza del rettangolo da riempire" +#: ../src/selection-chemistry.cpp:2603 +msgid "Copy an object to clipboard to relink clones to." +msgstr "Copiare un oggetto negli appunti per ricollegargli i cloni." -#: ../src/ui/dialog/clonetiler.cpp:1169 -msgid "Rows, columns: " -msgstr "Righe, colonne: " +#: ../src/selection-chemistry.cpp:2627 +msgid "No clones to relink in the selection." +msgstr "Nessun clone da ricollegare nella selezione." -#: ../src/ui/dialog/clonetiler.cpp:1170 -msgid "Create the specified number of rows and columns" -msgstr "Crea il numero specificato di righe e colonne" +#: ../src/selection-chemistry.cpp:2630 +msgid "Relink clone" +msgstr "RIcollega clone" -#: ../src/ui/dialog/clonetiler.cpp:1179 -msgid "Width, height: " -msgstr "Larghezza, altezza: " +#: ../src/selection-chemistry.cpp:2644 +msgid "Select clones to unlink." +msgstr "Selezionare i cloni da scollegare." -#: ../src/ui/dialog/clonetiler.cpp:1180 -msgid "Fill the specified width and height with the tiling" -msgstr "Riempie la larghezza e l'altezza specificata con i cloni" +#: ../src/selection-chemistry.cpp:2698 +msgid "No clones to unlink in the selection." +msgstr "Nessun clone da scollegare nella selezione." -#: ../src/ui/dialog/clonetiler.cpp:1201 -msgid "Use saved size and position of the tile" -msgstr "Usa la dimensione e la posizione salvata per la serie" +#: ../src/selection-chemistry.cpp:2702 +msgid "Unlink clone" +msgstr "Scollega clone" -#: ../src/ui/dialog/clonetiler.cpp:1204 +#: ../src/selection-chemistry.cpp:2715 msgid "" -"Pretend that the size and position of the tile are the same as the last time " -"you tiled it (if any), instead of using the current size" +"Select a clone to go to its original. Select a linked offset " +"to go to its source. Select a text on path to go to the path. Select " +"a flowed text to go to its frame." msgstr "" -"Forza la dimensione e la posizione del clone all'ultima clonazione salvata, " -"invece di usare le dimensioni attuali" - -#: ../src/ui/dialog/clonetiler.cpp:1238 -msgid " _Create " -msgstr " _Crea " - -#: ../src/ui/dialog/clonetiler.cpp:1240 -msgid "Create and tile the clones of the selection" -msgstr "Crea e serializza i cloni della selezione" - -#. TRANSLATORS: if a group of objects are "clumped" together, then they -#. are unevenly spread in the given amount of space - as shown in the -#. diagrams on the left in the following screenshot: -#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png -#. So unclumping is the process of spreading a number of objects out more evenly. -#: ../src/ui/dialog/clonetiler.cpp:1260 -msgid " _Unclump " -msgstr " Spa_rpaglia " +"Selezionare un clone per andare al suo originale. Selezionare una " +"proiezione collegata per andare alla sua fonte. Selezionare un " +"testo su tracciato per andare al tracciato. Selezionare un testo " +"dinamico per andare al suo riquadro." -#: ../src/ui/dialog/clonetiler.cpp:1261 -msgid "Spread out clones to reduce clumping; can be applied repeatedly" +#: ../src/selection-chemistry.cpp:2748 +msgid "" +"Cannot find the object to select (orphaned clone, offset, textpath, " +"flowed text?)" msgstr "" -"Distribuisce i cloni in modo da ridurre gli agglomerati, può essere ripetuto" - -#: ../src/ui/dialog/clonetiler.cpp:1267 -msgid " Re_move " -msgstr " Ri_muovi " - -#: ../src/ui/dialog/clonetiler.cpp:1268 -msgid "Remove existing tiled clones of the selected object (siblings only)" -msgstr "Rimuove i cloni in serie dell'oggetto selezionati (solo imparentati)" - -#: ../src/ui/dialog/clonetiler.cpp:1284 -msgid " R_eset " -msgstr " R_eimposta " +"Impossibile trovare l'oggetto da selezionare (clone orfano, " +"proiezione, testo su percorso o testo dinamico?)" -#. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1286 +#: ../src/selection-chemistry.cpp:2754 msgid "" -"Reset all shifts, scales, rotates, opacity and color changes in the dialog " -"to zero" +"The object you're trying to select is not visible (it is in <" +"defs>)" msgstr "" -"Reimposta tutti gli spostamenti, scale, rotazioni, opacitĂ  e cambiamenti di " -"colore nella sottofinestra a zero" - -#: ../src/ui/dialog/clonetiler.cpp:1359 -msgid "Nothing selected." -msgstr "Nessuna selezione." +"L'oggetto che si vuole selezionare non è visibile (è in <defs>)" -#: ../src/ui/dialog/clonetiler.cpp:1365 -msgid "More than one object selected." -msgstr "PiĂą di un elemento selezionato." +#: ../src/selection-chemistry.cpp:2799 +#, fuzzy +msgid "Select one path to clone." +msgstr "Selezionare un oggetto da clonare." -#: ../src/ui/dialog/clonetiler.cpp:1372 -#, c-format -msgid "Object has %d tiled clones." -msgstr "L'oggetto ha %d cloni in serie. " +#: ../src/selection-chemistry.cpp:2803 +#, fuzzy +msgid "Select one path to clone." +msgstr "Selezionare un oggetto da clonare." -#: ../src/ui/dialog/clonetiler.cpp:1377 -msgid "Object has no tiled clones." -msgstr "L'oggetto non ha cloni in serie." +#: ../src/selection-chemistry.cpp:2859 +msgid "Select object(s) to convert to marker." +msgstr "Selezionare l'oggetto da convertire in delimitatore." -#: ../src/ui/dialog/clonetiler.cpp:2097 -msgid "Select one object whose tiled clones to unclump." -msgstr "Selezionare un oggetto di cui sparpagliare i cloni in serie." +#: ../src/selection-chemistry.cpp:2926 +msgid "Objects to marker" +msgstr "Da oggetto a delimitatore" -#: ../src/ui/dialog/clonetiler.cpp:2119 -msgid "Unclump tiled clones" -msgstr "Sparpaglia cloni in serie" +#: ../src/selection-chemistry.cpp:2950 +msgid "Select object(s) to convert to guides." +msgstr "Selezionare l'oggetto da convertire in guide." -#: ../src/ui/dialog/clonetiler.cpp:2148 -msgid "Select one object whose tiled clones to remove." -msgstr "Selezionare un oggetto da cui rimuovere i cloni in serie" +#: ../src/selection-chemistry.cpp:2973 +msgid "Objects to guides" +msgstr "Da oggetto a guida" -#: ../src/ui/dialog/clonetiler.cpp:2171 -msgid "Delete tiled clones" -msgstr "Elimina cloni in serie" +#: ../src/selection-chemistry.cpp:3009 +#, fuzzy +msgid "Select objects to convert to symbol." +msgstr "Selezionare l'oggetto da convertire in delimitatore." -#: ../src/ui/dialog/clonetiler.cpp:2224 -msgid "" -"If you want to clone several objects, group them and clone the " -"group." +#: ../src/selection-chemistry.cpp:3115 +msgid "Group to symbol" msgstr "" -"Se si vogliono clonare diversi oggetti, occorre raggrupparli e " -"clonare il gruppo." -#: ../src/ui/dialog/clonetiler.cpp:2233 -msgid "Creating tiled clones..." -msgstr "Creazione cloni in serie..." +#: ../src/selection-chemistry.cpp:3134 +#, fuzzy +msgid "Select a symbol to extract objects from." +msgstr "" +"Selezionare un oggetto con motivo di riempimento da cui estrarre " +"l'oggetto." -#: ../src/ui/dialog/clonetiler.cpp:2640 -msgid "Create tiled clones" -msgstr "Crea cloni in serie" +#: ../src/selection-chemistry.cpp:3143 +msgid "Select only one symbol in Symbol dialog to convert to group." +msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2873 -msgid "Per row:" -msgstr "Per riga:" +#: ../src/selection-chemistry.cpp:3201 +msgid "Group from symbol" +msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2891 -msgid "Per column:" -msgstr "Per colonna:" +#: ../src/selection-chemistry.cpp:3219 +msgid "Select object(s) to convert to pattern." +msgstr "Selezionare l'oggetto da convertire in motivo." -#: ../src/ui/dialog/clonetiler.cpp:2899 -msgid "Randomize:" -msgstr "CasualitĂ :" +#: ../src/selection-chemistry.cpp:3309 +msgid "Objects to pattern" +msgstr "Da oggetto a motivo" -#: ../src/ui/dialog/color-item.cpp:131 -#, c-format -msgid "" -"Color: %s; Click to set fill, Shift+click to set stroke" +#: ../src/selection-chemistry.cpp:3325 +msgid "Select an object with pattern fill to extract objects from." msgstr "" -"Colore: %s; Clic per impostare il riempimento, Maiusc+clic per impostare il contorno" +"Selezionare un oggetto con motivo di riempimento da cui estrarre " +"l'oggetto." -#: ../src/ui/dialog/color-item.cpp:509 -msgid "Change color definition" -msgstr "Modifica definizione colore" +#: ../src/selection-chemistry.cpp:3380 +msgid "No pattern fills in the selection." +msgstr "Nessun motivo di riempimento nella selezione." -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove stroke color" -msgstr "Rimuovi colore contorno" +#: ../src/selection-chemistry.cpp:3383 +msgid "Pattern to objects" +msgstr "Da motivo a oggetto" + +#: ../src/selection-chemistry.cpp:3474 +msgid "Select object(s) to make a bitmap copy." +msgstr "Selezionare l'oggetto di cui fare una copia bitmap." + +#: ../src/selection-chemistry.cpp:3478 +msgid "Rendering bitmap..." +msgstr "Creazione bitmap..." + +#: ../src/selection-chemistry.cpp:3657 +msgid "Create bitmap" +msgstr "Crea bitmap" + +#: ../src/selection-chemistry.cpp:3689 +msgid "Select object(s) to create clippath or mask from." +msgstr "Selezionare l'oggetto da cui creare la maschera o il fissaggio." -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove fill color" -msgstr "Rimuovi colore riempimento" +#: ../src/selection-chemistry.cpp:3692 +msgid "Select mask object and object(s) to apply clippath or mask to." +msgstr "" +"Selezionare l'oggetto mascher e l'oggetto a cui applicare la maschera " +"o il fissaggio." -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set stroke color to none" -msgstr "Rimuove il colore del contorno" +#: ../src/selection-chemistry.cpp:3875 +msgid "Set clipping path" +msgstr "Imposta fissaggio" -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set fill color to none" -msgstr "Rimuove il colore di riempimento" +#: ../src/selection-chemistry.cpp:3877 +msgid "Set mask" +msgstr "Imposta maschera" -#: ../src/ui/dialog/color-item.cpp:700 -msgid "Set stroke color from swatch" -msgstr "Seleziona i colori da una tavolozza di campioni" +#: ../src/selection-chemistry.cpp:3892 +msgid "Select object(s) to remove clippath or mask from." +msgstr "" +"Selezionare l'oggetto da cui rimuovere la maschera o il fissaggio." -#: ../src/ui/dialog/color-item.cpp:700 -msgid "Set fill color from swatch" -msgstr "Imposta colore di riempimento dai campioni" +#: ../src/selection-chemistry.cpp:4003 +msgid "Release clipping path" +msgstr "Rimuovi fissaggio" -#: ../src/ui/dialog/debug.cpp:73 -msgid "Messages" -msgstr "Messaggi" +#: ../src/selection-chemistry.cpp:4005 +msgid "Release mask" +msgstr "Rimuovi maschera" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 -msgid "_Clear" -msgstr "_Pulisci" +#: ../src/selection-chemistry.cpp:4024 +msgid "Select object(s) to fit canvas to." +msgstr "Selezionare l'oggetto a cui adattare la tela." -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 -msgid "Capture log messages" -msgstr "Intercetta i messaggi di log" +#. Fit Page +#: ../src/selection-chemistry.cpp:4044 ../src/verbs.cpp:2905 +msgid "Fit Page to Selection" +msgstr "Adatta pagina alla selezione" -#: ../src/ui/dialog/debug.cpp:95 -msgid "Release log messages" -msgstr "Ignora i messaggi di log" +#: ../src/selection-chemistry.cpp:4073 ../src/verbs.cpp:2907 +msgid "Fit Page to Drawing" +msgstr "Adatta pagina al disegno" -#: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:159 -msgid "Metadata" -msgstr "Metadata" +#: ../src/selection-chemistry.cpp:4094 ../src/verbs.cpp:2909 +msgid "Fit Page to Selection or Drawing" +msgstr "Adatta pagina alla selezione o al disegno" -#: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:160 -msgid "License" -msgstr "Licenza" +#: ../src/selection-describer.cpp:128 +msgid "root" +msgstr "(base)" -#: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1007 -msgid "Dublin Core Entities" -msgstr "EntitĂ  Dublin Core" +#: ../src/selection-describer.cpp:130 ../src/widgets/ege-paint-def.cpp:66 +#: ../src/widgets/ege-paint-def.cpp:90 +msgid "none" +msgstr "nessuno" -#: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1069 -msgid "License" -msgstr "Licenza" +#: ../src/selection-describer.cpp:142 +#, c-format +msgid "layer %s" +msgstr "livello %s" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:111 -#, fuzzy -msgid "Use antialiasing" -msgstr "Antialias" +#: ../src/selection-describer.cpp:144 +#, c-format +msgid "layer %s" +msgstr "livello %s" -#: ../src/ui/dialog/document-properties.cpp:111 -#, fuzzy -msgid "If unset, no antialiasing will be done on the drawing" -msgstr "Se attivo, i bordi sono sempre mostrati in cima al disegno" +#: ../src/selection-describer.cpp:155 +#, c-format +msgid "%s" +msgstr "%s" -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "Show page _border" -msgstr "Mostra i _bordi della pagina" +#: ../src/selection-describer.cpp:165 +#, c-format +msgid " in %s" +msgstr " in %s" -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "If set, rectangular page border is shown" -msgstr "Se attiva, il bordo rettangolare della pagina è visibile" +#: ../src/selection-describer.cpp:167 +#, fuzzy +msgid " hidden in definitions" +msgstr "Disabilita condivisione definizioni di gradiente" -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "Border on _top of drawing" -msgstr "Bor_di in cima al disegno" +#: ../src/selection-describer.cpp:169 +#, c-format +msgid " in group %s (%s)" +msgstr " nel gruppo %s (%s)" -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "If set, border is always on top of the drawing" -msgstr "Se attivo, i bordi sono sempre mostrati in cima al disegno" +#: ../src/selection-describer.cpp:171 +#, fuzzy, c-format +msgid " in unnamed group (%s)" +msgstr " nel gruppo %s (%s)" -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "_Show border shadow" -msgstr "Mo_stra l'ombra della pagina" +#: ../src/selection-describer.cpp:173 +#, fuzzy, c-format +msgid " in %i parent (%s)" +msgid_plural " in %i parents (%s)" +msgstr[0] " in %i parente (%s)" +msgstr[1] " in %i parenti (%s)" -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "If set, page border shows a shadow on its right and lower side" -msgstr "" -"Se attivo, il bordo della pagina proietta un'ombra dai lati inferiore e " -"sinistro" +#: ../src/selection-describer.cpp:176 +#, fuzzy, c-format +msgid " in %i layer" +msgid_plural " in %i layers" +msgstr[0] " in %i livello" +msgstr[1] " in %i livelli" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/selection-describer.cpp:187 #, fuzzy -msgid "Back_ground color:" -msgstr "Colore di sfondo" +msgid "Convert symbol to group to edit" +msgstr "Converti contorno in tracciato" -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "" -"Color of the page background. Note: transparency setting ignored while " -"editing but used when exporting to bitmap." +#: ../src/selection-describer.cpp:191 +msgid "Remove from symbols tray to edit symbol" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Border _color:" -msgstr "_Colore del bordo:" +#: ../src/selection-describer.cpp:195 +msgid "Use Shift+D to look up original" +msgstr "Usare Maiusc+D per trovare l'originale" -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Page border color" -msgstr "Colore del bordo della pagina" +#: ../src/selection-describer.cpp:199 +msgid "Use Shift+D to look up path" +msgstr "Usare Maiusc+D per trovare il tracciato" -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Color of the page border" -msgstr "Colore dei bordi della pagina" +#: ../src/selection-describer.cpp:203 +msgid "Use Shift+D to look up frame" +msgstr "Usare Maiusc+D per trovare il riquadro" -#: ../src/ui/dialog/document-properties.cpp:117 -msgid "Default _units:" -msgstr "_UnitĂ  predefinite:" +#: ../src/selection-describer.cpp:215 +#, fuzzy, c-format +msgid "%i objects selected of type %s" +msgid_plural "%i objects selected of types %s" +msgstr[0] "%i oggetto selezionato" +msgstr[1] "%i oggetti selezionati" -#. --------------------------------------------------------------- -#. General snap options -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Show _guides" -msgstr "Mostra _guide" +#: ../src/selection-describer.cpp:225 +#, fuzzy, c-format +msgid "; %d filtered object " +msgid_plural "; %d filtered objects " +msgstr[0] "%s; con filtro" +msgstr[1] "%s; con filtro" -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Show or hide guides" -msgstr "Mostra o nasconde le guide" +#: ../src/seltrans-handles.cpp:9 +msgid "" +"Squeeze or stretch selection; with Ctrl to scale uniformly; " +"with Shift to scale around rotation center" +msgstr "" +"Accorcia o allunga la selezione; con Ctrl per ridimensionare " +"uniformemente; con Maiusc per ridimensionare attorno al centro di " +"rotazione" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Guide co_lor:" -msgstr "Co_lore delle guide:" +#: ../src/seltrans-handles.cpp:10 +msgid "" +"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +msgstr "" +"Ridimensiona la selezione; con Ctrl per ridimensionare " +"uniformemente; con Maiusc per ridimensionare attorno al centro di " +"rotazione" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Guideline color" -msgstr "Colore delle linee guida" +#: ../src/seltrans-handles.cpp:11 +msgid "" +"Skew selection; with Ctrl to snap angle; with Shift to " +"skew around the opposite side" +msgstr "" +"Distorce la selezione; con Ctrl per far scattare l'angolo; con " +"Maiusc per distorcere attorno al lato opposto" -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Color of guidelines" -msgstr "Colore delle linee guida" +#: ../src/seltrans-handles.cpp:12 +msgid "" +"Rotate selection; with Ctrl to snap angle; with Shift " +"to rotate around the opposite corner" +msgstr "" +"Ruota la selezione; con Ctrl per far scattare l'angolo; con " +"Maiusc per ruotare attorno all'angolo opposto" -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "_Highlight color:" -msgstr "Colore di e_videnziazione:" +#: ../src/seltrans-handles.cpp:13 +msgid "" +"Center of rotation and skewing: drag to reposition; scaling with " +"Shift also uses this center" +msgstr "" +"Centro di rotazione e distorsione: trascinare per riposizionarlo; " +"anche il ridimensionamento con Maiusc usa questo centro" -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "Highlighted guideline color" -msgstr "Colore di evidenziazione della linea guida" +#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:982 +msgid "Skew" +msgstr "Distorsione" -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "Color of a guideline when it is under mouse" -msgstr "Colore di una guida quando è sotto il mouse" +#: ../src/seltrans.cpp:499 +msgid "Set center" +msgstr "Imposta centro" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Snap _distance" -msgstr "Distanza di aggancio" +#: ../src/seltrans.cpp:574 +msgid "Stamp" +msgstr "Timbro" -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Snap only when _closer than:" -msgstr "Aggancia solo se piĂą vi_cino di:" +#: ../src/seltrans.cpp:723 +msgid "Reset center" +msgstr "Resetta centro" -#: ../src/ui/dialog/document-properties.cpp:125 -#: ../src/ui/dialog/document-properties.cpp:130 -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Always snap" -msgstr "Aggancia sempre" +#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#, c-format +msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" +msgstr "" +"Ridimensiona: %0.2f%% x %0.2f%%; con Ctrl per mantenere la " +"proporzione" -#: ../src/ui/dialog/document-properties.cpp:126 -msgid "Snapping distance, in screen pixels, for snapping to objects" -msgstr "Distanza di aggancio agli oggetti, in pixel dello schermo" +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1199 +#, c-format +msgid "Skew: %0.2f°; with Ctrl to snap angle" +msgstr "" +"Distorsione: %0.2f°; con Ctrl per far scattare l'angolo" -#: ../src/ui/dialog/document-properties.cpp:126 -msgid "Always snap to objects, regardless of their distance" -msgstr "Aggancia sempre alle oggetti, indipendentemente dalla distanza" +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1274 +#, c-format +msgid "Rotate: %0.2f°; with Ctrl to snap angle" +msgstr "" +"Rotazione: %0.2f gradi; con Ctrl per far scattare l'angolo" -#: ../src/ui/dialog/document-properties.cpp:127 +#: ../src/seltrans.cpp:1311 +#, c-format +msgid "Move center to %s, %s" +msgstr "Muove il centro in %s, %s" + +#: ../src/seltrans.cpp:1465 +#, c-format msgid "" -"If set, objects only snap to another object when it's within the range " -"specified below" +"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " +"with Shift to disable snapping" msgstr "" -"Se attivo, gli oggetti si attaccano ad altri oggetti solo se nel raggio di " -"azione specificato" - -#. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Snap d_istance" -msgstr "D_istanza di aggancio" +"Muove di %s, %s; con Ctrl per restringere a oriz/vert; con " +"Maiusc per disabilitare lo scatto" -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Snap only when c_loser than:" -msgstr "Aggancia so_lo se piĂą vicino di:" +#: ../src/shortcuts.cpp:226 +#, fuzzy, c-format +msgid "Keyboard directory (%s) is unavailable." +msgstr "La cartella delle tavolozze (%s) non è disponibile." -#: ../src/ui/dialog/document-properties.cpp:131 -msgid "Snapping distance, in screen pixels, for snapping to grid" -msgstr "Distanza per l'aggancio alla griglia, in pixel dello schermo" +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1299 +#: ../src/ui/dialog/export.cpp:1333 +msgid "Select a filename for exporting" +msgstr "Selezionare il nome del file dove esportare" -#: ../src/ui/dialog/document-properties.cpp:131 -msgid "Always snap to grids, regardless of the distance" -msgstr "Aggancia sempre alle griglie, indipendentemente dalla distanza" +#: ../src/shortcuts.cpp:370 +#, fuzzy +msgid "Select a file to import" +msgstr "Selezionare il file da importare" -#: ../src/ui/dialog/document-properties.cpp:132 -msgid "" -"If set, objects only snap to a grid line when it's within the range " -"specified below" +#: ../src/sp-anchor.cpp:125 +#, c-format +msgid "to %s" msgstr "" -"Se attivo, gli oggetti si attaccano alle linee della griglia solo se nel " -"raggio di azione specificato" -#. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Snap dist_ance" -msgstr "Dist_anza di aggancio" +#: ../src/sp-anchor.cpp:129 +#, fuzzy +msgid "without URI" +msgstr "Collegamento senza URI" -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Snap only when close_r than:" -msgstr "Aggancia _solo se piĂą vi_cino di:" +#: ../src/sp-ellipse.cpp:374 +#, fuzzy +msgid "Segment" +msgstr "Segmento" -#: ../src/ui/dialog/document-properties.cpp:136 -msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "Distanza per l'aggancio alle guide, in pixel dello schermo" +#: ../src/sp-ellipse.cpp:376 +#, fuzzy +msgid "Arc" +msgstr "Arabo (ar)" -#: ../src/ui/dialog/document-properties.cpp:136 -msgid "Always snap to guides, regardless of the distance" -msgstr "Aggancia sempre alle guide, indipendentemente dalla distanza" +#. Ellipse +#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 +#: ../src/ui/dialog/inkscape-preferences.cpp:404 +#: ../src/widgets/pencil-toolbar.cpp:158 +msgid "Ellipse" +msgstr "Ellisse" -#: ../src/ui/dialog/document-properties.cpp:137 -msgid "" -"If set, objects only snap to a guide when it's within the range specified " -"below" -msgstr "" -"Se attivo, gli oggetti si attaccano alle guide solo se nel raggio di azione " -"specificato" +#: ../src/sp-ellipse.cpp:383 +msgid "Circle" +msgstr "Cerchio" -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:140 +#. TRANSLATORS: "Flow region" is an area where text is allowed to flow +#: ../src/sp-flowregion.cpp:192 #, fuzzy -msgid "Snap to clip paths" -msgstr "Aggancia ai tracciati" +msgid "Flow Region" +msgstr "Regione dinamica" -#: ../src/ui/dialog/document-properties.cpp:140 -msgid "When snapping to paths, then also try snapping to clip paths" -msgstr "" +#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the +#. * flow excluded region. flowRegionExclude in SVG 1.2: see +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. +#: ../src/sp-flowregion.cpp:342 +#, fuzzy +msgid "Flow Excluded Region" +msgstr "Regione non dinamica" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/sp-flowtext.cpp:289 #, fuzzy -msgid "Snap to mask paths" -msgstr "Aggancia ai tracciati" +msgid "Flowed Text" +msgstr "Il testo dinamico è stato creato" -#: ../src/ui/dialog/document-properties.cpp:141 -msgid "When snapping to paths, then also try snapping to mask paths" -msgstr "" +#: ../src/sp-flowtext.cpp:291 +#, fuzzy +msgid "Linked Flowed Text" +msgstr "Il testo dinamico è stato creato" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:353 +#: ../src/ui/tools/text-tool.cpp:1566 #, fuzzy -msgid "Snap perpendicularly" -msgstr "Bisettrice perpendicolare" +msgid " [truncated]" +msgstr "Cubo tronco" -#: ../src/ui/dialog/document-properties.cpp:142 -msgid "" -"When snapping to paths or guides, then also try snapping perpendicularly" -msgstr "" +#: ../src/sp-flowtext.cpp:300 +#, fuzzy, c-format +msgid "(%d character%s)" +msgid_plural "(%d characters%s)" +msgstr[0] "Inserisci carattere Unicode" +msgstr[1] "Inserisci carattere Unicode" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/sp-guide.cpp:303 +msgid "Create Guides Around the Page" +msgstr "Crea guide attorno alla pagina" + +#: ../src/sp-guide.cpp:315 ../src/verbs.cpp:2470 +msgid "Delete All Guides" +msgstr "Cancella tutte le guide" + +#. Guide has probably been deleted and no longer has an attached namedview. +#: ../src/sp-guide.cpp:475 #, fuzzy -msgid "Snap tangentially" -msgstr "Imposta riempimento" +msgid "Deleted" +msgstr "Elimina" -#: ../src/ui/dialog/document-properties.cpp:143 -msgid "When snapping to paths or guides, then also try snapping tangentially" +#: ../src/sp-guide.cpp:484 +msgid "" +"Shift+drag to rotate, Ctrl+drag to move origin, Del to " +"delete" msgstr "" +"Maiusc+trascinare per ruotare, Ctrl+trascinare per spostare " +"l'origine, Canc per cancellare" -#: ../src/ui/dialog/document-properties.cpp:146 -#, fuzzy -msgctxt "Grid" -msgid "_New" -msgstr "_Nuovo" +#: ../src/sp-guide.cpp:488 +#, c-format +msgid "vertical, at %s" +msgstr "verticale, a %s" -#: ../src/ui/dialog/document-properties.cpp:146 -msgid "Create new grid." -msgstr "Crea nuova griglia." +#: ../src/sp-guide.cpp:491 +#, c-format +msgid "horizontal, at %s" +msgstr "orizzontale, a %s" -#: ../src/ui/dialog/document-properties.cpp:147 -#, fuzzy -msgctxt "Grid" -msgid "_Remove" -msgstr "_Rimuovi" +#: ../src/sp-guide.cpp:496 +#, c-format +msgid "at %d degrees, through (%s,%s)" +msgstr "a %d gradi, intersecante (%s,%s)" + +#: ../src/sp-image.cpp:525 +msgid "embedded" +msgstr "integrato" + +#: ../src/sp-image.cpp:533 +#, fuzzy, c-format +msgid "[bad reference]: %s" +msgstr "Preferenze stella" + +#: ../src/sp-image.cpp:534 +#, fuzzy, c-format +msgid "%d × %d: %s" +msgstr "Immagine %d × %d: %s" + +#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 +#, fuzzy, c-format +msgid "of %d object" +msgstr "Gruppo di %d oggetto" + +#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 +#, fuzzy, c-format +msgid "of %d objects" +msgstr "Gruppo di %d oggetto" + +#: ../src/sp-item.cpp:961 ../src/verbs.cpp:213 +msgid "Object" +msgstr "Oggetto" -#: ../src/ui/dialog/document-properties.cpp:147 -msgid "Remove selected grid." -msgstr "Rimuove la griglia selezionata" +#: ../src/sp-item.cpp:978 +#, c-format +msgid "%s; clipped" +msgstr "%s; con fissaggio" -#: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1835 -msgid "Guides" -msgstr "Guide" +#: ../src/sp-item.cpp:984 +#, c-format +msgid "%s; masked" +msgstr "%s; con maschera" -#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2744 -msgid "Snap" -msgstr "Aggancio" +#: ../src/sp-item.cpp:994 +#, c-format +msgid "%s; filtered (%s)" +msgstr "%s; con filtro (%s)" -#: ../src/ui/dialog/document-properties.cpp:158 -msgid "Scripting" -msgstr "Script" +#: ../src/sp-item.cpp:996 +#, c-format +msgid "%s; filtered" +msgstr "%s; con filtro" -#: ../src/ui/dialog/document-properties.cpp:322 -msgid "General" -msgstr "Generale" +#: ../src/sp-line.cpp:126 +msgid "Line" +msgstr "Linea" -#: ../src/ui/dialog/document-properties.cpp:324 +#: ../src/sp-lpe-item.cpp:262 +msgid "An exception occurred during execution of the Path Effect." +msgstr "" +"Ă occorsa un'eccezione durante l'applicazione dell'effetto su tracciato." + +#: ../src/sp-offset.cpp:339 #, fuzzy -msgid "Page Size" -msgstr "Linea" +msgid "Linked Offset" +msgstr "Proiezione co_llegata" -#: ../src/ui/dialog/document-properties.cpp:326 +#: ../src/sp-offset.cpp:341 #, fuzzy -msgid "Display" -msgstr "a" +msgid "Dynamic Offset" +msgstr "Proiezione dina_mica" -#: ../src/ui/dialog/document-properties.cpp:361 -msgid "Guides" -msgstr "Guide" +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:347 +#, c-format +msgid "%s by %f pt" +msgstr "" -#: ../src/ui/dialog/document-properties.cpp:379 -msgid "Snap to objects" -msgstr "Aggancio agli oggetti" +#: ../src/sp-offset.cpp:348 +msgid "outset" +msgstr "estrusione" -#: ../src/ui/dialog/document-properties.cpp:381 -msgid "Snap to grids" -msgstr "Aggancio alle griglie" +#: ../src/sp-offset.cpp:348 +msgid "inset" +msgstr "intrusione" -#: ../src/ui/dialog/document-properties.cpp:383 -msgid "Snap to guides" -msgstr "Aggancio alle guide" +#: ../src/sp-path.cpp:70 +msgid "Path" +msgstr "Tracciato" -#: ../src/ui/dialog/document-properties.cpp:385 -msgid "Miscellaneous" -msgstr "Varie" +#: ../src/sp-path.cpp:95 +#, fuzzy, c-format +msgid ", path effect: %s" +msgstr "Attiva effetto su tracciato" -#. TODO check if this next line was sometimes needed. It being there caused an assertion. -#. Inkscape::GC::release(defsRepr); -#. inform the document, so we can undo -#. Color Management -#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:2921 -msgid "Link Color Profile" -msgstr "Collega profilo colore" +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i node%s" +msgstr "%i nodo%s" -#: ../src/ui/dialog/document-properties.cpp:599 -msgid "Remove linked color profile" -msgstr "Rimuovi profilo colore collegato" +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i nodes%s" +msgstr "%i nodi%s" -#: ../src/ui/dialog/document-properties.cpp:613 -msgid "Linked Color Profiles:" -msgstr "Profili colore collegati:" +#: ../src/sp-polygon.cpp:185 +msgid "Polygon" +msgstr "Poligono" -#: ../src/ui/dialog/document-properties.cpp:615 -msgid "Available Color Profiles:" -msgstr "Profili colore disponibili:" +#: ../src/sp-polyline.cpp:131 +msgid "Polyline" +msgstr "Poligonale" -#: ../src/ui/dialog/document-properties.cpp:617 -msgid "Link Profile" -msgstr "Collega profilo" +#. Rectangle +#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:394 +msgid "Rectangle" +msgstr "Rettangolo" -#: ../src/ui/dialog/document-properties.cpp:626 -#, fuzzy -msgid "Unlink Profile" -msgstr "Collega profilo" +#. Spiral +#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:412 +#: ../share/extensions/gcodetools_area.inx.h:11 +msgid "Spiral" +msgstr "Spirale" -#: ../src/ui/dialog/document-properties.cpp:710 -msgid "Profile Name" -msgstr "Nome profilo" +#. TRANSLATORS: since turn count isn't an integer, please adjust the +#. string as needed to deal with an localized plural forms. +#: ../src/sp-spiral.cpp:236 +#, fuzzy, c-format +msgid "with %3f turns" +msgstr "Spirale di %3f giri" -#: ../src/ui/dialog/document-properties.cpp:746 -#, fuzzy -msgid "External scripts" -msgstr "Aggiungi script esterni..." +#. Star +#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:408 +#: ../src/widgets/star-toolbar.cpp:469 +msgid "Star" +msgstr "Stella" -#: ../src/ui/dialog/document-properties.cpp:747 -#, fuzzy -msgid "Embedded scripts" -msgstr "Rimuovi griglia" +#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:462 +msgid "Polygon" +msgstr "Poligono" -#: ../src/ui/dialog/document-properties.cpp:752 -msgid "External script files:" -msgstr "File di script esterni:" +#. while there will never be less than 3 vertices, we still need to +#. make calls to ngettext because the pluralization may be different +#. for various numbers >=3. The singular form is used as the index. +#: ../src/sp-star.cpp:264 +#, fuzzy, c-format +msgid "with %d vertex" +msgstr "Stella con %d vertice" -#: ../src/ui/dialog/document-properties.cpp:754 -msgid "Add the current file name or browse for a file" -msgstr "" +#: ../src/sp-star.cpp:264 +#, fuzzy, c-format +msgid "with %d vertices" +msgstr "Stella con %d vertice" -#: ../src/ui/dialog/document-properties.cpp:763 -#: ../src/ui/dialog/document-properties.cpp:852 -#: ../src/ui/widget/selected-style.cpp:339 -msgid "Remove" -msgstr "Rimuovi" +#: ../src/sp-switch.cpp:76 +msgid "Conditional Group" +msgstr "" -#: ../src/ui/dialog/document-properties.cpp:833 -msgid "Filename" -msgstr "Nome file" +#: ../src/sp-text.cpp:326 ../src/verbs.cpp:328 +#: ../share/extensions/lorem_ipsum.inx.h:8 +#: ../share/extensions/replace_font.inx.h:11 +#: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 +#: ../share/extensions/text_extract.inx.h:14 +#: ../share/extensions/text_flipcase.inx.h:2 +#: ../share/extensions/text_lowercase.inx.h:2 +#: ../share/extensions/text_merge.inx.h:16 +#: ../share/extensions/text_randomcase.inx.h:2 +#: ../share/extensions/text_sentencecase.inx.h:2 +#: ../share/extensions/text_titlecase.inx.h:2 +#: ../share/extensions/text_uppercase.inx.h:2 +msgid "Text" +msgstr "Testo" -#: ../src/ui/dialog/document-properties.cpp:841 -#, fuzzy -msgid "Embedded script files:" -msgstr "File di script esterni:" +#. TRANSLATORS: For description of font with no name. +#: ../src/sp-text.cpp:343 +msgid "<no name found>" +msgstr "<nessun nome trovato>" -#: ../src/ui/dialog/document-properties.cpp:843 -#, fuzzy -msgid "New" -msgstr "Nuovo" +#: ../src/sp-text.cpp:357 +#, fuzzy, c-format +msgid "on path%s (%s, %s)" +msgstr "Testo su tracciato (%s, %s)" -#: ../src/ui/dialog/document-properties.cpp:922 -#, fuzzy -msgid "Script id" -msgstr "Script" +#: ../src/sp-text.cpp:358 +#, fuzzy, c-format +msgid "%s (%s, %s)" +msgstr "Testo (%s, %s)" -#: ../src/ui/dialog/document-properties.cpp:928 +#: ../src/sp-tref.cpp:230 #, fuzzy -msgid "Content:" -msgstr "Esponente:" +msgid "Cloned Character Data" +msgstr "Carattere clonato %s%s" -#: ../src/ui/dialog/document-properties.cpp:1045 -#, fuzzy -msgid "_Save as default" -msgstr "Imposta come predefinito" +#: ../src/sp-tref.cpp:246 +msgid " from " +msgstr " da " -#: ../src/ui/dialog/document-properties.cpp:1046 -msgid "Save this metadata as the default metadata" +#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:262 +msgid "[orphaned]" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:1047 +#: ../src/sp-tspan.cpp:217 #, fuzzy -msgid "Use _default" -msgstr "Impostazioni predefinita del sistema" - -#: ../src/ui/dialog/document-properties.cpp:1048 -msgid "Use the previously saved default metadata here" -msgstr "" - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1121 -msgid "Add external script..." -msgstr "Aggiungi script esterni..." +msgid "Text Span" +msgstr "Input testo" -#: ../src/ui/dialog/document-properties.cpp:1160 +#: ../src/sp-use.cpp:227 #, fuzzy -msgid "Select a script to load" -msgstr "L'elemento non è una forma o un tracciato" +msgid "Symbol" +msgstr "Khmer (km)" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1188 +#: ../src/sp-use.cpp:230 #, fuzzy -msgid "Add embedded script..." -msgstr "Aggiungi script esterni..." - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1219 -msgid "Remove external script" -msgstr "Rimuovi script esterni" +msgid "Clone" +msgstr "Clonato" -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1249 -#, fuzzy -msgid "Remove embedded script" -msgstr "Rimuovi griglia" +#: ../src/sp-use.cpp:237 ../src/sp-use.cpp:239 +#, c-format +msgid "called %s" +msgstr "" -#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1346 +#: ../src/sp-use.cpp:239 #, fuzzy -msgid "Edit embedded script" -msgstr "Rimuovi griglia" - -#: ../src/ui/dialog/document-properties.cpp:1429 -msgid "Creation" -msgstr "Creazione" - -#: ../src/ui/dialog/document-properties.cpp:1430 -msgid "Defined grids" -msgstr "Griglie definite" +msgid "Unnamed Symbol" +msgstr "Khmer (km)" -#: ../src/ui/dialog/document-properties.cpp:1677 -msgid "Remove grid" -msgstr "Rimuovi griglia" +#. TRANSLATORS: Used for statusbar description for long chains: +#. * "Clone of: Clone of: ... in Layer 1". +#: ../src/sp-use.cpp:248 +msgid "..." +msgstr "..." -#: ../src/ui/dialog/document-properties.cpp:1756 -#, fuzzy -msgid "Changed document unit" -msgstr "Documento senza nome %d" +#: ../src/sp-use.cpp:257 +#, fuzzy, c-format +msgid "of: %s" +msgstr "Errori" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2796 -msgid "_Page" -msgstr "_Pagina" +#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 +msgid "Union" +msgstr "Unione" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2800 -msgid "_Drawing" -msgstr "_Disegno" +#: ../src/splivarot.cpp:82 +msgid "Intersection" +msgstr "Intersezione" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2802 -msgid "_Selection" -msgstr "_Selezione" +#: ../src/splivarot.cpp:105 +msgid "Division" +msgstr "Divisione" -#: ../src/ui/dialog/export.cpp:152 -msgid "_Custom" -msgstr "_Personalizzata" +#: ../src/splivarot.cpp:110 +msgid "Cut path" +msgstr "Taglia tracciato" -#: ../src/ui/dialog/export.cpp:170 ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 -#: ../share/extensions/render_gears.inx.h:6 -msgid "Units:" -msgstr "UnitĂ :" +#: ../src/splivarot.cpp:333 +msgid "Select at least 2 paths to perform a boolean operation." +msgstr "" +"Selezionare almeno 2 tracciati per effettuare un'operazione booleana." -#: ../src/ui/dialog/export.cpp:172 -#, fuzzy -msgid "_Export As..." -msgstr "_Esporta bitmap..." +#: ../src/splivarot.cpp:337 +msgid "Select at least 1 path to perform a boolean union." +msgstr "" +"Selezionare almeno 1 tracciato per effettuare un'unione booleana." -#: ../src/ui/dialog/export.cpp:175 -#, fuzzy -msgid "B_atch export all selected objects" -msgstr "Esporta separatamente tutti gli oggetti selezionati" +#: ../src/splivarot.cpp:345 +msgid "" +"Select exactly 2 paths to perform difference, division, or path cut." +msgstr "" +"Selezionare esattamente 2 tracciati per effettuare differenza, " +"divisione o taglio del tracciato." -#: ../src/ui/dialog/export.cpp:175 +#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 msgid "" -"Export each selected object into its own PNG file, using export hints if any " -"(caution, overwrites without asking!)" +"Unable to determine the z-order of the objects selected for " +"difference, XOR, division, or path cut." msgstr "" -"Esporta ogni oggetto selezionato in un proprio file PNG, usando suggerimenti " -"per l'esportazione quando presenti (attenzione, sovrascrive senza far " -"domande!)" +"Impossibile determinare l'ordinamento-z degli oggetti selezionati per " +"la differenza, XOR, divisione o taglio del tracciato." -#: ../src/ui/dialog/export.cpp:177 -#, fuzzy -msgid "Hide a_ll except selected" -msgstr "Nascondi tutto tranne la selezione" +#: ../src/splivarot.cpp:407 +msgid "" +"One of the objects is not a path, cannot perform boolean operation." +msgstr "" +"Uno degli oggetti non è un tracciato, impossibile eseguire " +"l'operazione booleana." -#: ../src/ui/dialog/export.cpp:177 -msgid "In the exported image, hide all objects except those that are selected" +#: ../src/splivarot.cpp:1157 +msgid "Select stroked path(s) to convert stroke to path." msgstr "" -"Nasconde tutti gli oggetti nell'immagine esportata tranne quelli selezionati" +"Selezionare il tracciato con contorno di cui convertire il contorno " +"in tracciato." -#: ../src/ui/dialog/export.cpp:178 -#, fuzzy -msgid "Close when complete" -msgstr "Salvataggio automatico completato." +#: ../src/splivarot.cpp:1516 +msgid "Convert stroke to path" +msgstr "Converti contorno in tracciato" -#: ../src/ui/dialog/export.cpp:178 -msgid "Once the export completes, close this dialog" +#. TRANSLATORS: "to outline" means "to convert stroke to path" +#: ../src/splivarot.cpp:1519 +msgid "No stroked paths in the selection." +msgstr "Nessun tracciato contornato nella selezione." + +#: ../src/splivarot.cpp:1590 +msgid "Selected object is not a path, cannot inset/outset." msgstr "" +"L'oggetto selezionato non è un tracciato, impossibile intrudere/" +"estrudere." -#: ../src/ui/dialog/export.cpp:180 -msgid "_Export" -msgstr "_Esporta" +#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +msgid "Create linked offset" +msgstr "Crea proiezione collegata" -#: ../src/ui/dialog/export.cpp:198 -#, fuzzy -msgid "Export area" -msgstr "Area da esportare" +#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +msgid "Create dynamic offset" +msgstr "Crea proiezione dinamica" -#: ../src/ui/dialog/export.cpp:237 -msgid "_x0:" -msgstr "_x0:" +#: ../src/splivarot.cpp:1772 +msgid "Select path(s) to inset/outset." +msgstr "Selezionare il tracciato da intrudere/estrudere." -#: ../src/ui/dialog/export.cpp:241 -msgid "x_1:" -msgstr "x_1:" +#: ../src/splivarot.cpp:1968 +msgid "Outset path" +msgstr "Estrudi tracciato" -#: ../src/ui/dialog/export.cpp:245 -msgid "Wid_th:" -msgstr "Larg_hezza:" +#: ../src/splivarot.cpp:1968 +msgid "Inset path" +msgstr "Intrudi tracciaton" -#: ../src/ui/dialog/export.cpp:249 -msgid "_y0:" -msgstr "_y0:" +#: ../src/splivarot.cpp:1970 +msgid "No paths to inset/outset in the selection." +msgstr "Nessun tracciato da intrudere/estrudere nella selezione." -#: ../src/ui/dialog/export.cpp:253 -msgid "y_1:" -msgstr "y_1:" +#: ../src/splivarot.cpp:2132 +msgid "Simplifying paths (separately):" +msgstr "Semplificazione tracciati (separatamente):" -#: ../src/ui/dialog/export.cpp:257 -msgid "Hei_ght:" -msgstr "Alte_zza:" +#: ../src/splivarot.cpp:2134 +msgid "Simplifying paths:" +msgstr "Semplificazione tracciati:" -#: ../src/ui/dialog/export.cpp:272 -#, fuzzy -msgid "Image size" -msgstr "Linea" +#: ../src/splivarot.cpp:2171 +#, c-format +msgid "%s %d of %d paths simplified..." +msgstr "%s %d di %d tracciati semplificati..." -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/export.cpp:301 -msgid "pixels at" -msgstr "pixel a" +#: ../src/splivarot.cpp:2184 +#, c-format +msgid "%d paths simplified." +msgstr "%d tracciati semplificati." -#: ../src/ui/dialog/export.cpp:296 -msgid "dp_i" -msgstr "dp_i" +#: ../src/splivarot.cpp:2198 +msgid "Select path(s) to simplify." +msgstr "Selezionare il tracciato da semplificare." -#: ../src/ui/dialog/export.cpp:301 ../src/ui/dialog/transformation.cpp:82 -#: ../src/ui/widget/page-sizer.cpp:237 -msgid "_Height:" -msgstr "_Altezza:" +#: ../src/splivarot.cpp:2214 +msgid "No paths to simplify in the selection." +msgstr "Nessun tracciato da semplificare nella selezione." -#: ../src/ui/dialog/export.cpp:309 -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 -#: ../src/ui/dialog/inkscape-preferences.cpp:1438 -#: ../src/ui/dialog/inkscape-preferences.cpp:1462 -msgid "dpi" -msgstr "dpi" +#: ../src/text-chemistry.cpp:94 +msgid "Select a text and a path to put text on path." +msgstr "" +"Selezionare un testo ed un tracciato per mettere il testo sul " +"tracciato." -#: ../src/ui/dialog/export.cpp:317 -#, fuzzy -msgid "_Filename" -msgstr "Nome del _file" +#: ../src/text-chemistry.cpp:99 +msgid "" +"This text object is already put on a path. Remove it from the path " +"first. Use Shift+D to look up its path." +msgstr "" +"Questo testo è giĂ  su un tracciato. Rimuoverlo prima dal tracciato." +"Usare Maiusc+D per trovare il suo tracciato." + +#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it +#: ../src/text-chemistry.cpp:105 +msgid "" +"You cannot put text on a rectangle in this version. Convert rectangle to " +"path first." +msgstr "" +"In questa versione non è possibile mettere il testo sun un rettangolo. " +"Convertire prima il rettangolo in tracciato." + +#: ../src/text-chemistry.cpp:115 +msgid "The flowed text(s) must be visible in order to be put on a path." +msgstr "" +"Il testo dinamico deve essere visibile per esser messo su un " +"tracciato." + +#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2492 +msgid "Put text on path" +msgstr "Mette il testo sul tracciato" + +#: ../src/text-chemistry.cpp:197 +msgid "Select a text on path to remove it from path." +msgstr "Selezionare un testo su tracciato per rimuoverlo dal tracciato." -#: ../src/ui/dialog/export.cpp:359 -msgid "Export the bitmap file with these settings" -msgstr "Esporta il file bitmap con queste impostazioni" +#: ../src/text-chemistry.cpp:218 +msgid "No texts-on-paths in the selection." +msgstr "Nessun testo su tracciato nella selezione." -#: ../src/ui/dialog/export.cpp:612 -#, fuzzy, c-format -msgid "B_atch export %d selected object" -msgid_plural "B_atch export %d selected objects" -msgstr[0] "Esporta separatamente %d oggetto selezionato" -msgstr[1] "Esporta separatamente questi %d oggetti selezionati" +#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2494 +msgid "Remove text from path" +msgstr "Rimuove il testo dal tracciato" -#: ../src/ui/dialog/export.cpp:928 -msgid "Export in progress" -msgstr "Esportazione in avanzamento" +#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +msgid "Select text(s) to remove kerns from." +msgstr "Selezionare il testo da cui rimuovere le trasformazioni." -#: ../src/ui/dialog/export.cpp:1018 -#, fuzzy -msgid "No items selected." -msgstr "Nessun filtro selezionato" +#: ../src/text-chemistry.cpp:286 +msgid "Remove manual kerns" +msgstr "Rimuovi trasformazioni manuali" -#: ../src/ui/dialog/export.cpp:1022 ../src/ui/dialog/export.cpp:1024 -#, fuzzy -msgid "Exporting %1 files" -msgstr "Esportazione di %d file" +#: ../src/text-chemistry.cpp:306 +msgid "" +"Select a text and one or more paths or shapes to flow text " +"into frame." +msgstr "" +"Selezionare un testo ed uno o piĂą tracciati o forme per " +"fluire il testo nella struttura." -#: ../src/ui/dialog/export.cpp:1064 ../src/ui/dialog/export.cpp:1066 -#, fuzzy, c-format -msgid "Exporting file %s..." -msgstr "Esportazione di %d file" +#: ../src/text-chemistry.cpp:376 +msgid "Flow text into shape" +msgstr "Fluisci testo in struttura" -#: ../src/ui/dialog/export.cpp:1075 ../src/ui/dialog/export.cpp:1166 -#, c-format -msgid "Could not export to filename %s.\n" -msgstr "Impossibile esportare col nome del file %s. \n" +#: ../src/text-chemistry.cpp:398 +msgid "Select a flowed text to unflow it." +msgstr "Selezionare un testo dinamico da spezzare." -#: ../src/ui/dialog/export.cpp:1078 -#, fuzzy, c-format -msgid "Could not export to filename %s." -msgstr "Impossibile esportare col nome del file %s. \n" +#: ../src/text-chemistry.cpp:472 +msgid "Unflow flowed text" +msgstr "Spezza testo dinamico" -#: ../src/ui/dialog/export.cpp:1093 -#, c-format -msgid "Successfully exported %d files from %d selected items." -msgstr "" +#: ../src/text-chemistry.cpp:484 +msgid "Select flowed text(s) to convert." +msgstr "Selezionare un testo dinamico da convertire." -#: ../src/ui/dialog/export.cpp:1104 -#, fuzzy -msgid "You have to enter a filename." -msgstr "Bisogna inserire il nome del file" +#: ../src/text-chemistry.cpp:502 +msgid "The flowed text(s) must be visible in order to be converted." +msgstr "Il testo dinamico deve essere visibile per esser convertito." -#: ../src/ui/dialog/export.cpp:1105 -msgid "You have to enter a filename" -msgstr "Bisogna inserire il nome del file" +#: ../src/text-chemistry.cpp:530 +msgid "Convert flowed text to text" +msgstr "Converti testo dinamica in testo" -#: ../src/ui/dialog/export.cpp:1119 -#, fuzzy -msgid "The chosen area to be exported is invalid." -msgstr "L'area di esportazione selezionata non è valida" +#: ../src/text-chemistry.cpp:535 +msgid "No flowed text(s) to convert in the selection." +msgstr "Nessun testo dinamico nella selezione da convertire." -#: ../src/ui/dialog/export.cpp:1120 -msgid "The chosen area to be exported is invalid" -msgstr "L'area di esportazione selezionata non è valida" +#: ../src/text-editing.cpp:44 +msgid "You cannot edit cloned character data." +msgstr "Non è possibile modificare caratteri clonati." -#: ../src/ui/dialog/export.cpp:1135 -#, c-format -msgid "Directory %s does not exist or is not a directory.\n" -msgstr "La cartella %s non esiste o non è una cartella.\n" +#: ../src/tools-switch.cpp:91 +#, fuzzy +msgid "" +"Click to Select and Transform objects, Drag to select many " +"objects." +msgstr "Clicca per selezionare i nodi, Spostali per sistemarli." -#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image -#: ../src/ui/dialog/export.cpp:1149 ../src/ui/dialog/export.cpp:1151 +#: ../src/tools-switch.cpp:92 #, fuzzy -msgid "Exporting %1 (%2 x %3)" -msgstr "Sto esportando %s (%lu x %lu) " +msgid "Modify selected path points (nodes) directly." +msgstr "Semplifica il tracciato selezionato (rimuovendo nodi superflui)" -#: ../src/ui/dialog/export.cpp:1177 -#, fuzzy, c-format -msgid "Drawing exported to %s." -msgstr "Modifica del parametro %s." +#: ../src/tools-switch.cpp:93 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" +"Per ritoccare un tracciato tramite distorsione, selezionarlo e rimodellarlo " +"trascinando." -#: ../src/ui/dialog/export.cpp:1181 +#: ../src/tools-switch.cpp:94 #, fuzzy -msgid "Export aborted." -msgstr "Esportazione in avanzamento" - -#: ../src/ui/dialog/export.cpp:1303 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2358 ../src/widgets/desktop-widget.cpp:1123 -msgid "_Save" -msgstr "_Salva" +msgid "" +"Drag, click or click and scroll to spray the selected " +"objects." +msgstr "" +"Fare clic o fare clic e trascinare per chiudere e terminare il " +"tracciato." -#: ../src/ui/dialog/extension-editor.cpp:81 -msgid "Information" -msgstr "Informazioni" +#: ../src/tools-switch.cpp:95 +msgid "" +"Drag to create a rectangle. Drag controls to round corners and " +"resize. Click to select." +msgstr "" +"Trascinare per creare un rettangolo. Trascinare i controlli " +"per arrotondare gli angoli e ridimensionare. Fare clic per " +"selezionare." -#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 -#: ../src/verbs.cpp:309 ../share/extensions/color_HSL_adjust.inx.h:11 -#: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:6 -#: ../share/extensions/dots.inx.h:7 -#: ../share/extensions/draw_from_triangle.inx.h:35 -#: ../share/extensions/dxf_input.inx.h:10 -#: ../share/extensions/dxf_outlines.inx.h:24 -#: ../share/extensions/gcodetools_about.inx.h:3 -#: ../share/extensions/gcodetools_area.inx.h:53 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:25 -#: ../share/extensions/gcodetools_engraving.inx.h:31 -#: ../share/extensions/gcodetools_graffiti.inx.h:42 -#: ../share/extensions/gcodetools_lathe.inx.h:46 -#: ../share/extensions/gcodetools_orientation_points.inx.h:14 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 -#: ../share/extensions/generate_voronoi.inx.h:5 -#: ../share/extensions/gimp_xcf.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:27 -#: ../share/extensions/jessyInk_autoTexts.inx.h:8 -#: ../share/extensions/jessyInk_effects.inx.h:13 -#: ../share/extensions/jessyInk_export.inx.h:7 -#: ../share/extensions/jessyInk_install.inx.h:2 -#: ../share/extensions/jessyInk_keyBindings.inx.h:44 -#: ../share/extensions/jessyInk_masterSlide.inx.h:5 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 -#: ../share/extensions/jessyInk_summary.inx.h:2 -#: ../share/extensions/jessyInk_transitions.inx.h:12 -#: ../share/extensions/jessyInk_uninstall.inx.h:10 -#: ../share/extensions/jessyInk_video.inx.h:2 -#: ../share/extensions/jessyInk_view.inx.h:7 -#: ../share/extensions/layout_nup.inx.h:24 -#: ../share/extensions/lindenmayer.inx.h:13 -#: ../share/extensions/lorem_ipsum.inx.h:6 -#: ../share/extensions/measure.inx.h:16 -#: ../share/extensions/pathalongpath.inx.h:16 -#: ../share/extensions/pathscatter.inx.h:18 -#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 -#: ../share/extensions/voronoi2svg.inx.h:11 -#: ../share/extensions/web-set-att.inx.h:25 -#: ../share/extensions/web-transmit-att.inx.h:23 -#: ../share/extensions/webslicer_create_group.inx.h:11 -#: ../share/extensions/webslicer_export.inx.h:6 -msgid "Help" -msgstr "Aiuto" +#: ../src/tools-switch.cpp:96 +msgid "" +"Drag to create a 3D box. Drag controls to resize in " +"perspective. Click to select (with Ctrl+Alt for single faces)." +msgstr "" +"Trascinare per creare un solido 3D. Trascinare i controlli per " +"ridimensionarlo in prospettiva. Fare clic per selezionare (con Ctrl" +"+Alt per le singole facce)." -#: ../src/ui/dialog/extension-editor.cpp:83 -msgid "Parameters" -msgstr "Parametri" +#: ../src/tools-switch.cpp:97 +msgid "" +"Drag to create an ellipse. Drag controls to make an arc or " +"segment. Click to select." +msgstr "" +"Trascinare per creare un ellisse. Trascinare i controlli per " +"farne un arco o un segmento. Fare clic per selezionare." -#. Fill in the template -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:376 -msgid "No preview" -msgstr "Nessuna anteprima" +#: ../src/tools-switch.cpp:98 +msgid "" +"Drag to create a star. Drag controls to edit the star shape. " +"Click to select." +msgstr "" +"Trascinare per creare una stella. Trascinare i controlli per " +"modificarne la forma. Fare clic per selezionare." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:480 -msgid "too large for preview" -msgstr "troppo grande per l'anteprima" +#: ../src/tools-switch.cpp:99 +msgid "" +"Drag to create a spiral. Drag controls to edit the spiral " +"shape. Click to select." +msgstr "" +"Trascinare per creare una spirale. Trascinare i controlli per " +"modificarne la forma. Fare clic per selezionare." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:565 -msgid "Enable preview" -msgstr "Attiva anteprima" +#: ../src/tools-switch.cpp:100 +msgid "" +"Drag to create a freehand line. Shift appends to selected " +"path, Alt activates sketch mode." +msgstr "" +"Trascinare per creare una linea a mano libera. Con Maiusc per " +"aggiungere al tracciato selezionato, Alt per attivare la modalitĂ  a " +"mano libera." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:715 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:728 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:732 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:735 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:743 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:759 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:774 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:282 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:413 -msgid "All Files" -msgstr "Tutti i file" +#: ../src/tools-switch.cpp:101 +msgid "" +"Click or click and drag to start a path; with Shift to " +"append to selected path. Ctrl+click to create single dots (straight " +"line modes only)." +msgstr "" +"Fare clic o fare clic e trascinare per iniziare un percorso; " +"con Maiusc per accodare al percorso selezionato. Ctrl+clic per " +"creare punti singoli (solo in modalitĂ  linea semplice)." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:740 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:756 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:283 -msgid "All Inkscape Files" -msgstr "Tutti i file di Inkscape" +#: ../src/tools-switch.cpp:102 +msgid "" +"Drag to draw a calligraphic stroke; with Ctrl to track a guide " +"path. Arrow keys adjust width (left/right) and angle (up/down)." +msgstr "" +"Trascinare per disegnare un tratto di pennino; con Ctrl per " +"ricalcare una tracciato guida. Le frecce modificano la larghezza " +"(sinistra/destra) o l'angolo (su/giĂą)." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:747 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:763 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:777 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:284 -msgid "All Images" -msgstr "Tutte le immagini" +#: ../src/tools-switch.cpp:103 ../src/ui/tools/text-tool.cpp:1593 +msgid "" +"Click to select or create text, drag to create flowed text; " +"then type." +msgstr "" +"Fare clic per selezionare o creare un testo, trascinare per " +"creare un testo dinamico; quindi scrivere." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:750 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:766 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:285 -msgid "All Vectors" -msgstr "Tutti i vettoriali" +#: ../src/tools-switch.cpp:104 +msgid "" +"Drag or double click to create a gradient on selected objects, " +"drag handles to adjust gradients." +msgstr "" +"Trascinare o doppio clic per creare un gradiente sull'oggetto " +"selezionato; trascinare le maniglie per modificare il gradiente." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:753 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:769 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 -msgid "All Bitmaps" -msgstr "Tutte le bitmap" +#: ../src/tools-switch.cpp:105 +#, fuzzy +msgid "" +"Drag or double click to create a mesh on selected objects, " +"drag handles to adjust meshes." +msgstr "" +"Trascinare o doppio clic per creare un gradiente sull'oggetto " +"selezionato; trascinare le maniglie per modificare il gradiente." -#. ###### File options -#. ###### Do we want the .xxx extension automatically added? -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1002 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1560 -msgid "Append filename extension automatically" -msgstr "Aggiungi automaticamente l'estensione" +#: ../src/tools-switch.cpp:106 +msgid "" +"Click or drag around an area to zoom in, Shift+click to " +"zoom out." +msgstr "" +"Fare clic o trascinare una zona per ingrandire, Maiusc" +"+clic per rimpicciolire." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1175 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1428 -msgid "Guess from extension" -msgstr "Rileva tipo dall'estensione" +#: ../src/tools-switch.cpp:107 +msgid "Drag to measure the dimensions of objects." +msgstr "Trascinare per misurare le dimensioni degli oggetti." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1447 -msgid "Left edge of source" -msgstr "Lato sinistro della sorgente" +#: ../src/tools-switch.cpp:108 ../src/ui/tools/dropper-tool.cpp:285 +msgid "" +"Click to set fill, Shift+click to set stroke; drag to " +"average color in area; with Alt to pick inverse color; Ctrl+C " +"to copy the color under mouse to clipboard" +msgstr "" +"Fare clic per impostare il colore di riempimento, Maiusc+clic " +"per impostare il colore del contorno; trascinare per prelevare il " +"colore medio di un'area; con Alt per prelevare il colore inverso; " +"Ctrl+C per copiare negli appunti il colore sotto al mouse" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1448 -msgid "Top edge of source" -msgstr "Lato superiore della sorgente" +#: ../src/tools-switch.cpp:109 +msgid "Click and drag between shapes to create a connector." +msgstr "Fare clic e trascinare tra le forme per creare un connettore." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1449 -msgid "Right edge of source" -msgstr "Lato destro della sorgente" +#: ../src/tools-switch.cpp:110 +msgid "" +"Click to paint a bounded area, Shift+click to union the new " +"fill with the current selection, Ctrl+click to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" +"Clic per riempire un'area delimitata, Maiusc+clic per unire il " +"nuovo riempimento alla selezione attuale, Ctrl+clic per applicare al " +"riempimento e al contorno dell'oggetto le impostazioni attuali." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1450 -msgid "Bottom edge of source" -msgstr "Lato inferiore della sorgente" +#: ../src/tools-switch.cpp:111 +msgid "Drag to erase." +msgstr "Trascinare per cancellare." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1451 -msgid "Source width" -msgstr "Larghezza sorgente" +#: ../src/tools-switch.cpp:112 +msgid "Choose a subtool from the toolbar" +msgstr "Selezionare una sottobarra dalla barra degli strumenti" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1452 -msgid "Source height" -msgstr "Altezza sorgente" +#: ../src/trace/potrace/inkscape-potrace.cpp:512 +#: ../src/trace/potrace/inkscape-potrace.cpp:575 +#, fuzzy +msgid "Trace: %1. %2 nodes" +msgstr "Vettorizza: %1. %2 nodi" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1453 -msgid "Destination width" -msgstr "Larghezza destinazione" +#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 +#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 +#: ../src/ui/dialog/pixelartdialog.cpp:370 +#: ../src/ui/dialog/pixelartdialog.cpp:402 +msgid "Select an image to trace" +msgstr "Selezionare una immagine da vettorizzare" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1454 -msgid "Destination height" -msgstr "Altezza destinazione" +#: ../src/trace/trace.cpp:94 +msgid "Select only one image to trace" +msgstr "Selezionare una sola immagine da vettorizzare" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1455 -msgid "Resolution (dots per inch)" -msgstr "Risoluzione (punti per pollice)" +#: ../src/trace/trace.cpp:112 +msgid "Select one image and one or more shapes above it" +msgstr "Seleziona un'immagine ed una o piĂą forme sopra di essa" -#. ######################################### -#. ## EXTRA WIDGET -- SOURCE SIDE -#. ######################################### -#. ##### Export options buttons/spinners, etc -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 -msgid "Document" -msgstr "Documento" +#: ../src/trace/trace.cpp:216 +msgid "Trace: No active desktop" +msgstr "Vettorizza: Nessun documento attivo" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 ../src/verbs.cpp:175 -#: ../src/widgets/desktop-widget.cpp:2000 -#: ../share/extensions/printing_marks.inx.h:18 -msgid "Selection" -msgstr "Selezione" +#: ../src/trace/trace.cpp:313 +msgid "Invalid SIOX result" +msgstr "Risultato SIOX non valido" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 -#, fuzzy -msgctxt "Export dialog" -msgid "Custom" -msgstr "Personalizzata" +#: ../src/trace/trace.cpp:406 +msgid "Trace: No active document" +msgstr "Vettorizza: Nessun documento attivo" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1525 -msgid "Source" -msgstr "Sorgente" +#: ../src/trace/trace.cpp:438 +msgid "Trace: Image has no bitmap data" +msgstr "Vettorizza: L'immagine non contiene bitmap data" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 -msgid "Cairo" -msgstr "Cairo" +#: ../src/trace/trace.cpp:445 +msgid "Trace: Starting trace..." +msgstr "Vettorizza: inizio processo..." -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1548 -msgid "Antialias" -msgstr "Antialias" +#. ## inform the document, so we can undo +#: ../src/trace/trace.cpp:548 +msgid "Trace bitmap" +msgstr "Vettorizza bitmap" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 -#, fuzzy -msgid "All Executable Files" -msgstr "Tutte le immagini" +#: ../src/trace/trace.cpp:552 +#, c-format +msgid "Trace: Done. %ld nodes created" +msgstr "Vettorizza: Eseguito. %ld nodi creati" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 -msgid "Show Preview" -msgstr "Mostra anteprima" +#. check whether something is selected +#: ../src/ui/clipboard.cpp:261 +msgid "Nothing was copied." +msgstr "Niente da copiare." -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 -msgid "No file selected" -msgstr "Nessun file selezionato" +#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 +#: ../src/ui/clipboard.cpp:612 +msgid "Nothing on the clipboard." +msgstr "Niente negli appunti." -#: ../src/ui/dialog/fill-and-stroke.cpp:62 -#, fuzzy -msgid "_Fill" -msgstr "Riempimento" +#: ../src/ui/clipboard.cpp:432 +msgid "Select object(s) to paste style to." +msgstr "Selezionare l'oggetto a cui incollare lo stile." -#: ../src/ui/dialog/fill-and-stroke.cpp:63 -msgid "Stroke _paint" -msgstr "Colore c_ontorno" +#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 +msgid "No style on the clipboard." +msgstr "Nessun stile negli appunti." -#: ../src/ui/dialog/fill-and-stroke.cpp:64 -msgid "Stroke st_yle" -msgstr "St_ile contorno" +#: ../src/ui/clipboard.cpp:485 +msgid "Select object(s) to paste size to." +msgstr "Selezionare l'oggetto a cui incollare la dimensione." -#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 -msgid "" -"This matrix determines a linear transform on color space. Each line affects " -"one of the color components. Each column determines how much of each color " -"component from the input is passed to the output. The last column does not " -"depend on input colors, so can be used to adjust a constant component value." -msgstr "" -"Questa matrice determina una trasformazione lineare dello spazio cromatico. " -"Ogni riga agisce su una componente del colore. Ogni colonna determina in che " -"quantitĂ  il colore in input verrĂ  passato all'output. L'ultima colonna non " -"dipende dai colori in input, per cui può essere usata per impostare una " -"componente costante." +#: ../src/ui/clipboard.cpp:492 +msgid "No size on the clipboard." +msgstr "Nessuna dimensione negli appunti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 -msgid "Image File" -msgstr "File immagine" +#: ../src/ui/clipboard.cpp:545 +msgid "Select object(s) to paste live path effect to." +msgstr "Selezionare l'oggetto a cui incollare l'effetto su tracciato." -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 -msgid "Selected SVG Element" -msgstr "Selezionato elemento SVG" +#. no_effect: +#: ../src/ui/clipboard.cpp:570 +msgid "No effect on the clipboard." +msgstr "Nessun effetto negli appunti." -#. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 -msgid "Select an image to be used as feImage input" -msgstr "Selezionare un'immagine da usare come input per feImage" +#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:626 +msgid "Clipboard does not contain a path." +msgstr "Nessun tracciato negli appunti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 -msgid "This SVG filter effect does not require any parameters." -msgstr "Questo filtro SVG non necessita di alcun parametro." +#. * +#. * Constructor +#. +#: ../src/ui/dialog/aboutbox.cpp:80 +msgid "About Inkscape" +msgstr "Informazioni su Inkscape" -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 -msgid "This SVG filter effect is not yet implemented in Inkscape." -msgstr "Questo filtro SVG non è ancora implementato in Inkscape." +#: ../src/ui/dialog/aboutbox.cpp:91 +msgid "_Splash" +msgstr "_Splash" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 -#, fuzzy -msgid "Slope" -msgstr "Imbusta" +#: ../src/ui/dialog/aboutbox.cpp:95 +msgid "_Authors" +msgstr "_Autori" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 -#, fuzzy -msgid "Intercept" -msgstr "Interfaccia" +#: ../src/ui/dialog/aboutbox.cpp:97 +msgid "_Translators" +msgstr "_Traduttori" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 -#, fuzzy -msgid "Amplitude" -msgstr "Ampiezza" +#: ../src/ui/dialog/aboutbox.cpp:99 +msgid "_License" +msgstr "_Licenza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 -#, fuzzy -msgid "Exponent" -msgstr "Esponente:" +#. TRANSLATORS: This is the filename of the `About Inkscape' picture in +#. the `screens' directory. Thus the translation of "about.svg" should be +#. the filename of its translated version, e.g. about.zh.svg for Chinese. +#. +#. N.B. about.svg changes once per release. (We should probably rename +#. the original to about-0.40.svg etc. as soon as we have a translation. +#. If we do so, then add an item to release-checklist saying that the +#. string here should be changed.) +#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the +#. native filename encoding... and the filename passed to sp_document_new +#. should be in UTF-*8.. +#: ../src/ui/dialog/aboutbox.cpp:166 +msgid "about.svg" +msgstr "about.svg" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 -#, fuzzy -msgid "New transfer function type" -msgstr "Tipo operazione booleana" +#. TRANSLATORS: Put here your name (and other national contributors') +#. one per line in the form of: name surname (email). Use \n for newline. +#: ../src/ui/dialog/aboutbox.cpp:416 +msgid "translator-credits" +msgstr "" +"Luca Bruno (lucab@debian.org)\n" +"Luca Ferretti (elle.uca@infinito.it)\n" +"Francesco Ricci (tardo2002@libero.it)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 -msgid "Light Source:" -msgstr "Sorgente d'illuminazione:" +#: ../src/ui/dialog/align-and-distribute.cpp:171 +#: ../src/ui/dialog/align-and-distribute.cpp:852 +msgid "Align" +msgstr "Allineamento" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 -msgid "Direction angle for the light source on the XY plane, in degrees" -msgstr "Angolo di incidenza della sorgente luminosa sul piano XY, in gradi" +#: ../src/ui/dialog/align-and-distribute.cpp:341 +#: ../src/ui/dialog/align-and-distribute.cpp:853 +msgid "Distribute" +msgstr "Distribuzione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -msgid "Direction angle for the light source on the YZ plane, in degrees" -msgstr "Angolo di incidenza della sorgente luminosa sul piano YZ, in gradi" +#: ../src/ui/dialog/align-and-distribute.cpp:420 +msgid "Minimum horizontal gap (in px units) between bounding boxes" +msgstr "Distanza orizzontale minima (in unitĂ  px) tra i riquadri" -#. default x: -#. default y: -#. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#. TRANSLATORS: "H:" stands for horizontal gap +#: ../src/ui/dialog/align-and-distribute.cpp:422 #, fuzzy -msgid "Location:" -msgstr "Posizione" +msgctxt "Gap" +msgid "_H:" +msgstr "_H" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "X coordinate" -msgstr "Coordinata X" +#: ../src/ui/dialog/align-and-distribute.cpp:430 +msgid "Minimum vertical gap (in px units) between bounding boxes" +msgstr "Distanza verticale minima (in unitĂ  px) tra i riquadri" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Y coordinate" -msgstr "Coordinata Y" +#. TRANSLATORS: Vertical gap +#: ../src/ui/dialog/align-and-distribute.cpp:432 +#, fuzzy +msgctxt "Gap" +msgid "_V:" +msgstr "_V:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Z coordinate" -msgstr "Coordinata X" +#: ../src/ui/dialog/align-and-distribute.cpp:468 +#: ../src/ui/dialog/align-and-distribute.cpp:855 +#: ../src/widgets/connector-toolbar.cpp:411 +msgid "Remove overlaps" +msgstr "Rimuovi sovrapposizione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Points At" -msgstr "Punta a" +#: ../src/ui/dialog/align-and-distribute.cpp:499 +#: ../src/widgets/connector-toolbar.cpp:240 +msgid "Arrange connector network" +msgstr "Sistema connettori rete" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Specular Exponent" -msgstr "Esponente speculare" +#: ../src/ui/dialog/align-and-distribute.cpp:592 +#, fuzzy +msgid "Exchange Positions" +msgstr "Posizione casuale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Exponent value controlling the focus for the light source" -msgstr "Valore esponenziale per il controllo del fuoco della sorgente luminosa" +#: ../src/ui/dialog/align-and-distribute.cpp:626 +msgid "Unclump" +msgstr " Sparpaglia " -#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "Cone Angle" -msgstr "Angolo del cono" +#: ../src/ui/dialog/align-and-distribute.cpp:698 +msgid "Randomize positions" +msgstr "Posizione casuale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "" -"This is the angle between the spot light axis (i.e. the axis between the " -"light source and the point to which it is pointing at) and the spot light " -"cone. No light is projected outside this cone." -msgstr "" -"Questo è l'angolo tra l'asse del punto di illuminazione (ossia l'asse " -"congiungente la sorgente luminosa e il punto illuminato) e il cono " -"d'illuminazione. All'infuori di questo coso non verrĂ  proiettata alcuna luce." +#: ../src/ui/dialog/align-and-distribute.cpp:801 +msgid "Distribute text baselines" +msgstr "Distribuisci linee del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 -msgid "New light source" -msgstr "Nuova sorgente d'illuminazione" +#: ../src/ui/dialog/align-and-distribute.cpp:824 +msgid "Align text baselines" +msgstr "Allinea linee del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 -msgid "_Duplicate" -msgstr "_Duplica" +#: ../src/ui/dialog/align-and-distribute.cpp:854 +#, fuzzy +msgid "Rearrange" +msgstr "Ordinamento" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 -msgid "_Filter" -msgstr "_Filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:856 +#: ../src/widgets/toolbox.cpp:1728 +msgid "Nodes" +msgstr "Nodi" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 -msgid "R_ename" -msgstr "_Rinomina" +#: ../src/ui/dialog/align-and-distribute.cpp:870 +msgid "Relative to: " +msgstr "Relativo a: " -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 -msgid "Rename filter" -msgstr "Rinomina filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:871 +msgid "_Treat selection as group: " +msgstr "_Tratta selezione come gruppo: " -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 -msgid "Apply filter" -msgstr "Applica filtro" +#. Align +#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2938 +msgid "Align right edges of objects to the left edge of the anchor" +msgstr "Allinea margine destro dell'oggetto al margine sinistro del fisso" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 -msgid "filter" -msgstr "filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2940 +msgid "Align left edges" +msgstr "Allinea margini sinistri" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 -msgid "Add filter" -msgstr "Aggiungi filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2942 +msgid "Center on vertical axis" +msgstr "Centra sull'asse verticale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 -msgid "Duplicate filter" -msgstr "Duplica filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2944 +msgid "Align right sides" +msgstr "Allinea i lati destri" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 -msgid "_Effect" -msgstr "_Effetti" +#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2946 +msgid "Align left edges of objects to the right edge of the anchor" +msgstr "Allinea lato sinistro dell'oggetto al lato destro del fisso" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 -msgid "Connections" -msgstr "Connessione" +#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2948 +msgid "Align bottom edges of objects to the top edge of the anchor" +msgstr "Allinea margine inferiore dell'oggetto al margine superiore del fisso" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 -msgid "Remove filter primitive" -msgstr "Rimuovi primitiva filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2950 +msgid "Align top edges" +msgstr "Allinea i margini superiori" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 -msgid "Remove merge node" -msgstr "Rimuovi nodo unito" +#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2952 +msgid "Center on horizontal axis" +msgstr "Centra sull'asse orizzontale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 -msgid "Reorder filter primitive" -msgstr "Riordina primitiva filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2954 +msgid "Align bottom edges" +msgstr "Allinea i margini inferiori" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 -msgid "Add Effect:" -msgstr "Aggiungi effetto:" +#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2956 +msgid "Align top edges of objects to the bottom edge of the anchor" +msgstr "" +"Allinea il margine superiore dell'oggetto al margine inferiore del fisso" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 -msgid "No effect selected" -msgstr "Nessun effetto selezionato" +#: ../src/ui/dialog/align-and-distribute.cpp:909 +msgid "Align baseline anchors of texts horizontally" +msgstr "Allinea orizzontalmente la linea base del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 -msgid "No filter selected" -msgstr "Nessun filtro selezionato" +#: ../src/ui/dialog/align-and-distribute.cpp:912 +msgid "Align baselines of texts" +msgstr "Allinea le linee base del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 -msgid "Effect parameters" -msgstr "Parametri degli effetti" +#: ../src/ui/dialog/align-and-distribute.cpp:917 +msgid "Make horizontal gaps between objects equal" +msgstr "Distribuisce equamente la distanza orizzontale tra gli oggetti" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 -msgid "Filter General Settings" -msgstr "Impostazioni generali filtri" +#: ../src/ui/dialog/align-and-distribute.cpp:921 +msgid "Distribute left edges equidistantly" +msgstr "Distribuisce i margini sinistri degli oggetti alla stessa distanza" -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Coordinates:" -msgstr "Coordinate:" +#: ../src/ui/dialog/align-and-distribute.cpp:924 +msgid "Distribute centers equidistantly horizontally" +msgstr "" +"Distribuisce orizzontalmente i centri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "X coordinate of the left corners of filter effects region" -msgstr "Coordinata X dell'angolo sinistro della regione affetta dal filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:927 +msgid "Distribute right edges equidistantly" +msgstr "Distribuisce i margini destri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Y coordinate of the upper corners of filter effects region" -msgstr "Coordinata Y dell'angolo superiore della regione affetta dal filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:931 +msgid "Make vertical gaps between objects equal" +msgstr "Distribuisce equamente la distanza verticale tra gli oggetti" -#. default width: -#. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Dimensions:" -msgstr "Dimensioni:" +#: ../src/ui/dialog/align-and-distribute.cpp:935 +msgid "Distribute top edges equidistantly" +msgstr "Distribuisce i margini superiori degli oggetti alla stessa distanza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Width of filter effects region" -msgstr "Larghezza della regione affetta dal filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:938 +msgid "Distribute centers equidistantly vertically" +msgstr "Distribuisce verticalmente i centri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Height of filter effects region" -msgstr "Altezza della regione affetta dal filtro" +#: ../src/ui/dialog/align-and-distribute.cpp:941 +msgid "Distribute bottom edges equidistantly" +msgstr "Distribuisce i lati inferiori in maniera equidistanziale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -msgid "" -"Indicates the type of matrix operation. The keyword 'matrix' indicates that " -"a full 5x4 matrix of values will be provided. The other keywords represent " -"convenience shortcuts to allow commonly used color operations to be " -"performed without specifying a complete matrix." -msgstr "" -"Indica il tipo di matrice di operazione. Il tipo 'matrix' indica che verrĂ  " -"usata un'intera matrice di valore 5x4. Altri tipi rappresentano utili " -"scorciatoie per operazioni sui colori usate frequentemente, che possono " -"essere eseguite senza specificare l'intera matrice." +#: ../src/ui/dialog/align-and-distribute.cpp:946 +msgid "Distribute baseline anchors of texts horizontally" +msgstr "Distribuisce orizzontalmente la linea base del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 -msgid "Value(s):" -msgstr "Valore:" +#: ../src/ui/dialog/align-and-distribute.cpp:949 +msgid "Distribute baselines of texts vertically" +msgstr "Distribuisce verticalmente le linee base del testo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 -#, fuzzy -msgid "R:" -msgstr "Rx:" +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/widgets/connector-toolbar.cpp:373 +msgid "Nicely arrange selected connector network" +msgstr "Disponi ordinatamente i connettori di rete selezionati" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 -#: ../src/widgets/sp-color-icc-selector.cpp:359 -#, fuzzy -msgid "G:" -msgstr "_G" +#: ../src/ui/dialog/align-and-distribute.cpp:958 +msgid "Exchange positions of selected objects - selection order" +msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 -#, fuzzy -msgid "B:" -msgstr "_B" +#: ../src/ui/dialog/align-and-distribute.cpp:961 +msgid "Exchange positions of selected objects - stacking order" +msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 -#, fuzzy -msgid "A:" -msgstr "_A" +#: ../src/ui/dialog/align-and-distribute.cpp:964 +msgid "Exchange positions of selected objects - clockwise rotate" +msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "Operator:" -msgstr "Operatore:" +#: ../src/ui/dialog/align-and-distribute.cpp:969 +msgid "Randomize centers in both dimensions" +msgstr "Rendi casuali i centri su entrambe le dimensioni" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -msgid "K1:" -msgstr "K1:" +#: ../src/ui/dialog/align-and-distribute.cpp:972 +msgid "Unclump objects: try to equalize edge-to-edge distances" +msgstr "" +"Sparpaglia oggetti: prova a rendere uguali le distanze da bordo a bordo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/align-and-distribute.cpp:977 msgid "" -"If the arithmetic operation is chosen, each result pixel is computed using " -"the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " -"values of the first and second inputs respectively." +"Move objects as little as possible so that their bounding boxes do not " +"overlap" msgstr "" -"Se viene impostata l'operazione matematica, ogni pixel sarĂ  il risultato " -"della formula k1*i1*i2 + k2*i1 + k3*i2 + k4, in cui i1 e i2 sono i valori " -"dei pixel rispettivamente del primo e del secondo input" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -msgid "K2:" -msgstr "K2:" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -msgid "K3:" -msgstr "K3:" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 -msgid "K4:" -msgstr "K4:" +"Sposta gli oggetti il minimo indispensabile affinchĂ© i loro riquadri non si " +"sovrappongano" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "Size:" -msgstr "Dimensione:" +#: ../src/ui/dialog/align-and-distribute.cpp:985 +msgid "Align selected nodes to a common horizontal line" +msgstr "Allinea i nodi selezionati a una linea comune orizzontale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "width of the convolve matrix" -msgstr "larghezza della matrice di convoluzione" +#: ../src/ui/dialog/align-and-distribute.cpp:988 +msgid "Align selected nodes to a common vertical line" +msgstr "Allinea i nodi selezionati a una linea comune verticale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "height of the convolve matrix" -msgstr "altezza della matrice di convoluzione" +#: ../src/ui/dialog/align-and-distribute.cpp:991 +msgid "Distribute selected nodes horizontally" +msgstr "Distribuisce orizzontalmente i nodi selezionati" -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -#: ../src/ui/dialog/object-attributes.cpp:48 -msgid "Target:" -msgstr "Target:" +#: ../src/ui/dialog/align-and-distribute.cpp:994 +msgid "Distribute selected nodes vertically" +msgstr "Distribuisce verticalmente i nodi selezionati" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -msgid "" -"X coordinate of the target point in the convolve matrix. The convolution is " -"applied to pixels around this point." -msgstr "" -"Coordinata X del punto del punto affetto dalla matrice di convoluzione. La " -"convoluzione viene applicata ai pixel attorno a questo punto." +#. Rest of the widgetry +#: ../src/ui/dialog/align-and-distribute.cpp:999 +msgid "Last selected" +msgstr "Ultimo selezionato" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -msgid "" -"Y coordinate of the target point in the convolve matrix. The convolution is " -"applied to pixels around this point." -msgstr "" -"Coordinata Y del punto del punto affetto dalla matrice di convoluzione. La " -"convoluzione viene applicata ai pixel attorno a questo punto." +#: ../src/ui/dialog/align-and-distribute.cpp:1000 +msgid "First selected" +msgstr "Primo selezionato" -#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 -msgid "Kernel:" -msgstr "Nucleo:" +#: ../src/ui/dialog/align-and-distribute.cpp:1001 +msgid "Biggest object" +msgstr "Oggetto piĂą grande" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 -msgid "" -"This matrix describes the convolve operation that is applied to the input " -"image in order to calculate the pixel colors at the output. Different " -"arrangements of values in this matrix result in various possible visual " -"effects. An identity matrix would lead to a motion blur effect (parallel to " -"the matrix diagonal) while a matrix filled with a constant non-zero value " -"would lead to a common blur effect." -msgstr "" -"Questa matrice descrive l'operazione di convoluzione che verrĂ  applicata " -"all'immagine in ingresso per determinare il colore del pixel in uscita. " -"Combinazioni diverse di valori danno luogo a diversi possibili effetti " -"visivi. Una matrice identitĂ  comporta un effetto di sfocatura mossa " -"(parallela alla diagonale della matrice), mentre una matrice di valori " -"costanti non nulli risulta in un effetto di sfocatura normale." +#: ../src/ui/dialog/align-and-distribute.cpp:1002 +msgid "Smallest object" +msgstr "Oggetto piĂą piccolo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 -msgid "Divisor:" -msgstr "Divisore:" +#: ../src/ui/dialog/align-and-distribute.cpp:1005 +msgid "Selection Area" +msgstr "Area selezione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 -msgid "" -"After applying the kernelMatrix to the input image to yield a number, that " -"number is divided by divisor to yield the final destination color value. A " -"divisor that is the sum of all the matrix values tends to have an evening " -"effect on the overall color intensity of the result." -msgstr "" -"Dopo aver applicato la kernelMatrix all'immagine in input per ottenere un " -"numero, esso viene diviso per il divisore per ottenere il valore del colore " -"finale. Un divisore che è la somma di tutti i valori della matrice tende ad " -"avere un effetto scurente sull'intensitĂ  complessiva del colore risultante." +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 +msgid "Edit profile" +msgstr "Modifica profilo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -msgid "Bias:" -msgstr "Bias:" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 +msgid "Profile name:" +msgstr "Nome profilo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -msgid "" -"This value is added to each component. This is useful to define a constant " -"value as the zero response of the filter." -msgstr "" -"Questo valore verrĂ  aggiunto ad ogni componente. Risulta utile per definire " -"un valore costante per l'effetto nullo del filtro." +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 +msgid "Save" +msgstr "Salva" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 -msgid "Edge Mode:" -msgstr "ModalitĂ  spigolo:" +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 +msgid "Add profile" +msgstr "Aggiungi profilo" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 -msgid "" -"Determines how to extend the input image as necessary with color values so " -"that the matrix operations can be applied when the kernel is positioned at " -"or near the edge of the input image." -msgstr "" -"Determina come estendere del necessario l'immagine in input con i valori di " -"colore affinchĂ© la matrice di operazione possa essere applicata quando il " -"kernel è posizionata in corrispondenza o vicino al bordo dell'immagine." +#: ../src/ui/dialog/clonetiler.cpp:112 +msgid "_Symmetry" +msgstr "_Simmetria" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -msgid "Preserve Alpha" -msgstr "Preserva Alpha" +#. TRANSLATORS: "translation" means "shift" / "displacement" here. +#: ../src/ui/dialog/clonetiler.cpp:124 +msgid "P1: simple translation" +msgstr "P1: traslazione semplice" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -msgid "If set, the alpha channel won't be altered by this filter primitive." -msgstr "Se attivo, il canale alpha non verrĂ  alterato da questo filtro." +#: ../src/ui/dialog/clonetiler.cpp:125 +msgid "P2: 180° rotation" +msgstr "P2: rotazione 180°" -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -msgid "Diffuse Color:" -msgstr "Colore diffuso:" +#: ../src/ui/dialog/clonetiler.cpp:126 +msgid "PM: reflection" +msgstr "PM: riflessione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Defines the color of the light source" -msgstr "Determina il colore della sorgente luminosa." +#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. +#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html +#: ../src/ui/dialog/clonetiler.cpp:129 +msgid "PG: glide reflection" +msgstr "PG: riflessione scorrevole" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -msgid "Surface Scale:" -msgstr "Ridimensiona superficie:" +#: ../src/ui/dialog/clonetiler.cpp:130 +msgid "CM: reflection + glide reflection" +msgstr "CM: riflessione + riflessione scorrevole" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -msgid "" -"This value amplifies the heights of the bump map defined by the input alpha " -"channel" -msgstr "" -"Questo valore amplifica l'altezza della mappa a sbalzo definita dal canale " -"alpha" +#: ../src/ui/dialog/clonetiler.cpp:131 +msgid "PMM: reflection + reflection" +msgstr "PMM: riflessione + riflessione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "Constant:" -msgstr "Costante:" +#: ../src/ui/dialog/clonetiler.cpp:132 +msgid "PMG: reflection + 180° rotation" +msgstr "PMG: riflessione + rotazione 180°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "This constant affects the Phong lighting model." -msgstr "Questa costante regola il modello di illuminazione di Phong." +#: ../src/ui/dialog/clonetiler.cpp:133 +msgid "PGG: glide reflection + 180° rotation" +msgstr "PGG: riflessione scorrevole + rotazione 180°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 -msgid "Kernel Unit Length:" -msgstr "UnitĂ  lunghezza nucleo:" +#: ../src/ui/dialog/clonetiler.cpp:134 +msgid "CMM: reflection + reflection + 180° rotation" +msgstr "CMM: riflessione + riflessione + rotazione 180°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -msgid "This defines the intensity of the displacement effect." -msgstr "Questa l'intensitĂ  dell'effetto di spostamento" +#: ../src/ui/dialog/clonetiler.cpp:135 +msgid "P4: 90° rotation" +msgstr "P4: rotazione 90°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "X displacement:" -msgstr "Spostamento X:" +#: ../src/ui/dialog/clonetiler.cpp:136 +msgid "P4M: 90° rotation + 45° reflection" +msgstr "P4M: rotazione 90° + riflessione 45°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "Color component that controls the displacement in the X direction" -msgstr "" -"Componente del colore che controlla la direzione dello spostamento lungo la " -"direzione X" +#: ../src/ui/dialog/clonetiler.cpp:137 +msgid "P4G: 90° rotation + 90° reflection" +msgstr "P4G: rotazione 90° + riflessione 90°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Y displacement:" -msgstr "Spostamento Y:" +#: ../src/ui/dialog/clonetiler.cpp:138 +msgid "P3: 120° rotation" +msgstr "P3: rotazione 120°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Color component that controls the displacement in the Y direction" -msgstr "" -"Componente del colore che controlla la direzione dello spostamento lungo la " -"direzione Y" +#: ../src/ui/dialog/clonetiler.cpp:139 +msgid "P31M: reflection + 120° rotation, dense" +msgstr "P31M: riflessione + rotazione 120°, denso" -#. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "Flood Color:" -msgstr "Colore uniforme:" +#: ../src/ui/dialog/clonetiler.cpp:140 +msgid "P3M1: reflection + 120° rotation, sparse" +msgstr "P3M1: riflessione + rotazione 120°, rado" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "The whole filter region will be filled with this color." -msgstr "L'intera regione verrĂ  riempita con questo colore." +#: ../src/ui/dialog/clonetiler.cpp:141 +msgid "P6: 60° rotation" +msgstr "P6: rotazione 60°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "Standard Deviation:" -msgstr "Deviazione standard:" +#: ../src/ui/dialog/clonetiler.cpp:142 +msgid "P6M: reflection + 60° rotation" +msgstr "P6M: riflessione + rotazione 60°" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "The standard deviation for the blur operation." -msgstr "La deviazione standard per l'operazione di sfocatura." +#: ../src/ui/dialog/clonetiler.cpp:162 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "Selezionare uno dei 17 gruppi di simmetria per le serie" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "" -"Erode: performs \"thinning\" of input image.\n" -"Dilate: performs \"fattenning\" of input image." +#: ../src/ui/dialog/clonetiler.cpp:180 +msgid "S_hift" +msgstr "Spos_tamento" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount +#: ../src/ui/dialog/clonetiler.cpp:190 +#, no-c-format +msgid "Shift X:" +msgstr "Spostamento X:" + +#: ../src/ui/dialog/clonetiler.cpp:198 +#, no-c-format +msgid "Horizontal shift per row (in % of tile width)" msgstr "" -"Erodi: rende l'immagine piĂą piccola.\n" -"Dilata: rende l'immagine piĂą grossa." +"Lo spostamento orizzontale per ogni riga (in % sulla larghezza del clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 -msgid "Source of Image:" -msgstr "Sorgente per l'immagine:" +#: ../src/ui/dialog/clonetiler.cpp:206 +#, no-c-format +msgid "Horizontal shift per column (in % of tile width)" +msgstr "" +"Lo spostamento orizzontale per ogni colonna (in % sulla larghezza del clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "Delta X:" -msgstr "Delta X:" +#: ../src/ui/dialog/clonetiler.cpp:212 +msgid "Randomize the horizontal shift by this percentage" +msgstr "Rende casuale di questa percentuale lo spostamento orizzontale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "This is how far the input image gets shifted to the right" -msgstr "Determina lo spostamento a destra dell'immagine" +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount +#: ../src/ui/dialog/clonetiler.cpp:222 +#, no-c-format +msgid "Shift Y:" +msgstr "Spostamento Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "Delta Y:" -msgstr "Delta Y:" +#: ../src/ui/dialog/clonetiler.cpp:230 +#, no-c-format +msgid "Vertical shift per row (in % of tile height)" +msgstr "Lo spostamento verticale per ogni riga (in % sull'altezza del clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "This is how far the input image gets shifted downwards" -msgstr "Determina lo spostamento in basso dell'immagine" +#: ../src/ui/dialog/clonetiler.cpp:238 +#, no-c-format +msgid "Vertical shift per column (in % of tile height)" +msgstr "" +"Lo spostamento verticale per ogni colonna (in % sull'altezza del clone)" -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Specular Color:" -msgstr "Colore speculare:" +#: ../src/ui/dialog/clonetiler.cpp:245 +msgid "Randomize the vertical shift by this percentage" +msgstr "Rende casuale di questa percentuale lo spostamento verticale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -#: ../share/extensions/interp.inx.h:2 -msgid "Exponent:" -msgstr "Esponente:" +#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 +msgid "Exponent:" +msgstr "Esponente:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -msgid "Exponent for specular term, larger is more \"shiny\"." +#: ../src/ui/dialog/clonetiler.cpp:260 +msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" -"Esponente per il termini speculare, valori maggiori rendono piĂą \"brillante" -"\"." +"Specifica se le righe sono a spaziatura costante (1), convergenti (<1) o " +"divergenti (>1)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -msgid "" -"Indicates whether the filter primitive should perform a noise or turbulence " -"function." +#: ../src/ui/dialog/clonetiler.cpp:267 +msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" -"Indica se la primitiva del filtro fornirĂ  una funzione di rumore o " -"turbolenza." +"Specifica se le colonne sono a spaziatura costante (1), convergenti (<1) o " +"divergenti (>1)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 -msgid "Base Frequency:" -msgstr "Frequenza base:" +#. TRANSLATORS: "Alternate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 +#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 +#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 +msgid "Alternate:" +msgstr "Alterna:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 -msgid "Octaves:" -msgstr "Ottave:" +#: ../src/ui/dialog/clonetiler.cpp:281 +msgid "Alternate the sign of shifts for each row" +msgstr "Alterna il segno dello spostamento per ogni riga" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "Seed:" -msgstr "Seme:" +#: ../src/ui/dialog/clonetiler.cpp:286 +msgid "Alternate the sign of shifts for each column" +msgstr "Alterna il segno dello spostamento per ogni colonna" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "The starting number for the pseudo random number generator." -msgstr "Il seme iniziale per il generatore di numeri pseudo-casuali." +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 +#: ../src/ui/dialog/clonetiler.cpp:533 +msgid "Cumulate:" +msgstr "Accumula:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 -msgid "Add filter primitive" -msgstr "Aggiungi primitiva filtro" +#: ../src/ui/dialog/clonetiler.cpp:299 +msgid "Cumulate the shifts for each row" +msgstr "Accumula lo spostamento per ogni riga" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 -msgid "" -"The feBlend filter primitive provides 4 image blending modes: screen, " -"multiply, darken and lighten." -msgstr "" -"Il filtro feBlend fornisce 4 modalitĂ  per miscelare immagini: " -"scherma, moltiplica, scurisci e illumina." +#: ../src/ui/dialog/clonetiler.cpp:304 +msgid "Cumulate the shifts for each column" +msgstr "Accumula lo spostamento per ogni colonna" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 -msgid "" -"The feColorMatrix filter primitive applies a matrix transformation to " -"color of each rendered pixel. This allows for effects like turning object to " -"grayscale, modifying color saturation and changing color hue." -msgstr "" -"Il filtro feColorMatrix applica una matrice di trasformazione al " -"colore di ogni pixel. Questo permette di creare effetti per trasformare " -"oggetti in scala di grigi, cambiare la saturazione o la tinta del colore." +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:311 +msgid "Exclude tile:" +msgstr "Escludi clone:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 -msgid "" -"The feComponentTransfer filter primitive manipulates the input's " -"color components (red, green, blue, and alpha) according to particular " -"transfer functions, allowing operations like brightness and contrast " -"adjustment, color balance, and thresholding." -msgstr "" -"Il filtro feComponentTransfer permette di manipolare i componenti " -"cromatici in input (canali rosso, verde, blu e alpha) secondo una funzione " -"di cambiamento, permettendo operazioni di correzione luminositĂ  o contrasto, " -"bilanciamento o soglia del colore." +#: ../src/ui/dialog/clonetiler.cpp:317 +msgid "Exclude tile height in shift" +msgstr "Esclude l'altezza del clone nello spostamento" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 -msgid "" -"The feComposite filter primitive composites two images using one of " -"the Porter-Duff blending modes or the arithmetic mode described in SVG " -"standard. Porter-Duff blending modes are essentially logical operations " -"between the corresponding pixel values of the images." -msgstr "" -"Il filtro feComposite permette di comporre due immagini usando le " -"modalitĂ  di Porter-Duff o quelle aritmetiche descritte nello standard SVG. " -"L'algoritmo Porter-Duff essenzialmente compie delle operazioni logiche sui " -"singoli pixel delle immagini." +#: ../src/ui/dialog/clonetiler.cpp:322 +msgid "Exclude tile width in shift" +msgstr "Esclude la larghezza del clone nello spostamento" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 -msgid "" -"The feConvolveMatrix lets you specify a Convolution to be applied on " -"the image. Common effects created using convolution matrices are blur, " -"sharpening, embossing and edge detection. Note that while gaussian blur can " -"be created using this filter primitive, the special gaussian blur primitive " -"is faster and resolution-independent." -msgstr "" -"Il filtro feConvolveMatrix permette di applicare una matrici di " -"convoluzione ad un'immagine. Tipici effetti ottenibili con questo filtro " -"sono sfocatura, nitidezza, bordatura e rilevamento bordi. Nota: sebbene si " -"possa creare una sfocatura gaussiana anche con questo filtro, il filtro " -"gaussiano dedicato è piĂą veloce e indipendente dalla risoluzione." +#: ../src/ui/dialog/clonetiler.cpp:331 +msgid "Sc_ale" +msgstr "Sc_ala" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives create " -"\"embossed\" shadings. The input's alpha channel is used to provide depth " -"information: higher opacity areas are raised toward the viewer and lower " -"opacity areas recede away from the viewer." -msgstr "" -"I filtri feDiffuseLighting e feSpecularLighting creano effetti di " -"ombre per rilievi. Le informazioni sull'altezza sono ricavate dal canale " -"alpha: aree a maggiore opacitĂ  sono poste in rilievo verso l'osservatore, " -"mentre aree con opacitĂ  minore vengono allontanate." +#: ../src/ui/dialog/clonetiler.cpp:339 +msgid "Scale X:" +msgstr "Scala X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 -msgid "" -"The feDisplacementMap filter primitive displaces the pixels in the " -"first input using the second input as a displacement map, that shows from " -"how far the pixel should come from. Classical examples are whirl and pinch " -"effects." +#: ../src/ui/dialog/clonetiler.cpp:347 +#, no-c-format +msgid "Horizontal scale per row (in % of tile width)" msgstr "" -"Il filtro feDisplacementMap sposta i pixel del primo input usando il " -"secondo come mappa di spostamento, che indichi da che distanza debbano " -"essere presi i pixel. Esempi classici del filtro sono effetti a spirale e " -"pinzature." +"Il ridimensionamento orizzontale per ogni riga (in % sulla larghezza del " +"clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 -msgid "" -"The feFlood filter primitive fills the region with a given color and " -"opacity. It is usually used as an input to other filters to apply color to " -"a graphic." +#: ../src/ui/dialog/clonetiler.cpp:355 +#, no-c-format +msgid "Horizontal scale per column (in % of tile width)" msgstr "" -"Il filtro feFlood riempie una regione con un dato colore e opacitĂ . " -"Solitamente viene usato come input di altri filtri per applicare del colore " -"ad un'immagine." +"Il ridimensionamento orizzontale per ogni colonna (in % sulla larghezza del " +"clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 -msgid "" -"The feGaussianBlur filter primitive uniformly blurs its input. It is " -"commonly used together with feOffset to create a drop shadow effect." -msgstr "" -"Il filtro feGaussianBlur permette di sfocare uniformemente il suo " -"input. Ă solitamente usato in accoppiata col filtro feOffse per creare " -"semplici ombreggiature." +#: ../src/ui/dialog/clonetiler.cpp:361 +msgid "Randomize the horizontal scale by this percentage" +msgstr "Rende casuale di questa percentuale il ridimensionamento orizzontale" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 -msgid "" -"The feImage filter primitive fills the region with an external image " -"or another part of the document." -msgstr "" -"Il filtro feImage riempie una regione con un'immagine esterna o " -"un'altra parte del documento." +#: ../src/ui/dialog/clonetiler.cpp:369 +msgid "Scale Y:" +msgstr "Scala Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 -msgid "" -"The feMerge filter primitive composites several temporary images " -"inside the filter primitive to a single image. It uses normal alpha " -"compositing for this. This is equivalent to using several feBlend primitives " -"in 'normal' mode or several feComposite primitives in 'over' mode." +#: ../src/ui/dialog/clonetiler.cpp:377 +#, no-c-format +msgid "Vertical scale per row (in % of tile height)" msgstr "" -"Il filtro feMerge compone varie immagini temporanee in una unica. Per " -"il suo funzionamento sfrutta una semplice composizione delle trasparenze. " -"Questo è equivalente all'uso di vari filtri feBlend in modalitĂ  «normale», o " -"vari feComposite in modalitĂ  «sovrapposizione»" +"Il ridimensionamento verticale per ogni riga (in % sulla larghezza del clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 -msgid "" -"The feMorphology filter primitive provides erode and dilate effects. " -"For single-color objects erode makes the object thinner and dilate makes it " -"thicker." +#: ../src/ui/dialog/clonetiler.cpp:385 +#, no-c-format +msgid "Vertical scale per column (in % of tile height)" msgstr "" -"Il filtro feMorphology fornisce meccanismi di dilatazione ed " -"erosione. Per oggetti monocromatici, la dilatazione li rende piĂą larghi " -"mentre l'erosione piĂą sottili" +"I ridimensionamento verticale per ogni colonna (in % sulla larghezza del " +"clone)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 -msgid "" -"The feOffset filter primitive offsets the image by an user-defined " -"amount. For example, this is useful for drop shadows, where the shadow is in " -"a slightly different position than the actual object." +#: ../src/ui/dialog/clonetiler.cpp:391 +msgid "Randomize the vertical scale by this percentage" +msgstr "Rende casuale di questa percentuale il ridimensionamento verticale" + +#: ../src/ui/dialog/clonetiler.cpp:405 +msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -"Il filtro feOffset proietta l'immagine alla distanza definita " -"dall'utente. Ă utile per creare le ombre, che risultano sfalsate rispetto " -"agli oggetti che le proiettano." +"Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " +"divergenti (>1)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 -#, fuzzy -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives " -"create \"embossed\" shadings. The input's alpha channel is used to provide " -"depth information: higher opacity areas are raised toward the viewer and " -"lower opacity areas recede away from the viewer." +#: ../src/ui/dialog/clonetiler.cpp:411 +msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -"I filtri feDiffuseLighting e feSpecularLighting creano effetti di " -"ombre per rilievi. Le informazioni sull'altezza sono ricavate dal canale " -"alpha: aree a maggiore opacitĂ  sono poste in rilievo verso l'osservatore, " -"mentre aree con opacitĂ  minore vengono allontanate." +"Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " +"divergenti (>1)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 -msgid "" -"The feTile filter primitive tiles a region with its input graphic" -msgstr "Il filtro feTile pittura una regione con la grafica in input" +#: ../src/ui/dialog/clonetiler.cpp:419 +msgid "Base:" +msgstr "Base:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 msgid "" -"The feTurbulence filter primitive renders Perlin noise. This kind of " -"noise is useful in simulating several nature phenomena like clouds, fire and " -"smoke and in generating complex textures like marble or granite." +"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "" -"Il filtro feTurbulence produce un rumore di Perlin. Questo tipo di " -"rumore può essere utile per simulare vari fenomeni atmosferici (quali " -"nuvole, fuoco e fumo) e per generare trame complesse (come marmo e granito)." +"Base per una spirale logaritmica: non usata (0), convergente (<1) o " +"divergente (>1)" + +#: ../src/ui/dialog/clonetiler.cpp:445 +msgid "Alternate the sign of scales for each row" +msgstr "Alterna il segno del ridimensionamento per ogni riga" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 -msgid "Duplicate filter primitive" -msgstr "Duplica primitiva filtro" +#: ../src/ui/dialog/clonetiler.cpp:450 +msgid "Alternate the sign of scales for each column" +msgstr "Alterna il segno del ridimensionamento per ogni colonna" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 -msgid "Set filter primitive attribute" -msgstr "Imposta l'attributo primitiva del filtro" +#: ../src/ui/dialog/clonetiler.cpp:463 +msgid "Cumulate the scales for each row" +msgstr "Accumula il ridimensionamento per ogni riga" -#: ../src/ui/dialog/find.cpp:71 -msgid "F_ind:" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:468 +msgid "Cumulate the scales for each column" +msgstr "Accumula il ridimensionamento per ogni colonna" -#: ../src/ui/dialog/find.cpp:71 -#, fuzzy -msgid "Find objects by their content or properties (exact or partial match)" -msgstr "" -"Trova oggetti in base al contenuto testuale (corrispondenza esatta o " -"parziale)" +#: ../src/ui/dialog/clonetiler.cpp:477 +msgid "_Rotation" +msgstr "_Rotazione" -#: ../src/ui/dialog/find.cpp:72 -#, fuzzy -msgid "R_eplace:" -msgstr "Rimpiazza:" +#: ../src/ui/dialog/clonetiler.cpp:485 +msgid "Angle:" +msgstr "Angolo:" -#: ../src/ui/dialog/find.cpp:72 -#, fuzzy -msgid "Replace match with this value" -msgstr "Duplica oggetti, con Maiusc per eliminare" +#: ../src/ui/dialog/clonetiler.cpp:493 +#, no-c-format +msgid "Rotate tiles by this angle for each row" +msgstr "Ruota i cloni di questo angolo per ogni riga" -#: ../src/ui/dialog/find.cpp:74 -msgid "_All" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:501 +#, no-c-format +msgid "Rotate tiles by this angle for each column" +msgstr "Ruota i cloni di questo angolo per ogni colonna" -#: ../src/ui/dialog/find.cpp:74 -#, fuzzy -msgid "Search in all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/dialog/clonetiler.cpp:507 +msgid "Randomize the rotation angle by this percentage" +msgstr "Rende casuale di questa percentuale l'angolo di rotazione" -#: ../src/ui/dialog/find.cpp:75 -#, fuzzy -msgid "Current _layer" -msgstr "Livello attuale" +#: ../src/ui/dialog/clonetiler.cpp:521 +msgid "Alternate the rotation direction for each row" +msgstr "Alterna la direzione della rotazione per ogni riga" -#: ../src/ui/dialog/find.cpp:75 -msgid "Limit search to the current layer" -msgstr "Limita la ricerca al livello attuale" +#: ../src/ui/dialog/clonetiler.cpp:526 +msgid "Alternate the rotation direction for each column" +msgstr "Alterna la direzione della rotazione per ogni colonna" -#: ../src/ui/dialog/find.cpp:76 -#, fuzzy -msgid "Sele_ction" -msgstr "Selezione" +#: ../src/ui/dialog/clonetiler.cpp:539 +msgid "Cumulate the rotation for each row" +msgstr "Accumula la rotazione per ogni riga" -#: ../src/ui/dialog/find.cpp:76 -msgid "Limit search to the current selection" -msgstr "Limita la ricerca alla selezione attuale" +#: ../src/ui/dialog/clonetiler.cpp:544 +msgid "Cumulate the rotation for each column" +msgstr "Accumula la rotazione per ogni colonna" -#: ../src/ui/dialog/find.cpp:77 -#, fuzzy -msgid "Search in text objects" -msgstr "Cerca testi" +#: ../src/ui/dialog/clonetiler.cpp:553 +msgid "_Blur & opacity" +msgstr "Sfocatura & _opacitĂ " -#: ../src/ui/dialog/find.cpp:78 -#, fuzzy -msgid "_Properties" -msgstr "ProprietĂ  %s" +#: ../src/ui/dialog/clonetiler.cpp:562 +msgid "Blur:" +msgstr "Sfocatura:" -#: ../src/ui/dialog/find.cpp:78 -msgid "Search in object properties, styles, attributes and IDs" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:568 +msgid "Blur tiles by this percentage for each row" +msgstr "Sfuoca i cloni di questa percentuale per ogni riga" -#: ../src/ui/dialog/find.cpp:80 -#, fuzzy -msgid "Search in" -msgstr "Cerca" +#: ../src/ui/dialog/clonetiler.cpp:574 +msgid "Blur tiles by this percentage for each column" +msgstr "Sfuoca i cloni di questa percentuale per ogni colonna" -#: ../src/ui/dialog/find.cpp:81 -msgid "Scope" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:580 +msgid "Randomize the tile blur by this percentage" +msgstr "Rende casuale di questa percentuale la sfocatura del clone" -#: ../src/ui/dialog/find.cpp:83 -#, fuzzy -msgid "Case sensiti_ve" -msgstr "Area di azione:" +#: ../src/ui/dialog/clonetiler.cpp:594 +msgid "Alternate the sign of blur change for each row" +msgstr "Alterna il segno del valore di cambiamento di sfocatura per ogni riga" -#: ../src/ui/dialog/find.cpp:83 -msgid "Match upper/lower case" +#: ../src/ui/dialog/clonetiler.cpp:599 +msgid "Alternate the sign of blur change for each column" msgstr "" +"Alterna il segno del valore di cambiamento di sfocatura per ogni colonna" -#: ../src/ui/dialog/find.cpp:84 -#, fuzzy -msgid "E_xact match" -msgstr "Estrai immagine" +#: ../src/ui/dialog/clonetiler.cpp:608 +msgid "Opacity:" +msgstr "OpacitĂ :" -#: ../src/ui/dialog/find.cpp:84 -#, fuzzy -msgid "Match whole objects only" -msgstr "Riflette orizzontalmente gli oggetti selezionati" +#: ../src/ui/dialog/clonetiler.cpp:614 +msgid "Decrease tile opacity by this percentage for each row" +msgstr "Riduce di questa percentuale per ogni riga l'opacitĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:85 -msgid "Include _hidden" -msgstr "Includi nascosti" +#: ../src/ui/dialog/clonetiler.cpp:620 +msgid "Decrease tile opacity by this percentage for each column" +msgstr "Riduce di questa percentuale per ogni colonna l'opacitĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:85 -msgid "Include hidden objects in search" -msgstr "Include nella ricerca gli oggetti nascosti" +#: ../src/ui/dialog/clonetiler.cpp:626 +msgid "Randomize the tile opacity by this percentage" +msgstr "Rende casuale di questa percentuale l'opacitĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:86 -#, fuzzy -msgid "Include loc_ked" -msgstr "Includi bloccati" +#: ../src/ui/dialog/clonetiler.cpp:640 +msgid "Alternate the sign of opacity change for each row" +msgstr "Alterna il segno del valore di opacitĂ  per ogni riga" -#: ../src/ui/dialog/find.cpp:86 -msgid "Include locked objects in search" -msgstr "Include nella selezione gli oggetti bloccati" +#: ../src/ui/dialog/clonetiler.cpp:645 +msgid "Alternate the sign of opacity change for each column" +msgstr "Alterna il segno del valore di opacitĂ  per ogni colonna" -#: ../src/ui/dialog/find.cpp:88 -#, fuzzy -msgid "General" -msgstr "Generale" +#: ../src/ui/dialog/clonetiler.cpp:653 +msgid "Co_lor" +msgstr "Co_lore" -#: ../src/ui/dialog/find.cpp:90 -#, fuzzy -msgid "_ID" -msgstr "_ID: " +#: ../src/ui/dialog/clonetiler.cpp:663 +msgid "Initial color: " +msgstr "Colore iniziale: " -#: ../src/ui/dialog/find.cpp:90 -#, fuzzy -msgid "Search id name" -msgstr "Cerca immagini" +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "Initial color of tiled clones" +msgstr "Colore iniziale dei cloni in serie" -#: ../src/ui/dialog/find.cpp:91 -#, fuzzy -msgid "Attribute _name" -msgstr "Nome attributo" +#: ../src/ui/dialog/clonetiler.cpp:667 +msgid "" +"Initial color for clones (works only if the original has unset fill or " +"stroke)" +msgstr "" +"Colore iniziale dei cloni (funziona solo se l'originale non possiede " +"riempimenti o bordi)" -#: ../src/ui/dialog/find.cpp:91 -#, fuzzy -msgid "Search attribute name" -msgstr "Nome attributo" +#: ../src/ui/dialog/clonetiler.cpp:682 +msgid "H:" +msgstr "H:" -#: ../src/ui/dialog/find.cpp:92 -#, fuzzy -msgid "Attri_bute value" -msgstr "Valore attributo" +#: ../src/ui/dialog/clonetiler.cpp:688 +msgid "Change the tile hue by this percentage for each row" +msgstr "Cambia di questa percentuale per ogni riga l'opacitĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:92 -#, fuzzy -msgid "Search attribute value" -msgstr "Valore attributo" +#: ../src/ui/dialog/clonetiler.cpp:694 +msgid "Change the tile hue by this percentage for each column" +msgstr "Cambia di questa percentuale per ogni colonna l'opacitĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:93 -#, fuzzy -msgid "_Style" -msgstr "_Stile: " +#: ../src/ui/dialog/clonetiler.cpp:700 +msgid "Randomize the tile hue by this percentage" +msgstr "Rende casuale di questa percentuale l'opacitĂ  del clone" -#: ../src/ui/dialog/find.cpp:93 -#, fuzzy -msgid "Search style" -msgstr "Cerca cloni" +#: ../src/ui/dialog/clonetiler.cpp:709 +msgid "S:" +msgstr "S:" -#: ../src/ui/dialog/find.cpp:94 -msgid "F_ont" +#: ../src/ui/dialog/clonetiler.cpp:715 +msgid "Change the color saturation by this percentage for each row" +msgstr "Cambia di questa percentuale per ogni riga la saturazione del colore" + +#: ../src/ui/dialog/clonetiler.cpp:721 +msgid "Change the color saturation by this percentage for each column" msgstr "" +"Cambia di questa percentuale per ogni colonna la saturazione del colore" -#: ../src/ui/dialog/find.cpp:94 -#, fuzzy -msgid "Search fonts" -msgstr "Cerca cloni" +#: ../src/ui/dialog/clonetiler.cpp:727 +msgid "Randomize the color saturation by this percentage" +msgstr "Rende casuale di questa percentuale la saturazione del clone" -#: ../src/ui/dialog/find.cpp:95 -#, fuzzy -msgid "Properties" -msgstr "ProprietĂ  %s" +#: ../src/ui/dialog/clonetiler.cpp:735 +msgid "L:" +msgstr "L:" -#: ../src/ui/dialog/find.cpp:97 -msgid "All types" -msgstr "Tutti i tipi" +#: ../src/ui/dialog/clonetiler.cpp:741 +msgid "Change the color lightness by this percentage for each row" +msgstr "Riduce di questa percentuale per ogni riga la luminositĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:97 -#, fuzzy -msgid "Search all object types" -msgstr "Cerca oggetti di tutti i tipi" +#: ../src/ui/dialog/clonetiler.cpp:747 +msgid "Change the color lightness by this percentage for each column" +msgstr "Riduce di questa percentuale per ogni colonna la luminositĂ  dei cloni" -#: ../src/ui/dialog/find.cpp:98 -msgid "Rectangles" -msgstr "Rettangoli" +#: ../src/ui/dialog/clonetiler.cpp:753 +msgid "Randomize the color lightness by this percentage" +msgstr "Rende casuale di questa percentuale la luminositĂ  del clone" -#: ../src/ui/dialog/find.cpp:98 -msgid "Search rectangles" -msgstr "Cerca rettangoli" +#: ../src/ui/dialog/clonetiler.cpp:767 +msgid "Alternate the sign of color changes for each row" +msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" -#: ../src/ui/dialog/find.cpp:99 -msgid "Ellipses" -msgstr "Ellissi" +#: ../src/ui/dialog/clonetiler.cpp:772 +msgid "Alternate the sign of color changes for each column" +msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" -#: ../src/ui/dialog/find.cpp:99 -msgid "Search ellipses, arcs, circles" -msgstr "Cerca ellissi, archi e cerchi" +#: ../src/ui/dialog/clonetiler.cpp:780 +msgid "_Trace" +msgstr "Ve_ttorizza" -#: ../src/ui/dialog/find.cpp:100 -msgid "Stars" -msgstr "Stelle" +#: ../src/ui/dialog/clonetiler.cpp:792 +msgid "Trace the drawing under the tiles" +msgstr "Vettorizza il disegno sotto i cloni" -#: ../src/ui/dialog/find.cpp:100 -msgid "Search stars and polygons" -msgstr "Cerca stelle e poligoni" +#: ../src/ui/dialog/clonetiler.cpp:796 +msgid "" +"For each clone, pick a value from the drawing in that clone's location and " +"apply it to the clone" +msgstr "" +"Per ogni clone preleva il valore del disegno su cui il clone è posto e lo " +"applica al clone" -#: ../src/ui/dialog/find.cpp:101 -msgid "Spirals" -msgstr "Spirali" +#: ../src/ui/dialog/clonetiler.cpp:815 +msgid "1. Pick from the drawing:" +msgstr "1. Preleva dal disegno:" -#: ../src/ui/dialog/find.cpp:101 -msgid "Search spirals" -msgstr "Cerca spirali" +#: ../src/ui/dialog/clonetiler.cpp:833 +msgid "Pick the visible color and opacity" +msgstr "Preleva il colore visibile e l'opacitĂ " -#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1736 -msgid "Paths" -msgstr "Percorsi" +#: ../src/ui/dialog/clonetiler.cpp:841 +msgid "Pick the total accumulated opacity" +msgstr "Preleva l'opacitĂ  accumulata totale" -#: ../src/ui/dialog/find.cpp:102 -msgid "Search paths, lines, polylines" -msgstr "Cerca percorsi, linee, poligonali" +#: ../src/ui/dialog/clonetiler.cpp:848 +msgid "R" +msgstr "R" -#: ../src/ui/dialog/find.cpp:103 -msgid "Texts" -msgstr "Testi" +#: ../src/ui/dialog/clonetiler.cpp:849 +msgid "Pick the Red component of the color" +msgstr "Preleva la componente Rossa del colore" -#: ../src/ui/dialog/find.cpp:103 -msgid "Search text objects" -msgstr "Cerca testi" +#: ../src/ui/dialog/clonetiler.cpp:856 +msgid "G" +msgstr "G" -#: ../src/ui/dialog/find.cpp:104 -msgid "Groups" -msgstr "Gruppi" +#: ../src/ui/dialog/clonetiler.cpp:857 +msgid "Pick the Green component of the color" +msgstr "Preleva la componente Verde del colore" -#: ../src/ui/dialog/find.cpp:104 -msgid "Search groups" -msgstr "Cerca gruppi" +#: ../src/ui/dialog/clonetiler.cpp:864 +msgid "B" +msgstr "B" -#. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:107 +#: ../src/ui/dialog/clonetiler.cpp:865 +msgid "Pick the Blue component of the color" +msgstr "Preleva la componente Blu del colore" + +#: ../src/ui/dialog/clonetiler.cpp:872 #, fuzzy -msgctxt "Find dialog" -msgid "Clones" -msgstr "Cloni" +msgctxt "Clonetiler color hue" +msgid "H" +msgstr "H" -#: ../src/ui/dialog/find.cpp:107 -msgid "Search clones" -msgstr "Cerca cloni" +#: ../src/ui/dialog/clonetiler.cpp:873 +msgid "Pick the hue of the color" +msgstr "Preleva l'opacitĂ  del colore" -#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 -#: ../share/extensions/extractimage.inx.h:5 -msgid "Images" -msgstr "Immagini" +#: ../src/ui/dialog/clonetiler.cpp:880 +#, fuzzy +msgctxt "Clonetiler color saturation" +msgid "S" +msgstr "S" -#: ../src/ui/dialog/find.cpp:109 -msgid "Search images" -msgstr "Cerca immagini" +#: ../src/ui/dialog/clonetiler.cpp:881 +msgid "Pick the saturation of the color" +msgstr "Preleva la saturazione del colore" -#: ../src/ui/dialog/find.cpp:110 -msgid "Offsets" -msgstr "Proiezioni" +#: ../src/ui/dialog/clonetiler.cpp:888 +#, fuzzy +msgctxt "Clonetiler color lightness" +msgid "L" +msgstr "L" -#: ../src/ui/dialog/find.cpp:110 -msgid "Search offset objects" -msgstr "Cerca proiezioni dell'oggetto" +#: ../src/ui/dialog/clonetiler.cpp:889 +msgid "Pick the lightness of the color" +msgstr "Preleva la luminositĂ  del colore" -#: ../src/ui/dialog/find.cpp:111 -#, fuzzy -msgid "Object types" -msgstr "Tipo oggetto" +#: ../src/ui/dialog/clonetiler.cpp:899 +msgid "2. Tweak the picked value:" +msgstr "2. Corregge il valore prelevato:" -#: ../src/ui/dialog/find.cpp:114 -msgid "_Find" -msgstr "_Trova" +#: ../src/ui/dialog/clonetiler.cpp:916 +msgid "Gamma-correct:" +msgstr "Correzione-gamma:" -#: ../src/ui/dialog/find.cpp:114 -#, fuzzy -msgid "Select all objects matching the selection criteria" -msgstr "Cerca oggetti corrispondenti a tutti i campi spuntati" +#: ../src/ui/dialog/clonetiler.cpp:920 +msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +msgstr "" +"Sposta l'intervallo medio del valore prelevato verso l'alto (>0) o verso il " +"basso (<0)" -#: ../src/ui/dialog/find.cpp:115 -#, fuzzy -msgid "_Replace All" -msgstr "Rimpiazza" +#: ../src/ui/dialog/clonetiler.cpp:927 +msgid "Randomize:" +msgstr "CasualitĂ :" -#: ../src/ui/dialog/find.cpp:115 -#, fuzzy -msgid "Replace all matches" -msgstr "Sostituisci testo" +#: ../src/ui/dialog/clonetiler.cpp:931 +msgid "Randomize the picked value by this percentage" +msgstr "Rende casuale di questa percentuale il valore prelevato" -#: ../src/ui/dialog/find.cpp:775 -#, fuzzy -msgid "Nothing to replace" -msgstr "Niente da ripetere." +#: ../src/ui/dialog/clonetiler.cpp:938 +msgid "Invert:" +msgstr "Inverti:" -#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:816 -#, c-format -msgid "%d object found (out of %d), %s match." -msgid_plural "%d objects found (out of %d), %s match." -msgstr[0] "" -"%d oggetto trovato (su un totale di %d), corrispondenza %s." -msgstr[1] "" -"%d oggetti trovati (su un totale di %d), corrispondenza %s." +#: ../src/ui/dialog/clonetiler.cpp:942 +msgid "Invert the picked value" +msgstr "Inverti il valore prelevato" -#: ../src/ui/dialog/find.cpp:819 -msgid "exact" -msgstr "esatta" +#: ../src/ui/dialog/clonetiler.cpp:948 +msgid "3. Apply the value to the clones':" +msgstr "3. Applica il valore prelevato ai cloni:" -#: ../src/ui/dialog/find.cpp:819 -msgid "partial" -msgstr "parziale" +#: ../src/ui/dialog/clonetiler.cpp:963 +msgid "Presence" +msgstr "Presenza" -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:822 -#, fuzzy -msgid "%1 match replaced" -msgid_plural "%1 matches replaced" -msgstr[0] "Rimpiazza" -msgstr[1] "Rimpiazza" +#: ../src/ui/dialog/clonetiler.cpp:966 +msgid "" +"Each clone is created with the probability determined by the picked value in " +"that point" +msgstr "" +"Ogni clone viene creato con la probabilitĂ  determinata dal valore prelevato " +"in quel punto" -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:826 -#, fuzzy -msgid "%1 object found" -msgid_plural "%1 objects found" -msgstr[0] "Nessun oggetto trovato" -msgstr[1] "Nessun oggetto trovato" +#: ../src/ui/dialog/clonetiler.cpp:973 +msgid "Size" +msgstr "Dimensione" -#: ../src/ui/dialog/find.cpp:837 -#, fuzzy -msgid "Replace text or property" -msgstr "Imposta proprietĂ  delle guide" +#: ../src/ui/dialog/clonetiler.cpp:976 +msgid "Each clone's size is determined by the picked value in that point" +msgstr "" +"La dimensione di ogni clone è determinata dal valore preso in quel punto" + +#: ../src/ui/dialog/clonetiler.cpp:986 +msgid "" +"Each clone is painted by the picked color (the original must have unset fill " +"or stroke)" +msgstr "" +"Ogni clone è colorato col colore prelevato (l'originale non deve avere " +"riempimento o bordo)" + +#: ../src/ui/dialog/clonetiler.cpp:996 +msgid "Each clone's opacity is determined by the picked value in that point" +msgstr "L'opacitĂ  di ogni clone è determinata dal valore preso in quel punto" + +#: ../src/ui/dialog/clonetiler.cpp:1044 +msgid "How many rows in the tiling" +msgstr "Il numero di righe della serie" + +#: ../src/ui/dialog/clonetiler.cpp:1074 +msgid "How many columns in the tiling" +msgstr "Il numero di colonne della serie" -#: ../src/ui/dialog/find.cpp:841 -#, fuzzy -msgid "Nothing found" -msgstr "Niente da annullare." +#: ../src/ui/dialog/clonetiler.cpp:1119 +msgid "Width of the rectangle to be filled" +msgstr "Larghezza del rettangolo da riempire" -#: ../src/ui/dialog/find.cpp:846 -msgid "No objects found" -msgstr "Nessun oggetto trovato" +#: ../src/ui/dialog/clonetiler.cpp:1152 +msgid "Height of the rectangle to be filled" +msgstr "Altezza del rettangolo da riempire" -#: ../src/ui/dialog/find.cpp:867 -#, fuzzy -msgid "Select an object type" -msgstr "Duplica gli oggetti selezionati" +#: ../src/ui/dialog/clonetiler.cpp:1169 +msgid "Rows, columns: " +msgstr "Righe, colonne: " -#: ../src/ui/dialog/find.cpp:885 -#, fuzzy -msgid "Select a property" -msgstr "Imposta proprietĂ  delle guide" +#: ../src/ui/dialog/clonetiler.cpp:1170 +msgid "Create the specified number of rows and columns" +msgstr "Crea il numero specificato di righe e colonne" -#: ../src/ui/dialog/font-substitution.cpp:87 -msgid "" -"\n" -"Some fonts are not available and have been substituted." -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1179 +msgid "Width, height: " +msgstr "Larghezza, altezza: " -#: ../src/ui/dialog/font-substitution.cpp:90 -msgid "Font substitution" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1180 +msgid "Fill the specified width and height with the tiling" +msgstr "Riempie la larghezza e l'altezza specificata con i cloni" -#: ../src/ui/dialog/font-substitution.cpp:109 -#, fuzzy -msgid "Select all the affected items" -msgstr "Duplica gli oggetti selezionati" +#: ../src/ui/dialog/clonetiler.cpp:1201 +msgid "Use saved size and position of the tile" +msgstr "Usa la dimensione e la posizione salvata per la serie" -#: ../src/ui/dialog/font-substitution.cpp:114 -msgid "Don't show this warning again" +#: ../src/ui/dialog/clonetiler.cpp:1204 +msgid "" +"Pretend that the size and position of the tile are the same as the last time " +"you tiled it (if any), instead of using the current size" msgstr "" +"Forza la dimensione e la posizione del clone all'ultima clonazione salvata, " +"invece di usare le dimensioni attuali" -#: ../src/ui/dialog/font-substitution.cpp:255 -msgid "Font '%1' substituted with '%2'" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1238 +msgid " _Create " +msgstr " _Crea " -#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 -#, fuzzy -msgid "all" -msgstr "Stretta" +#: ../src/ui/dialog/clonetiler.cpp:1240 +msgid "Create and tile the clones of the selection" +msgstr "Crea e serializza i cloni della selezione" -#: ../src/ui/dialog/glyphs.cpp:61 -msgid "common" -msgstr "" +#. TRANSLATORS: if a group of objects are "clumped" together, then they +#. are unevenly spread in the given amount of space - as shown in the +#. diagrams on the left in the following screenshot: +#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png +#. So unclumping is the process of spreading a number of objects out more evenly. +#: ../src/ui/dialog/clonetiler.cpp:1260 +msgid " _Unclump " +msgstr " Spa_rpaglia " -#: ../src/ui/dialog/glyphs.cpp:62 -msgid "inherited" +#: ../src/ui/dialog/clonetiler.cpp:1261 +msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" +"Distribuisce i cloni in modo da ridurre gli agglomerati, può essere ripetuto" -#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 -#, fuzzy -msgid "Arabic" -msgstr "Arabo (ar)" - -#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 -#, fuzzy -msgid "Armenian" -msgstr "Armeno (hy)" +#: ../src/ui/dialog/clonetiler.cpp:1267 +msgid " Re_move " +msgstr " Ri_muovi " -#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 -#, fuzzy -msgid "Bengali" -msgstr "Bengalese (bn)" +#: ../src/ui/dialog/clonetiler.cpp:1268 +msgid "Remove existing tiled clones of the selected object (siblings only)" +msgstr "Rimuove i cloni in serie dell'oggetto selezionati (solo imparentati)" -#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 -#, fuzzy -msgid "Bopomofo" -msgstr "Riverbero" +#: ../src/ui/dialog/clonetiler.cpp:1284 +msgid " R_eset " +msgstr " R_eimposta " -#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 -#, fuzzy -msgid "Cherokee" -msgstr "Cromatura" +#. TRANSLATORS: "change" is a noun here +#: ../src/ui/dialog/clonetiler.cpp:1286 +msgid "" +"Reset all shifts, scales, rotates, opacity and color changes in the dialog " +"to zero" +msgstr "" +"Reimposta tutti gli spostamenti, scale, rotazioni, opacitĂ  e cambiamenti di " +"colore nella sottofinestra a zero" -#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 -#, fuzzy -msgid "Coptic" -msgstr "Copiato" +#: ../src/ui/dialog/clonetiler.cpp:1359 +msgid "Nothing selected." +msgstr "Nessuna selezione." -#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 -#: ../share/extensions/hershey.inx.h:22 -msgid "Cyrillic" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1365 +msgid "More than one object selected." +msgstr "PiĂą di un elemento selezionato." -#: ../src/ui/dialog/glyphs.cpp:70 -#, fuzzy -msgid "Deseret" -msgstr "D_eseleziona" +#: ../src/ui/dialog/clonetiler.cpp:1372 +#, c-format +msgid "Object has %d tiled clones." +msgstr "L'oggetto ha %d cloni in serie. " -#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 -msgid "Devanagari" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:1377 +msgid "Object has no tiled clones." +msgstr "L'oggetto non ha cloni in serie." -#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 -msgid "Ethiopic" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:2097 +msgid "Select one object whose tiled clones to unclump." +msgstr "Selezionare un oggetto di cui sparpagliare i cloni in serie." -#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 -#, fuzzy -msgid "Georgian" -msgstr "Origine guida" +#: ../src/ui/dialog/clonetiler.cpp:2119 +msgid "Unclump tiled clones" +msgstr "Sparpaglia cloni in serie" -#: ../src/ui/dialog/glyphs.cpp:74 -#, fuzzy -msgid "Gothic" -msgstr "Accrescimento" +#: ../src/ui/dialog/clonetiler.cpp:2148 +msgid "Select one object whose tiled clones to remove." +msgstr "Selezionare un oggetto da cui rimuovere i cloni in serie" -#: ../src/ui/dialog/glyphs.cpp:75 -#, fuzzy -msgid "Greek" -msgstr "Verde" +#: ../src/ui/dialog/clonetiler.cpp:2171 +msgid "Delete tiled clones" +msgstr "Elimina cloni in serie" -#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 -msgid "Gujarati" +#: ../src/ui/dialog/clonetiler.cpp:2224 +msgid "" +"If you want to clone several objects, group them and clone the " +"group." msgstr "" +"Se si vogliono clonare diversi oggetti, occorre raggrupparli e " +"clonare il gruppo." -#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 -msgid "Gurmukhi" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:2233 +msgid "Creating tiled clones..." +msgstr "Creazione cloni in serie..." -#: ../src/ui/dialog/glyphs.cpp:78 -#, fuzzy -msgid "Han" -msgstr "Maniglia" +#: ../src/ui/dialog/clonetiler.cpp:2640 +msgid "Create tiled clones" +msgstr "Crea cloni in serie" -#: ../src/ui/dialog/glyphs.cpp:79 -#, fuzzy -msgid "Hangul" -msgstr "angolo" +#: ../src/ui/dialog/clonetiler.cpp:2873 +msgid "Per row:" +msgstr "Per riga:" -#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 -#, fuzzy -msgid "Hebrew" -msgstr "Ebreo (he)" +#: ../src/ui/dialog/clonetiler.cpp:2891 +msgid "Per column:" +msgstr "Per colonna:" -#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 -msgid "Hiragana" -msgstr "" +#: ../src/ui/dialog/clonetiler.cpp:2899 +msgid "Randomize:" +msgstr "CasualitĂ :" -#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 -msgid "Kannada" +#: ../src/ui/dialog/color-item.cpp:131 +#, c-format +msgid "" +"Color: %s; Click to set fill, Shift+click to set stroke" msgstr "" +"Colore: %s; Clic per impostare il riempimento, Maiusc+clic per impostare il contorno" -#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 -#, fuzzy -msgid "Katakana" -msgstr "Catalano (ca)" +#: ../src/ui/dialog/color-item.cpp:509 +msgid "Change color definition" +msgstr "Modifica definizione colore" -#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 -#, fuzzy -msgid "Khmer" -msgstr "Khmer (km)" +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove stroke color" +msgstr "Rimuovi colore contorno" -#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 -#, fuzzy -msgid "Lao" -msgstr "Aspetto" +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove fill color" +msgstr "Rimuovi colore riempimento" -#: ../src/ui/dialog/glyphs.cpp:86 -#, fuzzy -msgid "Latin" -msgstr "Satinato" +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set stroke color to none" +msgstr "Rimuove il colore del contorno" -#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 -msgid "Malayalam" -msgstr "" +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set fill color to none" +msgstr "Rimuove il colore di riempimento" -#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 -#, fuzzy -msgid "Mongolian" -msgstr "Mongolo (mn)" +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set stroke color from swatch" +msgstr "Seleziona i colori da una tavolozza di campioni" -#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 -msgid "Myanmar" -msgstr "" +#: ../src/ui/dialog/color-item.cpp:700 +msgid "Set fill color from swatch" +msgstr "Imposta colore di riempimento dai campioni" -#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 -msgid "Ogham" -msgstr "" +#: ../src/ui/dialog/debug.cpp:73 +msgid "Messages" +msgstr "Messaggi" -#: ../src/ui/dialog/glyphs.cpp:91 -#, fuzzy -msgid "Old Italic" -msgstr "Corsivo" +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +msgid "_Clear" +msgstr "_Pulisci" -#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 -msgid "Oriya" -msgstr "" +#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +msgid "Capture log messages" +msgstr "Intercetta i messaggi di log" -#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 -#, fuzzy -msgid "Runic" -msgstr "Arrotondamento" +#: ../src/ui/dialog/debug.cpp:95 +msgid "Release log messages" +msgstr "Ignora i messaggi di log" -#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 -#, fuzzy -msgid "Sinhala" -msgstr "Singolo" +#: ../src/ui/dialog/document-metadata.cpp:88 +#: ../src/ui/dialog/document-properties.cpp:159 +msgid "Metadata" +msgstr "Metadati" -#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 -msgid "Syriac" -msgstr "" +#: ../src/ui/dialog/document-metadata.cpp:89 +#: ../src/ui/dialog/document-properties.cpp:160 +msgid "License" +msgstr "Licenza" -#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 -#, fuzzy -msgid "Tamil" -msgstr "Piastrella" +#: ../src/ui/dialog/document-metadata.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:1007 +msgid "Dublin Core Entities" +msgstr "EntitĂ  Dublin Core" -#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 -msgid "Telugu" -msgstr "" +#: ../src/ui/dialog/document-metadata.cpp:168 +#: ../src/ui/dialog/document-properties.cpp:1069 +msgid "License" +msgstr "Licenza" -#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 -#, fuzzy -msgid "Thaana" -msgstr "Tartan" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "Use antialiasing" +msgstr "Usa antialiasing" -#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 -#, fuzzy -msgid "Thai" -msgstr "Tailandese (th)" +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "If unset, no antialiasing will be done on the drawing" +msgstr "Se attivo, l'antialiasing verrĂ  abilitato per il disegno" -#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 -#, fuzzy -msgid "Tibetan" -msgstr "Tartan" +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Show page _border" +msgstr "Mostra i _bordi della pagina" -#: ../src/ui/dialog/glyphs.cpp:101 -msgid "Canadian Aboriginal" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "If set, rectangular page border is shown" +msgstr "Se attiva, il bordo rettangolare della pagina è visibile" -#: ../src/ui/dialog/glyphs.cpp:102 -msgid "Yi" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Border on _top of drawing" +msgstr "Bor_di in cima al disegno" -#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 -#, fuzzy -msgid "Tagalog" -msgstr "Etichetta" +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "If set, border is always on top of the drawing" +msgstr "Se attivo, i bordi sono sempre mostrati in cima al disegno" -#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 -msgid "Hanunoo" +#: ../src/ui/dialog/document-properties.cpp:114 +msgid "_Show border shadow" +msgstr "Mo_stra l'ombra della pagina" + +#: ../src/ui/dialog/document-properties.cpp:114 +msgid "If set, page border shows a shadow on its right and lower side" msgstr "" +"Se attivo, il bordo della pagina proietta un'ombra dai lati inferiore e " +"sinistro" -#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 -#, fuzzy -msgid "Buhid" -msgstr "guida" +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "Back_ground color:" +msgstr "Colore di sfo_ndo:" -#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 -msgid "Tagbanwa" +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "" +"Color of the page background. Note: transparency setting ignored while " +"editing but used when exporting to bitmap." msgstr "" +"Colore di sfondo della pagina. Nota: l'impostazione della trasparenza è " +"ignorata durante la modifica ma utilizzata nell'esportazione bitmap." -#: ../src/ui/dialog/glyphs.cpp:107 -#, fuzzy -msgid "Braille" -msgstr "Parallelo" +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Border _color:" +msgstr "_Colore del bordo:" -#: ../src/ui/dialog/glyphs.cpp:108 -msgid "Cypriot" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Page border color" +msgstr "Colore del bordo della pagina" -#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 -msgid "Limbu" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Color of the page border" +msgstr "Colore dei bordi della pagina" -#: ../src/ui/dialog/glyphs.cpp:110 -msgid "Osmanya" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:117 +msgid "Default _units:" +msgstr "_UnitĂ  predefinite:" -#: ../src/ui/dialog/glyphs.cpp:111 -#, fuzzy -msgid "Shavian" -msgstr "Ombreggiatura" +#. --------------------------------------------------------------- +#. General snap options +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Show _guides" +msgstr "Mostra _guide" -#: ../src/ui/dialog/glyphs.cpp:112 -#, fuzzy -msgid "Linear B" -msgstr "Lineare" +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Show or hide guides" +msgstr "Mostra o nasconde le guide" -#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 -#, fuzzy -msgid "Tai Le" -msgstr "Piastrella" +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Guide co_lor:" +msgstr "Co_lore delle guide:" -#: ../src/ui/dialog/glyphs.cpp:114 -msgid "Ugaritic" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Guideline color" +msgstr "Colore delle linee guida" -#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 -#, fuzzy -msgid "New Tai Lue" -msgstr "A capo" +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Color of guidelines" +msgstr "Colore delle linee guida" -#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 -#, fuzzy -msgid "Buginese" -msgstr "Linee" +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "_Highlight color:" +msgstr "Colore di e_videnziazione:" -#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 -msgid "Glagolitic" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Highlighted guideline color" +msgstr "Colore di evidenziazione della linea guida" -#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 -msgid "Tifinagh" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Color of a guideline when it is under mouse" +msgstr "Colore di una guida quando è sotto il mouse" -#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 -msgid "Syloti Nagri" -msgstr "" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:125 +msgid "Snap _distance" +msgstr "Distanza di aggancio" -#: ../src/ui/dialog/glyphs.cpp:120 -#, fuzzy -msgid "Old Persian" -msgstr "Collegamento" +#: ../src/ui/dialog/document-properties.cpp:125 +msgid "Snap only when _closer than:" +msgstr "Aggancia solo se piĂą vi_cino di:" -#: ../src/ui/dialog/glyphs.cpp:121 -msgid "Kharoshthi" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Always snap" +msgstr "Aggancia sempre" -#: ../src/ui/dialog/glyphs.cpp:122 -#, fuzzy -msgid "unassigned" -msgstr "Assegna" +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Snapping distance, in screen pixels, for snapping to objects" +msgstr "Distanza di aggancio agli oggetti, in pixel dello schermo" -#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 -#, fuzzy -msgid "Balinese" -msgstr "linee" +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Always snap to objects, regardless of their distance" +msgstr "Aggancia sempre alle oggetti, indipendentemente dalla distanza" -#: ../src/ui/dialog/glyphs.cpp:124 -msgid "Cuneiform" +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "" +"If set, objects only snap to another object when it's within the range " +"specified below" msgstr "" +"Se attivo, gli oggetti si attaccano ad altri oggetti solo se nel raggio di " +"azione specificato" -#: ../src/ui/dialog/glyphs.cpp:125 -#, fuzzy -msgid "Phoenician" -msgstr "Pastello" +#. Options for snapping to grids +#: ../src/ui/dialog/document-properties.cpp:130 +msgid "Snap d_istance" +msgstr "D_istanza di aggancio" -#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 -msgid "Phags-pa" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:130 +msgid "Snap only when c_loser than:" +msgstr "Aggancia so_lo se piĂą vicino di:" -#: ../src/ui/dialog/glyphs.cpp:127 -msgid "N'Ko" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Snapping distance, in screen pixels, for snapping to grid" +msgstr "Distanza per l'aggancio alla griglia, in pixel dello schermo" -#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 -msgid "Kayah Li" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Always snap to grids, regardless of the distance" +msgstr "Aggancia sempre alle griglie, indipendentemente dalla distanza" -#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 -msgid "Lepcha" +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "" +"If set, objects only snap to a grid line when it's within the range " +"specified below" msgstr "" +"Se attivo, gli oggetti si attaccano alle linee della griglia solo se nel " +"raggio di azione specificato" -#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 -#, fuzzy -msgid "Rejang" -msgstr "Rettangolo" +#. Options for snapping to guides +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Snap dist_ance" +msgstr "Dist_anza di aggancio" -#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 -#, fuzzy -msgid "Sundanese" -msgstr "Domenica" +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Snap only when close_r than:" +msgstr "Aggancia _solo se piĂą vi_cino di:" -#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 -#, fuzzy -msgid "Saurashtra" -msgstr "Satura" +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "Snapping distance, in screen pixels, for snapping to guides" +msgstr "Distanza per l'aggancio alle guide, in pixel dello schermo" -#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 -#, fuzzy -msgid "Cham" -msgstr "Cromatura" +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "Always snap to guides, regardless of the distance" +msgstr "Aggancia sempre alle guide, indipendentemente dalla distanza" -#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 -msgid "Ol Chiki" +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "" +"If set, objects only snap to a guide when it's within the range specified " +"below" msgstr "" +"Se attivo, gli oggetti si attaccano alle guide solo se nel raggio di azione " +"specificato" -#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 -msgid "Vai" +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:140 +#, fuzzy +msgid "Snap to clip paths" +msgstr "Aggancia ai tracciati" + +#: ../src/ui/dialog/document-properties.cpp:140 +msgid "When snapping to paths, then also try snapping to clip paths" msgstr "" -#: ../src/ui/dialog/glyphs.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:141 #, fuzzy -msgid "Carian" -msgstr "Tartan" +msgid "Snap to mask paths" +msgstr "Aggancia ai tracciati" -#: ../src/ui/dialog/glyphs.cpp:137 -#, fuzzy -msgid "Lycian" -msgstr "Linea" +#: ../src/ui/dialog/document-properties.cpp:141 +msgid "When snapping to paths, then also try snapping to mask paths" +msgstr "" -#: ../src/ui/dialog/glyphs.cpp:138 +#: ../src/ui/dialog/document-properties.cpp:142 #, fuzzy -msgid "Lydian" -msgstr "Mediana" +msgid "Snap perpendicularly" +msgstr "Bisettrice perpendicolare" -#: ../src/ui/dialog/glyphs.cpp:153 -msgid "Basic Latin" +#: ../src/ui/dialog/document-properties.cpp:142 +msgid "" +"When snapping to paths or guides, then also try snapping perpendicularly" msgstr "" -#: ../src/ui/dialog/glyphs.cpp:154 +#: ../src/ui/dialog/document-properties.cpp:143 #, fuzzy -msgid "Latin-1 Supplement" -msgstr "Segmento" +msgid "Snap tangentially" +msgstr "Imposta riempimento" -#: ../src/ui/dialog/glyphs.cpp:155 -msgid "Latin Extended-A" +#: ../src/ui/dialog/document-properties.cpp:143 +msgid "When snapping to paths or guides, then also try snapping tangentially" msgstr "" -#: ../src/ui/dialog/glyphs.cpp:156 -msgid "Latin Extended-B" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:146 +msgctxt "Grid" +msgid "_New" +msgstr "_Nuova" -#: ../src/ui/dialog/glyphs.cpp:157 -#, fuzzy -msgid "IPA Extensions" -msgstr "Este_nsioni" +#: ../src/ui/dialog/document-properties.cpp:146 +msgid "Create new grid." +msgstr "Crea nuova griglia." -#: ../src/ui/dialog/glyphs.cpp:158 -#, fuzzy -msgid "Spacing Modifier Letters" -msgstr "Spaziatura tra le lettere" +#: ../src/ui/dialog/document-properties.cpp:147 +msgctxt "Grid" +msgid "_Remove" +msgstr "_Rimuovi" -#: ../src/ui/dialog/glyphs.cpp:159 -msgid "Combining Diacritical Marks" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:147 +msgid "Remove selected grid." +msgstr "Rimuove la griglia selezionata" -#: ../src/ui/dialog/glyphs.cpp:160 -msgid "Greek and Coptic" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:154 +#: ../src/widgets/toolbox.cpp:1835 +msgid "Guides" +msgstr "Guide" -#: ../src/ui/dialog/glyphs.cpp:162 -msgid "Cyrillic Supplement" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2744 +msgid "Snap" +msgstr "Aggancio" -#: ../src/ui/dialog/glyphs.cpp:167 -msgid "Arabic Supplement" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:158 +msgid "Scripting" +msgstr "Script" -#: ../src/ui/dialog/glyphs.cpp:169 -msgid "NKo" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:322 +msgid "General" +msgstr "Generale" -#: ../src/ui/dialog/glyphs.cpp:170 -#, fuzzy -msgid "Samaritan" -msgstr "Tartan" +#: ../src/ui/dialog/document-properties.cpp:324 +msgid "Page Size" +msgstr "Dimensione Pagina" -#: ../src/ui/dialog/glyphs.cpp:186 -msgid "Hangul Jamo" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:326 +msgid "Display" +msgstr "Visualizzazione" -#: ../src/ui/dialog/glyphs.cpp:188 -msgid "Ethiopic Supplement" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:361 +msgid "Guides" +msgstr "Guide" -#: ../src/ui/dialog/glyphs.cpp:190 -msgid "Unified Canadian Aboriginal Syllabics" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:379 +msgid "Snap to objects" +msgstr "Aggancio agli oggetti" -#: ../src/ui/dialog/glyphs.cpp:199 -msgid "Unified Canadian Aboriginal Syllabics Extended" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:381 +msgid "Snap to grids" +msgstr "Aggancio alle griglie" -#: ../src/ui/dialog/glyphs.cpp:203 -#, fuzzy -msgid "Khmer Symbols" -msgstr "Khmer (km)" +#: ../src/ui/dialog/document-properties.cpp:383 +msgid "Snap to guides" +msgstr "Aggancio alle guide" -#: ../src/ui/dialog/glyphs.cpp:205 -msgid "Tai Tham" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:385 +msgid "Miscellaneous" +msgstr "Varie" -#: ../src/ui/dialog/glyphs.cpp:210 -#, fuzzy -msgid "Vedic Extensions" -msgstr "Este_nsioni" +#. TODO check if this next line was sometimes needed. It being there caused an assertion. +#. Inkscape::GC::release(defsRepr); +#. inform the document, so we can undo +#. Color Management +#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:2921 +msgid "Link Color Profile" +msgstr "Collega profilo colore" -#: ../src/ui/dialog/glyphs.cpp:211 -#, fuzzy -msgid "Phonetic Extensions" -msgstr "Informazioni sulle e_stensioni" +#: ../src/ui/dialog/document-properties.cpp:599 +msgid "Remove linked color profile" +msgstr "Rimuovi profilo colore collegato" -#: ../src/ui/dialog/glyphs.cpp:212 -msgid "Phonetic Extensions Supplement" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:613 +msgid "Linked Color Profiles:" +msgstr "Profili colore collegati:" -#: ../src/ui/dialog/glyphs.cpp:213 -msgid "Combining Diacritical Marks Supplement" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:615 +msgid "Available Color Profiles:" +msgstr "Profili colore disponibili:" -#: ../src/ui/dialog/glyphs.cpp:214 -msgid "Latin Extended Additional" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:617 +msgid "Link Profile" +msgstr "Collega profilo" -#: ../src/ui/dialog/glyphs.cpp:215 -msgid "Greek Extended" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:626 +msgid "Unlink Profile" +msgstr "Scollega profilo" -#: ../src/ui/dialog/glyphs.cpp:216 -#, fuzzy -msgid "General Punctuation" -msgstr "Funzione verde" +#: ../src/ui/dialog/document-properties.cpp:710 +msgid "Profile Name" +msgstr "Nome profilo" -#: ../src/ui/dialog/glyphs.cpp:217 -msgid "Superscripts and Subscripts" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:746 +msgid "External scripts" +msgstr "Script esterni" -#: ../src/ui/dialog/glyphs.cpp:218 -msgid "Currency Symbols" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:747 +msgid "Embedded scripts" +msgstr "Script incorporati" -#: ../src/ui/dialog/glyphs.cpp:219 -msgid "Combining Diacritical Marks for Symbols" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:752 +msgid "External script files:" +msgstr "File di script esterni:" -#: ../src/ui/dialog/glyphs.cpp:220 -msgid "Letterlike Symbols" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:754 +msgid "Add the current file name or browse for a file" +msgstr "Aggiunge il nome file attuale o cerca un file" -#: ../src/ui/dialog/glyphs.cpp:221 -#, fuzzy -msgid "Number Forms" -msgstr "Numero di righe" +#: ../src/ui/dialog/document-properties.cpp:763 +#: ../src/ui/dialog/document-properties.cpp:852 +#: ../src/ui/widget/selected-style.cpp:339 +msgid "Remove" +msgstr "Rimuovi" -#: ../src/ui/dialog/glyphs.cpp:222 +#: ../src/ui/dialog/document-properties.cpp:833 +msgid "Filename" +msgstr "Nome file" + +#: ../src/ui/dialog/document-properties.cpp:841 #, fuzzy -msgid "Arrows" -msgstr "Errori" +msgid "Embedded script files:" +msgstr "File di script esterni:" -#: ../src/ui/dialog/glyphs.cpp:223 -msgid "Mathematical Operators" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:843 +msgid "New" +msgstr "Nuovo" -#: ../src/ui/dialog/glyphs.cpp:224 +#: ../src/ui/dialog/document-properties.cpp:922 #, fuzzy -msgid "Miscellaneous Technical" -msgstr "Varie:" +msgid "Script id" +msgstr "Script" -#: ../src/ui/dialog/glyphs.cpp:225 -#, fuzzy -msgid "Control Pictures" -msgstr "Contributori" +#: ../src/ui/dialog/document-properties.cpp:928 +msgid "Content:" +msgstr "Contenuto:" -#: ../src/ui/dialog/glyphs.cpp:226 -msgid "Optical Character Recognition" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:1045 +msgid "_Save as default" +msgstr "_Salva come predefinito" -#: ../src/ui/dialog/glyphs.cpp:227 -msgid "Enclosed Alphanumerics" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:1046 +msgid "Save this metadata as the default metadata" +msgstr "Salva questi metadati come predefiniti" -#: ../src/ui/dialog/glyphs.cpp:228 -#, fuzzy -msgid "Box Drawing" -msgstr "Disegno" +#: ../src/ui/dialog/document-properties.cpp:1047 +msgid "Use _default" +msgstr "Usa impostazioni pre_definite" -#: ../src/ui/dialog/glyphs.cpp:229 -msgid "Block Elements" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:1048 +msgid "Use the previously saved default metadata here" +msgstr "Usa i metadati precedentemente salvati come predefiniti" -#: ../src/ui/dialog/glyphs.cpp:230 -msgid "Geometric Shapes" -msgstr "" +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1121 +msgid "Add external script..." +msgstr "Aggiungi script esterno..." -#: ../src/ui/dialog/glyphs.cpp:231 -#, fuzzy -msgid "Miscellaneous Symbols" -msgstr "Varie:" +#: ../src/ui/dialog/document-properties.cpp:1160 +msgid "Select a script to load" +msgstr "Seleziona uno script da caricare" -#: ../src/ui/dialog/glyphs.cpp:232 -msgid "Dingbats" -msgstr "" +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1188 +msgid "Add embedded script..." +msgstr "Aggiungi script incorporato..." -#: ../src/ui/dialog/glyphs.cpp:233 -#, fuzzy -msgid "Miscellaneous Mathematical Symbols-A" -msgstr "Trucchi vari" +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1219 +msgid "Remove external script" +msgstr "Rimuovi script esterno" -#: ../src/ui/dialog/glyphs.cpp:234 -msgid "Supplemental Arrows-A" -msgstr "" +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1249 +msgid "Remove embedded script" +msgstr "Rimuovi script incorporato" -#: ../src/ui/dialog/glyphs.cpp:235 -#, fuzzy -msgid "Braille Patterns" -msgstr "Muovi motivi" +#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1346 +msgid "Edit embedded script" +msgstr "Modifica script incorporato" -#: ../src/ui/dialog/glyphs.cpp:236 -msgid "Supplemental Arrows-B" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:1429 +msgid "Creation" +msgstr "Creazione" -#: ../src/ui/dialog/glyphs.cpp:237 -#, fuzzy -msgid "Miscellaneous Mathematical Symbols-B" -msgstr "Trucchi vari" +#: ../src/ui/dialog/document-properties.cpp:1430 +msgid "Defined grids" +msgstr "Griglie definite" -#: ../src/ui/dialog/glyphs.cpp:238 -msgid "Supplemental Mathematical Operators" -msgstr "" +#: ../src/ui/dialog/document-properties.cpp:1677 +msgid "Remove grid" +msgstr "Rimuovi griglia" -#: ../src/ui/dialog/glyphs.cpp:239 +#: ../src/ui/dialog/document-properties.cpp:1756 #, fuzzy -msgid "Miscellaneous Symbols and Arrows" -msgstr "Trucchi vari" +msgid "Changed document unit" +msgstr "Documento senza nome %d" -#: ../src/ui/dialog/glyphs.cpp:241 -msgid "Latin Extended-C" -msgstr "" +#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2796 +msgid "_Page" +msgstr "_Pagina" -#: ../src/ui/dialog/glyphs.cpp:243 -#, fuzzy -msgid "Georgian Supplement" -msgstr "Posizione ingranaggi" +#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2800 +msgid "_Drawing" +msgstr "_Disegno" -#: ../src/ui/dialog/glyphs.cpp:245 -msgid "Ethiopic Extended" -msgstr "" +#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2802 +msgid "_Selection" +msgstr "_Selezione" -#: ../src/ui/dialog/glyphs.cpp:246 -msgid "Cyrillic Extended-A" -msgstr "" +#: ../src/ui/dialog/export.cpp:152 +msgid "_Custom" +msgstr "_Personalizzata" -#: ../src/ui/dialog/glyphs.cpp:247 -msgid "Supplemental Punctuation" -msgstr "" +#: ../src/ui/dialog/export.cpp:170 ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +#: ../share/extensions/render_gears.inx.h:6 +msgid "Units:" +msgstr "UnitĂ :" -#: ../src/ui/dialog/glyphs.cpp:248 -msgid "CJK Radicals Supplement" -msgstr "" +#: ../src/ui/dialog/export.cpp:172 +msgid "_Export As..." +msgstr "_Esporta come..." -#: ../src/ui/dialog/glyphs.cpp:249 -msgid "Kangxi Radicals" -msgstr "" +#: ../src/ui/dialog/export.cpp:175 +msgid "B_atch export all selected objects" +msgstr "Esporta se_paratamente tutti gli oggetti selezionati" -#: ../src/ui/dialog/glyphs.cpp:250 -msgid "Ideographic Description Characters" +#: ../src/ui/dialog/export.cpp:175 +msgid "" +"Export each selected object into its own PNG file, using export hints if any " +"(caution, overwrites without asking!)" msgstr "" +"Esporta ogni oggetto selezionato in un proprio file PNG, usando suggerimenti " +"per l'esportazione quando presenti (attenzione, sovrascrive senza far " +"domande!)" -#: ../src/ui/dialog/glyphs.cpp:251 -msgid "CJK Symbols and Punctuation" -msgstr "" +#: ../src/ui/dialog/export.cpp:177 +msgid "Hide a_ll except selected" +msgstr "Nascondi _tutto tranne la selezione" -#: ../src/ui/dialog/glyphs.cpp:255 -msgid "Hangul Compatibility Jamo" +#: ../src/ui/dialog/export.cpp:177 +msgid "In the exported image, hide all objects except those that are selected" msgstr "" +"Nasconde tutti gli oggetti nell'immagine esportata tranne quelli selezionati" -#: ../src/ui/dialog/glyphs.cpp:256 -msgid "Kanbun" -msgstr "" +#: ../src/ui/dialog/export.cpp:178 +msgid "Close when complete" +msgstr "Chiudi al completamento" -#: ../src/ui/dialog/glyphs.cpp:257 -msgid "Bopomofo Extended" -msgstr "" +#: ../src/ui/dialog/export.cpp:178 +msgid "Once the export completes, close this dialog" +msgstr "Una volta completata l'esportazione, chiude questa finestra" -#: ../src/ui/dialog/glyphs.cpp:258 -#, fuzzy -msgid "CJK Strokes" -msgstr "Contorni" +#: ../src/ui/dialog/export.cpp:180 +msgid "_Export" +msgstr "_Esporta" -#: ../src/ui/dialog/glyphs.cpp:259 -msgid "Katakana Phonetic Extensions" -msgstr "" +#: ../src/ui/dialog/export.cpp:198 +msgid "Export area" +msgstr "Area da esportare" + +#: ../src/ui/dialog/export.cpp:237 +msgid "_x0:" +msgstr "_x0:" + +#: ../src/ui/dialog/export.cpp:241 +msgid "x_1:" +msgstr "x_1:" + +#: ../src/ui/dialog/export.cpp:245 +msgid "Wid_th:" +msgstr "Larg_hezza:" + +#: ../src/ui/dialog/export.cpp:249 +msgid "_y0:" +msgstr "_y0:" + +#: ../src/ui/dialog/export.cpp:253 +msgid "y_1:" +msgstr "y_1:" + +#: ../src/ui/dialog/export.cpp:257 +msgid "Hei_ght:" +msgstr "Alte_zza:" -#: ../src/ui/dialog/glyphs.cpp:260 -msgid "Enclosed CJK Letters and Months" -msgstr "" +#: ../src/ui/dialog/export.cpp:272 +msgid "Image size" +msgstr "Dimensione immagine" -#: ../src/ui/dialog/glyphs.cpp:261 -msgid "CJK Compatibility" -msgstr "" +#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/export.cpp:301 +msgid "pixels at" +msgstr "pixel a" -#: ../src/ui/dialog/glyphs.cpp:262 -msgid "CJK Unified Ideographs Extension A" -msgstr "" +#: ../src/ui/dialog/export.cpp:296 +msgid "dp_i" +msgstr "dp_i" -#: ../src/ui/dialog/glyphs.cpp:263 -msgid "Yijing Hexagram Symbols" -msgstr "" +#: ../src/ui/dialog/export.cpp:301 ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "_Height:" +msgstr "_Altezza:" -#: ../src/ui/dialog/glyphs.cpp:264 -msgid "CJK Unified Ideographs" -msgstr "" +#: ../src/ui/dialog/export.cpp:309 +#: ../src/ui/dialog/inkscape-preferences.cpp:1435 +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +msgid "dpi" +msgstr "dpi" -#: ../src/ui/dialog/glyphs.cpp:265 -msgid "Yi Syllables" -msgstr "" +#: ../src/ui/dialog/export.cpp:317 +msgid "_Filename" +msgstr "Nome del _file" -#: ../src/ui/dialog/glyphs.cpp:266 -msgid "Yi Radicals" -msgstr "" +#: ../src/ui/dialog/export.cpp:359 +msgid "Export the bitmap file with these settings" +msgstr "Esporta il file bitmap con queste impostazioni" -#: ../src/ui/dialog/glyphs.cpp:267 -#, fuzzy -msgid "Lisu" -msgstr "Elenco" +#: ../src/ui/dialog/export.cpp:612 +#, fuzzy, c-format +msgid "B_atch export %d selected object" +msgid_plural "B_atch export %d selected objects" +msgstr[0] "Esporta separatamente %d oggetto selezionato" +msgstr[1] "Esporta separatamente questi %d oggetti selezionati" -#: ../src/ui/dialog/glyphs.cpp:269 -msgid "Cyrillic Extended-B" -msgstr "" +#: ../src/ui/dialog/export.cpp:928 +msgid "Export in progress" +msgstr "Esportazione in avanzamento" -#: ../src/ui/dialog/glyphs.cpp:270 +#: ../src/ui/dialog/export.cpp:1018 #, fuzzy -msgid "Bamum" -msgstr "Massimo" +msgid "No items selected." +msgstr "Nessun filtro selezionato" -#: ../src/ui/dialog/glyphs.cpp:271 -msgid "Modifier Tone Letters" -msgstr "" +#: ../src/ui/dialog/export.cpp:1022 ../src/ui/dialog/export.cpp:1024 +#, fuzzy +msgid "Exporting %1 files" +msgstr "Esportazione di %d file" -#: ../src/ui/dialog/glyphs.cpp:272 -msgid "Latin Extended-D" -msgstr "" +#: ../src/ui/dialog/export.cpp:1064 ../src/ui/dialog/export.cpp:1066 +#, fuzzy, c-format +msgid "Exporting file %s..." +msgstr "Esportazione di %d file" -#: ../src/ui/dialog/glyphs.cpp:274 -msgid "Common Indic Number Forms" -msgstr "" +#: ../src/ui/dialog/export.cpp:1075 ../src/ui/dialog/export.cpp:1166 +#, c-format +msgid "Could not export to filename %s.\n" +msgstr "Impossibile esportare col nome del file %s. \n" -#: ../src/ui/dialog/glyphs.cpp:277 -msgid "Devanagari Extended" -msgstr "" +#: ../src/ui/dialog/export.cpp:1078 +#, fuzzy, c-format +msgid "Could not export to filename %s." +msgstr "Impossibile esportare col nome del file %s. \n" -#: ../src/ui/dialog/glyphs.cpp:280 -msgid "Hangul Jamo Extended-A" +#: ../src/ui/dialog/export.cpp:1093 +#, c-format +msgid "Successfully exported %d files from %d selected items." msgstr "" -#: ../src/ui/dialog/glyphs.cpp:281 +#: ../src/ui/dialog/export.cpp:1104 #, fuzzy -msgid "Javanese" -msgstr "Evanescente" - -#: ../src/ui/dialog/glyphs.cpp:283 -msgid "Myanmar Extended-A" -msgstr "" +msgid "You have to enter a filename." +msgstr "Bisogna inserire il nome del file" -#: ../src/ui/dialog/glyphs.cpp:284 -msgid "Tai Viet" -msgstr "" +#: ../src/ui/dialog/export.cpp:1105 +msgid "You have to enter a filename" +msgstr "Bisogna inserire il nome del file" -#: ../src/ui/dialog/glyphs.cpp:285 +#: ../src/ui/dialog/export.cpp:1119 #, fuzzy -msgid "Meetei Mayek" -msgstr "Elimina livello" - -#: ../src/ui/dialog/glyphs.cpp:286 -msgid "Hangul Syllables" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:287 -msgid "Hangul Jamo Extended-B" -msgstr "" +msgid "The chosen area to be exported is invalid." +msgstr "L'area di esportazione selezionata non è valida" -#: ../src/ui/dialog/glyphs.cpp:288 -msgid "High Surrogates" -msgstr "" +#: ../src/ui/dialog/export.cpp:1120 +msgid "The chosen area to be exported is invalid" +msgstr "L'area di esportazione selezionata non è valida" -#: ../src/ui/dialog/glyphs.cpp:289 -msgid "High Private Use Surrogates" -msgstr "" +#: ../src/ui/dialog/export.cpp:1135 +#, c-format +msgid "Directory %s does not exist or is not a directory.\n" +msgstr "La cartella %s non esiste o non è una cartella.\n" -#: ../src/ui/dialog/glyphs.cpp:290 -msgid "Low Surrogates" -msgstr "" +#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image +#: ../src/ui/dialog/export.cpp:1149 ../src/ui/dialog/export.cpp:1151 +#, fuzzy +msgid "Exporting %1 (%2 x %3)" +msgstr "Sto esportando %s (%lu x %lu) " -#: ../src/ui/dialog/glyphs.cpp:291 -msgid "Private Use Area" -msgstr "" +#: ../src/ui/dialog/export.cpp:1177 +#, fuzzy, c-format +msgid "Drawing exported to %s." +msgstr "Modifica del parametro %s." -#: ../src/ui/dialog/glyphs.cpp:292 -msgid "CJK Compatibility Ideographs" -msgstr "" +#: ../src/ui/dialog/export.cpp:1181 +#, fuzzy +msgid "Export aborted." +msgstr "Esportazione in avanzamento" -#: ../src/ui/dialog/glyphs.cpp:293 -msgid "Alphabetic Presentation Forms" -msgstr "" +#: ../src/ui/dialog/export.cpp:1303 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2358 ../src/widgets/desktop-widget.cpp:1123 +msgid "_Save" +msgstr "_Salva" -#: ../src/ui/dialog/glyphs.cpp:294 -msgid "Arabic Presentation Forms-A" -msgstr "" +#: ../src/ui/dialog/extension-editor.cpp:81 +msgid "Information" +msgstr "Informazioni" -#: ../src/ui/dialog/glyphs.cpp:295 -#, fuzzy -msgid "Variation Selectors" -msgstr "Adatta pagina alla selezione" +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 +#: ../src/verbs.cpp:309 ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../share/extensions/color_custom.inx.h:7 +#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/dots.inx.h:7 +#: ../share/extensions/draw_from_triangle.inx.h:35 +#: ../share/extensions/dxf_input.inx.h:10 +#: ../share/extensions/dxf_outlines.inx.h:24 +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:53 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/generate_voronoi.inx.h:5 +#: ../share/extensions/gimp_xcf.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/jessyInk_autoTexts.inx.h:8 +#: ../share/extensions/jessyInk_effects.inx.h:13 +#: ../share/extensions/jessyInk_export.inx.h:7 +#: ../share/extensions/jessyInk_install.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:44 +#: ../share/extensions/jessyInk_masterSlide.inx.h:5 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 +#: ../share/extensions/jessyInk_summary.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:12 +#: ../share/extensions/jessyInk_uninstall.inx.h:10 +#: ../share/extensions/jessyInk_video.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:7 +#: ../share/extensions/layout_nup.inx.h:24 +#: ../share/extensions/lindenmayer.inx.h:13 +#: ../share/extensions/lorem_ipsum.inx.h:6 +#: ../share/extensions/measure.inx.h:16 +#: ../share/extensions/pathalongpath.inx.h:16 +#: ../share/extensions/pathscatter.inx.h:18 +#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/web-set-att.inx.h:25 +#: ../share/extensions/web-transmit-att.inx.h:23 +#: ../share/extensions/webslicer_create_group.inx.h:11 +#: ../share/extensions/webslicer_export.inx.h:6 +msgid "Help" +msgstr "Aiuto" -#: ../src/ui/dialog/glyphs.cpp:296 -#, fuzzy -msgid "Vertical Forms" -msgstr "Raggio verticale" +#: ../src/ui/dialog/extension-editor.cpp:83 +msgid "Parameters" +msgstr "Parametri" -#: ../src/ui/dialog/glyphs.cpp:297 -#, fuzzy -msgid "Combining Half Marks" -msgstr "Margini di stampa" +#. Fill in the template +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:376 +msgid "No preview" +msgstr "Nessuna anteprima" -#: ../src/ui/dialog/glyphs.cpp:298 -msgid "CJK Compatibility Forms" -msgstr "" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:480 +msgid "too large for preview" +msgstr "troppo grande per l'anteprima" -#: ../src/ui/dialog/glyphs.cpp:299 -msgid "Small Form Variants" -msgstr "" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:565 +msgid "Enable preview" +msgstr "Attiva anteprima" -#: ../src/ui/dialog/glyphs.cpp:300 -msgid "Arabic Presentation Forms-B" -msgstr "" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:715 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:728 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:732 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:735 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:743 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:759 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:774 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:282 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:413 +msgid "All Files" +msgstr "Tutti i file" -#: ../src/ui/dialog/glyphs.cpp:301 -msgid "Halfwidth and Fullwidth Forms" -msgstr "" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:740 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:756 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:283 +msgid "All Inkscape Files" +msgstr "Tutti i file di Inkscape" -#: ../src/ui/dialog/glyphs.cpp:302 -#, fuzzy -msgid "Specials" -msgstr "Spirali" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:747 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:763 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:777 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:284 +msgid "All Images" +msgstr "Tutte le immagini" -#: ../src/ui/dialog/glyphs.cpp:377 -#, fuzzy -msgid "Script: " -msgstr "Script" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:750 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:766 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:285 +msgid "All Vectors" +msgstr "Tutti i vettoriali" -#: ../src/ui/dialog/glyphs.cpp:414 -#, fuzzy -msgid "Range: " -msgstr "angolo" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:753 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:769 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 +msgid "All Bitmaps" +msgstr "Tutte le bitmap" -#: ../src/ui/dialog/glyphs.cpp:497 -#, fuzzy -msgid "Append" -msgstr "Calamaio" +#. ###### File options +#. ###### Do we want the .xxx extension automatically added? +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1002 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1560 +msgid "Append filename extension automatically" +msgstr "Aggiungi automaticamente l'estensione" -#: ../src/ui/dialog/glyphs.cpp:618 -#, fuzzy -msgid "Append text" -msgstr "Inserimento testo" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1175 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1428 +msgid "Guess from extension" +msgstr "Rileva tipo dall'estensione" -#: ../src/ui/dialog/grid-arrange-tab.cpp:351 -msgid "Arrange in a grid" -msgstr "Disponi su griglia" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1447 +msgid "Left edge of source" +msgstr "Lato sinistro della sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 -#: ../src/ui/dialog/object-attributes.cpp:66 -#: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 -msgid "X:" -msgstr "X:" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1448 +msgid "Top edge of source" +msgstr "Lato superiore della sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 -#, fuzzy -msgid "Horizontal spacing between columns." -msgstr "La spaziatura orizzontale tra le colonne (unitĂ  px)" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1449 +msgid "Right edge of source" +msgstr "Lato destro della sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 -#: ../src/ui/dialog/object-attributes.cpp:67 -#: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 -msgid "Y:" -msgstr "Y:" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1450 +msgid "Bottom edge of source" +msgstr "Lato inferiore della sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 -#, fuzzy -msgid "Vertical spacing between rows." -msgstr "Spaziatura verticale tra le righe (unitĂ  px)" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1451 +msgid "Source width" +msgstr "Larghezza sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:637 -#, fuzzy -msgid "_Rows:" -msgstr "Righe:" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1452 +msgid "Source height" +msgstr "Altezza sorgente" -#: ../src/ui/dialog/grid-arrange-tab.cpp:646 -msgid "Number of rows" -msgstr "Numero di righe" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1453 +msgid "Destination width" +msgstr "Larghezza destinazione" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 -#, fuzzy -msgid "Equal _height" -msgstr "Altezza uguale" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1454 +msgid "Destination height" +msgstr "Altezza destinazione" -#: ../src/ui/dialog/grid-arrange-tab.cpp:661 -msgid "If not set, each row has the height of the tallest object in it" -msgstr "Se non impostata, ogni riga ha l'altezza del suo oggetto piĂą alto" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1455 +msgid "Resolution (dots per inch)" +msgstr "Risoluzione (punti per pollice)" -#. #### Number of columns #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:677 -#, fuzzy -msgid "_Columns:" -msgstr "Colonne:" +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 +msgid "Document" +msgstr "Documento" -#: ../src/ui/dialog/grid-arrange-tab.cpp:686 -msgid "Number of columns" -msgstr "Numero di colonne" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:2000 +#: ../share/extensions/printing_marks.inx.h:18 +msgid "Selection" +msgstr "Selezione" -#: ../src/ui/dialog/grid-arrange-tab.cpp:690 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 #, fuzzy -msgid "Equal _width" -msgstr "Larghezza uguale" +msgctxt "Export dialog" +msgid "Custom" +msgstr "Personalizzata" -#: ../src/ui/dialog/grid-arrange-tab.cpp:700 -msgid "If not set, each column has the width of the widest object in it" -msgstr "" -"Se non impostata, ogni colonna ha la larghezza del suo oggetto piĂą largo" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1525 +msgid "Source" +msgstr "Sorgente" -#. Anchor selection widget -#: ../src/ui/dialog/grid-arrange-tab.cpp:711 -#, fuzzy -msgid "Alignment:" -msgstr "Allinea a sinistra" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 +msgid "Cairo" +msgstr "Cairo" -#. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:720 -#, fuzzy -msgid "_Fit into selection box" -msgstr "Adatta al riquadro della selezione" +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1548 +msgid "Antialias" +msgstr "Antialias" -#: ../src/ui/dialog/grid-arrange-tab.cpp:727 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 #, fuzzy -msgid "_Set spacing:" -msgstr "Imposta Spaziatura:" +msgid "All Executable Files" +msgstr "Tutte le immagini" -#: ../src/ui/dialog/guides.cpp:47 -msgid "Rela_tive change" -msgstr "Cambiamenti rela_tivo" +#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 +msgid "Show Preview" +msgstr "Mostra anteprima" -#: ../src/ui/dialog/guides.cpp:47 -msgid "Move and/or rotate the guide relative to current settings" -msgstr "Sposta o ruota la guida in maniera relativa alle impostazioni attuali" +#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 +msgid "No file selected" +msgstr "Nessun file selezionato" -#: ../src/ui/dialog/guides.cpp:48 +#: ../src/ui/dialog/fill-and-stroke.cpp:62 #, fuzzy -msgctxt "Guides" -msgid "_X:" -msgstr "X:" +msgid "_Fill" +msgstr "Riempimento" -#: ../src/ui/dialog/guides.cpp:49 -#, fuzzy -msgctxt "Guides" -msgid "_Y:" -msgstr "Y:" +#: ../src/ui/dialog/fill-and-stroke.cpp:63 +msgid "Stroke _paint" +msgstr "Colore c_ontorno" -#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 -#, fuzzy -msgid "_Label:" -msgstr "Etichet_ta" +#: ../src/ui/dialog/fill-and-stroke.cpp:64 +msgid "Stroke st_yle" +msgstr "St_ile contorno" -#: ../src/ui/dialog/guides.cpp:50 -msgid "Optionally give this guideline a name" +#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor +#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +msgid "" +"This matrix determines a linear transform on color space. Each line affects " +"one of the color components. Each column determines how much of each color " +"component from the input is passed to the output. The last column does not " +"depend on input colors, so can be used to adjust a constant component value." msgstr "" +"Questa matrice determina una trasformazione lineare dello spazio cromatico. " +"Ogni riga agisce su una componente del colore. Ogni colonna determina in che " +"quantitĂ  il colore in input verrĂ  passato all'output. L'ultima colonna non " +"dipende dai colori in input, per cui può essere usata per impostare una " +"componente costante." -#: ../src/ui/dialog/guides.cpp:51 -#, fuzzy -msgid "_Angle:" -msgstr "Angolo:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +msgid "Image File" +msgstr "File immagine" -#: ../src/ui/dialog/guides.cpp:130 -msgid "Set guide properties" -msgstr "Imposta proprietĂ  delle guide" +#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +msgid "Selected SVG Element" +msgstr "Selezionato elemento SVG" -#: ../src/ui/dialog/guides.cpp:160 -msgid "Guideline" -msgstr "Linee guida" +#. TODO: any image, not just svg +#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +msgid "Select an image to be used as feImage input" +msgstr "Selezionare un'immagine da usare come input per feImage" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +msgid "This SVG filter effect does not require any parameters." +msgstr "Questo filtro SVG non necessita di alcun parametro." -#: ../src/ui/dialog/guides.cpp:310 -#, c-format -msgid "Guideline ID: %s" -msgstr "ID linea guida: %s" +#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +msgid "This SVG filter effect is not yet implemented in Inkscape." +msgstr "Questo filtro SVG non è ancora implementato in Inkscape." -#: ../src/ui/dialog/guides.cpp:316 -#, c-format -msgid "Current: %s" -msgstr "Attuale: %s" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +#, fuzzy +msgid "Slope" +msgstr "Imbusta" -#: ../src/ui/dialog/icon-preview.cpp:159 -#, c-format -msgid "%d x %d" -msgstr "%d Ă— %d" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +#, fuzzy +msgid "Intercept" +msgstr "Interfaccia" -#: ../src/ui/dialog/icon-preview.cpp:171 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 #, fuzzy -msgid "Magnified:" -msgstr "Ordine" +msgid "Amplitude" +msgstr "Ampiezza" -#: ../src/ui/dialog/icon-preview.cpp:240 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 #, fuzzy -msgid "Actual Size:" -msgstr "Attuazione:" +msgid "Exponent" +msgstr "Esponente:" -#: ../src/ui/dialog/icon-preview.cpp:245 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 #, fuzzy -msgctxt "Icon preview window" -msgid "Sele_ction" -msgstr "Selezione" +msgid "New transfer function type" +msgstr "Tipo operazione booleana" -#: ../src/ui/dialog/icon-preview.cpp:247 -msgid "Selection only or whole document" -msgstr "Solo selezione o l'intero documento" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +msgid "Light Source:" +msgstr "Sorgente d'illuminazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:181 -msgid "Show selection cue" -msgstr "Mostra suggerimento di selezione" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Direction angle for the light source on the XY plane, in degrees" +msgstr "Angolo di incidenza della sorgente luminosa sul piano XY, in gradi" -#: ../src/ui/dialog/inkscape-preferences.cpp:182 -msgid "" -"Whether selected objects display a selection cue (the same as in selector)" -msgstr "" -"Qualsiasi elemento selezionato mostra un suggerimento di selezione (lo " -"stesso del selettore)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Direction angle for the light source on the YZ plane, in degrees" +msgstr "Angolo di incidenza della sorgente luminosa sul piano YZ, in gradi" -#: ../src/ui/dialog/inkscape-preferences.cpp:188 -msgid "Enable gradient editing" -msgstr "Abilita l'editor di gradiente" +#. default x: +#. default y: +#. default z: +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#, fuzzy +msgid "Location:" +msgstr "Posizione" -#: ../src/ui/dialog/inkscape-preferences.cpp:189 -msgid "Whether selected objects display gradient editing controls" -msgstr "" -"L'elemento selezionato mostra i controlli per la modifica del gradiente" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "X coordinate" +msgstr "Coordinata X" -#: ../src/ui/dialog/inkscape-preferences.cpp:194 -msgid "Conversion to guides uses edges instead of bounding box" -msgstr "" -"Nella conversione a guide usa gli spigoli invece del riquadro dell'oggetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Y coordinate" +msgstr "Coordinata Y" -#: ../src/ui/dialog/inkscape-preferences.cpp:195 -#, fuzzy -msgid "" -"Converting an object to guides places these along the object's true edges " -"(imitating the object's shape), not along the bounding box" -msgstr "" -"Convertendo un'oggetto in guide verranno usati gli spigoli reali " -"dell'oggetto (riproducendone la forma) invece del suo riquadro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Z coordinate" +msgstr "Coordinata X" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -#, fuzzy -msgid "Ctrl+click _dot size:" -msgstr "Dimensione punto con Ctrl+clic:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Points At" +msgstr "Punta a" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -msgid "times current stroke width" -msgstr "volte la larghezza attuale del contorno" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Specular Exponent" +msgstr "Esponente speculare" -#: ../src/ui/dialog/inkscape-preferences.cpp:203 -msgid "Size of dots created with Ctrl+click (relative to current stroke width)" -msgstr "" -"Dimensione dei punti creati con Ctrl+clic (relativi alla larghezza del " -"contorno attuale)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Exponent value controlling the focus for the light source" +msgstr "Valore esponenziale per il controllo del fuoco della sorgente luminosa" -#: ../src/ui/dialog/inkscape-preferences.cpp:218 -msgid "No objects selected to take the style from." -msgstr "Nessun elemento selezionato da cui prendere lo stile." +#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +msgid "Cone Angle" +msgstr "Angolo del cono" -#: ../src/ui/dialog/inkscape-preferences.cpp:227 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 msgid "" -"More than one object selected. Cannot take style from multiple " -"objects." +"This is the angle between the spot light axis (i.e. the axis between the " +"light source and the point to which it is pointing at) and the spot light " +"cone. No light is projected outside this cone." msgstr "" -"PiĂą di un elemento selezionato. Impossibile prendere lo stile da piĂą " -"oggetti." +"Questo è l'angolo tra l'asse del punto di illuminazione (ossia l'asse " +"congiungente la sorgente luminosa e il punto illuminato) e il cono " +"d'illuminazione. All'infuori di questo coso non verrĂ  proiettata alcuna luce." -#: ../src/ui/dialog/inkscape-preferences.cpp:260 -#, fuzzy -msgid "Style of new objects" -msgstr "Stile dei nuovi rettangoli" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +msgid "New light source" +msgstr "Nuova sorgente d'illuminazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:262 -msgid "Last used style" -msgstr "Ultimo stile usato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +msgid "_Duplicate" +msgstr "_Duplica" -#: ../src/ui/dialog/inkscape-preferences.cpp:264 -msgid "Apply the style you last set on an object" -msgstr "Applica l'ultimo stile applicato ad un oggetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +msgid "_Filter" +msgstr "_Filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:269 -msgid "This tool's own style:" -msgstr "Stile di questo strumento:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +msgid "R_ename" +msgstr "_Rinomina" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 -msgid "" -"Each tool may store its own style to apply to the newly created objects. Use " -"the button below to set it." -msgstr "" -"Ogni strumento può salvare il proprio stile per applicarlo agli oggetti che " -"saranno creati. Usare il bottone sotto per impostarlo." +#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +msgid "Rename filter" +msgstr "Rinomina filtro" -#. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:277 -msgid "Take from selection" -msgstr "Prendi dalla selezione" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +msgid "Apply filter" +msgstr "Applica filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:282 -msgid "This tool's style of new objects" -msgstr "Lo stile di questo strumento per i nuovi oggetti" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +msgid "filter" +msgstr "filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:289 -msgid "Remember the style of the (first) selected object as this tool's style" -msgstr "" -"Imposta lo stile del (primo) elemento selezionato come stile di questo " -"strumento" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +msgid "Add filter" +msgstr "Aggiungi filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:294 -msgid "Tools" -msgstr "Strumenti" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +msgid "Duplicate filter" +msgstr "Duplica filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:297 -#, fuzzy -msgid "Bounding box to use" -msgstr "Riquadro da usare:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +msgid "_Effect" +msgstr "_Effetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 -msgid "Visual bounding box" -msgstr "Riquadro visivo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +msgid "Connections" +msgstr "Connessione" -#: ../src/ui/dialog/inkscape-preferences.cpp:300 -msgid "This bounding box includes stroke width, markers, filter margins, etc." -msgstr "" -"Questo riquadro include la larghezza dei contorni, i delimitatori, i margini " -"dei filtri, ecc." +#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +msgid "Remove filter primitive" +msgstr "Rimuovi primitiva filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:301 -msgid "Geometric bounding box" -msgstr "Riquadro geometrico" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +msgid "Remove merge node" +msgstr "Rimuovi nodo unito" -#: ../src/ui/dialog/inkscape-preferences.cpp:303 -msgid "This bounding box includes only the bare path" -msgstr "Questo riquadro include solo il tracciato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +msgid "Reorder filter primitive" +msgstr "Riordina primitiva filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 -#, fuzzy -msgid "Conversion to guides" -msgstr "Conversione in guide:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +msgid "Add Effect:" +msgstr "Aggiungi effetto:" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 -msgid "Keep objects after conversion to guides" -msgstr "Mantieni gli oggetti dopo averli convertiti in guide" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +msgid "No effect selected" +msgstr "Nessun effetto selezionato" -#: ../src/ui/dialog/inkscape-preferences.cpp:308 -#, fuzzy -msgid "" -"When converting an object to guides, don't delete the object after the " -"conversion" -msgstr "Non cancellare l'oggetto dopo la conversione in guide" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +msgid "No filter selected" +msgstr "Nessun filtro selezionato" -#: ../src/ui/dialog/inkscape-preferences.cpp:309 -msgid "Treat groups as a single object" -msgstr "Tratta gruppi come un singolo oggetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +msgid "Effect parameters" +msgstr "Parametri degli effetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:311 -#, fuzzy -msgid "" -"Treat groups as a single object during conversion to guides rather than " -"converting each child separately" -msgstr "" -"Tratta i gruppi come un singolo oggetto durante la conversione in guide " -"piuttosto che convertire ogni componente separatamente." +#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +msgid "Filter General Settings" +msgstr "Impostazioni generali filtri" -#: ../src/ui/dialog/inkscape-preferences.cpp:313 -msgid "Average all sketches" -msgstr "Media tutti i disegni a mano libera" +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Coordinates:" +msgstr "Coordinate:" -#: ../src/ui/dialog/inkscape-preferences.cpp:314 -msgid "Width is in absolute units" -msgstr "La larghezza è in unitĂ  assolute" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "X coordinate of the left corners of filter effects region" +msgstr "Coordinata X dell'angolo sinistro della regione affetta dal filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:315 -msgid "Select new path" -msgstr "Seleziona nuovo tracciato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Y coordinate of the upper corners of filter effects region" +msgstr "Coordinata Y dell'angolo superiore della regione affetta dal filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:316 -msgid "Don't attach connectors to text objects" -msgstr "Non attaccare i connettori agli oggetti testuali" +#. default width: +#. default height: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Dimensions:" +msgstr "Dimensioni:" -#. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:319 -msgid "Selector" -msgstr "Selettore" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Width of filter effects region" +msgstr "Larghezza della regione affetta dal filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:324 -#, fuzzy -msgid "When transforming, show" -msgstr "Durante la trasformazione, mostra:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Height of filter effects region" +msgstr "Altezza della regione affetta dal filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:325 -msgid "Objects" -msgstr "Oggetti" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +msgid "" +"Indicates the type of matrix operation. The keyword 'matrix' indicates that " +"a full 5x4 matrix of values will be provided. The other keywords represent " +"convenience shortcuts to allow commonly used color operations to be " +"performed without specifying a complete matrix." +msgstr "" +"Indica il tipo di matrice di operazione. Il tipo 'matrix' indica che verrĂ  " +"usata un'intera matrice di valore 5x4. Altri tipi rappresentano utili " +"scorciatoie per operazioni sui colori usate frequentemente, che possono " +"essere eseguite senza specificare l'intera matrice." -#: ../src/ui/dialog/inkscape-preferences.cpp:327 -msgid "Show the actual objects when moving or transforming" -msgstr "Mostra l'oggetto attuale durante il movimento o la trasformazione" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +msgid "Value(s):" +msgstr "Valore:" -#: ../src/ui/dialog/inkscape-preferences.cpp:328 -msgid "Box outline" -msgstr "Riquadro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +#, fuzzy +msgid "R:" +msgstr "Rx:" -#: ../src/ui/dialog/inkscape-preferences.cpp:330 -msgid "Show only a box outline of the objects when moving or transforming" -msgstr "" -"Mostra solo il riquadro dell'oggetto durante il movimento o la trasformazione" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 +#: ../src/widgets/sp-color-icc-selector.cpp:359 +#, fuzzy +msgid "G:" +msgstr "_G" -#: ../src/ui/dialog/inkscape-preferences.cpp:331 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 #, fuzzy -msgid "Per-object selection cue" -msgstr "Suggerimento di selezione ad oggetto:" +msgid "B:" +msgstr "_B" -#: ../src/ui/dialog/inkscape-preferences.cpp:334 -msgid "No per-object selection indication" -msgstr "Nessuna indicazione di selezione ad oggetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#, fuzzy +msgid "A:" +msgstr "_A" -#: ../src/ui/dialog/inkscape-preferences.cpp:335 -msgid "Mark" -msgstr "Segno" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +msgid "Operator:" +msgstr "Operatore:" -#: ../src/ui/dialog/inkscape-preferences.cpp:337 -msgid "Each selected object has a diamond mark in the top left corner" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +msgid "K1:" +msgstr "K1:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +msgid "" +"If the arithmetic operation is chosen, each result pixel is computed using " +"the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " +"values of the first and second inputs respectively." msgstr "" -"Ogni oggetto selezionato ha un segno a forma di diamante nell'angolo " -"superiore sinistro" +"Se viene impostata l'operazione matematica, ogni pixel sarĂ  il risultato " +"della formula k1*i1*i2 + k2*i1 + k3*i2 + k4, in cui i1 e i2 sono i valori " +"dei pixel rispettivamente del primo e del secondo input" -#: ../src/ui/dialog/inkscape-preferences.cpp:338 -msgid "Box" -msgstr "Riquadro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +msgid "K2:" +msgstr "K2:" -#: ../src/ui/dialog/inkscape-preferences.cpp:340 -msgid "Each selected object displays its bounding box" -msgstr "Ogni oggetto selezionato mostra il proprio riquadro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +msgid "K3:" +msgstr "K3:" -#. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:343 -msgid "Node" -msgstr "Nodo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +msgid "K4:" +msgstr "K4:" -#: ../src/ui/dialog/inkscape-preferences.cpp:346 -#, fuzzy -msgid "Path outline" -msgstr "Scheletro tracciato:" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "Size:" +msgstr "Dimensione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:347 -msgid "Path outline color" -msgstr "Colore scheletro tracciato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "width of the convolve matrix" +msgstr "larghezza della matrice di convoluzione" -#: ../src/ui/dialog/inkscape-preferences.cpp:348 -#, fuzzy -msgid "Selects the color used for showing the path outline" -msgstr "" -"Selezionare il colore da usare per mostrare lo scheletro del tracciato." +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "height of the convolve matrix" +msgstr "altezza della matrice di convoluzione" -#: ../src/ui/dialog/inkscape-preferences.cpp:349 -#, fuzzy -msgid "Always show outline" -msgstr "Mostra scheletro" +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/object-attributes.cpp:48 +msgid "Target:" +msgstr "Target:" -#: ../src/ui/dialog/inkscape-preferences.cpp:350 -msgid "Show outlines for all paths, not only invisible paths" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +msgid "" +"X coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." msgstr "" +"Coordinata X del punto del punto affetto dalla matrice di convoluzione. La " +"convoluzione viene applicata ai pixel attorno a questo punto." -#: ../src/ui/dialog/inkscape-preferences.cpp:351 -msgid "Update outline when dragging nodes" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +msgid "" +"Y coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." msgstr "" +"Coordinata Y del punto del punto affetto dalla matrice di convoluzione. La " +"convoluzione viene applicata ai pixel attorno a questo punto." -#: ../src/ui/dialog/inkscape-preferences.cpp:352 +#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +msgid "Kernel:" +msgstr "Nucleo:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "" -"Update the outline when dragging or transforming nodes; if this is off, the " -"outline will only update when completing a drag" +"This matrix describes the convolve operation that is applied to the input " +"image in order to calculate the pixel colors at the output. Different " +"arrangements of values in this matrix result in various possible visual " +"effects. An identity matrix would lead to a motion blur effect (parallel to " +"the matrix diagonal) while a matrix filled with a constant non-zero value " +"would lead to a common blur effect." msgstr "" +"Questa matrice descrive l'operazione di convoluzione che verrĂ  applicata " +"all'immagine in ingresso per determinare il colore del pixel in uscita. " +"Combinazioni diverse di valori danno luogo a diversi possibili effetti " +"visivi. Una matrice identitĂ  comporta un effetto di sfocatura mossa " +"(parallela alla diagonale della matrice), mentre una matrice di valori " +"costanti non nulli risulta in un effetto di sfocatura normale." -#: ../src/ui/dialog/inkscape-preferences.cpp:353 -msgid "Update paths when dragging nodes" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +msgid "Divisor:" +msgstr "Divisore:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +msgid "" +"After applying the kernelMatrix to the input image to yield a number, that " +"number is divided by divisor to yield the final destination color value. A " +"divisor that is the sum of all the matrix values tends to have an evening " +"effect on the overall color intensity of the result." msgstr "" +"Dopo aver applicato la kernelMatrix all'immagine in input per ottenere un " +"numero, esso viene diviso per il divisore per ottenere il valore del colore " +"finale. Un divisore che è la somma di tutti i valori della matrice tende ad " +"avere un effetto scurente sull'intensitĂ  complessiva del colore risultante." -#: ../src/ui/dialog/inkscape-preferences.cpp:354 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +msgid "Bias:" +msgstr "Bias:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 msgid "" -"Update paths when dragging or transforming nodes; if this is off, paths will " -"only be updated when completing a drag" +"This value is added to each component. This is useful to define a constant " +"value as the zero response of the filter." msgstr "" +"Questo valore verrĂ  aggiunto ad ogni componente. Risulta utile per definire " +"un valore costante per l'effetto nullo del filtro." -#: ../src/ui/dialog/inkscape-preferences.cpp:355 -msgid "Show path direction on outlines" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +msgid "Edge Mode:" +msgstr "ModalitĂ  spigolo:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +msgid "" +"Determines how to extend the input image as necessary with color values so " +"that the matrix operations can be applied when the kernel is positioned at " +"or near the edge of the input image." msgstr "" +"Determina come estendere del necessario l'immagine in input con i valori di " +"colore affinchĂ© la matrice di operazione possa essere applicata quando il " +"kernel è posizionata in corrispondenza o vicino al bordo dell'immagine." + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +msgid "Preserve Alpha" +msgstr "Preserva Alpha" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +msgid "If set, the alpha channel won't be altered by this filter primitive." +msgstr "Se attivo, il canale alpha non verrĂ  alterato da questo filtro." + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +msgid "Diffuse Color:" +msgstr "Colore diffuso:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Defines the color of the light source" +msgstr "Determina il colore della sorgente luminosa." + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +msgid "Surface Scale:" +msgstr "Ridimensiona superficie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:356 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "" -"Visualize the direction of selected paths by drawing small arrows in the " -"middle of each outline segment" +"This value amplifies the heights of the bump map defined by the input alpha " +"channel" msgstr "" +"Questo valore amplifica l'altezza della mappa a sbalzo definita dal canale " +"alpha" -#: ../src/ui/dialog/inkscape-preferences.cpp:357 -#, fuzzy -msgid "Show temporary path outline" -msgstr "Contorno smussato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "Constant:" +msgstr "Costante:" -#: ../src/ui/dialog/inkscape-preferences.cpp:358 -#, fuzzy -msgid "When hovering over a path, briefly flash its outline" -msgstr "" -"Al passaggio del mouse sul tracciato, ne evidenzia brevemente lo scheletro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "This constant affects the Phong lighting model." +msgstr "Questa costante regola il modello di illuminazione di Phong." -#: ../src/ui/dialog/inkscape-preferences.cpp:359 -#, fuzzy -msgid "Show temporary outline for selected paths" -msgstr "Mostra lo scheletro di un tracciato" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +msgid "Kernel Unit Length:" +msgstr "UnitĂ  lunghezza nucleo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:360 -msgid "Show temporary outline even when a path is selected for editing" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +msgid "This defines the intensity of the displacement effect." +msgstr "Questa l'intensitĂ  dell'effetto di spostamento" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "X displacement:" +msgstr "Spostamento X:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "Color component that controls the displacement in the X direction" msgstr "" +"Componente del colore che controlla la direzione dello spostamento lungo la " +"direzione X" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 -#, fuzzy -msgid "_Flash time:" -msgstr "Tempo di evidenziazione" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Y displacement:" +msgstr "Spostamento Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 -#, fuzzy -msgid "" -"Specifies how long the path outline will be visible after a mouse-over (in " -"milliseconds); specify 0 to have the outline shown until mouse leaves the " -"path" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Color component that controls the displacement in the Y direction" msgstr "" -"Specifica per quanto la traccia del tracciato resta visibile dopo il " -"passaggio del mouse (in millisecondi). Specificando 0 la traccia resterĂ  " -"visibile finchĂ© il mouse è sopra il tracciato." +"Componente del colore che controlla la direzione dello spostamento lungo la " +"direzione Y" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 -#, fuzzy -msgid "Editing preferences" -msgstr "Preferenze gradiente" +#. default: black +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "Flood Color:" +msgstr "Colore uniforme:" -#: ../src/ui/dialog/inkscape-preferences.cpp:364 -#, fuzzy -msgid "Show transform handles for single nodes" -msgstr "Mostra le maniglie Bezier dei nodi selezionati" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "The whole filter region will be filled with this color." +msgstr "L'intera regione verrĂ  riempita con questo colore." -#: ../src/ui/dialog/inkscape-preferences.cpp:365 -#, fuzzy -msgid "Show transform handles even when only a single node is selected" -msgstr "Mostra le maniglie Bezier dei nodi selezionati" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "Standard Deviation:" +msgstr "Deviazione standard:" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 -#, fuzzy -msgid "Deleting nodes preserves shape" -msgstr "Cancella nodi preservando la forma" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "The standard deviation for the blur operation." +msgstr "La deviazione standard per l'operazione di sfocatura." -#: ../src/ui/dialog/inkscape-preferences.cpp:367 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 msgid "" -"Move handles next to deleted nodes to resemble original shape; hold Ctrl to " -"get the other behavior" +"Erode: performs \"thinning\" of input image.\n" +"Dilate: performs \"fattenning\" of input image." msgstr "" +"Erodi: rende l'immagine piĂą piccola.\n" +"Dilata: rende l'immagine piĂą grossa." -#. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:370 -msgid "Tweak" -msgstr "Ritocco" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +msgid "Source of Image:" +msgstr "Sorgente per l'immagine:" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 -#, fuzzy -msgid "Object paint style" -msgstr "Baricentro oggetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "Delta X:" +msgstr "Delta X:" -#. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:376 -#: ../src/widgets/desktop-widget.cpp:631 -msgid "Zoom" -msgstr "Ingrandimento" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "This is how far the input image gets shifted to the right" +msgstr "Determina lo spostamento a destra dell'immagine" -#. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:381 ../src/verbs.cpp:2678 -#, fuzzy -msgctxt "ContextVerb" -msgid "Measure" -msgstr "Misura" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "Delta Y:" +msgstr "Delta Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:383 -msgid "Ignore first and last points" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "This is how far the input image gets shifted downwards" +msgstr "Determina lo spostamento in basso dell'immagine" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Specular Color:" +msgstr "Colore speculare:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../share/extensions/interp.inx.h:2 +msgid "Exponent:" +msgstr "Esponente:" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" +"Esponente per il termini speculare, valori maggiori rendono piĂą \"brillante" +"\"." -#: ../src/ui/dialog/inkscape-preferences.cpp:384 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "" -"The start and end of the measurement tool's control line will not be " -"considered for calculating lengths. Only lengths between actual curve " -"intersections will be displayed." +"Indicates whether the filter primitive should perform a noise or turbulence " +"function." msgstr "" +"Indica se la primitiva del filtro fornirĂ  una funzione di rumore o " +"turbolenza." -#. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:387 -msgid "Shapes" -msgstr "Forme" - -#. Pencil -#: ../src/ui/dialog/inkscape-preferences.cpp:415 -msgid "Pencil" -msgstr "Pastello" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +msgid "Base Frequency:" +msgstr "Frequenza base:" -#: ../src/ui/dialog/inkscape-preferences.cpp:419 -msgid "Sketch mode" -msgstr "ModalitĂ  bozzetto" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +msgid "Octaves:" +msgstr "Ottave:" -#: ../src/ui/dialog/inkscape-preferences.cpp:421 -#, fuzzy -msgid "" -"If on, the sketch result will be the normal average of all sketches made, " -"instead of averaging the old result with the new sketch" -msgstr "" -"Se attivo, il bozzetto finale sarĂ  la media di tutti i bozzetti disegnati, " -"invece di fare la media tra il vecchio risultato e l'ultimo disegnato." +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "Seed:" +msgstr "Seme:" -#. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:424 -#: ../src/ui/dialog/input.cpp:1485 -msgid "Pen" -msgstr "Penna" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "The starting number for the pseudo random number generator." +msgstr "Il seme iniziale per il generatore di numeri pseudo-casuali." -#. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:430 -msgid "Calligraphy" -msgstr "Pennino" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +msgid "Add filter primitive" +msgstr "Aggiungi primitiva filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:434 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 msgid "" -"If on, pen width is in absolute units (px) independent of zoom; otherwise " -"pen width depends on zoom so that it looks the same at any zoom" +"The feBlend filter primitive provides 4 image blending modes: screen, " +"multiply, darken and lighten." msgstr "" -"Se attivo, la larghezza della penna è in unitĂ  assolute (px) " -"indipendentemente dallo zoom; altrimenti la larghezza dipende dalla zoom, " -"ossia sembrerĂ  uguale a qualsiasi ingrandimento" +"Il filtro feBlend fornisce 4 modalitĂ  per miscelare immagini: " +"scherma, moltiplica, scurisci e illumina." -#: ../src/ui/dialog/inkscape-preferences.cpp:436 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 msgid "" -"If on, each newly created object will be selected (deselecting previous " -"selection)" +"The feColorMatrix filter primitive applies a matrix transformation to " +"color of each rendered pixel. This allows for effects like turning object to " +"grayscale, modifying color saturation and changing color hue." msgstr "" -"Se attivo, tutti i nuovi oggetti creati verranno selezionati (disattivando " -"la selezione precedente)" - -#. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:439 ../src/verbs.cpp:2670 -#, fuzzy -msgctxt "ContextVerb" -msgid "Text" -msgstr "Testo" +"Il filtro feColorMatrix applica una matrice di trasformazione al " +"colore di ogni pixel. Questo permette di creare effetti per trasformare " +"oggetti in scala di grigi, cambiare la saturazione o la tonalitĂ  del colore." -#: ../src/ui/dialog/inkscape-preferences.cpp:444 -msgid "Show font samples in the drop-down list" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 +msgid "" +"The feComponentTransfer filter primitive manipulates the input's " +"color components (red, green, blue, and alpha) according to particular " +"transfer functions, allowing operations like brightness and contrast " +"adjustment, color balance, and thresholding." msgstr "" +"Il filtro feComponentTransfer permette di manipolare i componenti " +"cromatici in input (canali rosso, verde, blu e alpha) secondo una funzione " +"di cambiamento, permettendo operazioni di correzione luminositĂ  o contrasto, " +"bilanciamento o soglia del colore." -#: ../src/ui/dialog/inkscape-preferences.cpp:445 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 msgid "" -"Show font samples alongside font names in the drop-down list in Text bar" +"The feComposite filter primitive composites two images using one of " +"the Porter-Duff blending modes or the arithmetic mode described in SVG " +"standard. Porter-Duff blending modes are essentially logical operations " +"between the corresponding pixel values of the images." msgstr "" +"Il filtro feComposite permette di comporre due immagini usando le " +"modalitĂ  di Porter-Duff o quelle aritmetiche descritte nello standard SVG. " +"L'algoritmo Porter-Duff essenzialmente compie delle operazioni logiche sui " +"singoli pixel delle immagini." -#: ../src/ui/dialog/inkscape-preferences.cpp:447 -#, fuzzy -msgid "Show font substitution warning dialog" -msgstr "Mostra il bottone di chiusura nelle sottofinestre" - -#: ../src/ui/dialog/inkscape-preferences.cpp:448 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 msgid "" -"Show font substitution warning dialog when requested fonts are not available " -"on the system" +"The feConvolveMatrix lets you specify a Convolution to be applied on " +"the image. Common effects created using convolution matrices are blur, " +"sharpening, embossing and edge detection. Note that while gaussian blur can " +"be created using this filter primitive, the special gaussian blur primitive " +"is faster and resolution-independent." msgstr "" +"Il filtro feConvolveMatrix permette di applicare una matrici di " +"convoluzione ad un'immagine. Tipici effetti ottenibili con questo filtro " +"sono sfocatura, nitidezza, bordatura e rilevamento bordi. Nota: sebbene si " +"possa creare una sfocatura gaussiana anche con questo filtro, il filtro " +"gaussiano dedicato è piĂą veloce e indipendente dalla risoluzione." -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Pixel" -msgstr "Pixel" - -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Pica" -msgstr "Pica" - -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Millimeter" -msgstr "Millimetro" - -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Centimeter" -msgstr "Centimetro" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" +"I filtri feDiffuseLighting e feSpecularLighting creano effetti di " +"ombre per rilievi. Le informazioni sull'altezza sono ricavate dal canale " +"alpha: aree a maggiore opacitĂ  sono poste in rilievo verso l'osservatore, " +"mentre aree con opacitĂ  minore vengono allontanate." -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Inch" -msgstr "Pollice" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +msgid "" +"The feDisplacementMap filter primitive displaces the pixels in the " +"first input using the second input as a displacement map, that shows from " +"how far the pixel should come from. Classical examples are whirl and pinch " +"effects." +msgstr "" +"Il filtro feDisplacementMap sposta i pixel del primo input usando il " +"secondo come mappa di spostamento, che indichi da che distanza debbano " +"essere presi i pixel. Esempi classici del filtro sono effetti a spirale e " +"pinzature." -#: ../src/ui/dialog/inkscape-preferences.cpp:451 -msgid "Em square" -msgstr "Riquadro Em" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +msgid "" +"The feFlood filter primitive fills the region with a given color and " +"opacity. It is usually used as an input to other filters to apply color to " +"a graphic." +msgstr "" +"Il filtro feFlood riempie una regione con un dato colore e opacitĂ . " +"Solitamente viene usato come input di altri filtri per applicare del colore " +"ad un'immagine." -#. , _("Ex square"), _("Percent") -#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:454 -#, fuzzy -msgid "Text units" -msgstr "Input testo" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 +msgid "" +"The feGaussianBlur filter primitive uniformly blurs its input. It is " +"commonly used together with feOffset to create a drop shadow effect." +msgstr "" +"Il filtro feGaussianBlur permette di sfocare uniformemente il suo " +"input. Ă solitamente usato in accoppiata col filtro feOffse per creare " +"semplici ombreggiature." -#: ../src/ui/dialog/inkscape-preferences.cpp:456 -#, fuzzy -msgid "Text size unit type:" -msgstr "Testo: Cambia stile" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 +msgid "" +"The feImage filter primitive fills the region with an external image " +"or another part of the document." +msgstr "" +"Il filtro feImage riempie una regione con un'immagine esterna o " +"un'altra parte del documento." -#: ../src/ui/dialog/inkscape-preferences.cpp:457 -msgid "Set the type of unit used in the text toolbar and text dialogs" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 +msgid "" +"The feMerge filter primitive composites several temporary images " +"inside the filter primitive to a single image. It uses normal alpha " +"compositing for this. This is equivalent to using several feBlend primitives " +"in 'normal' mode or several feComposite primitives in 'over' mode." msgstr "" +"Il filtro feMerge compone varie immagini temporanee in una unica. Per " +"il suo funzionamento sfrutta una semplice composizione delle trasparenze. " +"Questo è equivalente all'uso di vari filtri feBlend in modalitĂ  «normale», o " +"vari feComposite in modalitĂ  «sovrapposizione»" -#: ../src/ui/dialog/inkscape-preferences.cpp:458 -msgid "Always output text size in pixels (px)" +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +msgid "" +"The feMorphology filter primitive provides erode and dilate effects. " +"For single-color objects erode makes the object thinner and dilate makes it " +"thicker." msgstr "" +"Il filtro feMorphology fornisce meccanismi di dilatazione ed " +"erosione. Per oggetti monocromatici, la dilatazione li rende piĂą larghi " +"mentre l'erosione piĂą sottili" -#: ../src/ui/dialog/inkscape-preferences.cpp:459 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 msgid "" -"Always convert the text size units above into pixels (px) before saving to " -"file" +"The feOffset filter primitive offsets the image by an user-defined " +"amount. For example, this is useful for drop shadows, where the shadow is in " +"a slightly different position than the actual object." msgstr "" +"Il filtro feOffset proietta l'immagine alla distanza definita " +"dall'utente. Ă utile per creare le ombre, che risultano sfalsate rispetto " +"agli oggetti che le proiettano." -#. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:464 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 #, fuzzy -msgid "Spray" -msgstr "Spirale" +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives " +"create \"embossed\" shadings. The input's alpha channel is used to provide " +"depth information: higher opacity areas are raised toward the viewer and " +"lower opacity areas recede away from the viewer." +msgstr "" +"I filtri feDiffuseLighting e feSpecularLighting creano effetti di " +"ombre per rilievi. Le informazioni sull'altezza sono ricavate dal canale " +"alpha: aree a maggiore opacitĂ  sono poste in rilievo verso l'osservatore, " +"mentre aree con opacitĂ  minore vengono allontanate." -#. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:469 -msgid "Eraser" -msgstr "Gomma" +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +msgid "" +"The feTile filter primitive tiles a region with its input graphic" +msgstr "Il filtro feTile pittura una regione con la grafica in input" -#. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:473 -msgid "Paint Bucket" -msgstr "Secchiello" +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +msgid "" +"The feTurbulence filter primitive renders Perlin noise. This kind of " +"noise is useful in simulating several nature phenomena like clouds, fire and " +"smoke and in generating complex textures like marble or granite." +msgstr "" +"Il filtro feTurbulence produce un rumore di Perlin. Questo tipo di " +"rumore può essere utile per simulare vari fenomeni atmosferici (quali " +"nuvole, fuoco e fumo) e per generare trame complesse (come marmo e granito)." -#. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:478 -#: ../src/widgets/gradient-selector.cpp:152 -#: ../src/widgets/gradient-selector.cpp:320 -msgid "Gradient" -msgstr "Gradiente" +#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 +msgid "Duplicate filter primitive" +msgstr "Duplica primitiva filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:480 -msgid "Prevent sharing of gradient definitions" -msgstr "Disabilita condivisione definizioni di gradiente" +#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +msgid "Set filter primitive attribute" +msgstr "Imposta l'attributo primitiva del filtro" -#: ../src/ui/dialog/inkscape-preferences.cpp:482 -msgid "" -"When on, shared gradient definitions are automatically forked on change; " -"uncheck to allow sharing of gradient definitions so that editing one object " -"may affect other objects using the same gradient" +#: ../src/ui/dialog/find.cpp:71 +msgid "F_ind:" +msgstr "_Trova:" + +#: ../src/ui/dialog/find.cpp:71 +msgid "Find objects by their content or properties (exact or partial match)" msgstr "" -"Quando impostato, le definizioni di gradiente vengono automaticamente " -"duplicate quando modificate; deselezionare per abilitare la condivisione " -"delle definizioni di gradiente, affinchĂ© la modifica di un oggetto " -"condizioni gli altri oggetti che usano lo stesso gradiente." +"Trova oggetti in base al loro contenuto o proprietĂ  (corrispondenza esatta o " +"parziale)" -#: ../src/ui/dialog/inkscape-preferences.cpp:483 -#, fuzzy -msgid "Use legacy Gradient Editor" -msgstr "Editor di gradiente" +#: ../src/ui/dialog/find.cpp:72 +msgid "R_eplace:" +msgstr "_Sostituisci:" -#: ../src/ui/dialog/inkscape-preferences.cpp:485 -msgid "" -"When on, the Gradient Edit button in the Fill & Stroke dialog will show the " -"legacy Gradient Editor dialog, when off the Gradient Tool will be used" -msgstr "" +#: ../src/ui/dialog/find.cpp:72 +msgid "Replace match with this value" +msgstr "Sostituisci occorrenza con questo valore" -#: ../src/ui/dialog/inkscape-preferences.cpp:488 -#, fuzzy -msgid "Linear gradient _angle:" -msgstr "Gradiente lineare di riempimento" +#: ../src/ui/dialog/find.cpp:74 +msgid "_All" +msgstr "_Tutti" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 -msgid "" -"Default angle of new linear gradients in degrees (clockwise from horizontal)" -msgstr "" +#: ../src/ui/dialog/find.cpp:74 +msgid "Search in all layers" +msgstr "Cerca in tutti i livelli" -#. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:493 -msgid "Dropper" -msgstr "Contagocce" +#: ../src/ui/dialog/find.cpp:75 +msgid "Current _layer" +msgstr "_Livello attuale" -#. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:498 -msgid "Connector" -msgstr "Connettore" +#: ../src/ui/dialog/find.cpp:75 +msgid "Limit search to the current layer" +msgstr "Limita la ricerca al livello attuale" -#: ../src/ui/dialog/inkscape-preferences.cpp:501 -msgid "If on, connector attachment points will not be shown for text objects" -msgstr "" -"Se attivo, il punto di attacco del connettore non verrĂ  mostrato per gli " -"oggetti testuali" +#: ../src/ui/dialog/find.cpp:76 +msgid "Sele_ction" +msgstr "Sele_zione" -#. LPETool -#. disabled, because the LPETool is not finished yet. -#: ../src/ui/dialog/inkscape-preferences.cpp:506 -#, fuzzy -msgid "LPE Tool" -msgstr "Strumento LPE" +#: ../src/ui/dialog/find.cpp:76 +msgid "Limit search to the current selection" +msgstr "Limita la ricerca alla selezione attuale" -#: ../src/ui/dialog/inkscape-preferences.cpp:513 -msgid "Interface" -msgstr "Interfaccia" +#: ../src/ui/dialog/find.cpp:77 +msgid "Search in text objects" +msgstr "Cerca nei testi" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "System default" -msgstr "Impostazioni predefinita del sistema" +#: ../src/ui/dialog/find.cpp:78 +msgid "_Properties" +msgstr "_ProprietĂ " -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Albanian (sq)" -msgstr "Albanese (sq)" +#: ../src/ui/dialog/find.cpp:78 +msgid "Search in object properties, styles, attributes and IDs" +msgstr "Cerca nelle proprietĂ , stili, attributi e id dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Amharic (am)" -msgstr "Amarico (am)" +#: ../src/ui/dialog/find.cpp:80 +msgid "Search in" +msgstr "Cerca in" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Arabic (ar)" -msgstr "Arabo (ar)" +#: ../src/ui/dialog/find.cpp:81 +msgid "Scope" +msgstr "Esamina" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Armenian (hy)" -msgstr "Armeno (hy)" +#: ../src/ui/dialog/find.cpp:83 +msgid "Case sensiti_ve" +msgstr "Distingui _maiuscole" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Azerbaijani (az)" -msgstr "Azero (az)" +#: ../src/ui/dialog/find.cpp:83 +msgid "Match upper/lower case" +msgstr "Abbina lettere maiuscole/minuscole" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Basque (eu)" -msgstr "Basco (eu)" +#: ../src/ui/dialog/find.cpp:84 +msgid "E_xact match" +msgstr "Abbinamento _preciso" -#: ../src/ui/dialog/inkscape-preferences.cpp:516 -msgid "Belarusian (be)" -msgstr "Bielorusso (be)" +#: ../src/ui/dialog/find.cpp:84 +msgid "Match whole objects only" +msgstr "Abbina solo oggetti completi" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Bulgarian (bg)" -msgstr "Bulgaro (bg)" +#: ../src/ui/dialog/find.cpp:85 +msgid "Include _hidden" +msgstr "Includi _nascosti" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Bengali (bn)" -msgstr "Bengalese (bn)" +#: ../src/ui/dialog/find.cpp:85 +msgid "Include hidden objects in search" +msgstr "Include nella ricerca gli oggetti nascosti" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -#, fuzzy -msgid "Bengali/Bangladesh (bn_BD)" -msgstr "Bengalese (bn)" +#: ../src/ui/dialog/find.cpp:86 +msgid "Include loc_ked" +msgstr "Includi blo_ccati" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Breton (br)" -msgstr "Bretone (br)" +#: ../src/ui/dialog/find.cpp:86 +msgid "Include locked objects in search" +msgstr "Include nella selezione gli oggetti bloccati" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Catalan (ca)" -msgstr "Catalano (ca)" +#: ../src/ui/dialog/find.cpp:88 +msgid "General" +msgstr "Generale" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Valencian Catalan (ca@valencia)" -msgstr "Catalano valenziano (ca@valencia)" +#: ../src/ui/dialog/find.cpp:90 +msgid "_ID" +msgstr "_ID" -#: ../src/ui/dialog/inkscape-preferences.cpp:517 -msgid "Chinese/China (zh_CN)" -msgstr "Cinese/Cina (zh_CN)" +#: ../src/ui/dialog/find.cpp:90 +msgid "Search id name" +msgstr "Cerca nome id" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Chinese/Taiwan (zh_TW)" -msgstr "Cinese/Taiwan (zh_TW)" +#: ../src/ui/dialog/find.cpp:91 +msgid "Attribute _name" +msgstr "_Nome attributo" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Croatian (hr)" -msgstr "Croato (hr)" +#: ../src/ui/dialog/find.cpp:91 +msgid "Search attribute name" +msgstr "Cerca nome attributo" -#: ../src/ui/dialog/inkscape-preferences.cpp:518 -msgid "Czech (cs)" -msgstr "Ceco (cs)" +#: ../src/ui/dialog/find.cpp:92 +msgid "Attri_bute value" +msgstr "Valore attri_buto" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Danish (da)" -msgstr "Danese (da)" +#: ../src/ui/dialog/find.cpp:92 +msgid "Search attribute value" +msgstr "Cerca valore attributo" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Dutch (nl)" -msgstr "Olandese (nl)" +#: ../src/ui/dialog/find.cpp:93 +msgid "_Style" +msgstr "_Stile" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Dzongkha (dz)" -msgstr "Dzongkha (dz)" +#: ../src/ui/dialog/find.cpp:93 +msgid "Search style" +msgstr "Cerca stile" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "German (de)" -msgstr "Tedesco (de)" +#: ../src/ui/dialog/find.cpp:94 +msgid "F_ont" +msgstr "C_arattere" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "Greek (el)" -msgstr "Greco (el)" +#: ../src/ui/dialog/find.cpp:94 +msgid "Search fonts" +msgstr "Cerca caratteri" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "English (en)" -msgstr "Inglese (en)" +#: ../src/ui/dialog/find.cpp:95 +msgid "Properties" +msgstr "ProprietĂ " -#: ../src/ui/dialog/inkscape-preferences.cpp:519 -msgid "English/Australia (en_AU)" -msgstr "Inglese/Australia (en_AU)" +#: ../src/ui/dialog/find.cpp:97 +msgid "All types" +msgstr "Tutti i tipi" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "English/Canada (en_CA)" -msgstr "Inglese/Canada (en_CA)" +#: ../src/ui/dialog/find.cpp:97 +msgid "Search all object types" +msgstr "Cerca oggetti di tutti i tipi" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "English/Great Britain (en_GB)" -msgstr "Inglese/Gran Bretagna (en_GB)" +#: ../src/ui/dialog/find.cpp:98 +msgid "Rectangles" +msgstr "Rettangoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 -msgid "Pig Latin (en_US@piglatin)" -msgstr "Pig Latin (en_US@piglatin)" +#: ../src/ui/dialog/find.cpp:98 +msgid "Search rectangles" +msgstr "Cerca rettangoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Esperanto (eo)" -msgstr "Esperanto (eo)" +#: ../src/ui/dialog/find.cpp:99 +msgid "Ellipses" +msgstr "Ellissi" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Estonian (et)" -msgstr "Estone (et)" +#: ../src/ui/dialog/find.cpp:99 +msgid "Search ellipses, arcs, circles" +msgstr "Cerca ellissi, archi e cerchi" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -#, fuzzy -msgid "Farsi (fa)" -msgstr "Amarico (am)" +#: ../src/ui/dialog/find.cpp:100 +msgid "Stars" +msgstr "Stelle" -#: ../src/ui/dialog/inkscape-preferences.cpp:521 -msgid "Finnish (fi)" -msgstr "Finlandese (fi)" +#: ../src/ui/dialog/find.cpp:100 +msgid "Search stars and polygons" +msgstr "Cerca stelle e poligoni" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "French (fr)" -msgstr "Francese (fr)" +#: ../src/ui/dialog/find.cpp:101 +msgid "Spirals" +msgstr "Spirali" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Irish (ga)" -msgstr "Irlandese (ga)" +#: ../src/ui/dialog/find.cpp:101 +msgid "Search spirals" +msgstr "Cerca spirali" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Galician (gl)" -msgstr "Galiziona (gl)" +#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1736 +msgid "Paths" +msgstr "Percorsi" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Hebrew (he)" -msgstr "Ebreo (he)" +#: ../src/ui/dialog/find.cpp:102 +msgid "Search paths, lines, polylines" +msgstr "Cerca percorsi, linee, poligonali" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Hungarian (hu)" -msgstr "Ungherese (hu)" +#: ../src/ui/dialog/find.cpp:103 +msgid "Texts" +msgstr "Testi" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Indonesian (id)" -msgstr "Indonesiano (id)" +#: ../src/ui/dialog/find.cpp:103 +msgid "Search text objects" +msgstr "Cerca testi" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Italian (it)" -msgstr "Italiano (it)" +#: ../src/ui/dialog/find.cpp:104 +msgid "Groups" +msgstr "Gruppi" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Japanese (ja)" -msgstr "Giapponese (ja)" +#: ../src/ui/dialog/find.cpp:104 +msgid "Search groups" +msgstr "Cerca gruppi" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Khmer (km)" -msgstr "Khmer (km)" +#. TRANSLATORS: "Clones" is a noun indicating type of object to find +#: ../src/ui/dialog/find.cpp:107 +msgctxt "Find dialog" +msgid "Clones" +msgstr "Cloni" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Kinyarwanda (rw)" -msgstr "Kinyarwanda (rw)" +#: ../src/ui/dialog/find.cpp:107 +msgid "Search clones" +msgstr "Cerca cloni" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Korean (ko)" -msgstr "Koreano (ko)" +#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 +#: ../share/extensions/extractimage.inx.h:5 +msgid "Images" +msgstr "Immagini" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Lithuanian (lt)" -msgstr "Lituano (lt)" +#: ../src/ui/dialog/find.cpp:109 +msgid "Search images" +msgstr "Cerca immagini" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -#, fuzzy -msgid "Latvian (lv)" -msgstr "Lituano (lt)" +#: ../src/ui/dialog/find.cpp:110 +msgid "Offsets" +msgstr "Proiezioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 -msgid "Macedonian (mk)" -msgstr "Macedone (mk)" +#: ../src/ui/dialog/find.cpp:110 +msgid "Search offset objects" +msgstr "Cerca proiezioni dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Mongolian (mn)" -msgstr "Mongolo (mn)" +#: ../src/ui/dialog/find.cpp:111 +msgid "Object types" +msgstr "Tipi oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Nepali (ne)" -msgstr "Nepalese (ne)" +#: ../src/ui/dialog/find.cpp:114 +msgid "_Find" +msgstr "_Trova" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Norwegian BokmĂĄl (nb)" -msgstr "Norvegese BokmĂĄl (nb)" +#: ../src/ui/dialog/find.cpp:114 +msgid "Select all objects matching the selection criteria" +msgstr "Cerca oggetti corrispondenti a tutti i campi spuntati" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Norwegian Nynorsk (nn)" -msgstr "Norvegese Nynorsk (nn)" +#: ../src/ui/dialog/find.cpp:115 +msgid "_Replace All" +msgstr "_Sostituisci tutti" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 -msgid "Panjabi (pa)" -msgstr "Panjabi (pa)" +#: ../src/ui/dialog/find.cpp:115 +msgid "Replace all matches" +msgstr "Sostituisci tutte le occorrenze" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Polish (pl)" -msgstr "Polacco (pl)" +#: ../src/ui/dialog/find.cpp:775 +msgid "Nothing to replace" +msgstr "Niente da sostituire" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Portuguese (pt)" -msgstr "Portoghese (pt)" +#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed +#: ../src/ui/dialog/find.cpp:816 +#, c-format +msgid "%d object found (out of %d), %s match." +msgid_plural "%d objects found (out of %d), %s match." +msgstr[0] "" +"%d oggetto trovato (su un totale di %d), corrispondenza %s." +msgstr[1] "" +"%d oggetti trovati (su un totale di %d), corrispondenza %s." -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Portuguese/Brazil (pt_BR)" -msgstr "Portoghese Brasiliano (pt_BR)" +#: ../src/ui/dialog/find.cpp:819 +msgid "exact" +msgstr "esatta" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Romanian (ro)" -msgstr "Rumeno (ro)" +#: ../src/ui/dialog/find.cpp:819 +msgid "partial" +msgstr "parziale" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Russian (ru)" -msgstr "Russo (ru)" +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:822 +msgid "%1 match replaced" +msgid_plural "%1 matches replaced" +msgstr[0] "%1 occorrenza sostituita" +msgstr[1] "%1 occorrenze sostituite" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Serbian (sr)" -msgstr "Serbo (sr)" +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:826 +msgid "%1 object found" +msgid_plural "%1 objects found" +msgstr[0] "%1 oggetto trovato" +msgstr[1] "%1 oggetti trovati" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Serbian in Latin script (sr@latin)" -msgstr "Serbo in caratteri latini (sr@latin)" +#: ../src/ui/dialog/find.cpp:837 +msgid "Replace text or property" +msgstr "Sostituisci testo o proprietĂ " -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Slovak (sk)" -msgstr "Slovacco (sk)" +#: ../src/ui/dialog/find.cpp:841 +msgid "Nothing found" +msgstr "Nessuno trovato" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Slovenian (sl)" -msgstr "Sloveno (sl)" +#: ../src/ui/dialog/find.cpp:846 +msgid "No objects found" +msgstr "Nessun oggetto trovato" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Spanish (es)" -msgstr "Spagnolo (es)" +#: ../src/ui/dialog/find.cpp:867 +msgid "Select an object type" +msgstr "Seleziona un tipo di oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Spanish/Mexico (es_MX)" -msgstr "Spagnolo messicano (es_MX)" +#: ../src/ui/dialog/find.cpp:885 +msgid "Select a property" +msgstr "Seleziona una proprietĂ " -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Swedish (sv)" -msgstr "Svedese (sv)" +#: ../src/ui/dialog/font-substitution.cpp:87 +msgid "" +"\n" +"Some fonts are not available and have been substituted." +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Telugu (te_IN)" +#: ../src/ui/dialog/font-substitution.cpp:90 +msgid "Font substitution" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Thai (th)" -msgstr "Tailandese (th)" +#: ../src/ui/dialog/font-substitution.cpp:109 +#, fuzzy +msgid "Select all the affected items" +msgstr "Duplica gli oggetti selezionati" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Turkish (tr)" -msgstr "Turco (tr)" +#: ../src/ui/dialog/font-substitution.cpp:114 +msgid "Don't show this warning again" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Ukrainian (uk)" -msgstr "Ucraino (uk)" +#: ../src/ui/dialog/font-substitution.cpp:255 +msgid "Font '%1' substituted with '%2'" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Vietnamese (vi)" -msgstr "Vietnamita (vi)" +#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 +#, fuzzy +msgid "all" +msgstr "Stretta" -#: ../src/ui/dialog/inkscape-preferences.cpp:559 -msgid "Language (requires restart):" -msgstr "Lingua (richiede riapertura):" +#: ../src/ui/dialog/glyphs.cpp:61 +msgid "common" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:560 -msgid "Set the language for menus and number formats" -msgstr "Imposta la lingua per i menu e il formato dei numeri" +#: ../src/ui/dialog/glyphs.cpp:62 +msgid "inherited" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Large" -msgstr "Grande" +#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 +#, fuzzy +msgid "Arabic" +msgstr "Arabo (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Small" -msgstr "Piccola" +#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 +#, fuzzy +msgid "Armenian" +msgstr "Armeno (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 -msgid "Smaller" -msgstr "PiĂą piccola" +#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 +#, fuzzy +msgid "Bengali" +msgstr "Bengalese (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:567 +#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 #, fuzzy -msgid "Toolbox icon size:" -msgstr "Dimensione icone barra degli strumenti" +msgid "Bopomofo" +msgstr "Riverbero" -#: ../src/ui/dialog/inkscape-preferences.cpp:568 -msgid "Set the size for the tool icons (requires restart)" -msgstr "" -"Imposta la dimensione delle icone degli strumenti (richiede riapertura)" +#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 +#, fuzzy +msgid "Cherokee" +msgstr "Cromatura" -#: ../src/ui/dialog/inkscape-preferences.cpp:571 +#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 #, fuzzy -msgid "Control bar icon size:" -msgstr "Dimensione icone barra dei controlli" +msgid "Coptic" +msgstr "Copiato" -#: ../src/ui/dialog/inkscape-preferences.cpp:572 -msgid "" -"Set the size for the icons in tools' control bars to use (requires restart)" +#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 +#: ../share/extensions/hershey.inx.h:22 +msgid "Cyrillic" msgstr "" -"Imposta la dimensione delle icone nella barra dei controlli degli strumenti " -"(richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:575 +#: ../src/ui/dialog/glyphs.cpp:70 #, fuzzy -msgid "Secondary toolbar icon size:" -msgstr "Dimensione icone barra secondaria" +msgid "Deseret" +msgstr "D_eseleziona" -#: ../src/ui/dialog/inkscape-preferences.cpp:576 -msgid "" -"Set the size for the icons in secondary toolbars to use (requires restart)" +#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 +msgid "Devanagari" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 +msgid "Ethiopic" msgstr "" -"Imposta la dimensione delle icone nella barre secondarie (richiede " -"riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:579 +#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 #, fuzzy -msgid "Work-around color sliders not drawing" -msgstr "Evita problemi di visualizzazione barre di colore." +msgid "Georgian" +msgstr "Origine guida" -#: ../src/ui/dialog/inkscape-preferences.cpp:581 +#: ../src/ui/dialog/glyphs.cpp:74 #, fuzzy -msgid "" -"When on, will attempt to work around bugs in certain GTK themes drawing " -"color sliders" +msgid "Gothic" +msgstr "Accrescimento" + +#: ../src/ui/dialog/glyphs.cpp:75 +#, fuzzy +msgid "Greek" +msgstr "Verde" + +#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 +msgid "Gujarati" msgstr "" -"Quando attivo, cerca di evitare i problemi nella visualizzazione delle barre " -"di colore dovuti ad alcuni temi GTK." -#: ../src/ui/dialog/inkscape-preferences.cpp:586 -msgid "Clear list" -msgstr "Pulisci lista" +#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 +msgid "Gurmukhi" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:589 +#: ../src/ui/dialog/glyphs.cpp:78 #, fuzzy -msgid "Maximum documents in Open _Recent:" -msgstr "Numero massimo di documenti recenti:" +msgid "Han" +msgstr "Maniglia" -#: ../src/ui/dialog/inkscape-preferences.cpp:590 -msgid "" -"Set the maximum length of the Open Recent list in the File menu, or clear " -"the list" -msgstr "" -"Imposta la lunghezza massima della lista Apri recente del menu File, o " -"pulisce la lista" +#: ../src/ui/dialog/glyphs.cpp:79 +#, fuzzy +msgid "Hangul" +msgstr "angolo" -#: ../src/ui/dialog/inkscape-preferences.cpp:593 +#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 #, fuzzy -msgid "_Zoom correction factor (in %):" -msgstr "Fattore di correzione ingrandimento (in %):" +msgid "Hebrew" +msgstr "Ebreo (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:594 -msgid "" -"Adjust the slider until the length of the ruler on your screen matches its " -"real length. This information is used when zooming to 1:1, 1:2, etc., to " -"display objects in their true sizes" +#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 +msgid "Hiragana" msgstr "" -"Aggiustare il selettore finchĂ© la lunghezza del righello a schermo non " -"combacia con quella reale. Questa informazione verrĂ  usata quando si " -"ridimensiona 1:1, 1:2 o simili, per visualizzare gli oggetti nelle loro " -"dimensioni reali" -#: ../src/ui/dialog/inkscape-preferences.cpp:597 -msgid "Enable dynamic relayout for incomplete sections" +#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 +msgid "Kannada" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 -msgid "" -"When on, will allow dynamic layout of components that are not completely " -"finished being refactored" +#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 +#, fuzzy +msgid "Katakana" +msgstr "Catalano (ca)" + +#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 +#, fuzzy +msgid "Khmer" +msgstr "Khmer (km)" + +#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 +#, fuzzy +msgid "Lao" +msgstr "Aspetto" + +#: ../src/ui/dialog/glyphs.cpp:86 +#, fuzzy +msgid "Latin" +msgstr "Satinato" + +#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 +msgid "Malayalam" msgstr "" -#. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 #, fuzzy -msgid "Show filter primitives infobox (requires restart)" -msgstr "Mostra le informazioni sulle primitive dei filtri" +msgid "Mongolian" +msgstr "Mongolo (mn)" + +#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 +msgid "Myanmar" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:604 -#, fuzzy -msgid "" -"Show icons and descriptions for the filter primitives available at the " -"filter effects dialog" +#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 +msgid "Ogham" msgstr "" -"Mostra le icone e le descrizioni per le primitive dei filtri disponibili " -"nella finestra dei filtri." -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 +#: ../src/ui/dialog/glyphs.cpp:91 #, fuzzy -msgid "Icons only" -msgstr "Colore delle linee guida" +msgid "Old Italic" +msgstr "Corsivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 -#, fuzzy -msgid "Text only" -msgstr "Input testo" +#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 +msgid "Oriya" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 -#: ../src/ui/dialog/inkscape-preferences.cpp:615 +#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 #, fuzzy -msgid "Icons and text" -msgstr "Dentro e fuori" +msgid "Runic" +msgstr "Arrotondamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:612 +#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 #, fuzzy -msgid "Dockbar style (requires restart):" -msgstr "Lingua (richiede riapertura):" +msgid "Sinhala" +msgstr "Singolo" -#: ../src/ui/dialog/inkscape-preferences.cpp:613 -msgid "" -"Selects whether the vertical bars on the dockbar will show text labels, " -"icons, or both" +#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 +msgid "Syriac" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:620 +#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 #, fuzzy -msgid "Switcher style (requires restart):" -msgstr "(richiede riapertura)" +msgid "Tamil" +msgstr "Piastrella" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 -msgid "" -"Selects whether the dockbar switcher will show text labels, icons, or both" +#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 +msgid "Telugu" msgstr "" -#. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:625 -msgid "Save and restore window geometry for each document" -msgstr "Salva e imposta le dimensioni della finestra per ogni documento" +#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 +#, fuzzy +msgid "Thaana" +msgstr "Tartan" -#: ../src/ui/dialog/inkscape-preferences.cpp:626 -msgid "Remember and use last window's geometry" -msgstr "Salva e riutilizza la dimensione dell'ultima finestra" +#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 +#, fuzzy +msgid "Thai" +msgstr "Tailandese (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 -msgid "Don't save window geometry" -msgstr "Non salvare la dimensione della finestra" +#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 +#, fuzzy +msgid "Tibetan" +msgstr "Tartan" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 -msgid "Save and restore dialogs status" +#: ../src/ui/dialog/glyphs.cpp:101 +msgid "Canadian Aboriginal" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:630 -#: ../src/ui/dialog/inkscape-preferences.cpp:666 -msgid "Don't save dialogs status" +#: ../src/ui/dialog/glyphs.cpp:102 +msgid "Yi" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:632 -#: ../src/ui/dialog/inkscape-preferences.cpp:674 -msgid "Dockable" -msgstr "Fissabile" +#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 +#, fuzzy +msgid "Tagalog" +msgstr "Etichetta" -#: ../src/ui/dialog/inkscape-preferences.cpp:636 -msgid "Native open/save dialogs" +#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 +msgid "Hanunoo" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 -msgid "GTK open/save dialogs" -msgstr "" +#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 +#, fuzzy +msgid "Buhid" +msgstr "guida" -#: ../src/ui/dialog/inkscape-preferences.cpp:639 -msgid "Dialogs are hidden in taskbar" -msgstr "Le sottofinestre vengono nascoste nella barra" +#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 +msgid "Tagbanwa" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/glyphs.cpp:107 #, fuzzy -msgid "Save and restore documents viewport" -msgstr "Salva e imposta le dimensioni della finestra per ogni documento" +msgid "Braille" +msgstr "Parallelo" -#: ../src/ui/dialog/inkscape-preferences.cpp:641 -msgid "Zoom when window is resized" -msgstr "Adatta al ridimensionamento della finestra" +#: ../src/ui/dialog/glyphs.cpp:108 +msgid "Cypriot" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 -msgid "Show close button on dialogs" -msgstr "Mostra il bottone di chiusura nelle sottofinestre" +#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 +msgid "Limbu" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:645 -msgid "Aggressive" -msgstr "Aggressivo" +#: ../src/ui/dialog/glyphs.cpp:110 +msgid "Osmanya" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:648 +#: ../src/ui/dialog/glyphs.cpp:111 #, fuzzy -msgid "Maximized" -msgstr "Ottimizza" +msgid "Shavian" +msgstr "Ombreggiatura" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/glyphs.cpp:112 #, fuzzy -msgid "Default window size:" -msgstr "Impostazioni predefinite griglia" +msgid "Linear B" +msgstr "Lineare" -#: ../src/ui/dialog/inkscape-preferences.cpp:653 +#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 #, fuzzy -msgid "Set the default window size" -msgstr "Crea gradiente predefinito" +msgid "Tai Le" +msgstr "Piastrella" + +#: ../src/ui/dialog/glyphs.cpp:114 +msgid "Ugaritic" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 +#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 #, fuzzy -msgid "Saving window geometry (size and position)" -msgstr "Salvataggio geometria finestra (dimensione e posizione):" +msgid "New Tai Lue" +msgstr "A capo" -#: ../src/ui/dialog/inkscape-preferences.cpp:658 -msgid "Let the window manager determine placement of all windows" +#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 +#, fuzzy +msgid "Buginese" +msgstr "Linee" + +#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 +msgid "Glagolitic" msgstr "" -"Permette al gestore di finestre di determinare la posizione di tutte le " -"finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 -msgid "" -"Remember and use the last window's geometry (saves geometry to user " -"preferences)" +#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 +msgid "Tifinagh" msgstr "" -"Ricorda e usa l'ultima geometria della finestra (salva la geometria nelle " -"preferenze dell'utente)" -#: ../src/ui/dialog/inkscape-preferences.cpp:662 -msgid "" -"Save and restore window geometry for each document (saves geometry in the " -"document)" +#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 +msgid "Syloti Nagri" msgstr "" -"Salva e reimposta la geometria della finestra di ogni documento (salva la " -"geometria nel documento)" -#: ../src/ui/dialog/inkscape-preferences.cpp:664 +#: ../src/ui/dialog/glyphs.cpp:120 #, fuzzy -msgid "Saving dialogs status" -msgstr "Mostra la finestra all'avvio" +msgid "Old Persian" +msgstr "Collegamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:668 -msgid "" -"Save and restore dialogs status (the last open windows dialogs are saved " -"when it closes)" +#: ../src/ui/dialog/glyphs.cpp:121 +msgid "Kharoshthi" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 +#: ../src/ui/dialog/glyphs.cpp:122 #, fuzzy -msgid "Dialog behavior (requires restart)" -msgstr "Comportamento sottofinestre (richiede riapertura):" +msgid "unassigned" +msgstr "Assegna" -#: ../src/ui/dialog/inkscape-preferences.cpp:678 +#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 #, fuzzy -msgid "Desktop integration" -msgstr "Destinazione" - -#: ../src/ui/dialog/inkscape-preferences.cpp:680 -msgid "Use Windows like open and save dialogs" -msgstr "" +msgid "Balinese" +msgstr "linee" -#: ../src/ui/dialog/inkscape-preferences.cpp:682 -msgid "Use GTK open and save dialogs " +#: ../src/ui/dialog/glyphs.cpp:124 +msgid "Cuneiform" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:686 -msgid "Dialogs on top:" -msgstr "Risalto delle sottofinestre:" +#: ../src/ui/dialog/glyphs.cpp:125 +#, fuzzy +msgid "Phoenician" +msgstr "Pastello" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 -msgid "Dialogs are treated as regular windows" -msgstr "Le sottofinestre sono trattate come finestre normali" +#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 +msgid "Phags-pa" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 -msgid "Dialogs stay on top of document windows" -msgstr "Le sottofinestre stanno davanti alla finestra del documento" +#: ../src/ui/dialog/glyphs.cpp:127 +msgid "N'Ko" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 -msgid "Same as Normal but may work better with some window managers" -msgstr "Come Normale, ma funziona meglio con alcuni gestori di finestre" +#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 +msgid "Kayah Li" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:696 -#, fuzzy -msgid "Dialog Transparency" -msgstr "Trasparenza finestre:" +#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 +msgid "Lepcha" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 #, fuzzy -msgid "_Opacity when focused:" -msgstr "OpacitĂ  con il focus:" +msgid "Rejang" +msgstr "Rettangolo" -#: ../src/ui/dialog/inkscape-preferences.cpp:700 +#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 #, fuzzy -msgid "Opacity when _unfocused:" -msgstr "OpacitĂ  senza il focus:" +msgid "Sundanese" +msgstr "Domenica" -#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 #, fuzzy -msgid "_Time of opacity change animation:" -msgstr "Durata dell'animazione di cambio opacitĂ :" +msgid "Saurashtra" +msgstr "Satura" -#: ../src/ui/dialog/inkscape-preferences.cpp:705 +#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 #, fuzzy -msgid "Miscellaneous" -msgstr "Varie:" +msgid "Cham" +msgstr "Cromatura" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 -msgid "Whether dialog windows are to be hidden in the window manager taskbar" +#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 +msgid "Ol Chiki" msgstr "" -"Le sottofinestre non verranno mostrate nella barra del gestore di finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:711 -msgid "" -"Zoom drawing when document window is resized, to keep the same area visible " -"(this is the default which can be changed in any window using the button " -"above the right scrollbar)" +#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 +msgid "Vai" msgstr "" -"Adatta il disegno quando la finestra del documento viene ridimensionata, per " -"mantenere la stessa area visibile (questo sarĂ  il comportamento " -"preimpostato, potrĂ  essere cambiato per ciascuna finestra usando il bottone " -"sopra la barra di scorrimento di destra)" -#: ../src/ui/dialog/inkscape-preferences.cpp:713 -msgid "" -"Save documents viewport (zoom and panning position). Useful to turn off when " -"sharing version controlled files." -msgstr "" +#: ../src/ui/dialog/glyphs.cpp:136 +#, fuzzy +msgid "Carian" +msgstr "Tartan" -#: ../src/ui/dialog/inkscape-preferences.cpp:715 -msgid "Whether dialog windows have a close button (requires restart)" -msgstr "" -"Determina se le sottofinestre hanno il bottone di chiusura (richiede " -"riapertura)" +#: ../src/ui/dialog/glyphs.cpp:137 +#, fuzzy +msgid "Lycian" +msgstr "Linea" -#: ../src/ui/dialog/inkscape-preferences.cpp:716 -msgid "Windows" -msgstr "Finestre" +#: ../src/ui/dialog/glyphs.cpp:138 +#, fuzzy +msgid "Lydian" +msgstr "Mediana" -#. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:719 -msgid "Line color when zooming out" +#: ../src/ui/dialog/glyphs.cpp:153 +msgid "Basic Latin" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/ui/dialog/glyphs.cpp:154 #, fuzzy -msgid "The gridlines will be shown in minor grid line color" -msgstr "" -"Se impostate e rimpicciolito, le linee della griglia saranno mostrate con " -"colori normali invece che con quelli delle linee principali." +msgid "Latin-1 Supplement" +msgstr "Segmento" -#: ../src/ui/dialog/inkscape-preferences.cpp:724 -#, fuzzy -msgid "The gridlines will be shown in major grid line color" +#: ../src/ui/dialog/glyphs.cpp:155 +msgid "Latin Extended-A" msgstr "" -"Se impostate e rimpicciolito, le linee della griglia saranno mostrate con " -"colori normali invece che con quelli delle linee principali." - -#: ../src/ui/dialog/inkscape-preferences.cpp:726 -msgid "Default grid settings" -msgstr "Impostazioni predefinite griglia" - -#: ../src/ui/dialog/inkscape-preferences.cpp:732 -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -msgid "Grid units:" -msgstr "UnitĂ  della griglia:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:737 -#: ../src/ui/dialog/inkscape-preferences.cpp:762 -msgid "Origin X:" -msgstr "Origine X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -msgid "Origin Y:" -msgstr "Origine Y:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:743 -msgid "Spacing X:" -msgstr "Spaziatura X:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 -msgid "Spacing Y:" -msgstr "Spaziatura Y:" +#: ../src/ui/dialog/glyphs.cpp:156 +msgid "Latin Extended-B" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/glyphs.cpp:157 #, fuzzy -msgid "Minor grid line color:" -msgstr "Colore delle linee principali delle griglia:" +msgid "IPA Extensions" +msgstr "Este_nsioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -msgid "Color used for normal grid lines" -msgstr "Colore usato per le linee semplici della griglia" +#: ../src/ui/dialog/glyphs.cpp:158 +#, fuzzy +msgid "Spacing Modifier Letters" +msgstr "Spaziatura tra le lettere" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:749 -#: ../src/ui/dialog/inkscape-preferences.cpp:773 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 -msgid "Major grid line color:" -msgstr "Colore delle linee principali delle griglia:" +#: ../src/ui/dialog/glyphs.cpp:159 +msgid "Combining Diacritical Marks" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:749 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 -msgid "Color used for major (highlighted) grid lines" -msgstr "Colore usato per le linee principali (evidenziate) della griglia" +#: ../src/ui/dialog/glyphs.cpp:160 +msgid "Greek and Coptic" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:751 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 -msgid "Major grid line every:" -msgstr "Linee principali della griglia ogni:" +#: ../src/ui/dialog/glyphs.cpp:162 +msgid "Cyrillic Supplement" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -msgid "Show dots instead of lines" -msgstr "Visualizza punti invece di linee" +#: ../src/ui/dialog/glyphs.cpp:167 +msgid "Arabic Supplement" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:753 -msgid "If set, display dots at gridpoints instead of gridlines" +#: ../src/ui/dialog/glyphs.cpp:169 +msgid "NKo" msgstr "" -"Se impostato, visualizza i punti di intersezione delle griglie invece delle " -"linee" -#: ../src/ui/dialog/inkscape-preferences.cpp:834 +#: ../src/ui/dialog/glyphs.cpp:170 #, fuzzy -msgid "Input/Output" -msgstr "Output" +msgid "Samaritan" +msgstr "Tartan" -#: ../src/ui/dialog/inkscape-preferences.cpp:837 -msgid "Use current directory for \"Save As ...\"" -msgstr "Usa la cartella attuale per «Salva come...»" +#: ../src/ui/dialog/glyphs.cpp:186 +msgid "Hangul Jamo" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:839 -#, fuzzy -msgid "" -"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " -"always open in the directory where the currently open document is; when it's " -"off, each will open in the directory where you last saved a file using it" +#: ../src/ui/dialog/glyphs.cpp:188 +msgid "Ethiopic Supplement" msgstr "" -"Quando questa opzione è attiva, la finestra «Salva come...» verrĂ  aperta " -"alla cartella in cui risiede il documento aperto. Se disattivata, verrĂ  " -"all'ultima cartella in cui è stato salvato in questa maniera un file." -#: ../src/ui/dialog/inkscape-preferences.cpp:841 -msgid "Add label comments to printing output" -msgstr "Aggiungi i commenti all'output di stampa" +#: ../src/ui/dialog/glyphs.cpp:190 +msgid "Unified Canadian Aboriginal Syllabics" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:843 -msgid "" -"When on, a comment will be added to the raw print output, marking the " -"rendered output for an object with its label" +#: ../src/ui/dialog/glyphs.cpp:199 +msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" -"Quando impostato, viene aggiunto un commento all'output di stampa grezzo, in " -"modo da evidenziare la visualizzazione di stampa di un oggetto con la " -"propria etichetta" -#: ../src/ui/dialog/inkscape-preferences.cpp:845 +#: ../src/ui/dialog/glyphs.cpp:203 #, fuzzy -msgid "Add default metadata to new documents" -msgstr "Metadati predefiniti che saranno usati per i nuovi documenti:" +msgid "Khmer Symbols" +msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:847 -msgid "" -"Add default metadata to new documents. Default metadata can be set from " -"Document Properties->Metadata." +#: ../src/ui/dialog/glyphs.cpp:205 +msgid "Tai Tham" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:851 +#: ../src/ui/dialog/glyphs.cpp:210 #, fuzzy -msgid "_Grab sensitivity:" -msgstr "Area di azione:" +msgid "Vedic Extensions" +msgstr "Este_nsioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:851 +#: ../src/ui/dialog/glyphs.cpp:211 #, fuzzy -msgid "pixels (requires restart)" -msgstr "(richiede riapertura)" +msgid "Phonetic Extensions" +msgstr "Informazioni sulle e_stensioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:852 -msgid "" -"How close on the screen you need to be to an object to be able to grab it " -"with mouse (in screen pixels)" +#: ../src/ui/dialog/glyphs.cpp:212 +msgid "Phonetic Extensions Supplement" msgstr "" -"La distanza in pixel a cui si può essere da un oggetto per poterlo attivare " -"col mouse (in pixel dello schermo)" - -#: ../src/ui/dialog/inkscape-preferences.cpp:854 -#, fuzzy -msgid "_Click/drag threshold:" -msgstr "Soglia per il clic o spostamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:854 -#: ../src/ui/dialog/inkscape-preferences.cpp:1196 -#: ../src/ui/dialog/inkscape-preferences.cpp:1200 -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 -msgid "pixels" -msgstr "pixel" +#: ../src/ui/dialog/glyphs.cpp:213 +msgid "Combining Diacritical Marks Supplement" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:855 -msgid "" -"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" +#: ../src/ui/dialog/glyphs.cpp:214 +msgid "Latin Extended Additional" msgstr "" -"Spostamento in pixel massimo col mouse da considerarsi ancora selezione e " -"non spostamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:858 -#, fuzzy -msgid "_Handle size:" -msgstr "Maniglia" +#: ../src/ui/dialog/glyphs.cpp:215 +msgid "Greek Extended" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:859 +#: ../src/ui/dialog/glyphs.cpp:216 #, fuzzy -msgid "Set the relative size of node handles" -msgstr "Sposta maniglie dei nodi" +msgid "General Punctuation" +msgstr "Funzione verde" -#: ../src/ui/dialog/inkscape-preferences.cpp:861 -msgid "Use pressure-sensitive tablet (requires restart)" -msgstr "Utilizza una tavoletta con sensore di pressione (richiede riapertura)" +#: ../src/ui/dialog/glyphs.cpp:217 +msgid "Superscripts and Subscripts" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:863 -msgid "" -"Use the capabilities of a tablet or other pressure-sensitive device. Disable " -"this only if you have problems with the tablet (you can still use it as a " -"mouse)" +#: ../src/ui/dialog/glyphs.cpp:218 +msgid "Currency Symbols" msgstr "" -"Sfrutta le caratteristiche di una tavoletta o di altri dispositivi a " -"pressione. Disabilitare solo in caso di problemi con la tavoletta (che " -"continuerĂ  a funzionare come un mouse)" -#: ../src/ui/dialog/inkscape-preferences.cpp:865 -msgid "Switch tool based on tablet device (requires restart)" +#: ../src/ui/dialog/glyphs.cpp:219 +msgid "Combining Diacritical Marks for Symbols" msgstr "" -"Cambia strumento in base al dispositivo usato sulla tavoletta (richiede " -"riapertura):" -#: ../src/ui/dialog/inkscape-preferences.cpp:867 -msgid "" -"Change tool as different devices are used on the tablet (pen, eraser, mouse)" +#: ../src/ui/dialog/glyphs.cpp:220 +msgid "Letterlike Symbols" msgstr "" -"Cambia lo strumento quando dispositivi diversi vengono usati sulla tavoletta " -"(penna, gomma, mouse)" -#: ../src/ui/dialog/inkscape-preferences.cpp:868 +#: ../src/ui/dialog/glyphs.cpp:221 #, fuzzy -msgid "Input devices" -msgstr "Dispositivi di _input..." +msgid "Number Forms" +msgstr "Numero di righe" -#. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:871 -msgid "Use named colors" -msgstr "Usa nomi colori" +#: ../src/ui/dialog/glyphs.cpp:222 +#, fuzzy +msgid "Arrows" +msgstr "Errori" -#: ../src/ui/dialog/inkscape-preferences.cpp:872 -msgid "" -"If set, write the CSS name of the color when available (e.g. 'red' or " -"'magenta') instead of the numeric value" +#: ../src/ui/dialog/glyphs.cpp:223 +msgid "Mathematical Operators" msgstr "" -"quando impostato, scrive il nome CSS del colore se disponibile (es. «red» o " -"«magenta») invece del valore numerico" - -#: ../src/ui/dialog/inkscape-preferences.cpp:874 -msgid "XML formatting" -msgstr "Formattazione XML" - -#: ../src/ui/dialog/inkscape-preferences.cpp:876 -msgid "Inline attributes" -msgstr "Attributi inline" -#: ../src/ui/dialog/inkscape-preferences.cpp:877 -msgid "Put attributes on the same line as the element tag" -msgstr "Mette gli attributi sulla stessa riga del tag dell'elemento" +#: ../src/ui/dialog/glyphs.cpp:224 +#, fuzzy +msgid "Miscellaneous Technical" +msgstr "Varie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 +#: ../src/ui/dialog/glyphs.cpp:225 #, fuzzy -msgid "_Indent, spaces:" -msgstr "Indentazione, spazi:" +msgid "Control Pictures" +msgstr "Contributori" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 -msgid "" -"The number of spaces to use for indenting nested elements; set to 0 for no " -"indentation" +#: ../src/ui/dialog/glyphs.cpp:226 +msgid "Optical Character Recognition" msgstr "" -"Numero di spazi usati per l'indentazione di elementi annidati; impostare a " -"zero per non avere indentazione" - -#: ../src/ui/dialog/inkscape-preferences.cpp:882 -msgid "Path data" -msgstr "Dati tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -msgid "Absolute" +#: ../src/ui/dialog/glyphs.cpp:227 +msgid "Enclosed Alphanumerics" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 +#: ../src/ui/dialog/glyphs.cpp:228 #, fuzzy -msgid "Relative" -msgstr "Relativo a: " - -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 -msgid "Optimized" -msgstr "Ottimizza" +msgid "Box Drawing" +msgstr "Disegno" -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -msgid "Path string format:" +#: ../src/ui/dialog/glyphs.cpp:229 +msgid "Block Elements" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -msgid "" -"Path data should be written: only with absolute coordinates, only with " -"relative coordinates, or optimized for string length (mixed absolute and " -"relative coordinates)" +#: ../src/ui/dialog/glyphs.cpp:230 +msgid "Geometric Shapes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:891 -msgid "Force repeat commands" -msgstr "Forza ripetizione comandi" +#: ../src/ui/dialog/glyphs.cpp:231 +#, fuzzy +msgid "Miscellaneous Symbols" +msgstr "Varie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:892 -msgid "" -"Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " -"of 'L 1,2 3,4')" +#: ../src/ui/dialog/glyphs.cpp:232 +msgid "Dingbats" msgstr "" -"Forza la ripetizione degli stessi comandi di tracciato (per esempio 'L 1,2 L " -"3,4' invece di 'L 1,2 3,4')" -#: ../src/ui/dialog/inkscape-preferences.cpp:894 -msgid "Numbers" -msgstr "Numeri" - -#: ../src/ui/dialog/inkscape-preferences.cpp:897 +#: ../src/ui/dialog/glyphs.cpp:233 #, fuzzy -msgid "_Numeric precision:" -msgstr "Precisione numerica:" +msgid "Miscellaneous Mathematical Symbols-A" +msgstr "Trucchi vari" -#: ../src/ui/dialog/inkscape-preferences.cpp:897 -msgid "Significant figures of the values written to the SVG file" +#: ../src/ui/dialog/glyphs.cpp:234 +msgid "Supplemental Arrows-A" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 +#: ../src/ui/dialog/glyphs.cpp:235 #, fuzzy -msgid "Minimum _exponent:" -msgstr "Messimo esponente:" +msgid "Braille Patterns" +msgstr "Muovi motivi" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 -#, fuzzy -msgid "" -"The smallest number written to SVG is 10 to the power of this exponent; " -"anything smaller is written as zero" +#: ../src/ui/dialog/glyphs.cpp:236 +msgid "Supplemental Arrows-B" msgstr "" -"Il piĂą piccolo numero scrivibile su SVG è 10 elevato a questa potenza; " -"qualsiasi cosa piĂą piccola viene approssimata a zero." -#. Code to add controls for attribute checking options -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:905 -msgid "Improper Attributes Actions" +#: ../src/ui/dialog/glyphs.cpp:237 +#, fuzzy +msgid "Miscellaneous Mathematical Symbols-B" +msgstr "Trucchi vari" + +#: ../src/ui/dialog/glyphs.cpp:238 +msgid "Supplemental Mathematical Operators" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:907 -#: ../src/ui/dialog/inkscape-preferences.cpp:915 -#: ../src/ui/dialog/inkscape-preferences.cpp:923 +#: ../src/ui/dialog/glyphs.cpp:239 #, fuzzy -msgid "Print warnings" -msgstr "Margini di stampa" +msgid "Miscellaneous Symbols and Arrows" +msgstr "Trucchi vari" -#: ../src/ui/dialog/inkscape-preferences.cpp:908 -msgid "" -"Print warning if invalid or non-useful attributes found. Database files " -"located in inkscape_data_dir/attributes." +#: ../src/ui/dialog/glyphs.cpp:241 +msgid "Latin Extended-C" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:909 +#: ../src/ui/dialog/glyphs.cpp:243 #, fuzzy -msgid "Remove attributes" -msgstr "Imposta attributo" +msgid "Georgian Supplement" +msgstr "Posizione ingranaggi" -#: ../src/ui/dialog/inkscape-preferences.cpp:910 -msgid "Delete invalid or non-useful attributes from element tag" +#: ../src/ui/dialog/glyphs.cpp:245 +msgid "Ethiopic Extended" msgstr "" -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:913 -msgid "Inappropriate Style Properties Actions" +#: ../src/ui/dialog/glyphs.cpp:246 +msgid "Cyrillic Extended-A" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 -msgid "" -"Print warning if inappropriate style properties found (i.e. 'font-family' " -"set on a ). Database files located in inkscape_data_dir/attributes." +#: ../src/ui/dialog/glyphs.cpp:247 +msgid "Supplemental Punctuation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 -#: ../src/ui/dialog/inkscape-preferences.cpp:925 -#, fuzzy -msgid "Remove style properties" -msgstr "Mostra le proprietĂ  di questo triangolo" - -#: ../src/ui/dialog/inkscape-preferences.cpp:918 -#, fuzzy -msgid "Delete inappropriate style properties" -msgstr "Imposta proprietĂ  delle guide" - -#. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:921 -msgid "Non-useful Style Properties Actions" +#: ../src/ui/dialog/glyphs.cpp:248 +msgid "CJK Radicals Supplement" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:924 -msgid "" -"Print warning if redundant style properties found (i.e. if a property has " -"the default value and a different value is not inherited or if value is the " -"same as would be inherited). Database files located in inkscape_data_dir/" -"attributes." +#: ../src/ui/dialog/glyphs.cpp:249 +msgid "Kangxi Radicals" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:926 -#, fuzzy -msgid "Delete redundant style properties" -msgstr "Imposta proprietĂ  delle guide" - -#: ../src/ui/dialog/inkscape-preferences.cpp:928 -msgid "Check Attributes and Style Properties on" +#: ../src/ui/dialog/glyphs.cpp:250 +msgid "Ideographic Description Characters" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:930 -#, fuzzy -msgid "Reading" -msgstr "Ombreggiatura" +#: ../src/ui/dialog/glyphs.cpp:251 +msgid "CJK Symbols and Punctuation" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:931 -msgid "" -"Check attributes and style properties on reading in SVG files (including " -"those internal to Inkscape which will slow down startup)" +#: ../src/ui/dialog/glyphs.cpp:255 +msgid "Hangul Compatibility Jamo" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 -#, fuzzy -msgid "Editing" -msgstr "_Modifica" +#: ../src/ui/dialog/glyphs.cpp:256 +msgid "Kanbun" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 -msgid "" -"Check attributes and style properties while editing SVG files (may slow down " -"Inkscape, mostly useful for debugging)" +#: ../src/ui/dialog/glyphs.cpp:257 +msgid "Bopomofo Extended" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:934 +#: ../src/ui/dialog/glyphs.cpp:258 #, fuzzy -msgid "Writing" -msgstr "Script" +msgid "CJK Strokes" +msgstr "Contorni" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 -msgid "Check attributes and style properties on writing out SVG files" +#: ../src/ui/dialog/glyphs.cpp:259 +msgid "Katakana Phonetic Extensions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 -msgid "SVG output" -msgstr "Output SVG" - -#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Perceptual" -msgstr "Percettivo" - -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Relative Colorimetric" -msgstr "Colorimetrico relativo" - -#: ../src/ui/dialog/inkscape-preferences.cpp:943 -msgid "Absolute Colorimetric" -msgstr "Colorimetrico assoluto" +#: ../src/ui/dialog/glyphs.cpp:260 +msgid "Enclosed CJK Letters and Months" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:947 -msgid "(Note: Color management has been disabled in this build)" -msgstr "(Nota: la gestione del colore è stata disabilitata in questa versione)" +#: ../src/ui/dialog/glyphs.cpp:261 +msgid "CJK Compatibility" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 -msgid "Display adjustment" -msgstr "Correzione display" +#: ../src/ui/dialog/glyphs.cpp:262 +msgid "CJK Unified Ideographs Extension A" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:961 -#, c-format -msgid "" -"The ICC profile to use to calibrate display output.\n" -"Searched directories:%s" +#: ../src/ui/dialog/glyphs.cpp:263 +msgid "Yijing Hexagram Symbols" msgstr "" -"Il profilo ICC da usare per calibrare l'output del display.\n" -"Cartelle di ricerca:%s" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 -msgid "Display profile:" -msgstr "Profilo display:" +#: ../src/ui/dialog/glyphs.cpp:264 +msgid "CJK Unified Ideographs" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 -msgid "Retrieve profile from display" -msgstr "Ottieni profilo dal display" +#: ../src/ui/dialog/glyphs.cpp:265 +msgid "Yi Syllables" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:970 -#, fuzzy -msgid "Retrieve profiles from those attached to displays via XICC" -msgstr "Ottieni i profili relativi ai display tramite XICC." +#: ../src/ui/dialog/glyphs.cpp:266 +msgid "Yi Radicals" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:972 +#: ../src/ui/dialog/glyphs.cpp:267 #, fuzzy -msgid "Retrieve profiles from those attached to displays" -msgstr "Ottieni i profili relativi ai display." - -#: ../src/ui/dialog/inkscape-preferences.cpp:977 -msgid "Display rendering intent:" -msgstr "Intento del display:" +msgid "Lisu" +msgstr "Elenco" -#: ../src/ui/dialog/inkscape-preferences.cpp:978 -#, fuzzy -msgid "The rendering intent to use to calibrate display output" +#: ../src/ui/dialog/glyphs.cpp:269 +msgid "Cyrillic Extended-B" msgstr "" -"L'intento di visualizzazione da usare per calibrare l'output del display." - -#: ../src/ui/dialog/inkscape-preferences.cpp:980 -msgid "Proofing" -msgstr "Correzione" - -#: ../src/ui/dialog/inkscape-preferences.cpp:982 -msgid "Simulate output on screen" -msgstr "Simula l'output su schermo" -#: ../src/ui/dialog/inkscape-preferences.cpp:984 +#: ../src/ui/dialog/glyphs.cpp:270 #, fuzzy -msgid "Simulates output of target device" -msgstr "Simula l'output del dispositivo finale." +msgid "Bamum" +msgstr "Massimo" -#: ../src/ui/dialog/inkscape-preferences.cpp:986 -msgid "Mark out of gamut colors" -msgstr "Segnalazione colore fuori gamma" +#: ../src/ui/dialog/glyphs.cpp:271 +msgid "Modifier Tone Letters" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:988 -#, fuzzy -msgid "Highlights colors that are out of gamut for the target device" +#: ../src/ui/dialog/glyphs.cpp:272 +msgid "Latin Extended-D" msgstr "" -"Evidenzia i colori che sono fuori dalla gamma cromatica del dispositivo " -"finale." -#: ../src/ui/dialog/inkscape-preferences.cpp:1000 -msgid "Out of gamut warning color:" -msgstr "Colore avviso fuori gamma:" +#: ../src/ui/dialog/glyphs.cpp:274 +msgid "Common Indic Number Forms" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1001 -#, fuzzy -msgid "Selects the color used for out of gamut warning" -msgstr "Selezionare il colore da usare per gli avvisi circa i fuori gamma." +#: ../src/ui/dialog/glyphs.cpp:277 +msgid "Devanagari Extended" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1003 -msgid "Device profile:" -msgstr "Profilo dispositivo:" +#: ../src/ui/dialog/glyphs.cpp:280 +msgid "Hangul Jamo Extended-A" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +#: ../src/ui/dialog/glyphs.cpp:281 #, fuzzy -msgid "The ICC profile to use to simulate device output" -msgstr "Il profilo ICC da usare per simulare l'output del dispositivo." - -#: ../src/ui/dialog/inkscape-preferences.cpp:1007 -msgid "Device rendering intent:" -msgstr "Intento del dispositivo:" +msgid "Javanese" +msgstr "Evanescente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1008 -#, fuzzy -msgid "The rendering intent to use to calibrate device output" +#: ../src/ui/dialog/glyphs.cpp:283 +msgid "Myanmar Extended-A" msgstr "" -"L'intento di visualizzazione da usare per calibrare l'output del display." -#: ../src/ui/dialog/inkscape-preferences.cpp:1010 -msgid "Black point compensation" -msgstr "Compensazione punti neri" +#: ../src/ui/dialog/glyphs.cpp:284 +msgid "Tai Viet" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +#: ../src/ui/dialog/glyphs.cpp:285 #, fuzzy -msgid "Enables black point compensation" -msgstr "Abilita la compensazione dei punti neri." +msgid "Meetei Mayek" +msgstr "Elimina livello" -#: ../src/ui/dialog/inkscape-preferences.cpp:1014 -msgid "Preserve black" -msgstr "Preserva nero" +#: ../src/ui/dialog/glyphs.cpp:286 +msgid "Hangul Syllables" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1021 -msgid "(LittleCMS 1.15 or later required)" -msgstr "(richiede LittleCMS 1.15 o successivi)" +#: ../src/ui/dialog/glyphs.cpp:287 +msgid "Hangul Jamo Extended-B" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1023 -msgid "Preserve K channel in CMYK -> CMYK transforms" -msgstr "Preserva il canale K nelle trasformazioni CMYK -> CMYK" +#: ../src/ui/dialog/glyphs.cpp:288 +msgid "High Surrogates" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 -#: ../src/widgets/sp-color-icc-selector.cpp:474 -#: ../src/widgets/sp-color-icc-selector.cpp:766 -msgid "" -msgstr "" +#: ../src/ui/dialog/glyphs.cpp:289 +msgid "High Private Use Surrogates" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1082 -msgid "Color management" -msgstr "Gestione del colore" +#: ../src/ui/dialog/glyphs.cpp:290 +msgid "Low Surrogates" +msgstr "" -#. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1085 -msgid "Enable autosave (requires restart)" -msgstr "Abilita salvataggio automatico (richiede riapertura):" +#: ../src/ui/dialog/glyphs.cpp:291 +msgid "Private Use Area" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1086 -msgid "" -"Automatically save the current document(s) at a given interval, thus " -"minimizing loss in case of a crash" +#: ../src/ui/dialog/glyphs.cpp:292 +msgid "CJK Compatibility Ideographs" msgstr "" -"Salva automaticamente i documenti aperti ad intervalli stabiliti, " -"minimizzando la perdita di casi in caso di crash" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 -#, fuzzy -msgctxt "Filesystem" -msgid "Autosave _directory:" -msgstr "Cartella di lavoro non valida: %s" +#: ../src/ui/dialog/glyphs.cpp:293 +msgid "Alphabetic Presentation Forms" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 -msgid "" -"The directory where autosaves will be written. This should be an absolute " -"path (starts with / on UNIX or a drive letter such as C: on Windows). " +#: ../src/ui/dialog/glyphs.cpp:294 +msgid "Arabic Presentation Forms-A" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1094 +#: ../src/ui/dialog/glyphs.cpp:295 #, fuzzy -msgid "_Interval (in minutes):" -msgstr "Intervallo (in minuti):" +msgid "Variation Selectors" +msgstr "Adatta pagina alla selezione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1094 -msgid "Interval (in minutes) at which document will be autosaved" -msgstr "" -"Intervalli di temo (in minuti) a cui eseguire il salvataggio automatico del " -"documento" +#: ../src/ui/dialog/glyphs.cpp:296 +#, fuzzy +msgid "Vertical Forms" +msgstr "Raggio verticale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/glyphs.cpp:297 #, fuzzy -msgid "_Maximum number of autosaves:" -msgstr "Numero massimo di salvataggi automatici:" +msgid "Combining Half Marks" +msgstr "Margini di stampa" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 -msgid "" -"Maximum number of autosaved files; use this to limit the storage space used" +#: ../src/ui/dialog/glyphs.cpp:298 +msgid "CJK Compatibility Forms" msgstr "" -"Numero massimo di file di salvataggio automatico; usare per limitare lo " -"spazio su disco usato" -#. When changing the interval or enabling/disabling the autosave function, -#. * update our running configuration -#. * -#. * FIXME! -#. * the inkscape_autosave_init should be called AFTER the values have been changed -#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere -#. -#. -#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. -#. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1111 -#, fuzzy -msgid "Autosave" -msgstr "Salvataggio automatico" +#: ../src/ui/dialog/glyphs.cpp:299 +msgid "Small Form Variants" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1115 -#, fuzzy -msgid "Open Clip Art Library _Server Name:" -msgstr "Nome del server per Open Clip Art Library:" +#: ../src/ui/dialog/glyphs.cpp:300 +msgid "Arabic Presentation Forms-B" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1116 -#, fuzzy -msgid "" -"The server name of the Open Clip Art Library webdav server; it's used by the " -"Import and Export to OCAL function" +#: ../src/ui/dialog/glyphs.cpp:301 +msgid "Halfwidth and Fullwidth Forms" msgstr "" -"Il nome del server webdav dell'Open Clip Art Library. Serve per importare ed " -"esportare Open Clip Art." -#: ../src/ui/dialog/inkscape-preferences.cpp:1118 +#: ../src/ui/dialog/glyphs.cpp:302 #, fuzzy -msgid "Open Clip Art Library _Username:" -msgstr "Nome utente per Open Clip Art Library:" +msgid "Specials" +msgstr "Spirali" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/glyphs.cpp:377 #, fuzzy -msgid "The username used to log into Open Clip Art Library" -msgstr "Il nome utente per autenticarsi in Open Clip Art Library." +msgid "Script: " +msgstr "Script" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/glyphs.cpp:414 #, fuzzy -msgid "Open Clip Art Library _Password:" -msgstr "Password per Open Clip Art Library:" +msgid "Range: " +msgstr "angolo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 -#, fuzzy -msgid "The password used to log into Open Clip Art Library" -msgstr "La password per autenticarsi in Open Clip Art Library." +#: ../src/ui/dialog/glyphs.cpp:497 +msgid "Append" +msgstr "Aggiungi" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/glyphs.cpp:618 #, fuzzy -msgid "Open Clip Art" -msgstr "Autenticazione Open Clip Art" +msgid "Append text" +msgstr "Aggiungi testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 -#, fuzzy -msgid "Behavior" -msgstr "Comportamento" +#: ../src/ui/dialog/grid-arrange-tab.cpp:351 +msgid "Arrange in a grid" +msgstr "Disponi su griglia" -#: ../src/ui/dialog/inkscape-preferences.cpp:1132 -#, fuzzy -msgid "_Simplification threshold:" -msgstr "Soglia per la semplificazione:" +#: ../src/ui/dialog/grid-arrange-tab.cpp:589 +#: ../src/ui/dialog/object-attributes.cpp:66 +#: ../src/ui/dialog/object-attributes.cpp:75 +#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +msgid "X:" +msgstr "X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1133 -msgid "" -"How strong is the Node tool's Simplify command by default. If you invoke " -"this command several times in quick succession, it will act more and more " -"aggressively; invoking it again after a pause restores the default threshold." +#: ../src/ui/dialog/grid-arrange-tab.cpp:589 +msgid "Horizontal spacing between columns." +msgstr "Spaziatura orizzontale tra le colonne." + +#: ../src/ui/dialog/grid-arrange-tab.cpp:590 +#: ../src/ui/dialog/object-attributes.cpp:67 +#: ../src/ui/dialog/object-attributes.cpp:76 +#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +msgid "Y:" +msgstr "Y:" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:590 +msgid "Vertical spacing between rows." +msgstr "Spaziatura verticale tra le righe." + +#: ../src/ui/dialog/grid-arrange-tab.cpp:637 +msgid "_Rows:" +msgstr "_Righe:" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:646 +msgid "Number of rows" +msgstr "Numero di righe" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +msgid "Equal _height" +msgstr "_Altezza uguale" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:661 +msgid "If not set, each row has the height of the tallest object in it" +msgstr "Se non impostata, ogni riga ha l'altezza del suo oggetto piĂą alto" + +#. #### Number of columns #### +#: ../src/ui/dialog/grid-arrange-tab.cpp:677 +msgid "_Columns:" +msgstr "_Colonne:" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:686 +msgid "Number of columns" +msgstr "Numero di colonne" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:690 +msgid "Equal _width" +msgstr "_Larghezza uguale" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:700 +msgid "If not set, each column has the width of the widest object in it" msgstr "" -"La forza predefinita del comando Semplifica. Se si invoca questo comando " -"diverse volte in rapida successione, si comporterĂ  in modo sempre piĂą " -"aggressivo; effettuando una pausa sarĂ  ripristinata la soglia predefinita." +"Se non impostata, ogni colonna ha la larghezza del suo oggetto piĂą largo" + +#. Anchor selection widget +#: ../src/ui/dialog/grid-arrange-tab.cpp:711 +msgid "Alignment:" +msgstr "Allineamento:" + +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/grid-arrange-tab.cpp:720 +msgid "_Fit into selection box" +msgstr "_Adatta al riquadro della selezione" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:727 +msgid "_Set spacing:" +msgstr "Imposta _spaziatura:" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Rela_tive change" +msgstr "Cambiamenti rela_tivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1135 -msgid "Color stock markers the same color as object" -msgstr "" +#: ../src/ui/dialog/guides.cpp:47 +msgid "Move and/or rotate the guide relative to current settings" +msgstr "Sposta o ruota la guida in maniera relativa alle impostazioni attuali" -#: ../src/ui/dialog/inkscape-preferences.cpp:1136 -msgid "Color custom markers the same color as object" -msgstr "" +#: ../src/ui/dialog/guides.cpp:48 +msgctxt "Guides" +msgid "_X:" +msgstr "_X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 -msgid "Update marker color when object color changes" +#: ../src/ui/dialog/guides.cpp:49 +msgctxt "Guides" +msgid "_Y:" +msgstr "_Y:" + +#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 +msgid "_Label:" +msgstr "Etichet_ta:" + +#: ../src/ui/dialog/guides.cpp:50 +msgid "Optionally give this guideline a name" msgstr "" -#. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1140 -msgid "Select in all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/dialog/guides.cpp:51 +msgid "_Angle:" +msgstr "_Angolo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1141 -msgid "Select only within current layer" -msgstr "Seleziona solo nel livello attuale" +#: ../src/ui/dialog/guides.cpp:130 +msgid "Set guide properties" +msgstr "Imposta proprietĂ  delle guide" -#: ../src/ui/dialog/inkscape-preferences.cpp:1142 -msgid "Select in current layer and sublayers" -msgstr "Seleziona solo nel livello attuale e nei sottolivelli" +#: ../src/ui/dialog/guides.cpp:160 +msgid "Guideline" +msgstr "Linee guida" -#: ../src/ui/dialog/inkscape-preferences.cpp:1143 -msgid "Ignore hidden objects and layers" -msgstr "Ignora gli oggetti e livelli nascosti" +#: ../src/ui/dialog/guides.cpp:310 +#, c-format +msgid "Guideline ID: %s" +msgstr "ID linea guida: %s" -#: ../src/ui/dialog/inkscape-preferences.cpp:1144 -msgid "Ignore locked objects and layers" -msgstr "Ignora gli oggetti e livelli bloccati" +#: ../src/ui/dialog/guides.cpp:316 +#, c-format +msgid "Current: %s" +msgstr "Attuale: %s" -#: ../src/ui/dialog/inkscape-preferences.cpp:1145 -msgid "Deselect upon layer change" -msgstr "Deseleziona al cambiamento di livello" +#: ../src/ui/dialog/icon-preview.cpp:159 +#, c-format +msgid "%d x %d" +msgstr "%d Ă— %d" -#: ../src/ui/dialog/inkscape-preferences.cpp:1148 -msgid "" -"Uncheck this to be able to keep the current objects selected when the " -"current layer changes" -msgstr "" -"Deselezionare questa opzione per mantenere selezionati gli oggetti correnti " -"al cambio di livello" +#: ../src/ui/dialog/icon-preview.cpp:171 +msgid "Magnified:" +msgstr "Ingrandita:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1150 -#, fuzzy -msgid "Ctrl+A, Tab, Shift+Tab" -msgstr "Ctrl+A, Tab, Maiusc+Tab:" +#: ../src/ui/dialog/icon-preview.cpp:240 +msgid "Actual Size:" +msgstr "Dimensione effettiva:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1152 -msgid "Make keyboard selection commands work on objects in all layers" -msgstr "" -"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti di " -"tutti i livelli" +#: ../src/ui/dialog/icon-preview.cpp:245 +msgctxt "Icon preview window" +msgid "Sele_ction" +msgstr "Sele_zione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1154 -msgid "Make keyboard selection commands work on objects in current layer only" -msgstr "" -"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " -"livello attuale" +#: ../src/ui/dialog/icon-preview.cpp:247 +msgid "Selection only or whole document" +msgstr "Solo la selezione o l'intero documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1156 -msgid "" -"Make keyboard selection commands work on objects in current layer and all " -"its sublayers" -msgstr "" -"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " -"livello attuale e dei suoi sottolivelli" +#: ../src/ui/dialog/inkscape-preferences.cpp:182 +msgid "Show selection cue" +msgstr "Mostra suggerimento di selezione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 msgid "" -"Uncheck this to be able to select objects that are hidden (either by " -"themselves or by being in a hidden layer)" +"Whether selected objects display a selection cue (the same as in selector)" msgstr "" -"Deselezionare questa opzione per poter selezionare oggetti non visibili " -"(nascosti loro stessi o in un livello nascosto)" +"Qualsiasi elemento selezionato mostra un suggerimento di selezione (lo " +"stesso del selettore)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1160 -msgid "" -"Uncheck this to be able to select objects that are locked (either by " -"themselves or by being in a locked layer)" -msgstr "" -"Deselezionare questa opzione per poter selezionare oggetti bloccati " -"(bloccati loro stessi o in un livello bloccato)" +#: ../src/ui/dialog/inkscape-preferences.cpp:189 +msgid "Enable gradient editing" +msgstr "Abilita l'editor di gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 -msgid "Wrap when cycling objects in z-order" +#: ../src/ui/dialog/inkscape-preferences.cpp:190 +msgid "Whether selected objects display gradient editing controls" msgstr "" +"L'elemento selezionato mostra i controlli per la modifica del gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1164 -msgid "Alt+Scroll Wheel" +#: ../src/ui/dialog/inkscape-preferences.cpp:195 +msgid "Conversion to guides uses edges instead of bounding box" msgstr "" +"Nella conversione a guide usa gli spigoli invece del riquadro dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1166 -msgid "Wrap around at start and end when cycling objects in z-order" +#: ../src/ui/dialog/inkscape-preferences.cpp:196 +#, fuzzy +msgid "" +"Converting an object to guides places these along the object's true edges " +"(imitating the object's shape), not along the bounding box" msgstr "" +"Convertendo un'oggetto in guide verranno usati gli spigoli reali " +"dell'oggetto (riproducendone la forma) invece del suo riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1168 -msgid "Selecting" -msgstr "Selezione" - -#. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1171 -#: ../src/widgets/select-toolbar.cpp:570 -msgid "Scale stroke width" -msgstr "Ridimensiona la larghezza del contorno" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1172 -msgid "Scale rounded corners in rectangles" -msgstr "Adatta gli angoli arrotondati nei rettangoli" +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#, fuzzy +msgid "Ctrl+click _dot size:" +msgstr "Dimensione punto con Ctrl+clic:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 -msgid "Transform gradients" -msgstr "Trasforma gradienti" +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +msgid "times current stroke width" +msgstr "volte la larghezza attuale del contorno" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 -msgid "Transform patterns" -msgstr "Trasforma motivi" +#: ../src/ui/dialog/inkscape-preferences.cpp:204 +msgid "Size of dots created with Ctrl+click (relative to current stroke width)" +msgstr "" +"Dimensione dei punti creati con Ctrl+clic (relativi alla larghezza del " +"contorno attuale)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1176 -msgid "Preserved" -msgstr "Preserva" +#: ../src/ui/dialog/inkscape-preferences.cpp:219 +msgid "No objects selected to take the style from." +msgstr "Nessun elemento selezionato da cui prendere lo stile." -#: ../src/ui/dialog/inkscape-preferences.cpp:1179 -#: ../src/widgets/select-toolbar.cpp:571 -msgid "When scaling objects, scale the stroke width by the same proportion" +#: ../src/ui/dialog/inkscape-preferences.cpp:228 +msgid "" +"More than one object selected. Cannot take style from multiple " +"objects." msgstr "" -"Adatta le dimensioni dei contorni durante il ridimensionamento dell'oggetto" +"PiĂą di un elemento selezionato. Impossibile prendere lo stile da piĂą " +"oggetti." -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 -#: ../src/widgets/select-toolbar.cpp:582 -msgid "When scaling rectangles, scale the radii of rounded corners" -msgstr "" -"Adatta i raggi degli angoli arrotondati durante il ridimensionamento dei " -"rettangoli" +#: ../src/ui/dialog/inkscape-preferences.cpp:261 +msgid "Style of new objects" +msgstr "Stile dei nuovi oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 -#: ../src/widgets/select-toolbar.cpp:593 -msgid "Move gradients (in fill or stroke) along with the objects" -msgstr "" -"Trasforma i gradienti (di contorno o di riempimento) insieme agli oggetti" +#: ../src/ui/dialog/inkscape-preferences.cpp:263 +msgid "Last used style" +msgstr "Ultimo stile usato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 -#: ../src/widgets/select-toolbar.cpp:604 -msgid "Move patterns (in fill or stroke) along with the objects" -msgstr "Trasforma i motivi (di contorno o di riempimento) insieme agli oggetti" +#: ../src/ui/dialog/inkscape-preferences.cpp:265 +msgid "Apply the style you last set on an object" +msgstr "Applica l'ultimo stile applicato ad un oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1186 -#, fuzzy -msgid "Store transformation" -msgstr "Salvataggio trasformazioni:" +#: ../src/ui/dialog/inkscape-preferences.cpp:270 +msgid "This tool's own style:" +msgstr "Stile di questo strumento:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "" -"If possible, apply transformation to objects without adding a transform= " -"attribute" +"Each tool may store its own style to apply to the newly created objects. Use " +"the button below to set it." msgstr "" -"Se possibile, applica le trasformazioni all'oggetto senza aggiungere un " -"attributo transfom=" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1190 -msgid "Always store transformation as a transform= attribute on objects" -msgstr "Salva sempre le trasformazioni come attributo transform di un oggetto" +"Ogni strumento può salvare il proprio stile per applicarlo agli oggetti che " +"saranno creati. Usare il bottone sotto per impostarlo." -#: ../src/ui/dialog/inkscape-preferences.cpp:1192 -msgid "Transforms" -msgstr "Trasformazioni" +#. style swatch +#: ../src/ui/dialog/inkscape-preferences.cpp:278 +msgid "Take from selection" +msgstr "Prendi dalla selezione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1196 -#, fuzzy -msgid "Mouse _wheel scrolls by:" -msgstr "Scorrimento con la rotella del mouse:" +#: ../src/ui/dialog/inkscape-preferences.cpp:283 +msgid "This tool's style of new objects" +msgstr "Lo stile di questo strumento per i nuovi oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 -msgid "" -"One mouse wheel notch scrolls by this distance in screen pixels " -"(horizontally with Shift)" +#: ../src/ui/dialog/inkscape-preferences.cpp:290 +msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" -"Con uno scatto della rotella del mouse si scorre di questa distanza " -"(orizzontalmente con Maiusc)" +"Imposta lo stile del (primo) elemento selezionato come stile di questo " +"strumento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 -msgid "Ctrl+arrows" -msgstr "Ctrl+frecce" +#: ../src/ui/dialog/inkscape-preferences.cpp:295 +msgid "Tools" +msgstr "Strumenti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1200 +#: ../src/ui/dialog/inkscape-preferences.cpp:298 #, fuzzy -msgid "Sc_roll by:" -msgstr "Scorrimento:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 -msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" -msgstr "" -"Premendo Ctrl+freccia si scorre di questa distanza (in pixel dello schermo)" +msgid "Bounding box to use" +msgstr "Riquadro da usare:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1203 -#, fuzzy -msgid "_Acceleration:" -msgstr "Accelerazione:" +#: ../src/ui/dialog/inkscape-preferences.cpp:299 +msgid "Visual bounding box" +msgstr "Riquadro visivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 -msgid "" -"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " -"acceleration)" +#: ../src/ui/dialog/inkscape-preferences.cpp:301 +msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" -"Tenendo premuto ctrl+freccia si accelererĂ  lo scorrimento (0 per non avere " -"accelerazione)" +"Questo riquadro include la larghezza dei contorni, i delimitatori, i margini " +"dei filtri, ecc." -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 -msgid "Autoscrolling" -msgstr "Scorrimento automatico" +#: ../src/ui/dialog/inkscape-preferences.cpp:302 +msgid "Geometric bounding box" +msgstr "Riquadro geometrico" + +#: ../src/ui/dialog/inkscape-preferences.cpp:304 +msgid "This bounding box includes only the bare path" +msgstr "Questo riquadro include solo il tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 #, fuzzy -msgid "_Speed:" -msgstr "VelocitĂ :" +msgid "Conversion to guides" +msgstr "Conversione in guide:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1208 -msgid "" -"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " -"autoscroll off)" -msgstr "" -"La velocitĂ  con cui la tela scorrerĂ  automaticamente durante il " -"trascinamento fuori dal bordo (0 per disattivarlo)" +#: ../src/ui/dialog/inkscape-preferences.cpp:307 +msgid "Keep objects after conversion to guides" +msgstr "Mantieni gli oggetti dopo averli convertiti in guide" -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 -#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:309 #, fuzzy -msgid "_Threshold:" -msgstr "Soglia:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 msgid "" -"How far (in screen pixels) you need to be from the canvas edge to trigger " -"autoscroll; positive is outside the canvas, negative is within the canvas" -msgstr "" -"La distanza (in pixel dello schermo) dal bordo della tela per attivare lo " -"scorrimento automatico; un numero positivo indica l'esterno della tela, uno " -"negativo l'esterno" +"When converting an object to guides, don't delete the object after the " +"conversion" +msgstr "Non cancellare l'oggetto dopo la conversione in guide" -#. -#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); -#. _page_scrolling.add_line( false, "", _scroll_space, "", -#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); -#. -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 -msgid "Mouse wheel zooms by default" -msgstr "La rotella del mouse ingrandisce/rimpicciolisce" +#: ../src/ui/dialog/inkscape-preferences.cpp:310 +msgid "Treat groups as a single object" +msgstr "Tratta gruppi come un singolo oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:312 #, fuzzy msgid "" -"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " -"off, it zooms with Ctrl and scrolls without Ctrl" +"Treat groups as a single object during conversion to guides rather than " +"converting each child separately" msgstr "" -"Quando attivo, la rotella del mouse ingrandisce senza Ctrl e sposta la tela " -"con Ctrl; quando disattivo ingrandisce con Ctrl e sposta la tela senza Ctrl." +"Tratta i gruppi come un singolo oggetto durante la conversione in guide " +"piuttosto che convertire ogni componente separatamente." -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 -msgid "Scrolling" -msgstr "Scorrimento" +#: ../src/ui/dialog/inkscape-preferences.cpp:314 +msgid "Average all sketches" +msgstr "Media tutti i disegni a mano libera" -#. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1223 -msgid "Enable snap indicator" -msgstr "Attiva indicatore aggancio" +#: ../src/ui/dialog/inkscape-preferences.cpp:315 +msgid "Width is in absolute units" +msgstr "La larghezza è in unitĂ  assolute" -#: ../src/ui/dialog/inkscape-preferences.cpp:1225 -msgid "After snapping, a symbol is drawn at the point that has snapped" -msgstr "" -"Dopo l'aggancio, viene disegnato un simbolo nel punto in cui è avvenuto " -"l'aggancio" +#: ../src/ui/dialog/inkscape-preferences.cpp:316 +msgid "Select new path" +msgstr "Seleziona nuovo tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 -#, fuzzy -msgid "_Delay (in ms):" -msgstr "Ritardo (in ms):" +#: ../src/ui/dialog/inkscape-preferences.cpp:317 +msgid "Don't attach connectors to text objects" +msgstr "Non attaccare i connettori agli oggetti testuali" -#: ../src/ui/dialog/inkscape-preferences.cpp:1229 -msgid "" -"Postpone snapping as long as the mouse is moving, and then wait an " -"additional fraction of a second. This additional delay is specified here. " -"When set to zero or to a very small number, snapping will be immediate." -msgstr "" -"Postpone l'aggancio finchĂ© il mouse è in movimento e quindi aspetta un " -"ritardo aggiuntivo, specificabile qui. Se impostato a zero o ad un numero " -"molto piccolo, l'aggancio sarĂ  immediato." +#. Selector +#: ../src/ui/dialog/inkscape-preferences.cpp:320 +msgid "Selector" +msgstr "Selettore" -#: ../src/ui/dialog/inkscape-preferences.cpp:1231 -msgid "Only snap the node closest to the pointer" -msgstr "Aggancia solo il nodo piĂą vicino al puntatore" +#: ../src/ui/dialog/inkscape-preferences.cpp:325 +#, fuzzy +msgid "When transforming, show" +msgstr "Durante la trasformazione, mostra:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1233 -msgid "" -"Only try to snap the node that is initially closest to the mouse pointer" -msgstr "" -"Prova ad agganciare solamente il nodo che è inizialmente piĂą vicino al " -"puntatore del mouse" +#: ../src/ui/dialog/inkscape-preferences.cpp:326 +msgid "Objects" +msgstr "Oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1236 -#, fuzzy -msgid "_Weight factor:" -msgstr "Fattore peso:" +#: ../src/ui/dialog/inkscape-preferences.cpp:328 +msgid "Show the actual objects when moving or transforming" +msgstr "Mostra l'oggetto attuale durante il movimento o la trasformazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 -msgid "" -"When multiple snap solutions are found, then Inkscape can either prefer the " -"closest transformation (when set to 0), or prefer the node that was " -"initially the closest to the pointer (when set to 1)" -msgstr "" -"Quando sono disponibili piĂą possibilitĂ  per l'aggancio, Inkscape può " -"scegliere la trasformazione piĂą prossima (impostato a 0) o scegliere il nodo " -"che era inizialmente piĂą vicino al puntatore (impostato a 1)" +#: ../src/ui/dialog/inkscape-preferences.cpp:329 +msgid "Box outline" +msgstr "Riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1239 -msgid "Snap the mouse pointer when dragging a constrained knot" +#: ../src/ui/dialog/inkscape-preferences.cpp:331 +msgid "Show only a box outline of the objects when moving or transforming" msgstr "" -"Aggancia il puntatore del mouse durante il trascinamento di un punto annodato" +"Mostra solo il riquadro dell'oggetto durante il movimento o la trasformazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1241 -msgid "" -"When dragging a knot along a constraint line, then snap the position of the " -"mouse pointer instead of snapping the projection of the knot onto the " -"constraint line" -msgstr "" -"Durante il trascinamento di un nodo lungo un tracciato annodato, aggancia la " -"posizione del puntatore del mouse invece delle proiezione del nodo lungo il " -"tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:332 +#, fuzzy +msgid "Per-object selection cue" +msgstr "Suggerimento di selezione ad oggetto:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1243 -msgid "Snapping" -msgstr "Aggancio" +#: ../src/ui/dialog/inkscape-preferences.cpp:335 +msgid "No per-object selection indication" +msgstr "Nessuna indicazione di selezione ad oggetto" -#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 -#, fuzzy -msgid "_Arrow keys move by:" -msgstr "Le frecce direzionali muovono di:" +#: ../src/ui/dialog/inkscape-preferences.cpp:336 +msgid "Mark" +msgstr "Segno" -#: ../src/ui/dialog/inkscape-preferences.cpp:1249 -#, fuzzy -msgid "" -"Pressing an arrow key moves selected object(s) or node(s) by this distance" +#: ../src/ui/dialog/inkscape-preferences.cpp:338 +msgid "Each selected object has a diamond mark in the top left corner" msgstr "" -"Premendo una freccia direzionale l'oggetto o il nodo selezionato si muovono " -"di questa distanza (in pixel)" +"Ogni oggetto selezionato ha un segno a forma di diamante nell'angolo " +"superiore sinistro" -#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 -#, fuzzy -msgid "> and < _scale by:" -msgstr "> e < ridimensionano di:" +#: ../src/ui/dialog/inkscape-preferences.cpp:339 +msgid "Box" +msgstr "Riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 -#, fuzzy -msgid "Pressing > or < scales selection up or down by this increment" -msgstr "" -"Premendo > o < si ridimensiona la selezione di questo fattore (in pixel)" +#: ../src/ui/dialog/inkscape-preferences.cpp:341 +msgid "Each selected object displays its bounding box" +msgstr "Ogni oggetto selezionato mostra il proprio riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 -#, fuzzy -msgid "_Inset/Outset by:" -msgstr "Intrudi/Estrudi di:" +#. Node +#: ../src/ui/dialog/inkscape-preferences.cpp:344 +msgid "Node" +msgstr "Nodo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1256 -#, fuzzy -msgid "Inset and Outset commands displace the path by this distance" -msgstr "" -"I comandi Intrudi ed Estrudi spostano il tracciato di questa distanza (in " -"pixel)" +#: ../src/ui/dialog/inkscape-preferences.cpp:347 +msgid "Path outline" +msgstr "Scheletro tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 -msgid "Compass-like display of angles" -msgstr "Visualizzazione tipo bussola degli angoli" +#: ../src/ui/dialog/inkscape-preferences.cpp:348 +msgid "Path outline color" +msgstr "Colore scheletro tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1259 -msgid "" -"When on, angles are displayed with 0 at north, 0 to 360 range, positive " -"clockwise; otherwise with 0 at east, -180 to 180 range, positive " -"counterclockwise" +#: ../src/ui/dialog/inkscape-preferences.cpp:349 +msgid "Selects the color used for showing the path outline" msgstr "" -"Quando attivo, gli angoli sono visualizzato con lo 0 a nord, nell'intervallo " -"0~360, con positivo in senso orario. Se disattivato, lo 0 è a est, " -"nell'intervallo -180~180, con positivo in senso antiorario" +"Seleziona il colore da usare per mostrare lo scheletro del tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 -#, fuzzy -msgid "_Rotation snaps every:" -msgstr "La rotazione scatta ogni:" +#: ../src/ui/dialog/inkscape-preferences.cpp:350 +msgid "Always show outline" +msgstr "Mostra sempre scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 -msgid "degrees" -msgstr "gradi" +#: ../src/ui/dialog/inkscape-preferences.cpp:351 +msgid "Show outlines for all paths, not only invisible paths" +msgstr "Mostra lo scheletro per tutti i tracciati, non solo tracciati " +"invisibili" -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#: ../src/ui/dialog/inkscape-preferences.cpp:352 +msgid "Update outline when dragging nodes" +msgstr "Aggiorna scheletro durante il trascinamento dei nodi" + +#: ../src/ui/dialog/inkscape-preferences.cpp:353 msgid "" -"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " -"[ or ] rotates by this amount" +"Update the outline when dragging or transforming nodes; if this is off, the " +"outline will only update when completing a drag" msgstr "" -"La rotazione con Ctrl premuto scatta di questo ammontare di gradi; inoltre, " -"la pressione di [ o ] effettua una rotazione di questi gradi" +"Aggiorna lo scheletro durante il trascinamento o la trasformazione dei nodi; " +"se questo è disabilitato, lo scheletro sarĂ  aggiornato al completamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1267 -msgid "Relative snapping of guideline angles" +#: ../src/ui/dialog/inkscape-preferences.cpp:354 +msgid "Update paths when dragging nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1269 +#: ../src/ui/dialog/inkscape-preferences.cpp:355 msgid "" -"When on, the snap angles when rotating a guideline will be relative to the " -"original angle" +"Update paths when dragging or transforming nodes; if this is off, paths will " +"only be updated when completing a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1271 -#, fuzzy -msgid "_Zoom in/out by:" -msgstr "Ingrandimento/Riduzione:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1271 -msgid "%" -msgstr "%" +#: ../src/ui/dialog/inkscape-preferences.cpp:356 +msgid "Show path direction on outlines" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +#: ../src/ui/dialog/inkscape-preferences.cpp:357 msgid "" -"Zoom tool click, +/- keys, and middle click zoom in and out by this " -"multiplier" +"Visualize the direction of selected paths by drawing small arrows in the " +"middle of each outline segment" msgstr "" -"Un clic dell'ingrandimento, i tasti +/- e un clic centrale " -"dell'ingrandimento rimpiccioliscono o ingrandiscono di questo fattore" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1273 -msgid "Steps" -msgstr "Scatti" - -#. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1276 -msgid "Move in parallel" -msgstr "Mossi in parallelo" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 -msgid "Stay unmoved" -msgstr "Lasciati fermi" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1280 -msgid "Move according to transform" -msgstr "Mossi secondo la trasformazione" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1282 -msgid "Are unlinked" -msgstr "Scollegati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1284 -msgid "Are deleted" -msgstr "Cancellati" +#: ../src/ui/dialog/inkscape-preferences.cpp:358 +#, fuzzy +msgid "Show temporary path outline" +msgstr "Contorno smussato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +#: ../src/ui/dialog/inkscape-preferences.cpp:359 #, fuzzy -msgid "Moving original: clones and linked offsets" +msgid "When hovering over a path, briefly flash its outline" msgstr "" -"Quando l'originale viene spostato, i cloni e gli elementi collegati vengono:" +"Al passaggio del mouse sul tracciato, ne evidenzia brevemente lo scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1289 +#: ../src/ui/dialog/inkscape-preferences.cpp:360 #, fuzzy -msgid "Clones are translated by the same vector as their original" -msgstr "I cloni vengono traslati dello stesso vettore dell'originale." +msgid "Show temporary outline for selected paths" +msgstr "Mostra lo scheletro di un tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1291 -#, fuzzy -msgid "Clones preserve their positions when their original is moved" +#: ../src/ui/dialog/inkscape-preferences.cpp:361 +msgid "Show temporary outline even when a path is selected for editing" msgstr "" -"I cloni preservano la loro posizione quando l'originale viene spostato." -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#, fuzzy +msgid "_Flash time:" +msgstr "Tempo di evidenziazione" + +#: ../src/ui/dialog/inkscape-preferences.cpp:363 #, fuzzy msgid "" -"Each clone moves according to the value of its transform= attribute; for " -"example, a rotated clone will move in a different direction than its original" +"Specifies how long the path outline will be visible after a mouse-over (in " +"milliseconds); specify 0 to have the outline shown until mouse leaves the " +"path" msgstr "" -"Ogni clone viene mosso secondo il valore del suo attributo transform=. Per " -"esempio, un clone ruotato verrĂ  mosso in una direzione diversa dal suo " -"originale." +"Specifica per quanto la traccia del tracciato resta visibile dopo il " +"passaggio del mouse (in millisecondi). Specificando 0 la traccia resterĂ  " +"visibile finchĂ© il mouse è sopra il tracciato." -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 -#, fuzzy -msgid "Deleting original: clones" -msgstr "Quando si duplicano originali+cloni:" +#: ../src/ui/dialog/inkscape-preferences.cpp:364 +msgid "Editing preferences" +msgstr "Preferenze modifica" -#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +#: ../src/ui/dialog/inkscape-preferences.cpp:365 #, fuzzy -msgid "Orphaned clones are converted to regular objects" -msgstr "I cloni orfani vengono convertiti in oggetti normali." +msgid "Show transform handles for single nodes" +msgstr "Mostra le maniglie Bezier dei nodi selezionati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1298 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 #, fuzzy -msgid "Orphaned clones are deleted along with their original" -msgstr "I cloni orfani vengono cancellati assieme al loro originale." +msgid "Show transform handles even when only a single node is selected" +msgstr "Mostra le maniglie Bezier dei nodi selezionati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1300 +#: ../src/ui/dialog/inkscape-preferences.cpp:367 #, fuzzy -msgid "Duplicating original+clones/linked offset" -msgstr "Quando si duplicano originali+cloni:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 -msgid "Relink duplicated clones" -msgstr "Ricollega cloni duplicati" +msgid "Deleting nodes preserves shape" +msgstr "Cancella nodi preservando la forma" -#: ../src/ui/dialog/inkscape-preferences.cpp:1304 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "" -"When duplicating a selection containing both a clone and its original " -"(possibly in groups), relink the duplicated clone to the duplicated original " -"instead of the old original" +"Move handles next to deleted nodes to resemble original shape; hold Ctrl to " +"get the other behavior" msgstr "" -"Quando si duplica una selezione con un clone e il suo originale " -"(eventualmente raggruppati), ricollega il clone duplicato all'originale " -"duplicato invece che al vecchio originale" -#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1307 -msgid "Clones" -msgstr "Cloni" +#. Tweak +#: ../src/ui/dialog/inkscape-preferences.cpp:371 +msgid "Tweak" +msgstr "Ritocco" -#. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1310 -msgid "When applying, use the topmost selected object as clippath/mask" +#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#, fuzzy +msgid "Object paint style" +msgstr "Baricentro oggetto" + +#. Zoom +#: ../src/ui/dialog/inkscape-preferences.cpp:377 +#: ../src/widgets/desktop-widget.cpp:631 +msgid "Zoom" +msgstr "Ingrandimento" + +#. Measure +#: ../src/ui/dialog/inkscape-preferences.cpp:382 ../src/verbs.cpp:2678 +#, fuzzy +msgctxt "ContextVerb" +msgid "Measure" +msgstr "Misura" + +#: ../src/ui/dialog/inkscape-preferences.cpp:384 +msgid "Ignore first and last points" msgstr "" -"Durante l'applicazione, usa l'oggetto selezionato superiore come tracciato " -"di fissaggio o maschera" -#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +#: ../src/ui/dialog/inkscape-preferences.cpp:385 msgid "" -"Uncheck this to use the bottom selected object as the clipping path or mask" +"The start and end of the measurement tool's control line will not be " +"considered for calculating lengths. Only lengths between actual curve " +"intersections will be displayed." msgstr "" -"Deselezionare per usare l'oggetto selezionato inferiore come tracciato di " -"fissaggio o maschera" -#: ../src/ui/dialog/inkscape-preferences.cpp:1313 -msgid "Remove clippath/mask object after applying" -msgstr "Rimuove il tracciato di fissaggio o la maschera dopo l'applicazione" +#. Shapes +#: ../src/ui/dialog/inkscape-preferences.cpp:388 +msgid "Shapes" +msgstr "Forme" -#: ../src/ui/dialog/inkscape-preferences.cpp:1315 -msgid "" -"After applying, remove the object used as the clipping path or mask from the " -"drawing" -msgstr "" -"Dopo l'applicazione, rimuove dal disegno l'oggetto usato come tracciato di " -"fissaggio o maschera" +#: ../src/ui/dialog/inkscape-preferences.cpp:420 +msgid "Sketch mode" +msgstr "ModalitĂ  bozzetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +#: ../src/ui/dialog/inkscape-preferences.cpp:422 #, fuzzy -msgid "Before applying" -msgstr "A_ttiva aggancio" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1319 -msgid "Do not group clipped/masked objects" +msgid "" +"If on, the sketch result will be the normal average of all sketches made, " +"instead of averaging the old result with the new sketch" msgstr "" +"Se attivo, il bozzetto finale sarĂ  la media di tutti i bozzetti disegnati, " +"invece di fare la media tra il vecchio risultato e l'ultimo disegnato." -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 -msgid "Put every clipped/masked object in its own group" -msgstr "" +#. Pen +#: ../src/ui/dialog/inkscape-preferences.cpp:425 +#: ../src/ui/dialog/input.cpp:1485 +msgid "Pen" +msgstr "Penna" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 -msgid "Put all clipped/masked objects into one group" -msgstr "" +#. Calligraphy +#: ../src/ui/dialog/inkscape-preferences.cpp:431 +msgid "Calligraphy" +msgstr "Pennino" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 -msgid "Apply clippath/mask to every object" +#: ../src/ui/dialog/inkscape-preferences.cpp:435 +msgid "" +"If on, pen width is in absolute units (px) independent of zoom; otherwise " +"pen width depends on zoom so that it looks the same at any zoom" msgstr "" +"Se attivo, la larghezza della penna è in unitĂ  assolute (px) " +"indipendentemente dallo zoom; altrimenti la larghezza dipende dalla zoom, " +"ossia sembrerĂ  uguale a qualsiasi ingrandimento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 -msgid "Apply clippath/mask to groups containing single object" +#: ../src/ui/dialog/inkscape-preferences.cpp:437 +msgid "" +"If on, each newly created object will be selected (deselecting previous " +"selection)" msgstr "" +"Se attivo, tutti i nuovi oggetti creati verranno selezionati (disattivando " +"la selezione precedente)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1330 -msgid "Apply clippath/mask to group containing all objects" -msgstr "" +#. Text +#: ../src/ui/dialog/inkscape-preferences.cpp:440 ../src/verbs.cpp:2670 +msgctxt "ContextVerb" +msgid "Text" +msgstr "Testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1332 -msgid "After releasing" +#: ../src/ui/dialog/inkscape-preferences.cpp:445 +msgid "Show font samples in the drop-down list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1334 -#, fuzzy -msgid "Ungroup automatically created groups" -msgstr "Divide il gruppo selezionato" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1336 -msgid "Ungroup groups created when setting clip/mask" +#: ../src/ui/dialog/inkscape-preferences.cpp:446 +msgid "" +"Show font samples alongside font names in the drop-down list in Text bar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1338 -msgid "Clippaths and masks" -msgstr "Fissaggio e mascheramento" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1341 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 #, fuzzy -msgid "Stroke Style Markers" -msgstr "St_ile contorno" +msgid "Show font substitution warning dialog" +msgstr "Mostra il bottone di chiusura nelle sottofinestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:1343 -#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "" -"Stroke color same as object, fill color either object fill color or marker " -"fill color" +"Show font substitution warning dialog when requested fonts are not available " +"on the system" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1349 -#: ../share/extensions/hershey.inx.h:27 -#, fuzzy -msgid "Markers" -msgstr "Delimitatore" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Pixel" +msgstr "Pixel" -#: ../src/ui/dialog/inkscape-preferences.cpp:1352 -#, fuzzy -msgid "Document cleanup" -msgstr "Documento" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Pica" +msgstr "Pica" -#: ../src/ui/dialog/inkscape-preferences.cpp:1353 -#: ../src/ui/dialog/inkscape-preferences.cpp:1355 -msgid "Remove unused swatches when doing a document cleanup" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Millimeter" +msgstr "Millimetro" -#. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 -#, fuzzy -msgid "Cleanup" -msgstr "_Pulisci" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Centimeter" +msgstr "Centimetro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 -#, fuzzy -msgid "Number of _Threads:" -msgstr "Numero di righe" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Inch" +msgstr "Pollice" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1896 -msgid "(requires restart)" -msgstr "(richiede riapertura)" +#: ../src/ui/dialog/inkscape-preferences.cpp:452 +msgid "Em square" +msgstr "Riquadro Em" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 -msgid "Configure number of processors/threads to use when rendering filters" -msgstr "" +#. , _("Ex square"), _("Percent") +#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT +#: ../src/ui/dialog/inkscape-preferences.cpp:455 +msgid "Text units" +msgstr "UnitĂ  testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 -#, fuzzy -msgid "Rendering _cache size:" -msgstr "Rendering" +#: ../src/ui/dialog/inkscape-preferences.cpp:457 +msgid "Text size unit type:" +msgstr "UnitĂ  dimensione testo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 -msgctxt "mebibyte (2^20 bytes) abbreviation" -msgid "MiB" +#: ../src/ui/dialog/inkscape-preferences.cpp:458 +msgid "Set the type of unit used in the text toolbar and text dialogs" +msgstr "Imposta l'unitĂ  usata nella barra degli strumenti di testo e " +"nelle finestre di testo" + +#: ../src/ui/dialog/inkscape-preferences.cpp:459 +msgid "Always output text size in pixels (px)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1369 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 msgid "" -"Set the amount of memory per document which can be used to store rendered " -"parts of the drawing for later reuse; set to zero to disable caching" +"Always convert the text size units above into pixels (px) before saving to " +"file" msgstr "" -#. blur quality -#. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 -msgid "Best quality (slowest)" -msgstr "QualitĂ  ottima (piĂą lenta)" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1374 -#: ../src/ui/dialog/inkscape-preferences.cpp:1398 -msgid "Better quality (slower)" -msgstr "QualitĂ  buona (lenta)" +#. Spray +#: ../src/ui/dialog/inkscape-preferences.cpp:465 +#, fuzzy +msgid "Spray" +msgstr "Spirale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1376 -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 -msgid "Average quality" -msgstr "QualitĂ  media" +#. Eraser +#: ../src/ui/dialog/inkscape-preferences.cpp:470 +msgid "Eraser" +msgstr "Gomma" -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 -#: ../src/ui/dialog/inkscape-preferences.cpp:1402 -msgid "Lower quality (faster)" -msgstr "QualitĂ  inferiore (veloce)" +#. Paint Bucket +#: ../src/ui/dialog/inkscape-preferences.cpp:474 +msgid "Paint Bucket" +msgstr "Secchiello" -#: ../src/ui/dialog/inkscape-preferences.cpp:1380 -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 -msgid "Lowest quality (fastest)" -msgstr "QualitĂ  peggiore (piĂą veloce)" +#. Gradient +#: ../src/ui/dialog/inkscape-preferences.cpp:479 +#: ../src/widgets/gradient-selector.cpp:152 +#: ../src/widgets/gradient-selector.cpp:320 +msgid "Gradient" +msgstr "Gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 -#, fuzzy -msgid "Gaussian blur quality for display" -msgstr "QualitĂ  della sfocatura gaussiana in visualizzazione:" +#: ../src/ui/dialog/inkscape-preferences.cpp:481 +msgid "Prevent sharing of gradient definitions" +msgstr "Disabilita condivisione definizioni di gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1385 -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 msgid "" -"Best quality, but display may be very slow at high zooms (bitmap export " -"always uses best quality)" +"When on, shared gradient definitions are automatically forked on change; " +"uncheck to allow sharing of gradient definitions so that editing one object " +"may affect other objects using the same gradient" msgstr "" -"QualitĂ  ottima, ma la visualizzazione può essere molto lenta ad alti " -"ingrandimenti (l'esportazione bitmap usa sempre l'ottima qualitĂ )" +"Quando impostato, le definizioni di gradiente vengono automaticamente " +"duplicate quando modificate; deselezionare per abilitare la condivisione " +"delle definizioni di gradiente, affinchĂ© la modifica di un oggetto " +"condizioni gli altri oggetti che usano lo stesso gradiente." -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 -#: ../src/ui/dialog/inkscape-preferences.cpp:1411 -msgid "Better quality, but slower display" -msgstr "QualitĂ  buona, ma visualizzazione piĂą lenta" +#: ../src/ui/dialog/inkscape-preferences.cpp:484 +#, fuzzy +msgid "Use legacy Gradient Editor" +msgstr "Editor di gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1389 -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 -msgid "Average quality, acceptable display speed" -msgstr "QualitĂ  media, buon compromesso per velocitĂ  di visualizzazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:486 +msgid "" +"When on, the Gradient Edit button in the Fill & Stroke dialog will show the " +"legacy Gradient Editor dialog, when off the Gradient Tool will be used" +msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1391 -#: ../src/ui/dialog/inkscape-preferences.cpp:1415 -msgid "Lower quality (some artifacts), but display is faster" -msgstr "QualitĂ  scadente (artefatti visibili), ma veloce in visualizzazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:489 +msgid "Linear gradient _angle:" +msgstr "_Angolo gradiente lineare:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 -#: ../src/ui/dialog/inkscape-preferences.cpp:1417 -msgid "Lowest quality (considerable artifacts), but display is fastest" +#: ../src/ui/dialog/inkscape-preferences.cpp:490 +msgid "" +"Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" -"QualitĂ  pessima (pesanti artefatti visibili), ma velocissimo in " -"visualizzazione" +"Angolo predefinito dei nuovi gradienti lineari in gradi (senso orario da " +"orizzontale)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1407 -#, fuzzy -msgid "Filter effects quality for display" -msgstr "QualitĂ  degli effetti in visualizzazione:" +#. Dropper +#: ../src/ui/dialog/inkscape-preferences.cpp:494 +msgid "Dropper" +msgstr "Contagocce" -#. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1419 -#: ../src/ui/dialog/print.cpp:232 -msgid "Rendering" -msgstr "Rendering" +#. Connector +#: ../src/ui/dialog/inkscape-preferences.cpp:499 +msgid "Connector" +msgstr "Connettore" -#. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1425 ../src/verbs.cpp:156 -#: ../src/widgets/calligraphy-toolbar.cpp:626 +#: ../src/ui/dialog/inkscape-preferences.cpp:502 +msgid "If on, connector attachment points will not be shown for text objects" +msgstr "" +"Se attivo, il punto di attacco del connettore non verrĂ  mostrato per gli " +"oggetti testuali" + +#. LPETool +#. disabled, because the LPETool is not finished yet. +#: ../src/ui/dialog/inkscape-preferences.cpp:507 #, fuzzy -msgid "Edit" -msgstr "_Modifica" +msgid "LPE Tool" +msgstr "Strumento LPE" -#: ../src/ui/dialog/inkscape-preferences.cpp:1426 -msgid "Automatically reload bitmaps" -msgstr "Ricarica automaticamente bitmap" +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Interface" +msgstr "Interfaccia" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 -msgid "Automatically reload linked images when file is changed on disk" -msgstr "" -"Ricarica automaticamente le immagini collegate quando il file viene cambiato" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "System default" +msgstr "Impostazioni predefinita del sistema" -#: ../src/ui/dialog/inkscape-preferences.cpp:1430 -#, fuzzy -msgid "_Bitmap editor:" -msgstr "Editor bitmap:" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Albanian (sq)" +msgstr "Albanese (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1432 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 -#: ../share/extensions/print_win32_vector.inx.h:2 -msgid "Export" -msgstr "Esporta" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Amharic (am)" +msgstr "Amarico (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 -#, fuzzy -msgid "Default export _resolution:" -msgstr "Risoluzione predefinita per l'esportazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Arabic (ar)" +msgstr "Arabo (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -msgid "Default bitmap resolution (in dots per inch) in the Export dialog" -msgstr "" -"Risoluzione predefinita (in punti per pollice) delle bitmap nella " -"sottofinestra Esporta" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Armenian (hy)" +msgstr "Armeno (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1436 -#: ../src/ui/dialog/xml-tree.cpp:912 -msgid "Create" -msgstr "Crea" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Azerbaijani (az)" +msgstr "Azero (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1438 -#, fuzzy -msgid "Resolution for Create Bitmap _Copy:" -msgstr "Risoluzione di Crea copia bitmap:" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Basque (eu)" +msgstr "Basco (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 -msgid "Resolution used by the Create Bitmap Copy command" -msgstr "Risoluzione usata dal comando Crea copia bitmap" +#: ../src/ui/dialog/inkscape-preferences.cpp:517 +msgid "Belarusian (be)" +msgstr "Bielorusso (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1442 -msgid "Ask about linking and scaling when importing" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Bulgarian (bg)" +msgstr "Bulgaro (bg)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1444 -msgid "Pop-up linking and scaling dialog when importing bitmap image." -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Bengali (bn)" +msgstr "Bengalese (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/ui/dialog/inkscape-preferences.cpp:518 #, fuzzy -msgid "Bitmap link:" -msgstr "Editor bitmap:" +msgid "Bengali/Bangladesh (bn_BD)" +msgstr "Bengalese (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1457 -msgid "Bitmap scale (image-rendering):" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Breton (br)" +msgstr "Bretone (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1462 -#, fuzzy -msgid "Default _import resolution:" -msgstr "Risoluzione predefinita per l'esportazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Catalan (ca)" +msgstr "Catalano (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -#, fuzzy -msgid "Default bitmap resolution (in dots per inch) for bitmap import" -msgstr "" -"Risoluzione predefinita (in punti per pollice) delle bitmap nella " -"sottofinestra Esporta" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Valencian Catalan (ca@valencia)" +msgstr "Catalano valenziano (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1464 -#, fuzzy -msgid "Override file resolution" -msgstr "Risoluzione predefinita per l'esportazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:518 +msgid "Chinese/China (zh_CN)" +msgstr "Cinese/Cina (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1466 -#, fuzzy -msgid "Use default bitmap resolution in favor of information from file" -msgstr "" -"Risoluzione predefinita (in punti per pollice) delle bitmap nella " -"sottofinestra Esporta" +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Chinese/Taiwan (zh_TW)" +msgstr "Cinese/Taiwan (zh_TW)" -#. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1470 -#, fuzzy -msgid "Images in Outline Mode" -msgstr "Disegna un contorno" +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Croatian (hr)" +msgstr "Croato (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1471 -msgid "" -"When active will render images while in outline mode instead of a red box " -"with an x. This is useful for manual tracing." -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:519 +msgid "Czech (cs)" +msgstr "Ceco (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1473 -msgid "Bitmaps" -msgstr "Bitmap" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Danish (da)" +msgstr "Danese (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1485 -msgid "" -"Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added seperately to " -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Dutch (nl)" +msgstr "Olandese (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1488 -msgid "Shortcut file:" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Dzongkha (dz)" +msgstr "Dzongkha (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1491 -#: ../src/ui/dialog/template-load-tab.cpp:48 -#, fuzzy -msgid "Search:" -msgstr "Cerca" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "German (de)" +msgstr "Tedesco (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1503 -msgid "Shortcut" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "Greek (el)" +msgstr "Greco (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1504 -#: ../src/ui/widget/page-sizer.cpp:260 -msgid "Description" -msgstr "Descrizione" +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "English (en)" +msgstr "Inglese (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1559 -#: ../src/ui/dialog/pixelartdialog.cpp:296 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 -#: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:749 -msgid "Reset" -msgstr "Reimposta " +#: ../src/ui/dialog/inkscape-preferences.cpp:520 +msgid "English/Australia (en_AU)" +msgstr "Inglese/Australia (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1559 -msgid "" -"Remove all your customized keyboard shortcuts, and revert to the shortcuts " -"in the shortcut file listed above" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "English/Canada (en_CA)" +msgstr "Inglese/Canada (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1563 -#, fuzzy -msgid "Import ..." -msgstr "_Importa..." +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "English/Great Britain (en_GB)" +msgstr "Inglese/Gran Bretagna (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1563 -msgid "Import custom keyboard shortcuts from a file" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:521 +msgid "Pig Latin (en_US@piglatin)" +msgstr "Pig Latin (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1566 -#, fuzzy -msgid "Export ..." -msgstr "_Esporta bitmap..." +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Esperanto (eo)" +msgstr "Esperanto (eo)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Estonian (et)" +msgstr "Estone (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1566 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 #, fuzzy -msgid "Export custom keyboard shortcuts to a file" -msgstr "Esporta il documento come file PS" +msgid "Farsi (fa)" +msgstr "Amarico (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1576 -msgid "Keyboard Shortcuts" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Finnish (fi)" +msgstr "Finlandese (fi)" -#. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1739 -msgid "Misc" -msgstr "Varie" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "French (fr)" +msgstr "Francese (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1858 -msgid "Set the main spell check language" -msgstr "Imposta la lingua principale del controllo ortografico" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Irish (ga)" +msgstr "Irlandese (ga)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1861 -msgid "Second language:" -msgstr "Seconda lingua:" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Galician (gl)" +msgstr "Galiziona (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1862 -msgid "" -"Set the second spell check language; checking will only stop on words " -"unknown in ALL chosen languages" -msgstr "" -"Imposta la lingua secondaria per il controllo ortografico; il controllo " -"evidenzierĂ  solo parole non presenti in nessuna lingua selezionata" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Hebrew (he)" +msgstr "Ebreo (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1865 -msgid "Third language:" -msgstr "Terza lingua:" +#: ../src/ui/dialog/inkscape-preferences.cpp:523 +msgid "Hungarian (hu)" +msgstr "Ungherese (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1866 -msgid "" -"Set the third spell check language; checking will only stop on words unknown " -"in ALL chosen languages" -msgstr "" -"Imposta la terza lingua per il controllo ortografico; il controllo " -"evidenzierĂ  solo parole non presenti in nessuna lingua selezionata" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Indonesian (id)" +msgstr "Indonesiano (id)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1868 -msgid "Ignore words with digits" -msgstr "Ignora parole con numeri" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Italian (it)" +msgstr "Italiano (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1870 -msgid "Ignore words containing digits, such as \"R2D2\"" -msgstr "Ignora le parole contenenti numeri, come \"R2D2\"" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Japanese (ja)" +msgstr "Giapponese (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1872 -msgid "Ignore words in ALL CAPITALS" -msgstr "Ignora parole TUTTE MAIUSCOLE" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Khmer (km)" +msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1874 -msgid "Ignore words in all capitals, such as \"IUPAC\"" -msgstr "Ignora parole scritte tutte maiuscole, come \"IUPAC\"" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Kinyarwanda (rw)" +msgstr "Kinyarwanda (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1876 -msgid "Spellcheck" -msgstr "Correttore ortografico" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Korean (ko)" +msgstr "Koreano (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1896 -#, fuzzy -msgid "Latency _skew:" -msgstr "Latenza:" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Lithuanian (lt)" +msgstr "Lituano (lt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1897 -#, fuzzy -msgid "" -"Factor by which the event clock is skewed from the actual time (0.9766 on " -"some systems)" -msgstr "" -"Il fattore di ritardo del clock degli eventi dal tempo reale (0.9766 su " -"alcuni sistemi)." +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Latvian (lv)" +msgstr "Lettone (lv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1899 -msgid "Pre-render named icons" -msgstr "Effettua render anticipato delle icone con nome" +#: ../src/ui/dialog/inkscape-preferences.cpp:524 +msgid "Macedonian (mk)" +msgstr "Macedone (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1901 -msgid "" -"When on, named icons will be rendered before displaying the ui. This is for " -"working around bugs in GTK+ named icon notification" -msgstr "" -"Quando attivo, le icone con nome vengono renderizzate prima di essere " -"mostrate nell'interfaccia. Questo può aiutare ad evitare un bug nelle " -"notifiche delle icone di GTK+" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Mongolian (mn)" +msgstr "Mongolo (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1909 -msgid "System info" -msgstr "Informazione sistema" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Nepali (ne)" +msgstr "Nepalese (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1913 -msgid "User config: " -msgstr "Configurazione utente:" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Norwegian BokmĂĄl (nb)" +msgstr "Norvegese BokmĂĄl (nb)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1913 -msgid "Location of users configuration" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Norwegian Nynorsk (nn)" +msgstr "Norvegese Nynorsk (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1917 -#, fuzzy -msgid "User preferences: " -msgstr "Impostazioni gomma" +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Panjabi (pa)" +msgstr "Panjabi (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1917 -#, fuzzy -msgid "Location of the users preferences file" -msgstr "Impossibile file di impostazioni %s." +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Polish (pl)" +msgstr "Polacco (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1921 -#, fuzzy -msgid "User extensions: " -msgstr "Este_nsioni" +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Portuguese (pt)" +msgstr "Portoghese (pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1921 -#, fuzzy -msgid "Location of the users extensions" -msgstr "Informazioni sulle estensioni di Inkscape" +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Portuguese/Brazil (pt_BR)" +msgstr "Portoghese Brasiliano (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 -msgid "User cache: " -msgstr "Cache utente:" +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Romanian (ro)" +msgstr "Rumeno (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 -#, fuzzy -msgid "Location of users cache" -msgstr "Posizione lungo la curva" +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Russian (ru)" +msgstr "Russo (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 -msgid "Temporary files: " -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Serbian (sr)" +msgstr "Serbo (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 -msgid "Location of the temporary files used for autosave" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Serbian in Latin script (sr@latin)" +msgstr "Serbo in caratteri latini (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 -#, fuzzy -msgid "Inkscape data: " -msgstr "Manuale di Inkscape" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Slovak (sk)" +msgstr "Slovacco (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 -#, fuzzy -msgid "Location of Inkscape data" -msgstr "Informazioni sulle estensioni di Inkscape" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Slovenian (sl)" +msgstr "Sloveno (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 -#, fuzzy -msgid "Inkscape extensions: " -msgstr "Informazioni sulle estensioni di Inkscape" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Spanish (es)" +msgstr "Spagnolo (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 -#, fuzzy -msgid "Location of the Inkscape extensions" -msgstr "Informazioni sulle estensioni di Inkscape" +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Spanish/Mexico (es_MX)" +msgstr "Spagnolo messicano (es_MX)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "System data: " -msgstr "Dati sistema:" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Swedish (sv)" +msgstr "Svedese (sv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "Locations of system data" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Telugu (te_IN)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 -msgid "Icon theme: " -msgstr "Tema icone:" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 -#, fuzzy -msgid "Locations of icon themes" -msgstr "Posizione lungo la curva" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Thai (th)" +msgstr "Tailandese (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1976 -msgid "System" -msgstr "Sistema" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Turkish (tr)" +msgstr "Turco (tr)" -#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 -#: ../src/ui/dialog/input.cpp:1641 -#, fuzzy -msgid "Disabled" -msgstr "_Abilitata" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Ukrainian (uk)" +msgstr "Ucraino (uk)" -#: ../src/ui/dialog/input.cpp:361 -#, fuzzy -msgctxt "Input device" -msgid "Screen" -msgstr "Scherma" +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Vietnamese (vi)" +msgstr "Vietnamita (vi)" -#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 -#, fuzzy -msgid "Window" -msgstr "Finestre" +#: ../src/ui/dialog/inkscape-preferences.cpp:560 +msgid "Language (requires restart):" +msgstr "Lingua (richiede riapertura):" -#: ../src/ui/dialog/input.cpp:618 -msgid "Test Area" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:561 +msgid "Set the language for menus and number formats" +msgstr "Imposta la lingua per i menu e il formato dei numeri" -#: ../src/ui/dialog/input.cpp:619 -#, fuzzy -msgid "Axis" -msgstr "Asse X" +#: ../src/ui/dialog/inkscape-preferences.cpp:564 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 +msgid "Large" +msgstr "Grande" -#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 -msgid "Configuration" -msgstr "Configurazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:564 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 +msgid "Small" +msgstr "Piccola" -#: ../src/ui/dialog/input.cpp:709 -#, fuzzy -msgid "Hardware" -msgstr "Filo spinato" +#: ../src/ui/dialog/inkscape-preferences.cpp:564 +msgid "Smaller" +msgstr "PiĂą piccola" -#: ../src/ui/dialog/input.cpp:732 +#: ../src/ui/dialog/inkscape-preferences.cpp:568 #, fuzzy -msgid "Link:" -msgstr "Linea" +msgid "Toolbox icon size:" +msgstr "Dimensione icone barra degli strumenti" -#: ../src/ui/dialog/input.cpp:758 -#, fuzzy -msgid "Axes count:" -msgstr "QuantitĂ " +#: ../src/ui/dialog/inkscape-preferences.cpp:569 +msgid "Set the size for the tool icons (requires restart)" +msgstr "" +"Imposta la dimensione delle icone degli strumenti (richiede riapertura)" -#: ../src/ui/dialog/input.cpp:788 +#: ../src/ui/dialog/inkscape-preferences.cpp:572 #, fuzzy -msgid "axis:" -msgstr "Raggio:" +msgid "Control bar icon size:" +msgstr "Dimensione icone barra dei controlli" -#: ../src/ui/dialog/input.cpp:812 -#, fuzzy -msgid "Button count:" -msgstr "Bottone" +#: ../src/ui/dialog/inkscape-preferences.cpp:573 +msgid "" +"Set the size for the icons in tools' control bars to use (requires restart)" +msgstr "" +"Imposta la dimensione delle icone nella barra dei controlli degli strumenti " +"(richiede riapertura)" -#: ../src/ui/dialog/input.cpp:1010 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 #, fuzzy -msgid "Tablet" -msgstr "Tabella" +msgid "Secondary toolbar icon size:" +msgstr "Dimensione icone barra secondaria" -#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 -msgid "pad" +#: ../src/ui/dialog/inkscape-preferences.cpp:577 +msgid "" +"Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" +"Imposta la dimensione delle icone nella barre secondarie (richiede " +"riapertura)" -#: ../src/ui/dialog/input.cpp:1081 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 #, fuzzy -msgid "_Use pressure-sensitive tablet (requires restart)" -msgstr "Utilizza una tavoletta con sensore di pressione (richiede riapertura)" +msgid "Work-around color sliders not drawing" +msgstr "Evita problemi di visualizzazione barre di colore." -#: ../src/ui/dialog/input.cpp:1086 +#: ../src/ui/dialog/inkscape-preferences.cpp:582 #, fuzzy -msgid "Axes" -msgstr "Disegna assi" - -#: ../src/ui/dialog/input.cpp:1087 -msgid "Keys" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1170 msgid "" -"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " -"or to a single (usually focused) 'Window'" +"When on, will attempt to work around bugs in certain GTK themes drawing " +"color sliders" msgstr "" +"Quando attivo, cerca di evitare i problemi nella visualizzazione delle barre " +"di colore dovuti ad alcuni temi GTK." -#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 -#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 -msgid "Pressure" -msgstr "Pressione" +#: ../src/ui/dialog/inkscape-preferences.cpp:587 +msgid "Clear list" +msgstr "Pulisci lista" -#: ../src/ui/dialog/input.cpp:1616 -msgid "X tilt" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +msgid "Maximum documents in Open _Recent:" +msgstr "Numero massimo di documenti recenti:" -#: ../src/ui/dialog/input.cpp:1616 -msgid "Y tilt" +#: ../src/ui/dialog/inkscape-preferences.cpp:591 +msgid "" +"Set the maximum length of the Open Recent list in the File menu, or clear " +"the list" msgstr "" +"Imposta la lunghezza massima della lista Apri recente del menu File, o " +"pulisce la lista" -#: ../src/ui/dialog/input.cpp:1616 -#: ../src/widgets/sp-color-wheel-selector.cpp:59 -msgid "Wheel" -msgstr "Ruota" - -#: ../src/ui/dialog/layer-properties.cpp:55 -msgid "Layer name:" -msgstr "Nome del livello:" - -#: ../src/ui/dialog/layer-properties.cpp:136 -msgid "Add layer" -msgstr "Aggiungi livello" - -#: ../src/ui/dialog/layer-properties.cpp:176 -msgid "Above current" -msgstr "Sopra l'attuale" - -#: ../src/ui/dialog/layer-properties.cpp:180 -msgid "Below current" -msgstr "Sotto l'attuale" - -#: ../src/ui/dialog/layer-properties.cpp:183 -msgid "As sublayer of current" -msgstr "Un sottolivello dell'attuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:594 +#, fuzzy +msgid "_Zoom correction factor (in %):" +msgstr "Fattore di correzione ingrandimento (in %):" -#: ../src/ui/dialog/layer-properties.cpp:352 -msgid "Rename Layer" -msgstr "Rinomina livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:595 +msgid "" +"Adjust the slider until the length of the ruler on your screen matches its " +"real length. This information is used when zooming to 1:1, 1:2, etc., to " +"display objects in their true sizes" +msgstr "" +"Aggiustare il selettore finchĂ© la lunghezza del righello a schermo non " +"combacia con quella reale. Questa informazione verrĂ  usata quando si " +"ridimensiona 1:1, 1:2 o simili, per visualizzare gli oggetti nelle loro " +"dimensioni reali" -#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" -#: ../src/ui/dialog/layer-properties.cpp:354 -#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 -#: ../src/verbs.cpp:2289 -msgid "Layer" -msgstr "Livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:598 +msgid "Enable dynamic relayout for incomplete sections" +msgstr "" -#: ../src/ui/dialog/layer-properties.cpp:355 -msgid "_Rename" -msgstr "_Rinomina" +#: ../src/ui/dialog/inkscape-preferences.cpp:600 +msgid "" +"When on, will allow dynamic layout of components that are not completely " +"finished being refactored" +msgstr "" -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 -msgid "Rename layer" -msgstr "Rinomina livello" +#. show infobox +#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#, fuzzy +msgid "Show filter primitives infobox (requires restart)" +msgstr "Mostra le informazioni sulle primitive dei filtri" -#. TRANSLATORS: This means "The layer has been renamed" -#: ../src/ui/dialog/layer-properties.cpp:370 -msgid "Renamed layer" -msgstr "Livello rinominato" +#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#, fuzzy +msgid "" +"Show icons and descriptions for the filter primitives available at the " +"filter effects dialog" +msgstr "" +"Mostra le icone e le descrizioni per le primitive dei filtri disponibili " +"nella finestra dei filtri." -#: ../src/ui/dialog/layer-properties.cpp:374 -msgid "Add Layer" -msgstr "Aggiungi livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:608 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgid "Icons only" +msgstr "Colore delle linee guida" -#: ../src/ui/dialog/layer-properties.cpp:380 -msgid "_Add" -msgstr "_Aggiungi" +#: ../src/ui/dialog/inkscape-preferences.cpp:608 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgid "Text only" +msgstr "Input testo" -#: ../src/ui/dialog/layer-properties.cpp:404 -msgid "New layer created." -msgstr "Nuovo livello creato." +#: ../src/ui/dialog/inkscape-preferences.cpp:608 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgid "Icons and text" +msgstr "Dentro e fuori" -#: ../src/ui/dialog/layer-properties.cpp:408 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 #, fuzzy -msgid "Move to Layer" -msgstr "Abbassa livello" +msgid "Dockbar style (requires restart):" +msgstr "Lingua (richiede riapertura):" -#: ../src/ui/dialog/layer-properties.cpp:411 -#: ../src/ui/dialog/transformation.cpp:114 -msgid "_Move" -msgstr "_Muovi" +#: ../src/ui/dialog/inkscape-preferences.cpp:614 +msgid "" +"Selects whether the vertical bars on the dockbar will show text labels, " +"icons, or both" +msgstr "" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Unhide layer" -msgstr "Mostra livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#, fuzzy +msgid "Switcher style (requires restart):" +msgstr "(richiede riapertura)" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Hide layer" -msgstr "Nascondi livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:622 +msgid "" +"Selects whether the dockbar switcher will show text labels, icons, or both" +msgstr "" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Lock layer" -msgstr "Blocca livello" +#. Windows +#: ../src/ui/dialog/inkscape-preferences.cpp:626 +msgid "Save and restore window geometry for each document" +msgstr "Salva e imposta le dimensioni della finestra per ogni documento" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Unlock layer" -msgstr "Sblocca livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:627 +msgid "Remember and use last window's geometry" +msgstr "Salva e riutilizza la dimensione dell'ultima finestra" -#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1405 -msgid "Toggle layer solo" -msgstr "VisibilitĂ  esclusiva del livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:628 +msgid "Don't save window geometry" +msgstr "Non salvare la dimensione della finestra" -#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1429 -#, fuzzy -msgid "Lock other layers" -msgstr "Blocca livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:630 +msgid "Save and restore dialogs status" +msgstr "" -#: ../src/ui/dialog/layers.cpp:721 -#, fuzzy -msgid "Moved layer" -msgstr "Abbassa livello" +#: ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 +msgid "Don't save dialogs status" +msgstr "" -#: ../src/ui/dialog/layers.cpp:884 -#, fuzzy -msgctxt "Layers" -msgid "New" -msgstr "Nuovo" +#: ../src/ui/dialog/inkscape-preferences.cpp:633 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 +msgid "Dockable" +msgstr "Fissabile" -#: ../src/ui/dialog/layers.cpp:889 -#, fuzzy -msgctxt "Layers" -msgid "Bot" -msgstr "Fondo" +#: ../src/ui/dialog/inkscape-preferences.cpp:637 +msgid "Native open/save dialogs" +msgstr "" -#: ../src/ui/dialog/layers.cpp:895 -#, fuzzy -msgctxt "Layers" -msgid "Dn" -msgstr "Basso" +#: ../src/ui/dialog/inkscape-preferences.cpp:638 +msgid "GTK open/save dialogs" +msgstr "" -#: ../src/ui/dialog/layers.cpp:901 -#, fuzzy -msgctxt "Layers" -msgid "Up" -msgstr "Alto" +#: ../src/ui/dialog/inkscape-preferences.cpp:640 +msgid "Dialogs are hidden in taskbar" +msgstr "Le sottofinestre vengono nascoste nella barra" -#: ../src/ui/dialog/layers.cpp:907 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 #, fuzzy -msgctxt "Layers" -msgid "Top" -msgstr "Cima" +msgid "Save and restore documents viewport" +msgstr "Salva e imposta le dimensioni della finestra per ogni documento" -#: ../src/ui/dialog/livepatheffect-add.cpp:32 -#, fuzzy -msgid "Add Path Effect" -msgstr "Attiva effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:642 +msgid "Zoom when window is resized" +msgstr "Adatta al ridimensionamento della finestra" -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 -#, fuzzy -msgid "Add path effect" -msgstr "Attiva effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:643 +msgid "Show close button on dialogs" +msgstr "Mostra il bottone di chiusura nelle sottofinestre" -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 -#, fuzzy -msgid "Delete current path effect" -msgstr "Elimina livello a_ttuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Aggressive" +msgstr "Aggressivo" -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 -#, fuzzy -msgid "Raise the current path effect" -msgstr "Alza il livello attuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:649 +msgid "Maximized" +msgstr "Massimizzata" -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 -#, fuzzy -msgid "Lower the current path effect" -msgstr "Abbassa il livello attuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:653 +msgid "Default window size:" +msgstr "Dimensione finestra predefinita:" -#: ../src/ui/dialog/livepatheffect-editor.cpp:313 -msgid "Unknown effect is applied" -msgstr "Ă applicato un effetto sconosciuto" +#: ../src/ui/dialog/inkscape-preferences.cpp:654 +msgid "Set the default window size" +msgstr "Imposta la dimensione finestra predefinita" -#: ../src/ui/dialog/livepatheffect-editor.cpp:316 -#, fuzzy -msgid "Click button to add an effect" -msgstr "Disegno di fumetto abbozzato" +#: ../src/ui/dialog/inkscape-preferences.cpp:657 +msgid "Saving window geometry (size and position)" +msgstr "Salvataggio geometria finestra (dimensione e posizione)" -#: ../src/ui/dialog/livepatheffect-editor.cpp:329 -msgid "Click add button to convert clone" +#: ../src/ui/dialog/inkscape-preferences.cpp:659 +msgid "Let the window manager determine placement of all windows" msgstr "" +"Permette al gestore di finestre di determinare la posizione di tutte le " +"finestre" -#: ../src/ui/dialog/livepatheffect-editor.cpp:334 -#: ../src/ui/dialog/livepatheffect-editor.cpp:338 -#: ../src/ui/dialog/livepatheffect-editor.cpp:346 -#, fuzzy -msgid "Select a path or shape" -msgstr "L'elemento non è una forma o un tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +msgid "" +"Remember and use the last window's geometry (saves geometry to user " +"preferences)" +msgstr "" +"Ricorda e usa l'ultima geometria della finestra (salva la geometria nelle " +"preferenze dell'utente)" -#: ../src/ui/dialog/livepatheffect-editor.cpp:342 -msgid "Only one item can be selected" -msgstr "Può essere selezionato un solo elemento" +#: ../src/ui/dialog/inkscape-preferences.cpp:663 +msgid "" +"Save and restore window geometry for each document (saves geometry in the " +"document)" +msgstr "" +"Salva e reimposta la geometria della finestra di ogni documento (salva la " +"geometria nel documento)" -#: ../src/ui/dialog/livepatheffect-editor.cpp:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:665 #, fuzzy -msgid "Unknown effect" -msgstr "Ă applicato un effetto sconosciuto" +msgid "Saving dialogs status" +msgstr "Mostra la finestra all'avvio" -#: ../src/ui/dialog/livepatheffect-editor.cpp:450 -msgid "Create and apply path effect" -msgstr "Crea e applica effetti su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:669 +msgid "" +"Save and restore dialogs status (the last open windows dialogs are saved " +"when it closes)" +msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:485 +#: ../src/ui/dialog/inkscape-preferences.cpp:673 +msgid "Dialog behavior (requires restart)" +msgstr "Comportamento sottofinestre (richiede riapertura)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:679 #, fuzzy -msgid "Create and apply Clone original path effect" -msgstr "Crea e applica effetti su tracciato" +msgid "Desktop integration" +msgstr "Destinazione" -#: ../src/ui/dialog/livepatheffect-editor.cpp:505 -msgid "Remove path effect" -msgstr "Rimuove effetti su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:681 +msgid "Use Windows like open and save dialogs" +msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:522 -msgid "Move path effect up" -msgstr "Sposta in alto effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:683 +msgid "Use GTK open and save dialogs " +msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:538 -msgid "Move path effect down" -msgstr "Sposta in basso effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:687 +msgid "Dialogs on top:" +msgstr "Risalto delle sottofinestre:" -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 -msgid "Activate path effect" -msgstr "Attiva effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:690 +msgid "Dialogs are treated as regular windows" +msgstr "Le sottofinestre sono trattate come finestre normali" -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 -msgid "Deactivate path effect" -msgstr "Disattiva effetto su tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:692 +msgid "Dialogs stay on top of document windows" +msgstr "Le sottofinestre stanno davanti alla finestra del documento" -#: ../src/ui/dialog/memory.cpp:96 -msgid "Heap" -msgstr "Heap" +#: ../src/ui/dialog/inkscape-preferences.cpp:694 +msgid "Same as Normal but may work better with some window managers" +msgstr "Come Normale, ma funziona meglio con alcuni gestori di finestre" -#: ../src/ui/dialog/memory.cpp:97 -msgid "In Use" -msgstr "In uso" +#: ../src/ui/dialog/inkscape-preferences.cpp:697 +#, fuzzy +msgid "Dialog Transparency" +msgstr "Trasparenza finestre:" -#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. -#. More typical usage is to call this memory "free" rather than "slack". -#: ../src/ui/dialog/memory.cpp:100 -msgid "Slack" -msgstr "Slack" +#: ../src/ui/dialog/inkscape-preferences.cpp:699 +#, fuzzy +msgid "_Opacity when focused:" +msgstr "OpacitĂ  con il focus:" -#: ../src/ui/dialog/memory.cpp:101 -msgid "Total" -msgstr "Totale" +#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#, fuzzy +msgid "Opacity when _unfocused:" +msgstr "OpacitĂ  senza il focus:" -#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 -#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 -msgid "Unknown" -msgstr "Sconosciuto" +#: ../src/ui/dialog/inkscape-preferences.cpp:703 +#, fuzzy +msgid "_Time of opacity change animation:" +msgstr "Durata dell'animazione di cambio opacitĂ :" -#: ../src/ui/dialog/memory.cpp:167 -msgid "Combined" -msgstr "Combinato" +#: ../src/ui/dialog/inkscape-preferences.cpp:706 +msgid "Miscellaneous" +msgstr "Varie" -#: ../src/ui/dialog/memory.cpp:209 -msgid "Recalculate" -msgstr "Ricalcola" +#: ../src/ui/dialog/inkscape-preferences.cpp:709 +msgid "Whether dialog windows are to be hidden in the window manager taskbar" +msgstr "" +"Le sottofinestre non verranno mostrate nella barra del gestore di finestre" -#: ../src/ui/dialog/messages.cpp:47 -#, fuzzy -msgid "Clear log messages" -msgstr "Intercetta i messaggi di log" +#: ../src/ui/dialog/inkscape-preferences.cpp:712 +msgid "" +"Zoom drawing when document window is resized, to keep the same area visible " +"(this is the default which can be changed in any window using the button " +"above the right scrollbar)" +msgstr "" +"Adatta il disegno quando la finestra del documento viene ridimensionata, per " +"mantenere la stessa area visibile (questo sarĂ  il comportamento " +"preimpostato, potrĂ  essere cambiato per ciascuna finestra usando il bottone " +"sopra la barra di scorrimento di destra)" -#: ../src/ui/dialog/messages.cpp:81 -msgid "Ready." -msgstr "Pronto." +#: ../src/ui/dialog/inkscape-preferences.cpp:714 +msgid "" +"Save documents viewport (zoom and panning position). Useful to turn off when " +"sharing version controlled files." +msgstr "" -#: ../src/ui/dialog/messages.cpp:174 -msgid "Log capture started." +#: ../src/ui/dialog/inkscape-preferences.cpp:716 +msgid "Whether dialog windows have a close button (requires restart)" msgstr "" +"Determina se le sottofinestre hanno il bottone di chiusura (richiede " +"riapertura)" -#: ../src/ui/dialog/messages.cpp:203 -msgid "Log capture stopped." +#: ../src/ui/dialog/inkscape-preferences.cpp:717 +msgid "Windows" +msgstr "Finestre" + +#. Grids +#: ../src/ui/dialog/inkscape-preferences.cpp:720 +msgid "Line color when zooming out" msgstr "" -#: ../src/ui/dialog/new-from-template.cpp:24 +#: ../src/ui/dialog/inkscape-preferences.cpp:723 #, fuzzy -msgid "Create from template" -msgstr "Crea tracciato Spiro" +msgid "The gridlines will be shown in minor grid line color" +msgstr "" +"Se impostate e rimpicciolito, le linee della griglia saranno mostrate con " +"colori normali invece che con quelli delle linee principali." -#: ../src/ui/dialog/new-from-template.cpp:26 -msgid "New From Template" +#: ../src/ui/dialog/inkscape-preferences.cpp:725 +#, fuzzy +msgid "The gridlines will be shown in major grid line color" msgstr "" +"Se impostate e rimpicciolito, le linee della griglia saranno mostrate con " +"colori normali invece che con quelli delle linee principali." -#: ../src/ui/dialog/object-attributes.cpp:47 -msgid "Href:" -msgstr "Href:" +#: ../src/ui/dialog/inkscape-preferences.cpp:727 +msgid "Default grid settings" +msgstr "Impostazioni predefinite griglia" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute -#. Identifies the type of the related resource with an absolute URI -#: ../src/ui/dialog/object-attributes.cpp:52 -msgid "Role:" -msgstr "Ruolo:" +#: ../src/ui/dialog/inkscape-preferences.cpp:733 +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +msgid "Grid units:" +msgstr "UnitĂ  della griglia:" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute -#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. -#: ../src/ui/dialog/object-attributes.cpp:55 -msgid "Arcrole:" -msgstr "Ruolo aggiuntivo:" +#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:763 +msgid "Origin X:" +msgstr "Origine X:" -#: ../src/ui/dialog/object-attributes.cpp:58 -#: ../share/extensions/polyhedron_3d.inx.h:47 -msgid "Show:" -msgstr "Mostra:" +#: ../src/ui/dialog/inkscape-preferences.cpp:739 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +msgid "Origin Y:" +msgstr "Origine Y:" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute -#: ../src/ui/dialog/object-attributes.cpp:60 -msgid "Actuate:" -msgstr "Attuazione:" +#: ../src/ui/dialog/inkscape-preferences.cpp:744 +msgid "Spacing X:" +msgstr "Spaziatura X:" -#: ../src/ui/dialog/object-attributes.cpp:65 -msgid "URL:" -msgstr "URL:" +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 +msgid "Spacing Y:" +msgstr "Spaziatura Y:" -#: ../src/ui/dialog/object-attributes.cpp:70 -#, fuzzy -msgid "Image Rendering:" -msgstr "Rendering" +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:748 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 +msgid "Minor grid line color:" +msgstr "Colore delle linee principali della griglia:" -#: ../src/ui/dialog/object-properties.cpp:58 -#: ../src/ui/dialog/object-properties.cpp:399 -#: ../src/ui/dialog/object-properties.cpp:470 -#: ../src/ui/dialog/object-properties.cpp:477 -#, fuzzy -msgid "_ID:" -msgstr "_ID: " +#: ../src/ui/dialog/inkscape-preferences.cpp:748 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 +msgid "Color used for normal grid lines" +msgstr "Colore usato per le linee semplici della griglia" -#: ../src/ui/dialog/object-properties.cpp:60 -#, fuzzy -msgid "_Title:" -msgstr "_Titolo" +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:750 +#: ../src/ui/dialog/inkscape-preferences.cpp:774 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 +msgid "Major grid line color:" +msgstr "Colore delle linee principali della griglia:" -#: ../src/ui/dialog/object-properties.cpp:61 -#, fuzzy -msgid "_Image Rendering:" -msgstr "Rendering" +#: ../src/ui/dialog/inkscape-preferences.cpp:750 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 +msgid "Color used for major (highlighted) grid lines" +msgstr "Colore usato per le linee principali (evidenziate) della griglia" -#: ../src/ui/dialog/object-properties.cpp:62 -msgid "_Hide" -msgstr "Na_scondi" +#: ../src/ui/dialog/inkscape-preferences.cpp:752 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 +msgid "Major grid line every:" +msgstr "Linee principali della griglia ogni:" -#: ../src/ui/dialog/object-properties.cpp:63 -msgid "L_ock" -msgstr "Bl_occa" +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +msgid "Show dots instead of lines" +msgstr "Visualizza punti invece di linee" -#. Create the entry box for the object id -#: ../src/ui/dialog/object-properties.cpp:139 -msgid "" -"The id= attribute (only letters, digits, and the characters .-_: allowed)" +#: ../src/ui/dialog/inkscape-preferences.cpp:754 +msgid "If set, display dots at gridpoints instead of gridlines" msgstr "" -"L'attributo id= (sono ammessi solo lettere, numeri, e i caratteri .-_:)" - -#. Create the entry box for the object label -#: ../src/ui/dialog/object-properties.cpp:174 -msgid "A freeform label for the object" -msgstr "Un'etichetta personale per l'oggetto" +"Se impostato, visualizza i punti di intersezione delle griglie invece delle " +"linee" -#. Create the frame for the object description -#: ../src/ui/dialog/object-properties.cpp:225 +#: ../src/ui/dialog/inkscape-preferences.cpp:835 #, fuzzy -msgid "_Description:" -msgstr "Descrizione" +msgid "Input/Output" +msgstr "Output" -#: ../src/ui/dialog/object-properties.cpp:260 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 +msgid "Use current directory for \"Save As ...\"" +msgstr "Usa la cartella attuale per «Salva come...»" + +#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#, fuzzy msgid "" -"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" -"\t'auto' no preference;\n" -"\t'optimizeQuality' smooth;\n" -"\t'optimizeSpeed' blocky.\n" -"Note that this behaviour is not defined in the SVG 1.1 specification and not " -"all browsers follow this interpretation." +"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " +"always open in the directory where the currently open document is; when it's " +"off, each will open in the directory where you last saved a file using it" msgstr "" +"Quando questa opzione è attiva, la finestra «Salva come...» verrĂ  aperta " +"alla cartella in cui risiede il documento aperto. Se disattivata, verrĂ  " +"all'ultima cartella in cui è stato salvato in questa maniera un file." -#. Hide -#: ../src/ui/dialog/object-properties.cpp:293 -msgid "Check to make the object invisible" -msgstr "Rende l'oggetto invisibile" +#: ../src/ui/dialog/inkscape-preferences.cpp:842 +msgid "Add label comments to printing output" +msgstr "Aggiungi i commenti all'output di stampa" -#. Lock -#. TRANSLATORS: "Lock" is a verb here -#: ../src/ui/dialog/object-properties.cpp:309 -msgid "Check to make the object insensitive (not selectable by mouse)" -msgstr "Rende l'oggetto bloccato (non selezionabile col mouse)" +#: ../src/ui/dialog/inkscape-preferences.cpp:844 +msgid "" +"When on, a comment will be added to the raw print output, marking the " +"rendered output for an object with its label" +msgstr "" +"Quando impostato, viene aggiunto un commento all'output di stampa grezzo, in " +"modo da evidenziare la visualizzazione di stampa di un oggetto con la " +"propria etichetta" -#. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2632 -#: ../src/verbs.cpp:2638 -msgid "_Set" -msgstr "Impo_sta" +#: ../src/ui/dialog/inkscape-preferences.cpp:846 +msgid "Add default metadata to new documents" +msgstr "Aggiungi i metadati predefiniti ai nuovi documenti:" -#. Create the frame for interactivity options -#: ../src/ui/dialog/object-properties.cpp:339 -msgid "_Interactivity" -msgstr "_Interazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:848 +msgid "" +"Add default metadata to new documents. Default metadata can be set from " +"Document Properties->Metadata." +msgstr "" +"Aggiunge i metadati predefiniti ai nuovi documenti. I metadati predefiniti " +"possono essere impostati in ProprietĂ  del documento->Metadati." -#: ../src/ui/dialog/object-properties.cpp:386 -#: ../src/ui/dialog/object-properties.cpp:391 -msgid "Ref" -msgstr "Riferimento" +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +#, fuzzy +msgid "_Grab sensitivity:" +msgstr "Area di azione:" -#: ../src/ui/dialog/object-properties.cpp:472 -msgid "Id invalid! " -msgstr "Id non valido! " +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +msgid "pixels (requires restart)" +msgstr "pixel (richiede riapertura)" -#: ../src/ui/dialog/object-properties.cpp:474 -msgid "Id exists! " -msgstr "Id giĂ  esistente!" +#: ../src/ui/dialog/inkscape-preferences.cpp:853 +msgid "" +"How close on the screen you need to be to an object to be able to grab it " +"with mouse (in screen pixels)" +msgstr "" +"La distanza in pixel a cui si può essere da un oggetto per poterlo attivare " +"col mouse (in pixel dello schermo)" -#: ../src/ui/dialog/object-properties.cpp:480 -msgid "Set object ID" -msgstr "Imposta ID oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:855 +#, fuzzy +msgid "_Click/drag threshold:" +msgstr "Soglia per il clic o spostamento" -#: ../src/ui/dialog/object-properties.cpp:494 -msgid "Set object label" -msgstr "Imposta etichetta oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:855 +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +msgid "pixels" +msgstr "pixel" -#: ../src/ui/dialog/object-properties.cpp:500 -msgid "Set object title" -msgstr "Imposta titolo oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:856 +msgid "" +"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" +msgstr "" +"Spostamento in pixel massimo col mouse da considerarsi ancora selezione e " +"non spostamento" -#: ../src/ui/dialog/object-properties.cpp:509 -msgid "Set object description" -msgstr "Imposta descrizione oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:859 +msgid "_Handle size:" +msgstr "_Dimensione maniglia:" -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Lock object" -msgstr "Blocca oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:860 +msgid "Set the relative size of node handles" +msgstr "Imposta la dimensione relativa delle maniglie" -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Unlock object" -msgstr "Sblocca oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:862 +msgid "Use pressure-sensitive tablet (requires restart)" +msgstr "Utilizza una tavoletta con sensore di pressione (richiede riapertura)" -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Hide object" -msgstr "Nascondi oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:864 +msgid "" +"Use the capabilities of a tablet or other pressure-sensitive device. Disable " +"this only if you have problems with the tablet (you can still use it as a " +"mouse)" +msgstr "" +"Sfrutta le caratteristiche di una tavoletta o di altri dispositivi a " +"pressione. Disabilitare solo in caso di problemi con la tavoletta (che " +"continuerĂ  a funzionare come un mouse)" -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Unhide object" -msgstr "Mostra oggetto" +#: ../src/ui/dialog/inkscape-preferences.cpp:866 +msgid "Switch tool based on tablet device (requires restart)" +msgstr "" +"Cambia strumento in base al dispositivo usato sulla tavoletta (richiede " +"riapertura):" -#: ../src/ui/dialog/ocaldialogs.cpp:715 -msgid "Clipart found" +#: ../src/ui/dialog/inkscape-preferences.cpp:868 +msgid "" +"Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" +"Cambia lo strumento quando dispositivi diversi vengono usati sulla tavoletta " +"(penna, gomma, mouse)" -#: ../src/ui/dialog/ocaldialogs.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:869 #, fuzzy -msgid "Downloading image..." -msgstr "Creazione bitmap..." +msgid "Input devices" +msgstr "Dispositivi di _input..." -#: ../src/ui/dialog/ocaldialogs.cpp:912 -#, fuzzy -msgid "Could not download image" -msgstr "Impossibile trovare il file: %s" +#. SVG output options +#: ../src/ui/dialog/inkscape-preferences.cpp:872 +msgid "Use named colors" +msgstr "Usa nomi colori" -#: ../src/ui/dialog/ocaldialogs.cpp:922 -msgid "Clipart downloaded successfully" +#: ../src/ui/dialog/inkscape-preferences.cpp:873 +msgid "" +"If set, write the CSS name of the color when available (e.g. 'red' or " +"'magenta') instead of the numeric value" msgstr "" +"quando impostato, scrive il nome CSS del colore se disponibile (es. «red» o " +"«magenta») invece del valore numerico" -#: ../src/ui/dialog/ocaldialogs.cpp:936 -#, fuzzy -msgid "Could not download thumbnail file" -msgstr "Impossibile trovare il file: %s" +#: ../src/ui/dialog/inkscape-preferences.cpp:875 +msgid "XML formatting" +msgstr "Formattazione XML" -#: ../src/ui/dialog/ocaldialogs.cpp:1011 -#, fuzzy -msgid "No description" -msgstr " descrizione: " +#: ../src/ui/dialog/inkscape-preferences.cpp:877 +msgid "Inline attributes" +msgstr "Attributi inline" -#: ../src/ui/dialog/ocaldialogs.cpp:1079 -#, fuzzy -msgid "Searching clipart..." -msgstr "Inversione tracciati" +#: ../src/ui/dialog/inkscape-preferences.cpp:878 +msgid "Put attributes on the same line as the element tag" +msgstr "Mette gli attributi sulla stessa riga del tag dell'elemento" -#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 -#, fuzzy -msgid "Could not connect to the Open Clip Art Library" -msgstr "Esporta questo documento nell'Open Clip Art Library" +#: ../src/ui/dialog/inkscape-preferences.cpp:881 +msgid "_Indent, spaces:" +msgstr "_Indentazione, spazi:" -#: ../src/ui/dialog/ocaldialogs.cpp:1145 -#, fuzzy -msgid "Could not parse search results" -msgstr "Impossibile leggere i dati SVG" +#: ../src/ui/dialog/inkscape-preferences.cpp:881 +msgid "" +"The number of spaces to use for indenting nested elements; set to 0 for no " +"indentation" +msgstr "" +"Numero di spazi usati per l'indentazione di elementi annidati; impostare a " +"zero per non avere indentazione" -#: ../src/ui/dialog/ocaldialogs.cpp:1177 -#, fuzzy -msgid "No clipart named %1 was found." -msgstr "Dagli appunti" +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Path data" +msgstr "Dati tracciato" -#: ../src/ui/dialog/ocaldialogs.cpp:1179 +#: ../src/ui/dialog/inkscape-preferences.cpp:886 +msgid "Absolute" +msgstr "Assoluto" + +#: ../src/ui/dialog/inkscape-preferences.cpp:886 +msgid "Relative" +msgstr "Relativo" + +#: ../src/ui/dialog/inkscape-preferences.cpp:886 +#: ../src/ui/dialog/inkscape-preferences.cpp:1176 +msgid "Optimized" +msgstr "Ottimizzato" + +#: ../src/ui/dialog/inkscape-preferences.cpp:890 +msgid "Path string format:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:890 msgid "" -"Please make sure all keywords are spelled correctly, or try again with " -"different keywords." +"Path data should be written: only with absolute coordinates, only with " +"relative coordinates, or optimized for string length (mixed absolute and " +"relative coordinates)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:892 +msgid "Force repeat commands" +msgstr "Forza ripetizione comandi" + +#: ../src/ui/dialog/inkscape-preferences.cpp:893 +msgid "" +"Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " +"of 'L 1,2 3,4')" msgstr "" +"Forza la ripetizione degli stessi comandi di tracciato (per esempio 'L 1,2 L " +"3,4' invece di 'L 1,2 3,4')" -#: ../src/ui/dialog/ocaldialogs.cpp:1231 -msgid "Search" -msgstr "Cerca" +#: ../src/ui/dialog/inkscape-preferences.cpp:895 +msgid "Numbers" +msgstr "Numeri" -#: ../src/ui/dialog/ocaldialogs.cpp:1243 -msgid "Close" -msgstr "Chiudi" +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#, fuzzy +msgid "_Numeric precision:" +msgstr "Precisione numerica:" -#: ../src/ui/dialog/pixelartdialog.cpp:190 -msgid "_Curves (multiplier):" +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "Significant figures of the values written to the SVG file" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:193 -msgid "Favors connections that are part of a long curve" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:901 +#, fuzzy +msgid "Minimum _exponent:" +msgstr "Messimo esponente:" -#: ../src/ui/dialog/pixelartdialog.cpp:204 +#: ../src/ui/dialog/inkscape-preferences.cpp:901 #, fuzzy -msgid "_Islands (weight):" -msgstr "Altezza barre:" +msgid "" +"The smallest number written to SVG is 10 to the power of this exponent; " +"anything smaller is written as zero" +msgstr "" +"Il piĂą piccolo numero scrivibile su SVG è 10 elevato a questa potenza; " +"qualsiasi cosa piĂą piccola viene approssimata a zero." -#: ../src/ui/dialog/pixelartdialog.cpp:207 -msgid "Avoid single disconnected pixels" +#. Code to add controls for attribute checking options +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:906 +msgid "Improper Attributes Actions" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:209 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:924 #, fuzzy -msgid "A constant vote value" -msgstr "Angolo di rotazione" +msgid "Print warnings" +msgstr "Margini di stampa" -#: ../src/ui/dialog/pixelartdialog.cpp:219 -msgid "Sparse pixels (window _radius):" +#: ../src/ui/dialog/inkscape-preferences.cpp:909 +msgid "" +"Print warning if invalid or non-useful attributes found. Database files " +"located in inkscape_data_dir/attributes." msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:228 -msgid "The radius of the window analyzed" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:910 +#, fuzzy +msgid "Remove attributes" +msgstr "Imposta attributo" -#: ../src/ui/dialog/pixelartdialog.cpp:229 -msgid "Sparse pixels (_multiplier):" +#: ../src/ui/dialog/inkscape-preferences.cpp:911 +msgid "Delete invalid or non-useful attributes from element tag" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:240 -msgid "Favors connections that are part of foreground color" +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:914 +msgid "Inappropriate Style Properties Actions" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:246 -msgid "The heuristic computed vote will be multiplied by this value" +#: ../src/ui/dialog/inkscape-preferences.cpp:917 +msgid "" +"Print warning if inappropriate style properties found (i.e. 'font-family' " +"set on a ). Database files located in inkscape_data_dir/attributes." msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:259 -msgid "Heuristics" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:918 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 +#, fuzzy +msgid "Remove style properties" +msgstr "Mostra le proprietĂ  di questo triangolo" -#: ../src/ui/dialog/pixelartdialog.cpp:266 +#: ../src/ui/dialog/inkscape-preferences.cpp:919 #, fuzzy -msgid "_Voronoi diagram" -msgstr "Muovi motivi" +msgid "Delete inappropriate style properties" +msgstr "Imposta proprietĂ  delle guide" -#: ../src/ui/dialog/pixelartdialog.cpp:267 -msgid "Output composed of straight lines" +#. Add default or inherited style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:922 +msgid "Non-useful Style Properties Actions" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:273 -#, fuzzy -msgid "Convert to _B-spline curves" -msgstr "Converti in tratti" - -#: ../src/ui/dialog/pixelartdialog.cpp:274 -msgid "Preserve staircasing artifacts" +#: ../src/ui/dialog/inkscape-preferences.cpp:925 +msgid "" +"Print warning if redundant style properties found (i.e. if a property has " +"the default value and a different value is not inherited or if value is the " +"same as would be inherited). Database files located in inkscape_data_dir/" +"attributes." msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:281 +#: ../src/ui/dialog/inkscape-preferences.cpp:927 #, fuzzy -msgid "_Smooth curves" -msgstr "Smussa angoli" +msgid "Delete redundant style properties" +msgstr "Imposta proprietĂ  delle guide" -#: ../src/ui/dialog/pixelartdialog.cpp:282 -msgid "The Kopf-Lischinski algorithm" +#: ../src/ui/dialog/inkscape-preferences.cpp:929 +msgid "Check Attributes and Style Properties on" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:289 -msgid "Output" -msgstr "Output" - -#: ../src/ui/dialog/pixelartdialog.cpp:297 -#: ../src/ui/dialog/tracedialog.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:931 #, fuzzy -msgid "Reset all settings to defaults" -msgstr "Reimposta tutti valori ai predefiniti" - -#: ../src/ui/dialog/pixelartdialog.cpp:302 -#: ../src/ui/dialog/tracedialog.cpp:819 -msgid "Abort a trace in progress" -msgstr "Annulla una vettorizzazione in corso" - -#: ../src/ui/dialog/pixelartdialog.cpp:306 -#: ../src/ui/dialog/tracedialog.cpp:823 -msgid "Execute the trace" -msgstr "Esegue la vettorizzazione" +msgid "Reading" +msgstr "Ombreggiatura" -#: ../src/ui/dialog/pixelartdialog.cpp:388 +#: ../src/ui/dialog/inkscape-preferences.cpp:932 msgid "" -"Image looks too big. Process may take a while and is wise to save your " -"document before continue.\n" -"\n" -"Continue the procedure (without saving)?" +"Check attributes and style properties on reading in SVG files (including " +"those internal to Inkscape which will slow down startup)" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#, fuzzy +msgid "Editing" +msgstr "_Modifica" + +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "" -"Image looks too big. Process may take a while and it is wise to save your " -"document before continuing.\n" -"\n" -"Continue the procedure (without saving)?" +"Check attributes and style properties while editing SVG files (may slow down " +"Inkscape, mostly useful for debugging)" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:499 +#: ../src/ui/dialog/inkscape-preferences.cpp:935 #, fuzzy -msgid "Trace pixel art" -msgstr "pixel a" +msgid "Writing" +msgstr "Script" -#: ../src/ui/dialog/polar-arrange-tab.cpp:43 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Anchor point:" -msgstr "Orientamento" +#: ../src/ui/dialog/inkscape-preferences.cpp:936 +msgid "Check attributes and style properties on writing out SVG files" +msgstr "" -#: ../src/ui/dialog/polar-arrange-tab.cpp:47 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Object's bounding box:" -msgstr "riquadro" +#: ../src/ui/dialog/inkscape-preferences.cpp:938 +msgid "SVG output" +msgstr "Output SVG" -#: ../src/ui/dialog/polar-arrange-tab.cpp:54 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Object's rotational center" -msgstr "Centro di rotazione oggetto" +#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm +#: ../src/ui/dialog/inkscape-preferences.cpp:944 +msgid "Perceptual" +msgstr "Percettivo" -#: ../src/ui/dialog/polar-arrange-tab.cpp:59 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Arrange on:" -msgstr "Ordinamento" +#: ../src/ui/dialog/inkscape-preferences.cpp:944 +msgid "Relative Colorimetric" +msgstr "Colorimetrico relativo" -#: ../src/ui/dialog/polar-arrange-tab.cpp:63 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "First selected circle/ellipse/arc" -msgstr "Crea cerchi, ellissi e archi" +#: ../src/ui/dialog/inkscape-preferences.cpp:944 +msgid "Absolute Colorimetric" +msgstr "Colorimetrico assoluto" -#: ../src/ui/dialog/polar-arrange-tab.cpp:68 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Last selected circle/ellipse/arc" -msgstr "Ultimo colore selezionato" +#: ../src/ui/dialog/inkscape-preferences.cpp:948 +msgid "(Note: Color management has been disabled in this build)" +msgstr "(Nota: la gestione del colore è stata disabilitata in questa versione)" -#: ../src/ui/dialog/polar-arrange-tab.cpp:73 -#, fuzzy -msgctxt "Polar arrange tab" -msgid "Parameterized:" -msgstr "Parametri" +#: ../src/ui/dialog/inkscape-preferences.cpp:952 +msgid "Display adjustment" +msgstr "Correzione display" -#: ../src/ui/dialog/polar-arrange-tab.cpp:78 -#, fuzzy -msgid "Center X/Y:" -msgstr "Centra" +#: ../src/ui/dialog/inkscape-preferences.cpp:962 +#, c-format +msgid "" +"The ICC profile to use to calibrate display output.\n" +"Searched directories:%s" +msgstr "" +"Il profilo ICC da usare per calibrare l'output del display.\n" +"Cartelle di ricerca:%s" -#: ../src/ui/dialog/polar-arrange-tab.cpp:91 -#, fuzzy -msgid "Radius X/Y:" -msgstr "Raggio:" +#: ../src/ui/dialog/inkscape-preferences.cpp:963 +msgid "Display profile:" +msgstr "Profilo display:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:104 +#: ../src/ui/dialog/inkscape-preferences.cpp:968 +msgid "Retrieve profile from display" +msgstr "Ottieni profilo dal display" + +#: ../src/ui/dialog/inkscape-preferences.cpp:971 #, fuzzy -msgid "Angle X/Y:" -msgstr "Angolo X:" +msgid "Retrieve profiles from those attached to displays via XICC" +msgstr "Ottieni i profili relativi ai display tramite XICC." -#: ../src/ui/dialog/polar-arrange-tab.cpp:118 +#: ../src/ui/dialog/inkscape-preferences.cpp:973 #, fuzzy -msgid "Rotate objects" -msgstr "Ruota nodi" +msgid "Retrieve profiles from those attached to displays" +msgstr "Ottieni i profili relativi ai display." -#: ../src/ui/dialog/polar-arrange-tab.cpp:306 -msgid "Couldn't find an ellipse in selection" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:978 +msgid "Display rendering intent:" +msgstr "Intento del display:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:371 +#: ../src/ui/dialog/inkscape-preferences.cpp:979 #, fuzzy -msgid "Arrange on ellipse" -msgstr "Crea ellisse" - -#: ../src/ui/dialog/print.cpp:111 -msgid "Could not open temporary PNG for bitmap printing" -msgstr "Impossibile aprire la PNG temporanea per la stampa" +msgid "The rendering intent to use to calibrate display output" +msgstr "" +"L'intento di visualizzazione da usare per calibrare l'output del display." -#: ../src/ui/dialog/print.cpp:155 -msgid "Could not set up Document" -msgstr "Impossibile impostare Document" +#: ../src/ui/dialog/inkscape-preferences.cpp:981 +msgid "Proofing" +msgstr "Correzione" -#: ../src/ui/dialog/print.cpp:159 -msgid "Failed to set CairoRenderContext" -msgstr "Impossibile impostare CairoRenderContext" +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +msgid "Simulate output on screen" +msgstr "Simula l'output su schermo" -#. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:197 -msgid "SVG Document" -msgstr "Documento SVG" +#: ../src/ui/dialog/inkscape-preferences.cpp:985 +msgid "Simulates output of target device" +msgstr "Simula l'output del dispositivo finale" -#: ../src/ui/dialog/print.cpp:198 -msgid "Print" -msgstr "Stampa" +#: ../src/ui/dialog/inkscape-preferences.cpp:987 +msgid "Mark out of gamut colors" +msgstr "Segnalazione colore fuori gamma" -#: ../src/ui/dialog/spellcheck.cpp:73 -msgid "_Accept" -msgstr "_Accetta" +#: ../src/ui/dialog/inkscape-preferences.cpp:989 +msgid "Highlights colors that are out of gamut for the target device" +msgstr "" +"Evidenzia i colori che sono fuori dalla gamma cromatica del dispositivo " +"finale" -#: ../src/ui/dialog/spellcheck.cpp:74 -msgid "_Ignore once" -msgstr "_Ignora adesso" +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 +msgid "Out of gamut warning color:" +msgstr "Colore avviso fuori gamma:" -#: ../src/ui/dialog/spellcheck.cpp:75 -msgid "_Ignore" -msgstr "_Ignora" +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +msgid "Selects the color used for out of gamut warning" +msgstr "Selezionare il colore da usare per gli avvisi circa i fuori gamma" -#: ../src/ui/dialog/spellcheck.cpp:76 -msgid "A_dd" -msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +msgid "Device profile:" +msgstr "Profilo dispositivo:" -#: ../src/ui/dialog/spellcheck.cpp:78 -msgid "_Stop" -msgstr "_Ferma" +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +msgid "The ICC profile to use to simulate device output" +msgstr "Il profilo ICC da usare per simulare l'output del dispositivo" -#: ../src/ui/dialog/spellcheck.cpp:79 -msgid "_Start" -msgstr "_Inizio" +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +msgid "Device rendering intent:" +msgstr "Intento del dispositivo:" -#: ../src/ui/dialog/spellcheck.cpp:109 -msgid "Suggestions:" -msgstr "Suggerimento:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1009 +msgid "The rendering intent to use to calibrate device output" +msgstr "" +"L'intento di visualizzazione da usare per calibrare l'output del display" -#: ../src/ui/dialog/spellcheck.cpp:124 -msgid "Accept the chosen suggestion" -msgstr "Accetta il suggerimento proposto" +#: ../src/ui/dialog/inkscape-preferences.cpp:1011 +msgid "Black point compensation" +msgstr "Compensazione punti neri" -#: ../src/ui/dialog/spellcheck.cpp:125 -msgid "Ignore this word only once" -msgstr "Ignora questa parola solo adesso" +#: ../src/ui/dialog/inkscape-preferences.cpp:1013 +msgid "Enables black point compensation" +msgstr "Abilita la compensazione dei punti neri" -#: ../src/ui/dialog/spellcheck.cpp:126 -msgid "Ignore this word in this session" -msgstr "Ignora questa parola in questa sessione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1015 +msgid "Preserve black" +msgstr "Preserva nero" -#: ../src/ui/dialog/spellcheck.cpp:127 -msgid "Add this word to the chosen dictionary" -msgstr "Aggiunge questa parola al dizionario scelto" +#: ../src/ui/dialog/inkscape-preferences.cpp:1022 +msgid "(LittleCMS 1.15 or later required)" +msgstr "(richiede LittleCMS 1.15 o successivi)" -#: ../src/ui/dialog/spellcheck.cpp:141 -msgid "Stop the check" -msgstr "Ferma il controllo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1024 +msgid "Preserve K channel in CMYK -> CMYK transforms" +msgstr "Preserva il canale K nelle trasformazioni CMYK -> CMYK" -#: ../src/ui/dialog/spellcheck.cpp:142 -msgid "Start the check" -msgstr "Inizia il controllo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 +#: ../src/widgets/sp-color-icc-selector.cpp:474 +#: ../src/widgets/sp-color-icc-selector.cpp:766 +msgid "" +msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:460 -#, c-format -msgid "Finished, %d words added to dictionary" -msgstr "Finito, %d parole aggiunte al dizionario" +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +msgid "Color management" +msgstr "Gestione del colore" -#: ../src/ui/dialog/spellcheck.cpp:462 -msgid "Finished, nothing suspicious found" -msgstr "Completato, nessun errore riscontrato" +#. Autosave options +#: ../src/ui/dialog/inkscape-preferences.cpp:1086 +msgid "Enable autosave (requires restart)" +msgstr "Abilita salvataggio automatico (richiede riapertura):" -#: ../src/ui/dialog/spellcheck.cpp:578 -#, c-format -msgid "Not in dictionary (%s): %s" -msgstr "Non presente nel dizionario (%s): %s" +#: ../src/ui/dialog/inkscape-preferences.cpp:1087 +msgid "" +"Automatically save the current document(s) at a given interval, thus " +"minimizing loss in case of a crash" +msgstr "" +"Salva automaticamente i documenti aperti ad intervalli stabiliti, " +"minimizzando la perdita di casi in caso di crash" -#: ../src/ui/dialog/spellcheck.cpp:727 -msgid "Checking..." -msgstr "Controllo..." +#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +msgctxt "Filesystem" +msgid "Autosave _directory:" +msgstr "_Cartella di salvataggio automatico:" -#: ../src/ui/dialog/spellcheck.cpp:796 -msgid "Fix spelling" -msgstr "Correggi ortografia" +#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +msgid "" +"The directory where autosaves will be written. This should be an absolute " +"path (starts with / on UNIX or a drive letter such as C: on Windows). " +msgstr "" +"La cartella dove i salvataggi automatici saranno scritti. Questa deve essere " +"definita da un percorso assoluto (inizia con / su UNIX o la lettera di un " +"disco come C: su Windows). " -#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 -msgid "Set SVG Font attribute" -msgstr "Imposta attributo font SVG" +#: ../src/ui/dialog/inkscape-preferences.cpp:1095 +msgid "_Interval (in minutes):" +msgstr "_Intervallo (in minuti):" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 -msgid "Adjust kerning value" -msgstr "Modifica valore crenatura" +#: ../src/ui/dialog/inkscape-preferences.cpp:1095 +msgid "Interval (in minutes) at which document will be autosaved" +msgstr "" +"Intervalli di tempo (in minuti) a cui eseguire il salvataggio automatico del " +"documento" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 -msgid "Family Name:" -msgstr "Famiglia:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 +msgid "_Maximum number of autosaves:" +msgstr "Numero _massimo di salvataggi automatici:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 -msgid "Set width:" -msgstr "Imposta larghezza:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 +msgid "" +"Maximum number of autosaved files; use this to limit the storage space used" +msgstr "" +"Numero massimo di file di salvataggio automatico; usare per limitare lo " +"spazio su disco usato" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 -msgid "glyph" -msgstr "glifo" +#. When changing the interval or enabling/disabling the autosave function, +#. * update our running configuration +#. * +#. * FIXME! +#. * the inkscape_autosave_init should be called AFTER the values have been changed +#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere +#. +#. +#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. +#. ----------- +#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +msgid "Autosave" +msgstr "Salvataggio automatico" -#. SPGlyph* glyph = -#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 -msgid "Add glyph" -msgstr "Aggiungi glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +#, fuzzy +msgid "Open Clip Art Library _Server Name:" +msgstr "Nome del server per Open Clip Art Library:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 -msgid "Select a path to define the curves of a glyph" -msgstr "Selezionare un tracciato per definire la forma di un glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1117 +#, fuzzy +msgid "" +"The server name of the Open Clip Art Library webdav server; it's used by the " +"Import and Export to OCAL function" +msgstr "" +"Il nome del server webdav dell'Open Clip Art Library. Serve per importare ed " +"esportare Open Clip Art." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 -msgid "The selected object does not have a path description." -msgstr "L'oggetto selezionato non descrive un tracciato." +#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#, fuzzy +msgid "Open Clip Art Library _Username:" +msgstr "Nome utente per Open Clip Art Library:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 -msgid "No glyph selected in the SVGFonts dialog." -msgstr "Nesun glifo selezionato nella finestra SVGFonts" +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#, fuzzy +msgid "The username used to log into Open Clip Art Library" +msgstr "Il nome utente per autenticarsi in Open Clip Art Library." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 -msgid "Set glyph curves" -msgstr "Imposta curve glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#, fuzzy +msgid "Open Clip Art Library _Password:" +msgstr "Password per Open Clip Art Library:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 -msgid "Reset missing-glyph" -msgstr "Azzera glifi mancanti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#, fuzzy +msgid "The password used to log into Open Clip Art Library" +msgstr "La password per autenticarsi in Open Clip Art Library." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 -msgid "Edit glyph name" -msgstr "Modifica nome glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#, fuzzy +msgid "Open Clip Art" +msgstr "Autenticazione Open Clip Art" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 -msgid "Set glyph unicode" -msgstr "Imposta unicode glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +msgid "Behavior" +msgstr "Comportamento" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 -msgid "Remove font" -msgstr "Rimuovi font" +#: ../src/ui/dialog/inkscape-preferences.cpp:1133 +#, fuzzy +msgid "_Simplification threshold:" +msgstr "Soglia per la semplificazione:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 -msgid "Remove glyph" -msgstr "Rimuovi glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1134 +msgid "" +"How strong is the Node tool's Simplify command by default. If you invoke " +"this command several times in quick succession, it will act more and more " +"aggressively; invoking it again after a pause restores the default threshold." +msgstr "" +"La forza predefinita del comando Semplifica. Se si invoca questo comando " +"diverse volte in rapida successione, si comporterĂ  in modo sempre piĂą " +"aggressivo; effettuando una pausa sarĂ  ripristinata la soglia predefinita." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 -msgid "Remove kerning pair" -msgstr "Rimuovi crenatura a coppia" +#: ../src/ui/dialog/inkscape-preferences.cpp:1136 +msgid "Color stock markers the same color as object" +msgstr "" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 -msgid "Missing Glyph:" -msgstr "Glifi mancanti:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1137 +msgid "Color custom markers the same color as object" +msgstr "" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 -msgid "From selection..." -msgstr "Dalla selezione..." +#: ../src/ui/dialog/inkscape-preferences.cpp:1138 +#: ../src/ui/dialog/inkscape-preferences.cpp:1348 +msgid "Update marker color when object color changes" +msgstr "" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 -msgid "Glyph name" -msgstr "Nome del glifo:" +#. Selecting options +#: ../src/ui/dialog/inkscape-preferences.cpp:1141 +msgid "Select in all layers" +msgstr "Seleziona tutto in ogni livello" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 -msgid "Matching string" -msgstr "Stringa corrispondente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +msgid "Select only within current layer" +msgstr "Seleziona solo nel livello attuale" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 -msgid "Add Glyph" -msgstr "Aggiungi glifo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1143 +msgid "Select in current layer and sublayers" +msgstr "Seleziona solo nel livello attuale e nei sottolivelli" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 -msgid "Get curves from selection..." -msgstr "Prendi forma dalla selezione..." +#: ../src/ui/dialog/inkscape-preferences.cpp:1144 +msgid "Ignore hidden objects and layers" +msgstr "Ignora gli oggetti e livelli nascosti" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 -msgid "Add kerning pair" -msgstr "Aggiungi crenatura a coppia" +#: ../src/ui/dialog/inkscape-preferences.cpp:1145 +msgid "Ignore locked objects and layers" +msgstr "Ignora gli oggetti e livelli bloccati" -#. Kerning Setup: -#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 -#, fuzzy -msgid "Kerning Setup" -msgstr "Impostazione crenatura:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +msgid "Deselect upon layer change" +msgstr "Deseleziona al cambiamento di livello" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 -msgid "1st Glyph:" -msgstr "Primo glifo:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +msgid "" +"Uncheck this to be able to keep the current objects selected when the " +"current layer changes" +msgstr "" +"Deselezionare questa opzione per mantenere selezionati gli oggetti correnti " +"al cambio di livello" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 -msgid "2nd Glyph:" -msgstr "Secondo glifo:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +#, fuzzy +msgid "Ctrl+A, Tab, Shift+Tab" +msgstr "Ctrl+A, Tab, Maiusc+Tab:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 -msgid "Add pair" -msgstr "Aggiungi coppia" +#: ../src/ui/dialog/inkscape-preferences.cpp:1153 +msgid "Make keyboard selection commands work on objects in all layers" +msgstr "" +"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti di " +"tutti i livelli" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 -msgid "First Unicode range" -msgstr "Primo intervallo Unicode" +#: ../src/ui/dialog/inkscape-preferences.cpp:1155 +msgid "Make keyboard selection commands work on objects in current layer only" +msgstr "" +"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " +"livello attuale" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 -msgid "Second Unicode range" -msgstr "Secondo intervallo Unicode" +#: ../src/ui/dialog/inkscape-preferences.cpp:1157 +msgid "" +"Make keyboard selection commands work on objects in current layer and all " +"its sublayers" +msgstr "" +"Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " +"livello attuale e dei suoi sottolivelli" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 -msgid "Kerning value:" -msgstr "Valore crenatura:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1159 +msgid "" +"Uncheck this to be able to select objects that are hidden (either by " +"themselves or by being in a hidden layer)" +msgstr "" +"Deselezionare questa opzione per poter selezionare oggetti non visibili " +"(nascosti loro stessi o in un livello nascosto)" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 -msgid "Set font family" -msgstr "Imposta famiglia font" +#: ../src/ui/dialog/inkscape-preferences.cpp:1161 +msgid "" +"Uncheck this to be able to select objects that are locked (either by " +"themselves or by being in a locked layer)" +msgstr "" +"Deselezionare questa opzione per poter selezionare oggetti bloccati " +"(bloccati loro stessi o in un livello bloccato)" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 -msgid "font" -msgstr "font" +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +msgid "Wrap when cycling objects in z-order" +msgstr "" -#. select_font(font); -#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 -msgid "Add font" -msgstr "Aggiungi font" +#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +msgid "Alt+Scroll Wheel" +msgstr "" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:70 -msgid "_Font" -msgstr "_Carattere" +#: ../src/ui/dialog/inkscape-preferences.cpp:1167 +msgid "Wrap around at start and end when cycling objects in z-order" +msgstr "" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 -msgid "_Global Settings" -msgstr "Impostazioni _globali" +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +msgid "Selecting" +msgstr "Selezione" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 -msgid "_Glyphs" -msgstr "_Glifi" +#. Transforms options +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 +#: ../src/widgets/select-toolbar.cpp:570 +msgid "Scale stroke width" +msgstr "Ridimensiona la larghezza del contorno" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 -msgid "_Kerning" -msgstr "_Crenatura" +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +msgid "Scale rounded corners in rectangles" +msgstr "Adatta gli angoli arrotondati nei rettangoli" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 -msgid "Sample Text" -msgstr "Testo d'esempio" +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +msgid "Transform gradients" +msgstr "Trasforma gradienti" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 -msgid "Preview Text:" -msgstr "Anteprima testo:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +msgid "Transform patterns" +msgstr "Trasforma motivi" -#: ../src/ui/dialog/swatches.cpp:203 ../src/ui/tools/gradient-tool.cpp:367 -#: ../src/ui/tools/gradient-tool.cpp:465 -#: ../src/widgets/gradient-vector.cpp:814 -msgid "Add gradient stop" -msgstr "Aggiungi passaggio del gradiente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +msgid "Preserved" +msgstr "Preserva" -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:258 -msgid "Set fill" -msgstr "Imposta riempimento" +#: ../src/ui/dialog/inkscape-preferences.cpp:1180 +#: ../src/widgets/select-toolbar.cpp:571 +msgid "When scaling objects, scale the stroke width by the same proportion" +msgstr "" +"Adatta le dimensioni dei contorni durante il ridimensionamento dell'oggetto" -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:266 -msgid "Set stroke" -msgstr "Imposta contorno" +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 +#: ../src/widgets/select-toolbar.cpp:582 +msgid "When scaling rectangles, scale the radii of rounded corners" +msgstr "" +"Adatta i raggi degli angoli arrotondati durante il ridimensionamento dei " +"rettangoli" -#: ../src/ui/dialog/swatches.cpp:287 -msgid "Edit..." -msgstr "Modifica..." +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 +#: ../src/widgets/select-toolbar.cpp:593 +msgid "Move gradients (in fill or stroke) along with the objects" +msgstr "" +"Trasforma i gradienti (di contorno o di riempimento) insieme agli oggetti" -#: ../src/ui/dialog/swatches.cpp:299 -msgid "Convert" -msgstr "Converti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 +#: ../src/widgets/select-toolbar.cpp:604 +msgid "Move patterns (in fill or stroke) along with the objects" +msgstr "Trasforma i motivi (di contorno o di riempimento) insieme agli oggetti" -#: ../src/ui/dialog/swatches.cpp:543 -#, c-format -msgid "Palettes directory (%s) is unavailable." -msgstr "La cartella delle tavolozze (%s) non è disponibile." +#: ../src/ui/dialog/inkscape-preferences.cpp:1187 +#, fuzzy +msgid "Store transformation" +msgstr "Salvataggio trasformazioni:" -#. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:127 -msgid "Symbol set: " +#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +msgid "" +"If possible, apply transformation to objects without adding a transform= " +"attribute" msgstr "" +"Se possibile, applica le trasformazioni all'oggetto senza aggiungere un " +"attributo transfom=" -#. Fill in later -#: ../src/ui/dialog/symbols.cpp:136 ../src/ui/dialog/symbols.cpp:137 -#, fuzzy -msgid "Current Document" -msgstr "Stampa il documento" +#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +msgid "Always store transformation as a transform= attribute on objects" +msgstr "Salva sempre le trasformazioni come attributo transform di un oggetto" -#: ../src/ui/dialog/symbols.cpp:204 -#, fuzzy -msgid "Add Symbol from the current document." -msgstr "Solamente il livello attuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1193 +msgid "Transforms" +msgstr "Trasformazioni" -#: ../src/ui/dialog/symbols.cpp:213 -#, fuzzy -msgid "Remove Symbol from the current document." -msgstr "Modifica i passaggi del gradiente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +msgid "Mouse _wheel scrolls by:" +msgstr "Scorrimento con la _rotella del mouse:" -#: ../src/ui/dialog/symbols.cpp:227 -#, fuzzy -msgid "Display more icons in row." -msgstr "Visualizza informazioni di misura" +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +msgid "" +"One mouse wheel notch scrolls by this distance in screen pixels " +"(horizontally with Shift)" +msgstr "" +"Con uno scatto della rotella del mouse si scorre di questa distanza " +"(orizzontalmente con Maiusc)" -#: ../src/ui/dialog/symbols.cpp:236 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +msgid "Ctrl+arrows" +msgstr "Ctrl+frecce" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 #, fuzzy -msgid "Display fewer icons in row." -msgstr "Visualizza informazioni di misura" +msgid "Sc_roll by:" +msgstr "Scorrimento:" -#: ../src/ui/dialog/symbols.cpp:246 -msgid "Toggle 'fit' symbols in icon space." +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" +"Premendo Ctrl+freccia si scorre di questa distanza (in pixel dello schermo)" -#: ../src/ui/dialog/symbols.cpp:258 -msgid "Make symbols smaller by zooming out." +#: ../src/ui/dialog/inkscape-preferences.cpp:1204 +msgid "_Acceleration:" +msgstr "_Accelerazione:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +msgid "" +"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " +"acceleration)" msgstr "" +"Tenendo premuto ctrl+freccia si accelererĂ  lo scorrimento (0 per non avere " +"accelerazione)" -#: ../src/ui/dialog/symbols.cpp:268 -msgid "Make symbols bigger by zooming in." +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +msgid "Autoscrolling" +msgstr "Scorrimento automatico" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +msgid "_Speed:" +msgstr "_VelocitĂ :" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +msgid "" +"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " +"autoscroll off)" msgstr "" +"La velocitĂ  con cui la tela scorrerĂ  automaticamente durante il " +"trascinamento fuori dal bordo (0 per disattivarlo)" -#: ../src/ui/dialog/symbols.cpp:622 -#, fuzzy -msgid "Unnamed Symbols" -msgstr "Khmer (km)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 +msgid "_Threshold:" +msgstr "_Soglia:" -#: ../src/ui/dialog/template-widget.cpp:36 -#, fuzzy -msgid "More info" -msgstr "Maggior luminositĂ " +#: ../src/ui/dialog/inkscape-preferences.cpp:1212 +msgid "" +"How far (in screen pixels) you need to be from the canvas edge to trigger " +"autoscroll; positive is outside the canvas, negative is within the canvas" +msgstr "" +"La distanza (in pixel dello schermo) dal bordo della tela per attivare lo " +"scorrimento automatico; un numero positivo indica l'esterno della tela, uno " +"negativo l'esterno" -#: ../src/ui/dialog/template-widget.cpp:38 -#, fuzzy -msgid "no template selected" -msgstr "Nessun filtro selezionato" +#. +#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); +#. _page_scrolling.add_line( false, "", _scroll_space, "", +#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); +#. +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 +msgid "Mouse wheel zooms by default" +msgstr "La rotella del mouse ingrandisce/rimpicciolisce" -#: ../src/ui/dialog/template-widget.cpp:119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 #, fuzzy -msgid "Path: " -msgstr "Percorso:" +msgid "" +"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " +"off, it zooms with Ctrl and scrolls without Ctrl" +msgstr "" +"Quando attivo, la rotella del mouse ingrandisce senza Ctrl e sposta la tela " +"con Ctrl; quando disattivo ingrandisce con Ctrl e sposta la tela senza Ctrl." -#: ../src/ui/dialog/template-widget.cpp:122 -#, fuzzy -msgid "Description: " -msgstr "Descrizione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 +msgid "Scrolling" +msgstr "Scorrimento" -#: ../src/ui/dialog/template-widget.cpp:124 -#, fuzzy -msgid "Keywords: " -msgstr "Parole chiave" +#. Snapping options +#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +msgid "Enable snap indicator" +msgstr "Attiva indicatore aggancio" -#: ../src/ui/dialog/template-widget.cpp:131 -msgid "By: " +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "" +"Dopo l'aggancio, viene disegnato un simbolo nel punto in cui è avvenuto " +"l'aggancio" -#: ../src/ui/dialog/text-edit.cpp:73 -#, fuzzy -msgid "Set as _default" -msgstr "Imposta come predefinito" +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 +msgid "_Delay (in ms):" +msgstr "_Ritardo (in ms):" -#: ../src/ui/dialog/text-edit.cpp:87 -msgid "AaBbCcIiPpQq12369$€¢?.;/()" -msgstr "AaBbCcIiPpQq12369$€¢?.;/()" +#: ../src/ui/dialog/inkscape-preferences.cpp:1230 +msgid "" +"Postpone snapping as long as the mouse is moving, and then wait an " +"additional fraction of a second. This additional delay is specified here. " +"When set to zero or to a very small number, snapping will be immediate." +msgstr "" +"Postpone l'aggancio finchĂ© il mouse è in movimento e quindi aspetta un " +"ritardo aggiuntivo, specificabile qui. Se impostato a zero o ad un numero " +"molto piccolo, l'aggancio sarĂ  immediato." -#. Align buttons -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1344 -#: ../src/widgets/text-toolbar.cpp:1345 -msgid "Align left" -msgstr "Allinea a sinistra" +#: ../src/ui/dialog/inkscape-preferences.cpp:1232 +msgid "Only snap the node closest to the pointer" +msgstr "Aggancia solo il nodo piĂą vicino al puntatore" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1352 -#: ../src/widgets/text-toolbar.cpp:1353 +#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +msgid "" +"Only try to snap the node that is initially closest to the mouse pointer" +msgstr "" +"Prova ad agganciare solamente il nodo che è inizialmente piĂą vicino al " +"puntatore del mouse" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 #, fuzzy -msgid "Align center" -msgstr "Allinea a sinistra" +msgid "_Weight factor:" +msgstr "Fattore peso:" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1360 -#: ../src/widgets/text-toolbar.cpp:1361 -msgid "Align right" -msgstr "Allinea a destra" +#: ../src/ui/dialog/inkscape-preferences.cpp:1238 +msgid "" +"When multiple snap solutions are found, then Inkscape can either prefer the " +"closest transformation (when set to 0), or prefer the node that was " +"initially the closest to the pointer (when set to 1)" +msgstr "" +"Quando sono disponibili piĂą possibilitĂ  per l'aggancio, Inkscape può " +"scegliere la trasformazione piĂą prossima (impostato a 0) o scegliere il nodo " +"che era inizialmente piĂą vicino al puntatore (impostato a 1)" -#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1369 -#, fuzzy -msgid "Justify (only flowed text)" -msgstr "Spezza testo dinamico" +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 +msgid "Snap the mouse pointer when dragging a constrained knot" +msgstr "" +"Aggancia il puntatore del mouse durante il trascinamento di un punto annodato" -#. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1404 -msgid "Horizontal text" -msgstr "Testo orizzontale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +msgid "" +"When dragging a knot along a constraint line, then snap the position of the " +"mouse pointer instead of snapping the projection of the knot onto the " +"constraint line" +msgstr "" +"Durante il trascinamento di un nodo lungo un tracciato annodato, aggancia la " +"posizione del puntatore del mouse invece delle proiezione del nodo lungo il " +"tracciato" -#: ../src/ui/dialog/text-edit.cpp:110 ../src/widgets/text-toolbar.cpp:1411 -msgid "Vertical text" -msgstr "Testo verticale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 +msgid "Snapping" +msgstr "Aggancio" -#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 -#, fuzzy -msgid "Spacing between lines (percent of font size)" -msgstr "Spaziatura tra le linee" +#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +msgid "_Arrow keys move by:" +msgstr "Le _frecce direzionali muovono di:" -#: ../src/ui/dialog/text-edit.cpp:147 -#, fuzzy -msgid "Text path offset" -msgstr "Regola la proiezione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +msgid "" +"Pressing an arrow key moves selected object(s) or node(s) by this distance" +msgstr "" +"Premendo una freccia direzionale gli oggetti o i nodi selezionati si muovono " +"di questa distanza" -#: ../src/ui/dialog/text-edit.cpp:588 ../src/ui/dialog/text-edit.cpp:662 -#: ../src/ui/tools/text-tool.cpp:1455 -msgid "Set text style" -msgstr "Imposta stile testo" +#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +msgid "> and < _scale by:" +msgstr "> e < _ridimensionano di:" -#: ../src/ui/dialog/tile.cpp:36 -#, fuzzy -msgctxt "Arrange dialog" -msgid "Rectangular grid" -msgstr "Griglia rettangolare" +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +msgid "Pressing > or < scales selection up or down by this increment" +msgstr "Premendo > o < si ridimensiona la selezione di questo fattore" -#: ../src/ui/dialog/tile.cpp:37 -#, fuzzy -msgctxt "Arrange dialog" -msgid "Polar Coordinates" -msgstr "Coordinate trilineari" +#: ../src/ui/dialog/inkscape-preferences.cpp:1256 +msgid "_Inset/Outset by:" +msgstr "_Intrudi/Estrudi di:" -#: ../src/ui/dialog/tile.cpp:40 -#, fuzzy -msgctxt "Arrange dialog" -msgid "_Arrange" -msgstr "Ordinamento" +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +msgid "Inset and Outset commands displace the path by this distance" +msgstr "I comandi Intrudi ed Estrudi spostano il tracciato di questa distanza" -#: ../src/ui/dialog/tile.cpp:42 -msgid "Arrange selected objects" -msgstr "Riordina gli oggetti selezionati" +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +msgid "Compass-like display of angles" +msgstr "Visualizzazione tipo bussola degli angoli" -#. #### begin left panel -#. ### begin notebook -#. ## begin mode page -#. # begin single scan -#. brightness -#: ../src/ui/dialog/tracedialog.cpp:508 -#, fuzzy -msgid "_Brightness cutoff" -msgstr "Riduzione luminositĂ " +#: ../src/ui/dialog/inkscape-preferences.cpp:1260 +msgid "" +"When on, angles are displayed with 0 at north, 0 to 360 range, positive " +"clockwise; otherwise with 0 at east, -180 to 180 range, positive " +"counterclockwise" +msgstr "" +"Quando attivo, gli angoli sono visualizzato con lo 0 a nord, nell'intervallo " +"0~360, con positivo in senso orario. Se disattivato, lo 0 è a est, " +"nell'intervallo -180~180, con positivo in senso antiorario" -#: ../src/ui/dialog/tracedialog.cpp:512 -msgid "Trace by a given brightness level" -msgstr "Vettorizza in base ad un livello di luminositĂ  fornito" +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +msgid "_Rotation snaps every:" +msgstr "La _rotazione scatta ogni:" -#: ../src/ui/dialog/tracedialog.cpp:519 -msgid "Brightness cutoff for black/white" -msgstr "Appiattimento della luminositĂ  per bianco/nero" +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +msgid "degrees" +msgstr "gradi" -#: ../src/ui/dialog/tracedialog.cpp:529 -msgid "Single scan: creates a path" -msgstr "Scansione singola: crea tracciato" +#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +msgid "" +"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " +"[ or ] rotates by this amount" +msgstr "" +"La rotazione con Ctrl premuto scatta di questo ammontare di gradi; inoltre, " +"la pressione di [ o ] effettua una rotazione di questi gradi" -#. canny edge detection -#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method -#: ../src/ui/dialog/tracedialog.cpp:534 -#, fuzzy -msgid "_Edge detection" -msgstr "Rilevamento bordo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +msgid "Relative snapping of guideline angles" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:538 -msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "Vettorizza con l'algoritmo di rilevamento dei bordi di J. Canny" +#: ../src/ui/dialog/inkscape-preferences.cpp:1270 +msgid "" +"When on, the snap angles when rotating a guideline will be relative to the " +"original angle" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:556 -msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +msgid "_Zoom in/out by:" +msgstr "In_grandimento/Riduzione:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +msgid "%" +msgstr "%" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1273 +msgid "" +"Zoom tool click, +/- keys, and middle click zoom in and out by this " +"multiplier" msgstr "" -"Appiattimento della luminositĂ  per i pixel adiacenti (determina lo spessore " -"del bordo)" +"Un clic dell'ingrandimento, i tasti +/- e un clic centrale " +"dell'ingrandimento rimpiccioliscono o ingrandiscono di questo fattore" -#: ../src/ui/dialog/tracedialog.cpp:559 -#, fuzzy -msgid "T_hreshold:" -msgstr "Soglia:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +msgid "Steps" +msgstr "Scatti" + +#. Clones options +#: ../src/ui/dialog/inkscape-preferences.cpp:1277 +msgid "Move in parallel" +msgstr "Mossi in parallelo" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 +msgid "Stay unmoved" +msgstr "Lasciati fermi" -#. quantization -#. TRANSLATORS: Color Quantization: the process of reducing the number -#. of colors in an image by selecting an optimized set of representative -#. colors and then re-applying this reduced set to the original image. -#: ../src/ui/dialog/tracedialog.cpp:571 -#, fuzzy -msgid "Color _quantization" -msgstr "Quantizzazione colore" +#: ../src/ui/dialog/inkscape-preferences.cpp:1281 +msgid "Move according to transform" +msgstr "Mossi secondo la trasformazione" -#: ../src/ui/dialog/tracedialog.cpp:575 -msgid "Trace along the boundaries of reduced colors" -msgstr "Vettorizza coi bordi dei colori ridotti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1283 +msgid "Are unlinked" +msgstr "Scollegati" -#: ../src/ui/dialog/tracedialog.cpp:583 -msgid "The number of reduced colors" -msgstr "Il numero dei colori ridotti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +msgid "Are deleted" +msgstr "Cancellati" -#: ../src/ui/dialog/tracedialog.cpp:586 +#: ../src/ui/dialog/inkscape-preferences.cpp:1288 #, fuzzy -msgid "_Colors:" -msgstr "Colori:" +msgid "Moving original: clones and linked offsets" +msgstr "" +"Quando l'originale viene spostato, i cloni e gli elementi collegati vengono:" -#. swap black and white -#: ../src/ui/dialog/tracedialog.cpp:594 +#: ../src/ui/dialog/inkscape-preferences.cpp:1290 #, fuzzy -msgid "_Invert image" -msgstr "Negativo immagine" +msgid "Clones are translated by the same vector as their original" +msgstr "I cloni vengono traslati dello stesso vettore dell'originale." -#: ../src/ui/dialog/tracedialog.cpp:599 -msgid "Invert black and white regions" -msgstr "Inverte le regioni di bianco e nero" +#: ../src/ui/dialog/inkscape-preferences.cpp:1292 +#, fuzzy +msgid "Clones preserve their positions when their original is moved" +msgstr "" +"I cloni preservano la loro posizione quando l'originale viene spostato." -#. # end single scan -#. # begin multiple scan -#: ../src/ui/dialog/tracedialog.cpp:609 +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 #, fuzzy -msgid "B_rightness steps" -msgstr "Passaggi di luminositĂ " +msgid "" +"Each clone moves according to the value of its transform= attribute; for " +"example, a rotated clone will move in a different direction than its original" +msgstr "" +"Ogni clone viene mosso secondo il valore del suo attributo transform=. Per " +"esempio, un clone ruotato verrĂ  mosso in una direzione diversa dal suo " +"originale." -#: ../src/ui/dialog/tracedialog.cpp:613 -msgid "Trace the given number of brightness levels" -msgstr "Vettorizza con il numero fornito di livelli di luminositĂ " +#: ../src/ui/dialog/inkscape-preferences.cpp:1295 +#, fuzzy +msgid "Deleting original: clones" +msgstr "Quando si duplicano originali+cloni:" -#: ../src/ui/dialog/tracedialog.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:1297 #, fuzzy -msgid "Sc_ans:" -msgstr "Scansioni:" +msgid "Orphaned clones are converted to regular objects" +msgstr "I cloni orfani vengono convertiti in oggetti normali." -#: ../src/ui/dialog/tracedialog.cpp:625 -msgid "The desired number of scans" -msgstr "Il numero voluto di scansioni" +#: ../src/ui/dialog/inkscape-preferences.cpp:1299 +#, fuzzy +msgid "Orphaned clones are deleted along with their original" +msgstr "I cloni orfani vengono cancellati assieme al loro originale." -#: ../src/ui/dialog/tracedialog.cpp:630 +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 #, fuzzy -msgid "Co_lors" -msgstr "Co_lore" +msgid "Duplicating original+clones/linked offset" +msgstr "Quando si duplicano originali+cloni:" -#: ../src/ui/dialog/tracedialog.cpp:634 -msgid "Trace the given number of reduced colors" -msgstr "Vettorizza con il numero fornito di colori ridotti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1303 +msgid "Relink duplicated clones" +msgstr "Ricollega cloni duplicati" -#: ../src/ui/dialog/tracedialog.cpp:639 -#, fuzzy -msgid "_Grays" -msgstr "Grigi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "" +"When duplicating a selection containing both a clone and its original " +"(possibly in groups), relink the duplicated clone to the duplicated original " +"instead of the old original" +msgstr "" +"Quando si duplica una selezione con un clone e il suo originale " +"(eventualmente raggruppati), ricollega il clone duplicato all'originale " +"duplicato invece che al vecchio originale" -#: ../src/ui/dialog/tracedialog.cpp:643 -msgid "Same as Colors, but the result is converted to grayscale" -msgstr "Come per Colore, ma il risultato è convertito in scala di grigi" +#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page +#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +msgid "Clones" +msgstr "Cloni" -#. TRANSLATORS: "Smooth" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:649 -#, fuzzy -msgid "S_mooth" -msgstr "UniformitĂ " +#. Clip paths and masks options +#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +msgid "When applying, use the topmost selected object as clippath/mask" +msgstr "" +"Durante l'applicazione, usa l'oggetto selezionato superiore come tracciato " +"di fissaggio o maschera" -#: ../src/ui/dialog/tracedialog.cpp:653 -msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "Applica l'effetto Gaussian blur alla bitmap prima di vettorizzare" +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +msgid "" +"Uncheck this to use the bottom selected object as the clipping path or mask" +msgstr "" +"Deselezionare per usare l'oggetto selezionato inferiore come tracciato di " +"fissaggio o maschera" -#. TRANSLATORS: "Stack" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:657 -#, fuzzy -msgid "Stac_k scans" -msgstr "Scansione pila" +#: ../src/ui/dialog/inkscape-preferences.cpp:1314 +msgid "Remove clippath/mask object after applying" +msgstr "Rimuove il tracciato di fissaggio o la maschera dopo l'applicazione" -#: ../src/ui/dialog/tracedialog.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:1316 msgid "" -"Stack scans on top of one another (no gaps) instead of tiling (usually with " -"gaps)" +"After applying, remove the object used as the clipping path or mask from the " +"drawing" msgstr "" -"Scansione della pila verticale (senza interruzioni) invece che in serie " -"(solitamente con interruzioni)" +"Dopo l'applicazione, rimuove dal disegno l'oggetto usato come tracciato di " +"fissaggio o maschera" -#: ../src/ui/dialog/tracedialog.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 #, fuzzy -msgid "Remo_ve background" -msgstr "Rimuovi sfondo" +msgid "Before applying" +msgstr "A_ttiva aggancio" -#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan -#: ../src/ui/dialog/tracedialog.cpp:670 -msgid "Remove bottom (background) layer when done" -msgstr "Rimuovi ultimo livello (sfondo) quando finito" +#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +msgid "Do not group clipped/masked objects" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:675 -msgid "Multiple scans: creates a group of paths" -msgstr "Scansione multipla: crea un gruppo di tracciati" +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +msgid "Put every clipped/masked object in its own group" +msgstr "" -#. # end multiple scan -#. ## end mode page -#: ../src/ui/dialog/tracedialog.cpp:684 -#, fuzzy -msgid "_Mode" -msgstr "ModalitĂ " +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +msgid "Put all clipped/masked objects into one group" +msgstr "" -#. ## begin option page -#. # potrace parameters -#: ../src/ui/dialog/tracedialog.cpp:690 -#, fuzzy -msgid "Suppress _speckles" -msgstr "Rimuovi macchie" +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +msgid "Apply clippath/mask to every object" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:692 -msgid "Ignore small spots (speckles) in the bitmap" -msgstr "Ignora le piccole macchie nella bitmap" +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +msgid "Apply clippath/mask to groups containing single object" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:700 -msgid "Speckles of up to this many pixels will be suppressed" -msgstr "Macchie fino a questa dimensione verranno ignorate" +#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +msgid "Apply clippath/mask to group containing all objects" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:703 -#, fuzzy -msgid "S_ize:" -msgstr "Dimensione:" +#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +msgid "After releasing" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:708 -#, fuzzy -msgid "Smooth _corners" -msgstr "Smussa angoli" +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +msgid "Ungroup automatically created groups" +msgstr "Dividi gruppi creati automaticamente" -#: ../src/ui/dialog/tracedialog.cpp:710 -msgid "Smooth out sharp corners of the trace" -msgstr "Smussa gli angoli della vettorizzazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1337 +msgid "Ungroup groups created when setting clip/mask" +msgstr "" -#: ../src/ui/dialog/tracedialog.cpp:719 -msgid "Increase this to smooth corners more" -msgstr "Aumentare per smussare maggiormente gli spigoli" +#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +msgid "Clippaths and masks" +msgstr "Fissaggio e mascheramento" -#: ../src/ui/dialog/tracedialog.cpp:726 +#: ../src/ui/dialog/inkscape-preferences.cpp:1342 #, fuzzy -msgid "Optimize p_aths" -msgstr "Ottimizza tracciato" - -#: ../src/ui/dialog/tracedialog.cpp:729 -msgid "Try to optimize paths by joining adjacent Bezier curve segments" -msgstr "" -"Prova ad ottimizzare i tracciati unendo segmenti curvi Bezier adiacenti" +msgid "Stroke Style Markers" +msgstr "St_ile contorno" -#: ../src/ui/dialog/tracedialog.cpp:737 +#: ../src/ui/dialog/inkscape-preferences.cpp:1344 +#: ../src/ui/dialog/inkscape-preferences.cpp:1346 msgid "" -"Increase this to reduce the number of nodes in the trace by more aggressive " -"optimization" +"Stroke color same as object, fill color either object fill color or marker " +"fill color" msgstr "" -"Aumentare il valore per ridurre il numero di nodi nella vettorizzazione " -"usando ottimizzazioni piĂą spinte" -#: ../src/ui/dialog/tracedialog.cpp:739 +#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +#: ../share/extensions/hershey.inx.h:27 #, fuzzy -msgid "To_lerance:" -msgstr "Tolleranza:" +msgid "Markers" +msgstr "Delimitatori" -#. ## end option page -#: ../src/ui/dialog/tracedialog.cpp:753 -#, fuzzy -msgid "O_ptions" -msgstr "Opzioni" +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +msgid "Document cleanup" +msgstr "Pulisci documento" -#. ### credits -#: ../src/ui/dialog/tracedialog.cpp:757 -msgid "" -"Inkscape bitmap tracing\n" -"is based on Potrace,\n" -"created by Peter Selinger\n" -"\n" -"http://potrace.sourceforge.net" +#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +msgid "Remove unused swatches when doing a document cleanup" msgstr "" -"La vettorizzazione bitmap di Inkscape\n" -"è basata su Potrace,\n" -"un programma scritto da Peter Selinger\n" -"\n" -"http://potrace.sourceforge.net" - -#: ../src/ui/dialog/tracedialog.cpp:760 -msgid "Credits" -msgstr "Ringraziamenti" - -#. #### begin right panel -#. ## SIOX -#: ../src/ui/dialog/tracedialog.cpp:774 -#, fuzzy -msgid "SIOX _foreground selection" -msgstr "Selezione sottoimmagine SIOX" -#: ../src/ui/dialog/tracedialog.cpp:777 -msgid "Cover the area you want to select as the foreground" -msgstr "Copre l'area che si vuole selezionare come primo piano" +#. tooltip +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 +msgid "Cleanup" +msgstr "Pulisci" -#: ../src/ui/dialog/tracedialog.cpp:782 -#, fuzzy -msgid "Live Preview" -msgstr "Anteprima diretta" +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +msgid "Number of _Threads:" +msgstr "Numero di _Thread:" -#: ../src/ui/dialog/tracedialog.cpp:788 -#, fuzzy -msgid "_Update" -msgstr "Aggiorna" +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +#: ../src/ui/dialog/inkscape-preferences.cpp:1897 +msgid "(requires restart)" +msgstr "(richiede riapertura)" -#. I guess it's correct to call the "intermediate bitmap" a preview of the trace -#: ../src/ui/dialog/tracedialog.cpp:796 -msgid "" -"Preview the intermediate bitmap with the current settings, without actual " -"tracing" +#: ../src/ui/dialog/inkscape-preferences.cpp:1366 +msgid "Configure number of processors/threads to use when rendering filters" msgstr "" -"Mostra l'anteprima del risultato con le attuali impostazioni, senza " -"vettorizzare realmente" +"Configura il numero di processori/thread da usare per renderizzare i filtri" -#: ../src/ui/dialog/tracedialog.cpp:800 -msgid "Preview" -msgstr "Anteprima" +#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +msgid "Rendering _cache size:" +msgstr "Dimensione _cache rendering:" -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 -#, fuzzy -msgid "_Horizontal:" -msgstr "Ori_zzontale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +msgctxt "mebibyte (2^20 bytes) abbreviation" +msgid "MiB" +msgstr "" -#: ../src/ui/dialog/transformation.cpp:76 -msgid "Horizontal displacement (relative) or position (absolute)" -msgstr "Disposizione orizzontale (relativa) o posizione (assoluta)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +msgid "" +"Set the amount of memory per document which can be used to store rendered " +"parts of the drawing for later reuse; set to zero to disable caching" +msgstr "" +"Imposta la quantitĂ  di memoria per documento usata per salvare parti di " +"disegno renderizzate per un successivo riuso; imposta a zero per " +"disabilitare l'opzione" -#: ../src/ui/dialog/transformation.cpp:78 -#: ../src/ui/dialog/transformation.cpp:88 -#, fuzzy -msgid "_Vertical:" -msgstr "_Verticale" +#. blur quality +#. filter quality +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 +#: ../src/ui/dialog/inkscape-preferences.cpp:1397 +msgid "Best quality (slowest)" +msgstr "QualitĂ  ottima (piĂą lenta)" -#: ../src/ui/dialog/transformation.cpp:78 -msgid "Vertical displacement (relative) or position (absolute)" -msgstr "Disposizione verticale (relativa) o posizione (assoluta)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1375 +#: ../src/ui/dialog/inkscape-preferences.cpp:1399 +msgid "Better quality (slower)" +msgstr "QualitĂ  buona (lenta)" -#: ../src/ui/dialog/transformation.cpp:80 -msgid "Horizontal size (absolute or percentage of current)" -msgstr "Dimensione orizzontale (assoluto o percentuale dell'attuale)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1377 +#: ../src/ui/dialog/inkscape-preferences.cpp:1401 +msgid "Average quality" +msgstr "QualitĂ  media" -#: ../src/ui/dialog/transformation.cpp:82 -msgid "Vertical size (absolute or percentage of current)" -msgstr "Dimensione verticale (assoluto o percentuale dell'attuale)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 +#: ../src/ui/dialog/inkscape-preferences.cpp:1403 +msgid "Lower quality (faster)" +msgstr "QualitĂ  inferiore (veloce)" -#: ../src/ui/dialog/transformation.cpp:84 -#, fuzzy -msgid "A_ngle:" -msgstr "A_ngolo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +msgid "Lowest quality (fastest)" +msgstr "QualitĂ  peggiore (piĂą veloce)" -#: ../src/ui/dialog/transformation.cpp:84 -#: ../src/ui/dialog/transformation.cpp:1104 -msgid "Rotation angle (positive = counterclockwise)" -msgstr "Angolo di rotazione (positivo = antiorario)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1384 +msgid "Gaussian blur quality for display" +msgstr "QualitĂ  della sfocatura gaussiana in visualizzazione" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/inkscape-preferences.cpp:1386 +#: ../src/ui/dialog/inkscape-preferences.cpp:1410 msgid "" -"Horizontal skew angle (positive = counterclockwise), or absolute " -"displacement, or percentage displacement" +"Best quality, but display may be very slow at high zooms (bitmap export " +"always uses best quality)" msgstr "" -"Angolo di distorsione orizzontale (positivo = antiorario), o quantitĂ  " -"assoluta o percentuale" +"QualitĂ  ottima, ma la visualizzazione può essere molto lenta ad alti " +"ingrandimenti (l'esportazione bitmap usa sempre l'ottima qualitĂ )" -#: ../src/ui/dialog/transformation.cpp:88 -msgid "" -"Vertical skew angle (positive = counterclockwise), or absolute displacement, " -"or percentage displacement" -msgstr "" -"Angolo di distorsione verticale (positivo = antiorario), o quantitĂ  assoluta " -"o percentuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1388 +#: ../src/ui/dialog/inkscape-preferences.cpp:1412 +msgid "Better quality, but slower display" +msgstr "QualitĂ  buona, ma visualizzazione piĂą lenta" -#: ../src/ui/dialog/transformation.cpp:91 -msgid "Transformation matrix element A" -msgstr "Elemento A della matrice di trasformazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1390 +#: ../src/ui/dialog/inkscape-preferences.cpp:1414 +msgid "Average quality, acceptable display speed" +msgstr "QualitĂ  media, buon compromesso per velocitĂ  di visualizzazione" -#: ../src/ui/dialog/transformation.cpp:92 -msgid "Transformation matrix element B" -msgstr "Elemento B della matrice di trasformazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1392 +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 +msgid "Lower quality (some artifacts), but display is faster" +msgstr "QualitĂ  scadente (artefatti visibili), ma veloce in visualizzazione" -#: ../src/ui/dialog/transformation.cpp:93 -msgid "Transformation matrix element C" -msgstr "Elemento C della matrice di trasformazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 +#: ../src/ui/dialog/inkscape-preferences.cpp:1418 +msgid "Lowest quality (considerable artifacts), but display is fastest" +msgstr "" +"QualitĂ  pessima (pesanti artefatti visibili), ma velocissimo in " +"visualizzazione" -#: ../src/ui/dialog/transformation.cpp:94 -msgid "Transformation matrix element D" -msgstr "Elemento D della matrice di trasformazione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1408 +msgid "Filter effects quality for display" +msgstr "QualitĂ  degli effetti in visualizzazione" -#: ../src/ui/dialog/transformation.cpp:95 -msgid "Transformation matrix element E" -msgstr "Elemento E della matrice di trasformazione" +#. build custom preferences tab +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 +#: ../src/ui/dialog/print.cpp:232 +msgid "Rendering" +msgstr "Rendering" -#: ../src/ui/dialog/transformation.cpp:96 -msgid "Transformation matrix element F" -msgstr "Elemento F della matrice di trasformazione" +#. Note: /options/bitmapoversample removed with Cairo renderer +#: ../src/ui/dialog/inkscape-preferences.cpp:1426 ../src/verbs.cpp:156 +#: ../src/widgets/calligraphy-toolbar.cpp:626 +msgid "Edit" +msgstr "Modifica" -#: ../src/ui/dialog/transformation.cpp:101 -msgid "Rela_tive move" -msgstr "Movimento re_lativo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1427 +msgid "Automatically reload bitmaps" +msgstr "Ricarica automaticamente bitmap" -#: ../src/ui/dialog/transformation.cpp:101 -msgid "" -"Add the specified relative displacement to the current position; otherwise, " -"edit the current absolute position directly" +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 +msgid "Automatically reload linked images when file is changed on disk" msgstr "" -"Aggiungi lo spostamento relativo specificato alla posizione; altrimenti, " -"modifica direttamente la posizione assoluta attuale" +"Ricarica automaticamente le immagini collegate quando il file viene cambiato" -#: ../src/ui/dialog/transformation.cpp:102 -#, fuzzy -msgid "_Scale proportionally" -msgstr "Scala proporzionalmente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1431 +msgid "_Bitmap editor:" +msgstr "Editor _bitmap:" -#: ../src/ui/dialog/transformation.cpp:102 -msgid "Preserve the width/height ratio of the scaled objects" -msgstr "Preserva il rapporto larghezza/altezza delle oggetti ridimensionati" +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/print_win32_vector.inx.h:2 +msgid "Export" +msgstr "Esporta" -#: ../src/ui/dialog/transformation.cpp:103 -msgid "Apply to each _object separately" -msgstr "Applica ad ogni _oggetto sepratamente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1435 +msgid "Default export _resolution:" +msgstr "_Risoluzione predefinita per l'esportazione:" -#: ../src/ui/dialog/transformation.cpp:103 -msgid "" -"Apply the scale/rotate/skew to each selected object separately; otherwise, " -"transform the selection as a whole" +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" -"Applica l'ingrandimento/rotazione/distorsione ad ogni oggetto separatamente; " -"altrimenti, trasforma tutta la selezione insieme" +"Risoluzione predefinita (in punti per pollice) delle bitmap nella " +"sottofinestra Esporta" -#: ../src/ui/dialog/transformation.cpp:104 -msgid "Edit c_urrent matrix" -msgstr "Modifica matrice attuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1437 +#: ../src/ui/dialog/xml-tree.cpp:912 +msgid "Create" +msgstr "Crea" -#: ../src/ui/dialog/transformation.cpp:104 -msgid "" -"Edit the current transform= matrix; otherwise, post-multiply transform= by " -"this matrix" +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +#, fuzzy +msgid "Resolution for Create Bitmap _Copy:" +msgstr "Risoluzione di Crea copia bitmap:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +msgid "Resolution used by the Create Bitmap Copy command" +msgstr "Risoluzione usata dal comando Crea copia bitmap" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1443 +msgid "Ask about linking and scaling when importing" msgstr "" -"Modifica la matrice transform= attuale; altrimenti moltiplica transform= per " -"questa matrice" -#: ../src/ui/dialog/transformation.cpp:117 -msgid "_Scale" -msgstr "_Scala" +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +msgid "Pop-up linking and scaling dialog when importing bitmap image." +msgstr "" -#: ../src/ui/dialog/transformation.cpp:120 -msgid "_Rotate" -msgstr "_Ruota" +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +msgid "Bitmap link:" +msgstr "Collegamento bitmap:" -#: ../src/ui/dialog/transformation.cpp:123 -msgid "Ske_w" -msgstr "D_istorsione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1458 +msgid "Bitmap scale (image-rendering):" +msgstr "" -#: ../src/ui/dialog/transformation.cpp:126 -msgid "Matri_x" -msgstr "Matri_ce" +#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +msgid "Default _import resolution:" +msgstr "Risoluzione predefinita per l'_importazione:" -#: ../src/ui/dialog/transformation.cpp:150 -msgid "Reset the values on the current tab to defaults" -msgstr "Reimposta i valori della scheda attuale ai predefiniti" +#: ../src/ui/dialog/inkscape-preferences.cpp:1464 +msgid "Default bitmap resolution (in dots per inch) for bitmap import" +msgstr "" +"Risoluzione predefinita (in punti per pollice) delle bitmap nella " +"sottofinestra Esporta" -#: ../src/ui/dialog/transformation.cpp:157 -msgid "Apply transformation to selection" -msgstr "Applica la trasformazione alla selezione" +#: ../src/ui/dialog/inkscape-preferences.cpp:1465 +#, fuzzy +msgid "Override file resolution" +msgstr "Risoluzione predefinita per l'esportazione" -#: ../src/ui/dialog/transformation.cpp:332 +#: ../src/ui/dialog/inkscape-preferences.cpp:1467 #, fuzzy -msgid "Rotate in a counterclockwise direction" -msgstr "Ruota antiorario" +msgid "Use default bitmap resolution in favor of information from file" +msgstr "" +"Risoluzione predefinita (in punti per pollice) delle bitmap nella " +"sottofinestra Esporta" -#: ../src/ui/dialog/transformation.cpp:338 +#. rendering outlines for pixmap image tags +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 #, fuzzy -msgid "Rotate in a clockwise direction" -msgstr "Rotazione oraria" +msgid "Images in Outline Mode" +msgstr "Disegna un contorno" -#: ../src/ui/dialog/transformation.cpp:908 -#: ../src/ui/dialog/transformation.cpp:919 -#: ../src/ui/dialog/transformation.cpp:933 -#: ../src/ui/dialog/transformation.cpp:952 -#: ../src/ui/dialog/transformation.cpp:963 -#: ../src/ui/dialog/transformation.cpp:973 -#: ../src/ui/dialog/transformation.cpp:997 -msgid "Transform matrix is singular, not used." +#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +msgid "" +"When active will render images while in outline mode instead of a red box " +"with an x. This is useful for manual tracing." msgstr "" -#: ../src/ui/dialog/transformation.cpp:1012 -msgid "Edit transformation matrix" -msgstr "Modifica la matrice di trasformazione" - -#: ../src/ui/dialog/transformation.cpp:1111 -#, fuzzy -msgid "Rotation angle (positive = clockwise)" -msgstr "Angolo di rotazione (positivo = antiorario)" +#: ../src/ui/dialog/inkscape-preferences.cpp:1474 +msgid "Bitmaps" +msgstr "Bitmap" -#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 -msgid "New element node" -msgstr "Nuovo elemento nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1486 +msgid "" +"Select a file of predefined shortcuts to use. Any customized shortcuts you " +"create will be added seperately to " +msgstr "" -#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 -msgid "New text node" -msgstr "Nuovo nodo testuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1489 +msgid "Shortcut file:" +msgstr "File scorciatoie:" -#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 -msgid "nodeAsInXMLdialogTooltip|Delete node" -msgstr "Elimina nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1492 +#: ../src/ui/dialog/template-load-tab.cpp:48 +msgid "Search:" +msgstr "Cerca:" -#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 -msgid "Duplicate node" -msgstr "Duplica nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1504 +msgid "Shortcut" +msgstr "Scorciatoia" -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 -msgid "Delete attribute" -msgstr "Cancella attributo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1505 +#: ../src/ui/widget/page-sizer.cpp:260 +msgid "Description" +msgstr "Descrizione" -#: ../src/ui/dialog/xml-tree.cpp:87 -msgid "Set" -msgstr "Imposta" +#: ../src/ui/dialog/inkscape-preferences.cpp:1560 +#: ../src/ui/dialog/pixelartdialog.cpp:296 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 +#: ../src/ui/dialog/tracedialog.cpp:813 +#: ../src/ui/widget/preferences-widget.cpp:749 +msgid "Reset" +msgstr "Reimposta " -#: ../src/ui/dialog/xml-tree.cpp:121 -msgid "Drag to reorder nodes" -msgstr "Trascina per riordinare i nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1560 +msgid "" +"Remove all your customized keyboard shortcuts, and revert to the shortcuts " +"in the shortcut file listed above" +msgstr "" -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1135 -msgid "Unindent node" -msgstr "Deindenta nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1564 +msgid "Import ..." +msgstr "Importa..." -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1113 -msgid "Indent node" -msgstr "Indenta nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1564 +msgid "Import custom keyboard shortcuts from a file" +msgstr "Importa scorciatoie da tastiera personalizzate da un file" -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1064 -msgid "Raise node" -msgstr "Alza nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 +msgid "Export ..." +msgstr "Esporta..." -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1082 -msgid "Lower node" -msgstr "Abbassa nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 +msgid "Export custom keyboard shortcuts to a file" +msgstr "Esporta scorciatoie da tastiera personalizzate in un file" -#: ../src/ui/dialog/xml-tree.cpp:208 -msgid "Attribute name" -msgstr "Nome attributo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1577 +msgid "Keyboard Shortcuts" +msgstr "Scorciatoie da tastiera" -#: ../src/ui/dialog/xml-tree.cpp:223 -msgid "Attribute value" -msgstr "Valore attributo" +#. Find this group in the tree +#: ../src/ui/dialog/inkscape-preferences.cpp:1740 +msgid "Misc" +msgstr "Varie" -#: ../src/ui/dialog/xml-tree.cpp:311 -msgid "Click to select nodes, drag to rearrange." -msgstr "Clicca per selezionare i nodi, Spostali per sistemarli." +#: ../src/ui/dialog/inkscape-preferences.cpp:1859 +msgid "Set the main spell check language" +msgstr "Imposta la lingua principale del controllo ortografico" -#: ../src/ui/dialog/xml-tree.cpp:322 -msgid "Click attribute to edit." -msgstr "Clicca l'attributo da modificare." +#: ../src/ui/dialog/inkscape-preferences.cpp:1862 +msgid "Second language:" +msgstr "Seconda lingua:" -#: ../src/ui/dialog/xml-tree.cpp:326 -#, c-format +#: ../src/ui/dialog/inkscape-preferences.cpp:1863 msgid "" -"Attribute %s selected. Press Ctrl+Enter when done editing to " -"commit changes." +"Set the second spell check language; checking will only stop on words " +"unknown in ALL chosen languages" msgstr "" -"Selezionato l'attributo %s. Premere Ctrl+Enter quando finito " -"per effettuare i cambiamenti." - -#: ../src/ui/dialog/xml-tree.cpp:566 -msgid "Drag XML subtree" -msgstr "Trascina sottoalbero XML" - -#: ../src/ui/dialog/xml-tree.cpp:868 -msgid "New element node..." -msgstr "Nuovo elemento nodo..." +"Imposta la lingua secondaria per il controllo ortografico; il controllo " +"evidenzierĂ  solo parole non presenti in nessuna lingua selezionata" -#: ../src/ui/dialog/xml-tree.cpp:906 -msgid "Cancel" -msgstr "Cancella" +#: ../src/ui/dialog/inkscape-preferences.cpp:1866 +msgid "Third language:" +msgstr "Terza lingua:" -#: ../src/ui/dialog/xml-tree.cpp:943 -msgid "Create new element node" -msgstr "Crea nuovo elemento nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1867 +msgid "" +"Set the third spell check language; checking will only stop on words unknown " +"in ALL chosen languages" +msgstr "" +"Imposta la terza lingua per il controllo ortografico; il controllo " +"evidenzierĂ  solo parole non presenti in nessuna lingua selezionata" -#: ../src/ui/dialog/xml-tree.cpp:959 -msgid "Create new text node" -msgstr "Crea nuovo nodo testuale" +#: ../src/ui/dialog/inkscape-preferences.cpp:1869 +msgid "Ignore words with digits" +msgstr "Ignora parole con numeri" -#: ../src/ui/dialog/xml-tree.cpp:994 -msgid "nodeAsInXMLinHistoryDialog|Delete node" -msgstr "Elimina nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1871 +msgid "Ignore words containing digits, such as \"R2D2\"" +msgstr "Ignora le parole contenenti numeri, come \"R2D2\"" -#: ../src/ui/dialog/xml-tree.cpp:1038 -msgid "Change attribute" -msgstr "Cambia attributo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1873 +msgid "Ignore words in ALL CAPITALS" +msgstr "Ignora parole TUTTE MAIUSCOLE" -#: ../src/ui/tool/curve-drag-point.cpp:100 -msgid "Drag curve" -msgstr "Trascina curva" +#: ../src/ui/dialog/inkscape-preferences.cpp:1875 +msgid "Ignore words in all capitals, such as \"IUPAC\"" +msgstr "Ignora parole scritte tutte maiuscole, come \"IUPAC\"" -#: ../src/ui/tool/curve-drag-point.cpp:157 -msgid "Add node" -msgstr "Aggiungi nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1877 +msgid "Spellcheck" +msgstr "Correttore ortografico" -#: ../src/ui/tool/curve-drag-point.cpp:167 +#: ../src/ui/dialog/inkscape-preferences.cpp:1897 #, fuzzy -msgctxt "Path segment tip" -msgid "Shift: click to toggle segment selection" -msgstr "" -"Maiusc: fare clic per commutare selezione, trascinare per usare la " -"selezione ad elastico" +msgid "Latency _skew:" +msgstr "Latenza:" -#: ../src/ui/tool/curve-drag-point.cpp:171 +#: ../src/ui/dialog/inkscape-preferences.cpp:1898 #, fuzzy -msgctxt "Path segment tip" -msgid "Ctrl+Alt: click to insert a node" -msgstr "" -"Punto di connessione: fare clic o trascinare per creare un nuovo " -"connettore" - -#: ../src/ui/tool/curve-drag-point.cpp:175 -msgctxt "Path segment tip" msgid "" -"Linear segment: drag to convert to a Bezier segment, doubleclick to " -"insert node, click to select (more: Shift, Ctrl+Alt)" +"Factor by which the event clock is skewed from the actual time (0.9766 on " +"some systems)" msgstr "" +"Il fattore di ritardo del clock degli eventi dal tempo reale (0.9766 su " +"alcuni sistemi)." -#: ../src/ui/tool/curve-drag-point.cpp:179 -msgctxt "Path segment tip" +#: ../src/ui/dialog/inkscape-preferences.cpp:1900 +msgid "Pre-render named icons" +msgstr "Effettua render anticipato delle icone con nome" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1902 msgid "" -"Bezier segment: drag to shape the segment, doubleclick to insert " -"node, click to select (more: Shift, Ctrl+Alt)" +"When on, named icons will be rendered before displaying the ui. This is for " +"working around bugs in GTK+ named icon notification" msgstr "" +"Quando attivo, le icone con nome vengono renderizzate prima di essere " +"mostrate nell'interfaccia. Questo può aiutare ad evitare un bug nelle " +"notifiche delle icone di GTK+" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 -#, fuzzy -msgid "Retract handles" -msgstr "Ritira maniglia" +#: ../src/ui/dialog/inkscape-preferences.cpp:1910 +msgid "System info" +msgstr "Informazione sistema" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:270 -msgid "Change node type" -msgstr "Cambia tipo di nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +msgid "User config: " +msgstr "Configurazione utente:" -#: ../src/ui/tool/multi-path-manipulator.cpp:323 -#, fuzzy -msgid "Straighten segments" -msgstr "Appiattisci segmento" +#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +msgid "Location of users configuration" +msgstr "Locazione della configurazione utente" -#: ../src/ui/tool/multi-path-manipulator.cpp:325 -#, fuzzy -msgid "Make segments curves" -msgstr "Trasforma in curve i segmenti selezionati" +#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +msgid "User preferences: " +msgstr "Preferenze utente: " -#: ../src/ui/tool/multi-path-manipulator.cpp:333 -msgid "Add nodes" -msgstr "Aggiunge nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +msgid "Location of the users preferences file" +msgstr "Locazione del file di preferenze dell'utente" -#: ../src/ui/tool/multi-path-manipulator.cpp:339 -#, fuzzy -msgid "Add extremum nodes" -msgstr "Aggiunge nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1922 +msgid "User extensions: " +msgstr "Estensioni utente: " -#: ../src/ui/tool/multi-path-manipulator.cpp:346 -#, fuzzy -msgid "Duplicate nodes" -msgstr "Duplica nodo" +#: ../src/ui/dialog/inkscape-preferences.cpp:1922 +msgid "Location of the users extensions" +msgstr "Locazione delle estensioni dell'utente" -#: ../src/ui/tool/multi-path-manipulator.cpp:409 -#: ../src/widgets/node-toolbar.cpp:408 -msgid "Join nodes" -msgstr "Unisci nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "User cache: " +msgstr "Cache utente: " -#: ../src/ui/tool/multi-path-manipulator.cpp:416 -#: ../src/widgets/node-toolbar.cpp:419 -msgid "Break nodes" -msgstr "Spezza nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "Location of users cache" +msgstr "Locazione della cache dell'utente" -#: ../src/ui/tool/multi-path-manipulator.cpp:423 -msgid "Delete nodes" -msgstr "Cancella nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Temporary files: " +msgstr "File temporanei: " -#: ../src/ui/tool/multi-path-manipulator.cpp:757 -msgid "Move nodes" -msgstr "Muovi nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Location of the temporary files used for autosave" +msgstr "Locazione dei file temporanei usati per l'autosalvataggio" -#: ../src/ui/tool/multi-path-manipulator.cpp:760 -msgid "Move nodes horizontally" -msgstr "Muove i nodi verticalmente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +msgid "Inkscape data: " +msgstr "Dati Inkscape: " -#: ../src/ui/tool/multi-path-manipulator.cpp:764 -msgid "Move nodes vertically" -msgstr "Muove i nodi verticalmente" +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +msgid "Location of Inkscape data" +msgstr "Locazione dei dai di Inkscape" -#: ../src/ui/tool/multi-path-manipulator.cpp:768 -#: ../src/ui/tool/multi-path-manipulator.cpp:771 -msgid "Rotate nodes" -msgstr "Ruota nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1942 +msgid "Inkscape extensions: " +msgstr "Estensioni di Inkscape: " -#: ../src/ui/tool/multi-path-manipulator.cpp:775 -#: ../src/ui/tool/multi-path-manipulator.cpp:781 -#, fuzzy -msgid "Scale nodes uniformly" -msgstr "Ridimensiona nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1942 +msgid "Location of the Inkscape extensions" +msgstr "Locazione delle estensioni di Inkscape" -#: ../src/ui/tool/multi-path-manipulator.cpp:778 -msgid "Scale nodes" -msgstr "Ridimensiona nodi" +#: ../src/ui/dialog/inkscape-preferences.cpp:1951 +msgid "System data: " +msgstr "Dati sistema: " -#: ../src/ui/tool/multi-path-manipulator.cpp:785 +#: ../src/ui/dialog/inkscape-preferences.cpp:1951 +msgid "Locations of system data" +msgstr "Locazione dei dati di sistema" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1975 +msgid "Icon theme: " +msgstr "Tema icone: " + +#: ../src/ui/dialog/inkscape-preferences.cpp:1975 +msgid "Locations of icon themes" +msgstr "Locazione dei temi delle icone" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1977 +msgid "System" +msgstr "Sistema" + +#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 +#: ../src/ui/dialog/input.cpp:1641 #, fuzzy -msgid "Scale nodes horizontally" -msgstr "Muove i nodi verticalmente" +msgid "Disabled" +msgstr "_Abilitata" -#: ../src/ui/tool/multi-path-manipulator.cpp:789 +#: ../src/ui/dialog/input.cpp:361 #, fuzzy -msgid "Scale nodes vertically" -msgstr "Muove i nodi verticalmente" +msgctxt "Input device" +msgid "Screen" +msgstr "Scherma" -#: ../src/ui/tool/multi-path-manipulator.cpp:793 +#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 #, fuzzy -msgid "Skew nodes horizontally" -msgstr "Muove i nodi verticalmente" +msgid "Window" +msgstr "Finestre" -#: ../src/ui/tool/multi-path-manipulator.cpp:797 +#: ../src/ui/dialog/input.cpp:618 +msgid "Test Area" +msgstr "" + +#: ../src/ui/dialog/input.cpp:619 #, fuzzy -msgid "Skew nodes vertically" -msgstr "Muove i nodi verticalmente" +msgid "Axis" +msgstr "Asse X" -#: ../src/ui/tool/multi-path-manipulator.cpp:801 +#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 +msgid "Configuration" +msgstr "Configurazione" + +#: ../src/ui/dialog/input.cpp:709 #, fuzzy -msgid "Flip nodes horizontally" -msgstr "Rifletti orizzontalmente" +msgid "Hardware" +msgstr "Filo spinato" -#: ../src/ui/tool/multi-path-manipulator.cpp:804 +#: ../src/ui/dialog/input.cpp:732 #, fuzzy -msgid "Flip nodes vertically" -msgstr "Rifletti verticalmente" +msgid "Link:" +msgstr "Linea" -#: ../src/ui/tool/node.cpp:245 +#: ../src/ui/dialog/input.cpp:758 #, fuzzy -msgid "Cusp node handle" -msgstr "Muovi maniglia del nodo" +msgid "Axes count:" +msgstr "QuantitĂ " -#: ../src/ui/tool/node.cpp:246 +#: ../src/ui/dialog/input.cpp:788 #, fuzzy -msgid "Smooth node handle" -msgstr "Sposta maniglie dei nodi" +msgid "axis:" +msgstr "Raggio:" -#: ../src/ui/tool/node.cpp:247 +#: ../src/ui/dialog/input.cpp:812 #, fuzzy -msgid "Symmetric node handle" -msgstr "Sposta maniglie dei nodi" +msgid "Button count:" +msgstr "Bottone" -#: ../src/ui/tool/node.cpp:248 +#: ../src/ui/dialog/input.cpp:1010 #, fuzzy -msgid "Auto-smooth node handle" -msgstr "Muovi maniglia del nodo" +msgid "Tablet" +msgstr "Tabella" -#: ../src/ui/tool/node.cpp:432 -msgctxt "Path handle tip" -msgid "more: Shift, Ctrl, Alt" +#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 +msgid "pad" msgstr "" -#: ../src/ui/tool/node.cpp:434 -msgctxt "Path handle tip" -msgid "more: Ctrl, Alt" -msgstr "" +#: ../src/ui/dialog/input.cpp:1081 +msgid "_Use pressure-sensitive tablet (requires restart)" +msgstr "_Utilizza una tavoletta con sensore di pressione (richiede riapertura)" -#: ../src/ui/tool/node.cpp:440 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " -"increments while rotating both handles" +#: ../src/ui/dialog/input.cpp:1086 +msgid "Axes" +msgstr "Assi" + +#: ../src/ui/dialog/input.cpp:1087 +msgid "Keys" msgstr "" -#: ../src/ui/tool/node.cpp:445 -#, c-format -msgctxt "Path handle tip" +#: ../src/ui/dialog/input.cpp:1170 msgid "" -"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" +"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " +"or to a single (usually focused) 'Window'" msgstr "" -#: ../src/ui/tool/node.cpp:451 -#, fuzzy -msgctxt "Path handle tip" -msgid "Shift+Alt: preserve handle length and rotate both handles" -msgstr "" -"Maiusc: commuta la selezione del nodo, disabilita lo scatto, ruota " -"entrambe le maniglie" +#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 +#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 +msgid "Pressure" +msgstr "Pressione" -#: ../src/ui/tool/node.cpp:454 -msgctxt "Path handle tip" -msgid "Alt: preserve handle length while dragging" +#: ../src/ui/dialog/input.cpp:1616 +msgid "X tilt" msgstr "" -#: ../src/ui/tool/node.cpp:461 -#, fuzzy, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " -"handles" +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y tilt" msgstr "" -"Maiusc: commuta la selezione del nodo, disabilita lo scatto, ruota " -"entrambe le maniglie" -#: ../src/ui/tool/node.cpp:465 -#, c-format -msgctxt "Path handle tip" -msgid "Ctrl: snap rotation angle to %g° increments, click to retract" -msgstr "" +#: ../src/ui/dialog/input.cpp:1616 +#: ../src/widgets/sp-color-wheel-selector.cpp:59 +msgid "Wheel" +msgstr "Ruota" -#: ../src/ui/tool/node.cpp:470 -#, fuzzy -msgctxt "Path hande tip" -msgid "Shift: rotate both handles by the same angle" -msgstr "Maiusc: disegna attorno al punto iniziale" +#: ../src/ui/dialog/layer-properties.cpp:55 +msgid "Layer name:" +msgstr "Nome del livello:" -#: ../src/ui/tool/node.cpp:477 -#, c-format -msgctxt "Path handle tip" -msgid "Auto node handle: drag to convert to smooth node (%s)" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:136 +msgid "Add layer" +msgstr "Aggiungi livello" -#: ../src/ui/tool/node.cpp:480 -#, c-format -msgctxt "Path handle tip" -msgid "%s: drag to shape the segment (%s)" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:176 +msgid "Above current" +msgstr "Sopra l'attuale" -#: ../src/ui/tool/node.cpp:500 -#, c-format -msgctxt "Path handle tip" -msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:180 +msgid "Below current" +msgstr "Sotto l'attuale" -#: ../src/ui/tool/node.cpp:1270 -#, fuzzy -msgctxt "Path node tip" -msgid "Shift: drag out a handle, click to toggle selection" -msgstr "" -"Maiusc: fare clic per commutare selezione, trascinare per usare la " -"selezione ad elastico" +#: ../src/ui/dialog/layer-properties.cpp:183 +msgid "As sublayer of current" +msgstr "Un sottolivello dell'attuale" -#: ../src/ui/tool/node.cpp:1272 -#, fuzzy -msgctxt "Path node tip" -msgid "Shift: click to toggle selection" -msgstr "" -"Maiusc: fare clic per commutare selezione, trascinare per usare la " -"selezione ad elastico" +#: ../src/ui/dialog/layer-properties.cpp:352 +msgid "Rename Layer" +msgstr "Rinomina livello" -#: ../src/ui/tool/node.cpp:1277 -msgctxt "Path node tip" -msgid "Ctrl+Alt: move along handle lines, click to delete node" -msgstr "" +#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" +#: ../src/ui/dialog/layer-properties.cpp:354 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 +#: ../src/verbs.cpp:2289 +msgid "Layer" +msgstr "Livello" -#: ../src/ui/tool/node.cpp:1280 -msgctxt "Path node tip" -msgid "Ctrl: move along axes, click to change node type" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:355 +msgid "_Rename" +msgstr "_Rinomina" -#: ../src/ui/tool/node.cpp:1284 -#, fuzzy -msgctxt "Path node tip" -msgid "Alt: sculpt nodes" -msgstr "Ctrl: fa scattare l'angolo" +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +msgid "Rename layer" +msgstr "Rinomina livello" -#: ../src/ui/tool/node.cpp:1292 -#, c-format -msgctxt "Path node tip" -msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" +#. TRANSLATORS: This means "The layer has been renamed" +#: ../src/ui/dialog/layer-properties.cpp:370 +msgid "Renamed layer" +msgstr "Livello rinominato" -#: ../src/ui/tool/node.cpp:1295 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to toggle scale/rotation handles " -"(more: Shift, Ctrl, Alt)" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:374 +msgid "Add Layer" +msgstr "Aggiungi livello" -#: ../src/ui/tool/node.cpp:1298 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to select only this node (more: " -"Shift, Ctrl, Alt)" -msgstr "" +#: ../src/ui/dialog/layer-properties.cpp:380 +msgid "_Add" +msgstr "_Aggiungi" -#: ../src/ui/tool/node.cpp:1309 -#, fuzzy, c-format -msgctxt "Path node tip" -msgid "Move node by %s, %s" -msgstr "Muovi nodi" +#: ../src/ui/dialog/layer-properties.cpp:404 +msgid "New layer created." +msgstr "Nuovo livello creato." + +#: ../src/ui/dialog/layer-properties.cpp:408 +msgid "Move to Layer" +msgstr "Sposta a livello" -#: ../src/ui/tool/node.cpp:1320 -#, fuzzy -msgid "Symmetric node" -msgstr "simmetrico" +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/transformation.cpp:114 +msgid "_Move" +msgstr "_Muovi" -#: ../src/ui/tool/node.cpp:1321 -#, fuzzy -msgid "Auto-smooth node" -msgstr "nodo curvo" +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Unhide layer" +msgstr "Mostra livello" -#: ../src/ui/tool/path-manipulator.cpp:821 -#, fuzzy -msgid "Scale handle" -msgstr "Ridimensiona nodi" +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Hide layer" +msgstr "Nascondi livello" -#: ../src/ui/tool/path-manipulator.cpp:845 -#, fuzzy -msgid "Rotate handle" -msgstr "Ritira maniglia" +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Lock layer" +msgstr "Blocca livello" -#. We need to call MPM's method because it could have been our last node -#: ../src/ui/tool/path-manipulator.cpp:1384 -#: ../src/widgets/node-toolbar.cpp:397 -msgid "Delete node" -msgstr "Cancella nodo" +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Unlock layer" +msgstr "Sblocca livello" -#: ../src/ui/tool/path-manipulator.cpp:1392 +#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1405 +msgid "Toggle layer solo" +msgstr "VisibilitĂ  esclusiva del livello" + +#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1429 #, fuzzy -msgid "Cycle node type" -msgstr "Cambia tipo di nodo" +msgid "Lock other layers" +msgstr "Blocca livello" -#: ../src/ui/tool/path-manipulator.cpp:1407 +#: ../src/ui/dialog/layers.cpp:721 #, fuzzy -msgid "Drag handle" -msgstr "Disegna maniglie" +msgid "Moved layer" +msgstr "Abbassa livello" -#: ../src/ui/tool/path-manipulator.cpp:1416 -msgid "Retract handle" -msgstr "Ritira maniglia" +#: ../src/ui/dialog/layers.cpp:884 +msgctxt "Layers" +msgid "New" +msgstr "Nuovo" -#: ../src/ui/tool/transform-handle-set.cpp:195 +#: ../src/ui/dialog/layers.cpp:889 #, fuzzy -msgctxt "Transform handle tip" -msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "Maiusc: disegna attorno al punto iniziale" +msgctxt "Layers" +msgid "Bot" +msgstr "Fondo" -#: ../src/ui/tool/transform-handle-set.cpp:197 +#: ../src/ui/dialog/layers.cpp:895 #, fuzzy -msgctxt "Transform handle tip" -msgid "Ctrl: scale uniformly" -msgstr "Ctrl: fa scattare l'angolo" +msgctxt "Layers" +msgid "Dn" +msgstr "Basso" -#: ../src/ui/tool/transform-handle-set.cpp:202 +#: ../src/ui/dialog/layers.cpp:901 #, fuzzy -msgctxt "Transform handle tip" -msgid "" -"Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "Maiusc: disegna il gradiente attorno al punto iniziale" +msgctxt "Layers" +msgid "Up" +msgstr "Alto" -#: ../src/ui/tool/transform-handle-set.cpp:204 +#: ../src/ui/dialog/layers.cpp:907 #, fuzzy -msgctxt "Transform handle tip" -msgid "Shift: scale from the rotation center" -msgstr "Maiusc: disegna attorno al punto iniziale" +msgctxt "Layers" +msgid "Top" +msgstr "Cima" -#: ../src/ui/tool/transform-handle-set.cpp:207 -#, fuzzy -msgctxt "Transform handle tip" -msgid "Alt: scale using an integer ratio" -msgstr "Alt: mantiene il raggio della spirale" +#: ../src/ui/dialog/livepatheffect-add.cpp:32 +msgid "Add Path Effect" +msgstr "Aggiungi effetto su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:209 -#, fuzzy -msgctxt "Transform handle tip" -msgid "Scale handle: drag to scale the selection" -msgstr "Nessun tracciato nella selezione da invertire." +#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +msgid "Add path effect" +msgstr "Aggiungi effetto su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:214 -#, c-format -msgctxt "Transform handle tip" -msgid "Scale by %.2f%% x %.2f%%" -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +msgid "Delete current path effect" +msgstr "Elimina effetto su tracciato attuale" -#: ../src/ui/tool/transform-handle-set.cpp:438 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " -"increments" -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +msgid "Raise the current path effect" +msgstr "Alza l'effetto su tracciato attuale" -#: ../src/ui/tool/transform-handle-set.cpp:441 -#, fuzzy -msgctxt "Transform handle tip" -msgid "Shift: rotate around the opposite corner" -msgstr "Maiusc: disegna attorno al punto iniziale" +#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +msgid "Lower the current path effect" +msgstr "Abbassa l'effetto su tracciato attuale" -#: ../src/ui/tool/transform-handle-set.cpp:445 -#, fuzzy, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap angle to %f° increments" -msgstr "Ctrl: fa scattare l'angolo" +#: ../src/ui/dialog/livepatheffect-editor.cpp:313 +msgid "Unknown effect is applied" +msgstr "Ă applicato un effetto sconosciuto" -#: ../src/ui/tool/transform-handle-set.cpp:447 -msgctxt "Transform handle tip" -msgid "" -"Rotation handle: drag to rotate the selection around the rotation " -"center" +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 +msgid "Click button to add an effect" +msgstr "Clicca il bottone per aggiungere un effetto" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:329 +msgid "Click add button to convert clone" msgstr "" -#. event -#: ../src/ui/tool/transform-handle-set.cpp:452 -#, fuzzy, c-format -msgctxt "Transform handle tip" -msgid "Rotate by %.2f°" -msgstr "Ruota tramite pixel" +#: ../src/ui/dialog/livepatheffect-editor.cpp:334 +#: ../src/ui/dialog/livepatheffect-editor.cpp:338 +#: ../src/ui/dialog/livepatheffect-editor.cpp:346 +msgid "Select a path or shape" +msgstr "Seleziona un tracciato o una forma" -#: ../src/ui/tool/transform-handle-set.cpp:578 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: skew about the rotation center with snapping to %f° " -"increments" -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:342 +msgid "Only one item can be selected" +msgstr "Può essere selezionato un solo elemento" -#: ../src/ui/tool/transform-handle-set.cpp:581 +#: ../src/ui/dialog/livepatheffect-editor.cpp:374 #, fuzzy -msgctxt "Transform handle tip" -msgid "Shift: skew about the rotation center" -msgstr "Maiusc: disegna attorno al punto iniziale" +msgid "Unknown effect" +msgstr "Ă applicato un effetto sconosciuto" -#: ../src/ui/tool/transform-handle-set.cpp:585 -#, fuzzy, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap skew angle to %f° increments" -msgstr "Ctrl: fa scattare l'angolo" +#: ../src/ui/dialog/livepatheffect-editor.cpp:450 +msgid "Create and apply path effect" +msgstr "Crea e applica effetti su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:588 -msgctxt "Transform handle tip" -msgid "" -"Skew handle: drag to skew (shear) selection about the opposite handle" -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:485 +#, fuzzy +msgid "Create and apply Clone original path effect" +msgstr "Crea e applica effetti su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:594 -#, fuzzy, c-format -msgctxt "Transform handle tip" -msgid "Skew horizontally by %.2f°" -msgstr "Scosta orizzontalmente di pixel" +#: ../src/ui/dialog/livepatheffect-editor.cpp:505 +msgid "Remove path effect" +msgstr "Rimuove effetti su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:597 -#, fuzzy, c-format -msgctxt "Transform handle tip" -msgid "Skew vertically by %.2f°" -msgstr "Scosta verticalmente di pixel" +#: ../src/ui/dialog/livepatheffect-editor.cpp:522 +msgid "Move path effect up" +msgstr "Sposta in alto effetto su tracciato" -#: ../src/ui/tool/transform-handle-set.cpp:656 -msgctxt "Transform handle tip" -msgid "Rotation center: drag to change the origin of transforms" -msgstr "" +#: ../src/ui/dialog/livepatheffect-editor.cpp:538 +msgid "Move path effect down" +msgstr "Sposta in basso effetto su tracciato" -#: ../src/ui/tools/arc-tool.cpp:252 -msgid "" -"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" -msgstr "" -"Ctrl: crea cerchi o ellissi in scala, fa scattare gli angoli di archi/" -"segmenti" +#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +msgid "Activate path effect" +msgstr "Attiva effetto su tracciato" -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 -msgid "Shift: draw around the starting point" -msgstr "Maiusc: disegna attorno al punto iniziale" +#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +msgid "Deactivate path effect" +msgstr "Disattiva effetto su tracciato" -#: ../src/ui/tools/arc-tool.cpp:422 -#, c-format -msgid "" -"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " -"to draw around the starting point" -msgstr "" -"Ellisse: %s × %s; (vincolato al raggio %d:%d); Maiusc per " -"disegnare attorno al punto iniziale" +#: ../src/ui/dialog/memory.cpp:96 +msgid "Heap" +msgstr "Heap" -#: ../src/ui/tools/arc-tool.cpp:424 -#, c-format -msgid "" -"Ellipse: %s × %s; with Ctrl to make square or integer-" -"ratio ellipse; with Shift to draw around the starting point" -msgstr "" -"Ellisse: %s × %s; Ctrl per fare cerchi o ellissi in " -"scala; Maiusc per disegnare attorno al punto iniziale" +#: ../src/ui/dialog/memory.cpp:97 +msgid "In Use" +msgstr "In uso" -#: ../src/ui/tools/arc-tool.cpp:447 -msgid "Create ellipse" -msgstr "Crea ellisse" +#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. +#. More typical usage is to call this memory "free" rather than "slack". +#: ../src/ui/dialog/memory.cpp:100 +msgid "Slack" +msgstr "Slack" -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 -msgid "Change perspective (angle of PLs)" -msgstr "Cambia prospettiva (angolo degli assi prospettici)" +#: ../src/ui/dialog/memory.cpp:101 +msgid "Total" +msgstr "Totale" -#. status text -#: ../src/ui/tools/box3d-tool.cpp:583 -msgid "3D Box; with Shift to extrude along the Z axis" -msgstr "Solido 3D; con Maiusc per estrudere lungo l'asse Z" +#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 +#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 +msgid "Unknown" +msgstr "Sconosciuto" -#: ../src/ui/tools/box3d-tool.cpp:609 -msgid "Create 3D box" -msgstr "Crea solido 3D" +#: ../src/ui/dialog/memory.cpp:167 +msgid "Combined" +msgstr "Combinato" -#: ../src/ui/tools/calligraphic-tool.cpp:536 -msgid "" -"Guide path selected; start drawing along the guide with Ctrl" -msgstr "" -"Tracciato guida selezionato; iniziare a disegnare seguendo la guida " -"con Ctrl" +#: ../src/ui/dialog/memory.cpp:209 +msgid "Recalculate" +msgstr "Ricalcola" -#: ../src/ui/tools/calligraphic-tool.cpp:538 -msgid "Select a guide path to track with Ctrl" -msgstr "Selezionare un tracciato guida da ricalcare con Ctrl" +#: ../src/ui/dialog/messages.cpp:47 +#, fuzzy +msgid "Clear log messages" +msgstr "Intercetta i messaggi di log" -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking: connection to guide path lost!" -msgstr "Ricalco: connessione" +#: ../src/ui/dialog/messages.cpp:81 +msgid "Ready." +msgstr "Pronto." -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking a guide path" -msgstr "Ricalco di un tracciato guida" +#: ../src/ui/dialog/messages.cpp:174 +msgid "Log capture started." +msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:676 -msgid "Drawing a calligraphic stroke" -msgstr "Creazione di una linea calligrafica" +#: ../src/ui/dialog/messages.cpp:203 +msgid "Log capture stopped." +msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:977 -msgid "Draw calligraphic stroke" -msgstr "Crea linee calligrafiche" +#: ../src/ui/dialog/new-from-template.cpp:24 +msgid "Create from template" +msgstr "Crea da modello" -#: ../src/ui/tools/connector-tool.cpp:499 -msgid "Creating new connector" -msgstr "Creazione nuovo connettore" +#: ../src/ui/dialog/new-from-template.cpp:26 +msgid "New From Template" +msgstr "Nuovo da modello" -#: ../src/ui/tools/connector-tool.cpp:740 -msgid "Connector endpoint drag cancelled." -msgstr "Punto finale connettore cancellato." +#: ../src/ui/dialog/object-attributes.cpp:47 +msgid "Href:" +msgstr "Href:" -#: ../src/ui/tools/connector-tool.cpp:783 -msgid "Reroute connector" -msgstr "Reinstrada connettore" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute +#. Identifies the type of the related resource with an absolute URI +#: ../src/ui/dialog/object-attributes.cpp:52 +msgid "Role:" +msgstr "Ruolo:" -#: ../src/ui/tools/connector-tool.cpp:936 -msgid "Create connector" -msgstr "Crea connettore" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute +#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. +#: ../src/ui/dialog/object-attributes.cpp:55 +msgid "Arcrole:" +msgstr "Ruolo aggiuntivo:" -#: ../src/ui/tools/connector-tool.cpp:953 -msgid "Finishing connector" -msgstr "Terminazione connettore" +#: ../src/ui/dialog/object-attributes.cpp:58 +#: ../share/extensions/polyhedron_3d.inx.h:47 +msgid "Show:" +msgstr "Mostra:" -#: ../src/ui/tools/connector-tool.cpp:1191 -msgid "Connector endpoint: drag to reroute or connect to new shapes" -msgstr "" -"Punto finale connettore: trascinare per reinstradare o connettere a " -"nuove forme" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute +#: ../src/ui/dialog/object-attributes.cpp:60 +msgid "Actuate:" +msgstr "Attuazione:" -#: ../src/ui/tools/connector-tool.cpp:1336 -msgid "Select at least one non-connector object." -msgstr "Selezionare almeno un oggetto non-connettore." +#: ../src/ui/dialog/object-attributes.cpp:65 +msgid "URL:" +msgstr "URL:" -#: ../src/ui/tools/connector-tool.cpp:1341 -#: ../src/widgets/connector-toolbar.cpp:314 -msgid "Make connectors avoid selected objects" -msgstr "Fa sì che i connettori evitino gli oggetti selezionati" +#: ../src/ui/dialog/object-attributes.cpp:70 +msgid "Image Rendering:" +msgstr "Rendering immagine:" -#: ../src/ui/tools/connector-tool.cpp:1342 -#: ../src/widgets/connector-toolbar.cpp:324 -msgid "Make connectors ignore selected objects" -msgstr "Fa sì che i connettori ignorino gli oggetti selezionati" +#: ../src/ui/dialog/object-properties.cpp:58 +#: ../src/ui/dialog/object-properties.cpp:399 +#: ../src/ui/dialog/object-properties.cpp:470 +#: ../src/ui/dialog/object-properties.cpp:477 +msgid "_ID:" +msgstr "_ID:" -#. alpha of color under cursor, to show in the statusbar -#. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 -#, c-format -msgid " alpha %.3g" -msgstr " alpha %.3g" +#: ../src/ui/dialog/object-properties.cpp:60 +msgid "_Title:" +msgstr "_Titolo:" -#. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 -#, c-format -msgid ", averaged with radius %d" -msgstr ", medio con radiale %d" +#: ../src/ui/dialog/object-properties.cpp:61 +msgid "_Image Rendering:" +msgstr "Rendering _immagine:" -#: ../src/ui/tools/dropper-tool.cpp:283 -msgid " under cursor" -msgstr " sotto il cursore" +#: ../src/ui/dialog/object-properties.cpp:62 +msgid "_Hide" +msgstr "Na_scondi" -#. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 -msgid "Release mouse to set color." -msgstr "Rilascia il mouse per impostare il colore." +#: ../src/ui/dialog/object-properties.cpp:63 +msgid "L_ock" +msgstr "Bl_occa" -#: ../src/ui/tools/dropper-tool.cpp:333 -msgid "Set picked color" -msgstr "Imposta colore selezionato" +#. Create the entry box for the object id +#: ../src/ui/dialog/object-properties.cpp:139 +msgid "" +"The id= attribute (only letters, digits, and the characters .-_: allowed)" +msgstr "" +"L'attributo id= (sono ammessi solo lettere, numeri, e i caratteri .-_:)" -#: ../src/ui/tools/eraser-tool.cpp:437 -msgid "Drawing an eraser stroke" -msgstr "Disegno di un tratto di cancellazione" +#. Create the entry box for the object label +#: ../src/ui/dialog/object-properties.cpp:174 +msgid "A freeform label for the object" +msgstr "Un'etichetta personale per l'oggetto" -#: ../src/ui/tools/eraser-tool.cpp:770 -msgid "Draw eraser stroke" -msgstr "Disegna tratto di cancellazione" +#. Create the frame for the object description +#: ../src/ui/dialog/object-properties.cpp:225 +msgid "_Description:" +msgstr "_Descrizione:" -#: ../src/ui/tools/flood-tool.cpp:192 -msgid "Visible Colors" -msgstr "Colori visibili" +#: ../src/ui/dialog/object-properties.cpp:260 +msgid "" +"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" +"\t'auto' no preference;\n" +"\t'optimizeQuality' smooth;\n" +"\t'optimizeSpeed' blocky.\n" +"Note that this behaviour is not defined in the SVG 1.1 specification and not " +"all browsers follow this interpretation." +msgstr "" -#: ../src/ui/tools/flood-tool.cpp:210 -#, fuzzy -msgctxt "Flood autogap" -msgid "None" -msgstr "Nessuno" +#. Hide +#: ../src/ui/dialog/object-properties.cpp:293 +msgid "Check to make the object invisible" +msgstr "Rende l'oggetto invisibile" -#: ../src/ui/tools/flood-tool.cpp:211 -#, fuzzy -msgctxt "Flood autogap" -msgid "Small" -msgstr "Piccola" +#. Lock +#. TRANSLATORS: "Lock" is a verb here +#: ../src/ui/dialog/object-properties.cpp:309 +msgid "Check to make the object insensitive (not selectable by mouse)" +msgstr "Rende l'oggetto bloccato (non selezionabile col mouse)" -#: ../src/ui/tools/flood-tool.cpp:212 -#, fuzzy -msgctxt "Flood autogap" -msgid "Medium" -msgstr "Media" +#. Button for setting the object's id, label, title and description. +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2638 +msgid "_Set" +msgstr "Impo_sta" -#: ../src/ui/tools/flood-tool.cpp:213 -#, fuzzy -msgctxt "Flood autogap" -msgid "Large" -msgstr "Grande" +#. Create the frame for interactivity options +#: ../src/ui/dialog/object-properties.cpp:339 +msgid "_Interactivity" +msgstr "_Interazione" -#: ../src/ui/tools/flood-tool.cpp:435 -msgid "Too much inset, the result is empty." -msgstr "Troppa intrusione, il risultato è vuoto." +#: ../src/ui/dialog/object-properties.cpp:386 +#: ../src/ui/dialog/object-properties.cpp:391 +msgid "Ref" +msgstr "Riferimento" -#: ../src/ui/tools/flood-tool.cpp:476 -#, c-format -msgid "" -"Area filled, path with %d node created and unioned with selection." -msgid_plural "" -"Area filled, path with %d nodes created and unioned with selection." -msgstr[0] "" -"Area riempita, creato un tracciato di %d nodo unito con la selezione." -msgstr[1] "" -"Area riempita, creato un tracciato di %d nodi unito con la selezione." +#: ../src/ui/dialog/object-properties.cpp:472 +msgid "Id invalid! " +msgstr "Id non valido! " -#: ../src/ui/tools/flood-tool.cpp:482 -#, c-format -msgid "Area filled, path with %d node created." -msgid_plural "Area filled, path with %d nodes created." -msgstr[0] "Area riempita, creato un tracciato di %d nodo." -msgstr[1] "Area riempita, creato un tracciato di %d nodi." +#: ../src/ui/dialog/object-properties.cpp:474 +msgid "Id exists! " +msgstr "Id giĂ  esistente!" -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 -msgid "Area is not bounded, cannot fill." -msgstr "L'Area non è limitata, impossibile riempirla." +#: ../src/ui/dialog/object-properties.cpp:480 +msgid "Set object ID" +msgstr "Imposta ID oggetto" -#: ../src/ui/tools/flood-tool.cpp:1065 -msgid "" -"Only the visible part of the bounded area was filled. If you want to " -"fill all of the area, undo, zoom out, and fill again." -msgstr "" -"Ă stata riempita solo la parte visibile dell'area delimitata. Per " -"riempire tutta l'area occorre annullare, rimpicciolire l'immagine procedere " -"col riempimento." +#: ../src/ui/dialog/object-properties.cpp:494 +msgid "Set object label" +msgstr "Imposta etichetta oggetto" -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 -msgid "Fill bounded area" -msgstr "Riempie aree delimitate" +#: ../src/ui/dialog/object-properties.cpp:500 +msgid "Set object title" +msgstr "Imposta titolo oggetto" -#: ../src/ui/tools/flood-tool.cpp:1099 -msgid "Set style on object" -msgstr "Imposta stile per l'oggetto" +#: ../src/ui/dialog/object-properties.cpp:509 +msgid "Set object description" +msgstr "Imposta descrizione oggetto" -#: ../src/ui/tools/flood-tool.cpp:1159 -msgid "Draw over areas to add to fill, hold Alt for touch fill" -msgstr "" -"Disegnare sulle aree per aggiungere un riempimento, premere Alt per riempire al tocco" +#: ../src/ui/dialog/object-properties.cpp:552 +msgid "Lock object" +msgstr "Blocca oggetto" -#. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:518 -msgid "Path is closed." -msgstr "Il tracciato è chiuso." +#: ../src/ui/dialog/object-properties.cpp:552 +msgid "Unlock object" +msgstr "Sblocca oggetto" -#. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:533 -msgid "Closing path." -msgstr "Chiusura tracciato." +#: ../src/ui/dialog/object-properties.cpp:568 +msgid "Hide object" +msgstr "Nascondi oggetto" -#: ../src/ui/tools/freehand-base.cpp:635 -msgid "Draw path" -msgstr "Disegna tracciato" +#: ../src/ui/dialog/object-properties.cpp:568 +msgid "Unhide object" +msgstr "Mostra oggetto" -#: ../src/ui/tools/freehand-base.cpp:792 -msgid "Creating single dot" -msgstr "Creazione singolo punto" +#: ../src/ui/dialog/ocaldialogs.cpp:715 +msgid "Clipart found" +msgstr "Clipart trovata" -#: ../src/ui/tools/freehand-base.cpp:793 -msgid "Create single dot" -msgstr "Crea singolo punto" +#: ../src/ui/dialog/ocaldialogs.cpp:764 +msgid "Downloading image..." +msgstr "Scaricamento immagine..." -#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 -#, c-format -msgid "%s selected" -msgstr "%s selezionato" +#: ../src/ui/dialog/ocaldialogs.cpp:912 +#, fuzzy +msgid "Could not download image" +msgstr "Impossibile trovare il file: %s" -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 -#, c-format -msgid " out of %d gradient handle" -msgid_plural " out of %d gradient handles" -msgstr[0] " con %d maniglia di gradiente" -msgstr[1] " con %d maniglie di gradiente" +#: ../src/ui/dialog/ocaldialogs.cpp:922 +msgid "Clipart downloaded successfully" +msgstr "Clipart scaricata correttamente" -#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 -#, c-format -msgid " on %d selected object" -msgid_plural " on %d selected objects" -msgstr[0] " su %d oggetto selezionati" -msgstr[1] " su %d oggetti selezionati" +#: ../src/ui/dialog/ocaldialogs.cpp:936 +#, fuzzy +msgid "Could not download thumbnail file" +msgstr "Impossibile trovare il file: %s" -#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 -#, c-format -msgid "" -"One handle merging %d stop (drag with Shift to separate) selected" -msgid_plural "" -"One handle merging %d stops (drag with Shift to separate) selected" -msgstr[0] "" -"Una maniglia multifunzione per %d passaggio (trascinare con Maiusc " -"per separare) selezionata" -msgstr[1] "" -"Una maniglia multifunzione per %d passaggi (trascinare con Maiusc per " -"separare) selezionata" +#: ../src/ui/dialog/ocaldialogs.cpp:1011 +msgid "No description" +msgstr "Nessuna descrizione" -#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 -#, c-format -msgid "%d gradient handle selected out of %d" -msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "%d maniglia di gradiente selezionata su %d" -msgstr[1] "%d maniglie di gradiente selezionate su %d" +#: ../src/ui/dialog/ocaldialogs.cpp:1079 +msgid "Searching clipart..." +msgstr "Ricerca clipart..." -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 -#, c-format -msgid "No gradient handles selected out of %d on %d selected object" -msgid_plural "" -"No gradient handles selected out of %d on %d selected objects" -msgstr[0] "" -"Nessuna maniglia di gradiente selezionata su %d per %d oggetto nella " -"selezione" -msgstr[1] "" -"Nessuna maniglia di gradiente selezionata su %d per %d oggetti nella " -"selezione" +#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 +#, fuzzy +msgid "Could not connect to the Open Clip Art Library" +msgstr "Esporta questo documento nell'Open Clip Art Library" -#: ../src/ui/tools/gradient-tool.cpp:440 -msgid "Simplify gradient" -msgstr "Semplifica radiente" +#: ../src/ui/dialog/ocaldialogs.cpp:1145 +#, fuzzy +msgid "Could not parse search results" +msgstr "Impossibile leggere i dati SVG" -#: ../src/ui/tools/gradient-tool.cpp:516 -msgid "Create default gradient" -msgstr "Crea gradiente predefinito" +#: ../src/ui/dialog/ocaldialogs.cpp:1177 +#, fuzzy +msgid "No clipart named %1 was found." +msgstr "Dagli appunti" -#: ../src/ui/tools/gradient-tool.cpp:575 ../src/ui/tools/mesh-tool.cpp:570 -msgid "Draw around handles to select them" -msgstr "Trascinare attorno alle maniglie per selezionarle" +#: ../src/ui/dialog/ocaldialogs.cpp:1179 +msgid "" +"Please make sure all keywords are spelled correctly, or try again with " +"different keywords." +msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:698 -msgid "Ctrl: snap gradient angle" -msgstr "Ctrl: fa scattare l'angolo del gradiente" +#: ../src/ui/dialog/ocaldialogs.cpp:1231 +msgid "Search" +msgstr "Cerca" -#: ../src/ui/tools/gradient-tool.cpp:699 -msgid "Shift: draw gradient around the starting point" -msgstr "Maiusc: disegna il gradiente attorno al punto iniziale" +#: ../src/ui/dialog/ocaldialogs.cpp:1243 +msgid "Close" +msgstr "Chiudi" -#: ../src/ui/tools/gradient-tool.cpp:953 ../src/ui/tools/mesh-tool.cpp:993 -#, c-format -msgid "Gradient for %d object; with Ctrl to snap angle" -msgid_plural "Gradient for %d objects; with Ctrl to snap angle" -msgstr[0] "" -"Gradiente per %d oggetto; con Ctrl per far scattare l'angolo" -msgstr[1] "" -"Gradiente per %d oggetti; con Ctrl per far scattare l'angolo" +#: ../src/ui/dialog/pixelartdialog.cpp:190 +msgid "_Curves (multiplier):" +msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:957 ../src/ui/tools/mesh-tool.cpp:997 -msgid "Select objects on which to create gradient." -msgstr "Selezionare l'oggetto su cui creare il gradiente." +#: ../src/ui/dialog/pixelartdialog.cpp:193 +msgid "Favors connections that are part of a long curve" +msgstr "" -#: ../src/ui/tools/lpe-tool.cpp:207 -msgid "Choose a construction tool from the toolbar." -msgstr "Scegliere uno strumento di costruzione dalla barra degli strumenti." +#: ../src/ui/dialog/pixelartdialog.cpp:204 +#, fuzzy +msgid "_Islands (weight):" +msgstr "Altezza barre:" -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 -#, fuzzy, c-format -msgid " out of %d mesh handle" -msgid_plural " out of %d mesh handles" -msgstr[0] " con %d maniglia di gradiente" -msgstr[1] " con %d maniglie di gradiente" +#: ../src/ui/dialog/pixelartdialog.cpp:207 +msgid "Avoid single disconnected pixels" +msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:150 -#, fuzzy, c-format -msgid "%d mesh handle selected out of %d" -msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "%d maniglia di gradiente selezionata su %d" -msgstr[1] "%d maniglie di gradiente selezionate su %d" +#: ../src/ui/dialog/pixelartdialog.cpp:209 +#, fuzzy +msgid "A constant vote value" +msgstr "Angolo di rotazione" -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 -#, fuzzy, c-format -msgid "No mesh handles selected out of %d on %d selected object" -msgid_plural "No mesh handles selected out of %d on %d selected objects" -msgstr[0] "" -"Nessuna maniglia di gradiente selezionata su %d per %d oggetto nella " -"selezione" -msgstr[1] "" -"Nessuna maniglia di gradiente selezionata su %d per %d oggetti nella " -"selezione" +#: ../src/ui/dialog/pixelartdialog.cpp:219 +msgid "Sparse pixels (window _radius):" +msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:321 -msgid "Split mesh row/column" +#: ../src/ui/dialog/pixelartdialog.cpp:228 +msgid "The radius of the window analyzed" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:407 -msgid "Toggled mesh path type." +#: ../src/ui/dialog/pixelartdialog.cpp:229 +msgid "Sparse pixels (_multiplier):" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:411 -msgid "Approximated arc for mesh side." +#: ../src/ui/dialog/pixelartdialog.cpp:240 +msgid "Favors connections that are part of foreground color" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:415 -msgid "Toggled mesh tensors." +#: ../src/ui/dialog/pixelartdialog.cpp:246 +msgid "The heuristic computed vote will be multiplied by this value" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:419 -#, fuzzy -msgid "Smoothed mesh corner color." -msgstr "Shader liscio contornato" +#: ../src/ui/dialog/pixelartdialog.cpp:259 +msgid "Heuristics" +msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:423 +#: ../src/ui/dialog/pixelartdialog.cpp:266 #, fuzzy -msgid "Picked mesh corner color." -msgstr "Preleva l'opacitĂ  del colore" +msgid "_Voronoi diagram" +msgstr "Muovi motivi" -#: ../src/ui/tools/mesh-tool.cpp:498 -#, fuzzy -msgid "Create default mesh" -msgstr "Crea gradiente predefinito" +#: ../src/ui/dialog/pixelartdialog.cpp:267 +msgid "Output composed of straight lines" +msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:718 +#: ../src/ui/dialog/pixelartdialog.cpp:273 #, fuzzy -msgid "FIXMECtrl: snap mesh angle" -msgstr "Ctrl: fa scattare l'angolo" +msgid "Convert to _B-spline curves" +msgstr "Converti in tratti" -#: ../src/ui/tools/mesh-tool.cpp:719 +#: ../src/ui/dialog/pixelartdialog.cpp:274 +msgid "Preserve staircasing artifacts" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:281 #, fuzzy -msgid "FIXMEShift: draw mesh around the starting point" -msgstr "Maiusc: disegna attorno al punto iniziale" +msgid "_Smooth curves" +msgstr "Smussa angoli" -#: ../src/ui/tools/node-tool.cpp:598 -msgctxt "Node tool tip" -msgid "" -"Shift: drag to add nodes to the selection, click to toggle object " -"selection" +#: ../src/ui/dialog/pixelartdialog.cpp:282 +msgid "The Kopf-Lischinski algorithm" msgstr "" -#: ../src/ui/tools/node-tool.cpp:602 -#, fuzzy -msgctxt "Node tool tip" -msgid "Shift: drag to add nodes to the selection" -msgstr "Maiusc: disegna attorno al punto iniziale" +#: ../src/ui/dialog/pixelartdialog.cpp:289 +msgid "Output" +msgstr "Output" -#: ../src/ui/tools/node-tool.cpp:614 -#, fuzzy, c-format -msgid "%u of %u node selected." -msgid_plural "%u of %u nodes selected." -msgstr[0] "%i di %i nodo selezionato; %s." -msgstr[1] "%i di %i nodi selezionati; %s." +#: ../src/ui/dialog/pixelartdialog.cpp:297 +#: ../src/ui/dialog/tracedialog.cpp:814 +msgid "Reset all settings to defaults" +msgstr "Reimposta tutti i valori ai predefiniti" -#: ../src/ui/tools/node-tool.cpp:620 -#, fuzzy, c-format -msgctxt "Node tool tip" -msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" -msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" +#: ../src/ui/dialog/pixelartdialog.cpp:302 +#: ../src/ui/dialog/tracedialog.cpp:819 +msgid "Abort a trace in progress" +msgstr "Annulla una vettorizzazione in corso" -#: ../src/ui/tools/node-tool.cpp:626 -#, fuzzy, c-format -msgctxt "Node tool tip" -msgid "%s Drag to select nodes, click clear the selection" -msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" +#: ../src/ui/dialog/pixelartdialog.cpp:306 +#: ../src/ui/dialog/tracedialog.cpp:823 +msgid "Execute the trace" +msgstr "Esegue la vettorizzazione" -#: ../src/ui/tools/node-tool.cpp:635 +#: ../src/ui/dialog/pixelartdialog.cpp:388 +msgid "" +"Image looks too big. Process may take a while and is wise to save your " +"document before continue.\n" +"\n" +"Continue the procedure (without saving)?" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:422 +msgid "" +"Image looks too big. Process may take a while and it is wise to save your " +"document before continuing.\n" +"\n" +"Continue the procedure (without saving)?" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:499 #, fuzzy -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to edit only this object" -msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" +msgid "Trace pixel art" +msgstr "pixel a" -#: ../src/ui/tools/node-tool.cpp:638 +#: ../src/ui/dialog/polar-arrange-tab.cpp:43 #, fuzzy -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to clear the selection" -msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" +msgctxt "Polar arrange tab" +msgid "Anchor point:" +msgstr "Orientamento" -#: ../src/ui/tools/node-tool.cpp:643 -msgctxt "Node tool tip" -msgid "Drag to select objects to edit, click to edit this object (more: Shift)" -msgstr "" +#: ../src/ui/dialog/polar-arrange-tab.cpp:47 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Object's bounding box:" +msgstr "riquadro" -#: ../src/ui/tools/node-tool.cpp:646 +#: ../src/ui/dialog/polar-arrange-tab.cpp:54 #, fuzzy -msgctxt "Node tool tip" -msgid "Drag to select objects to edit" -msgstr "Converte in tracciati gli oggetti selezionati" +msgctxt "Polar arrange tab" +msgid "Object's rotational center" +msgstr "Centro di rotazione oggetto" -#: ../src/ui/tools/pen-tool.cpp:186 ../src/ui/tools/pencil-tool.cpp:465 -msgid "Drawing cancelled" -msgstr "Disegno cancellato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:59 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Arrange on:" +msgstr "Ordinamento" -#: ../src/ui/tools/pen-tool.cpp:407 ../src/ui/tools/pencil-tool.cpp:203 -msgid "Continuing selected path" -msgstr "Continuazione del tracciato selezionato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:63 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "First selected circle/ellipse/arc" +msgstr "Crea cerchi, ellissi e archi" -#: ../src/ui/tools/pen-tool.cpp:417 ../src/ui/tools/pencil-tool.cpp:211 -msgid "Creating new path" -msgstr "Creazione nuovo tracciato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:68 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Last selected circle/ellipse/arc" +msgstr "Ultimo colore selezionato" -#: ../src/ui/tools/pen-tool.cpp:419 ../src/ui/tools/pencil-tool.cpp:214 -msgid "Appending to selected path" -msgstr "Aggiunta al tracciato selezionato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:73 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Parameterized:" +msgstr "Parametri" -#: ../src/ui/tools/pen-tool.cpp:576 -msgid "Click or click and drag to close and finish the path." -msgstr "" -"Fare clic o fare clic e trascinare per chiudere e terminare il " -"tracciato." +#: ../src/ui/dialog/polar-arrange-tab.cpp:78 +#, fuzzy +msgid "Center X/Y:" +msgstr "Centra" -#: ../src/ui/tools/pen-tool.cpp:586 -msgid "" -"Click or click and drag to continue the path from this point." -msgstr "" -"Fare clic o fare clic e trascinare per continuare il tracciato " -"da questo punto." +#: ../src/ui/dialog/polar-arrange-tab.cpp:91 +#, fuzzy +msgid "Radius X/Y:" +msgstr "Raggio:" -#: ../src/ui/tools/pen-tool.cpp:1211 -#, c-format -msgid "" -"Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" -"Segmento di curva: angolo %3.2f°, distanza %s; con Ctrl " -"angoli a scatti; Invio per terminare il tracciato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:104 +#, fuzzy +msgid "Angle X/Y:" +msgstr "Angolo X:" -#: ../src/ui/tools/pen-tool.cpp:1212 -#, c-format -msgid "" -"Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" -"Segmento di linea: angolo %3.2f°, distanza %s; con Ctrl " -"angoli a scatti; Invio per terminare il tracciato" +#: ../src/ui/dialog/polar-arrange-tab.cpp:118 +#, fuzzy +msgid "Rotate objects" +msgstr "Ruota nodi" -#: ../src/ui/tools/pen-tool.cpp:1228 -#, c-format -msgid "" -"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " -"angle" +#: ../src/ui/dialog/polar-arrange-tab.cpp:306 +msgid "Couldn't find an ellipse in selection" msgstr "" -"Maniglia curva: angolo %3.2f° lunghezza %s; Ctrl per " -"angoli a scatti" -#: ../src/ui/tools/pen-tool.cpp:1250 -#, c-format -msgid "" -"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" -msgstr "" -"Maniglia di curva, simmetrica: angolo %3.2f°, lunghezza %s; con " -"Ctrl per angoli a scatti, Maiusc per muovere solo questa " -"maniglia" +#: ../src/ui/dialog/polar-arrange-tab.cpp:371 +#, fuzzy +msgid "Arrange on ellipse" +msgstr "Crea ellisse" -#: ../src/ui/tools/pen-tool.cpp:1251 -#, c-format -msgid "" -"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " -"angle, with Shift to move this handle only" -msgstr "" -"Maniglia di curva: angolo %3.2f°, lunghezza %s; con Ctrl " -"per angoli a scatti, Maiusc per muovere solo questa maniglia" +#: ../src/ui/dialog/print.cpp:111 +msgid "Could not open temporary PNG for bitmap printing" +msgstr "Impossibile aprire la PNG temporanea per la stampa" -#: ../src/ui/tools/pen-tool.cpp:1294 -msgid "Drawing finished" -msgstr "Disegno finito" +#: ../src/ui/dialog/print.cpp:155 +msgid "Could not set up Document" +msgstr "Impossibile impostare Document" -#: ../src/ui/tools/pencil-tool.cpp:315 -msgid "Release here to close and finish the path." -msgstr "Rilasciare qui per chiudere e terminare il tracciato." +#: ../src/ui/dialog/print.cpp:159 +msgid "Failed to set CairoRenderContext" +msgstr "Impossibile impostare CairoRenderContext" -#: ../src/ui/tools/pencil-tool.cpp:321 -msgid "Drawing a freehand path" -msgstr "Disegna un percorso a mano libera" +#. set up dialog title, based on document name +#: ../src/ui/dialog/print.cpp:197 +msgid "SVG Document" +msgstr "Documento SVG" -#: ../src/ui/tools/pencil-tool.cpp:326 -msgid "Drag to continue the path from this point." -msgstr "Trascinare per continuare il tracciato da questo punto." +#: ../src/ui/dialog/print.cpp:198 +msgid "Print" +msgstr "Stampa" + +#: ../src/ui/dialog/spellcheck.cpp:73 +msgid "_Accept" +msgstr "_Accetta" -#. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:411 -msgid "Finishing freehand" -msgstr "Terminazione mano libera" +#: ../src/ui/dialog/spellcheck.cpp:74 +msgid "_Ignore once" +msgstr "_Ignora adesso" -#: ../src/ui/tools/pencil-tool.cpp:514 -msgid "" -"Sketch mode: holding Alt interpolates between sketched paths. " -"Release Alt to finalize." +#: ../src/ui/dialog/spellcheck.cpp:75 +msgid "_Ignore" +msgstr "_Ignora" + +#: ../src/ui/dialog/spellcheck.cpp:76 +msgid "A_dd" msgstr "" -"ModalitĂ  bozzetto: tenere premuto Alt per interpolare i " -"tracciati abbozzati. Rilasciare Alt per completare." -#: ../src/ui/tools/pencil-tool.cpp:541 -msgid "Finishing freehand sketch" -msgstr "Terminazione mano libera" +#: ../src/ui/dialog/spellcheck.cpp:78 +msgid "_Stop" +msgstr "_Ferma" -#: ../src/ui/tools/rect-tool.cpp:288 -msgid "" -"Ctrl: make square or integer-ratio rect, lock a rounded corner " -"circular" -msgstr "" -"Ctrl: Crea un quadrato o un rettangolo intero, un angolo arrotondato " -"circolare" +#: ../src/ui/dialog/spellcheck.cpp:79 +msgid "_Start" +msgstr "_Inizio" -#: ../src/ui/tools/rect-tool.cpp:449 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" -msgstr "" -"Rettangolo: %s × %s (costretto dal rapporto %d:%d); con " -"Maiusc per disegnare attorno al punto iniziale" +#: ../src/ui/dialog/spellcheck.cpp:109 +msgid "Suggestions:" +msgstr "Suggerimento:" -#: ../src/ui/tools/rect-tool.cpp:452 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " -"Shift to draw around the starting point" -msgstr "" -"Rettangolo: %s × %s (costretto al rapporto aureo 1.618 : 1); con " -"Maiusc per disegnare attorno al punto iniziale" +#: ../src/ui/dialog/spellcheck.cpp:124 +msgid "Accept the chosen suggestion" +msgstr "Accetta il suggerimento proposto" -#: ../src/ui/tools/rect-tool.cpp:454 -#, c-format -msgid "" -"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " -"Shift to draw around the starting point" -msgstr "" -"Rettangolo: %s × %s (costretto al rapporto aureo 1: 1.618); con " -"Maiusc per disegnare attorno al punto iniziale" +#: ../src/ui/dialog/spellcheck.cpp:125 +msgid "Ignore this word only once" +msgstr "Ignora questa parola solo adesso" -#: ../src/ui/tools/rect-tool.cpp:458 -#, c-format -msgid "" -"Rectangle: %s × %s; with Ctrl to make square or integer-" -"ratio rectangle; with Shift to draw around the starting point" -msgstr "" -"Rettangolo: %s × %s; con Ctrl per fare quadrati o " -"rettangoli interi; con Maiusc per disegnare attorno al punto iniziale" +#: ../src/ui/dialog/spellcheck.cpp:126 +msgid "Ignore this word in this session" +msgstr "Ignora questa parola in questa sessione" -#: ../src/ui/tools/rect-tool.cpp:481 -msgid "Create rectangle" -msgstr "Crea rettangolo" +#: ../src/ui/dialog/spellcheck.cpp:127 +msgid "Add this word to the chosen dictionary" +msgstr "Aggiunge questa parola al dizionario scelto" -#: ../src/ui/tools/select-tool.cpp:169 -msgid "Click selection to toggle scale/rotation handles" -msgstr "" -"Clicca la selezione per alternare le maniglie di ridimensionamento/rotazione" +#: ../src/ui/dialog/spellcheck.cpp:141 +msgid "Stop the check" +msgstr "Ferma il controllo" -#: ../src/ui/tools/select-tool.cpp:170 -#, fuzzy -msgid "" -"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " -"or drag around objects to select." -msgstr "" -"Nessun oggetto selezionato. Clic, Maiusc+clic, o trascinare attorno agli " -"oggetti per selezionare." +#: ../src/ui/dialog/spellcheck.cpp:142 +msgid "Start the check" +msgstr "Inizia il controllo" -#: ../src/ui/tools/select-tool.cpp:223 -msgid "Move canceled." -msgstr "Spostamento cancellato." +#: ../src/ui/dialog/spellcheck.cpp:460 +#, c-format +msgid "Finished, %d words added to dictionary" +msgstr "Finito, %d parole aggiunte al dizionario" -#: ../src/ui/tools/select-tool.cpp:231 -msgid "Selection canceled." -msgstr "Selezione cancellata." +#: ../src/ui/dialog/spellcheck.cpp:462 +msgid "Finished, nothing suspicious found" +msgstr "Completato, nessun errore riscontrato" -#: ../src/ui/tools/select-tool.cpp:642 -msgid "" -"Draw over objects to select them; release Alt to switch to " -"rubberband selection" -msgstr "" -"Disegnare sugli oggetti per selezionarli; rilasciare Alt per " -"passare alla selezione ad elastico" +#: ../src/ui/dialog/spellcheck.cpp:578 +#, c-format +msgid "Not in dictionary (%s): %s" +msgstr "Non presente nel dizionario (%s): %s" -#: ../src/ui/tools/select-tool.cpp:644 -msgid "" -"Drag around objects to select them; press Alt to switch to " -"touch selection" -msgstr "" -"Trascinare attorno agli oggetti per selezionarli; premere Alt " -"per passare alla selezione col tocco" +#: ../src/ui/dialog/spellcheck.cpp:727 +msgid "Checking..." +msgstr "Controllo..." -#: ../src/ui/tools/select-tool.cpp:932 -msgid "Ctrl: click to select in groups; drag to move hor/vert" -msgstr "" -"Ctrl: fare clic per selezionare nei gruppi, trascinare per muovere in " -"orizzontale o verticale" +#: ../src/ui/dialog/spellcheck.cpp:796 +msgid "Fix spelling" +msgstr "Correggi ortografia" -#: ../src/ui/tools/select-tool.cpp:933 -msgid "Shift: click to toggle select; drag for rubberband selection" -msgstr "" -"Maiusc: fare clic per commutare selezione, trascinare per usare la " -"selezione ad elastico" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 +msgid "Set SVG Font attribute" +msgstr "Imposta attributo font SVG" -#: ../src/ui/tools/select-tool.cpp:934 -#, fuzzy -msgid "" -"Alt: click to select under; scroll mouse-wheel to cycle-select; drag " -"to move selected or select by touch" -msgstr "" -"Alt: fare clic per selezionare sotto, trascinare per muovere la " -"selezione o selezionare col tocco" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 +msgid "Adjust kerning value" +msgstr "Modifica valore crenatura" -#: ../src/ui/tools/select-tool.cpp:1142 -msgid "Selected object is not a group. Cannot enter." -msgstr "L'oggetto selezionato non è un gruppo, impossibile entrarvi." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 +msgid "Family Name:" +msgstr "Famiglia:" -#: ../src/ui/tools/spiral-tool.cpp:259 -msgid "Ctrl: snap angle" -msgstr "Ctrl: fa scattare l'angolo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 +msgid "Set width:" +msgstr "Imposta larghezza:" -#: ../src/ui/tools/spiral-tool.cpp:261 -msgid "Alt: lock spiral radius" -msgstr "Alt: mantiene il raggio della spirale" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 +msgid "glyph" +msgstr "glifo" -#: ../src/ui/tools/spiral-tool.cpp:400 -#, c-format -msgid "" -"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" -"Spirale: raggio %s, angolo %5g°; con Ctrl per far " -"scattare l'angolo" +#. SPGlyph* glyph = +#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 +msgid "Add glyph" +msgstr "Aggiungi glifo" -#: ../src/ui/tools/spiral-tool.cpp:421 -msgid "Create spiral" -msgstr "Crea spirale" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 +msgid "Select a path to define the curves of a glyph" +msgstr "Selezionare un tracciato per definire la forma di un glifo" -#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 -#, c-format -msgid "%i object selected" -msgid_plural "%i objects selected" -msgstr[0] "%i oggetto selezionato" -msgstr[1] "%i oggetti selezionati" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 +msgid "The selected object does not have a path description." +msgstr "L'oggetto selezionato non descrive un tracciato." -#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 -msgid "Nothing selected" -msgstr "Nessuna selezione" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 +msgid "No glyph selected in the SVGFonts dialog." +msgstr "Nesun glifo selezionato nella finestra SVGFonts" -#: ../src/ui/tools/spray-tool.cpp:199 -#, fuzzy, c-format -msgid "" -"%s. Drag, click or click and scroll to spray copies of the initial " -"selection." -msgstr "Applica l'effetto desiderato alla selezione" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 +msgid "Set glyph curves" +msgstr "Imposta curve glifo" -#: ../src/ui/tools/spray-tool.cpp:202 -#, fuzzy, c-format -msgid "" -"%s. Drag, click or click and scroll to spray clones of the initial " -"selection." -msgstr "Crea e serializza i cloni della selezione" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 +msgid "Reset missing-glyph" +msgstr "Azzera glifi mancanti" -#: ../src/ui/tools/spray-tool.cpp:205 -#, fuzzy, c-format -msgid "" -"%s. Drag, click or click and scroll to spray in a single path of the " -"initial selection." -msgstr "Applica l'effetto desiderato alla selezione" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 +msgid "Edit glyph name" +msgstr "Modifica nome glifo" -#: ../src/ui/tools/spray-tool.cpp:656 -#, fuzzy -msgid "Nothing selected! Select objects to spray." -msgstr "Nessuna selezione! Selezionare gli oggetti da ritoccare." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 +msgid "Set glyph unicode" +msgstr "Imposta unicode glifo" -#: ../src/ui/tools/spray-tool.cpp:731 ../src/widgets/spray-toolbar.cpp:166 -#, fuzzy -msgid "Spray with copies" -msgstr "Spaziatura tra le copie:" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 +msgid "Remove font" +msgstr "Rimuovi font" -#: ../src/ui/tools/spray-tool.cpp:735 ../src/widgets/spray-toolbar.cpp:173 -#, fuzzy -msgid "Spray with clones" -msgstr "Cerca cloni" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 +msgid "Remove glyph" +msgstr "Rimuovi glifo" -#: ../src/ui/tools/spray-tool.cpp:739 -#, fuzzy -msgid "Spray in single path" -msgstr "Creazione singolo punto" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 +msgid "Remove kerning pair" +msgstr "Rimuovi crenatura a coppia" -#: ../src/ui/tools/star-tool.cpp:271 -msgid "Ctrl: snap angle; keep rays radial" -msgstr "Ctrl: fa scattare l'angolo; mantiene la direzione dei raggi" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 +msgid "Missing Glyph:" +msgstr "Glifi mancanti:" -#: ../src/ui/tools/star-tool.cpp:417 -#, c-format -msgid "" -"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" -"Poligono: raggio %s, angolo %5g°; con Ctrl per far " -"scattare l'angolo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 +msgid "From selection..." +msgstr "Dalla selezione..." -#: ../src/ui/tools/star-tool.cpp:418 -#, c-format -msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" -"Stella: raggio %s, angolo %5g°; con Ctrl per far scattare " -"l'angolo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 +msgid "Glyph name" +msgstr "Nome del glifo:" -#: ../src/ui/tools/star-tool.cpp:446 -msgid "Create star" -msgstr "Crea stella" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 +msgid "Matching string" +msgstr "Stringa corrispondente" -#: ../src/ui/tools/text-tool.cpp:379 -msgid "Click to edit the text, drag to select part of the text." -msgstr "" -"Fare clic per modificare il testo, trascinare per selezionarne " -"una parte." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 +msgid "Add Glyph" +msgstr "Aggiungi glifo" -#: ../src/ui/tools/text-tool.cpp:381 -msgid "" -"Click to edit the flowed text, drag to select part of the text." -msgstr "" -"Fare clic per modificare il testo dinamico, trascinare per " -"selezionarne una parte." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 +msgid "Get curves from selection..." +msgstr "Prendi forma dalla selezione..." -#: ../src/ui/tools/text-tool.cpp:435 -msgid "Create text" -msgstr "Crea testo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 +msgid "Add kerning pair" +msgstr "Aggiungi crenatura a coppia" -#: ../src/ui/tools/text-tool.cpp:460 -msgid "Non-printable character" -msgstr "Carattere non stampabile" +#. Kerning Setup: +#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 +msgid "Kerning Setup" +msgstr "Impostazione crenatura" -#: ../src/ui/tools/text-tool.cpp:475 -msgid "Insert Unicode character" -msgstr "Inserisci carattere Unicode" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 +msgid "1st Glyph:" +msgstr "Primo glifo:" -#: ../src/ui/tools/text-tool.cpp:510 -#, c-format -msgid "Unicode (Enter to finish): %s: %s" -msgstr "Unicode (Invio per terminare): %s, %s" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 +msgid "2nd Glyph:" +msgstr "Secondo glifo:" -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 -msgid "Unicode (Enter to finish): " -msgstr "Unicode (Invio per terminare): " +#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 +msgid "Add pair" +msgstr "Aggiungi coppia" -#: ../src/ui/tools/text-tool.cpp:595 -#, c-format -msgid "Flowed text frame: %s × %s" -msgstr "Struttura del testo dinamico: %s × %s" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 +msgid "First Unicode range" +msgstr "Primo intervallo Unicode" -#: ../src/ui/tools/text-tool.cpp:653 -msgid "Type text; Enter to start new line." -msgstr "Inserire il testo; Invio per iniziare una nuova riga." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 +msgid "Second Unicode range" +msgstr "Secondo intervallo Unicode" -#: ../src/ui/tools/text-tool.cpp:664 -msgid "Flowed text is created." -msgstr "Il testo dinamico è stato creato." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 +msgid "Kerning value:" +msgstr "Valore crenatura:" -#: ../src/ui/tools/text-tool.cpp:665 -msgid "Create flowed text" -msgstr "Crea testo dinamico" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 +msgid "Set font family" +msgstr "Imposta famiglia font" -#: ../src/ui/tools/text-tool.cpp:667 -msgid "" -"The frame is too small for the current font size. Flowed text not " -"created." -msgstr "" -"La struttura è troppo piccola per la dimensione del carattere " -"attuale. Testo dinamico non creato." +#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 +msgid "font" +msgstr "font" -#: ../src/ui/tools/text-tool.cpp:803 -msgid "No-break space" -msgstr "Spazio non interrompibile" +#. select_font(font); +#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 +msgid "Add font" +msgstr "Aggiungi font" -#: ../src/ui/tools/text-tool.cpp:804 -msgid "Insert no-break space" -msgstr "Inserisci spazio non interrompibile" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:70 +msgid "_Font" +msgstr "_Carattere" -#: ../src/ui/tools/text-tool.cpp:840 -msgid "Make bold" -msgstr "Rendi grassetto" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 +msgid "_Global Settings" +msgstr "Impostazioni _globali" -#: ../src/ui/tools/text-tool.cpp:857 -msgid "Make italic" -msgstr "Imposta corsivo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 +msgid "_Glyphs" +msgstr "_Glifi" -#: ../src/ui/tools/text-tool.cpp:895 -msgid "New line" -msgstr "A capo" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 +msgid "_Kerning" +msgstr "_Crenatura" -#: ../src/ui/tools/text-tool.cpp:936 -msgid "Backspace" -msgstr "Backspace" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 +msgid "Sample Text" +msgstr "Testo d'esempio" -#: ../src/ui/tools/text-tool.cpp:990 -msgid "Kern to the left" -msgstr "Kern a sinistra" +#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 +msgid "Preview Text:" +msgstr "Anteprima testo:" -#: ../src/ui/tools/text-tool.cpp:1014 -msgid "Kern to the right" -msgstr "Kern a destra" +#: ../src/ui/dialog/swatches.cpp:203 ../src/ui/tools/gradient-tool.cpp:367 +#: ../src/ui/tools/gradient-tool.cpp:465 +#: ../src/widgets/gradient-vector.cpp:814 +msgid "Add gradient stop" +msgstr "Aggiungi passaggio del gradiente" -#: ../src/ui/tools/text-tool.cpp:1038 -msgid "Kern up" -msgstr "Kern in alto" +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:258 +msgid "Set fill" +msgstr "Imposta riempimento" -#: ../src/ui/tools/text-tool.cpp:1062 -msgid "Kern down" -msgstr "Kern in basso" +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:266 +msgid "Set stroke" +msgstr "Imposta contorno" -#: ../src/ui/tools/text-tool.cpp:1137 -msgid "Rotate counterclockwise" -msgstr "Ruota antiorario" +#: ../src/ui/dialog/swatches.cpp:287 +msgid "Edit..." +msgstr "Modifica..." -#: ../src/ui/tools/text-tool.cpp:1157 -msgid "Rotate clockwise" -msgstr "Ruota orario" +#: ../src/ui/dialog/swatches.cpp:299 +msgid "Convert" +msgstr "Converti" -#: ../src/ui/tools/text-tool.cpp:1173 -msgid "Contract line spacing" -msgstr "Contrai spaziatura linea" +#: ../src/ui/dialog/swatches.cpp:543 +#, c-format +msgid "Palettes directory (%s) is unavailable." +msgstr "La cartella delle tavolozze (%s) non è disponibile." -#: ../src/ui/tools/text-tool.cpp:1179 -msgid "Contract letter spacing" -msgstr "Riduci spaziatura lettere" +#. ******************* Symbol Sets ************************ +#: ../src/ui/dialog/symbols.cpp:127 +msgid "Symbol set: " +msgstr "Set simboli: " -#: ../src/ui/tools/text-tool.cpp:1196 -msgid "Expand line spacing" -msgstr "Espandi spaziatura linea" +#. Fill in later +#: ../src/ui/dialog/symbols.cpp:136 ../src/ui/dialog/symbols.cpp:137 +msgid "Current Document" +msgstr "Documento attuale" -#: ../src/ui/tools/text-tool.cpp:1202 -msgid "Expand letter spacing" -msgstr "Espandi spaziatura lettere" +#: ../src/ui/dialog/symbols.cpp:204 +msgid "Add Symbol from the current document." +msgstr "Aggiungi simbolo dal documento attuale." -#: ../src/ui/tools/text-tool.cpp:1332 -msgid "Paste text" -msgstr "Incolla testo" +#: ../src/ui/dialog/symbols.cpp:213 +msgid "Remove Symbol from the current document." +msgstr "Rimuovi simbolo dal documento attuale." -#: ../src/ui/tools/text-tool.cpp:1583 -#, fuzzy, c-format -msgid "" -"Type or edit flowed text (%d character%s); Enter to start new " -"paragraph." -msgid_plural "" -"Type or edit flowed text (%d characters%s); Enter to start new " -"paragraph." -msgstr[0] "" -"Inserire o modificare il testo dinamico (%d caratteri);Invio per " -"iniziare un nuovo paragrafo." -msgstr[1] "" -"Inserire o modificare il testo dinamico (%d caratteri);Invio per " -"iniziare un nuovo paragrafo." +#: ../src/ui/dialog/symbols.cpp:227 +msgid "Display more icons in row." +msgstr "Visualizza piĂą icone per riga." + +#: ../src/ui/dialog/symbols.cpp:236 +msgid "Display fewer icons in row." +msgstr "Visualizza meno icone per riga." -#: ../src/ui/tools/text-tool.cpp:1585 -#, fuzzy, c-format -msgid "Type or edit text (%d character%s); Enter to start new line." -msgid_plural "" -"Type or edit text (%d characters%s); Enter to start new line." -msgstr[0] "" -"Inserire o modificare il testo (%d caratteri); Invio per iniziare una " -"nuova riga." -msgstr[1] "" -"Inserire o modificare il testo (%d caratteri); Invio per iniziare una " -"nuova riga." +#: ../src/ui/dialog/symbols.cpp:246 +msgid "Toggle 'fit' symbols in icon space." +msgstr "Imposta adattamento simboli in spazio icona" -#: ../src/ui/tools/text-tool.cpp:1695 -msgid "Type text" -msgstr "Inserimento testo" +#: ../src/ui/dialog/symbols.cpp:258 +msgid "Make symbols smaller by zooming out." +msgstr "Rendi i simboli piĂą piccoli riducendo l'ingrandimento" -#: ../src/ui/tools/tool-base.cpp:703 +#: ../src/ui/dialog/symbols.cpp:268 +msgid "Make symbols bigger by zooming in." +msgstr "Rendi i simboli piĂą grandi aumentando l'ingrandimento" + +#: ../src/ui/dialog/symbols.cpp:622 #, fuzzy -msgid "Space+mouse move to pan canvas" -msgstr "Spazio+trascinamento per muovere la tela" +msgid "Unnamed Symbols" +msgstr "Khmer (km)" -#: ../src/ui/tools/tweak-tool.cpp:174 -#, c-format -msgid "%s. Drag to move." -msgstr "%s. Trascinare per spostare." +#: ../src/ui/dialog/template-widget.cpp:36 +msgid "More info" +msgstr "PiĂą informazioni" -#: ../src/ui/tools/tweak-tool.cpp:178 -#, c-format -msgid "%s. Drag or click to move in; with Shift to move out." -msgstr "" -"%s. Trascinare o fare clic per spostare dentro; con Maiusc per " -"spostare fuori." +#: ../src/ui/dialog/template-widget.cpp:38 +msgid "no template selected" +msgstr "nessun modello selezionato" -#: ../src/ui/tools/tweak-tool.cpp:186 -#, c-format -msgid "%s. Drag or click to move randomly." -msgstr "%s. Trascinare o fare clic per spostare casualmente." +#: ../src/ui/dialog/template-widget.cpp:119 +msgid "Path: " +msgstr "Percorso: " -#: ../src/ui/tools/tweak-tool.cpp:190 -#, c-format -msgid "%s. Drag or click to scale down; with Shift to scale up." -msgstr "" -"%s. Trascinare o fare clic per rimpicciolire; con Maiusc per " -"ingrandire." +#: ../src/ui/dialog/template-widget.cpp:122 +msgid "Description: " +msgstr "Descrizione: " -#: ../src/ui/tools/tweak-tool.cpp:198 -#, c-format -msgid "" -"%s. Drag or click to rotate clockwise; with Shift, " -"counterclockwise." -msgstr "" -"%s. Trascinare o fare clic per ruotare in senso orario; con Maiusc, " -"in senso antiorario." +#: ../src/ui/dialog/template-widget.cpp:124 +msgid "Keywords: " +msgstr "Parole chiave: " -#: ../src/ui/tools/tweak-tool.cpp:206 -#, c-format -msgid "%s. Drag or click to duplicate; with Shift, delete." -msgstr "" -"%s. Trascinare o fare clic per duplicare; con Maiusc, per " -"eliminare." +#: ../src/ui/dialog/template-widget.cpp:131 +msgid "By: " +msgstr "By: " -#: ../src/ui/tools/tweak-tool.cpp:214 -#, c-format -msgid "%s. Drag to push paths." -msgstr "%s. Trascinare per spingere il tracciato." +#: ../src/ui/dialog/text-edit.cpp:73 +msgid "Set as _default" +msgstr "Imposta come _predefinito" -#: ../src/ui/tools/tweak-tool.cpp:218 -#, c-format -msgid "%s. Drag or click to inset paths; with Shift to outset." -msgstr "" -"%s. Trascinare o fare clic per intrudere tracciati; con Maiusc, per " -"estrudere." +#: ../src/ui/dialog/text-edit.cpp:87 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "AaBbCcIiPpQq12369$€¢?.;/()" -#: ../src/ui/tools/tweak-tool.cpp:226 -#, c-format -msgid "%s. Drag or click to attract paths; with Shift to repel." -msgstr "" -"%s. Trascinare o fare clic per attrarre i tracciati; con Maiusc per " -"repellere." +#. Align buttons +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1344 +#: ../src/widgets/text-toolbar.cpp:1345 +msgid "Align left" +msgstr "Allinea a sinistra" -#: ../src/ui/tools/tweak-tool.cpp:234 -#, c-format -msgid "%s. Drag or click to roughen paths." -msgstr "%s, Trascinare o fare clic per increspare i tracciati." +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1352 +#: ../src/widgets/text-toolbar.cpp:1353 +msgid "Align center" +msgstr "Allinea al centro" -#: ../src/ui/tools/tweak-tool.cpp:238 -#, c-format -msgid "%s. Drag or click to paint objects with color." -msgstr "" -"%s. Trascinare o fare clic per dipingere un oggetto con un colore." +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1360 +#: ../src/widgets/text-toolbar.cpp:1361 +msgid "Align right" +msgstr "Allinea a destra" -#: ../src/ui/tools/tweak-tool.cpp:242 -#, c-format -msgid "%s. Drag or click to randomize colors." -msgstr "%s. Trascinare o fare clic per rendere casuali i colori." +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1369 +msgid "Justify (only flowed text)" +msgstr "Giustificato" -#: ../src/ui/tools/tweak-tool.cpp:246 -#, c-format -msgid "" -"%s. Drag or click to increase blur; with Shift to decrease." -msgstr "" -"%s. Trascinare o fare clic per aumentare la sfocatura; con Maiusc, " -"per diminuire." +#. Direction buttons +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1404 +msgid "Horizontal text" +msgstr "Testo orizzontale" -#: ../src/ui/tools/tweak-tool.cpp:1193 -msgid "Nothing selected! Select objects to tweak." -msgstr "Nessuna selezione! Selezionare gli oggetti da ritoccare." +#: ../src/ui/dialog/text-edit.cpp:110 ../src/widgets/text-toolbar.cpp:1411 +msgid "Vertical text" +msgstr "Testo verticale" -#: ../src/ui/tools/tweak-tool.cpp:1227 -msgid "Move tweak" -msgstr "Ritocco spostamento" +#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 +msgid "Spacing between lines (percent of font size)" +msgstr "Spaziatura tra le linee (percentuale dimensione carattere)" -#: ../src/ui/tools/tweak-tool.cpp:1231 -msgid "Move in/out tweak" -msgstr "Ritocco sposta dentro/fuori" +#: ../src/ui/dialog/text-edit.cpp:147 +#, fuzzy +msgid "Text path offset" +msgstr "Regola la proiezione" -#: ../src/ui/tools/tweak-tool.cpp:1235 -msgid "Move jitter tweak" -msgstr "Ritocco spostamento sfalsato" +#: ../src/ui/dialog/text-edit.cpp:588 ../src/ui/dialog/text-edit.cpp:662 +#: ../src/ui/tools/text-tool.cpp:1455 +msgid "Set text style" +msgstr "Imposta stile testo" -#: ../src/ui/tools/tweak-tool.cpp:1239 -msgid "Scale tweak" -msgstr "Ritocco ridimensionamento" +#: ../src/ui/dialog/tile.cpp:36 +msgctxt "Arrange dialog" +msgid "Rectangular grid" +msgstr "Griglia rettangolare" -#: ../src/ui/tools/tweak-tool.cpp:1243 -msgid "Rotate tweak" -msgstr "Ritocco rotazione" +#: ../src/ui/dialog/tile.cpp:37 +msgctxt "Arrange dialog" +msgid "Polar Coordinates" +msgstr "Coordinate polari" -#: ../src/ui/tools/tweak-tool.cpp:1247 -msgid "Duplicate/delete tweak" -msgstr "Ritocco duplicazione/eliminazione" +#: ../src/ui/dialog/tile.cpp:40 +msgctxt "Arrange dialog" +msgid "_Arrange" +msgstr "_Ordina" -#: ../src/ui/tools/tweak-tool.cpp:1251 -msgid "Push path tweak" -msgstr "Ritocco spingi tracciato" +#: ../src/ui/dialog/tile.cpp:42 +msgid "Arrange selected objects" +msgstr "Riordina gli oggetti selezionati" -#: ../src/ui/tools/tweak-tool.cpp:1255 -msgid "Shrink/grow path tweak" -msgstr "Ritocco riduzione/accrescimento" +#. #### begin left panel +#. ### begin notebook +#. ## begin mode page +#. # begin single scan +#. brightness +#: ../src/ui/dialog/tracedialog.cpp:508 +#, fuzzy +msgid "_Brightness cutoff" +msgstr "Riduzione luminositĂ " -#: ../src/ui/tools/tweak-tool.cpp:1259 -msgid "Attract/repel path tweak" -msgstr "Ritocco attrazione/repulsione" +#: ../src/ui/dialog/tracedialog.cpp:512 +msgid "Trace by a given brightness level" +msgstr "Vettorizza in base ad un livello di luminositĂ  fornito" -#: ../src/ui/tools/tweak-tool.cpp:1263 -msgid "Roughen path tweak" -msgstr "Ritocco increspatura" +#: ../src/ui/dialog/tracedialog.cpp:519 +msgid "Brightness cutoff for black/white" +msgstr "Appiattimento della luminositĂ  per bianco/nero" -#: ../src/ui/tools/tweak-tool.cpp:1267 -msgid "Color paint tweak" -msgstr "Ritocco tinta" +#: ../src/ui/dialog/tracedialog.cpp:529 +msgid "Single scan: creates a path" +msgstr "Scansione singola: crea tracciato" -#: ../src/ui/tools/tweak-tool.cpp:1271 -msgid "Color jitter tweak" -msgstr "Ritocco sfalsamento colore" +#. canny edge detection +#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method +#: ../src/ui/dialog/tracedialog.cpp:534 +#, fuzzy +msgid "_Edge detection" +msgstr "Rilevamento bordo" -#: ../src/ui/tools/tweak-tool.cpp:1275 -msgid "Blur tweak" -msgstr "Ritocco sfocatura" +#: ../src/ui/dialog/tracedialog.cpp:538 +msgid "Trace with optimal edge detection by J. Canny's algorithm" +msgstr "Vettorizza con l'algoritmo di rilevamento dei bordi di J. Canny" -#: ../src/ui/widget/filter-effect-chooser.cpp:27 -#, fuzzy -msgid "Blur (%)" -msgstr "Sfocatura" +#: ../src/ui/dialog/tracedialog.cpp:556 +msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +msgstr "" +"Appiattimento della luminositĂ  per i pixel adiacenti (determina lo spessore " +"del bordo)" -#: ../src/ui/widget/layer-selector.cpp:118 -msgid "Toggle current layer visibility" -msgstr "Imposta la visibilitĂ  del livello attuale" +#: ../src/ui/dialog/tracedialog.cpp:559 +msgid "T_hreshold:" +msgstr "So_glia:" -#: ../src/ui/widget/layer-selector.cpp:139 -msgid "Lock or unlock current layer" -msgstr "Blocca o sblocca il livello attuale" +#. quantization +#. TRANSLATORS: Color Quantization: the process of reducing the number +#. of colors in an image by selecting an optimized set of representative +#. colors and then re-applying this reduced set to the original image. +#: ../src/ui/dialog/tracedialog.cpp:571 +#, fuzzy +msgid "Color _quantization" +msgstr "Quantizzazione colore" -#: ../src/ui/widget/layer-selector.cpp:142 -msgid "Current layer" -msgstr "Livello attuale" +#: ../src/ui/dialog/tracedialog.cpp:575 +msgid "Trace along the boundaries of reduced colors" +msgstr "Vettorizza coi bordi dei colori ridotti" -#: ../src/ui/widget/layer-selector.cpp:583 -msgid "(root)" -msgstr "(root)" +#: ../src/ui/dialog/tracedialog.cpp:583 +msgid "The number of reduced colors" +msgstr "Il numero dei colori ridotti" -#: ../src/ui/widget/licensor.cpp:40 -msgid "Proprietary" -msgstr "Proprietario" +#: ../src/ui/dialog/tracedialog.cpp:586 +msgid "_Colors:" +msgstr "_Colori:" -#: ../src/ui/widget/licensor.cpp:43 -msgid "MetadataLicence|Other" -msgstr "Altro" +#. swap black and white +#: ../src/ui/dialog/tracedialog.cpp:594 +#, fuzzy +msgid "_Invert image" +msgstr "Negativo immagine" -#: ../src/ui/widget/object-composite-settings.cpp:67 -#: ../src/ui/widget/selected-style.cpp:1095 -#: ../src/ui/widget/selected-style.cpp:1096 +#: ../src/ui/dialog/tracedialog.cpp:599 +msgid "Invert black and white regions" +msgstr "Inverte le regioni di bianco e nero" + +#. # end single scan +#. # begin multiple scan +#: ../src/ui/dialog/tracedialog.cpp:609 #, fuzzy -msgid "Opacity (%)" -msgstr "OpacitĂ , %" +msgid "B_rightness steps" +msgstr "Passaggi di luminositĂ " -#: ../src/ui/widget/object-composite-settings.cpp:180 -msgid "Change blur" -msgstr "Modifica sfocatura" +#: ../src/ui/dialog/tracedialog.cpp:613 +msgid "Trace the given number of brightness levels" +msgstr "Vettorizza con il numero fornito di livelli di luminositĂ " -#: ../src/ui/widget/object-composite-settings.cpp:220 -#: ../src/ui/widget/selected-style.cpp:927 -#: ../src/ui/widget/selected-style.cpp:1221 -msgid "Change opacity" -msgstr "Modifica opacitĂ " +#: ../src/ui/dialog/tracedialog.cpp:621 +msgid "Sc_ans:" +msgstr "Sc_ansioni:" -#: ../src/ui/widget/page-sizer.cpp:235 -msgid "U_nits:" -msgstr "U_nitĂ :" +#: ../src/ui/dialog/tracedialog.cpp:625 +msgid "The desired number of scans" +msgstr "Il numero voluto di scansioni" -#: ../src/ui/widget/page-sizer.cpp:236 -msgid "Width of paper" -msgstr "Larghezza del foglio" +#: ../src/ui/dialog/tracedialog.cpp:630 +msgid "Co_lors" +msgstr "Co_lori" -#: ../src/ui/widget/page-sizer.cpp:237 -msgid "Height of paper" -msgstr "Altezza del foglio" +#: ../src/ui/dialog/tracedialog.cpp:634 +msgid "Trace the given number of reduced colors" +msgstr "Vettorizza con il numero fornito di colori ridotti" -#: ../src/ui/widget/page-sizer.cpp:238 -msgid "T_op margin:" -msgstr "" +#: ../src/ui/dialog/tracedialog.cpp:639 +msgid "_Grays" +msgstr "_Grigi" -#: ../src/ui/widget/page-sizer.cpp:238 -#, fuzzy -msgid "Top margin" -msgstr "Margine del mese" +#: ../src/ui/dialog/tracedialog.cpp:643 +msgid "Same as Colors, but the result is converted to grayscale" +msgstr "Come per Colore, ma il risultato è convertito in scala di grigi" -#: ../src/ui/widget/page-sizer.cpp:239 +#. TRANSLATORS: "Smooth" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:649 #, fuzzy -msgid "L_eft:" -msgstr "Sinistra:" +msgid "S_mooth" +msgstr "UniformitĂ " -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/dialog/tracedialog.cpp:653 +msgid "Apply Gaussian blur to the bitmap before tracing" +msgstr "Applica l'effetto Gaussian blur alla bitmap prima di vettorizzare" + +#. TRANSLATORS: "Stack" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:657 #, fuzzy -msgid "Left margin" -msgstr "Angolo sinistro" +msgid "Stac_k scans" +msgstr "Scansione pila" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/dialog/tracedialog.cpp:661 +msgid "" +"Stack scans on top of one another (no gaps) instead of tiling (usually with " +"gaps)" +msgstr "" +"Scansione della pila verticale (senza interruzioni) invece che in serie " +"(solitamente con interruzioni)" + +#: ../src/ui/dialog/tracedialog.cpp:665 +msgid "Remo_ve background" +msgstr "Rimuo_vi sfondo" + +#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan +#: ../src/ui/dialog/tracedialog.cpp:670 +msgid "Remove bottom (background) layer when done" +msgstr "Rimuovi ultimo livello (sfondo) quando finito" + +#: ../src/ui/dialog/tracedialog.cpp:675 +msgid "Multiple scans: creates a group of paths" +msgstr "Scansione multipla: crea un gruppo di tracciati" + +#. # end multiple scan +#. ## end mode page +#: ../src/ui/dialog/tracedialog.cpp:684 #, fuzzy -msgid "Ri_ght:" -msgstr "Destro:" +msgid "_Mode" +msgstr "ModalitĂ " -#: ../src/ui/widget/page-sizer.cpp:240 +#. ## begin option page +#. # potrace parameters +#: ../src/ui/dialog/tracedialog.cpp:690 #, fuzzy -msgid "Right margin" -msgstr "Angolo destro" +msgid "Suppress _speckles" +msgstr "Rimuovi macchie" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/dialog/tracedialog.cpp:692 +msgid "Ignore small spots (speckles) in the bitmap" +msgstr "Ignora le piccole macchie nella bitmap" + +#: ../src/ui/dialog/tracedialog.cpp:700 +msgid "Speckles of up to this many pixels will be suppressed" +msgstr "Macchie fino a questa dimensione verranno ignorate" + +#: ../src/ui/dialog/tracedialog.cpp:703 #, fuzzy -msgid "Botto_m:" -msgstr "Fondo:" +msgid "S_ize:" +msgstr "Dimensione:" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/dialog/tracedialog.cpp:708 #, fuzzy -msgid "Bottom margin" -msgstr "Margine del mese" +msgid "Smooth _corners" +msgstr "Smussa angoli" -#: ../src/ui/widget/page-sizer.cpp:296 +#: ../src/ui/dialog/tracedialog.cpp:710 +msgid "Smooth out sharp corners of the trace" +msgstr "Smussa gli angoli della vettorizzazione" + +#: ../src/ui/dialog/tracedialog.cpp:719 +msgid "Increase this to smooth corners more" +msgstr "Aumentare per smussare maggiormente gli spigoli" + +#: ../src/ui/dialog/tracedialog.cpp:726 #, fuzzy -msgid "Orientation:" -msgstr "Orientamento" +msgid "Optimize p_aths" +msgstr "Ottimizza tracciato" -#: ../src/ui/widget/page-sizer.cpp:299 -msgid "_Landscape" -msgstr "Orizzonta_le" +#: ../src/ui/dialog/tracedialog.cpp:729 +msgid "Try to optimize paths by joining adjacent Bezier curve segments" +msgstr "" +"Prova ad ottimizzare i tracciati unendo segmenti curvi Bezier adiacenti" -#: ../src/ui/widget/page-sizer.cpp:304 -msgid "_Portrait" -msgstr "Ver_ticale" +#: ../src/ui/dialog/tracedialog.cpp:737 +msgid "" +"Increase this to reduce the number of nodes in the trace by more aggressive " +"optimization" +msgstr "" +"Aumentare il valore per ridurre il numero di nodi nella vettorizzazione " +"usando ottimizzazioni piĂą spinte" -#. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:322 -msgid "Custom size" -msgstr "Personalizzata" +#: ../src/ui/dialog/tracedialog.cpp:739 +#, fuzzy +msgid "To_lerance:" +msgstr "Tolleranza:" -#: ../src/ui/widget/page-sizer.cpp:367 -msgid "Resi_ze page to content..." +#. ## end option page +#: ../src/ui/dialog/tracedialog.cpp:753 +msgid "O_ptions" +msgstr "Opzioni" + +#. ### credits +#: ../src/ui/dialog/tracedialog.cpp:757 +msgid "" +"Inkscape bitmap tracing\n" +"is based on Potrace,\n" +"created by Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" msgstr "" +"La vettorizzazione bitmap di Inkscape\n" +"è basata su Potrace,\n" +"un programma scritto da Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" -#: ../src/ui/widget/page-sizer.cpp:419 +#: ../src/ui/dialog/tracedialog.cpp:760 +msgid "Credits" +msgstr "Ringraziamenti" + +#. #### begin right panel +#. ## SIOX +#: ../src/ui/dialog/tracedialog.cpp:774 #, fuzzy -msgid "_Resize page to drawing or selection" -msgstr "Adat_ta la pagina alla selezione" +msgid "SIOX _foreground selection" +msgstr "Selezione sottoimmagine SIOX" -#: ../src/ui/widget/page-sizer.cpp:420 +#: ../src/ui/dialog/tracedialog.cpp:777 +msgid "Cover the area you want to select as the foreground" +msgstr "Copre l'area che si vuole selezionare come primo piano" + +#: ../src/ui/dialog/tracedialog.cpp:782 +msgid "Live Preview" +msgstr "Anteprima diretta" + +#: ../src/ui/dialog/tracedialog.cpp:788 +msgid "_Update" +msgstr "_Aggiorna" + +#. I guess it's correct to call the "intermediate bitmap" a preview of the trace +#: ../src/ui/dialog/tracedialog.cpp:796 msgid "" -"Resize the page to fit the current selection, or the entire drawing if there " -"is no selection" +"Preview the intermediate bitmap with the current settings, without actual " +"tracing" msgstr "" -"Ridimensione la pagina per adattarsi alla selezione attuale, o all'intero " -"disegno se non è stato selezionato nulla" +"Mostra l'anteprima del risultato con le attuali impostazioni, senza " +"vettorizzare realmente" -#: ../src/ui/widget/page-sizer.cpp:488 -msgid "Set page size" -msgstr "Imposta dimensione pagina" +#: ../src/ui/dialog/tracedialog.cpp:800 +msgid "Preview" +msgstr "Anteprima" + +#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:86 +msgid "_Horizontal:" +msgstr "Ori_zzontale:" + +#: ../src/ui/dialog/transformation.cpp:76 +msgid "Horizontal displacement (relative) or position (absolute)" +msgstr "Disposizione orizzontale (relativa) o posizione (assoluta)" -#: ../src/ui/widget/panel.cpp:116 -msgid "List" -msgstr "Elenco" +#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:88 +msgid "_Vertical:" +msgstr "_Verticale:" -#: ../src/ui/widget/panel.cpp:139 -#, fuzzy -msgctxt "Swatches" -msgid "Size" -msgstr "Dimensione" +#: ../src/ui/dialog/transformation.cpp:78 +msgid "Vertical displacement (relative) or position (absolute)" +msgstr "Disposizione verticale (relativa) o posizione (assoluta)" -#: ../src/ui/widget/panel.cpp:143 -#, fuzzy -msgctxt "Swatches height" -msgid "Tiny" -msgstr "piccolo" +#: ../src/ui/dialog/transformation.cpp:80 +msgid "Horizontal size (absolute or percentage of current)" +msgstr "Dimensione orizzontale (assoluto o percentuale dell'attuale)" -#: ../src/ui/widget/panel.cpp:144 -#, fuzzy -msgctxt "Swatches height" -msgid "Small" -msgstr "Piccola" +#: ../src/ui/dialog/transformation.cpp:82 +msgid "Vertical size (absolute or percentage of current)" +msgstr "Dimensione verticale (assoluto o percentuale dell'attuale)" -#: ../src/ui/widget/panel.cpp:145 -#, fuzzy -msgctxt "Swatches height" -msgid "Medium" -msgstr "Media" +#: ../src/ui/dialog/transformation.cpp:84 +msgid "A_ngle:" +msgstr "A_ngolo:" -#: ../src/ui/widget/panel.cpp:146 -#, fuzzy -msgctxt "Swatches height" -msgid "Large" -msgstr "Grande" +#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:1104 +msgid "Rotation angle (positive = counterclockwise)" +msgstr "Angolo di rotazione (positivo = antiorario)" -#: ../src/ui/widget/panel.cpp:147 -#, fuzzy -msgctxt "Swatches height" -msgid "Huge" -msgstr "Colore" +#: ../src/ui/dialog/transformation.cpp:86 +msgid "" +"Horizontal skew angle (positive = counterclockwise), or absolute " +"displacement, or percentage displacement" +msgstr "" +"Angolo di distorsione orizzontale (positivo = antiorario), o quantitĂ  " +"assoluta o percentuale" -#: ../src/ui/widget/panel.cpp:169 -#, fuzzy -msgctxt "Swatches" -msgid "Width" -msgstr "Larghezza" +#: ../src/ui/dialog/transformation.cpp:88 +msgid "" +"Vertical skew angle (positive = counterclockwise), or absolute displacement, " +"or percentage displacement" +msgstr "" +"Angolo di distorsione verticale (positivo = antiorario), o quantitĂ  assoluta " +"o percentuale" -#: ../src/ui/widget/panel.cpp:173 -#, fuzzy -msgctxt "Swatches width" -msgid "Narrower" -msgstr "piĂą stretta" +#: ../src/ui/dialog/transformation.cpp:91 +msgid "Transformation matrix element A" +msgstr "Elemento A della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:174 -#, fuzzy -msgctxt "Swatches width" -msgid "Narrow" -msgstr "stretto" +#: ../src/ui/dialog/transformation.cpp:92 +msgid "Transformation matrix element B" +msgstr "Elemento B della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:175 -#, fuzzy -msgctxt "Swatches width" -msgid "Medium" -msgstr "Media" +#: ../src/ui/dialog/transformation.cpp:93 +msgid "Transformation matrix element C" +msgstr "Elemento C della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:176 -#, fuzzy -msgctxt "Swatches width" -msgid "Wide" -msgstr "Larga" +#: ../src/ui/dialog/transformation.cpp:94 +msgid "Transformation matrix element D" +msgstr "Elemento D della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:177 -#, fuzzy -msgctxt "Swatches width" -msgid "Wider" -msgstr "Larga" +#: ../src/ui/dialog/transformation.cpp:95 +msgid "Transformation matrix element E" +msgstr "Elemento E della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:207 -#, fuzzy -msgctxt "Swatches" -msgid "Border" -msgstr "Ordine" +#: ../src/ui/dialog/transformation.cpp:96 +msgid "Transformation matrix element F" +msgstr "Elemento F della matrice di trasformazione" -#: ../src/ui/widget/panel.cpp:211 -#, fuzzy -msgctxt "Swatches border" -msgid "None" -msgstr "Nessuno" +#: ../src/ui/dialog/transformation.cpp:101 +msgid "Rela_tive move" +msgstr "Movimento re_lativo" -#: ../src/ui/widget/panel.cpp:212 -msgctxt "Swatches border" -msgid "Solid" +#: ../src/ui/dialog/transformation.cpp:101 +msgid "" +"Add the specified relative displacement to the current position; otherwise, " +"edit the current absolute position directly" msgstr "" +"Aggiungi lo spostamento relativo specificato alla posizione; altrimenti, " +"modifica direttamente la posizione assoluta attuale" -#: ../src/ui/widget/panel.cpp:213 -#, fuzzy -msgctxt "Swatches border" -msgid "Wide" -msgstr "Larga" - -#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:244 -#, fuzzy -msgctxt "Swatches" -msgid "Wrap" -msgstr "Ingloba" +#: ../src/ui/dialog/transformation.cpp:102 +msgid "_Scale proportionally" +msgstr "_Scala proporzionalmente" -#: ../src/ui/widget/preferences-widget.cpp:802 -msgid "_Browse..." -msgstr "_Sfoglia..." +#: ../src/ui/dialog/transformation.cpp:102 +msgid "Preserve the width/height ratio of the scaled objects" +msgstr "Preserva il rapporto larghezza/altezza delle oggetti ridimensionati" -#: ../src/ui/widget/preferences-widget.cpp:888 -#, fuzzy -msgid "Select a bitmap editor" -msgstr "Editor bitmap:" +#: ../src/ui/dialog/transformation.cpp:103 +msgid "Apply to each _object separately" +msgstr "Applica ad ogni _oggetto separatamente" -#: ../src/ui/widget/random.cpp:84 +#: ../src/ui/dialog/transformation.cpp:103 msgid "" -"Reseed the random number generator; this creates a different sequence of " -"random numbers." +"Apply the scale/rotate/skew to each selected object separately; otherwise, " +"transform the selection as a whole" msgstr "" -"Reinizializza il generatore di numeri casuali; serve a creare una sequenza " -"di numeri casuali diversa." +"Applica l'ingrandimento/rotazione/distorsione ad ogni oggetto separatamente; " +"altrimenti, trasforma tutta la selezione insieme" -#: ../src/ui/widget/rendering-options.cpp:33 -msgid "Backend" -msgstr "Terminale" +#: ../src/ui/dialog/transformation.cpp:104 +msgid "Edit c_urrent matrix" +msgstr "Modifica matrice attuale" -#: ../src/ui/widget/rendering-options.cpp:34 -msgid "Vector" -msgstr "Vettore" +#: ../src/ui/dialog/transformation.cpp:104 +msgid "" +"Edit the current transform= matrix; otherwise, post-multiply transform= by " +"this matrix" +msgstr "" +"Modifica la matrice transform= attuale; altrimenti moltiplica transform= per " +"questa matrice" -#: ../src/ui/widget/rendering-options.cpp:35 -msgid "Bitmap" -msgstr "Bitmap" +#: ../src/ui/dialog/transformation.cpp:117 +msgid "_Scale" +msgstr "_Scala" -#: ../src/ui/widget/rendering-options.cpp:36 -msgid "Bitmap options" -msgstr "Opzioni bitmap" +#: ../src/ui/dialog/transformation.cpp:120 +msgid "_Rotate" +msgstr "_Ruota" -#: ../src/ui/widget/rendering-options.cpp:38 -msgid "Preferred resolution of rendering, in dots per inch." -msgstr "Risoluzione preferita per il rendering, in punti per pollice." +#: ../src/ui/dialog/transformation.cpp:123 +msgid "Ske_w" +msgstr "D_istorsione" -#: ../src/ui/widget/rendering-options.cpp:47 -msgid "" -"Render using Cairo vector operations. The resulting image is usually " -"smaller in file size and can be arbitrarily scaled, but some filter effects " -"will not be correctly rendered." -msgstr "" -"Esporta usando gli operatori vettoriali Cairo. L'immagine risultante " -"solitamente è di dimensioni piĂą contenute e può essere ridimensionata a " -"piacere, ma alcuni filtri potrebbero non venire correttamente rappresentati." +#: ../src/ui/dialog/transformation.cpp:126 +msgid "Matri_x" +msgstr "Matri_ce" -#: ../src/ui/widget/rendering-options.cpp:52 -msgid "" -"Render everything as bitmap. The resulting image is usually larger in file " -"size and cannot be arbitrarily scaled without quality loss, but all objects " -"will be rendered exactly as displayed." -msgstr "" -"Esporta tutto come bitmap. L'immagine risultante solitamente è di dimensioni " -"maggiori e non può essere ridimensionata senza una perdita di qualitĂ , ma " -"tutti gli oggetti verranno disegnati esattamente come vengono mostrati." +#: ../src/ui/dialog/transformation.cpp:150 +msgid "Reset the values on the current tab to defaults" +msgstr "Reimposta i valori della scheda attuale ai predefiniti" -#: ../src/ui/widget/selected-style.cpp:130 -#: ../src/ui/widget/style-swatch.cpp:127 -msgid "Fill:" -msgstr "Riempimento:" +#: ../src/ui/dialog/transformation.cpp:157 +msgid "Apply transformation to selection" +msgstr "Applica la trasformazione alla selezione" -#: ../src/ui/widget/selected-style.cpp:132 -msgid "O:" -msgstr "O:" +#: ../src/ui/dialog/transformation.cpp:332 +msgid "Rotate in a counterclockwise direction" +msgstr "Ruota in senso antiorario" -#: ../src/ui/widget/selected-style.cpp:177 -msgid "N/A" -msgstr "N/D" +#: ../src/ui/dialog/transformation.cpp:338 +msgid "Rotate in a clockwise direction" +msgstr "Ruota in senso orario" -#: ../src/ui/widget/selected-style.cpp:180 -#: ../src/ui/widget/selected-style.cpp:1088 -#: ../src/ui/widget/selected-style.cpp:1089 -#: ../src/widgets/gradient-toolbar.cpp:162 -msgid "Nothing selected" -msgstr "Nessuna selezione" +#: ../src/ui/dialog/transformation.cpp:908 +#: ../src/ui/dialog/transformation.cpp:919 +#: ../src/ui/dialog/transformation.cpp:933 +#: ../src/ui/dialog/transformation.cpp:952 +#: ../src/ui/dialog/transformation.cpp:963 +#: ../src/ui/dialog/transformation.cpp:973 +#: ../src/ui/dialog/transformation.cpp:997 +msgid "Transform matrix is singular, not used." +msgstr "" -#: ../src/ui/widget/selected-style.cpp:182 -#: ../src/ui/widget/style-swatch.cpp:320 -#, fuzzy -msgctxt "Fill and stroke" -msgid "None" -msgstr "Nessuno" +#: ../src/ui/dialog/transformation.cpp:1012 +msgid "Edit transformation matrix" +msgstr "Modifica la matrice di trasformazione" -#: ../src/ui/widget/selected-style.cpp:185 -#: ../src/ui/widget/style-swatch.cpp:322 -#, fuzzy -msgctxt "Fill and stroke" -msgid "No fill" -msgstr "Nessun riempimento" +#: ../src/ui/dialog/transformation.cpp:1111 +msgid "Rotation angle (positive = clockwise)" +msgstr "Angolo di rotazione (positivo = orario)" -#: ../src/ui/widget/selected-style.cpp:185 -#: ../src/ui/widget/style-swatch.cpp:322 -#, fuzzy -msgctxt "Fill and stroke" -msgid "No stroke" -msgstr "Nessun contorno" +#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 +msgid "New element node" +msgstr "Nuovo elemento nodo" -#: ../src/ui/widget/selected-style.cpp:187 -#: ../src/ui/widget/style-swatch.cpp:301 ../src/widgets/paint-selector.cpp:242 -msgid "Pattern" -msgstr "Motivo" +#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 +msgid "New text node" +msgstr "Nuovo nodo testuale" -#: ../src/ui/widget/selected-style.cpp:190 -#: ../src/ui/widget/style-swatch.cpp:303 -msgid "Pattern fill" -msgstr "Motivo" +#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 +msgid "nodeAsInXMLdialogTooltip|Delete node" +msgstr "Elimina nodo" -#: ../src/ui/widget/selected-style.cpp:190 -#: ../src/ui/widget/style-swatch.cpp:303 -msgid "Pattern stroke" -msgstr "Motivo del contorno" +#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 +#: ../src/ui/dialog/xml-tree.cpp:977 +msgid "Duplicate node" +msgstr "Duplica nodo" -#: ../src/ui/widget/selected-style.cpp:192 -msgid "L" -msgstr "L" +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 +#: ../src/ui/dialog/xml-tree.cpp:1013 +msgid "Delete attribute" +msgstr "Cancella attributo" -#: ../src/ui/widget/selected-style.cpp:195 -#: ../src/ui/widget/style-swatch.cpp:295 -msgid "Linear gradient fill" -msgstr "Gradiente lineare di riempimento" +#: ../src/ui/dialog/xml-tree.cpp:87 +msgid "Set" +msgstr "Imposta" -#: ../src/ui/widget/selected-style.cpp:195 -#: ../src/ui/widget/style-swatch.cpp:295 -msgid "Linear gradient stroke" -msgstr "Gradiente lineare di contorno" +#: ../src/ui/dialog/xml-tree.cpp:121 +msgid "Drag to reorder nodes" +msgstr "Trascina per riordinare i nodi" -#: ../src/ui/widget/selected-style.cpp:202 -msgid "R" -msgstr "R" +#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 +#: ../src/ui/dialog/xml-tree.cpp:1135 +msgid "Unindent node" +msgstr "Deindenta nodo" -#: ../src/ui/widget/selected-style.cpp:205 -#: ../src/ui/widget/style-swatch.cpp:299 -msgid "Radial gradient fill" -msgstr "Gradiente radiale di riempimento" +#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 +#: ../src/ui/dialog/xml-tree.cpp:1113 +msgid "Indent node" +msgstr "Indenta nodo" -#: ../src/ui/widget/selected-style.cpp:205 -#: ../src/ui/widget/style-swatch.cpp:299 -msgid "Radial gradient stroke" -msgstr "Gradiente radiale di contorno" +#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 +#: ../src/ui/dialog/xml-tree.cpp:1064 +msgid "Raise node" +msgstr "Alza nodo" -#: ../src/ui/widget/selected-style.cpp:212 -msgid "Different" -msgstr "Differente" +#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 +#: ../src/ui/dialog/xml-tree.cpp:1082 +msgid "Lower node" +msgstr "Abbassa nodo" -#: ../src/ui/widget/selected-style.cpp:215 -msgid "Different fills" -msgstr "Riempimento differente" +#: ../src/ui/dialog/xml-tree.cpp:208 +msgid "Attribute name" +msgstr "Nome attributo" -#: ../src/ui/widget/selected-style.cpp:215 -msgid "Different strokes" -msgstr "Contorno differente" +#: ../src/ui/dialog/xml-tree.cpp:223 +msgid "Attribute value" +msgstr "Valore attributo" -#: ../src/ui/widget/selected-style.cpp:217 -#: ../src/ui/widget/style-swatch.cpp:325 -msgid "Unset" -msgstr "Non impostato" +#: ../src/ui/dialog/xml-tree.cpp:311 +msgid "Click to select nodes, drag to rearrange." +msgstr "Clicca per selezionare i nodi, Spostali per sistemarli." -#. TRANSLATORS COMMENT: unset is a verb here -#: ../src/ui/widget/selected-style.cpp:220 -#: ../src/ui/widget/selected-style.cpp:278 -#: ../src/ui/widget/selected-style.cpp:559 -#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 -msgid "Unset fill" -msgstr "Disattiva riempimento" +#: ../src/ui/dialog/xml-tree.cpp:322 +msgid "Click attribute to edit." +msgstr "Clicca l'attributo da modificare." -#: ../src/ui/widget/selected-style.cpp:220 -#: ../src/ui/widget/selected-style.cpp:278 -#: ../src/ui/widget/selected-style.cpp:575 -#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 -msgid "Unset stroke" -msgstr "Disattiva contorno" +#: ../src/ui/dialog/xml-tree.cpp:326 +#, c-format +msgid "" +"Attribute %s selected. Press Ctrl+Enter when done editing to " +"commit changes." +msgstr "" +"Selezionato l'attributo %s. Premere Ctrl+Enter quando finito " +"per effettuare i cambiamenti." -#: ../src/ui/widget/selected-style.cpp:223 -msgid "Flat color fill" -msgstr "Riempimento con colore uniforme" +#: ../src/ui/dialog/xml-tree.cpp:566 +msgid "Drag XML subtree" +msgstr "Trascina sottoalbero XML" -#: ../src/ui/widget/selected-style.cpp:223 -msgid "Flat color stroke" -msgstr "Contorno con colore uniforme" +#: ../src/ui/dialog/xml-tree.cpp:868 +msgid "New element node..." +msgstr "Nuovo elemento nodo..." -#. TRANSLATOR COMMENT: A means "Averaged" -#: ../src/ui/widget/selected-style.cpp:226 -msgid "a" -msgstr "a" +#: ../src/ui/dialog/xml-tree.cpp:906 +msgid "Cancel" +msgstr "Cancella" -#: ../src/ui/widget/selected-style.cpp:229 -msgid "Fill is averaged over selected objects" -msgstr "Il riempimento è mediato tra gli oggetti selezionati" +#: ../src/ui/dialog/xml-tree.cpp:943 +msgid "Create new element node" +msgstr "Crea nuovo elemento nodo" -#: ../src/ui/widget/selected-style.cpp:229 -msgid "Stroke is averaged over selected objects" -msgstr "Il contorno è mediato tra gli oggetti selezionati" +#: ../src/ui/dialog/xml-tree.cpp:959 +msgid "Create new text node" +msgstr "Crea nuovo nodo testuale" -#. TRANSLATOR COMMENT: M means "Multiple" -#: ../src/ui/widget/selected-style.cpp:232 -msgid "m" -msgstr "m" +#: ../src/ui/dialog/xml-tree.cpp:994 +msgid "nodeAsInXMLinHistoryDialog|Delete node" +msgstr "Elimina nodo" -#: ../src/ui/widget/selected-style.cpp:235 -msgid "Multiple selected objects have the same fill" -msgstr "PiĂą oggetti selezionati hanno lo stesso riempimento" +#: ../src/ui/dialog/xml-tree.cpp:1038 +msgid "Change attribute" +msgstr "Cambia attributo" -#: ../src/ui/widget/selected-style.cpp:235 -msgid "Multiple selected objects have the same stroke" -msgstr "PiĂą oggetti selezionati hanno lo stesso contorno" +#: ../src/ui/tool/curve-drag-point.cpp:100 +msgid "Drag curve" +msgstr "Trascina curva" -#: ../src/ui/widget/selected-style.cpp:237 -msgid "Edit fill..." -msgstr "Modifica riempimento..." +#: ../src/ui/tool/curve-drag-point.cpp:157 +msgid "Add node" +msgstr "Aggiungi nodo" -#: ../src/ui/widget/selected-style.cpp:237 -msgid "Edit stroke..." -msgstr "Modifica contorno..." +#: ../src/ui/tool/curve-drag-point.cpp:167 +#, fuzzy +msgctxt "Path segment tip" +msgid "Shift: click to toggle segment selection" +msgstr "" +"Maiusc: fare clic per commutare selezione, trascinare per usare la " +"selezione ad elastico" -#: ../src/ui/widget/selected-style.cpp:241 -msgid "Last set color" -msgstr "Ultimo colore impostato" +#: ../src/ui/tool/curve-drag-point.cpp:171 +#, fuzzy +msgctxt "Path segment tip" +msgid "Ctrl+Alt: click to insert a node" +msgstr "" +"Punto di connessione: fare clic o trascinare per creare un nuovo " +"connettore" -#: ../src/ui/widget/selected-style.cpp:245 -msgid "Last selected color" -msgstr "Ultimo colore selezionato" +#: ../src/ui/tool/curve-drag-point.cpp:175 +msgctxt "Path segment tip" +msgid "" +"Linear segment: drag to convert to a Bezier segment, doubleclick to " +"insert node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" -#: ../src/ui/widget/selected-style.cpp:261 -msgid "Copy color" -msgstr "Copia colore" +#: ../src/ui/tool/curve-drag-point.cpp:179 +msgctxt "Path segment tip" +msgid "" +"Bezier segment: drag to shape the segment, doubleclick to insert " +"node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" -#: ../src/ui/widget/selected-style.cpp:265 -msgid "Paste color" -msgstr "Incolla colore" +#: ../src/ui/tool/multi-path-manipulator.cpp:315 +#, fuzzy +msgid "Retract handles" +msgstr "Ritira maniglia" -#: ../src/ui/widget/selected-style.cpp:269 -#: ../src/ui/widget/selected-style.cpp:852 -msgid "Swap fill and stroke" -msgstr "Inverti riempimento e contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:270 +msgid "Change node type" +msgstr "Cambia tipo di nodo" + +#: ../src/ui/tool/multi-path-manipulator.cpp:323 +#, fuzzy +msgid "Straighten segments" +msgstr "Appiattisci segmento" -#: ../src/ui/widget/selected-style.cpp:273 -#: ../src/ui/widget/selected-style.cpp:584 -#: ../src/ui/widget/selected-style.cpp:593 -msgid "Make fill opaque" -msgstr "Rendi opaco il riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:325 +#, fuzzy +msgid "Make segments curves" +msgstr "Trasforma in curve i segmenti selezionati" -#: ../src/ui/widget/selected-style.cpp:273 -msgid "Make stroke opaque" -msgstr "Rendi il contorno opaco" +#: ../src/ui/tool/multi-path-manipulator.cpp:333 +msgid "Add nodes" +msgstr "Aggiunge nodi" -#: ../src/ui/widget/selected-style.cpp:282 -#: ../src/ui/widget/selected-style.cpp:541 ../src/widgets/fill-style.cpp:510 -msgid "Remove fill" -msgstr "Rimuovi riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:339 +#, fuzzy +msgid "Add extremum nodes" +msgstr "Aggiunge nodi" -#: ../src/ui/widget/selected-style.cpp:282 -#: ../src/ui/widget/selected-style.cpp:550 ../src/widgets/fill-style.cpp:510 -msgid "Remove stroke" -msgstr "Rimuovi contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:346 +#, fuzzy +msgid "Duplicate nodes" +msgstr "Duplica nodo" -#: ../src/ui/widget/selected-style.cpp:605 -msgid "Apply last set color to fill" -msgstr "Imposta l'ultimo colore impostato come riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:409 +#: ../src/widgets/node-toolbar.cpp:408 +msgid "Join nodes" +msgstr "Unisci nodi" -#: ../src/ui/widget/selected-style.cpp:617 -msgid "Apply last set color to stroke" -msgstr "Imposta l'ultimo colore impostato come contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:416 +#: ../src/widgets/node-toolbar.cpp:419 +msgid "Break nodes" +msgstr "Spezza nodi" -#: ../src/ui/widget/selected-style.cpp:628 -msgid "Apply last selected color to fill" -msgstr "Imposta l'ultimo colore selezionato come riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:423 +msgid "Delete nodes" +msgstr "Cancella nodi" -#: ../src/ui/widget/selected-style.cpp:639 -msgid "Apply last selected color to stroke" -msgstr "Imposta l'ultimo colore selezionato come contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:757 +msgid "Move nodes" +msgstr "Muovi nodi" -#: ../src/ui/widget/selected-style.cpp:665 -msgid "Invert fill" -msgstr "Inverti riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:760 +msgid "Move nodes horizontally" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:689 -msgid "Invert stroke" -msgstr "Inverti contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:764 +msgid "Move nodes vertically" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:701 -msgid "White fill" -msgstr "Riempimento bianco" +#: ../src/ui/tool/multi-path-manipulator.cpp:768 +#: ../src/ui/tool/multi-path-manipulator.cpp:771 +msgid "Rotate nodes" +msgstr "Ruota nodi" -#: ../src/ui/widget/selected-style.cpp:713 -msgid "White stroke" -msgstr "Contorno bianco" +#: ../src/ui/tool/multi-path-manipulator.cpp:775 +#: ../src/ui/tool/multi-path-manipulator.cpp:781 +#, fuzzy +msgid "Scale nodes uniformly" +msgstr "Ridimensiona nodi" -#: ../src/ui/widget/selected-style.cpp:725 -msgid "Black fill" -msgstr "Riempimento nero" +#: ../src/ui/tool/multi-path-manipulator.cpp:778 +msgid "Scale nodes" +msgstr "Ridimensiona nodi" -#: ../src/ui/widget/selected-style.cpp:737 -msgid "Black stroke" -msgstr "Contorno nero" +#: ../src/ui/tool/multi-path-manipulator.cpp:785 +#, fuzzy +msgid "Scale nodes horizontally" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:780 -msgid "Paste fill" -msgstr "Incolla riempimento" +#: ../src/ui/tool/multi-path-manipulator.cpp:789 +#, fuzzy +msgid "Scale nodes vertically" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:798 -msgid "Paste stroke" -msgstr "Incolla contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:793 +#, fuzzy +msgid "Skew nodes horizontally" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:954 -msgid "Change stroke width" -msgstr "Modifica larghezza contorno" +#: ../src/ui/tool/multi-path-manipulator.cpp:797 +#, fuzzy +msgid "Skew nodes vertically" +msgstr "Muove i nodi verticalmente" -#: ../src/ui/widget/selected-style.cpp:1049 -msgid ", drag to adjust" -msgstr ", trascinare per modificare" +#: ../src/ui/tool/multi-path-manipulator.cpp:801 +#, fuzzy +msgid "Flip nodes horizontally" +msgstr "Rifletti orizzontalmente" -#: ../src/ui/widget/selected-style.cpp:1134 -#, c-format -msgid "Stroke width: %.5g%s%s" -msgstr "Larghezza contorno: %.5g%s%s" +#: ../src/ui/tool/multi-path-manipulator.cpp:804 +#, fuzzy +msgid "Flip nodes vertically" +msgstr "Rifletti verticalmente" -#: ../src/ui/widget/selected-style.cpp:1138 -msgid " (averaged)" -msgstr ". (media)" +#: ../src/ui/tool/node.cpp:245 +#, fuzzy +msgid "Cusp node handle" +msgstr "Muovi maniglia del nodo" -#: ../src/ui/widget/selected-style.cpp:1166 -msgid "0 (transparent)" -msgstr "0 (trasparente)" +#: ../src/ui/tool/node.cpp:246 +#, fuzzy +msgid "Smooth node handle" +msgstr "Sposta maniglie dei nodi" -#: ../src/ui/widget/selected-style.cpp:1190 -msgid "100% (opaque)" -msgstr "100% (opaco)" +#: ../src/ui/tool/node.cpp:247 +#, fuzzy +msgid "Symmetric node handle" +msgstr "Sposta maniglie dei nodi" -#: ../src/ui/widget/selected-style.cpp:1362 +#: ../src/ui/tool/node.cpp:248 #, fuzzy -msgid "Adjust alpha" -msgstr "Modifica colore" +msgid "Auto-smooth node handle" +msgstr "Muovi maniglia del nodo" -#: ../src/ui/widget/selected-style.cpp:1364 -#, fuzzy, c-format -msgid "" -"Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " -"modifiers to adjust hue" +#: ../src/ui/tool/node.cpp:432 +msgctxt "Path handle tip" +msgid "more: Shift, Ctrl, Alt" msgstr "" -"Modifica luminositĂ : prima era %.3g, ora %.3g (diff %.3g); con " -"Maiusc per modificare la saturazione, con Ctrl per il colore" -#: ../src/ui/widget/selected-style.cpp:1368 -msgid "Adjust saturation" -msgstr "Modifica saturazione" +#: ../src/ui/tool/node.cpp:434 +msgctxt "Path handle tip" +msgid "more: Ctrl, Alt" +msgstr "" -#: ../src/ui/widget/selected-style.cpp:1370 -#, fuzzy, c-format +#: ../src/ui/tool/node.cpp:440 +#, c-format +msgctxt "Path handle tip" msgid "" -"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " -"Ctrl to adjust lightness, with Alt to adjust alpha, without " -"modifiers to adjust hue" +"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " +"increments while rotating both handles" msgstr "" -"Modifica saturazione: prima era %.3g, ora %.3g (diff %.3g); " -"con Ctrl per modificare la luminositĂ , senza modificatori per il " -"colore" -#: ../src/ui/widget/selected-style.cpp:1374 -msgid "Adjust lightness" -msgstr "Modifica luminositĂ " - -#: ../src/ui/widget/selected-style.cpp:1376 -#, fuzzy, c-format +#: ../src/ui/tool/node.cpp:445 +#, c-format +msgctxt "Path handle tip" msgid "" -"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " -"Shift to adjust saturation, with Alt to adjust alpha, without " -"modifiers to adjust hue" +"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" msgstr "" -"Modifica luminositĂ : prima era %.3g, ora %.3g (diff %.3g); con " -"Maiusc per modificare la saturazione, con Ctrl per il colore" -#: ../src/ui/widget/selected-style.cpp:1380 -msgid "Adjust hue" -msgstr "Modifica colore" +#: ../src/ui/tool/node.cpp:451 +#, fuzzy +msgctxt "Path handle tip" +msgid "Shift+Alt: preserve handle length and rotate both handles" +msgstr "" +"Maiusc: commuta la selezione del nodo, disabilita lo scatto, ruota " +"entrambe le maniglie" -#: ../src/ui/widget/selected-style.cpp:1382 +#: ../src/ui/tool/node.cpp:454 +msgctxt "Path handle tip" +msgid "Alt: preserve handle length while dragging" +msgstr "" + +#: ../src/ui/tool/node.cpp:461 #, fuzzy, c-format +msgctxt "Path handle tip" msgid "" -"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " -"to adjust lightness" +"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " +"handles" msgstr "" -"Modifica colore: prima era %.3g, ora %.3g (diff %.3g); con " -"Maiusc per modificare la saturazione, con Ctrl per la " -"luminositĂ " - -#: ../src/ui/widget/selected-style.cpp:1500 -#: ../src/ui/widget/selected-style.cpp:1514 -msgid "Adjust stroke width" -msgstr "Modifica larghezza contorno" +"Maiusc: commuta la selezione del nodo, disabilita lo scatto, ruota " +"entrambe le maniglie" -#: ../src/ui/widget/selected-style.cpp:1501 +#: ../src/ui/tool/node.cpp:465 #, c-format -msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" +msgctxt "Path handle tip" +msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" -"Modifica della larghezza contorno: era %.3g, ora è %.3g (diff " -"%.3g)" -#. TRANSLATORS: "Link" means to _link_ two sliders together -#: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 +#: ../src/ui/tool/node.cpp:470 #, fuzzy -msgctxt "Sliders" -msgid "Link" -msgstr "Linea" - -#: ../src/ui/widget/style-swatch.cpp:293 -msgid "L Gradient" -msgstr "Gradiente L" - -#: ../src/ui/widget/style-swatch.cpp:297 -msgid "R Gradient" -msgstr "Gradiente R" +msgctxt "Path hande tip" +msgid "Shift: rotate both handles by the same angle" +msgstr "Maiusc: disegna attorno al punto iniziale" -#: ../src/ui/widget/style-swatch.cpp:313 +#: ../src/ui/tool/node.cpp:477 #, c-format -msgid "Fill: %06x/%.3g" -msgstr "Riempimento: %06x/%.3g" +msgctxt "Path handle tip" +msgid "Auto node handle: drag to convert to smooth node (%s)" +msgstr "" -#: ../src/ui/widget/style-swatch.cpp:315 +#: ../src/ui/tool/node.cpp:480 #, c-format -msgid "Stroke: %06x/%.3g" -msgstr "Contorno: %06x/%.3g" +msgctxt "Path handle tip" +msgid "%s: drag to shape the segment (%s)" +msgstr "" -#: ../src/ui/widget/style-swatch.cpp:347 +#: ../src/ui/tool/node.cpp:500 #, c-format -msgid "Stroke width: %.5g%s" -msgstr "Larghezza contorno: %.5g%s" +msgctxt "Path handle tip" +msgid "Move handle by %s, %s; angle %.2f°, length %s" +msgstr "Muovi maniglia di %s, %s; angolo %.2f°, lunghezza %s" -#: ../src/ui/widget/style-swatch.cpp:363 -#, c-format -msgid "O: %2.0f" +#: ../src/ui/tool/node.cpp:1270 +#, fuzzy +msgctxt "Path node tip" +msgid "Shift: drag out a handle, click to toggle selection" msgstr "" +"Maiusc: fare clic per commutare selezione, trascinare per usare la " +"selezione ad elastico" -#: ../src/ui/widget/style-swatch.cpp:368 -#, fuzzy, c-format -msgid "Opacity: %2.1f %%" -msgstr "OpacitĂ : %.3g" +#: ../src/ui/tool/node.cpp:1272 +#, fuzzy +msgctxt "Path node tip" +msgid "Shift: click to toggle selection" +msgstr "" +"Maiusc: fare clic per commutare selezione, trascinare per usare la " +"selezione ad elastico" -#: ../src/vanishing-point.cpp:132 -msgid "Split vanishing points" -msgstr "Dividi punti di fuga" +#: ../src/ui/tool/node.cpp:1277 +msgctxt "Path node tip" +msgid "Ctrl+Alt: move along handle lines, click to delete node" +msgstr "" -#: ../src/vanishing-point.cpp:177 -msgid "Merge vanishing points" -msgstr "Unisci punti di fuga" +#: ../src/ui/tool/node.cpp:1280 +msgctxt "Path node tip" +msgid "Ctrl: move along axes, click to change node type" +msgstr "" -#: ../src/vanishing-point.cpp:243 -msgid "3D box: Move vanishing point" -msgstr "Solido 3D: muovi punto di fuga" +#: ../src/ui/tool/node.cpp:1284 +#, fuzzy +msgctxt "Path node tip" +msgid "Alt: sculpt nodes" +msgstr "Ctrl: fa scattare l'angolo" -#: ../src/vanishing-point.cpp:327 +#: ../src/ui/tool/node.cpp:1292 #, c-format -msgid "Finite vanishing point shared by %d box" -msgid_plural "" -"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" -msgstr[0] "" -"Punto di fuga all'infinito condiviso da %d solido; trascinare " -"con Maiusc per separare il solido selezionato" -msgstr[1] "" -"Punto di fuga all'infinito condiviso da %d solidi; trascinare " -"con Maiusc per separare ii solidi selezionati" +msgctxt "Path node tip" +msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" +msgstr "" -#. This won't make sense any more when infinite VPs are not shown on the canvas, -#. but currently we update the status message anyway -#: ../src/vanishing-point.cpp:334 +#: ../src/ui/tool/node.cpp:1295 #, c-format -msgid "Infinite vanishing point shared by %d box" -msgid_plural "" -"Infinite vanishing point shared by %d boxes; drag with " -"Shift to separate selected box(es)" -msgstr[0] "" -"Punto di fuga al finito condiviso da %d solido; trascinare con " -"Maiusc per separare il solido selezionato" -msgstr[1] "" -"Punto di fuga al finito condiviso da %d solidi; trascinare con " -"Maiusc per separare i solidi selezionato" +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to toggle scale/rotation handles " +"(more: Shift, Ctrl, Alt)" +msgstr "" -#: ../src/vanishing-point.cpp:342 +#: ../src/ui/tool/node.cpp:1298 #, c-format +msgctxt "Path node tip" msgid "" -"shared by %d box; drag with Shift to separate selected box(es)" -msgid_plural "" -"shared by %d boxes; drag with Shift to separate selected box" -"(es)" -msgstr[0] "" -"condiviso da %d solido; trascinare con Maiusc per separare il " -"solido" -msgstr[1] "" -"condiviso da %d solidi; trascinare con Maiusc per separare i " -"solidi" +"%s: drag to shape the path, click to select only this node (more: " +"Shift, Ctrl, Alt)" +msgstr "" -#: ../src/verbs.cpp:137 -msgid "File" -msgstr "File" +#: ../src/ui/tool/node.cpp:1309 +#, c-format +msgctxt "Path node tip" +msgid "Move node by %s, %s" +msgstr "Muovi nodo di %s, %s" -#: ../src/verbs.cpp:232 +#: ../src/ui/tool/node.cpp:1320 #, fuzzy -msgid "Context" -msgstr "Contrasto" +msgid "Symmetric node" +msgstr "simmetrico" -#: ../src/verbs.cpp:251 ../src/verbs.cpp:2223 -#: ../share/extensions/jessyInk_view.inx.h:1 -#: ../share/extensions/polyhedron_3d.inx.h:26 -msgid "View" -msgstr "Visualizza" +#: ../src/ui/tool/node.cpp:1321 +#, fuzzy +msgid "Auto-smooth node" +msgstr "nodo curvo" -#: ../src/verbs.cpp:271 +#: ../src/ui/tool/path-manipulator.cpp:821 #, fuzzy -msgid "Dialog" -msgstr "Fissa sottofinestra" +msgid "Scale handle" +msgstr "Ridimensiona nodi" -#: ../src/verbs.cpp:1227 -msgid "Switch to next layer" -msgstr "Passa al livello successivo" +#: ../src/ui/tool/path-manipulator.cpp:845 +#, fuzzy +msgid "Rotate handle" +msgstr "Ritira maniglia" -#: ../src/verbs.cpp:1228 -msgid "Switched to next layer." -msgstr "Passato al livello successivo." +#. We need to call MPM's method because it could have been our last node +#: ../src/ui/tool/path-manipulator.cpp:1384 +#: ../src/widgets/node-toolbar.cpp:397 +msgid "Delete node" +msgstr "Cancella nodo" -#: ../src/verbs.cpp:1230 -msgid "Cannot go past last layer." -msgstr "Impossibile passare ad un livello successivo all'ultimo." +#: ../src/ui/tool/path-manipulator.cpp:1392 +#, fuzzy +msgid "Cycle node type" +msgstr "Cambia tipo di nodo" -#: ../src/verbs.cpp:1239 -msgid "Switch to previous layer" -msgstr "Passa al livello precedente" +#: ../src/ui/tool/path-manipulator.cpp:1407 +msgid "Drag handle" +msgstr "Trascina maniglia" -#: ../src/verbs.cpp:1240 -msgid "Switched to previous layer." -msgstr "Passato al livello precedente." +#: ../src/ui/tool/path-manipulator.cpp:1416 +msgid "Retract handle" +msgstr "Ritira maniglia" -#: ../src/verbs.cpp:1242 -msgid "Cannot go before first layer." -msgstr "Impossibile passare ad un livello precedente al primo." +#: ../src/ui/tool/transform-handle-set.cpp:195 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Shift+Ctrl: scale uniformly about the rotation center" +msgstr "Maiusc: disegna attorno al punto iniziale" -#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1396 -#: ../src/verbs.cpp:1402 ../src/verbs.cpp:1426 ../src/verbs.cpp:1441 -msgid "No current layer." -msgstr "Nessun livello attuale." +#: ../src/ui/tool/transform-handle-set.cpp:197 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Ctrl: scale uniformly" +msgstr "Ctrl: fa scattare l'angolo" + +#: ../src/ui/tool/transform-handle-set.cpp:202 +#, fuzzy +msgctxt "Transform handle tip" +msgid "" +"Shift+Alt: scale using an integer ratio about the rotation center" +msgstr "Maiusc: disegna il gradiente attorno al punto iniziale" + +#: ../src/ui/tool/transform-handle-set.cpp:204 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Shift: scale from the rotation center" +msgstr "Maiusc: disegna attorno al punto iniziale" + +#: ../src/ui/tool/transform-handle-set.cpp:207 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Alt: scale using an integer ratio" +msgstr "Alt: mantiene il raggio della spirale" + +#: ../src/ui/tool/transform-handle-set.cpp:209 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Scale handle: drag to scale the selection" +msgstr "Nessun tracciato nella selezione da invertire." + +#: ../src/ui/tool/transform-handle-set.cpp:214 +#, c-format +msgctxt "Transform handle tip" +msgid "Scale by %.2f%% x %.2f%%" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:438 +#, c-format +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " +"increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:441 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Shift: rotate around the opposite corner" +msgstr "Maiusc: disegna attorno al punto iniziale" + +#: ../src/ui/tool/transform-handle-set.cpp:445 +#, fuzzy, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap angle to %f° increments" +msgstr "Ctrl: fa scattare l'angolo" + +#: ../src/ui/tool/transform-handle-set.cpp:447 +msgctxt "Transform handle tip" +msgid "" +"Rotation handle: drag to rotate the selection around the rotation " +"center" +msgstr "" + +#. event +#: ../src/ui/tool/transform-handle-set.cpp:452 +#, fuzzy, c-format +msgctxt "Transform handle tip" +msgid "Rotate by %.2f°" +msgstr "Ruota tramite pixel" -#: ../src/verbs.cpp:1292 ../src/verbs.cpp:1296 +#: ../src/ui/tool/transform-handle-set.cpp:578 #, c-format -msgid "Raised layer %s." -msgstr "Alzato il livello %s." +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: skew about the rotation center with snapping to %f° " +"increments" +msgstr "" -#: ../src/verbs.cpp:1293 -msgid "Layer to top" -msgstr "Sposta livello in cima" +#: ../src/ui/tool/transform-handle-set.cpp:581 +#, fuzzy +msgctxt "Transform handle tip" +msgid "Shift: skew about the rotation center" +msgstr "Maiusc: disegna attorno al punto iniziale" -#: ../src/verbs.cpp:1297 -msgid "Raise layer" -msgstr "Alza livello" +#: ../src/ui/tool/transform-handle-set.cpp:585 +#, fuzzy, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap skew angle to %f° increments" +msgstr "Ctrl: fa scattare l'angolo" -#: ../src/verbs.cpp:1300 ../src/verbs.cpp:1304 -#, c-format -msgid "Lowered layer %s." -msgstr "Abbassato il livello %s." +#: ../src/ui/tool/transform-handle-set.cpp:588 +msgctxt "Transform handle tip" +msgid "" +"Skew handle: drag to skew (shear) selection about the opposite handle" +msgstr "" -#: ../src/verbs.cpp:1301 -msgid "Layer to bottom" -msgstr "Sposta livello in fondo" +#: ../src/ui/tool/transform-handle-set.cpp:594 +#, fuzzy, c-format +msgctxt "Transform handle tip" +msgid "Skew horizontally by %.2f°" +msgstr "Scosta orizzontalmente di pixel" -#: ../src/verbs.cpp:1305 -msgid "Lower layer" -msgstr "Abbassa livello" +#: ../src/ui/tool/transform-handle-set.cpp:597 +#, fuzzy, c-format +msgctxt "Transform handle tip" +msgid "Skew vertically by %.2f°" +msgstr "Scosta verticalmente di pixel" -#: ../src/verbs.cpp:1314 -msgid "Cannot move layer any further." -msgstr "Non si può spostare ulteriormente il livello." +#: ../src/ui/tool/transform-handle-set.cpp:656 +msgctxt "Transform handle tip" +msgid "Rotation center: drag to change the origin of transforms" +msgstr "" -#: ../src/verbs.cpp:1328 ../src/verbs.cpp:1347 -#, c-format -msgid "%s copy" -msgstr "%s copia" +#: ../src/ui/tools/arc-tool.cpp:252 +msgid "" +"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" +msgstr "" +"Ctrl: crea cerchi o ellissi in scala, fa scattare gli angoli di archi/" +"segmenti" -#: ../src/verbs.cpp:1355 -msgid "Duplicate layer" -msgstr "Duplica livello" +#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +msgid "Shift: draw around the starting point" +msgstr "Maiusc: disegna attorno al punto iniziale" -#. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1358 -msgid "Duplicated layer." -msgstr "Livello duplicato." +#: ../src/ui/tools/arc-tool.cpp:422 +#, c-format +msgid "" +"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " +"to draw around the starting point" +msgstr "" +"Ellisse: %s × %s; (vincolato al raggio %d:%d); Maiusc per " +"disegnare attorno al punto iniziale" -#: ../src/verbs.cpp:1391 -msgid "Delete layer" -msgstr "Elimina livello" +#: ../src/ui/tools/arc-tool.cpp:424 +#, c-format +msgid "" +"Ellipse: %s × %s; with Ctrl to make square or integer-" +"ratio ellipse; with Shift to draw around the starting point" +msgstr "" +"Ellisse: %s × %s; Ctrl per fare cerchi o ellissi in " +"scala; Maiusc per disegnare attorno al punto iniziale" -#. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1394 -msgid "Deleted layer." -msgstr "Livello eliminato." +#: ../src/ui/tools/arc-tool.cpp:447 +msgid "Create ellipse" +msgstr "Crea ellisse" -#: ../src/verbs.cpp:1411 -#, fuzzy -msgid "Show all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 +#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 +#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +msgid "Change perspective (angle of PLs)" +msgstr "Cambia prospettiva (angolo degli assi prospettici)" -#: ../src/verbs.cpp:1416 -#, fuzzy -msgid "Hide all layers" -msgstr "Nascondi livello" +#. status text +#: ../src/ui/tools/box3d-tool.cpp:583 +msgid "3D Box; with Shift to extrude along the Z axis" +msgstr "Solido 3D; con Maiusc per estrudere lungo l'asse Z" -#: ../src/verbs.cpp:1421 -#, fuzzy -msgid "Lock all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/tools/box3d-tool.cpp:609 +msgid "Create 3D box" +msgstr "Crea solido 3D" -#: ../src/verbs.cpp:1435 -#, fuzzy -msgid "Unlock all layers" -msgstr "Sblocca livello" +#: ../src/ui/tools/calligraphic-tool.cpp:536 +msgid "" +"Guide path selected; start drawing along the guide with Ctrl" +msgstr "" +"Tracciato guida selezionato; iniziare a disegnare seguendo la guida " +"con Ctrl" -#: ../src/verbs.cpp:1519 -msgid "Flip horizontally" -msgstr "Rifletti orizzontalmente" +#: ../src/ui/tools/calligraphic-tool.cpp:538 +msgid "Select a guide path to track with Ctrl" +msgstr "Selezionare un tracciato guida da ricalcare con Ctrl" -#: ../src/verbs.cpp:1524 -msgid "Flip vertically" -msgstr "Rifletti verticalmente" +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking: connection to guide path lost!" +msgstr "Ricalco: connessione" -#. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, -#. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language -#. code); otherwise leave as "tutorial-basic.svg". -#: ../src/verbs.cpp:2105 -msgid "tutorial-basic.svg" -msgstr "tutorial-basic.it.svg" +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking a guide path" +msgstr "Ricalco di un tracciato guida" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2109 -msgid "tutorial-shapes.svg" -msgstr "tutorial-shapes.it.svg" +#: ../src/ui/tools/calligraphic-tool.cpp:676 +msgid "Drawing a calligraphic stroke" +msgstr "Creazione di una linea calligrafica" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2113 -msgid "tutorial-advanced.svg" -msgstr "tutorial-advanced.it.svg" +#: ../src/ui/tools/calligraphic-tool.cpp:977 +msgid "Draw calligraphic stroke" +msgstr "Crea linee calligrafiche" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2117 -msgid "tutorial-tracing.svg" -msgstr "tutorial-tracing.svg" +#: ../src/ui/tools/connector-tool.cpp:499 +msgid "Creating new connector" +msgstr "Creazione nuovo connettore" -#: ../src/verbs.cpp:2120 -#, fuzzy -msgid "tutorial-tracing-pixelart.svg" -msgstr "tutorial-tracing.svg" +#: ../src/ui/tools/connector-tool.cpp:740 +msgid "Connector endpoint drag cancelled." +msgstr "Punto finale connettore cancellato." -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2124 -msgid "tutorial-calligraphy.svg" -msgstr "tutorial-calligraphy.svg" +#: ../src/ui/tools/connector-tool.cpp:783 +msgid "Reroute connector" +msgstr "Reinstrada connettore" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2128 -#, fuzzy -msgid "tutorial-interpolate.svg" -msgstr "tutorial-tips.it.svg" +#: ../src/ui/tools/connector-tool.cpp:936 +msgid "Create connector" +msgstr "Crea connettore" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2132 -msgid "tutorial-elements.svg" -msgstr "tutorial-elements.svg" +#: ../src/ui/tools/connector-tool.cpp:953 +msgid "Finishing connector" +msgstr "Terminazione connettore" -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2136 -msgid "tutorial-tips.svg" -msgstr "tutorial-tips.it.svg" +#: ../src/ui/tools/connector-tool.cpp:1191 +msgid "Connector endpoint: drag to reroute or connect to new shapes" +msgstr "" +"Punto finale connettore: trascinare per reinstradare o connettere a " +"nuove forme" -#: ../src/verbs.cpp:2322 ../src/verbs.cpp:2913 -msgid "Unlock all objects in the current layer" -msgstr "Sblocca tutti gli oggetti nel livello attuale" +#: ../src/ui/tools/connector-tool.cpp:1336 +msgid "Select at least one non-connector object." +msgstr "Selezionare almeno un oggetto non-connettore." -#: ../src/verbs.cpp:2326 ../src/verbs.cpp:2915 -msgid "Unlock all objects in all layers" -msgstr "Seleziona tutti gli oggetti in ogni livello" +#: ../src/ui/tools/connector-tool.cpp:1341 +#: ../src/widgets/connector-toolbar.cpp:314 +msgid "Make connectors avoid selected objects" +msgstr "Fa sì che i connettori evitino gli oggetti selezionati" -#: ../src/verbs.cpp:2330 ../src/verbs.cpp:2917 -msgid "Unhide all objects in the current layer" -msgstr "Mostra tutti gli oggetti nel livello attuale" +#: ../src/ui/tools/connector-tool.cpp:1342 +#: ../src/widgets/connector-toolbar.cpp:324 +msgid "Make connectors ignore selected objects" +msgstr "Fa sì che i connettori ignorino gli oggetti selezionati" -#: ../src/verbs.cpp:2334 ../src/verbs.cpp:2919 -msgid "Unhide all objects in all layers" -msgstr "Mostra tutti gli oggetti in ogni livello" +#. alpha of color under cursor, to show in the statusbar +#. locale-sensitive printf is OK, since this goes to the UI, not into SVG +#: ../src/ui/tools/dropper-tool.cpp:281 +#, c-format +msgid " alpha %.3g" +msgstr " alpha %.3g" -#: ../src/verbs.cpp:2349 -msgid "Does nothing" -msgstr "Fa niente" +#. where the color is picked, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:283 +#, c-format +msgid ", averaged with radius %d" +msgstr ", medio con radiale %d" -#: ../src/verbs.cpp:2352 -msgid "Create new document from the default template" -msgstr "Crea un nuovo documento dal modello predefinito" +#: ../src/ui/tools/dropper-tool.cpp:283 +msgid " under cursor" +msgstr " sotto il cursore" -#: ../src/verbs.cpp:2354 -msgid "_Open..." -msgstr "_Apri..." +#. message, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:285 +msgid "Release mouse to set color." +msgstr "Rilascia il mouse per impostare il colore." -#: ../src/verbs.cpp:2355 -msgid "Open an existing document" -msgstr "Apre un documento esistente" +#: ../src/ui/tools/dropper-tool.cpp:333 +msgid "Set picked color" +msgstr "Imposta colore selezionato" -#: ../src/verbs.cpp:2356 -msgid "Re_vert" -msgstr "Ri_carica" +#: ../src/ui/tools/eraser-tool.cpp:437 +msgid "Drawing an eraser stroke" +msgstr "Disegno di un tratto di cancellazione" -#: ../src/verbs.cpp:2357 -msgid "Revert to the last saved version of document (changes will be lost)" -msgstr "" -"Ricarica l'ultima versione salvata del documento (i cambiamenti verranno " -"persi)" +#: ../src/ui/tools/eraser-tool.cpp:770 +msgid "Draw eraser stroke" +msgstr "Disegna tratto di cancellazione" -#: ../src/verbs.cpp:2358 -msgid "Save document" -msgstr "Salva il documento" +#: ../src/ui/tools/flood-tool.cpp:192 +msgid "Visible Colors" +msgstr "Colori visibili" -#: ../src/verbs.cpp:2360 -msgid "Save _As..." -msgstr "Salv_a come..." +#: ../src/ui/tools/flood-tool.cpp:210 +#, fuzzy +msgctxt "Flood autogap" +msgid "None" +msgstr "Nessuno" -#: ../src/verbs.cpp:2361 -msgid "Save document under a new name" -msgstr "Salva il documento con un nuovo nome" +#: ../src/ui/tools/flood-tool.cpp:211 +#, fuzzy +msgctxt "Flood autogap" +msgid "Small" +msgstr "Piccola" -#: ../src/verbs.cpp:2362 -msgid "Save a Cop_y..." -msgstr "Salva una co_pia..." +#: ../src/ui/tools/flood-tool.cpp:212 +#, fuzzy +msgctxt "Flood autogap" +msgid "Medium" +msgstr "Media" -#: ../src/verbs.cpp:2363 -msgid "Save a copy of the document under a new name" -msgstr "Salva una copia del documento con un nuovo nome" +#: ../src/ui/tools/flood-tool.cpp:213 +#, fuzzy +msgctxt "Flood autogap" +msgid "Large" +msgstr "Grande" -#: ../src/verbs.cpp:2364 -msgid "_Print..." -msgstr "Stam_pa..." +#: ../src/ui/tools/flood-tool.cpp:435 +msgid "Too much inset, the result is empty." +msgstr "Troppa intrusione, il risultato è vuoto." -#: ../src/verbs.cpp:2364 -msgid "Print document" -msgstr "Stampa il documento" +#: ../src/ui/tools/flood-tool.cpp:476 +#, c-format +msgid "" +"Area filled, path with %d node created and unioned with selection." +msgid_plural "" +"Area filled, path with %d nodes created and unioned with selection." +msgstr[0] "" +"Area riempita, creato un tracciato di %d nodo unito con la selezione." +msgstr[1] "" +"Area riempita, creato un tracciato di %d nodi unito con la selezione." -#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2367 -#, fuzzy -msgid "Clean _up document" -msgstr "Impossibile impostare Document" +#: ../src/ui/tools/flood-tool.cpp:482 +#, c-format +msgid "Area filled, path with %d node created." +msgid_plural "Area filled, path with %d nodes created." +msgstr[0] "Area riempita, creato un tracciato di %d nodo." +msgstr[1] "Area riempita, creato un tracciato di %d nodi." -#: ../src/verbs.cpp:2367 +#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +msgid "Area is not bounded, cannot fill." +msgstr "L'Area non è limitata, impossibile riempirla." + +#: ../src/ui/tools/flood-tool.cpp:1065 msgid "" -"Remove unused definitions (such as gradients or clipping paths) from the <" -"defs> of the document" +"Only the visible part of the bounded area was filled. If you want to " +"fill all of the area, undo, zoom out, and fill again." msgstr "" -"Elimina definizioni inutilizzate (come gradienti o tracciati di fissaggio) " -"dai <defs> del documento" +"Ă stata riempita solo la parte visibile dell'area delimitata. Per " +"riempire tutta l'area occorre annullare, rimpicciolire l'immagine procedere " +"col riempimento." -#: ../src/verbs.cpp:2369 -msgid "_Import..." -msgstr "_Importa..." +#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +msgid "Fill bounded area" +msgstr "Riempie aree delimitate" -#: ../src/verbs.cpp:2370 -msgid "Import a bitmap or SVG image into this document" -msgstr "Importa una bitmap o un'immagine SVG nel documento" +#: ../src/ui/tools/flood-tool.cpp:1099 +msgid "Set style on object" +msgstr "Imposta stile per l'oggetto" -#. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), -#: ../src/verbs.cpp:2372 -#, fuzzy -msgid "Import Clip Art..." -msgstr "_Importa..." +#: ../src/ui/tools/flood-tool.cpp:1159 +msgid "Draw over areas to add to fill, hold Alt for touch fill" +msgstr "" +"Disegnare sulle aree per aggiungere un riempimento, premere Alt per riempire al tocco" -#: ../src/verbs.cpp:2373 -#, fuzzy -msgid "Import clipart from Open Clip Art Library" -msgstr "Importa Open Clip Art" +#. We hit green anchor, closing Green-Blue-Red +#: ../src/ui/tools/freehand-base.cpp:518 +msgid "Path is closed." +msgstr "Il tracciato è chiuso." -#. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), -#: ../src/verbs.cpp:2375 -msgid "N_ext Window" -msgstr "Fin_estra successiva" +#. We hit bot start and end of single curve, closing paths +#: ../src/ui/tools/freehand-base.cpp:533 +msgid "Closing path." +msgstr "Chiusura tracciato." -#: ../src/verbs.cpp:2376 -msgid "Switch to the next document window" -msgstr "Passa alla finestra successiva" +#: ../src/ui/tools/freehand-base.cpp:635 +msgid "Draw path" +msgstr "Disegna tracciato" -#: ../src/verbs.cpp:2377 -msgid "P_revious Window" -msgstr "Finestra p_recedente" +#: ../src/ui/tools/freehand-base.cpp:792 +msgid "Creating single dot" +msgstr "Creazione singolo punto" -#: ../src/verbs.cpp:2378 -msgid "Switch to the previous document window" -msgstr "Passa alla finestra precedente" +#: ../src/ui/tools/freehand-base.cpp:793 +msgid "Create single dot" +msgstr "Crea singolo punto" -#: ../src/verbs.cpp:2379 -msgid "_Close" -msgstr "_Chiudi" +#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#, c-format +msgid "%s selected" +msgstr "%s selezionato" -#: ../src/verbs.cpp:2380 -msgid "Close this document window" -msgstr "Chiude la finestra di questo documento" +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#, c-format +msgid " out of %d gradient handle" +msgid_plural " out of %d gradient handles" +msgstr[0] " con %d maniglia di gradiente" +msgstr[1] " con %d maniglie di gradiente" -#: ../src/verbs.cpp:2381 -msgid "_Quit" -msgstr "_Esci" +#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 +#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 +#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#, c-format +msgid " on %d selected object" +msgid_plural " on %d selected objects" +msgstr[0] " su %d oggetto selezionati" +msgstr[1] " su %d oggetti selezionati" -#: ../src/verbs.cpp:2381 -msgid "Quit Inkscape" -msgstr "Chiude Inkscape" +#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#, c-format +msgid "" +"One handle merging %d stop (drag with Shift to separate) selected" +msgid_plural "" +"One handle merging %d stops (drag with Shift to separate) selected" +msgstr[0] "" +"Una maniglia multifunzione per %d passaggio (trascinare con Maiusc " +"per separare) selezionata" +msgstr[1] "" +"Una maniglia multifunzione per %d passaggi (trascinare con Maiusc per " +"separare) selezionata" -#: ../src/verbs.cpp:2382 -#, fuzzy -msgid "_Templates..." -msgstr "Campio_ni..." +#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) +#: ../src/ui/tools/gradient-tool.cpp:148 +#, c-format +msgid "%d gradient handle selected out of %d" +msgid_plural "%d gradient handles selected out of %d" +msgstr[0] "%d maniglia di gradiente selezionata su %d" +msgstr[1] "%d maniglie di gradiente selezionate su %d" -#: ../src/verbs.cpp:2383 -#, fuzzy -msgid "Create new project from template" -msgstr "Crea un nuovo documento dal modello predefinito" +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/gradient-tool.cpp:155 +#, c-format +msgid "No gradient handles selected out of %d on %d selected object" +msgid_plural "" +"No gradient handles selected out of %d on %d selected objects" +msgstr[0] "" +"Nessuna maniglia di gradiente selezionata su %d per %d oggetto nella " +"selezione" +msgstr[1] "" +"Nessuna maniglia di gradiente selezionata su %d per %d oggetti nella " +"selezione" -#: ../src/verbs.cpp:2386 -msgid "Undo last action" -msgstr "Annulla l'ultima azione" +#: ../src/ui/tools/gradient-tool.cpp:440 +msgid "Simplify gradient" +msgstr "Semplifica radiente" -#: ../src/verbs.cpp:2389 -msgid "Do again the last undone action" -msgstr "Ripete l'ultima azione annullata" +#: ../src/ui/tools/gradient-tool.cpp:516 +msgid "Create default gradient" +msgstr "Crea gradiente predefinito" -#: ../src/verbs.cpp:2390 -msgid "Cu_t" -msgstr "_Taglia" +#: ../src/ui/tools/gradient-tool.cpp:575 ../src/ui/tools/mesh-tool.cpp:570 +msgid "Draw around handles to select them" +msgstr "Trascinare attorno alle maniglie per selezionarle" -#: ../src/verbs.cpp:2391 -msgid "Cut selection to clipboard" -msgstr "Taglia la selezione e la sposta negli appunti" +#: ../src/ui/tools/gradient-tool.cpp:698 +msgid "Ctrl: snap gradient angle" +msgstr "Ctrl: fa scattare l'angolo del gradiente" -#: ../src/verbs.cpp:2392 -msgid "_Copy" -msgstr "_Copia" +#: ../src/ui/tools/gradient-tool.cpp:699 +msgid "Shift: draw gradient around the starting point" +msgstr "Maiusc: disegna il gradiente attorno al punto iniziale" -#: ../src/verbs.cpp:2393 -msgid "Copy selection to clipboard" -msgstr "Copia la selezione negli appunti" +#: ../src/ui/tools/gradient-tool.cpp:953 ../src/ui/tools/mesh-tool.cpp:993 +#, c-format +msgid "Gradient for %d object; with Ctrl to snap angle" +msgid_plural "Gradient for %d objects; with Ctrl to snap angle" +msgstr[0] "" +"Gradiente per %d oggetto; con Ctrl per far scattare l'angolo" +msgstr[1] "" +"Gradiente per %d oggetti; con Ctrl per far scattare l'angolo" -#: ../src/verbs.cpp:2394 -msgid "_Paste" -msgstr "I_ncolla" +#: ../src/ui/tools/gradient-tool.cpp:957 ../src/ui/tools/mesh-tool.cpp:997 +msgid "Select objects on which to create gradient." +msgstr "Selezionare l'oggetto su cui creare il gradiente." -#: ../src/verbs.cpp:2395 -msgid "Paste objects from clipboard to mouse point, or paste text" -msgstr "Incolla l'oggetto dagli appunti sotto al puntatore, o incolla il testo" +#: ../src/ui/tools/lpe-tool.cpp:207 +msgid "Choose a construction tool from the toolbar." +msgstr "Scegliere uno strumento di costruzione dalla barra degli strumenti." -#: ../src/verbs.cpp:2396 -msgid "Paste _Style" -msgstr "Incolla _stile" +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 +#, fuzzy, c-format +msgid " out of %d mesh handle" +msgid_plural " out of %d mesh handles" +msgstr[0] " con %d maniglia di gradiente" +msgstr[1] " con %d maniglie di gradiente" -#: ../src/verbs.cpp:2397 -msgid "Apply the style of the copied object to selection" -msgstr "Applica alla selezione lo stile dell'oggetto copiato" +#: ../src/ui/tools/mesh-tool.cpp:150 +#, fuzzy, c-format +msgid "%d mesh handle selected out of %d" +msgid_plural "%d mesh handles selected out of %d" +msgstr[0] "%d maniglia di gradiente selezionata su %d" +msgstr[1] "%d maniglie di gradiente selezionate su %d" -#: ../src/verbs.cpp:2399 -msgid "Scale selection to match the size of the copied object" -msgstr "Ridimensiona la selezione alla stessa dimensione dell'oggetto copiato" +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/mesh-tool.cpp:157 +#, fuzzy, c-format +msgid "No mesh handles selected out of %d on %d selected object" +msgid_plural "No mesh handles selected out of %d on %d selected objects" +msgstr[0] "" +"Nessuna maniglia di gradiente selezionata su %d per %d oggetto nella " +"selezione" +msgstr[1] "" +"Nessuna maniglia di gradiente selezionata su %d per %d oggetti nella " +"selezione" -#: ../src/verbs.cpp:2400 -msgid "Paste _Width" -msgstr "Incolla larg_hezza" +#: ../src/ui/tools/mesh-tool.cpp:321 +msgid "Split mesh row/column" +msgstr "" -#: ../src/verbs.cpp:2401 -msgid "Scale selection horizontally to match the width of the copied object" +#: ../src/ui/tools/mesh-tool.cpp:407 +msgid "Toggled mesh path type." msgstr "" -"Ridimensiona la selezione orizzontalmente per adattarsi alla larghezza " -"dell'oggetto copiato" -#: ../src/verbs.cpp:2402 -msgid "Paste _Height" -msgstr "Incolla al_tezza" +#: ../src/ui/tools/mesh-tool.cpp:411 +msgid "Approximated arc for mesh side." +msgstr "" -#: ../src/verbs.cpp:2403 -msgid "Scale selection vertically to match the height of the copied object" +#: ../src/ui/tools/mesh-tool.cpp:415 +msgid "Toggled mesh tensors." msgstr "" -"Ridimensiona la selezione verticalmente per adattarsi all'altezza " -"dell'oggetto copiato" -#: ../src/verbs.cpp:2404 -msgid "Paste Size Separately" -msgstr "Incolla dimensione separatamente" +#: ../src/ui/tools/mesh-tool.cpp:419 +#, fuzzy +msgid "Smoothed mesh corner color." +msgstr "Shader liscio contornato" -#: ../src/verbs.cpp:2405 -msgid "Scale each selected object to match the size of the copied object" -msgstr "" -"Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " -"selezionato" +#: ../src/ui/tools/mesh-tool.cpp:423 +#, fuzzy +msgid "Picked mesh corner color." +msgstr "Preleva l'opacitĂ  del colore" -#: ../src/verbs.cpp:2406 -msgid "Paste Width Separately" -msgstr "Incolla larghezza separatamente" +#: ../src/ui/tools/mesh-tool.cpp:498 +#, fuzzy +msgid "Create default mesh" +msgstr "Crea gradiente predefinito" -#: ../src/verbs.cpp:2407 -msgid "" -"Scale each selected object horizontally to match the width of the copied " -"object" -msgstr "" -"Ridimensiona orizzontalmente ogni oggetto selezionato alla dimensione " -"dell'oggetto copiato" +#: ../src/ui/tools/mesh-tool.cpp:718 +#, fuzzy +msgid "FIXMECtrl: snap mesh angle" +msgstr "Ctrl: fa scattare l'angolo" -#: ../src/verbs.cpp:2408 -msgid "Paste Height Separately" -msgstr "Incolla altezza separatamente" +#: ../src/ui/tools/mesh-tool.cpp:719 +#, fuzzy +msgid "FIXMEShift: draw mesh around the starting point" +msgstr "Maiusc: disegna attorno al punto iniziale" -#: ../src/verbs.cpp:2409 +#: ../src/ui/tools/node-tool.cpp:598 +msgctxt "Node tool tip" msgid "" -"Scale each selected object vertically to match the height of the copied " -"object" +"Shift: drag to add nodes to the selection, click to toggle object " +"selection" msgstr "" -"Ridimensiona verticalmente ogni oggetto selezionato all'altezza dell'oggetto " -"copiato" - -#: ../src/verbs.cpp:2410 -msgid "Paste _In Place" -msgstr "Incolla _in origine" -#: ../src/verbs.cpp:2411 -msgid "Paste objects from clipboard to the original location" -msgstr "Incolla l'oggetto dagli appunti al suo luogo di origine" +#: ../src/ui/tools/node-tool.cpp:602 +#, fuzzy +msgctxt "Node tool tip" +msgid "Shift: drag to add nodes to the selection" +msgstr "Maiusc: disegna attorno al punto iniziale" -#: ../src/verbs.cpp:2412 -msgid "Paste Path _Effect" -msgstr "Incolla _effetto su tracciato" +#: ../src/ui/tools/node-tool.cpp:614 +#, fuzzy, c-format +msgid "%u of %u node selected." +msgid_plural "%u of %u nodes selected." +msgstr[0] "%i di %i nodo selezionato; %s." +msgstr[1] "%i di %i nodi selezionati; %s." -#: ../src/verbs.cpp:2413 -msgid "Apply the path effect of the copied object to selection" -msgstr "Applica alla selezione l'effetto su tracciato dell'oggetto copiato" +#: ../src/ui/tools/node-tool.cpp:620 +#, fuzzy, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" +msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" -#: ../src/verbs.cpp:2414 -msgid "Remove Path _Effect" -msgstr "Rimuovi _effetti su tracciato" +#: ../src/ui/tools/node-tool.cpp:626 +#, fuzzy, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click clear the selection" +msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" -#: ../src/verbs.cpp:2415 -msgid "Remove any path effects from selected objects" -msgstr "Rimuove tutti gli effetti su tracciato dalla selezione" +#: ../src/ui/tools/node-tool.cpp:635 +#, fuzzy +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to edit only this object" +msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" -#: ../src/verbs.cpp:2416 +#: ../src/ui/tools/node-tool.cpp:638 #, fuzzy -msgid "_Remove Filters" -msgstr "Rimuovi filtri" +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to clear the selection" +msgstr "Trascinare per selezionare un intersezione, cliccare per girarla" -#: ../src/verbs.cpp:2417 -msgid "Remove any filters from selected objects" -msgstr "Rimuove tutti i filtri dagli oggetti selezionati" +#: ../src/ui/tools/node-tool.cpp:643 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit, click to edit this object (more: Shift)" +msgstr "" -#: ../src/verbs.cpp:2418 -msgid "_Delete" -msgstr "Eli_mina" +#: ../src/ui/tools/node-tool.cpp:646 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit" +msgstr "Trascina per selezionare gli oggetti da modificare" -#: ../src/verbs.cpp:2419 -msgid "Delete selection" -msgstr "Elimina la selezione" +#: ../src/ui/tools/pen-tool.cpp:186 ../src/ui/tools/pencil-tool.cpp:465 +msgid "Drawing cancelled" +msgstr "Disegno cancellato" -#: ../src/verbs.cpp:2420 -msgid "Duplic_ate" -msgstr "Duplic_a" +#: ../src/ui/tools/pen-tool.cpp:407 ../src/ui/tools/pencil-tool.cpp:203 +msgid "Continuing selected path" +msgstr "Continuazione del tracciato selezionato" -#: ../src/verbs.cpp:2421 -msgid "Duplicate selected objects" -msgstr "Duplica gli oggetti selezionati" +#: ../src/ui/tools/pen-tool.cpp:417 ../src/ui/tools/pencil-tool.cpp:211 +msgid "Creating new path" +msgstr "Creazione nuovo tracciato" -#: ../src/verbs.cpp:2422 -msgid "Create Clo_ne" -msgstr "Crea clo_ne" +#: ../src/ui/tools/pen-tool.cpp:419 ../src/ui/tools/pencil-tool.cpp:214 +msgid "Appending to selected path" +msgstr "Aggiunta al tracciato selezionato" -#: ../src/verbs.cpp:2423 -msgid "Create a clone (a copy linked to the original) of selected object" +#: ../src/ui/tools/pen-tool.cpp:576 +msgid "Click or click and drag to close and finish the path." msgstr "" -"Crea un clone dell'oggetto selezionato (una copia collegata all'originale)" - -#: ../src/verbs.cpp:2424 -msgid "Unlin_k Clone" -msgstr "Scolle_ga clone" +"Fare clic o fare clic e trascinare per chiudere e terminare il " +"tracciato." -#: ../src/verbs.cpp:2425 +#: ../src/ui/tools/pen-tool.cpp:586 msgid "" -"Cut the selected clones' links to the originals, turning them into " -"standalone objects" +"Click or click and drag to continue the path from this point." msgstr "" -"Rimuove i collegamenti tra i cloni e gli originali, trasformandoli in " -"oggetti separati" - -#: ../src/verbs.cpp:2426 -msgid "Relink to Copied" -msgstr "Ricollega alla copia" - -#: ../src/verbs.cpp:2427 -msgid "Relink the selected clones to the object currently on the clipboard" -msgstr "Ricollega i cloni selezionati con l'oggetto attualmente negli appunti" - -#: ../src/verbs.cpp:2428 -msgid "Select _Original" -msgstr "Seleziona _originale" - -#: ../src/verbs.cpp:2429 -msgid "Select the object to which the selected clone is linked" -msgstr "Seleziona l'oggetto a cui il clone selezionato è collegato" - -#: ../src/verbs.cpp:2430 -#, fuzzy -msgid "Clone original path (LPE)" -msgstr "Sostituisci testo" +"Fare clic o fare clic e trascinare per continuare il tracciato " +"da questo punto." -#: ../src/verbs.cpp:2431 +#: ../src/ui/tools/pen-tool.cpp:1211 +#, c-format msgid "" -"Creates a new path, applies the Clone original LPE, and refers it to the " -"selected path" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" msgstr "" +"Segmento di curva: angolo %3.2f°, distanza %s; con Ctrl " +"angoli a scatti; Invio per terminare il tracciato" -#: ../src/verbs.cpp:2432 -msgid "Objects to _Marker" -msgstr "Da oggetto a deli_mitatore" +#: ../src/ui/tools/pen-tool.cpp:1212 +#, c-format +msgid "" +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" +"Segmento di linea: angolo %3.2f°, distanza %s; con Ctrl " +"angoli a scatti; Invio per terminare il tracciato" -#: ../src/verbs.cpp:2433 -msgid "Convert selection to a line marker" -msgstr "Converte la selezione in un delimitatore di tracciato" +#: ../src/ui/tools/pen-tool.cpp:1228 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle" +msgstr "" +"Maniglia curva: angolo %3.2f° lunghezza %s; Ctrl per " +"angoli a scatti" -#: ../src/verbs.cpp:2434 -msgid "Objects to Gu_ides" -msgstr "Da oggetto a gu_ida" +#: ../src/ui/tools/pen-tool.cpp:1250 +#, c-format +msgid "" +"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" +msgstr "" +"Maniglia di curva, simmetrica: angolo %3.2f°, lunghezza %s; con " +"Ctrl per angoli a scatti, Maiusc per muovere solo questa " +"maniglia" -#: ../src/verbs.cpp:2435 +#: ../src/ui/tools/pen-tool.cpp:1251 +#, c-format msgid "" -"Convert selected objects to a collection of guidelines aligned with their " -"edges" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle, with Shift to move this handle only" msgstr "" -"Converte gli oggetti selezionati in un insieme di linee guida orientate " -"secondo gli spigoli" +"Maniglia di curva: angolo %3.2f°, lunghezza %s; con Ctrl " +"per angoli a scatti, Maiusc per muovere solo questa maniglia" -#: ../src/verbs.cpp:2436 -msgid "Objects to Patter_n" -msgstr "_Da oggetto a motivo" +#: ../src/ui/tools/pen-tool.cpp:1294 +msgid "Drawing finished" +msgstr "Disegno finito" -#: ../src/verbs.cpp:2437 -msgid "Convert selection to a rectangle with tiled pattern fill" -msgstr "Converte la selezione in un rettangolo a motivo" +#: ../src/ui/tools/pencil-tool.cpp:315 +msgid "Release here to close and finish the path." +msgstr "Rilasciare qui per chiudere e terminare il tracciato." -#: ../src/verbs.cpp:2438 -msgid "Pattern to _Objects" -msgstr "Da moti_vo a oggetto" +#: ../src/ui/tools/pencil-tool.cpp:321 +msgid "Drawing a freehand path" +msgstr "Disegna un percorso a mano libera" -#: ../src/verbs.cpp:2439 -msgid "Extract objects from a tiled pattern fill" -msgstr "Estrae un oggetto da un motivo" +#: ../src/ui/tools/pencil-tool.cpp:326 +msgid "Drag to continue the path from this point." +msgstr "Trascinare per continuare il tracciato da questo punto." -#: ../src/verbs.cpp:2440 -msgid "Group to Symbol" +#. Write curves to object +#: ../src/ui/tools/pencil-tool.cpp:411 +msgid "Finishing freehand" +msgstr "Terminazione mano libera" + +#: ../src/ui/tools/pencil-tool.cpp:514 +msgid "" +"Sketch mode: holding Alt interpolates between sketched paths. " +"Release Alt to finalize." msgstr "" +"ModalitĂ  bozzetto: tenere premuto Alt per interpolare i " +"tracciati abbozzati. Rilasciare Alt per completare." -#: ../src/verbs.cpp:2441 -#, fuzzy -msgid "Convert group to a symbol" -msgstr "Converti contorno in tracciato" +#: ../src/ui/tools/pencil-tool.cpp:541 +msgid "Finishing freehand sketch" +msgstr "Terminazione mano libera" -#: ../src/verbs.cpp:2442 -msgid "Symbol to Group" +#: ../src/ui/tools/rect-tool.cpp:288 +msgid "" +"Ctrl: make square or integer-ratio rect, lock a rounded corner " +"circular" msgstr "" +"Ctrl: Crea un quadrato o un rettangolo intero, un angolo arrotondato " +"circolare" -#: ../src/verbs.cpp:2443 -msgid "Extract group from a symbol" +#: ../src/ui/tools/rect-tool.cpp:449 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" msgstr "" +"Rettangolo: %s × %s (costretto dal rapporto %d:%d); con " +"Maiusc per disegnare attorno al punto iniziale" -#: ../src/verbs.cpp:2444 -msgid "Clea_r All" -msgstr "Elimina tu_tto" - -#: ../src/verbs.cpp:2445 -msgid "Delete all objects from document" -msgstr "Elimina tutti gli oggetti dal documento" - -#: ../src/verbs.cpp:2446 -msgid "Select Al_l" -msgstr "Se_leziona tutto" +#: ../src/ui/tools/rect-tool.cpp:452 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " +"Shift to draw around the starting point" +msgstr "" +"Rettangolo: %s × %s (costretto al rapporto aureo 1.618 : 1); con " +"Maiusc per disegnare attorno al punto iniziale" -#: ../src/verbs.cpp:2447 -msgid "Select all objects or all nodes" -msgstr "Seleziona tutti gli oggetti o nodi" +#: ../src/ui/tools/rect-tool.cpp:454 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " +"Shift to draw around the starting point" +msgstr "" +"Rettangolo: %s × %s (costretto al rapporto aureo 1: 1.618); con " +"Maiusc per disegnare attorno al punto iniziale" -#: ../src/verbs.cpp:2448 -msgid "Select All in All La_yers" -msgstr "Seleziona tutto in ogni li_vello" +#: ../src/ui/tools/rect-tool.cpp:458 +#, c-format +msgid "" +"Rectangle: %s × %s; with Ctrl to make square or integer-" +"ratio rectangle; with Shift to draw around the starting point" +msgstr "" +"Rettangolo: %s × %s; con Ctrl per fare quadrati o " +"rettangoli interi; con Maiusc per disegnare attorno al punto iniziale" -#: ../src/verbs.cpp:2449 -msgid "Select all objects in all visible and unlocked layers" -msgstr "Seleziona tutti gli oggetti in tutti i livelli visibili e sbloccati" +#: ../src/ui/tools/rect-tool.cpp:481 +msgid "Create rectangle" +msgstr "Crea rettangolo" -#: ../src/verbs.cpp:2450 -#, fuzzy -msgid "Fill _and Stroke" -msgstr "_Riempimento e Contorni" +#: ../src/ui/tools/select-tool.cpp:169 +msgid "Click selection to toggle scale/rotation handles" +msgstr "" +"Clicca la selezione per alternare le maniglie di ridimensionamento/rotazione" -#: ../src/verbs.cpp:2451 +#: ../src/ui/tools/select-tool.cpp:170 #, fuzzy msgid "" -"Select all objects with the same fill and stroke as the selected objects" +"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " +"or drag around objects to select." msgstr "" -"Selezionare un oggetto con motivo di riempimento da cui estrarre " -"l'oggetto." +"Nessun oggetto selezionato. Clic, Maiusc+clic, o trascinare attorno agli " +"oggetti per selezionare." -#: ../src/verbs.cpp:2452 -#, fuzzy -msgid "_Fill Color" -msgstr "Colore uniforme" +#: ../src/ui/tools/select-tool.cpp:223 +msgid "Move canceled." +msgstr "Spostamento cancellato." -#: ../src/verbs.cpp:2453 -#, fuzzy -msgid "Select all objects with the same fill as the selected objects" +#: ../src/ui/tools/select-tool.cpp:231 +msgid "Selection canceled." +msgstr "Selezione cancellata." + +#: ../src/ui/tools/select-tool.cpp:642 +msgid "" +"Draw over objects to select them; release Alt to switch to " +"rubberband selection" msgstr "" -"Selezionare un oggetto con motivo di riempimento da cui estrarre " -"l'oggetto." +"Disegnare sugli oggetti per selezionarli; rilasciare Alt per " +"passare alla selezione ad elastico" -#: ../src/verbs.cpp:2454 -#, fuzzy -msgid "_Stroke Color" -msgstr "Imposta colore contorno" +#: ../src/ui/tools/select-tool.cpp:644 +msgid "" +"Drag around objects to select them; press Alt to switch to " +"touch selection" +msgstr "" +"Trascinare attorno agli oggetti per selezionarli; premere Alt " +"per passare alla selezione col tocco" -#: ../src/verbs.cpp:2455 -#, fuzzy -msgid "Select all objects with the same stroke as the selected objects" +#: ../src/ui/tools/select-tool.cpp:932 +msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" -"Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " -"selezionato" +"Ctrl: fare clic per selezionare nei gruppi, trascinare per muovere in " +"orizzontale o verticale" -#: ../src/verbs.cpp:2456 -#, fuzzy -msgid "Stroke St_yle" -msgstr "St_ile contorno" +#: ../src/ui/tools/select-tool.cpp:933 +msgid "Shift: click to toggle select; drag for rubberband selection" +msgstr "" +"Maiusc: fare clic per commutare selezione, trascinare per usare la " +"selezione ad elastico" -#: ../src/verbs.cpp:2457 +#: ../src/ui/tools/select-tool.cpp:934 #, fuzzy msgid "" -"Select all objects with the same stroke style (width, dash, markers) as the " -"selected objects" +"Alt: click to select under; scroll mouse-wheel to cycle-select; drag " +"to move selected or select by touch" msgstr "" -"Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " -"selezionato" +"Alt: fare clic per selezionare sotto, trascinare per muovere la " +"selezione o selezionare col tocco" -#: ../src/verbs.cpp:2458 -#, fuzzy -msgid "_Object Type" -msgstr "Tipo oggetto" +#: ../src/ui/tools/select-tool.cpp:1142 +msgid "Selected object is not a group. Cannot enter." +msgstr "L'oggetto selezionato non è un gruppo, impossibile entrarvi." -#: ../src/verbs.cpp:2459 -#, fuzzy -msgid "" -"Select all objects with the same object type (rect, arc, text, path, bitmap " -"etc) as the selected objects" -msgstr "" -"Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " -"selezionato" +#: ../src/ui/tools/spiral-tool.cpp:259 +msgid "Ctrl: snap angle" +msgstr "Ctrl: fa scattare l'angolo" -#: ../src/verbs.cpp:2460 -msgid "In_vert Selection" -msgstr "In_verti selezione" +#: ../src/ui/tools/spiral-tool.cpp:261 +msgid "Alt: lock spiral radius" +msgstr "Alt: mantiene il raggio della spirale" -#: ../src/verbs.cpp:2461 -msgid "Invert selection (unselect what is selected and select everything else)" +#: ../src/ui/tools/spiral-tool.cpp:400 +#, c-format +msgid "" +"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -"Inverte la selezione (deseleziona quel che è selezionato e seleziona tutto " -"il resto)" - -#: ../src/verbs.cpp:2462 -msgid "Invert in All Layers" -msgstr "Inverti in tutti livelli" +"Spirale: raggio %s, angolo %5g°; con Ctrl per far " +"scattare l'angolo" -#: ../src/verbs.cpp:2463 -msgid "Invert selection in all visible and unlocked layers" -msgstr "Inverte la selezione in tutti i livelli visibili e sbloccati" +#: ../src/ui/tools/spiral-tool.cpp:421 +msgid "Create spiral" +msgstr "Crea spirale" -#: ../src/verbs.cpp:2464 -msgid "Select Next" -msgstr "Seleziona successivo" +#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 +#, c-format +msgid "%i object selected" +msgid_plural "%i objects selected" +msgstr[0] "%i oggetto selezionato" +msgstr[1] "%i oggetti selezionati" -#: ../src/verbs.cpp:2465 -msgid "Select next object or node" -msgstr "Seleziona nodo o oggetto successivo" +#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 +msgid "Nothing selected" +msgstr "Nessuna selezione" -#: ../src/verbs.cpp:2466 -msgid "Select Previous" -msgstr "Seleziona precedente" +#: ../src/ui/tools/spray-tool.cpp:199 +#, fuzzy, c-format +msgid "" +"%s. Drag, click or click and scroll to spray copies of the initial " +"selection." +msgstr "Applica l'effetto desiderato alla selezione" -#: ../src/verbs.cpp:2467 -msgid "Select previous object or node" -msgstr "Seleziona nodo o oggetto precedente" +#: ../src/ui/tools/spray-tool.cpp:202 +#, fuzzy, c-format +msgid "" +"%s. Drag, click or click and scroll to spray clones of the initial " +"selection." +msgstr "Crea e serializza i cloni della selezione" -#: ../src/verbs.cpp:2468 -msgid "D_eselect" -msgstr "D_eseleziona" +#: ../src/ui/tools/spray-tool.cpp:205 +#, fuzzy, c-format +msgid "" +"%s. Drag, click or click and scroll to spray in a single path of the " +"initial selection." +msgstr "Applica l'effetto desiderato alla selezione" -#: ../src/verbs.cpp:2469 -msgid "Deselect any selected objects or nodes" -msgstr "Deseleziona tutti i nodi o gli oggetti selezionati" +#: ../src/ui/tools/spray-tool.cpp:656 +#, fuzzy +msgid "Nothing selected! Select objects to spray." +msgstr "Nessuna selezione! Selezionare gli oggetti da ritoccare." -#: ../src/verbs.cpp:2471 +#: ../src/ui/tools/spray-tool.cpp:731 ../src/widgets/spray-toolbar.cpp:166 #, fuzzy -msgid "Delete all the guides in the document" -msgstr "Elimina tutti gli oggetti dal documento" +msgid "Spray with copies" +msgstr "Spaziatura tra le copie:" -#: ../src/verbs.cpp:2472 +#: ../src/ui/tools/spray-tool.cpp:735 ../src/widgets/spray-toolbar.cpp:173 #, fuzzy -msgid "Create _Guides Around the Page" -msgstr "_Guide intorno alla pagina" +msgid "Spray with clones" +msgstr "Cerca cloni" -#: ../src/verbs.cpp:2473 -msgid "Create four guides aligned with the page borders" -msgstr "Crea quattro guide allineate con i bordi della pagina" +#: ../src/ui/tools/spray-tool.cpp:739 +#, fuzzy +msgid "Spray in single path" +msgstr "Creazione singolo punto" -#: ../src/verbs.cpp:2474 -msgid "Next path effect parameter" -msgstr "Parametro successivo effetto su tracciato" +#: ../src/ui/tools/star-tool.cpp:271 +msgid "Ctrl: snap angle; keep rays radial" +msgstr "Ctrl: fa scattare l'angolo; mantiene la direzione dei raggi" -#: ../src/verbs.cpp:2475 -#, fuzzy -msgid "Show next editable path effect parameter" -msgstr "Parametro successivo effetto su tracciato" +#: ../src/ui/tools/star-tool.cpp:417 +#, c-format +msgid "" +"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" +"Poligono: raggio %s, angolo %5g°; con Ctrl per far " +"scattare l'angolo" -#. Selection -#: ../src/verbs.cpp:2478 -msgid "Raise to _Top" -msgstr "Spos_ta in cima" +#: ../src/ui/tools/star-tool.cpp:418 +#, c-format +msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" +"Stella: raggio %s, angolo %5g°; con Ctrl per far scattare " +"l'angolo" -#: ../src/verbs.cpp:2479 -msgid "Raise selection to top" -msgstr "Sposta la selezione in cima" +#: ../src/ui/tools/star-tool.cpp:446 +msgid "Create star" +msgstr "Crea stella" -#: ../src/verbs.cpp:2480 -msgid "Lower to _Bottom" -msgstr "Sposta in fondo" +#: ../src/ui/tools/text-tool.cpp:379 +msgid "Click to edit the text, drag to select part of the text." +msgstr "" +"Fare clic per modificare il testo, trascinare per selezionarne " +"una parte." -#: ../src/verbs.cpp:2481 -msgid "Lower selection to bottom" -msgstr "Sposta la selezione in fondo" +#: ../src/ui/tools/text-tool.cpp:381 +msgid "" +"Click to edit the flowed text, drag to select part of the text." +msgstr "" +"Fare clic per modificare il testo dinamico, trascinare per " +"selezionarne una parte." -#: ../src/verbs.cpp:2482 -msgid "_Raise" -msgstr "Al_za" +#: ../src/ui/tools/text-tool.cpp:435 +msgid "Create text" +msgstr "Crea testo" -#: ../src/verbs.cpp:2483 -msgid "Raise selection one step" -msgstr "Alza la selezione di un livello" +#: ../src/ui/tools/text-tool.cpp:460 +msgid "Non-printable character" +msgstr "Carattere non stampabile" -#: ../src/verbs.cpp:2484 -msgid "_Lower" -msgstr "A_bbassa" +#: ../src/ui/tools/text-tool.cpp:475 +msgid "Insert Unicode character" +msgstr "Inserisci carattere Unicode" -#: ../src/verbs.cpp:2485 -msgid "Lower selection one step" -msgstr "Abbassa la selezione di un livello" +#: ../src/ui/tools/text-tool.cpp:510 +#, c-format +msgid "Unicode (Enter to finish): %s: %s" +msgstr "Unicode (Invio per terminare): %s, %s" -#: ../src/verbs.cpp:2487 -msgid "Group selected objects" -msgstr "Raggruppa gli oggetti selezionati" +#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 +msgid "Unicode (Enter to finish): " +msgstr "Unicode (Invio per terminare): " -#: ../src/verbs.cpp:2489 -msgid "Ungroup selected groups" -msgstr "Divide il gruppo selezionato" +#: ../src/ui/tools/text-tool.cpp:595 +#, c-format +msgid "Flowed text frame: %s × %s" +msgstr "Struttura del testo dinamico: %s × %s" -#: ../src/verbs.cpp:2491 -msgid "_Put on Path" -msgstr "Metti su tracciato" +#: ../src/ui/tools/text-tool.cpp:653 +msgid "Type text; Enter to start new line." +msgstr "Inserire il testo; Invio per iniziare una nuova riga." -#: ../src/verbs.cpp:2493 -msgid "_Remove from Path" -msgstr "_Rimuovi dal tracciato" +#: ../src/ui/tools/text-tool.cpp:664 +msgid "Flowed text is created." +msgstr "Il testo dinamico è stato creato." -#: ../src/verbs.cpp:2495 -msgid "Remove Manual _Kerns" -msgstr "Rimuovi trasformazioni" +#: ../src/ui/tools/text-tool.cpp:665 +msgid "Create flowed text" +msgstr "Crea testo dinamico" -#. TRANSLATORS: "glyph": An image used in the visual representation of characters; -#. roughly speaking, how a character looks. A font is a set of glyphs. -#: ../src/verbs.cpp:2498 -msgid "Remove all manual kerns and glyph rotations from a text object" -msgstr "Rimuove tutte le trasformazioni e rotazioni da un oggetto testuale" +#: ../src/ui/tools/text-tool.cpp:667 +msgid "" +"The frame is too small for the current font size. Flowed text not " +"created." +msgstr "" +"La struttura è troppo piccola per la dimensione del carattere " +"attuale. Testo dinamico non creato." -#: ../src/verbs.cpp:2500 -msgid "_Union" -msgstr "_Unione" +#: ../src/ui/tools/text-tool.cpp:803 +msgid "No-break space" +msgstr "Spazio non interrompibile" -#: ../src/verbs.cpp:2501 -msgid "Create union of selected paths" -msgstr "Crea un'unione dei tracciati selezionati" +#: ../src/ui/tools/text-tool.cpp:804 +msgid "Insert no-break space" +msgstr "Inserisci spazio non interrompibile" -#: ../src/verbs.cpp:2502 -msgid "_Intersection" -msgstr "_Intersezione" +#: ../src/ui/tools/text-tool.cpp:840 +msgid "Make bold" +msgstr "Rendi grassetto" -#: ../src/verbs.cpp:2503 -msgid "Create intersection of selected paths" -msgstr "Crea un'intersezione tra i percorsi selezionati" +#: ../src/ui/tools/text-tool.cpp:857 +msgid "Make italic" +msgstr "Imposta corsivo" -#: ../src/verbs.cpp:2504 -msgid "_Difference" -msgstr "_Differenza" +#: ../src/ui/tools/text-tool.cpp:895 +msgid "New line" +msgstr "A capo" -#: ../src/verbs.cpp:2505 -msgid "Create difference of selected paths (bottom minus top)" -msgstr "Differenza tra gli oggetti selezionati (superiore meno inferiore)" +#: ../src/ui/tools/text-tool.cpp:936 +msgid "Backspace" +msgstr "Backspace" -#: ../src/verbs.cpp:2506 -msgid "E_xclusion" -msgstr "E_sclusione" +#: ../src/ui/tools/text-tool.cpp:990 +msgid "Kern to the left" +msgstr "Kern a sinistra" -#: ../src/verbs.cpp:2507 -msgid "" -"Create exclusive OR of selected paths (those parts that belong to only one " -"path)" -msgstr "" -"Esegue un OR esclusivo tra i tracciati selezionati (quelle parti che " -"appartengono ad un solo tracciato)" +#: ../src/ui/tools/text-tool.cpp:1014 +msgid "Kern to the right" +msgstr "Kern a destra" -#: ../src/verbs.cpp:2508 -msgid "Di_vision" -msgstr "Di_visione" +#: ../src/ui/tools/text-tool.cpp:1038 +msgid "Kern up" +msgstr "Kern in alto" -#: ../src/verbs.cpp:2509 -msgid "Cut the bottom path into pieces" -msgstr "Taglia il tracciato inferiore in pezzi" +#: ../src/ui/tools/text-tool.cpp:1062 +msgid "Kern down" +msgstr "Kern in basso" -#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the -#. Advanced tutorial for more info -#: ../src/verbs.cpp:2512 -msgid "Cut _Path" -msgstr "Taglia _tracciato" +#: ../src/ui/tools/text-tool.cpp:1137 +msgid "Rotate counterclockwise" +msgstr "Ruota antiorario" -#: ../src/verbs.cpp:2513 -msgid "Cut the bottom path's stroke into pieces, removing fill" -msgstr "" -"Taglia il contorno del tracciato inferiore in pezzi, rimuovendo il " -"riempimento" +#: ../src/ui/tools/text-tool.cpp:1157 +msgid "Rotate clockwise" +msgstr "Ruota orario" -#. TRANSLATORS: "outset": expand a shape by offsetting the object's path, -#. i.e. by displacing it perpendicular to the path in each point. -#. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2517 -msgid "Outs_et" -msgstr "_Estrudi" +#: ../src/ui/tools/text-tool.cpp:1173 +msgid "Contract line spacing" +msgstr "Contrai spaziatura linea" -#: ../src/verbs.cpp:2518 -msgid "Outset selected paths" -msgstr "Estrude il tracciato selezionato" +#: ../src/ui/tools/text-tool.cpp:1179 +msgid "Contract letter spacing" +msgstr "Riduci spaziatura lettere" -#: ../src/verbs.cpp:2520 -msgid "O_utset Path by 1 px" -msgstr "Estr_udi Tracciato di 1px" +#: ../src/ui/tools/text-tool.cpp:1196 +msgid "Expand line spacing" +msgstr "Espandi spaziatura linea" -#: ../src/verbs.cpp:2521 -msgid "Outset selected paths by 1 px" -msgstr "Estrude il tracciato selezionato di 1px" +#: ../src/ui/tools/text-tool.cpp:1202 +msgid "Expand letter spacing" +msgstr "Espandi spaziatura lettere" -#: ../src/verbs.cpp:2523 -msgid "O_utset Path by 10 px" -msgstr "Estr_udi Tracciato di 10px" +#: ../src/ui/tools/text-tool.cpp:1332 +msgid "Paste text" +msgstr "Incolla testo" -#: ../src/verbs.cpp:2524 -msgid "Outset selected paths by 10 px" -msgstr "Estrude il tracciato selezionato di 10px" +#: ../src/ui/tools/text-tool.cpp:1583 +#, fuzzy, c-format +msgid "" +"Type or edit flowed text (%d character%s); Enter to start new " +"paragraph." +msgid_plural "" +"Type or edit flowed text (%d characters%s); Enter to start new " +"paragraph." +msgstr[0] "" +"Inserire o modificare il testo dinamico (%d caratteri);Invio per " +"iniziare un nuovo paragrafo." +msgstr[1] "" +"Inserire o modificare il testo dinamico (%d caratteri);Invio per " +"iniziare un nuovo paragrafo." -#. TRANSLATORS: "inset": contract a shape by offsetting the object's path, -#. i.e. by displacing it perpendicular to the path in each point. -#. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2528 -msgid "I_nset" -msgstr "I_ntrudi" +#: ../src/ui/tools/text-tool.cpp:1585 +#, fuzzy, c-format +msgid "Type or edit text (%d character%s); Enter to start new line." +msgid_plural "" +"Type or edit text (%d characters%s); Enter to start new line." +msgstr[0] "" +"Inserire o modificare il testo (%d caratteri); Invio per iniziare una " +"nuova riga." +msgstr[1] "" +"Inserire o modificare il testo (%d caratteri); Invio per iniziare una " +"nuova riga." -#: ../src/verbs.cpp:2529 -msgid "Inset selected paths" -msgstr "Intrude il tracciato selezionato" +#: ../src/ui/tools/text-tool.cpp:1695 +msgid "Type text" +msgstr "Inserimento testo" -#: ../src/verbs.cpp:2531 -msgid "I_nset Path by 1 px" -msgstr "I_ntrudi Tracciato di 1px" +#: ../src/ui/tools/tool-base.cpp:703 +#, fuzzy +msgid "Space+mouse move to pan canvas" +msgstr "Spazio+trascinamento per muovere la tela" -#: ../src/verbs.cpp:2532 -msgid "Inset selected paths by 1 px" -msgstr "Intrude il tracciato selezionato di 1px" +#: ../src/ui/tools/tweak-tool.cpp:174 +#, c-format +msgid "%s. Drag to move." +msgstr "%s. Trascinare per spostare." -#: ../src/verbs.cpp:2534 -msgid "I_nset Path by 10 px" -msgstr "I_ntrudi Tracciato di 10px" +#: ../src/ui/tools/tweak-tool.cpp:178 +#, c-format +msgid "%s. Drag or click to move in; with Shift to move out." +msgstr "" +"%s. Trascinare o fare clic per spostare dentro; con Maiusc per " +"spostare fuori." -#: ../src/verbs.cpp:2535 -msgid "Inset selected paths by 10 px" -msgstr "Intrude il tracciato selezionato di 10px" +#: ../src/ui/tools/tweak-tool.cpp:186 +#, c-format +msgid "%s. Drag or click to move randomly." +msgstr "%s. Trascinare o fare clic per spostare casualmente." -#: ../src/verbs.cpp:2537 -msgid "D_ynamic Offset" -msgstr "Proiezione dina_mica" +#: ../src/ui/tools/tweak-tool.cpp:190 +#, c-format +msgid "%s. Drag or click to scale down; with Shift to scale up." +msgstr "" +"%s. Trascinare o fare clic per rimpicciolire; con Maiusc per " +"ingrandire." -#: ../src/verbs.cpp:2537 -msgid "Create a dynamic offset object" -msgstr "Crea una proiezione dinamica" +#: ../src/ui/tools/tweak-tool.cpp:198 +#, c-format +msgid "" +"%s. Drag or click to rotate clockwise; with Shift, " +"counterclockwise." +msgstr "" +"%s. Trascinare o fare clic per ruotare in senso orario; con Maiusc, " +"in senso antiorario." -#: ../src/verbs.cpp:2539 -msgid "_Linked Offset" -msgstr "Proiezione co_llegata" +#: ../src/ui/tools/tweak-tool.cpp:206 +#, c-format +msgid "%s. Drag or click to duplicate; with Shift, delete." +msgstr "" +"%s. Trascinare o fare clic per duplicare; con Maiusc, per " +"eliminare." -#: ../src/verbs.cpp:2540 -msgid "Create a dynamic offset object linked to the original path" -msgstr "Crea una proiezione dinamica del tracciato originale" +#: ../src/ui/tools/tweak-tool.cpp:214 +#, c-format +msgid "%s. Drag to push paths." +msgstr "%s. Trascinare per spingere il tracciato." -#: ../src/verbs.cpp:2542 -msgid "_Stroke to Path" -msgstr "Da _linea a tracciato" +#: ../src/ui/tools/tweak-tool.cpp:218 +#, c-format +msgid "%s. Drag or click to inset paths; with Shift to outset." +msgstr "" +"%s. Trascinare o fare clic per intrudere tracciati; con Maiusc, per " +"estrudere." -#: ../src/verbs.cpp:2543 -msgid "Convert selected object's stroke to paths" -msgstr "Converte in tracciati i contorni degli oggetti selezionati" +#: ../src/ui/tools/tweak-tool.cpp:226 +#, c-format +msgid "%s. Drag or click to attract paths; with Shift to repel." +msgstr "" +"%s. Trascinare o fare clic per attrarre i tracciati; con Maiusc per " +"repellere." -#: ../src/verbs.cpp:2544 -msgid "Si_mplify" -msgstr "Se_mplifica" +#: ../src/ui/tools/tweak-tool.cpp:234 +#, c-format +msgid "%s. Drag or click to roughen paths." +msgstr "%s, Trascinare o fare clic per increspare i tracciati." -#: ../src/verbs.cpp:2545 -msgid "Simplify selected paths (remove extra nodes)" -msgstr "Semplifica il tracciato selezionato (rimuovendo nodi superflui)" +#: ../src/ui/tools/tweak-tool.cpp:238 +#, c-format +msgid "%s. Drag or click to paint objects with color." +msgstr "" +"%s. Trascinare o fare clic per dipingere un oggetto con un colore." -#: ../src/verbs.cpp:2546 -msgid "_Reverse" -msgstr "Inve_rti" +#: ../src/ui/tools/tweak-tool.cpp:242 +#, c-format +msgid "%s. Drag or click to randomize colors." +msgstr "%s. Trascinare o fare clic per rendere casuali i colori." -#: ../src/verbs.cpp:2547 -msgid "Reverse the direction of selected paths (useful for flipping markers)" +#: ../src/ui/tools/tweak-tool.cpp:246 +#, c-format +msgid "" +"%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -"Inverte la direzione dei tracciati selezionati (utile per riflettere i " -"delimitatori)" +"%s. Trascinare o fare clic per aumentare la sfocatura; con Maiusc, " +"per diminuire." + +#: ../src/ui/tools/tweak-tool.cpp:1193 +msgid "Nothing selected! Select objects to tweak." +msgstr "Nessuna selezione! Selezionare gli oggetti da ritoccare." + +#: ../src/ui/tools/tweak-tool.cpp:1227 +msgid "Move tweak" +msgstr "Ritocco spostamento" -#: ../src/verbs.cpp:2550 -msgid "Create one or more paths from a bitmap by tracing it" -msgstr "Crea uno o piĂą tracciati da una bitmap tramite la vettorizzazione" +#: ../src/ui/tools/tweak-tool.cpp:1231 +msgid "Move in/out tweak" +msgstr "Ritocco sposta dentro/fuori" -#: ../src/verbs.cpp:2551 -#, fuzzy -msgid "Trace Pixel Art..." -msgstr "Ve_ttorizza bitmap..." +#: ../src/ui/tools/tweak-tool.cpp:1235 +msgid "Move jitter tweak" +msgstr "Ritocco spostamento sfalsato" -#: ../src/verbs.cpp:2552 -msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" -msgstr "" +#: ../src/ui/tools/tweak-tool.cpp:1239 +msgid "Scale tweak" +msgstr "Ritocco ridimensionamento" -#: ../src/verbs.cpp:2553 -#, fuzzy -msgid "Make a _Bitmap Copy" -msgstr "Crea una copia bit_map" +#: ../src/ui/tools/tweak-tool.cpp:1243 +msgid "Rotate tweak" +msgstr "Ritocco rotazione" -#: ../src/verbs.cpp:2554 -msgid "Export selection to a bitmap and insert it into document" -msgstr "Esporta la selezione come bitmap e la inserisce nel documento" +#: ../src/ui/tools/tweak-tool.cpp:1247 +msgid "Duplicate/delete tweak" +msgstr "Ritocco duplicazione/eliminazione" -#: ../src/verbs.cpp:2555 -msgid "_Combine" -msgstr "_Combina" +#: ../src/ui/tools/tweak-tool.cpp:1251 +msgid "Push path tweak" +msgstr "Ritocco spingi tracciato" -#: ../src/verbs.cpp:2556 -msgid "Combine several paths into one" -msgstr "Combina diversi tracciati in uno unico" +#: ../src/ui/tools/tweak-tool.cpp:1255 +msgid "Shrink/grow path tweak" +msgstr "Ritocco riduzione/accrescimento" -#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the -#. Advanced tutorial for more info -#: ../src/verbs.cpp:2559 -msgid "Break _Apart" -msgstr "Sep_ara" +#: ../src/ui/tools/tweak-tool.cpp:1259 +msgid "Attract/repel path tweak" +msgstr "Ritocco attrazione/repulsione" -#: ../src/verbs.cpp:2560 -msgid "Break selected paths into subpaths" -msgstr "Separa il tracciato selezionato in sotto-tracciati" +#: ../src/ui/tools/tweak-tool.cpp:1263 +msgid "Roughen path tweak" +msgstr "Ritocco increspatura" -#: ../src/verbs.cpp:2561 -#, fuzzy -msgid "_Arrange..." -msgstr "Ordinamento" +#: ../src/ui/tools/tweak-tool.cpp:1267 +msgid "Color paint tweak" +msgstr "Ritocco tinta" -#: ../src/verbs.cpp:2562 -#, fuzzy -msgid "Arrange selected objects in a table or circle" -msgstr "Dispone gli oggetti selezionati in una tabella" +#: ../src/ui/tools/tweak-tool.cpp:1271 +msgid "Color jitter tweak" +msgstr "Ritocco sfalsamento colore" -#. Layer -#: ../src/verbs.cpp:2564 -msgid "_Add Layer..." -msgstr "_Aggiungi livello..." +#: ../src/ui/tools/tweak-tool.cpp:1275 +msgid "Blur tweak" +msgstr "Ritocco sfocatura" -#: ../src/verbs.cpp:2565 -msgid "Create a new layer" -msgstr "Crea un nuovo livello" +#: ../src/ui/widget/filter-effect-chooser.cpp:27 +msgid "Blur (%)" +msgstr "Sfocatura (%)" -#: ../src/verbs.cpp:2566 -msgid "Re_name Layer..." -msgstr "Rinomi_na livello..." +#: ../src/ui/widget/layer-selector.cpp:118 +msgid "Toggle current layer visibility" +msgstr "Imposta la visibilitĂ  del livello attuale" -#: ../src/verbs.cpp:2567 -msgid "Rename the current layer" -msgstr "Rinomina il livello attuale" +#: ../src/ui/widget/layer-selector.cpp:139 +msgid "Lock or unlock current layer" +msgstr "Blocca o sblocca il livello attuale" -#: ../src/verbs.cpp:2568 -msgid "Switch to Layer Abov_e" -msgstr "Passa al livello superiore" +#: ../src/ui/widget/layer-selector.cpp:142 +msgid "Current layer" +msgstr "Livello attuale" -#: ../src/verbs.cpp:2569 -msgid "Switch to the layer above the current" -msgstr "Passa al livello superiore all'attuale" +#: ../src/ui/widget/layer-selector.cpp:583 +msgid "(root)" +msgstr "(root)" -#: ../src/verbs.cpp:2570 -msgid "Switch to Layer Belo_w" -msgstr "Passa al livello inferiore" +#: ../src/ui/widget/licensor.cpp:40 +msgid "Proprietary" +msgstr "Proprietario" -#: ../src/verbs.cpp:2571 -msgid "Switch to the layer below the current" -msgstr "Passa al livello inferiore all'attuale" +#: ../src/ui/widget/licensor.cpp:43 +msgid "MetadataLicence|Other" +msgstr "Altro" -#: ../src/verbs.cpp:2572 -msgid "Move Selection to Layer Abo_ve" -msgstr "Sposta selezione al li_vello superiore" +#: ../src/ui/widget/object-composite-settings.cpp:67 +#: ../src/ui/widget/selected-style.cpp:1095 +#: ../src/ui/widget/selected-style.cpp:1096 +msgid "Opacity (%)" +msgstr "OpacitĂ  (%)" -#: ../src/verbs.cpp:2573 -msgid "Move selection to the layer above the current" -msgstr "Sposta la selezione al livello superiore all'attuale" +#: ../src/ui/widget/object-composite-settings.cpp:180 +msgid "Change blur" +msgstr "Modifica sfocatura" -#: ../src/verbs.cpp:2574 -msgid "Move Selection to Layer Bel_ow" -msgstr "Sposta selezione al li_vello inferiore" +#: ../src/ui/widget/object-composite-settings.cpp:220 +#: ../src/ui/widget/selected-style.cpp:927 +#: ../src/ui/widget/selected-style.cpp:1221 +msgid "Change opacity" +msgstr "Modifica opacitĂ " -#: ../src/verbs.cpp:2575 -msgid "Move selection to the layer below the current" -msgstr "Sposta la selezione al livello inferiore all'attuale" +#: ../src/ui/widget/page-sizer.cpp:235 +msgid "U_nits:" +msgstr "U_nitĂ :" -#: ../src/verbs.cpp:2576 -#, fuzzy -msgid "Move Selection to Layer..." -msgstr "Sposta selezione al li_vello superiore" +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "Width of paper" +msgstr "Larghezza del foglio" -#: ../src/verbs.cpp:2578 -msgid "Layer to _Top" -msgstr "Spos_ta livello in cima" +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "Height of paper" +msgstr "Altezza del foglio" -#: ../src/verbs.cpp:2579 -msgid "Raise the current layer to the top" -msgstr "Sposta il livello attuale in cima" +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "T_op margin:" +msgstr "Margine s_uperiore:" -#: ../src/verbs.cpp:2580 -msgid "Layer to _Bottom" -msgstr "Sposta livello in fon_do" +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "Top margin" +msgstr "Margine superiore" -#: ../src/verbs.cpp:2581 -msgid "Lower the current layer to the bottom" -msgstr "Sposta il livello attuale in fondo" +#: ../src/ui/widget/page-sizer.cpp:239 +msgid "L_eft:" +msgstr "S_inistro:" -#: ../src/verbs.cpp:2582 -msgid "_Raise Layer" -msgstr "Alza li_vello" +#: ../src/ui/widget/page-sizer.cpp:239 +msgid "Left margin" +msgstr "Margine sinistro" -#: ../src/verbs.cpp:2583 -msgid "Raise the current layer" -msgstr "Alza il livello attuale" +#: ../src/ui/widget/page-sizer.cpp:240 +msgid "Ri_ght:" +msgstr "D_estro:" -#: ../src/verbs.cpp:2584 -msgid "_Lower Layer" -msgstr "Abbassa _livello" +#: ../src/ui/widget/page-sizer.cpp:240 +msgid "Right margin" +msgstr "Margine destro" -#: ../src/verbs.cpp:2585 -msgid "Lower the current layer" -msgstr "Abbassa il livello attuale" +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Botto_m:" +msgstr "Inferi_ore:" -#: ../src/verbs.cpp:2586 -#, fuzzy -msgid "D_uplicate Current Layer" -msgstr "Duplica livello attuale" +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Bottom margin" +msgstr "Margine inferiore" -#: ../src/verbs.cpp:2587 -msgid "Duplicate an existing layer" -msgstr "Duplica un livello esistente" +#: ../src/ui/widget/page-sizer.cpp:296 +msgid "Orientation:" +msgstr "Orientamento:" -#: ../src/verbs.cpp:2588 -msgid "_Delete Current Layer" -msgstr "Elimina livello a_ttuale" +#: ../src/ui/widget/page-sizer.cpp:299 +msgid "_Landscape" +msgstr "Orizzonta_le" -#: ../src/verbs.cpp:2589 -msgid "Delete the current layer" -msgstr "Elimina il livello attuale" +#: ../src/ui/widget/page-sizer.cpp:304 +msgid "_Portrait" +msgstr "Ver_ticale" -#: ../src/verbs.cpp:2590 -msgid "_Show/hide other layers" -msgstr "Mostra/nascondi altri livelli" +#. ## Set up custom size frame +#: ../src/ui/widget/page-sizer.cpp:322 +msgid "Custom size" +msgstr "Personalizzata" -#: ../src/verbs.cpp:2591 -msgid "Solo the current layer" -msgstr "Solamente il livello attuale" +#: ../src/ui/widget/page-sizer.cpp:367 +msgid "Resi_ze page to content..." +msgstr "Ridi_mensiona pagina a contenuto..." -#: ../src/verbs.cpp:2592 -#, fuzzy -msgid "_Show all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/widget/page-sizer.cpp:419 +msgid "_Resize page to drawing or selection" +msgstr "_Ridimensiona la pagina al disegno o alla selezione" -#: ../src/verbs.cpp:2593 -#, fuzzy -msgid "Show all the layers" -msgstr "Mostra/nascondi altri livelli" +#: ../src/ui/widget/page-sizer.cpp:420 +msgid "" +"Resize the page to fit the current selection, or the entire drawing if there " +"is no selection" +msgstr "" +"Ridimensione la pagina per adattarsi alla selezione attuale, o all'intero " +"disegno se non è stato selezionato nulla" -#: ../src/verbs.cpp:2594 -#, fuzzy -msgid "_Hide all layers" -msgstr "Nascondi livello" +#: ../src/ui/widget/page-sizer.cpp:488 +msgid "Set page size" +msgstr "Imposta dimensione pagina" -#: ../src/verbs.cpp:2595 -#, fuzzy -msgid "Hide all the layers" -msgstr "Nascondi livello" +#: ../src/ui/widget/panel.cpp:116 +msgid "List" +msgstr "Elenco" -#: ../src/verbs.cpp:2596 -#, fuzzy -msgid "_Lock all layers" -msgstr "Seleziona tutto in ogni livello" +#: ../src/ui/widget/panel.cpp:139 +msgctxt "Swatches" +msgid "Size" +msgstr "Dimensione" -#: ../src/verbs.cpp:2597 -#, fuzzy -msgid "Lock all the layers" -msgstr "Mostra/nascondi altri livelli" +#: ../src/ui/widget/panel.cpp:143 +msgctxt "Swatches height" +msgid "Tiny" +msgstr "Minuscola" -#: ../src/verbs.cpp:2598 -#, fuzzy -msgid "Lock/Unlock _other layers" -msgstr "Blocca o sblocca il livello attuale" +#: ../src/ui/widget/panel.cpp:144 +msgctxt "Swatches height" +msgid "Small" +msgstr "Piccola" -#: ../src/verbs.cpp:2599 -#, fuzzy -msgid "Lock all the other layers" -msgstr "Mostra/nascondi altri livelli" +#: ../src/ui/widget/panel.cpp:145 +msgctxt "Swatches height" +msgid "Medium" +msgstr "Media" -#: ../src/verbs.cpp:2600 -#, fuzzy -msgid "_Unlock all layers" -msgstr "Sblocca livello" +#: ../src/ui/widget/panel.cpp:146 +msgctxt "Swatches height" +msgid "Large" +msgstr "Grande" -#: ../src/verbs.cpp:2601 -#, fuzzy -msgid "Unlock all the layers" -msgstr "Mostra/nascondi altri livelli" +#: ../src/ui/widget/panel.cpp:147 +msgctxt "Swatches height" +msgid "Huge" +msgstr "Enorme" -#: ../src/verbs.cpp:2602 -#, fuzzy -msgid "_Lock/Unlock Current Layer" -msgstr "Blocca o sblocca il livello attuale" +#: ../src/ui/widget/panel.cpp:169 +msgctxt "Swatches" +msgid "Width" +msgstr "Larghezza" -#: ../src/verbs.cpp:2603 -#, fuzzy -msgid "Toggle lock on current layer" -msgstr "Solamente il livello attuale" +#: ../src/ui/widget/panel.cpp:173 +msgctxt "Swatches width" +msgid "Narrower" +msgstr "PiĂą stretta" -#: ../src/verbs.cpp:2604 -#, fuzzy -msgid "_Show/hide Current Layer" -msgstr "Mostra/nascondi altri livelli" +#: ../src/ui/widget/panel.cpp:174 +msgctxt "Swatches width" +msgid "Narrow" +msgstr "Stretta" -#: ../src/verbs.cpp:2605 -#, fuzzy -msgid "Toggle visibility of current layer" -msgstr "Solamente il livello attuale" +#: ../src/ui/widget/panel.cpp:175 +msgctxt "Swatches width" +msgid "Medium" +msgstr "Media" -#. Object -#: ../src/verbs.cpp:2608 -#, fuzzy -msgid "Rotate _90° CW" -msgstr "Ruota di _90° orari" +#: ../src/ui/widget/panel.cpp:176 +msgctxt "Swatches width" +msgid "Wide" +msgstr "Larga" -#. This is shared between tooltips and statusbar, so they -#. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2611 -msgid "Rotate selection 90° clockwise" -msgstr "Ruota la selezione di 90° orari" +#: ../src/ui/widget/panel.cpp:177 +msgctxt "Swatches width" +msgid "Wider" +msgstr "PiĂą larga" -#: ../src/verbs.cpp:2612 -#, fuzzy -msgid "Rotate 9_0° CCW" -msgstr "Ruota di 9_0° anti-orari" +#: ../src/ui/widget/panel.cpp:207 +msgctxt "Swatches" +msgid "Border" +msgstr "Bordo" -#. This is shared between tooltips and statusbar, so they -#. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2615 -msgid "Rotate selection 90° counter-clockwise" -msgstr "Ruota la selezione di 90° anti-orari" +#: ../src/ui/widget/panel.cpp:211 +msgctxt "Swatches border" +msgid "None" +msgstr "Nessuno" -#: ../src/verbs.cpp:2616 -msgid "Remove _Transformations" -msgstr "Rimuovi _trasformazioni" +#: ../src/ui/widget/panel.cpp:212 +msgctxt "Swatches border" +msgid "Solid" +msgstr "Solido" -#: ../src/verbs.cpp:2617 -msgid "Remove transformations from object" -msgstr "Rimuove le trasformazioni dall'oggetto" +#: ../src/ui/widget/panel.cpp:213 +msgctxt "Swatches border" +msgid "Wide" +msgstr "Largo" -#: ../src/verbs.cpp:2618 -msgid "_Object to Path" -msgstr "Da _oggetto a tracciato" +#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed +#: ../src/ui/widget/panel.cpp:244 +msgctxt "Swatches" +msgid "Wrap" +msgstr "Avvolgi" -#: ../src/verbs.cpp:2619 -msgid "Convert selected object to path" -msgstr "Converte in tracciati gli oggetti selezionati" +#: ../src/ui/widget/preferences-widget.cpp:802 +msgid "_Browse..." +msgstr "_Sfoglia..." -#: ../src/verbs.cpp:2620 -msgid "_Flow into Frame" -msgstr "_Fluisci in struttura" +#: ../src/ui/widget/preferences-widget.cpp:888 +msgid "Select a bitmap editor" +msgstr "Seleziona un editor bitmap" -#: ../src/verbs.cpp:2621 +#: ../src/ui/widget/random.cpp:84 msgid "" -"Put text into a frame (path or shape), creating a flowed text linked to the " -"frame object" +"Reseed the random number generator; this creates a different sequence of " +"random numbers." msgstr "" -"Mette il testo in una cornice (tracciato o forma), creando un testo dinamico " -"collegato alla cornice" +"Reinizializza il generatore di numeri casuali; serve a creare una sequenza " +"di numeri casuali diversa." -#: ../src/verbs.cpp:2622 -msgid "_Unflow" -msgstr "Spe_zza" +#: ../src/ui/widget/rendering-options.cpp:33 +msgid "Backend" +msgstr "Terminale" -#: ../src/verbs.cpp:2623 -msgid "Remove text from frame (creates a single-line text object)" -msgstr "" -"Rimuove il testo dalla struttura (crea un oggetto testuale su una riga)" +#: ../src/ui/widget/rendering-options.cpp:34 +msgid "Vector" +msgstr "Vettore" -#: ../src/verbs.cpp:2624 -msgid "_Convert to Text" -msgstr "_Converti in testo" +#: ../src/ui/widget/rendering-options.cpp:35 +msgid "Bitmap" +msgstr "Bitmap" -#: ../src/verbs.cpp:2625 -msgid "Convert flowed text to regular text object (preserves appearance)" -msgstr "" -"Converte in testo semplice il testo dinamico (mantiene le caratteristiche)" +#: ../src/ui/widget/rendering-options.cpp:36 +msgid "Bitmap options" +msgstr "Opzioni bitmap" -#: ../src/verbs.cpp:2627 -msgid "Flip _Horizontal" -msgstr "Rifletti _orizzontalmente" +#: ../src/ui/widget/rendering-options.cpp:38 +msgid "Preferred resolution of rendering, in dots per inch." +msgstr "Risoluzione preferita per il rendering, in punti per pollice." -#: ../src/verbs.cpp:2627 -msgid "Flip selected objects horizontally" -msgstr "Riflette orizzontalmente gli oggetti selezionati" +#: ../src/ui/widget/rendering-options.cpp:47 +msgid "" +"Render using Cairo vector operations. The resulting image is usually " +"smaller in file size and can be arbitrarily scaled, but some filter effects " +"will not be correctly rendered." +msgstr "" +"Esporta usando gli operatori vettoriali Cairo. L'immagine risultante " +"solitamente è di dimensioni piĂą contenute e può essere ridimensionata a " +"piacere, ma alcuni filtri potrebbero non venire correttamente rappresentati." -#: ../src/verbs.cpp:2630 -msgid "Flip _Vertical" -msgstr "Rifletti _verticalmente" +#: ../src/ui/widget/rendering-options.cpp:52 +msgid "" +"Render everything as bitmap. The resulting image is usually larger in file " +"size and cannot be arbitrarily scaled without quality loss, but all objects " +"will be rendered exactly as displayed." +msgstr "" +"Esporta tutto come bitmap. L'immagine risultante solitamente è di dimensioni " +"maggiori e non può essere ridimensionata senza una perdita di qualitĂ , ma " +"tutti gli oggetti verranno disegnati esattamente come vengono mostrati." -#: ../src/verbs.cpp:2630 -msgid "Flip selected objects vertically" -msgstr "Riflette verticalmente gli oggetti selezionati" +#: ../src/ui/widget/selected-style.cpp:130 +#: ../src/ui/widget/style-swatch.cpp:127 +msgid "Fill:" +msgstr "Riempimento:" -#: ../src/verbs.cpp:2633 -msgid "Apply mask to selection (using the topmost object as mask)" -msgstr "" -"Applica la maschera alla selezione (usando come maschera l'oggetto superiore)" +#: ../src/ui/widget/selected-style.cpp:132 +msgid "O:" +msgstr "O:" -#: ../src/verbs.cpp:2635 -msgid "Edit mask" -msgstr "Modifica maschera" +#: ../src/ui/widget/selected-style.cpp:177 +msgid "N/A" +msgstr "N/D" -#: ../src/verbs.cpp:2636 ../src/verbs.cpp:2642 -msgid "_Release" -msgstr "_Rimuovi" +#: ../src/ui/widget/selected-style.cpp:180 +#: ../src/ui/widget/selected-style.cpp:1088 +#: ../src/ui/widget/selected-style.cpp:1089 +#: ../src/widgets/gradient-toolbar.cpp:162 +msgid "Nothing selected" +msgstr "Nessuna selezione" -#: ../src/verbs.cpp:2637 -msgid "Remove mask from selection" -msgstr "Rimuovi la maschera dalla selezione" +#: ../src/ui/widget/selected-style.cpp:182 +#: ../src/ui/widget/style-swatch.cpp:320 +msgctxt "Fill and stroke" +msgid "None" +msgstr "Nessuno" -#: ../src/verbs.cpp:2639 -msgid "" -"Apply clipping path to selection (using the topmost object as clipping path)" -msgstr "" -"Applica il fissaggio alla selezione (usando l'oggetto piĂą alto come " -"tracciato di fissaggio)" +#: ../src/ui/widget/selected-style.cpp:185 +#: ../src/ui/widget/style-swatch.cpp:322 +msgctxt "Fill and stroke" +msgid "No fill" +msgstr "Nessun riempimento" -#: ../src/verbs.cpp:2641 -msgid "Edit clipping path" -msgstr "Modifica fissaggio" +#: ../src/ui/widget/selected-style.cpp:185 +#: ../src/ui/widget/style-swatch.cpp:322 +msgctxt "Fill and stroke" +msgid "No stroke" +msgstr "Nessun contorno" -#: ../src/verbs.cpp:2643 -msgid "Remove clipping path from selection" -msgstr "Rimuove il fissaggio dalla selezione" +#: ../src/ui/widget/selected-style.cpp:187 +#: ../src/ui/widget/style-swatch.cpp:301 ../src/widgets/paint-selector.cpp:242 +msgid "Pattern" +msgstr "Motivo" -#. Tools -#: ../src/verbs.cpp:2646 -#, fuzzy -msgctxt "ContextVerb" -msgid "Select" -msgstr "Seleziona" +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:303 +msgid "Pattern fill" +msgstr "Motivo" -#: ../src/verbs.cpp:2647 -msgid "Select and transform objects" -msgstr "Seleziona e trasforma oggetti" +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:303 +msgid "Pattern stroke" +msgstr "Motivo del contorno" -#: ../src/verbs.cpp:2648 -#, fuzzy -msgctxt "ContextVerb" -msgid "Node Edit" -msgstr "Modifica nodo" +#: ../src/ui/widget/selected-style.cpp:192 +msgid "L" +msgstr "L" -#: ../src/verbs.cpp:2649 -msgid "Edit paths by nodes" -msgstr "Modifica tracciati dai nodi" +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:295 +msgid "Linear gradient fill" +msgstr "Gradiente lineare di riempimento" -#: ../src/verbs.cpp:2650 -#, fuzzy -msgctxt "ContextVerb" -msgid "Tweak" -msgstr "Ritocco" +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:295 +msgid "Linear gradient stroke" +msgstr "Gradiente lineare di contorno" -#: ../src/verbs.cpp:2651 -msgid "Tweak objects by sculpting or painting" -msgstr "Ritocca oggetti scolpendoli o ridipingendoli" +#: ../src/ui/widget/selected-style.cpp:202 +msgid "R" +msgstr "R" -#: ../src/verbs.cpp:2652 -#, fuzzy -msgctxt "ContextVerb" -msgid "Spray" -msgstr "Spirale" +#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/style-swatch.cpp:299 +msgid "Radial gradient fill" +msgstr "Gradiente radiale di riempimento" -#: ../src/verbs.cpp:2653 -#, fuzzy -msgid "Spray objects by sculpting or painting" -msgstr "Ritocca oggetti scolpendoli o ridipingendoli" +#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/style-swatch.cpp:299 +msgid "Radial gradient stroke" +msgstr "Gradiente radiale di contorno" -#: ../src/verbs.cpp:2654 -#, fuzzy -msgctxt "ContextVerb" -msgid "Rectangle" -msgstr "Rettangolo" +#: ../src/ui/widget/selected-style.cpp:212 +msgid "Different" +msgstr "Differente" -#: ../src/verbs.cpp:2655 -msgid "Create rectangles and squares" -msgstr "Crea rettangoli e quadrati" +#: ../src/ui/widget/selected-style.cpp:215 +msgid "Different fills" +msgstr "Riempimento differente" -#: ../src/verbs.cpp:2656 -#, fuzzy -msgctxt "ContextVerb" -msgid "3D Box" -msgstr "Solido 3D" +#: ../src/ui/widget/selected-style.cpp:215 +msgid "Different strokes" +msgstr "Contorno differente" -#: ../src/verbs.cpp:2657 -msgid "Create 3D boxes" -msgstr "Crea solido 3D" +#: ../src/ui/widget/selected-style.cpp:217 +#: ../src/ui/widget/style-swatch.cpp:325 +msgid "Unset" +msgstr "Non impostato" -#: ../src/verbs.cpp:2658 -#, fuzzy -msgctxt "ContextVerb" -msgid "Ellipse" -msgstr "Ellisse" +#. TRANSLATORS COMMENT: unset is a verb here +#: ../src/ui/widget/selected-style.cpp:220 +#: ../src/ui/widget/selected-style.cpp:278 +#: ../src/ui/widget/selected-style.cpp:559 +#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +msgid "Unset fill" +msgstr "Disattiva riempimento" -#: ../src/verbs.cpp:2659 -msgid "Create circles, ellipses, and arcs" -msgstr "Crea cerchi, ellissi e archi" +#: ../src/ui/widget/selected-style.cpp:220 +#: ../src/ui/widget/selected-style.cpp:278 +#: ../src/ui/widget/selected-style.cpp:575 +#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +msgid "Unset stroke" +msgstr "Disattiva contorno" -#: ../src/verbs.cpp:2660 -#, fuzzy -msgctxt "ContextVerb" -msgid "Star" -msgstr "Stella" +#: ../src/ui/widget/selected-style.cpp:223 +msgid "Flat color fill" +msgstr "Riempimento con colore uniforme" -#: ../src/verbs.cpp:2661 -msgid "Create stars and polygons" -msgstr "Crea stelle e poligoni" +#: ../src/ui/widget/selected-style.cpp:223 +msgid "Flat color stroke" +msgstr "Contorno con colore uniforme" -#: ../src/verbs.cpp:2662 -#, fuzzy -msgctxt "ContextVerb" -msgid "Spiral" -msgstr "Spirale" +#. TRANSLATOR COMMENT: A means "Averaged" +#: ../src/ui/widget/selected-style.cpp:226 +msgid "a" +msgstr "a" -#: ../src/verbs.cpp:2663 -msgid "Create spirals" -msgstr "Crea spirali" +#: ../src/ui/widget/selected-style.cpp:229 +msgid "Fill is averaged over selected objects" +msgstr "Il riempimento è mediato tra gli oggetti selezionati" -#: ../src/verbs.cpp:2664 -#, fuzzy -msgctxt "ContextVerb" -msgid "Pencil" -msgstr "Pastello" +#: ../src/ui/widget/selected-style.cpp:229 +msgid "Stroke is averaged over selected objects" +msgstr "Il contorno è mediato tra gli oggetti selezionati" -#: ../src/verbs.cpp:2665 -msgid "Draw freehand lines" -msgstr "Disegna linee a mano libera" +#. TRANSLATOR COMMENT: M means "Multiple" +#: ../src/ui/widget/selected-style.cpp:232 +msgid "m" +msgstr "m" -#: ../src/verbs.cpp:2666 -#, fuzzy -msgctxt "ContextVerb" -msgid "Pen" -msgstr "Penna" +#: ../src/ui/widget/selected-style.cpp:235 +msgid "Multiple selected objects have the same fill" +msgstr "PiĂą oggetti selezionati hanno lo stesso riempimento" -#: ../src/verbs.cpp:2667 -msgid "Draw Bezier curves and straight lines" -msgstr "Disegna tracciati e linee dritte" +#: ../src/ui/widget/selected-style.cpp:235 +msgid "Multiple selected objects have the same stroke" +msgstr "PiĂą oggetti selezionati hanno lo stesso contorno" -#: ../src/verbs.cpp:2668 -#, fuzzy -msgctxt "ContextVerb" -msgid "Calligraphy" -msgstr "Pennino" +#: ../src/ui/widget/selected-style.cpp:237 +msgid "Edit fill..." +msgstr "Modifica riempimento..." -#: ../src/verbs.cpp:2669 -msgid "Draw calligraphic or brush strokes" -msgstr "Crea linee calligrafiche o pennellate" +#: ../src/ui/widget/selected-style.cpp:237 +msgid "Edit stroke..." +msgstr "Modifica contorno..." -#: ../src/verbs.cpp:2671 -msgid "Create and edit text objects" -msgstr "Crea e modifica gli oggetti testuali" +#: ../src/ui/widget/selected-style.cpp:241 +msgid "Last set color" +msgstr "Ultimo colore impostato" -#: ../src/verbs.cpp:2672 -#, fuzzy -msgctxt "ContextVerb" -msgid "Gradient" -msgstr "Gradiente" +#: ../src/ui/widget/selected-style.cpp:245 +msgid "Last selected color" +msgstr "Ultimo colore selezionato" -#: ../src/verbs.cpp:2673 -msgid "Create and edit gradients" -msgstr "Crea e modifica i gradienti" +#: ../src/ui/widget/selected-style.cpp:261 +msgid "Copy color" +msgstr "Copia colore" -#: ../src/verbs.cpp:2674 -msgctxt "ContextVerb" -msgid "Mesh" -msgstr "" +#: ../src/ui/widget/selected-style.cpp:265 +msgid "Paste color" +msgstr "Incolla colore" -#: ../src/verbs.cpp:2675 -#, fuzzy -msgid "Create and edit meshes" -msgstr "Crea e modifica i gradienti" +#: ../src/ui/widget/selected-style.cpp:269 +#: ../src/ui/widget/selected-style.cpp:852 +msgid "Swap fill and stroke" +msgstr "Inverti riempimento e contorno" -#: ../src/verbs.cpp:2676 -#, fuzzy -msgctxt "ContextVerb" -msgid "Zoom" -msgstr "Ingrandimento" +#: ../src/ui/widget/selected-style.cpp:273 +#: ../src/ui/widget/selected-style.cpp:584 +#: ../src/ui/widget/selected-style.cpp:593 +msgid "Make fill opaque" +msgstr "Rendi opaco il riempimento" -#: ../src/verbs.cpp:2677 -msgid "Zoom in or out" -msgstr "Ingrandisce o rimpicciolisce" +#: ../src/ui/widget/selected-style.cpp:273 +msgid "Make stroke opaque" +msgstr "Rendi il contorno opaco" -#: ../src/verbs.cpp:2679 -#, fuzzy -msgid "Measurement tool" -msgstr "UnitĂ  di misura:" +#: ../src/ui/widget/selected-style.cpp:282 +#: ../src/ui/widget/selected-style.cpp:541 ../src/widgets/fill-style.cpp:510 +msgid "Remove fill" +msgstr "Rimuovi riempimento" -#: ../src/verbs.cpp:2680 -#, fuzzy -msgctxt "ContextVerb" -msgid "Dropper" -msgstr "Contagocce" +#: ../src/ui/widget/selected-style.cpp:282 +#: ../src/ui/widget/selected-style.cpp:550 ../src/widgets/fill-style.cpp:510 +msgid "Remove stroke" +msgstr "Rimuovi contorno" -#: ../src/verbs.cpp:2681 ../src/widgets/sp-color-notebook.cpp:411 -msgid "Pick colors from image" -msgstr "Preleva colore dall'immagine" +#: ../src/ui/widget/selected-style.cpp:605 +msgid "Apply last set color to fill" +msgstr "Imposta l'ultimo colore impostato come riempimento" -#: ../src/verbs.cpp:2682 -#, fuzzy -msgctxt "ContextVerb" -msgid "Connector" -msgstr "Connettore" +#: ../src/ui/widget/selected-style.cpp:617 +msgid "Apply last set color to stroke" +msgstr "Imposta l'ultimo colore impostato come contorno" -#: ../src/verbs.cpp:2683 -msgid "Create diagram connectors" -msgstr "Crea connettori di diagramma" +#: ../src/ui/widget/selected-style.cpp:628 +msgid "Apply last selected color to fill" +msgstr "Imposta l'ultimo colore selezionato come riempimento" -#: ../src/verbs.cpp:2684 -#, fuzzy -msgctxt "ContextVerb" -msgid "Paint Bucket" -msgstr "Secchiello" +#: ../src/ui/widget/selected-style.cpp:639 +msgid "Apply last selected color to stroke" +msgstr "Imposta l'ultimo colore selezionato come contorno" -#: ../src/verbs.cpp:2685 -msgid "Fill bounded areas" -msgstr "Colora aree delimitate" +#: ../src/ui/widget/selected-style.cpp:665 +msgid "Invert fill" +msgstr "Inverti riempimento" -#: ../src/verbs.cpp:2686 -#, fuzzy -msgctxt "ContextVerb" -msgid "LPE Edit" -msgstr "Modifica LPE" +#: ../src/ui/widget/selected-style.cpp:689 +msgid "Invert stroke" +msgstr "Inverti contorno" -#: ../src/verbs.cpp:2687 -msgid "Edit Path Effect parameters" -msgstr "Modifica parametri effetto su tracciato" +#: ../src/ui/widget/selected-style.cpp:701 +msgid "White fill" +msgstr "Riempimento bianco" -#: ../src/verbs.cpp:2688 -#, fuzzy -msgctxt "ContextVerb" -msgid "Eraser" -msgstr "Gomma" +#: ../src/ui/widget/selected-style.cpp:713 +msgid "White stroke" +msgstr "Contorno bianco" -#: ../src/verbs.cpp:2689 -msgid "Erase existing paths" -msgstr "Cancella tracciato esistente" +#: ../src/ui/widget/selected-style.cpp:725 +msgid "Black fill" +msgstr "Riempimento nero" -#: ../src/verbs.cpp:2690 -#, fuzzy -msgctxt "ContextVerb" -msgid "LPE Tool" -msgstr "Strumento LPE" +#: ../src/ui/widget/selected-style.cpp:737 +msgid "Black stroke" +msgstr "Contorno nero" -#: ../src/verbs.cpp:2691 -msgid "Do geometric constructions" -msgstr "Crea costruzioni geometriche" +#: ../src/ui/widget/selected-style.cpp:780 +msgid "Paste fill" +msgstr "Incolla riempimento" -#. Tool prefs -#: ../src/verbs.cpp:2693 -msgid "Selector Preferences" -msgstr "Preferenze selettore" +#: ../src/ui/widget/selected-style.cpp:798 +msgid "Paste stroke" +msgstr "Incolla contorno" -#: ../src/verbs.cpp:2694 -msgid "Open Preferences for the Selector tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Selettore»" +#: ../src/ui/widget/selected-style.cpp:954 +msgid "Change stroke width" +msgstr "Modifica larghezza contorno" -#: ../src/verbs.cpp:2695 -msgid "Node Tool Preferences" -msgstr "Preferenze strumento nodo" +#: ../src/ui/widget/selected-style.cpp:1049 +msgid ", drag to adjust" +msgstr ", trascinare per modificare" -#: ../src/verbs.cpp:2696 -msgid "Open Preferences for the Node tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Nodo»" +#: ../src/ui/widget/selected-style.cpp:1134 +#, c-format +msgid "Stroke width: %.5g%s%s" +msgstr "Larghezza contorno: %.5g%s%s" -#: ../src/verbs.cpp:2697 -msgid "Tweak Tool Preferences" -msgstr "Preferenze strumento ritocco" +#: ../src/ui/widget/selected-style.cpp:1138 +msgid " (averaged)" +msgstr ". (media)" -#: ../src/verbs.cpp:2698 -msgid "Open Preferences for the Tweak tool" -msgstr "Apre le preferenze per lo strumento «Ritocco»" +#: ../src/ui/widget/selected-style.cpp:1166 +msgid "0 (transparent)" +msgstr "0 (trasparente)" -#: ../src/verbs.cpp:2699 -#, fuzzy -msgid "Spray Tool Preferences" -msgstr "Preferenze spirale" +#: ../src/ui/widget/selected-style.cpp:1190 +msgid "100% (opaque)" +msgstr "100% (opaco)" -#: ../src/verbs.cpp:2700 +#: ../src/ui/widget/selected-style.cpp:1362 #, fuzzy -msgid "Open Preferences for the Spray tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Spirale»" +msgid "Adjust alpha" +msgstr "Modifica colore" -#: ../src/verbs.cpp:2701 -msgid "Rectangle Preferences" -msgstr "Preferenze rettangolo" +#: ../src/ui/widget/selected-style.cpp:1364 +#, fuzzy, c-format +msgid "" +"Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " +"modifiers to adjust hue" +msgstr "" +"Modifica luminositĂ : prima era %.3g, ora %.3g (diff %.3g); con " +"Maiusc per modificare la saturazione, con Ctrl per il colore" -#: ../src/verbs.cpp:2702 -msgid "Open Preferences for the Rectangle tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Rettangolo»" +#: ../src/ui/widget/selected-style.cpp:1368 +msgid "Adjust saturation" +msgstr "Modifica saturazione" -#: ../src/verbs.cpp:2703 -msgid "3D Box Preferences" -msgstr "Preferenze solido 3D" +#: ../src/ui/widget/selected-style.cpp:1370 +#, fuzzy, c-format +msgid "" +"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " +"Ctrl to adjust lightness, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" +"Modifica saturazione: prima era %.3g, ora %.3g (diff %.3g); " +"con Ctrl per modificare la luminositĂ , senza modificatori per il " +"colore" -#: ../src/verbs.cpp:2704 -msgid "Open Preferences for the 3D Box tool" -msgstr "Apre le preferenze per lo strumento «Solido 3D»" +#: ../src/ui/widget/selected-style.cpp:1374 +msgid "Adjust lightness" +msgstr "Modifica luminositĂ " -#: ../src/verbs.cpp:2705 -msgid "Ellipse Preferences" -msgstr "Preferenze ellisse" +#: ../src/ui/widget/selected-style.cpp:1376 +#, fuzzy, c-format +msgid "" +"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " +"Shift to adjust saturation, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" +"Modifica luminositĂ : prima era %.3g, ora %.3g (diff %.3g); con " +"Maiusc per modificare la saturazione, con Ctrl per il colore" -#: ../src/verbs.cpp:2706 -msgid "Open Preferences for the Ellipse tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Ellisse»" +#: ../src/ui/widget/selected-style.cpp:1380 +msgid "Adjust hue" +msgstr "Modifica colore" -#: ../src/verbs.cpp:2707 -msgid "Star Preferences" -msgstr "Preferenze stella" +#: ../src/ui/widget/selected-style.cpp:1382 +#, fuzzy, c-format +msgid "" +"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " +"to adjust lightness" +msgstr "" +"Modifica colore: prima era %.3g, ora %.3g (diff %.3g); con " +"Maiusc per modificare la saturazione, con Ctrl per la " +"luminositĂ " -#: ../src/verbs.cpp:2708 -msgid "Open Preferences for the Star tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Stella»" +#: ../src/ui/widget/selected-style.cpp:1500 +#: ../src/ui/widget/selected-style.cpp:1514 +msgid "Adjust stroke width" +msgstr "Modifica larghezza contorno" -#: ../src/verbs.cpp:2709 -msgid "Spiral Preferences" -msgstr "Preferenze spirale" +#: ../src/ui/widget/selected-style.cpp:1501 +#, c-format +msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" +msgstr "" +"Modifica della larghezza contorno: era %.3g, ora è %.3g (diff " +"%.3g)" -#: ../src/verbs.cpp:2710 -msgid "Open Preferences for the Spiral tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Spirale»" +#. TRANSLATORS: "Link" means to _link_ two sliders together +#: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 +#, fuzzy +msgctxt "Sliders" +msgid "Link" +msgstr "Linea" -#: ../src/verbs.cpp:2711 -msgid "Pencil Preferences" -msgstr "Preferenze matita" +#: ../src/ui/widget/style-swatch.cpp:293 +msgid "L Gradient" +msgstr "Gradiente L" -#: ../src/verbs.cpp:2712 -msgid "Open Preferences for the Pencil tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Matita»" +#: ../src/ui/widget/style-swatch.cpp:297 +msgid "R Gradient" +msgstr "Gradiente R" + +#: ../src/ui/widget/style-swatch.cpp:313 +#, c-format +msgid "Fill: %06x/%.3g" +msgstr "Riempimento: %06x/%.3g" + +#: ../src/ui/widget/style-swatch.cpp:315 +#, c-format +msgid "Stroke: %06x/%.3g" +msgstr "Contorno: %06x/%.3g" -#: ../src/verbs.cpp:2713 -msgid "Pen Preferences" -msgstr "Preferenze penna" +#: ../src/ui/widget/style-swatch.cpp:347 +#, c-format +msgid "Stroke width: %.5g%s" +msgstr "Larghezza contorno: %.5g%s" -#: ../src/verbs.cpp:2714 -msgid "Open Preferences for the Pen tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Penna»" +#: ../src/ui/widget/style-swatch.cpp:363 +#, c-format +msgid "O: %2.0f" +msgstr "" -#: ../src/verbs.cpp:2715 -msgid "Calligraphic Preferences" -msgstr "Preferenze pennino" +#: ../src/ui/widget/style-swatch.cpp:368 +#, c-format +msgid "Opacity: %2.1f %%" +msgstr "OpacitĂ : %2.1f %%" -#: ../src/verbs.cpp:2716 -msgid "Open Preferences for the Calligraphy tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Pennino»" +#: ../src/vanishing-point.cpp:132 +msgid "Split vanishing points" +msgstr "Dividi punti di fuga" -#: ../src/verbs.cpp:2717 -msgid "Text Preferences" -msgstr "Preferenze testo" +#: ../src/vanishing-point.cpp:177 +msgid "Merge vanishing points" +msgstr "Unisci punti di fuga" -#: ../src/verbs.cpp:2718 -msgid "Open Preferences for the Text tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Testo»" +#: ../src/vanishing-point.cpp:243 +msgid "3D box: Move vanishing point" +msgstr "Solido 3D: muovi punto di fuga" -#: ../src/verbs.cpp:2719 -msgid "Gradient Preferences" -msgstr "Preferenze gradiente" +#: ../src/vanishing-point.cpp:327 +#, c-format +msgid "Finite vanishing point shared by %d box" +msgid_plural "" +"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" +msgstr[0] "" +"Punto di fuga all'infinito condiviso da %d solido; trascinare " +"con Maiusc per separare il solido selezionato" +msgstr[1] "" +"Punto di fuga all'infinito condiviso da %d solidi; trascinare " +"con Maiusc per separare ii solidi selezionati" -#: ../src/verbs.cpp:2720 -msgid "Open Preferences for the Gradient tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Gradiente»" +#. This won't make sense any more when infinite VPs are not shown on the canvas, +#. but currently we update the status message anyway +#: ../src/vanishing-point.cpp:334 +#, c-format +msgid "Infinite vanishing point shared by %d box" +msgid_plural "" +"Infinite vanishing point shared by %d boxes; drag with " +"Shift to separate selected box(es)" +msgstr[0] "" +"Punto di fuga al finito condiviso da %d solido; trascinare con " +"Maiusc per separare il solido selezionato" +msgstr[1] "" +"Punto di fuga al finito condiviso da %d solidi; trascinare con " +"Maiusc per separare i solidi selezionato" -#: ../src/verbs.cpp:2721 -#, fuzzy -msgid "Mesh Preferences" -msgstr "Impostazioni gomma" +#: ../src/vanishing-point.cpp:342 +#, c-format +msgid "" +"shared by %d box; drag with Shift to separate selected box(es)" +msgid_plural "" +"shared by %d boxes; drag with Shift to separate selected " +"box(es)" +msgstr[0] "" +"condiviso da %d solido; trascinare con Maiusc per separare il " +"solido" +msgstr[1] "" +"condiviso da %d solidi; trascinare con Maiusc per separare i " +"solidi" -#: ../src/verbs.cpp:2722 -#, fuzzy -msgid "Open Preferences for the Mesh tool" -msgstr "Apre le preferenze per lo strumento «Gomma»" +#: ../src/verbs.cpp:137 +msgid "File" +msgstr "File" -#: ../src/verbs.cpp:2723 -msgid "Zoom Preferences" -msgstr "Preferenze ingranditore" +#: ../src/verbs.cpp:232 +#, fuzzy +msgid "Context" +msgstr "Contrasto" -#: ../src/verbs.cpp:2724 -msgid "Open Preferences for the Zoom tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Ingranditore»" +#: ../src/verbs.cpp:251 ../src/verbs.cpp:2223 +#: ../share/extensions/jessyInk_view.inx.h:1 +#: ../share/extensions/polyhedron_3d.inx.h:26 +msgid "View" +msgstr "Visualizza" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:271 #, fuzzy -msgid "Measure Preferences" -msgstr "Impostazioni gomma" +msgid "Dialog" +msgstr "Fissa sottofinestra" -#: ../src/verbs.cpp:2726 -#, fuzzy -msgid "Open Preferences for the Measure tool" -msgstr "Apre le preferenze per lo strumento «Gomma»" +#: ../src/verbs.cpp:1227 +msgid "Switch to next layer" +msgstr "Passa al livello successivo" -#: ../src/verbs.cpp:2727 -msgid "Dropper Preferences" -msgstr "Preferenze contagocce" +#: ../src/verbs.cpp:1228 +msgid "Switched to next layer." +msgstr "Passato al livello successivo." -#: ../src/verbs.cpp:2728 -msgid "Open Preferences for the Dropper tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Contagocce»" +#: ../src/verbs.cpp:1230 +msgid "Cannot go past last layer." +msgstr "Impossibile passare ad un livello successivo all'ultimo." -# -Luca -#: ../src/verbs.cpp:2729 -msgid "Connector Preferences" -msgstr "Preferenze connettore" +#: ../src/verbs.cpp:1239 +msgid "Switch to previous layer" +msgstr "Passa al livello precedente" -#: ../src/verbs.cpp:2730 -msgid "Open Preferences for the Connector tool" -msgstr "Apre le preferenze di Inkscape per lo strumento «Connettore»" +#: ../src/verbs.cpp:1240 +msgid "Switched to previous layer." +msgstr "Passato al livello precedente." -#: ../src/verbs.cpp:2731 -msgid "Paint Bucket Preferences" -msgstr "Preferenze secchiello" +#: ../src/verbs.cpp:1242 +msgid "Cannot go before first layer." +msgstr "Impossibile passare ad un livello precedente al primo." -#: ../src/verbs.cpp:2732 -msgid "Open Preferences for the Paint Bucket tool" -msgstr "Apre le preferenze per lo strumento «Secchiello»" +#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1396 +#: ../src/verbs.cpp:1402 ../src/verbs.cpp:1426 ../src/verbs.cpp:1441 +msgid "No current layer." +msgstr "Nessun livello attuale." -#: ../src/verbs.cpp:2733 -msgid "Eraser Preferences" -msgstr "Impostazioni gomma" +#: ../src/verbs.cpp:1292 ../src/verbs.cpp:1296 +#, c-format +msgid "Raised layer %s." +msgstr "Alzato il livello %s." -#: ../src/verbs.cpp:2734 -msgid "Open Preferences for the Eraser tool" -msgstr "Apre le preferenze per lo strumento «Gomma»" +#: ../src/verbs.cpp:1293 +msgid "Layer to top" +msgstr "Sposta livello in cima" -#: ../src/verbs.cpp:2735 -msgid "LPE Tool Preferences" -msgstr "Preferenze LPE" +#: ../src/verbs.cpp:1297 +msgid "Raise layer" +msgstr "Alza livello" -#: ../src/verbs.cpp:2736 -msgid "Open Preferences for the LPETool tool" -msgstr "Apre le preferenze per lo strumento «Effetto su tracciato»" +#: ../src/verbs.cpp:1300 ../src/verbs.cpp:1304 +#, c-format +msgid "Lowered layer %s." +msgstr "Abbassato il livello %s." -#. Zoom/View -#: ../src/verbs.cpp:2738 -msgid "Zoom In" -msgstr "Ingrandisci" +#: ../src/verbs.cpp:1301 +msgid "Layer to bottom" +msgstr "Sposta livello in fondo" -#: ../src/verbs.cpp:2738 -msgid "Zoom in" -msgstr "Aumenta l'ingrandimento" +#: ../src/verbs.cpp:1305 +msgid "Lower layer" +msgstr "Abbassa livello" -#: ../src/verbs.cpp:2739 -msgid "Zoom Out" -msgstr "Riduci" +#: ../src/verbs.cpp:1314 +msgid "Cannot move layer any further." +msgstr "Non si può spostare ulteriormente il livello." -#: ../src/verbs.cpp:2739 -msgid "Zoom out" -msgstr "Riduce l'ingrandimento" +#: ../src/verbs.cpp:1328 ../src/verbs.cpp:1347 +#, c-format +msgid "%s copy" +msgstr "%s copia" -#: ../src/verbs.cpp:2740 -msgid "_Rulers" -msgstr "_Righelli" +#: ../src/verbs.cpp:1355 +msgid "Duplicate layer" +msgstr "Duplica livello" -#: ../src/verbs.cpp:2740 -msgid "Show or hide the canvas rulers" -msgstr "Mostra o nasconde i righelli" +#. TRANSLATORS: this means "The layer has been duplicated." +#: ../src/verbs.cpp:1358 +msgid "Duplicated layer." +msgstr "Livello duplicato." -#: ../src/verbs.cpp:2741 -msgid "Scroll_bars" -msgstr "_Barre di scorrimento" +#: ../src/verbs.cpp:1391 +msgid "Delete layer" +msgstr "Elimina livello" -#: ../src/verbs.cpp:2741 -msgid "Show or hide the canvas scrollbars" -msgstr "Mostra o nasconde le barre di scorrimento" +#. TRANSLATORS: this means "The layer has been deleted." +#: ../src/verbs.cpp:1394 +msgid "Deleted layer." +msgstr "Livello eliminato." -#: ../src/verbs.cpp:2742 -#, fuzzy -msgid "Page _Grid" -msgstr "Larg_hezza pagina" +#: ../src/verbs.cpp:1411 +msgid "Show all layers" +msgstr "Mostra tutti i livelli" -#: ../src/verbs.cpp:2742 -#, fuzzy -msgid "Show or hide the page grid" -msgstr "Mostra o nasconde la griglia" +#: ../src/verbs.cpp:1416 +msgid "Hide all layers" +msgstr "Nascondi tutti i livelli" -#: ../src/verbs.cpp:2743 -msgid "G_uides" -msgstr "G_uide" +#: ../src/verbs.cpp:1421 +msgid "Lock all layers" +msgstr "Blocca tutti i livelli" -#: ../src/verbs.cpp:2743 -msgid "Show or hide guides (drag from a ruler to create a guide)" -msgstr "" -"Mostra o nasconde le guide (trascinare dal righello per creare una guida)" +#: ../src/verbs.cpp:1435 +msgid "Unlock all layers" +msgstr "Sblocca tutti i livelli" -#: ../src/verbs.cpp:2744 -msgid "Enable snapping" -msgstr "Attiva aggancio" +#: ../src/verbs.cpp:1519 +msgid "Flip horizontally" +msgstr "Rifletti orizzontalmente" -#: ../src/verbs.cpp:2745 -#, fuzzy -msgid "_Commands Bar" -msgstr "Barra dei comandi" +#: ../src/verbs.cpp:1524 +msgid "Flip vertically" +msgstr "Rifletti verticalmente" -#: ../src/verbs.cpp:2745 -msgid "Show or hide the Commands bar (under the menu)" -msgstr "Mostra o nasconde la barra dei dei comandi (sotto il menu)" +#. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, +#. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language +#. code); otherwise leave as "tutorial-basic.svg". +#: ../src/verbs.cpp:2105 +msgid "tutorial-basic.svg" +msgstr "tutorial-basic.it.svg" -#: ../src/verbs.cpp:2746 -#, fuzzy -msgid "Sn_ap Controls Bar" -msgstr "Barra dei controlli aggancio" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2109 +msgid "tutorial-shapes.svg" +msgstr "tutorial-shapes.it.svg" -#: ../src/verbs.cpp:2746 -msgid "Show or hide the snapping controls" -msgstr "Mostra o nasconde i controlli per l'aggancio" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2113 +msgid "tutorial-advanced.svg" +msgstr "tutorial-advanced.it.svg" -#: ../src/verbs.cpp:2747 -#, fuzzy -msgid "T_ool Controls Bar" -msgstr "Barra dei controlli strumento" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2117 +msgid "tutorial-tracing.svg" +msgstr "tutorial-tracing.svg" -#: ../src/verbs.cpp:2747 -msgid "Show or hide the Tool Controls bar" -msgstr "Mostra o nasconde la barra dei controlli degli strumenti" +#: ../src/verbs.cpp:2120 +msgid "tutorial-tracing-pixelart.svg" +msgstr "tutorial-tracing-pixelart.svg" -# cfr la traduzione di Illustrator -#: ../src/verbs.cpp:2748 -msgid "_Toolbox" -msgstr "Barra degli s_trumenti" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2124 +msgid "tutorial-calligraphy.svg" +msgstr "tutorial-calligraphy.svg" -#: ../src/verbs.cpp:2748 -msgid "Show or hide the main toolbox (on the left)" -msgstr "Mostra o nasconde la barra degli strumenti (sulla sinistra)" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2128 +msgid "tutorial-interpolate.svg" +msgstr "tutorial-interpolate.svg" -#: ../src/verbs.cpp:2749 -msgid "_Palette" -msgstr "_Paletta" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2132 +msgid "tutorial-elements.svg" +msgstr "tutorial-elements.svg" -#: ../src/verbs.cpp:2749 -msgid "Show or hide the color palette" -msgstr "Mostra o nasconde la tavolozza dei colori" +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2136 +msgid "tutorial-tips.svg" +msgstr "tutorial-tips.it.svg" -#: ../src/verbs.cpp:2750 -msgid "_Statusbar" -msgstr "Barra di _stato" +#: ../src/verbs.cpp:2322 ../src/verbs.cpp:2913 +msgid "Unlock all objects in the current layer" +msgstr "Sblocca tutti gli oggetti nel livello attuale" -#: ../src/verbs.cpp:2750 -msgid "Show or hide the statusbar (at the bottom of the window)" -msgstr "Mostra o nasconde la barra di stato (in fondo alla finestra)" +#: ../src/verbs.cpp:2326 ../src/verbs.cpp:2915 +msgid "Unlock all objects in all layers" +msgstr "Seleziona tutti gli oggetti in ogni livello" -#: ../src/verbs.cpp:2751 -msgid "Nex_t Zoom" -msgstr "Ingrandimen_to successivo" +#: ../src/verbs.cpp:2330 ../src/verbs.cpp:2917 +msgid "Unhide all objects in the current layer" +msgstr "Mostra tutti gli oggetti nel livello attuale" -#: ../src/verbs.cpp:2751 -msgid "Next zoom (from the history of zooms)" -msgstr "Ingrandimento successivo (dalla cronologia degli zoom)" +#: ../src/verbs.cpp:2334 ../src/verbs.cpp:2919 +msgid "Unhide all objects in all layers" +msgstr "Mostra tutti gli oggetti in ogni livello" -#: ../src/verbs.cpp:2753 -msgid "Pre_vious Zoom" -msgstr "Ingrandimento p_recedente" +#: ../src/verbs.cpp:2349 +msgid "Does nothing" +msgstr "Fa niente" -#: ../src/verbs.cpp:2753 -msgid "Previous zoom (from the history of zooms)" -msgstr "Ingrandimento precedente (dalla cronologia degli zoom)" +#: ../src/verbs.cpp:2352 +msgid "Create new document from the default template" +msgstr "Crea un nuovo documento dal modello predefinito" -#: ../src/verbs.cpp:2755 -msgid "Zoom 1:_1" -msgstr "Ingrandimento 1:_1" +#: ../src/verbs.cpp:2354 +msgid "_Open..." +msgstr "_Apri..." -#: ../src/verbs.cpp:2755 -msgid "Zoom to 1:1" -msgstr "Ingrandisce a 1:1" +#: ../src/verbs.cpp:2355 +msgid "Open an existing document" +msgstr "Apre un documento esistente" -#: ../src/verbs.cpp:2757 -msgid "Zoom 1:_2" -msgstr "Ingrandimento 1:_2" +#: ../src/verbs.cpp:2356 +msgid "Re_vert" +msgstr "Ri_carica" -#: ../src/verbs.cpp:2757 -msgid "Zoom to 1:2" -msgstr "Ingrandisce a 1:2" +#: ../src/verbs.cpp:2357 +msgid "Revert to the last saved version of document (changes will be lost)" +msgstr "" +"Ricarica l'ultima versione salvata del documento (i cambiamenti verranno " +"persi)" -#: ../src/verbs.cpp:2759 -msgid "_Zoom 2:1" -msgstr "In_grandimento 2:1" +#: ../src/verbs.cpp:2358 +msgid "Save document" +msgstr "Salva il documento" -#: ../src/verbs.cpp:2759 -msgid "Zoom to 2:1" -msgstr "Ingrandisce a 2:1" +#: ../src/verbs.cpp:2360 +msgid "Save _As..." +msgstr "Salv_a come..." -#: ../src/verbs.cpp:2762 -msgid "_Fullscreen" -msgstr "Scher_mo intero" +#: ../src/verbs.cpp:2361 +msgid "Save document under a new name" +msgstr "Salva il documento con un nuovo nome" -#: ../src/verbs.cpp:2762 ../src/verbs.cpp:2764 -msgid "Stretch this document window to full screen" -msgstr "Allarga la finestra a pieno schermo" +#: ../src/verbs.cpp:2362 +msgid "Save a Cop_y..." +msgstr "Salva una co_pia..." -#: ../src/verbs.cpp:2764 -#, fuzzy -msgid "Fullscreen & Focus Mode" -msgstr "Commuta modalitĂ  focus" +#: ../src/verbs.cpp:2363 +msgid "Save a copy of the document under a new name" +msgstr "Salva una copia del documento con un nuovo nome" -#: ../src/verbs.cpp:2767 -msgid "Toggle _Focus Mode" -msgstr "Commuta modalitĂ  focus" +#: ../src/verbs.cpp:2364 +msgid "_Print..." +msgstr "Stam_pa..." -#: ../src/verbs.cpp:2767 -msgid "Remove excess toolbars to focus on drawing" -msgstr "Rimuove barre in eccesso per focalizzarsi sul disegno" +#: ../src/verbs.cpp:2364 +msgid "Print document" +msgstr "Stampa il documento" -#: ../src/verbs.cpp:2769 -msgid "Duplic_ate Window" -msgstr "Duplic_a finestra" +#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) +#: ../src/verbs.cpp:2367 +msgid "Clean _up document" +msgstr "P_ulisci documento" -#: ../src/verbs.cpp:2769 -msgid "Open a new window with the same document" -msgstr "Apre lo stesso documento in una nuova finestra" +#: ../src/verbs.cpp:2367 +msgid "" +"Remove unused definitions (such as gradients or clipping paths) from the <" +"defs> of the document" +msgstr "" +"Elimina definizioni inutilizzate (come gradienti o tracciati di fissaggio) " +"dai <defs> del documento" -#: ../src/verbs.cpp:2771 -msgid "_New View Preview" -msgstr "_Nuova vista anteprima" +#: ../src/verbs.cpp:2369 +msgid "_Import..." +msgstr "_Importa..." -#: ../src/verbs.cpp:2772 -msgid "New View Preview" -msgstr "Nuova visualizzazione di anteprima" +#: ../src/verbs.cpp:2370 +msgid "Import a bitmap or SVG image into this document" +msgstr "Importa una bitmap o un'immagine SVG nel documento" -#. "view_new_preview" -#: ../src/verbs.cpp:2774 ../src/verbs.cpp:2782 -msgid "_Normal" -msgstr "_Normale" +#. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), +#: ../src/verbs.cpp:2372 +msgid "Import Clip Art..." +msgstr "Importa Clip Art..." -#: ../src/verbs.cpp:2775 -msgid "Switch to normal display mode" -msgstr "Passa alla modalitĂ  di visualizzazione normale" +#: ../src/verbs.cpp:2373 +msgid "Import clipart from Open Clip Art Library" +msgstr "Importa clipart da Open Clip Art Library" -#: ../src/verbs.cpp:2776 -msgid "No _Filters" -msgstr "Nessun _filtro" +#. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), +#: ../src/verbs.cpp:2375 +msgid "N_ext Window" +msgstr "Fin_estra successiva" -#: ../src/verbs.cpp:2777 -msgid "Switch to normal display without filters" -msgstr "Passa alla visualizzazione normale senza filtri" +#: ../src/verbs.cpp:2376 +msgid "Switch to the next document window" +msgstr "Passa alla finestra successiva" -#: ../src/verbs.cpp:2778 -msgid "_Outline" -msgstr "Scheletr_o" +#: ../src/verbs.cpp:2377 +msgid "P_revious Window" +msgstr "Finestra p_recedente" -#: ../src/verbs.cpp:2779 -msgid "Switch to outline (wireframe) display mode" -msgstr "Passa alla modalitĂ  di visualizzazione dello scheletro (wireframe)" +#: ../src/verbs.cpp:2378 +msgid "Switch to the previous document window" +msgstr "Passa alla finestra precedente" -#. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), -#. N_("Switch to print colors preview mode"), NULL), -#: ../src/verbs.cpp:2780 ../src/verbs.cpp:2788 -msgid "_Toggle" -msgstr "Al_terna" +#: ../src/verbs.cpp:2379 +msgid "_Close" +msgstr "_Chiudi" + +#: ../src/verbs.cpp:2380 +msgid "Close this document window" +msgstr "Chiude la finestra di questo documento" -#: ../src/verbs.cpp:2781 -msgid "Toggle between normal and outline display modes" -msgstr "Alterna tra la visualizzazione normale o solo contorni" +#: ../src/verbs.cpp:2381 +msgid "_Quit" +msgstr "_Esci" -#: ../src/verbs.cpp:2783 -#, fuzzy -msgid "Switch to normal color display mode" -msgstr "Passa alla modalitĂ  di visualizzazione normale" +#: ../src/verbs.cpp:2381 +msgid "Quit Inkscape" +msgstr "Chiude Inkscape" -#: ../src/verbs.cpp:2784 -#, fuzzy -msgid "_Grayscale" -msgstr "Scala di grigi" +#: ../src/verbs.cpp:2382 +msgid "_Templates..." +msgstr "_Modelli..." -#: ../src/verbs.cpp:2785 -#, fuzzy -msgid "Switch to grayscale display mode" -msgstr "Passa alla modalitĂ  di visualizzazione normale" +#: ../src/verbs.cpp:2383 +msgid "Create new project from template" +msgstr "Crea un nuovo documento da modello" -#: ../src/verbs.cpp:2789 -#, fuzzy -msgid "Toggle between normal and grayscale color display modes" -msgstr "Alterna tra la visualizzazione normale o solo contorni" +#: ../src/verbs.cpp:2386 +msgid "Undo last action" +msgstr "Annulla l'ultima azione" -#: ../src/verbs.cpp:2791 -msgid "Color-managed view" -msgstr "Gestione del colore" +#: ../src/verbs.cpp:2389 +msgid "Do again the last undone action" +msgstr "Ripete l'ultima azione annullata" -#: ../src/verbs.cpp:2792 -msgid "Toggle color-managed display for this document window" -msgstr "" -"Attiva la gestione del colore del display per questa finestra di documento" +#: ../src/verbs.cpp:2390 +msgid "Cu_t" +msgstr "_Taglia" -#: ../src/verbs.cpp:2794 -msgid "Ico_n Preview..." -msgstr "Anteprima ico_na..." +#: ../src/verbs.cpp:2391 +msgid "Cut selection to clipboard" +msgstr "Taglia la selezione e la sposta negli appunti" -#: ../src/verbs.cpp:2795 -msgid "Open a window to preview objects at different icon resolutions" -msgstr "" -"Apre una finestra per mostrare l'anteprima come icona a varie risoluzioni" +#: ../src/verbs.cpp:2392 +msgid "_Copy" +msgstr "_Copia" -#: ../src/verbs.cpp:2797 -msgid "Zoom to fit page in window" -msgstr "Ingrandisce per adattare la pagina alla finestra" +#: ../src/verbs.cpp:2393 +msgid "Copy selection to clipboard" +msgstr "Copia la selezione negli appunti" -#: ../src/verbs.cpp:2798 -msgid "Page _Width" -msgstr "Larg_hezza pagina" +#: ../src/verbs.cpp:2394 +msgid "_Paste" +msgstr "I_ncolla" -#: ../src/verbs.cpp:2799 -msgid "Zoom to fit page width in window" -msgstr "Ingrandisce per adattare la larghezza della pagina alla finestra" +#: ../src/verbs.cpp:2395 +msgid "Paste objects from clipboard to mouse point, or paste text" +msgstr "Incolla l'oggetto dagli appunti sotto al puntatore, o incolla il testo" -#: ../src/verbs.cpp:2801 -msgid "Zoom to fit drawing in window" -msgstr "Ingrandisce per adattare il disegno alla finestra" +#: ../src/verbs.cpp:2396 +msgid "Paste _Style" +msgstr "Incolla _stile" -#: ../src/verbs.cpp:2803 -msgid "Zoom to fit selection in window" -msgstr "Ingrandisce per adattare la selezione alla finestra" +#: ../src/verbs.cpp:2397 +msgid "Apply the style of the copied object to selection" +msgstr "Applica alla selezione lo stile dell'oggetto copiato" -#. Dialogs -#: ../src/verbs.cpp:2806 -#, fuzzy -msgid "P_references..." -msgstr "Preferenze penna" +#: ../src/verbs.cpp:2399 +msgid "Scale selection to match the size of the copied object" +msgstr "Ridimensiona la selezione alla stessa dimensione dell'oggetto copiato" -#: ../src/verbs.cpp:2807 -msgid "Edit global Inkscape preferences" -msgstr "Modifica le preferenze globali di Inkscape" +#: ../src/verbs.cpp:2400 +msgid "Paste _Width" +msgstr "Incolla larg_hezza" -#: ../src/verbs.cpp:2808 -msgid "_Document Properties..." -msgstr "ProprietĂ  del _documento..." +#: ../src/verbs.cpp:2401 +msgid "Scale selection horizontally to match the width of the copied object" +msgstr "" +"Ridimensiona la selezione orizzontalmente per adattarsi alla larghezza " +"dell'oggetto copiato" -#: ../src/verbs.cpp:2809 -msgid "Edit properties of this document (to be saved with the document)" +#: ../src/verbs.cpp:2402 +msgid "Paste _Height" +msgstr "Incolla al_tezza" + +#: ../src/verbs.cpp:2403 +msgid "Scale selection vertically to match the height of the copied object" msgstr "" -"Modifica le proprietĂ  di questo documento (che verranno salvate con esso)" +"Ridimensiona la selezione verticalmente per adattarsi all'altezza " +"dell'oggetto copiato" -#: ../src/verbs.cpp:2810 -msgid "Document _Metadata..." -msgstr "_Metadati del documento..." +#: ../src/verbs.cpp:2404 +msgid "Paste Size Separately" +msgstr "Incolla dimensione separatamente" -#: ../src/verbs.cpp:2811 -msgid "Edit document metadata (to be saved with the document)" -msgstr "Modifica i metadati del documento (salvati con esso)" +#: ../src/verbs.cpp:2405 +msgid "Scale each selected object to match the size of the copied object" +msgstr "" +"Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " +"selezionato" -#: ../src/verbs.cpp:2813 -#, fuzzy +#: ../src/verbs.cpp:2406 +msgid "Paste Width Separately" +msgstr "Incolla larghezza separatamente" + +#: ../src/verbs.cpp:2407 msgid "" -"Edit objects' colors, gradients, arrowheads, and other fill and stroke " -"properties..." +"Scale each selected object horizontally to match the width of the copied " +"object" msgstr "" -"Modifica colore di oggetti, gradienti, ampiezza contorni, delimitatori, " -"tratteggi..." +"Ridimensiona orizzontalmente ogni oggetto selezionato alla dimensione " +"dell'oggetto copiato" -#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2815 -#, fuzzy -msgid "Gl_yphs..." -msgstr "_Glifi" +#: ../src/verbs.cpp:2408 +msgid "Paste Height Separately" +msgstr "Incolla altezza separatamente" -#: ../src/verbs.cpp:2816 -#, fuzzy -msgid "Select characters from a glyphs palette" -msgstr "Seleziona i colori da una tavolozza di campioni" +#: ../src/verbs.cpp:2409 +msgid "" +"Scale each selected object vertically to match the height of the copied " +"object" +msgstr "" +"Ridimensiona verticalmente ogni oggetto selezionato all'altezza dell'oggetto " +"copiato" -#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon -#. TRANSLATORS: "Swatches" means: color samples -#: ../src/verbs.cpp:2819 -msgid "S_watches..." -msgstr "Campio_ni..." +#: ../src/verbs.cpp:2410 +msgid "Paste _In Place" +msgstr "Incolla _in origine" -#: ../src/verbs.cpp:2820 -msgid "Select colors from a swatches palette" -msgstr "Seleziona i colori da una tavolozza di campioni" +#: ../src/verbs.cpp:2411 +msgid "Paste objects from clipboard to the original location" +msgstr "Incolla l'oggetto dagli appunti al suo luogo di origine" -#: ../src/verbs.cpp:2821 -msgid "S_ymbols..." -msgstr "" +#: ../src/verbs.cpp:2412 +msgid "Paste Path _Effect" +msgstr "Incolla _effetto su tracciato" -#: ../src/verbs.cpp:2822 -#, fuzzy -msgid "Select symbol from a symbols palette" -msgstr "Seleziona i colori da una tavolozza di campioni" +#: ../src/verbs.cpp:2413 +msgid "Apply the path effect of the copied object to selection" +msgstr "Applica alla selezione l'effetto su tracciato dell'oggetto copiato" -#: ../src/verbs.cpp:2823 -msgid "Transfor_m..." -msgstr "Trasfor_ma..." +#: ../src/verbs.cpp:2414 +msgid "Remove Path _Effect" +msgstr "Rimuovi _effetti su tracciato" -#: ../src/verbs.cpp:2824 -msgid "Precisely control objects' transformations" -msgstr "Controlla precisamente le trasformazioni dell'oggetto" +#: ../src/verbs.cpp:2415 +msgid "Remove any path effects from selected objects" +msgstr "Rimuove tutti gli effetti su tracciato dalla selezione" -#: ../src/verbs.cpp:2825 -msgid "_Align and Distribute..." -msgstr "_Allinea e distribuisci..." +#: ../src/verbs.cpp:2416 +msgid "_Remove Filters" +msgstr "_Rimuovi filtri" -#: ../src/verbs.cpp:2826 -msgid "Align and distribute objects" -msgstr "Allinea e distribuisce gli oggetti" +#: ../src/verbs.cpp:2417 +msgid "Remove any filters from selected objects" +msgstr "Rimuove tutti i filtri dagli oggetti selezionati" -#: ../src/verbs.cpp:2827 -msgid "_Spray options..." -msgstr "" +#: ../src/verbs.cpp:2418 +msgid "_Delete" +msgstr "Eli_mina" -#: ../src/verbs.cpp:2828 -#, fuzzy -msgid "Some options for the spray" -msgstr "Mostra lo scheletro di un tracciato" +#: ../src/verbs.cpp:2419 +msgid "Delete selection" +msgstr "Elimina la selezione" -#: ../src/verbs.cpp:2829 -msgid "Undo _History..." -msgstr "Cronologia modifiche..." +#: ../src/verbs.cpp:2420 +msgid "Duplic_ate" +msgstr "Duplic_a" -#: ../src/verbs.cpp:2830 -msgid "Undo History" -msgstr "Cronologia modifiche" +#: ../src/verbs.cpp:2421 +msgid "Duplicate selected objects" +msgstr "Duplica gli oggetti selezionati" -#: ../src/verbs.cpp:2832 -msgid "View and select font family, font size and other text properties" -msgstr "" -"Mostra e modifica il tipo di font, la dimensione ed altre proprietĂ  del testo" +#: ../src/verbs.cpp:2422 +msgid "Create Clo_ne" +msgstr "Crea clo_ne" -#: ../src/verbs.cpp:2833 -msgid "_XML Editor..." -msgstr "Editor _XML..." +#: ../src/verbs.cpp:2423 +msgid "Create a clone (a copy linked to the original) of selected object" +msgstr "" +"Crea un clone dell'oggetto selezionato (una copia collegata all'originale)" -#: ../src/verbs.cpp:2834 -msgid "View and edit the XML tree of the document" -msgstr "Mostra e modifica l'albero XML del documento" +#: ../src/verbs.cpp:2424 +msgid "Unlin_k Clone" +msgstr "Scolle_ga clone" -#: ../src/verbs.cpp:2835 -#, fuzzy -msgid "_Find/Replace..." -msgstr "T_rova e sostituisci testo..." +#: ../src/verbs.cpp:2425 +msgid "" +"Cut the selected clones' links to the originals, turning them into " +"standalone objects" +msgstr "" +"Rimuove i collegamenti tra i cloni e gli originali, trasformandoli in " +"oggetti separati" -#: ../src/verbs.cpp:2836 -msgid "Find objects in document" -msgstr "Trova oggetti nel documento" +#: ../src/verbs.cpp:2426 +msgid "Relink to Copied" +msgstr "Ricollega alla copia" -#: ../src/verbs.cpp:2837 -msgid "Find and _Replace Text..." -msgstr "T_rova e sostituisci testo..." +#: ../src/verbs.cpp:2427 +msgid "Relink the selected clones to the object currently on the clipboard" +msgstr "Ricollega i cloni selezionati con l'oggetto attualmente negli appunti" -#: ../src/verbs.cpp:2838 -msgid "Find and replace text in document" -msgstr "Trova e sostituisci testo nel documento" +#: ../src/verbs.cpp:2428 +msgid "Select _Original" +msgstr "Seleziona _originale" -#: ../src/verbs.cpp:2840 -msgid "Check spelling of text in document" -msgstr "Controlla ortografia testo nel documento" +#: ../src/verbs.cpp:2429 +msgid "Select the object to which the selected clone is linked" +msgstr "Seleziona l'oggetto a cui il clone selezionato è collegato" -#: ../src/verbs.cpp:2841 -msgid "_Messages..." -msgstr "_Messaggi..." +#: ../src/verbs.cpp:2430 +#, fuzzy +msgid "Clone original path (LPE)" +msgstr "Sostituisci testo" -#: ../src/verbs.cpp:2842 -msgid "View debug messages" -msgstr "Mostra i messaggi di debug" +#: ../src/verbs.cpp:2431 +msgid "" +"Creates a new path, applies the Clone original LPE, and refers it to the " +"selected path" +msgstr "" -#: ../src/verbs.cpp:2843 -msgid "Show/Hide D_ialogs" -msgstr "Mostra/Nascondi sottof_inestre" +#: ../src/verbs.cpp:2432 +msgid "Objects to _Marker" +msgstr "Da oggetto a deli_mitatore" -#: ../src/verbs.cpp:2844 -msgid "Show or hide all open dialogs" -msgstr "Mostra o nasconde tutte le sottofinestre attive" +#: ../src/verbs.cpp:2433 +msgid "Convert selection to a line marker" +msgstr "Converte la selezione in un delimitatore di tracciato" -#: ../src/verbs.cpp:2845 -msgid "Create Tiled Clones..." -msgstr "Crea cloni in serie..." +#: ../src/verbs.cpp:2434 +msgid "Objects to Gu_ides" +msgstr "Da oggetto a gu_ida" -#: ../src/verbs.cpp:2846 +#: ../src/verbs.cpp:2435 msgid "" -"Create multiple clones of selected object, arranging them into a pattern or " -"scattering" +"Convert selected objects to a collection of guidelines aligned with their " +"edges" msgstr "" -"Crea cloni multipli dell'oggetto selezionato, posizionandoli secondo una " -"trama" - -#: ../src/verbs.cpp:2847 -#, fuzzy -msgid "_Object attributes..." -msgstr "ProprietĂ  _oggetto..." +"Converte gli oggetti selezionati in un insieme di linee guida orientate " +"secondo gli spigoli" -#: ../src/verbs.cpp:2848 -#, fuzzy -msgid "Edit the object attributes..." -msgstr "Imposta attributo" +#: ../src/verbs.cpp:2436 +msgid "Objects to Patter_n" +msgstr "_Da oggetto a motivo" -#: ../src/verbs.cpp:2850 -msgid "Edit the ID, locked and visible status, and other object properties" -msgstr "" -"Modifica l'ID, lo stato visibile o bloccato e altre proprietĂ  dell'oggetto" +#: ../src/verbs.cpp:2437 +msgid "Convert selection to a rectangle with tiled pattern fill" +msgstr "Converte la selezione in un rettangolo a motivo" -#: ../src/verbs.cpp:2851 -msgid "_Input Devices..." -msgstr "Dispositivi di _input..." +#: ../src/verbs.cpp:2438 +msgid "Pattern to _Objects" +msgstr "Da moti_vo a oggetto" -#: ../src/verbs.cpp:2852 -msgid "Configure extended input devices, such as a graphics tablet" -msgstr "Configura i dispositivi di input esteso, come le tavolette grafiche" +#: ../src/verbs.cpp:2439 +msgid "Extract objects from a tiled pattern fill" +msgstr "Estrae un oggetto da un motivo" -#: ../src/verbs.cpp:2853 -msgid "_Extensions..." -msgstr "_Estensioni..." +#: ../src/verbs.cpp:2440 +msgid "Group to Symbol" +msgstr "" -#: ../src/verbs.cpp:2854 -msgid "Query information about extensions" -msgstr "Richiedi informazioni sulle estensioni" +#: ../src/verbs.cpp:2441 +#, fuzzy +msgid "Convert group to a symbol" +msgstr "Converti contorno in tracciato" -#: ../src/verbs.cpp:2855 -msgid "Layer_s..." -msgstr "Liv_elli..." +#: ../src/verbs.cpp:2442 +msgid "Symbol to Group" +msgstr "" -#: ../src/verbs.cpp:2856 -msgid "View Layers" -msgstr "Mostra i livelli" +#: ../src/verbs.cpp:2443 +msgid "Extract group from a symbol" +msgstr "" -#: ../src/verbs.cpp:2857 -#, fuzzy -msgid "Path E_ffects ..." -msgstr "Editor effetti su tracciato..." +#: ../src/verbs.cpp:2444 +msgid "Clea_r All" +msgstr "Elimina tu_tto" -#: ../src/verbs.cpp:2858 -msgid "Manage, edit, and apply path effects" -msgstr "Gestisce, modifica e applica effetti su tracciato" +#: ../src/verbs.cpp:2445 +msgid "Delete all objects from document" +msgstr "Elimina tutti gli oggetti dal documento" -#: ../src/verbs.cpp:2859 -#, fuzzy -msgid "Filter _Editor..." -msgstr "Editor filtri..." +#: ../src/verbs.cpp:2446 +msgid "Select Al_l" +msgstr "Se_leziona tutto" -#: ../src/verbs.cpp:2860 -msgid "Manage, edit, and apply SVG filters" -msgstr "Gestisce, modifica e applica filtri SVG" +#: ../src/verbs.cpp:2447 +msgid "Select all objects or all nodes" +msgstr "Seleziona tutti gli oggetti o nodi" -#: ../src/verbs.cpp:2861 -msgid "SVG Font Editor..." -msgstr "Editor font SVG..." +#: ../src/verbs.cpp:2448 +msgid "Select All in All La_yers" +msgstr "Seleziona tutto in ogni li_vello" -#: ../src/verbs.cpp:2862 -msgid "Edit SVG fonts" -msgstr "Modifica font SVG" +#: ../src/verbs.cpp:2449 +msgid "Select all objects in all visible and unlocked layers" +msgstr "Seleziona tutti gli oggetti in tutti i livelli visibili e sbloccati" -#: ../src/verbs.cpp:2863 -#, fuzzy -msgid "Print Colors..." -msgstr "Stam_pa..." +#: ../src/verbs.cpp:2450 +msgid "Fill _and Stroke" +msgstr "_Riempimento e Contorni" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2451 msgid "" -"Select which color separations to render in Print Colors Preview rendermode" +"Select all objects with the same fill and stroke as the selected objects" msgstr "" +"Seleziona tutti gli oggetti con lo stesso riempimento e contorno " +"dell'oggetto selezionato" -#: ../src/verbs.cpp:2865 -#, fuzzy -msgid "_Export PNG Image..." -msgstr "Estrai immagine" - -#: ../src/verbs.cpp:2866 -#, fuzzy -msgid "Export this document or a selection as a PNG image" -msgstr "Esporta questo documento o una selezione come un'immagine bitmap" +#: ../src/verbs.cpp:2452 +msgid "_Fill Color" +msgstr "Colore _riempimento" -#. Help -#: ../src/verbs.cpp:2868 -msgid "About E_xtensions" -msgstr "Informazioni sulle e_stensioni" +#: ../src/verbs.cpp:2453 +msgid "Select all objects with the same fill as the selected objects" +msgstr "" +"Seleziona tutti gli oggetti con lo stesso riempimento dell'oggetto " +"selezionato" -#: ../src/verbs.cpp:2869 -msgid "Information on Inkscape extensions" -msgstr "Informazioni sulle estensioni di Inkscape" +#: ../src/verbs.cpp:2454 +msgid "_Stroke Color" +msgstr "Colore _contorno" -#: ../src/verbs.cpp:2870 -msgid "About _Memory" -msgstr "Informazioni sulla _memoria" +#: ../src/verbs.cpp:2455 +msgid "Select all objects with the same stroke as the selected objects" +msgstr "" +"Seleziona tutti gli oggetti con lo stesso contorno dell'oggetto selezionato" -#: ../src/verbs.cpp:2871 -msgid "Memory usage information" -msgstr "Informazioni sull'uso della memoria" +#: ../src/verbs.cpp:2456 +msgid "Stroke St_yle" +msgstr "St_ile contorno" -#: ../src/verbs.cpp:2872 -msgid "_About Inkscape" -msgstr "Inform_azioni su Inkscape" +#: ../src/verbs.cpp:2457 +msgid "" +"Select all objects with the same stroke style (width, dash, markers) as the " +"selected objects" +msgstr "" +"Seleziona tutti gli oggetti con lo stesso stile contorno (larghezza, " +"tratteggio, delimitatori) dell'oggetto selezionato" -#: ../src/verbs.cpp:2873 -msgid "Inkscape version, authors, license" -msgstr "Versione, autori e licenza di Inkscape" +#: ../src/verbs.cpp:2458 +msgid "_Object Type" +msgstr "Tipo _oggetto" -#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), -#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), -#. Tutorials -#: ../src/verbs.cpp:2878 -msgid "Inkscape: _Basic" -msgstr "Inkscape: _Base" +#: ../src/verbs.cpp:2459 +msgid "" +"Select all objects with the same object type (rect, arc, text, path, bitmap " +"etc) as the selected objects" +msgstr "" +"Seleziona tutti gli oggetti con lo stesso tipo oggetto (rettangolo, arco, " +"tracciato, bitmap etc) dell'oggetto selezionato" -#: ../src/verbs.cpp:2879 -msgid "Getting started with Inkscape" -msgstr "Primi passi con Inkscape" +#: ../src/verbs.cpp:2460 +msgid "In_vert Selection" +msgstr "In_verti selezione" -#. "tutorial_basic" -#: ../src/verbs.cpp:2880 -msgid "Inkscape: _Shapes" -msgstr "Ink_scape: Forme" +#: ../src/verbs.cpp:2461 +msgid "Invert selection (unselect what is selected and select everything else)" +msgstr "" +"Inverte la selezione (deseleziona quel che è selezionato e seleziona tutto " +"il resto)" -#: ../src/verbs.cpp:2881 -msgid "Using shape tools to create and edit shapes" -msgstr "Utilizzo degli strumenti per creare e modificare forme" +#: ../src/verbs.cpp:2462 +msgid "Invert in All Layers" +msgstr "Inverti in tutti livelli" -#: ../src/verbs.cpp:2882 -msgid "Inkscape: _Advanced" -msgstr "Inkscape: _Avanzato" +#: ../src/verbs.cpp:2463 +msgid "Invert selection in all visible and unlocked layers" +msgstr "Inverte la selezione in tutti i livelli visibili e sbloccati" -#: ../src/verbs.cpp:2883 -msgid "Advanced Inkscape topics" -msgstr "Lezioni avanzate su Inkscape" +#: ../src/verbs.cpp:2464 +msgid "Select Next" +msgstr "Seleziona successivo" -#. "tutorial_advanced" -#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2885 -msgid "Inkscape: T_racing" -msgstr "Inkscape: Vetto_rizzazione" +#: ../src/verbs.cpp:2465 +msgid "Select next object or node" +msgstr "Seleziona nodo o oggetto successivo" -#: ../src/verbs.cpp:2886 -msgid "Using bitmap tracing" -msgstr "Utilizzo della vettorizzazione delle immagini" +#: ../src/verbs.cpp:2466 +msgid "Select Previous" +msgstr "Seleziona precedente" -#. "tutorial_tracing" -#: ../src/verbs.cpp:2887 -#, fuzzy -msgid "Inkscape: Tracing Pixel Art" -msgstr "Inkscape: Vetto_rizzazione" +#: ../src/verbs.cpp:2467 +msgid "Select previous object or node" +msgstr "Seleziona nodo o oggetto precedente" -#: ../src/verbs.cpp:2888 -msgid "Using Trace Pixel Art dialog" -msgstr "" +#: ../src/verbs.cpp:2468 +msgid "D_eselect" +msgstr "D_eseleziona" -#: ../src/verbs.cpp:2889 -msgid "Inkscape: _Calligraphy" -msgstr "Inks_cape: Pennino" +#: ../src/verbs.cpp:2469 +msgid "Deselect any selected objects or nodes" +msgstr "Deseleziona tutti i nodi o gli oggetti selezionati" -#: ../src/verbs.cpp:2890 -msgid "Using the Calligraphy pen tool" -msgstr "Utilizzo del Pennino" +#: ../src/verbs.cpp:2471 +msgid "Delete all the guides in the document" +msgstr "Elimina tutte le guide nel documento" -#: ../src/verbs.cpp:2891 -#, fuzzy -msgid "Inkscape: _Interpolate" -msgstr "Ink_scape: Forme" +#: ../src/verbs.cpp:2472 +msgid "Create _Guides Around the Page" +msgstr "Crea _guide intorno alla pagina" -#: ../src/verbs.cpp:2892 -msgid "Using the interpolate extension" -msgstr "" +#: ../src/verbs.cpp:2473 +msgid "Create four guides aligned with the page borders" +msgstr "Crea quattro guide allineate con i bordi della pagina" -#. "tutorial_interpolate" -#: ../src/verbs.cpp:2893 -msgid "_Elements of Design" -msgstr "_Elementi di grafica" +#: ../src/verbs.cpp:2474 +msgid "Next path effect parameter" +msgstr "Parametro successivo effetto su tracciato" -#: ../src/verbs.cpp:2894 -msgid "Principles of design in the tutorial form" -msgstr "Principi di grafica" +#: ../src/verbs.cpp:2475 +#, fuzzy +msgid "Show next editable path effect parameter" +msgstr "Parametro successivo effetto su tracciato" -#. "tutorial_design" -#: ../src/verbs.cpp:2895 -msgid "_Tips and Tricks" -msgstr "_Trucchi" +#. Selection +#: ../src/verbs.cpp:2478 +msgid "Raise to _Top" +msgstr "Spos_ta in cima" -#: ../src/verbs.cpp:2896 -msgid "Miscellaneous tips and tricks" -msgstr "Trucchi vari" +#: ../src/verbs.cpp:2479 +msgid "Raise selection to top" +msgstr "Sposta la selezione in cima" -#. "tutorial_tips" -#. Effect -- renamed Extension -#: ../src/verbs.cpp:2899 -#, fuzzy -msgid "Previous Exte_nsion" -msgstr "Estensione precedente" +#: ../src/verbs.cpp:2480 +msgid "Lower to _Bottom" +msgstr "Sposta in fondo" -#: ../src/verbs.cpp:2900 -msgid "Repeat the last extension with the same settings" -msgstr "Ripete l'ultima estensione con le stesse impostazioni" +#: ../src/verbs.cpp:2481 +msgid "Lower selection to bottom" +msgstr "Sposta la selezione in fondo" -#: ../src/verbs.cpp:2901 -#, fuzzy -msgid "_Previous Extension Settings..." -msgstr "Impostazioni estensione precedente..." +#: ../src/verbs.cpp:2482 +msgid "_Raise" +msgstr "Al_za" -#: ../src/verbs.cpp:2902 -msgid "Repeat the last extension with new settings" -msgstr "Ripete l'ultima estensione con nuove impostazioni" +#: ../src/verbs.cpp:2483 +msgid "Raise selection one step" +msgstr "Alza la selezione di un livello" -#: ../src/verbs.cpp:2906 -msgid "Fit the page to the current selection" -msgstr "Adatta la pagina alla selezione attuale" +#: ../src/verbs.cpp:2484 +msgid "_Lower" +msgstr "A_bbassa" -#: ../src/verbs.cpp:2908 -msgid "Fit the page to the drawing" -msgstr "Adatta la pagina al disegno" +#: ../src/verbs.cpp:2485 +msgid "Lower selection one step" +msgstr "Abbassa la selezione di un livello" -#: ../src/verbs.cpp:2910 -msgid "" -"Fit the page to the current selection or the drawing if there is no selection" -msgstr "" -"Adatta la pagina alla selezione attuale o al disegno se non è selezionato " -"nulla" +#: ../src/verbs.cpp:2487 +msgid "Group selected objects" +msgstr "Raggruppa gli oggetti selezionati" -#. LockAndHide -#: ../src/verbs.cpp:2912 -msgid "Unlock All" -msgstr "Sblocca tutto" +#: ../src/verbs.cpp:2489 +msgid "Ungroup selected groups" +msgstr "Divide il gruppo selezionato" -#: ../src/verbs.cpp:2914 -msgid "Unlock All in All Layers" -msgstr "Sblocca tutto in ogni livello" +#: ../src/verbs.cpp:2491 +msgid "_Put on Path" +msgstr "Metti su tracciato" -#: ../src/verbs.cpp:2916 -msgid "Unhide All" -msgstr "Mostra tutto" +#: ../src/verbs.cpp:2493 +msgid "_Remove from Path" +msgstr "_Rimuovi dal tracciato" -#: ../src/verbs.cpp:2918 -msgid "Unhide All in All Layers" -msgstr "Mostra tutto in ogni livello" +#: ../src/verbs.cpp:2495 +msgid "Remove Manual _Kerns" +msgstr "Rimuovi trasformazioni" -#: ../src/verbs.cpp:2922 -msgid "Link an ICC color profile" -msgstr "Collega un profilo colore ICC" +#. TRANSLATORS: "glyph": An image used in the visual representation of characters; +#. roughly speaking, how a character looks. A font is a set of glyphs. +#: ../src/verbs.cpp:2498 +msgid "Remove all manual kerns and glyph rotations from a text object" +msgstr "Rimuove tutte le trasformazioni e rotazioni da un oggetto testuale" -#: ../src/verbs.cpp:2923 -msgid "Remove Color Profile" -msgstr "Rimuovi profilo colore" +#: ../src/verbs.cpp:2500 +msgid "_Union" +msgstr "_Unione" -#: ../src/verbs.cpp:2924 -msgid "Remove a linked ICC color profile" -msgstr "Rimuove un profilo colore ICC collegato" +#: ../src/verbs.cpp:2501 +msgid "Create union of selected paths" +msgstr "Crea un'unione dei tracciati selezionati" -#: ../src/verbs.cpp:2927 -#, fuzzy -msgid "Add External Script" -msgstr "Aggiungi script esterni..." +#: ../src/verbs.cpp:2502 +msgid "_Intersection" +msgstr "_Intersezione" -#: ../src/verbs.cpp:2927 -#, fuzzy -msgid "Add an external script" -msgstr "Aggiungi script esterni..." +#: ../src/verbs.cpp:2503 +msgid "Create intersection of selected paths" +msgstr "Crea un'intersezione tra i percorsi selezionati" -#: ../src/verbs.cpp:2929 -#, fuzzy -msgid "Add Embedded Script" -msgstr "Aggiungi script esterni..." +#: ../src/verbs.cpp:2504 +msgid "_Difference" +msgstr "_Differenza" -#: ../src/verbs.cpp:2929 -#, fuzzy -msgid "Add an embedded script" -msgstr "Aggiungi script esterni..." +#: ../src/verbs.cpp:2505 +msgid "Create difference of selected paths (bottom minus top)" +msgstr "Differenza tra gli oggetti selezionati (superiore meno inferiore)" -#: ../src/verbs.cpp:2931 -#, fuzzy -msgid "Edit Embedded Script" -msgstr "Rimuovi griglia" +#: ../src/verbs.cpp:2506 +msgid "E_xclusion" +msgstr "E_sclusione" -#: ../src/verbs.cpp:2931 -#, fuzzy -msgid "Edit an embedded script" -msgstr "Rimuovi griglia" +#: ../src/verbs.cpp:2507 +msgid "" +"Create exclusive OR of selected paths (those parts that belong to only one " +"path)" +msgstr "" +"Esegue un OR esclusivo tra i tracciati selezionati (quelle parti che " +"appartengono ad un solo tracciato)" -#: ../src/verbs.cpp:2933 -#, fuzzy -msgid "Remove External Script" -msgstr "Rimuovi script esterni" +#: ../src/verbs.cpp:2508 +msgid "Di_vision" +msgstr "Di_visione" -#: ../src/verbs.cpp:2933 -#, fuzzy -msgid "Remove an external script" -msgstr "Rimuovi script esterni" +#: ../src/verbs.cpp:2509 +msgid "Cut the bottom path into pieces" +msgstr "Taglia il tracciato inferiore in pezzi" -#: ../src/verbs.cpp:2935 -#, fuzzy -msgid "Remove Embedded Script" -msgstr "Rimuovi griglia" +#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the +#. Advanced tutorial for more info +#: ../src/verbs.cpp:2512 +msgid "Cut _Path" +msgstr "Taglia _tracciato" -#: ../src/verbs.cpp:2935 -#, fuzzy -msgid "Remove an embedded script" -msgstr "Rimuovi griglia" +#: ../src/verbs.cpp:2513 +msgid "Cut the bottom path's stroke into pieces, removing fill" +msgstr "" +"Taglia il contorno del tracciato inferiore in pezzi, rimuovendo il " +"riempimento" -#: ../src/verbs.cpp:2957 ../src/verbs.cpp:2958 -#, fuzzy -msgid "Center on horizontal and vertical axis" -msgstr "Centra sull'asse orizzontale" +#. TRANSLATORS: "outset": expand a shape by offsetting the object's path, +#. i.e. by displacing it perpendicular to the path in each point. +#. See also the Advanced Tutorial for explanation. +#: ../src/verbs.cpp:2517 +msgid "Outs_et" +msgstr "_Estrudi" -#: ../src/widgets/arc-toolbar.cpp:131 -msgid "Arc: Change start/end" -msgstr "Arco: Modifica inizio/fine" +#: ../src/verbs.cpp:2518 +msgid "Outset selected paths" +msgstr "Estrude il tracciato selezionato" -#: ../src/widgets/arc-toolbar.cpp:197 -msgid "Arc: Change open/closed" -msgstr "Arco: Commuta aperto/chiuso" +#: ../src/verbs.cpp:2520 +msgid "O_utset Path by 1 px" +msgstr "Estr_udi Tracciato di 1px" -#: ../src/widgets/arc-toolbar.cpp:288 ../src/widgets/arc-toolbar.cpp:317 -#: ../src/widgets/rect-toolbar.cpp:258 ../src/widgets/rect-toolbar.cpp:296 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:383 ../src/widgets/star-toolbar.cpp:444 -msgid "New:" -msgstr "Nuovo:" +#: ../src/verbs.cpp:2521 +msgid "Outset selected paths by 1 px" +msgstr "Estrude il tracciato selezionato di 1px" -#. FIXME: implement averaging of all parameters for multiple selected -#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); -#: ../src/widgets/arc-toolbar.cpp:291 ../src/widgets/arc-toolbar.cpp:302 -#: ../src/widgets/rect-toolbar.cpp:266 ../src/widgets/rect-toolbar.cpp:284 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:385 -msgid "Change:" -msgstr "Cambia:" +#: ../src/verbs.cpp:2523 +msgid "O_utset Path by 10 px" +msgstr "Estr_udi Tracciato di 10px" -#: ../src/widgets/arc-toolbar.cpp:326 -msgid "Start:" -msgstr "Inizio:" +#: ../src/verbs.cpp:2524 +msgid "Outset selected paths by 10 px" +msgstr "Estrude il tracciato selezionato di 10px" -#: ../src/widgets/arc-toolbar.cpp:327 -msgid "The angle (in degrees) from the horizontal to the arc's start point" -msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" +#. TRANSLATORS: "inset": contract a shape by offsetting the object's path, +#. i.e. by displacing it perpendicular to the path in each point. +#. See also the Advanced Tutorial for explanation. +#: ../src/verbs.cpp:2528 +msgid "I_nset" +msgstr "I_ntrudi" -#: ../src/widgets/arc-toolbar.cpp:339 -msgid "End:" -msgstr "Fine:" +#: ../src/verbs.cpp:2529 +msgid "Inset selected paths" +msgstr "Intrude il tracciato selezionato" -#: ../src/widgets/arc-toolbar.cpp:340 -msgid "The angle (in degrees) from the horizontal to the arc's end point" -msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" +#: ../src/verbs.cpp:2531 +msgid "I_nset Path by 1 px" +msgstr "I_ntrudi Tracciato di 1px" -#: ../src/widgets/arc-toolbar.cpp:356 -msgid "Closed arc" -msgstr "Arco chiuso" +#: ../src/verbs.cpp:2532 +msgid "Inset selected paths by 1 px" +msgstr "Intrude il tracciato selezionato di 1px" -#: ../src/widgets/arc-toolbar.cpp:357 -msgid "Switch to segment (closed shape with two radii)" -msgstr "Commuta in segmento (forma chiusa con due raggi)" +#: ../src/verbs.cpp:2534 +msgid "I_nset Path by 10 px" +msgstr "I_ntrudi Tracciato di 10px" -#: ../src/widgets/arc-toolbar.cpp:363 -msgid "Open Arc" -msgstr "Arco aperto" +#: ../src/verbs.cpp:2535 +msgid "Inset selected paths by 10 px" +msgstr "Intrude il tracciato selezionato di 10px" -#: ../src/widgets/arc-toolbar.cpp:364 -msgid "Switch to arc (unclosed shape)" -msgstr "Trasforma in arco (forma aperta)" +#: ../src/verbs.cpp:2537 +msgid "D_ynamic Offset" +msgstr "Proiezione dina_mica" -#: ../src/widgets/arc-toolbar.cpp:387 -msgid "Make whole" -msgstr "Rendi intero" +#: ../src/verbs.cpp:2537 +msgid "Create a dynamic offset object" +msgstr "Crea una proiezione dinamica" -#: ../src/widgets/arc-toolbar.cpp:388 -msgid "Make the shape a whole ellipse, not arc or segment" -msgstr "Rende la forma in un ellisse intero, non un arco o un segmento" +#: ../src/verbs.cpp:2539 +msgid "_Linked Offset" +msgstr "Proiezione co_llegata" -#. TODO: use the correct axis here, too -#: ../src/widgets/box3d-toolbar.cpp:232 -msgid "3D Box: Change perspective (angle of infinite axis)" -msgstr "Solido 3D: cambia prospettiva (angolo degli assi prospettici)" +#: ../src/verbs.cpp:2540 +msgid "Create a dynamic offset object linked to the original path" +msgstr "Crea una proiezione dinamica del tracciato originale" -#: ../src/widgets/box3d-toolbar.cpp:299 -msgid "Angle in X direction" -msgstr "Angolo sulla direzione X" +#: ../src/verbs.cpp:2542 +msgid "_Stroke to Path" +msgstr "Da _linea a tracciato" -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:301 -msgid "Angle of PLs in X direction" -msgstr "Angolo degli assi prospettici lungo la direzione X" +#: ../src/verbs.cpp:2543 +msgid "Convert selected object's stroke to paths" +msgstr "Converte in tracciati i contorni degli oggetti selezionati" -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:323 -msgid "State of VP in X direction" -msgstr "Stato del punto di fuga sulla direzione X" +#: ../src/verbs.cpp:2544 +msgid "Si_mplify" +msgstr "Se_mplifica" -#: ../src/widgets/box3d-toolbar.cpp:324 -msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" -msgstr "" -"Imposta il punto di fuga sulla direzione X come «finito» o " -"«infinito» (=parallelo)" +#: ../src/verbs.cpp:2545 +msgid "Simplify selected paths (remove extra nodes)" +msgstr "Semplifica il tracciato selezionato (rimuovendo nodi superflui)" -#: ../src/widgets/box3d-toolbar.cpp:339 -msgid "Angle in Y direction" -msgstr "Angolo sulla direzione Y" +#: ../src/verbs.cpp:2546 +msgid "_Reverse" +msgstr "Inve_rti" -#: ../src/widgets/box3d-toolbar.cpp:339 -msgid "Angle Y:" -msgstr "Angolo Y:" +#: ../src/verbs.cpp:2547 +msgid "Reverse the direction of selected paths (useful for flipping markers)" +msgstr "" +"Inverte la direzione dei tracciati selezionati (utile per riflettere i " +"delimitatori)" -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:341 -msgid "Angle of PLs in Y direction" -msgstr "Angolo degli assi prospettici lungo la direzione Y" +#: ../src/verbs.cpp:2550 +msgid "Create one or more paths from a bitmap by tracing it" +msgstr "Crea uno o piĂą tracciati da una bitmap tramite la vettorizzazione" -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:362 -msgid "State of VP in Y direction" -msgstr "Stato del punto di fuga sulla direzione Y" +#: ../src/verbs.cpp:2551 +#, fuzzy +msgid "Trace Pixel Art..." +msgstr "Ve_ttorizza bitmap..." -#: ../src/widgets/box3d-toolbar.cpp:363 -msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" +#: ../src/verbs.cpp:2552 +msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" -"Imposta il punto di fuga sulla direzione Y come «finito» o " -"«infinito» (=parallelo)" -#: ../src/widgets/box3d-toolbar.cpp:378 -msgid "Angle in Z direction" -msgstr "Angolo sulla direzione Z" +#: ../src/verbs.cpp:2553 +msgid "Make a _Bitmap Copy" +msgstr "Crea una copia bit_map" -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:380 -msgid "Angle of PLs in Z direction" -msgstr "Angolo degli assi prospettici lungo la direzione Z" +#: ../src/verbs.cpp:2554 +msgid "Export selection to a bitmap and insert it into document" +msgstr "Esporta la selezione come bitmap e la inserisce nel documento" -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:401 -msgid "State of VP in Z direction" -msgstr "Stato del punto di fuga sulla direzione Z" +#: ../src/verbs.cpp:2555 +msgid "_Combine" +msgstr "_Combina" -#: ../src/widgets/box3d-toolbar.cpp:402 -msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" -msgstr "" -"Imposta il punto di fuga sulla direzione Z come «finito» o " -"«infinito» (=parallelo)" +#: ../src/verbs.cpp:2556 +msgid "Combine several paths into one" +msgstr "Combina diversi tracciati in uno unico" -#. gint preset_index = ege_select_one_action_get_active( sel ); -#: ../src/widgets/calligraphy-toolbar.cpp:218 -#: ../src/widgets/calligraphy-toolbar.cpp:262 -#: ../src/widgets/calligraphy-toolbar.cpp:267 -msgid "No preset" -msgstr "Nessuna preselezione" +#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the +#. Advanced tutorial for more info +#: ../src/verbs.cpp:2559 +msgid "Break _Apart" +msgstr "Sep_ara" -#. Width -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 -msgid "(hairline)" -msgstr "(tratto finissimo)" +#: ../src/verbs.cpp:2560 +msgid "Break selected paths into subpaths" +msgstr "Separa il tracciato selezionato in sotto-tracciati" -#. Mean -#. Rotation -#. Scale -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:269 -#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 -#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 -#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 -#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(default)" -msgstr "(predefinito)" +#: ../src/verbs.cpp:2561 +msgid "_Arrange..." +msgstr "_Ordina..." -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 -msgid "(broad stroke)" -msgstr "(tratto ampio)" +#: ../src/verbs.cpp:2562 +msgid "Arrange selected objects in a table or circle" +msgstr "Ordina gli oggetti selezionati in una tabella o in un cerchio" -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 -msgid "Pen Width" -msgstr "Larghezza pennino" +#. Layer +#: ../src/verbs.cpp:2564 +msgid "_Add Layer..." +msgstr "_Aggiungi livello..." -#: ../src/widgets/calligraphy-toolbar.cpp:431 -msgid "The width of the calligraphic pen (relative to the visible canvas area)" -msgstr "La larghezza del pennino (relativa all'area visibile)" +#: ../src/verbs.cpp:2565 +msgid "Create a new layer" +msgstr "Crea un nuovo livello" -#. Thinning -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(speed blows up stroke)" -msgstr "(sbava crescendo di velocitĂ )" +#: ../src/verbs.cpp:2566 +msgid "Re_name Layer..." +msgstr "Rinomi_na livello..." -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(slight widening)" -msgstr "(lieve sbavatura)" +#: ../src/verbs.cpp:2567 +msgid "Rename the current layer" +msgstr "Rinomina il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(constant width)" -msgstr "(larghezza costante)" +#: ../src/verbs.cpp:2568 +msgid "Switch to Layer Abov_e" +msgstr "Passa al livello superiore" -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(slight thinning, default)" -msgstr "(lieve assottigliamento, predefinito)" +#: ../src/verbs.cpp:2569 +msgid "Switch to the layer above the current" +msgstr "Passa al livello superiore all'attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(speed deflates stroke)" -msgstr "(assotigliato dalla velocitĂ )" +#: ../src/verbs.cpp:2570 +msgid "Switch to Layer Belo_w" +msgstr "Passa al livello inferiore" -#: ../src/widgets/calligraphy-toolbar.cpp:447 -msgid "Stroke Thinning" -msgstr "Diradamento tratto" +#: ../src/verbs.cpp:2571 +msgid "Switch to the layer below the current" +msgstr "Passa al livello inferiore all'attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:447 -msgid "Thinning:" -msgstr "Diradamento:" +#: ../src/verbs.cpp:2572 +msgid "Move Selection to Layer Abo_ve" +msgstr "Sposta selezione al li_vello superiore" -#: ../src/widgets/calligraphy-toolbar.cpp:448 -msgid "" -"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " -"makes them broader, 0 makes width independent of velocity)" -msgstr "" -"La velocitĂ  di diradamento del contorno (> 0 tratti piĂą netti, < 0 tratti " -"piĂą larghi; 0 la larghezza è indipendente dalla velocitĂ )" +#: ../src/verbs.cpp:2573 +msgid "Move selection to the layer above the current" +msgstr "Sposta selezione al livello superiore all'attuale" -#. Angle -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(left edge up)" -msgstr "(lato sinistro in alto)" +#: ../src/verbs.cpp:2574 +msgid "Move Selection to Layer Bel_ow" +msgstr "Sposta selezione al li_vello inferiore" -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(horizontal)" -msgstr "(orizzontale)" +#: ../src/verbs.cpp:2575 +msgid "Move selection to the layer below the current" +msgstr "Sposta selezione al livello inferiore all'attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(right edge up)" -msgstr "(lato destro in alto)" +#: ../src/verbs.cpp:2576 +msgid "Move Selection to Layer..." +msgstr "Sposta selezione al li_vello..." -#: ../src/widgets/calligraphy-toolbar.cpp:463 -msgid "Pen Angle" -msgstr "Angolo de" +#: ../src/verbs.cpp:2578 +msgid "Layer to _Top" +msgstr "Spos_ta livello in cima" -#: ../src/widgets/calligraphy-toolbar.cpp:463 -#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 -msgid "Angle:" -msgstr "Angolo:" +#: ../src/verbs.cpp:2579 +msgid "Raise the current layer to the top" +msgstr "Sposta il livello attuale in cima" -#: ../src/widgets/calligraphy-toolbar.cpp:464 -msgid "" -"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " -"fixation = 0)" -msgstr "" -"L'angolazione della penna (in gradi; 0 = orizzontale; non ha effetto se " -"incidenza = 0)" +#: ../src/verbs.cpp:2580 +msgid "Layer to _Bottom" +msgstr "Sposta livello in fon_do" -#. Fixation -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(perpendicular to stroke, \"brush\")" -msgstr "(perpendicolare alla direzione, \"pennello\")" +#: ../src/verbs.cpp:2581 +msgid "Lower the current layer to the bottom" +msgstr "Sposta il livello attuale in fondo" -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(almost fixed, default)" -msgstr "(quasi fisso, predefinito)" +#: ../src/verbs.cpp:2582 +msgid "_Raise Layer" +msgstr "Alza li_vello" -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(fixed by Angle, \"pen\")" -msgstr "(fissato dall'Angolo, penna)" +#: ../src/verbs.cpp:2583 +msgid "Raise the current layer" +msgstr "Alza il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:481 -msgid "Fixation" -msgstr "Incidenza" +#: ../src/verbs.cpp:2584 +msgid "_Lower Layer" +msgstr "Abbassa _livello" -#: ../src/widgets/calligraphy-toolbar.cpp:481 -msgid "Fixation:" -msgstr "Incidenza:" +#: ../src/verbs.cpp:2585 +msgid "Lower the current layer" +msgstr "Abbassa il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:482 -msgid "" -"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " -"fixed angle)" -msgstr "" -"Angolo di incidenza (0 = pennino sempre perpendicolare alla direzione, 100 = " -"angolo fisso)" +#: ../src/verbs.cpp:2586 +msgid "D_uplicate Current Layer" +msgstr "Duplica livello attuale" -#. Cap Rounding -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(blunt caps, default)" -msgstr "(margine netto, predefinito)" +#: ../src/verbs.cpp:2587 +msgid "Duplicate an existing layer" +msgstr "Duplica un livello esistente" -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(slightly bulging)" -msgstr "(lievemente arrotondato)" +#: ../src/verbs.cpp:2588 +msgid "_Delete Current Layer" +msgstr "Elimina livello a_ttuale" -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(approximately round)" -msgstr "(arrotondato)" +#: ../src/verbs.cpp:2589 +msgid "Delete the current layer" +msgstr "Elimina il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(long protruding caps)" -msgstr "(estremi molto protrudenti)" +#: ../src/verbs.cpp:2590 +msgid "_Show/hide other layers" +msgstr "Mostra/Nascondi altri livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:498 -msgid "Cap rounding" -msgstr "Arrotondamento estremi" +#: ../src/verbs.cpp:2591 +msgid "Solo the current layer" +msgstr "Solamente il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:498 -msgid "Caps:" -msgstr "Estremi:" +#: ../src/verbs.cpp:2592 +msgid "_Show all layers" +msgstr "_Mostra tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:499 -msgid "" -"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " -"round caps)" -msgstr "" -"Aumentare il valore per avere maggior protrusione degli spigoli di fine " -"contorno (0 = nessuno spigolo, 1 = spigolo arrotondato)" +#: ../src/verbs.cpp:2593 +msgid "Show all the layers" +msgstr "Mostra tutti i livelli" -#. Tremor -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(smooth line)" -msgstr "(linea dritta)" +#: ../src/verbs.cpp:2594 +msgid "_Hide all layers" +msgstr "_Nascondi tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(slight tremor)" -msgstr "(leggero tremore)" +#: ../src/verbs.cpp:2595 +msgid "Hide all the layers" +msgstr "Nascondi tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(noticeable tremor)" -msgstr "(tremore notevole)" +#: ../src/verbs.cpp:2596 +msgid "_Lock all layers" +msgstr "B_locca tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(maximum tremor)" -msgstr "(tremore massimo)" +#: ../src/verbs.cpp:2597 +msgid "Lock all the layers" +msgstr "Blocca tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:514 -msgid "Stroke Tremor" -msgstr "Tremore tratto" +#: ../src/verbs.cpp:2598 +#, fuzzy +msgid "Lock/Unlock _other layers" +msgstr "Blocca o sblocca il livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:514 -msgid "Tremor:" -msgstr "Tremore:" +#: ../src/verbs.cpp:2599 +#, fuzzy +msgid "Lock all the other layers" +msgstr "Mostra/nascondi altri livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:515 -msgid "Increase to make strokes rugged and trembling" -msgstr "Aumentare per rendere il tratto increspato e tremolante" +#: ../src/verbs.cpp:2600 +msgid "_Unlock all layers" +msgstr "_Sblocca tutti i livelli" -#. Wiggle -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(no wiggle)" -msgstr "(nessuna ondulazione)" +#: ../src/verbs.cpp:2601 +msgid "Unlock all the layers" +msgstr "Sblocca tutti i livelli" -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(slight deviation)" -msgstr "(leggera deviazione)" +#: ../src/verbs.cpp:2602 +msgid "_Lock/Unlock Current Layer" +msgstr "_Blocca/Sblocca livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(wild waves and curls)" -msgstr "(forte increspatura)" +#: ../src/verbs.cpp:2603 +msgid "Toggle lock on current layer" +msgstr "Imposta il blocco del livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:532 -msgid "Pen Wiggle" -msgstr "Ondulazione pennino" +#: ../src/verbs.cpp:2604 +msgid "_Show/hide Current Layer" +msgstr "_Mostra/Nascondi livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:532 -msgid "Wiggle:" -msgstr "Ondulazione:" +#: ../src/verbs.cpp:2605 +msgid "Toggle visibility of current layer" +msgstr "Imposta la visibilitĂ  del livello attuale" -#: ../src/widgets/calligraphy-toolbar.cpp:533 -msgid "Increase to make the pen waver and wiggle" -msgstr "Aumentare per rendere la scrittura piĂą ondulata" +#. Object +#: ../src/verbs.cpp:2608 +msgid "Rotate _90° CW" +msgstr "Ruota di _90° orari" -#. Mass -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(no inertia)" -msgstr "(nessun'inerzia)" +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2611 +msgid "Rotate selection 90° clockwise" +msgstr "Ruota la selezione di 90° orari" -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(slight smoothing, default)" -msgstr "(leggero ritardo, predefinito)" +#: ../src/verbs.cpp:2612 +msgid "Rotate 9_0° CCW" +msgstr "Ruota di 9_0° anti-orari" -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(noticeable lagging)" -msgstr "(ritardo apprezzabile)" +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2615 +msgid "Rotate selection 90° counter-clockwise" +msgstr "Ruota la selezione di 90° anti-orari" -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(maximum inertia)" -msgstr "(inerzia massima)" +#: ../src/verbs.cpp:2616 +msgid "Remove _Transformations" +msgstr "Rimuovi _trasformazioni" -#: ../src/widgets/calligraphy-toolbar.cpp:549 -msgid "Pen Mass" -msgstr "Inerzia pennino" +#: ../src/verbs.cpp:2617 +msgid "Remove transformations from object" +msgstr "Rimuove le trasformazioni dall'oggetto" -#: ../src/widgets/calligraphy-toolbar.cpp:549 -msgid "Mass:" -msgstr "Inerzia:" +#: ../src/verbs.cpp:2618 +msgid "_Object to Path" +msgstr "Da _oggetto a tracciato" -#: ../src/widgets/calligraphy-toolbar.cpp:550 -msgid "Increase to make the pen drag behind, as if slowed by inertia" -msgstr "" -"Aumentare il valore per impostare il ritardo al pennino, come se fosse " -"rallentato per inerzia" +#: ../src/verbs.cpp:2619 +msgid "Convert selected object to path" +msgstr "Converte in tracciati gli oggetti selezionati" -#: ../src/widgets/calligraphy-toolbar.cpp:565 -msgid "Trace Background" -msgstr "Vettorizza sfondo" +#: ../src/verbs.cpp:2620 +msgid "_Flow into Frame" +msgstr "_Fluisci in struttura" -#: ../src/widgets/calligraphy-toolbar.cpp:566 +#: ../src/verbs.cpp:2621 msgid "" -"Trace the lightness of the background by the width of the pen (white - " -"minimum width, black - maximum width)" +"Put text into a frame (path or shape), creating a flowed text linked to the " +"frame object" msgstr "" -"Imitare la luminositĂ  dello sfondo con lo spessore del tratto a penna " -"(bianco - larghezza minima, nero - larghezza massima)" +"Mette il testo in una cornice (tracciato o forma), creando un testo dinamico " +"collegato alla cornice" -#: ../src/widgets/calligraphy-toolbar.cpp:579 -msgid "Use the pressure of the input device to alter the width of the pen" +#: ../src/verbs.cpp:2622 +msgid "_Unflow" +msgstr "Spe_zza" + +#: ../src/verbs.cpp:2623 +msgid "Remove text from frame (creates a single-line text object)" msgstr "" -"Usare la pressione del dispositivo di input per alterare la larghezza della " -"penna" +"Rimuove il testo dalla struttura (crea un oggetto testuale su una riga)" -#: ../src/widgets/calligraphy-toolbar.cpp:591 -msgid "Tilt" -msgstr "Tilt" +#: ../src/verbs.cpp:2624 +msgid "_Convert to Text" +msgstr "_Converti in testo" -#: ../src/widgets/calligraphy-toolbar.cpp:592 -msgid "Use the tilt of the input device to alter the angle of the pen's nib" +#: ../src/verbs.cpp:2625 +msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" -"Usare l'inclinazione della dispositivo di input per alterare l'angolo della " -"punta della penna" +"Converte in testo semplice il testo dinamico (mantiene le caratteristiche)" -#: ../src/widgets/calligraphy-toolbar.cpp:607 -msgid "Choose a preset" -msgstr "Usa una preselezione" +#: ../src/verbs.cpp:2627 +msgid "Flip _Horizontal" +msgstr "Rifletti _orizzontalmente" -#: ../src/widgets/calligraphy-toolbar.cpp:622 -#, fuzzy -msgid "Add/Edit Profile" -msgstr "Collega profilo" +#: ../src/verbs.cpp:2627 +msgid "Flip selected objects horizontally" +msgstr "Riflette orizzontalmente gli oggetti selezionati" -#: ../src/widgets/calligraphy-toolbar.cpp:623 -#, fuzzy -msgid "Add or edit calligraphic profile" -msgstr "Crea linee calligrafiche" +#: ../src/verbs.cpp:2630 +msgid "Flip _Vertical" +msgstr "Rifletti _verticalmente" -#: ../src/widgets/connector-toolbar.cpp:120 -msgid "Set connector type: orthogonal" +#: ../src/verbs.cpp:2630 +msgid "Flip selected objects vertically" +msgstr "Riflette verticalmente gli oggetti selezionati" + +#: ../src/verbs.cpp:2633 +msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" +"Applica la maschera alla selezione (usando come maschera l'oggetto superiore)" -#: ../src/widgets/connector-toolbar.cpp:120 -msgid "Set connector type: polyline" +#: ../src/verbs.cpp:2635 +msgid "Edit mask" +msgstr "Modifica maschera" + +#: ../src/verbs.cpp:2636 ../src/verbs.cpp:2642 +msgid "_Release" +msgstr "_Rimuovi" + +#: ../src/verbs.cpp:2637 +msgid "Remove mask from selection" +msgstr "Rimuovi la maschera dalla selezione" + +#: ../src/verbs.cpp:2639 +msgid "" +"Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" +"Applica il fissaggio alla selezione (usando l'oggetto piĂą alto come " +"tracciato di fissaggio)" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/verbs.cpp:2641 +msgid "Edit clipping path" +msgstr "Modifica fissaggio" + +#: ../src/verbs.cpp:2643 +msgid "Remove clipping path from selection" +msgstr "Rimuove il fissaggio dalla selezione" + +#. Tools +#: ../src/verbs.cpp:2646 #, fuzzy -msgid "Change connector curvature" -msgstr "Cambia spaziatura connettori" +msgctxt "ContextVerb" +msgid "Select" +msgstr "Seleziona" -#: ../src/widgets/connector-toolbar.cpp:220 -msgid "Change connector spacing" -msgstr "Cambia spaziatura connettori" +#: ../src/verbs.cpp:2647 +msgid "Select and transform objects" +msgstr "Seleziona e trasforma oggetti" -#: ../src/widgets/connector-toolbar.cpp:313 -msgid "Avoid" -msgstr "Evita" +#: ../src/verbs.cpp:2648 +#, fuzzy +msgctxt "ContextVerb" +msgid "Node Edit" +msgstr "Modifica nodo" -#: ../src/widgets/connector-toolbar.cpp:323 -msgid "Ignore" -msgstr "Ignora" +#: ../src/verbs.cpp:2649 +msgid "Edit paths by nodes" +msgstr "Modifica tracciati dai nodi" -#: ../src/widgets/connector-toolbar.cpp:334 -msgid "Orthogonal" -msgstr "" +#: ../src/verbs.cpp:2650 +#, fuzzy +msgctxt "ContextVerb" +msgid "Tweak" +msgstr "Ritocco" -#: ../src/widgets/connector-toolbar.cpp:335 -msgid "Make connector orthogonal or polyline" -msgstr "" +#: ../src/verbs.cpp:2651 +msgid "Tweak objects by sculpting or painting" +msgstr "Ritocca oggetti scolpendoli o ridipingendoli" -# -Luca -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/verbs.cpp:2652 #, fuzzy -msgid "Connector Curvature" -msgstr "Preferenze connettore" +msgctxt "ContextVerb" +msgid "Spray" +msgstr "Spirale" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/verbs.cpp:2653 #, fuzzy -msgid "Curvature:" -msgstr "curvatura minima" +msgid "Spray objects by sculpting or painting" +msgstr "Ritocca oggetti scolpendoli o ridipingendoli" -#: ../src/widgets/connector-toolbar.cpp:350 -msgid "The amount of connectors curvature" -msgstr "" +#: ../src/verbs.cpp:2654 +#, fuzzy +msgctxt "ContextVerb" +msgid "Rectangle" +msgstr "Rettangolo" -#: ../src/widgets/connector-toolbar.cpp:360 -msgid "Connector Spacing" -msgstr "Spaziatura connettori" +#: ../src/verbs.cpp:2655 +msgid "Create rectangles and squares" +msgstr "Crea rettangoli e quadrati" -#: ../src/widgets/connector-toolbar.cpp:360 -msgid "Spacing:" -msgstr "Spaziatura:" +#: ../src/verbs.cpp:2656 +#, fuzzy +msgctxt "ContextVerb" +msgid "3D Box" +msgstr "Solido 3D" -#: ../src/widgets/connector-toolbar.cpp:361 -msgid "The amount of space left around objects by auto-routing connectors" -msgstr "" -"Lo spazio da lasciare intorno agli oggetti quando si tracciano " -"automaticamente i connettori" +#: ../src/verbs.cpp:2657 +msgid "Create 3D boxes" +msgstr "Crea solido 3D" + +#: ../src/verbs.cpp:2658 +#, fuzzy +msgctxt "ContextVerb" +msgid "Ellipse" +msgstr "Ellisse" + +#: ../src/verbs.cpp:2659 +msgid "Create circles, ellipses, and arcs" +msgstr "Crea cerchi, ellissi e archi" + +#: ../src/verbs.cpp:2660 +#, fuzzy +msgctxt "ContextVerb" +msgid "Star" +msgstr "Stella" -#: ../src/widgets/connector-toolbar.cpp:372 -msgid "Graph" -msgstr "Grafico" +#: ../src/verbs.cpp:2661 +msgid "Create stars and polygons" +msgstr "Crea stelle e poligoni" -#: ../src/widgets/connector-toolbar.cpp:382 -msgid "Connector Length" -msgstr "Lunghezza connettori" +#: ../src/verbs.cpp:2662 +#, fuzzy +msgctxt "ContextVerb" +msgid "Spiral" +msgstr "Spirale" -#: ../src/widgets/connector-toolbar.cpp:382 -msgid "Length:" -msgstr "Lunghezza:" +#: ../src/verbs.cpp:2663 +msgid "Create spirals" +msgstr "Crea spirali" -#: ../src/widgets/connector-toolbar.cpp:383 -msgid "Ideal length for connectors when layout is applied" -msgstr "Lunghezza ideale dei connettori quando il modello è applicato" +#: ../src/verbs.cpp:2664 +#, fuzzy +msgctxt "ContextVerb" +msgid "Pencil" +msgstr "Pastello" -#: ../src/widgets/connector-toolbar.cpp:395 -msgid "Downwards" -msgstr "Contrario" +#: ../src/verbs.cpp:2665 +msgid "Draw freehand lines" +msgstr "Disegna linee a mano libera" -#: ../src/widgets/connector-toolbar.cpp:396 -msgid "Make connectors with end-markers (arrows) point downwards" -msgstr "" -"Fa sì che i connettori con delimitatori finali (frecce) puntino indietro" +#: ../src/verbs.cpp:2666 +#, fuzzy +msgctxt "ContextVerb" +msgid "Pen" +msgstr "Penna" -#: ../src/widgets/connector-toolbar.cpp:412 -msgid "Do not allow overlapping shapes" -msgstr "Non permettere la sovrapposizione delle forme" +#: ../src/verbs.cpp:2667 +msgid "Draw Bezier curves and straight lines" +msgstr "Disegna tracciati e linee dritte" -#: ../src/widgets/dash-selector.cpp:59 -msgid "Dash pattern" -msgstr "Motivo del tratteggio" +#: ../src/verbs.cpp:2668 +#, fuzzy +msgctxt "ContextVerb" +msgid "Calligraphy" +msgstr "Pennino" -#: ../src/widgets/dash-selector.cpp:76 -msgid "Pattern offset" -msgstr "Spessore del motivo" +#: ../src/verbs.cpp:2669 +msgid "Draw calligraphic or brush strokes" +msgstr "Crea linee calligrafiche o pennellate" -#: ../src/widgets/desktop-widget.cpp:466 -msgid "Zoom drawing if window size changes" -msgstr "Aggiusta l'ingrandimento se cambia la dimensione della finestra" +#: ../src/verbs.cpp:2671 +msgid "Create and edit text objects" +msgstr "Crea e modifica gli oggetti testuali" -#: ../src/widgets/desktop-widget.cpp:665 -msgid "Cursor coordinates" -msgstr "Cordinate del cursore" +#: ../src/verbs.cpp:2672 +#, fuzzy +msgctxt "ContextVerb" +msgid "Gradient" +msgstr "Gradiente" -#: ../src/widgets/desktop-widget.cpp:691 -msgid "Z:" -msgstr "Z:" +#: ../src/verbs.cpp:2673 +msgid "Create and edit gradients" +msgstr "Crea e modifica i gradienti" -#. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:734 -msgid "" -"Welcome to Inkscape! Use shape or freehand tools to create objects; " -"use selector (arrow) to move or transform them." +#: ../src/verbs.cpp:2674 +msgctxt "ContextVerb" +msgid "Mesh" msgstr "" -"Benvenuti in Inkscape! Usare le forme o gli strumenti a mano libera " -"per creare gli oggetti; usare il selettore (freccia) per muoverli o " -"trasformarli." -#: ../src/widgets/desktop-widget.cpp:828 +#: ../src/verbs.cpp:2675 #, fuzzy -msgid "grayscale" -msgstr "Scala di grigi" +msgid "Create and edit meshes" +msgstr "Crea e modifica i gradienti" -#: ../src/widgets/desktop-widget.cpp:829 +#: ../src/verbs.cpp:2676 #, fuzzy -msgid ", grayscale" -msgstr "Scala di grigi" +msgctxt "ContextVerb" +msgid "Zoom" +msgstr "Ingrandimento" -#: ../src/widgets/desktop-widget.cpp:830 +#: ../src/verbs.cpp:2677 +msgid "Zoom in or out" +msgstr "Ingrandisce o rimpicciolisce" + +#: ../src/verbs.cpp:2679 +msgid "Measurement tool" +msgstr "Strumento di misurazione" + +#: ../src/verbs.cpp:2680 #, fuzzy -msgid "print colors preview" -msgstr "Anteprima di stam_pa" +msgctxt "ContextVerb" +msgid "Dropper" +msgstr "Contagocce" -#: ../src/widgets/desktop-widget.cpp:831 +#: ../src/verbs.cpp:2681 ../src/widgets/sp-color-notebook.cpp:411 +msgid "Pick colors from image" +msgstr "Preleva colore dall'immagine" + +#: ../src/verbs.cpp:2682 #, fuzzy -msgid ", print colors preview" -msgstr "Anteprima di stam_pa" +msgctxt "ContextVerb" +msgid "Connector" +msgstr "Connettore" -#: ../src/widgets/desktop-widget.cpp:832 +#: ../src/verbs.cpp:2683 +msgid "Create diagram connectors" +msgstr "Crea connettori di diagramma" + +#: ../src/verbs.cpp:2684 #, fuzzy -msgid "outline" -msgstr "Scheletro" +msgctxt "ContextVerb" +msgid "Paint Bucket" +msgstr "Secchiello" -#: ../src/widgets/desktop-widget.cpp:833 +#: ../src/verbs.cpp:2685 +msgid "Fill bounded areas" +msgstr "Colora aree delimitate" + +#: ../src/verbs.cpp:2686 #, fuzzy -msgid "no filters" -msgstr "Nessun _filtro" +msgctxt "ContextVerb" +msgid "LPE Edit" +msgstr "Modifica LPE" -#: ../src/widgets/desktop-widget.cpp:860 -#, fuzzy, c-format -msgid "%s%s: %d (%s%s) - Inkscape" -msgstr "%s: %d - Inkscape" +#: ../src/verbs.cpp:2687 +msgid "Edit Path Effect parameters" +msgstr "Modifica parametri effetto su tracciato" -#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 -#, fuzzy, c-format -msgid "%s%s: %d (%s) - Inkscape" -msgstr "%s: %d - Inkscape" +#: ../src/verbs.cpp:2688 +#, fuzzy +msgctxt "ContextVerb" +msgid "Eraser" +msgstr "Gomma" -#: ../src/widgets/desktop-widget.cpp:868 -#, fuzzy, c-format -msgid "%s%s: %d - Inkscape" -msgstr "%s: %d - Inkscape" +#: ../src/verbs.cpp:2689 +msgid "Erase existing paths" +msgstr "Cancella tracciato esistente" -#: ../src/widgets/desktop-widget.cpp:874 -#, fuzzy, c-format -msgid "%s%s (%s%s) - Inkscape" -msgstr "%s - Inkscape" +#: ../src/verbs.cpp:2690 +#, fuzzy +msgctxt "ContextVerb" +msgid "LPE Tool" +msgstr "Strumento LPE" -#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 -#, fuzzy, c-format -msgid "%s%s (%s) - Inkscape" -msgstr "%s - Inkscape" +#: ../src/verbs.cpp:2691 +msgid "Do geometric constructions" +msgstr "Crea costruzioni geometriche" -#: ../src/widgets/desktop-widget.cpp:882 -#, fuzzy, c-format -msgid "%s%s - Inkscape" -msgstr "%s - Inkscape" +#. Tool prefs +#: ../src/verbs.cpp:2693 +msgid "Selector Preferences" +msgstr "Preferenze selettore" -#: ../src/widgets/desktop-widget.cpp:1051 -#, fuzzy -msgid "Color-managed display is enabled in this window" -msgstr "" -"Attiva la gestione del colore del display per questa finestra di documento" +#: ../src/verbs.cpp:2694 +msgid "Open Preferences for the Selector tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Selettore»" -#: ../src/widgets/desktop-widget.cpp:1053 -#, fuzzy -msgid "Color-managed display is disabled in this window" -msgstr "" -"Attiva la gestione del colore del display per questa finestra di documento" +#: ../src/verbs.cpp:2695 +msgid "Node Tool Preferences" +msgstr "Preferenze strumento nodo" -#: ../src/widgets/desktop-widget.cpp:1108 -#, c-format -msgid "" -"Save changes to document \"%s\" before " -"closing?\n" -"\n" -"If you close without saving, your changes will be discarded." -msgstr "" -"Salvare i cambiamenti al documento \"%s" -"\" prima di chiudere?\n" -"\n" -"Chiudendo senza salvare, le modifiche verranno perse." +#: ../src/verbs.cpp:2696 +msgid "Open Preferences for the Node tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Nodo»" -#: ../src/widgets/desktop-widget.cpp:1118 -#: ../src/widgets/desktop-widget.cpp:1177 -msgid "Close _without saving" -msgstr "_Chiudi senza salvare" +#: ../src/verbs.cpp:2697 +msgid "Tweak Tool Preferences" +msgstr "Preferenze strumento ritocco" -#: ../src/widgets/desktop-widget.cpp:1167 -#, fuzzy, c-format -msgid "" -"The file \"%s\" was saved with a " -"format that may cause data loss!\n" -"\n" -"Do you want to save this file as Inkscape SVG?" -msgstr "" -"Il file \"%s\" è stato salvato con un " -"formato (%s) che può provocare perdite di dati!\n" -"\n" -"Salvarlo come un file SVG di Inkscape?" +#: ../src/verbs.cpp:2698 +msgid "Open Preferences for the Tweak tool" +msgstr "Apre le preferenze per lo strumento «Ritocco»" -#: ../src/widgets/desktop-widget.cpp:1179 +#: ../src/verbs.cpp:2699 #, fuzzy -msgid "_Save as Inkscape SVG" -msgstr "_Salva come SVG" +msgid "Spray Tool Preferences" +msgstr "Preferenze spirale" -#: ../src/widgets/desktop-widget.cpp:1392 -msgid "Note:" -msgstr "" +#: ../src/verbs.cpp:2700 +#, fuzzy +msgid "Open Preferences for the Spray tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Spirale»" -#: ../src/widgets/dropper-toolbar.cpp:90 -msgid "Pick opacity" -msgstr "Preleva opacitĂ " +#: ../src/verbs.cpp:2701 +msgid "Rectangle Preferences" +msgstr "Preferenze rettangolo" -#: ../src/widgets/dropper-toolbar.cpp:91 -msgid "" -"Pick both the color and the alpha (transparency) under cursor; otherwise, " -"pick only the visible color premultiplied by alpha" -msgstr "" -"Preleva sia il colore che l'alpha (trasparenza) sotto il cursore; altrimenti " -"preleva solo il colore visibile premoltiplicato per il valore alpha" +#: ../src/verbs.cpp:2702 +msgid "Open Preferences for the Rectangle tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Rettangolo»" -#: ../src/widgets/dropper-toolbar.cpp:94 -msgid "Pick" -msgstr "Preleva" +#: ../src/verbs.cpp:2703 +msgid "3D Box Preferences" +msgstr "Preferenze solido 3D" -#: ../src/widgets/dropper-toolbar.cpp:103 -msgid "Assign opacity" -msgstr "Assegna opacitĂ " +#: ../src/verbs.cpp:2704 +msgid "Open Preferences for the 3D Box tool" +msgstr "Apre le preferenze per lo strumento «Solido 3D»" -#: ../src/widgets/dropper-toolbar.cpp:104 -msgid "" -"If alpha was picked, assign it to selection as fill or stroke transparency" -msgstr "" -"Se il canale alpha è prelevato, lo assegna alla selezione come trasparenza " -"di riempimento o contorno" +#: ../src/verbs.cpp:2705 +msgid "Ellipse Preferences" +msgstr "Preferenze ellisse" -#: ../src/widgets/dropper-toolbar.cpp:107 -msgid "Assign" -msgstr "Assegna" +#: ../src/verbs.cpp:2706 +msgid "Open Preferences for the Ellipse tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Ellisse»" -#: ../src/widgets/ege-paint-def.cpp:87 -msgid "remove" -msgstr "rimuovi" +#: ../src/verbs.cpp:2707 +msgid "Star Preferences" +msgstr "Preferenze stella" -#: ../src/widgets/eraser-toolbar.cpp:94 -msgid "Delete objects touched by the eraser" -msgstr "Cancella oggetti toccati dalla gomma" +#: ../src/verbs.cpp:2708 +msgid "Open Preferences for the Star tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Stella»" -#: ../src/widgets/eraser-toolbar.cpp:100 -msgid "Cut" -msgstr "Taglia" +#: ../src/verbs.cpp:2709 +msgid "Spiral Preferences" +msgstr "Preferenze spirale" -#: ../src/widgets/eraser-toolbar.cpp:101 -msgid "Cut out from objects" -msgstr "Taglia dagli oggetti" +#: ../src/verbs.cpp:2710 +msgid "Open Preferences for the Spiral tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Spirale»" -#: ../src/widgets/eraser-toolbar.cpp:129 -msgid "The width of the eraser pen (relative to the visible canvas area)" -msgstr "La larghezza del cancellino (relativa all'area della tela visibile)" +#: ../src/verbs.cpp:2711 +msgid "Pencil Preferences" +msgstr "Preferenze matita" -#: ../src/widgets/fill-style.cpp:362 -msgid "Change fill rule" -msgstr "Modifica regola di riempimento" +#: ../src/verbs.cpp:2712 +msgid "Open Preferences for the Pencil tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Matita»" -#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 -msgid "Set fill color" -msgstr "Imposta colore di riempimento" +#: ../src/verbs.cpp:2713 +msgid "Pen Preferences" +msgstr "Preferenze penna" -#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 -msgid "Set stroke color" -msgstr "Imposta colore contorno" +#: ../src/verbs.cpp:2714 +msgid "Open Preferences for the Pen tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Penna»" -#: ../src/widgets/fill-style.cpp:625 -msgid "Set gradient on fill" -msgstr "Imposta gradiente per il riempimento" +#: ../src/verbs.cpp:2715 +msgid "Calligraphic Preferences" +msgstr "Preferenze pennino" -#: ../src/widgets/fill-style.cpp:625 -msgid "Set gradient on stroke" -msgstr "Imposta gradiente per il contorno" +#: ../src/verbs.cpp:2716 +msgid "Open Preferences for the Calligraphy tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Pennino»" -#: ../src/widgets/fill-style.cpp:685 -msgid "Set pattern on fill" -msgstr "Imposta motivo per il riempimento" +#: ../src/verbs.cpp:2717 +msgid "Text Preferences" +msgstr "Preferenze testo" -#: ../src/widgets/fill-style.cpp:686 -msgid "Set pattern on stroke" -msgstr "Imposta motivo per il contorno" +#: ../src/verbs.cpp:2718 +msgid "Open Preferences for the Text tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Testo»" -#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:956 -#: ../src/widgets/text-toolbar.cpp:1270 -#, fuzzy -msgid "Font size" -msgstr "Dimensione carattere:" +#: ../src/verbs.cpp:2719 +msgid "Gradient Preferences" +msgstr "Preferenze gradiente" -#. Family frame -#: ../src/widgets/font-selector.cpp:148 -msgid "Font family" -msgstr "Carattere" +#: ../src/verbs.cpp:2720 +msgid "Open Preferences for the Gradient tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Gradiente»" -#. Style frame -#: ../src/widgets/font-selector.cpp:192 +#: ../src/verbs.cpp:2721 #, fuzzy -msgctxt "Font selector" -msgid "Style" -msgstr "Stile" +msgid "Mesh Preferences" +msgstr "Impostazioni gomma" -#: ../src/widgets/font-selector.cpp:224 +#: ../src/verbs.cpp:2722 #, fuzzy -msgid "Face" -msgstr "Facce" +msgid "Open Preferences for the Mesh tool" +msgstr "Apre le preferenze per lo strumento «Gomma»" -#: ../src/widgets/font-selector.cpp:253 ../share/extensions/dots.inx.h:3 -msgid "Font size:" -msgstr "Dimensione carattere:" +#: ../src/verbs.cpp:2723 +msgid "Zoom Preferences" +msgstr "Preferenze ingranditore" -#: ../src/widgets/gradient-selector.cpp:214 -#, fuzzy -msgid "Create a duplicate gradient" -msgstr "Crea e modifica i gradienti" +#: ../src/verbs.cpp:2724 +msgid "Open Preferences for the Zoom tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Ingranditore»" -#: ../src/widgets/gradient-selector.cpp:230 +#: ../src/verbs.cpp:2725 #, fuzzy -msgid "Edit gradient" -msgstr "Gradiente radiale" +msgid "Measure Preferences" +msgstr "Impostazioni gomma" -#: ../src/widgets/gradient-selector.cpp:306 -#: ../src/widgets/paint-selector.cpp:244 +#: ../src/verbs.cpp:2726 #, fuzzy -msgid "Swatch" -msgstr "Bozzetto" +msgid "Open Preferences for the Measure tool" +msgstr "Apre le preferenze per lo strumento «Gomma»" -#: ../src/widgets/gradient-selector.cpp:356 -#, fuzzy -msgid "Rename gradient" -msgstr "Gradiente lineare" +#: ../src/verbs.cpp:2727 +msgid "Dropper Preferences" +msgstr "Preferenze contagocce" -#: ../src/widgets/gradient-toolbar.cpp:156 -#: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:756 -#: ../src/widgets/gradient-toolbar.cpp:1094 -#, fuzzy -msgid "No gradient" -msgstr "Muovi gradiente" +#: ../src/verbs.cpp:2728 +msgid "Open Preferences for the Dropper tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Contagocce»" -#: ../src/widgets/gradient-toolbar.cpp:175 -#, fuzzy -msgid "Multiple gradients" -msgstr "Muovi gradiente" +# -Luca +#: ../src/verbs.cpp:2729 +msgid "Connector Preferences" +msgstr "Preferenze connettore" -#: ../src/widgets/gradient-toolbar.cpp:676 -#, fuzzy -msgid "Multiple stops" -msgstr "Stili multipli" +#: ../src/verbs.cpp:2730 +msgid "Open Preferences for the Connector tool" +msgstr "Apre le preferenze di Inkscape per lo strumento «Connettore»" -#: ../src/widgets/gradient-toolbar.cpp:774 -#: ../src/widgets/gradient-vector.cpp:629 -msgid "No stops in gradient" -msgstr "Nessun passaggio nel gradiente" +#: ../src/verbs.cpp:2731 +msgid "Paint Bucket Preferences" +msgstr "Preferenze secchiello" + +#: ../src/verbs.cpp:2732 +msgid "Open Preferences for the Paint Bucket tool" +msgstr "Apre le preferenze per lo strumento «Secchiello»" + +#: ../src/verbs.cpp:2733 +msgid "Eraser Preferences" +msgstr "Impostazioni gomma" + +#: ../src/verbs.cpp:2734 +msgid "Open Preferences for the Eraser tool" +msgstr "Apre le preferenze per lo strumento «Gomma»" + +#: ../src/verbs.cpp:2735 +msgid "LPE Tool Preferences" +msgstr "Preferenze LPE" + +#: ../src/verbs.cpp:2736 +msgid "Open Preferences for the LPETool tool" +msgstr "Apre le preferenze per lo strumento «Effetto su tracciato»" + +#. Zoom/View +#: ../src/verbs.cpp:2738 +msgid "Zoom In" +msgstr "Ingrandisci" + +#: ../src/verbs.cpp:2738 +msgid "Zoom in" +msgstr "Aumenta l'ingrandimento" + +#: ../src/verbs.cpp:2739 +msgid "Zoom Out" +msgstr "Riduci" + +#: ../src/verbs.cpp:2739 +msgid "Zoom out" +msgstr "Riduce l'ingrandimento" + +#: ../src/verbs.cpp:2740 +msgid "_Rulers" +msgstr "_Righelli" -#: ../src/widgets/gradient-toolbar.cpp:927 -msgid "Assign gradient to object" -msgstr "Assegna gradiente ad oggetto" +#: ../src/verbs.cpp:2740 +msgid "Show or hide the canvas rulers" +msgstr "Mostra o nasconde i righelli" -#: ../src/widgets/gradient-toolbar.cpp:949 -#, fuzzy -msgid "Set gradient repeat" -msgstr "Imposta gradiente per il contorno" +#: ../src/verbs.cpp:2741 +msgid "Scroll_bars" +msgstr "_Barre di scorrimento" -#: ../src/widgets/gradient-toolbar.cpp:987 -#: ../src/widgets/gradient-vector.cpp:740 -msgid "Change gradient stop offset" -msgstr "Cambia offset del passaggio del gradiente" +#: ../src/verbs.cpp:2741 +msgid "Show or hide the canvas scrollbars" +msgstr "Mostra o nasconde le barre di scorrimento" -#: ../src/widgets/gradient-toolbar.cpp:1034 -#, fuzzy -msgid "linear" -msgstr "Lineare" +#: ../src/verbs.cpp:2742 +msgid "Page _Grid" +msgstr "_Griglia pagina" -#: ../src/widgets/gradient-toolbar.cpp:1034 -msgid "Create linear gradient" -msgstr "Crea gradiente lineare" +#: ../src/verbs.cpp:2742 +msgid "Show or hide the page grid" +msgstr "Mostra o nasconde la griglia" -#: ../src/widgets/gradient-toolbar.cpp:1038 -msgid "radial" +#: ../src/verbs.cpp:2743 +msgid "G_uides" +msgstr "G_uide" + +#: ../src/verbs.cpp:2743 +msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" +"Mostra o nasconde le guide (trascinare dal righello per creare una guida)" -#: ../src/widgets/gradient-toolbar.cpp:1038 -msgid "Create radial (elliptic or circular) gradient" -msgstr "Crea un gradiente radiale (ellittico o circolare)" +#: ../src/verbs.cpp:2744 +msgid "Enable snapping" +msgstr "Attiva aggancio" -#: ../src/widgets/gradient-toolbar.cpp:1041 -#: ../src/widgets/mesh-toolbar.cpp:211 -msgid "New:" -msgstr "" +#: ../src/verbs.cpp:2745 +msgid "_Commands Bar" +msgstr "Barra dei _comandi" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:234 -#, fuzzy -msgid "fill" -msgstr "Parallelo" +#: ../src/verbs.cpp:2745 +msgid "Show or hide the Commands bar (under the menu)" +msgstr "Mostra o nasconde la barra dei comandi (sotto il menu)" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:234 -msgid "Create gradient in the fill" -msgstr "Crea gradiente per il riempimento" +#: ../src/verbs.cpp:2746 +msgid "Sn_ap Controls Bar" +msgstr "Barra dei controlli a_ggancio" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:238 -#, fuzzy -msgid "stroke" -msgstr "Contorno:" +#: ../src/verbs.cpp:2746 +msgid "Show or hide the snapping controls" +msgstr "Mostra o nasconde i controlli per l'aggancio" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:238 -msgid "Create gradient in the stroke" -msgstr "Crea gradiente per i contorni" +#: ../src/verbs.cpp:2747 +msgid "T_ool Controls Bar" +msgstr "Barra dei controlli _strumento" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:241 -#, fuzzy -msgid "on:" -msgstr "abilitato" +#: ../src/verbs.cpp:2747 +msgid "Show or hide the Tool Controls bar" +msgstr "Mostra o nasconde la barra dei controlli degli strumenti" -#: ../src/widgets/gradient-toolbar.cpp:1096 -msgid "Select" -msgstr "Seleziona" +# cfr la traduzione di Illustrator +#: ../src/verbs.cpp:2748 +msgid "_Toolbox" +msgstr "Barra degli s_trumenti" -#: ../src/widgets/gradient-toolbar.cpp:1096 -#, fuzzy -msgid "Choose a gradient" -msgstr "Usa una preselezione" +#: ../src/verbs.cpp:2748 +msgid "Show or hide the main toolbox (on the left)" +msgstr "Mostra o nasconde la barra degli strumenti (sulla sinistra)" -#: ../src/widgets/gradient-toolbar.cpp:1097 -#, fuzzy -msgid "Select:" -msgstr "Seleziona" +#: ../src/verbs.cpp:2749 +msgid "_Palette" +msgstr "_Tavolozza" -#: ../src/widgets/gradient-toolbar.cpp:1115 -#, fuzzy -msgid "Reflected" -msgstr "riflessa" +#: ../src/verbs.cpp:2749 +msgid "Show or hide the color palette" +msgstr "Mostra o nasconde la tavolozza dei colori" -#: ../src/widgets/gradient-toolbar.cpp:1118 -#, fuzzy -msgid "Direct" -msgstr "diretta" +#: ../src/verbs.cpp:2750 +msgid "_Statusbar" +msgstr "Barra di _stato" -#: ../src/widgets/gradient-toolbar.cpp:1120 -#, fuzzy -msgid "Repeat" -msgstr "Ripetizione:" +#: ../src/verbs.cpp:2750 +msgid "Show or hide the statusbar (at the bottom of the window)" +msgstr "Mostra o nasconde la barra di stato (in fondo alla finestra)" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1122 -msgid "" -"Whether to fill with flat color beyond the ends of the gradient vector " -"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " -"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " -"directions (spreadMethod=\"reflect\")" -msgstr "" -"Determina se riempire dopo la fine del gradiente con un colore uniforme " -"(spreadMethod=\"pad\"), ripetere il gradiente nella stessa direzione " -"(spreadMethod=\"repeat\") o ripetere il gradiente nella direzione opposta " -"(spreadMethod=\"reflect\")" +#: ../src/verbs.cpp:2751 +msgid "Nex_t Zoom" +msgstr "Ingrandimen_to successivo" -#: ../src/widgets/gradient-toolbar.cpp:1127 -msgid "Repeat:" -msgstr "Ripetizione:" +#: ../src/verbs.cpp:2751 +msgid "Next zoom (from the history of zooms)" +msgstr "Ingrandimento successivo (dalla cronologia degli zoom)" -#: ../src/widgets/gradient-toolbar.cpp:1141 -#, fuzzy -msgid "No stops" -msgstr "Nessun contorno" +#: ../src/verbs.cpp:2753 +msgid "Pre_vious Zoom" +msgstr "Ingrandimento p_recedente" -#: ../src/widgets/gradient-toolbar.cpp:1143 -#, fuzzy -msgid "Stops" -msgstr "_Ferma" +#: ../src/verbs.cpp:2753 +msgid "Previous zoom (from the history of zooms)" +msgstr "Ingrandimento precedente (dalla cronologia degli zoom)" -#: ../src/widgets/gradient-toolbar.cpp:1143 -#, fuzzy -msgid "Select a stop for the current gradient" -msgstr "Modifica i passaggi del gradiente" +#: ../src/verbs.cpp:2755 +msgid "Zoom 1:_1" +msgstr "Ingrandimento 1:_1" -#: ../src/widgets/gradient-toolbar.cpp:1144 -#, fuzzy -msgid "Stops:" -msgstr "_Ferma" +#: ../src/verbs.cpp:2755 +msgid "Zoom to 1:1" +msgstr "Ingrandisce a 1:1" -#. Label -#: ../src/widgets/gradient-toolbar.cpp:1156 -#: ../src/widgets/gradient-vector.cpp:926 -#, fuzzy -msgctxt "Gradient" -msgid "Offset:" -msgstr "Posizione:" +#: ../src/verbs.cpp:2757 +msgid "Zoom 1:_2" +msgstr "Ingrandimento 1:_2" -#: ../src/widgets/gradient-toolbar.cpp:1156 -#, fuzzy -msgid "Offset of selected stop" -msgstr "Estrude il tracciato selezionato" +#: ../src/verbs.cpp:2757 +msgid "Zoom to 1:2" +msgstr "Ingrandisce a 1:2" -#: ../src/widgets/gradient-toolbar.cpp:1174 -#: ../src/widgets/gradient-toolbar.cpp:1175 -#, fuzzy -msgid "Insert new stop" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2759 +msgid "_Zoom 2:1" +msgstr "In_grandimento 2:1" -#: ../src/widgets/gradient-toolbar.cpp:1188 -#: ../src/widgets/gradient-toolbar.cpp:1189 -#: ../src/widgets/gradient-vector.cpp:908 -msgid "Delete stop" -msgstr "Cancella passaggio" +#: ../src/verbs.cpp:2759 +msgid "Zoom to 2:1" +msgstr "Ingrandisce a 2:1" -#: ../src/widgets/gradient-toolbar.cpp:1202 -#, fuzzy -msgid "Reverse" -msgstr "Inve_rti" +#: ../src/verbs.cpp:2762 +msgid "_Fullscreen" +msgstr "Scher_mo intero" -#: ../src/widgets/gradient-toolbar.cpp:1203 -#, fuzzy -msgid "Reverse the direction of the gradient" -msgstr "Modifica i passaggi del gradiente" +#: ../src/verbs.cpp:2762 ../src/verbs.cpp:2764 +msgid "Stretch this document window to full screen" +msgstr "Allarga la finestra a pieno schermo" -#: ../src/widgets/gradient-toolbar.cpp:1217 +#: ../src/verbs.cpp:2764 #, fuzzy -msgid "Link gradients" -msgstr "Gradiente lineare" +msgid "Fullscreen & Focus Mode" +msgstr "Commuta modalitĂ  focus" -#: ../src/widgets/gradient-toolbar.cpp:1218 -msgid "Link gradients to change all related gradients" -msgstr "" +#: ../src/verbs.cpp:2767 +msgid "Toggle _Focus Mode" +msgstr "Commuta modalitĂ  focus" -#: ../src/widgets/gradient-vector.cpp:332 -#: ../src/widgets/paint-selector.cpp:922 -#: ../src/widgets/stroke-marker-selector.cpp:154 -msgid "No document selected" -msgstr "Nessun documento selezionato" +#: ../src/verbs.cpp:2767 +msgid "Remove excess toolbars to focus on drawing" +msgstr "Rimuove barre in eccesso per focalizzarsi sul disegno" -#: ../src/widgets/gradient-vector.cpp:336 -msgid "No gradients in document" -msgstr "Nessun gradiente nel documento" +#: ../src/verbs.cpp:2769 +msgid "Duplic_ate Window" +msgstr "Duplic_a finestra" -#: ../src/widgets/gradient-vector.cpp:340 -msgid "No gradient selected" -msgstr "Nessun gradiente selezionato" +#: ../src/verbs.cpp:2769 +msgid "Open a new window with the same document" +msgstr "Apre lo stesso documento in una nuova finestra" -#. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:903 -msgid "Add stop" -msgstr "Aggiungi passaggio" +#: ../src/verbs.cpp:2771 +msgid "_New View Preview" +msgstr "_Nuova vista anteprima" -#: ../src/widgets/gradient-vector.cpp:906 -msgid "Add another control stop to gradient" -msgstr "Aggiunge un altro passaggio al gradiente" +#: ../src/verbs.cpp:2772 +msgid "New View Preview" +msgstr "Nuova visualizzazione di anteprima" -#: ../src/widgets/gradient-vector.cpp:911 -msgid "Delete current control stop from gradient" -msgstr "Elimina il passaggio corrente dal gradiente" +#. "view_new_preview" +#: ../src/verbs.cpp:2774 ../src/verbs.cpp:2782 +msgid "_Normal" +msgstr "_Normale" -#. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:979 -msgid "Stop Color" -msgstr "Colore del passaggio" +#: ../src/verbs.cpp:2775 +msgid "Switch to normal display mode" +msgstr "Passa alla modalitĂ  di visualizzazione normale" -#: ../src/widgets/gradient-vector.cpp:1007 -msgid "Gradient editor" -msgstr "Editor di gradiente" +#: ../src/verbs.cpp:2776 +msgid "No _Filters" +msgstr "Nessun _filtro" -#: ../src/widgets/gradient-vector.cpp:1307 -msgid "Change gradient stop color" -msgstr "Gradiente lineare di contorno" +#: ../src/verbs.cpp:2777 +msgid "Switch to normal display without filters" +msgstr "Passa alla visualizzazione normale senza filtri" -#: ../src/widgets/lpe-toolbar.cpp:233 -msgid "Closed" -msgstr "Chiuso" +#: ../src/verbs.cpp:2778 +msgid "_Outline" +msgstr "Scheletr_o" -#: ../src/widgets/lpe-toolbar.cpp:235 -msgid "Open start" -msgstr "Apri inizio" +#: ../src/verbs.cpp:2779 +msgid "Switch to outline (wireframe) display mode" +msgstr "Passa alla modalitĂ  di visualizzazione dello scheletro (wireframe)" -#: ../src/widgets/lpe-toolbar.cpp:237 -msgid "Open end" -msgstr "Apri fine" +#. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), +#. N_("Switch to print colors preview mode"), NULL), +#: ../src/verbs.cpp:2780 ../src/verbs.cpp:2788 +msgid "_Toggle" +msgstr "Al_terna" -#: ../src/widgets/lpe-toolbar.cpp:239 -msgid "Open both" -msgstr "Apri entrambi" +#: ../src/verbs.cpp:2781 +msgid "Toggle between normal and outline display modes" +msgstr "Alterna tra la visualizzazione normale o solo contorni" -#: ../src/widgets/lpe-toolbar.cpp:298 -msgid "All inactive" -msgstr "Tutti inattivi" +#: ../src/verbs.cpp:2783 +msgid "Switch to normal color display mode" +msgstr "Passa alla modalitĂ  colore schermo normale" -#: ../src/widgets/lpe-toolbar.cpp:299 -msgid "No geometric tool is active" -msgstr "Nessuno strumento geometrico attivo" +#: ../src/verbs.cpp:2784 +msgid "_Grayscale" +msgstr "Scala di _grigi" -#: ../src/widgets/lpe-toolbar.cpp:332 -msgid "Show limiting bounding box" -msgstr "Mostra riquadro limite" +#: ../src/verbs.cpp:2785 +msgid "Switch to grayscale display mode" +msgstr "Passa alla modalitĂ  colore schermo in scala di grigi" -#: ../src/widgets/lpe-toolbar.cpp:333 -msgid "Show bounding box (used to cut infinite lines)" -msgstr "Mostra riquadro (usato per tagliare linee infinite)" +#: ../src/verbs.cpp:2789 +msgid "Toggle between normal and grayscale color display modes" +msgstr "Alterna tra le modalitĂ  colore schemo normale e in scala di grigi" -#: ../src/widgets/lpe-toolbar.cpp:344 -msgid "Get limiting bounding box from selection" -msgstr "Preleva riquadro limite dalla selezione" +#: ../src/verbs.cpp:2791 +msgid "Color-managed view" +msgstr "Gestione del colore" -#: ../src/widgets/lpe-toolbar.cpp:345 -msgid "" -"Set limiting bounding box (used to cut infinite lines) to the bounding box " -"of current selection" +#: ../src/verbs.cpp:2792 +msgid "Toggle color-managed display for this document window" msgstr "" -"Imposta il riquadro limitante (usato per tagliare linee infinite) al " -"riquadro della selezione attuale" +"Attiva la gestione del colore del display per questa finestra di documento" -#: ../src/widgets/lpe-toolbar.cpp:357 -msgid "Choose a line segment type" -msgstr "Scegliere un tipo di segmento" +#: ../src/verbs.cpp:2794 +msgid "Ico_n Preview..." +msgstr "Anteprima ico_na..." -#: ../src/widgets/lpe-toolbar.cpp:373 -msgid "Display measuring info" -msgstr "Visualizza informazioni di misura" +#: ../src/verbs.cpp:2795 +msgid "Open a window to preview objects at different icon resolutions" +msgstr "" +"Apre una finestra per mostrare l'anteprima come icona a varie risoluzioni" -#: ../src/widgets/lpe-toolbar.cpp:374 -msgid "Display measuring info for selected items" -msgstr "Visualizza informazioni di misura per gli elementi selezionati" +#: ../src/verbs.cpp:2797 +msgid "Zoom to fit page in window" +msgstr "Ingrandisce per adattare la pagina alla finestra" -#. Add the units menu. -#: ../src/widgets/lpe-toolbar.cpp:384 ../src/widgets/node-toolbar.cpp:613 -#: ../src/widgets/paintbucket-toolbar.cpp:166 -#: ../src/widgets/rect-toolbar.cpp:375 ../src/widgets/select-toolbar.cpp:536 -msgid "Units" -msgstr "UnitĂ " +#: ../src/verbs.cpp:2798 +msgid "Page _Width" +msgstr "Larg_hezza pagina" -#: ../src/widgets/lpe-toolbar.cpp:394 -msgid "Open LPE dialog" -msgstr "Apri finestra LPE" +#: ../src/verbs.cpp:2799 +msgid "Zoom to fit page width in window" +msgstr "Ingrandisce per adattare la larghezza della pagina alla finestra" -#: ../src/widgets/lpe-toolbar.cpp:395 -msgid "Open LPE dialog (to adapt parameters numerically)" -msgstr "Apri finestra LPE (per la modifica dei parametri numerici)" +#: ../src/verbs.cpp:2801 +msgid "Zoom to fit drawing in window" +msgstr "Ingrandisce per adattare il disegno alla finestra" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1273 -#, fuzzy -msgid "Font Size" -msgstr "Dimensione carattere" +#: ../src/verbs.cpp:2803 +msgid "Zoom to fit selection in window" +msgstr "Ingrandisce per adattare la selezione alla finestra" -#: ../src/widgets/measure-toolbar.cpp:86 -#, fuzzy -msgid "Font Size:" -msgstr "Dimensione carattere" +#. Dialogs +#: ../src/verbs.cpp:2806 +msgid "P_references..." +msgstr "P_referenze..." -#: ../src/widgets/measure-toolbar.cpp:87 -msgid "The font size to be used in the measurement labels" -msgstr "" +#: ../src/verbs.cpp:2807 +msgid "Edit global Inkscape preferences" +msgstr "Modifica le preferenze globali di Inkscape" -#: ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 -msgid "The units to be used for the measurements" +#: ../src/verbs.cpp:2808 +msgid "_Document Properties..." +msgstr "ProprietĂ  del _documento..." + +#: ../src/verbs.cpp:2809 +msgid "Edit properties of this document (to be saved with the document)" msgstr "" +"Modifica le proprietĂ  di questo documento (che verranno salvate con esso)" -#: ../src/widgets/mesh-toolbar.cpp:204 -#, fuzzy -msgid "normal" -msgstr "Normale" +#: ../src/verbs.cpp:2810 +msgid "Document _Metadata..." +msgstr "_Metadati del documento..." -#: ../src/widgets/mesh-toolbar.cpp:204 -#, fuzzy -msgid "Create mesh gradient" -msgstr "Crea gradiente lineare" +#: ../src/verbs.cpp:2811 +msgid "Edit document metadata (to be saved with the document)" +msgstr "Modifica i metadati del documento (salvati con esso)" -#: ../src/widgets/mesh-toolbar.cpp:208 -msgid "conical" +#: ../src/verbs.cpp:2813 +msgid "" +"Edit objects' colors, gradients, arrowheads, and other fill and stroke " +"properties..." msgstr "" +"Modifica colore di oggetti, gradienti, ampiezza contorni, delimitatori, " +"tratteggi..." -#: ../src/widgets/mesh-toolbar.cpp:208 -#, fuzzy -msgid "Create conical gradient" -msgstr "Crea gradiente lineare" - -#: ../src/widgets/mesh-toolbar.cpp:263 -#, fuzzy -msgid "Rows" -msgstr "Righe:" +#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon +#: ../src/verbs.cpp:2815 +msgid "Gl_yphs..." +msgstr "_Glifi..." -#: ../src/widgets/mesh-toolbar.cpp:263 -#: ../share/extensions/guides_creator.inx.h:5 -#: ../share/extensions/layout_nup.inx.h:12 -#, fuzzy -msgid "Rows:" -msgstr "Righe:" +#: ../src/verbs.cpp:2816 +msgid "Select characters from a glyphs palette" +msgstr "Seleziona i caratteri da una tavolozza di glifi" -#: ../src/widgets/mesh-toolbar.cpp:263 -#, fuzzy -msgid "Number of rows in new mesh" -msgstr "Numero di righe" +#. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon +#. TRANSLATORS: "Swatches" means: color samples +#: ../src/verbs.cpp:2819 +msgid "S_watches..." +msgstr "Campio_ni..." -#: ../src/widgets/mesh-toolbar.cpp:279 -#, fuzzy -msgid "Columns" -msgstr "Colonne:" +#: ../src/verbs.cpp:2820 +msgid "Select colors from a swatches palette" +msgstr "Seleziona i colori da una tavolozza di campioni" -#: ../src/widgets/mesh-toolbar.cpp:279 -#: ../share/extensions/guides_creator.inx.h:4 -#, fuzzy -msgid "Columns:" -msgstr "Colonne:" +#: ../src/verbs.cpp:2821 +msgid "S_ymbols..." +msgstr "S_imboli..." -#: ../src/widgets/mesh-toolbar.cpp:279 -#, fuzzy -msgid "Number of columns in new mesh" -msgstr "Numero di colonne" +#: ../src/verbs.cpp:2822 +msgid "Select symbol from a symbols palette" +msgstr "Seleziona simbolo da una tavolozza di simboli" -#: ../src/widgets/mesh-toolbar.cpp:293 -#, fuzzy -msgid "Edit Fill" -msgstr "Modifica riempimento..." +#: ../src/verbs.cpp:2823 +msgid "Transfor_m..." +msgstr "Trasfor_ma..." -#: ../src/widgets/mesh-toolbar.cpp:294 -#, fuzzy -msgid "Edit fill mesh" -msgstr "Modifica riempimento..." +#: ../src/verbs.cpp:2824 +msgid "Precisely control objects' transformations" +msgstr "Controlla precisamente le trasformazioni dell'oggetto" -#: ../src/widgets/mesh-toolbar.cpp:305 -#, fuzzy -msgid "Edit Stroke" -msgstr "Modifica contorno..." +#: ../src/verbs.cpp:2825 +msgid "_Align and Distribute..." +msgstr "_Allinea e distribuisci..." -#: ../src/widgets/mesh-toolbar.cpp:306 -#, fuzzy -msgid "Edit stroke mesh" -msgstr "Modifica contorno..." +#: ../src/verbs.cpp:2826 +msgid "Align and distribute objects" +msgstr "Allinea e distribuisce gli oggetti" -#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:521 -msgid "Show Handles" -msgstr "Mostra maniglie" +#: ../src/verbs.cpp:2827 +msgid "_Spray options..." +msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:318 +#: ../src/verbs.cpp:2828 #, fuzzy -msgid "Show side and tensor handles" -msgstr "Salvataggio trasformazioni:" +msgid "Some options for the spray" +msgstr "Mostra lo scheletro di un tracciato" -#: ../src/widgets/node-toolbar.cpp:341 -msgid "Insert node" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2829 +msgid "Undo _History..." +msgstr "Cronologia modifiche..." -#: ../src/widgets/node-toolbar.cpp:342 -msgid "Insert new nodes into selected segments" -msgstr "Inserisce nuovi nodi nel segmento selezionato" +#: ../src/verbs.cpp:2830 +msgid "Undo History" +msgstr "Cronologia modifiche" -#: ../src/widgets/node-toolbar.cpp:345 -msgid "Insert" -msgstr "Inserisci" +#: ../src/verbs.cpp:2832 +msgid "View and select font family, font size and other text properties" +msgstr "" +"Mostra e modifica il tipo di font, la dimensione ed altre proprietĂ  del testo" -#: ../src/widgets/node-toolbar.cpp:356 -#, fuzzy -msgid "Insert node at min X" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2833 +msgid "_XML Editor..." +msgstr "Editor _XML..." -#: ../src/widgets/node-toolbar.cpp:357 -#, fuzzy -msgid "Insert new nodes at min X into selected segments" -msgstr "Inserisce nuovi nodi nel segmento selezionato" +#: ../src/verbs.cpp:2834 +msgid "View and edit the XML tree of the document" +msgstr "Mostra e modifica l'albero XML del documento" -#: ../src/widgets/node-toolbar.cpp:360 -#, fuzzy -msgid "Insert min X" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2835 +msgid "_Find/Replace..." +msgstr "T_rova/Sostituisci..." -#: ../src/widgets/node-toolbar.cpp:366 -#, fuzzy -msgid "Insert node at max X" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2836 +msgid "Find objects in document" +msgstr "Trova oggetti nel documento" -#: ../src/widgets/node-toolbar.cpp:367 -#, fuzzy -msgid "Insert new nodes at max X into selected segments" -msgstr "Inserisce nuovi nodi nel segmento selezionato" +#: ../src/verbs.cpp:2837 +msgid "Find and _Replace Text..." +msgstr "T_rova e sostituisci testo..." -#: ../src/widgets/node-toolbar.cpp:370 -#, fuzzy -msgid "Insert max X" -msgstr "Inserisci" +#: ../src/verbs.cpp:2838 +msgid "Find and replace text in document" +msgstr "Trova e sostituisci testo nel documento" -#: ../src/widgets/node-toolbar.cpp:376 -#, fuzzy -msgid "Insert node at min Y" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2840 +msgid "Check spelling of text in document" +msgstr "Controlla ortografia testo nel documento" -#: ../src/widgets/node-toolbar.cpp:377 -#, fuzzy -msgid "Insert new nodes at min Y into selected segments" -msgstr "Inserisce nuovi nodi nel segmento selezionato" +#: ../src/verbs.cpp:2841 +msgid "_Messages..." +msgstr "_Messaggi..." -#: ../src/widgets/node-toolbar.cpp:380 -#, fuzzy -msgid "Insert min Y" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2842 +msgid "View debug messages" +msgstr "Mostra i messaggi di debug" -#: ../src/widgets/node-toolbar.cpp:386 -#, fuzzy -msgid "Insert node at max Y" -msgstr "Inserisci nodo" +#: ../src/verbs.cpp:2843 +msgid "Show/Hide D_ialogs" +msgstr "Mostra/Nascondi sottof_inestre" -#: ../src/widgets/node-toolbar.cpp:387 -#, fuzzy -msgid "Insert new nodes at max Y into selected segments" -msgstr "Inserisce nuovi nodi nel segmento selezionato" +#: ../src/verbs.cpp:2844 +msgid "Show or hide all open dialogs" +msgstr "Mostra o nasconde tutte le sottofinestre attive" -#: ../src/widgets/node-toolbar.cpp:390 -#, fuzzy -msgid "Insert max Y" -msgstr "Inserisci" +#: ../src/verbs.cpp:2845 +msgid "Create Tiled Clones..." +msgstr "Crea cloni in serie..." -#: ../src/widgets/node-toolbar.cpp:398 -msgid "Delete selected nodes" -msgstr "Elimina i nodi selezionati" +#: ../src/verbs.cpp:2846 +msgid "" +"Create multiple clones of selected object, arranging them into a pattern or " +"scattering" +msgstr "" +"Crea cloni multipli dell'oggetto selezionato, posizionandoli secondo una " +"trama" -#: ../src/widgets/node-toolbar.cpp:409 +#: ../src/verbs.cpp:2847 +msgid "_Object attributes..." +msgstr "Attributi _oggetto..." + +#: ../src/verbs.cpp:2848 #, fuzzy -msgid "Join selected nodes" -msgstr "Unisce i nodi finali selezionati" +msgid "Edit the object attributes..." +msgstr "Imposta attributo" -#: ../src/widgets/node-toolbar.cpp:412 -msgid "Join" -msgstr "Unisci" +#: ../src/verbs.cpp:2850 +msgid "Edit the ID, locked and visible status, and other object properties" +msgstr "" +"Modifica l'ID, lo stato visibile o bloccato e altre proprietĂ  dell'oggetto" -#: ../src/widgets/node-toolbar.cpp:420 -msgid "Break path at selected nodes" -msgstr "Separa il percorso nel nodo selezionato" +#: ../src/verbs.cpp:2851 +msgid "_Input Devices..." +msgstr "Dispositivi di _input..." -#: ../src/widgets/node-toolbar.cpp:430 -msgid "Join with segment" -msgstr "Unisci tramite segmento" +#: ../src/verbs.cpp:2852 +msgid "Configure extended input devices, such as a graphics tablet" +msgstr "Configura i dispositivi di input esteso, come le tavolette grafiche" -#: ../src/widgets/node-toolbar.cpp:431 -msgid "Join selected endnodes with a new segment" -msgstr "Unisce i nodi finali selezionati con un nuovo segmento" +#: ../src/verbs.cpp:2853 +msgid "_Extensions..." +msgstr "_Estensioni..." -#: ../src/widgets/node-toolbar.cpp:440 -msgid "Delete segment" -msgstr "Elimina segmento" +#: ../src/verbs.cpp:2854 +msgid "Query information about extensions" +msgstr "Richiedi informazioni sulle estensioni" -#: ../src/widgets/node-toolbar.cpp:441 -msgid "Delete segment between two non-endpoint nodes" -msgstr "Cancella il segmento tra due nodi non terminali" +#: ../src/verbs.cpp:2855 +msgid "Layer_s..." +msgstr "Liv_elli..." -#: ../src/widgets/node-toolbar.cpp:450 -msgid "Node Cusp" -msgstr "Nodo angolare" +#: ../src/verbs.cpp:2856 +msgid "View Layers" +msgstr "Mostra i livelli" -#: ../src/widgets/node-toolbar.cpp:451 -msgid "Make selected nodes corner" -msgstr "Rende angolari i nodi selezionati" +#: ../src/verbs.cpp:2857 +msgid "Path E_ffects ..." +msgstr "E_ffetti su tracciato..." -#: ../src/widgets/node-toolbar.cpp:460 -msgid "Node Smooth" -msgstr "Nodo curvilineo" +#: ../src/verbs.cpp:2858 +msgid "Manage, edit, and apply path effects" +msgstr "Gestisce, modifica e applica effetti su tracciato" -#: ../src/widgets/node-toolbar.cpp:461 -msgid "Make selected nodes smooth" -msgstr "Rende curvilinei i nodi selezionati" +#: ../src/verbs.cpp:2859 +msgid "Filter _Editor..." +msgstr "_Editor filtri..." -#: ../src/widgets/node-toolbar.cpp:470 -msgid "Node Symmetric" -msgstr "Nodo simmetrico" +#: ../src/verbs.cpp:2860 +msgid "Manage, edit, and apply SVG filters" +msgstr "Gestisce, modifica e applica filtri SVG" -#: ../src/widgets/node-toolbar.cpp:471 -msgid "Make selected nodes symmetric" -msgstr "Rende simmetrici i nodi selezionati" +#: ../src/verbs.cpp:2861 +msgid "SVG Font Editor..." +msgstr "Editor font SVG..." -#: ../src/widgets/node-toolbar.cpp:480 -msgid "Node Auto" -msgstr "Nodo automatico" +#: ../src/verbs.cpp:2862 +msgid "Edit SVG fonts" +msgstr "Modifica font SVG" -#: ../src/widgets/node-toolbar.cpp:481 -msgid "Make selected nodes auto-smooth" -msgstr "Rende automaticamente curvilinei i nodi selezionati" +#: ../src/verbs.cpp:2863 +#, fuzzy +msgid "Print Colors..." +msgstr "Stam_pa..." -#: ../src/widgets/node-toolbar.cpp:490 -msgid "Node Line" -msgstr "Nodo linea" +#: ../src/verbs.cpp:2864 +msgid "" +"Select which color separations to render in Print Colors Preview rendermode" +msgstr "" -#: ../src/widgets/node-toolbar.cpp:491 -msgid "Make selected segments lines" -msgstr "Trasforma in linee i segmenti selezionati" +#: ../src/verbs.cpp:2865 +msgid "_Export PNG Image..." +msgstr "_Esporta immagine PNG..." -#: ../src/widgets/node-toolbar.cpp:500 -msgid "Node Curve" -msgstr "Nodo curva" +#: ../src/verbs.cpp:2866 +msgid "Export this document or a selection as a PNG image" +msgstr "Esporta questo documento o una selezione come un'immagine PNG" -#: ../src/widgets/node-toolbar.cpp:501 -msgid "Make selected segments curves" -msgstr "Trasforma in curve i segmenti selezionati" +#. Help +#: ../src/verbs.cpp:2868 +msgid "About E_xtensions" +msgstr "Informazioni sulle e_stensioni" -#: ../src/widgets/node-toolbar.cpp:510 -#, fuzzy -msgid "Show Transform Handles" -msgstr "Mostra maniglie" +#: ../src/verbs.cpp:2869 +msgid "Information on Inkscape extensions" +msgstr "Informazioni sulle estensioni di Inkscape" -#: ../src/widgets/node-toolbar.cpp:511 -#, fuzzy -msgid "Show transformation handles for selected nodes" -msgstr "Mostra le maniglie Bezier dei nodi selezionati" +#: ../src/verbs.cpp:2870 +msgid "About _Memory" +msgstr "Informazioni sulla _memoria" -#: ../src/widgets/node-toolbar.cpp:522 -#, fuzzy -msgid "Show Bezier handles of selected nodes" -msgstr "Mostra le maniglie Bezier dei nodi selezionati" +#: ../src/verbs.cpp:2871 +msgid "Memory usage information" +msgstr "Informazioni sull'uso della memoria" -#: ../src/widgets/node-toolbar.cpp:532 -msgid "Show Outline" -msgstr "Mostra scheletro" +#: ../src/verbs.cpp:2872 +msgid "_About Inkscape" +msgstr "Inform_azioni su Inkscape" -#: ../src/widgets/node-toolbar.cpp:533 -#, fuzzy -msgid "Show path outline (without path effects)" -msgstr "Mostra lo scheletro di un tracciato" +#: ../src/verbs.cpp:2873 +msgid "Inkscape version, authors, license" +msgstr "Versione, autori e licenza di Inkscape" -#: ../src/widgets/node-toolbar.cpp:555 -#, fuzzy -msgid "Edit clipping paths" -msgstr "Modifica fissaggio" +#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), +#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), +#. Tutorials +#: ../src/verbs.cpp:2878 +msgid "Inkscape: _Basic" +msgstr "Inkscape: _Base" -#: ../src/widgets/node-toolbar.cpp:556 -#, fuzzy -msgid "Show clipping path(s) of selected object(s)" -msgstr "Modifica il fissaggio dall'oggetto" +#: ../src/verbs.cpp:2879 +msgid "Getting started with Inkscape" +msgstr "Primi passi con Inkscape" -#: ../src/widgets/node-toolbar.cpp:566 -#, fuzzy -msgid "Edit masks" -msgstr "Modifica maschera" +#. "tutorial_basic" +#: ../src/verbs.cpp:2880 +msgid "Inkscape: _Shapes" +msgstr "Ink_scape: Forme" -#: ../src/widgets/node-toolbar.cpp:567 -#, fuzzy -msgid "Show mask(s) of selected object(s)" -msgstr "Sfalsa i colori degli oggetti selezionati" +#: ../src/verbs.cpp:2881 +msgid "Using shape tools to create and edit shapes" +msgstr "Utilizzo degli strumenti per creare e modificare forme" -#: ../src/widgets/node-toolbar.cpp:581 -msgid "X coordinate:" -msgstr "Coordinata X:" +#: ../src/verbs.cpp:2882 +msgid "Inkscape: _Advanced" +msgstr "Inkscape: _Avanzato" -#: ../src/widgets/node-toolbar.cpp:581 -msgid "X coordinate of selected node(s)" -msgstr "Coordinata X dei nodi selezionati" +#: ../src/verbs.cpp:2883 +msgid "Advanced Inkscape topics" +msgstr "Lezioni avanzate su Inkscape" -#: ../src/widgets/node-toolbar.cpp:599 -msgid "Y coordinate:" -msgstr "Coordinata Y:" +#. "tutorial_advanced" +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/verbs.cpp:2885 +msgid "Inkscape: T_racing" +msgstr "Inkscape: Vetto_rizzazione" -#: ../src/widgets/node-toolbar.cpp:599 -msgid "Y coordinate of selected node(s)" -msgstr "Coordinata Y dei nodi selezionati" +#: ../src/verbs.cpp:2886 +msgid "Using bitmap tracing" +msgstr "Utilizzo della vettorizzazione delle immagini" -#: ../src/widgets/paint-selector.cpp:234 -msgid "No paint" -msgstr "Nessun colore" +#. "tutorial_tracing" +#: ../src/verbs.cpp:2887 +#, fuzzy +msgid "Inkscape: Tracing Pixel Art" +msgstr "Inkscape: Vetto_rizzazione" -#: ../src/widgets/paint-selector.cpp:236 -msgid "Flat color" -msgstr "Colore uniforme" +#: ../src/verbs.cpp:2888 +msgid "Using Trace Pixel Art dialog" +msgstr "" -#: ../src/widgets/paint-selector.cpp:238 -msgid "Linear gradient" -msgstr "Gradiente lineare" +#: ../src/verbs.cpp:2889 +msgid "Inkscape: _Calligraphy" +msgstr "Inks_cape: Pennino" -#: ../src/widgets/paint-selector.cpp:240 -msgid "Radial gradient" -msgstr "Gradiente radiale" +#: ../src/verbs.cpp:2890 +msgid "Using the Calligraphy pen tool" +msgstr "Utilizzo del Pennino" -#: ../src/widgets/paint-selector.cpp:246 -msgid "Unset paint (make it undefined so it can be inherited)" -msgstr "Disattiva riempimento (affinchĂ© possa essere ereditato)" +#: ../src/verbs.cpp:2891 +#, fuzzy +msgid "Inkscape: _Interpolate" +msgstr "Ink_scape: Forme" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:263 -msgid "" -"Any path self-intersections or subpaths create holes in the fill (fill-rule: " -"evenodd)" +#: ../src/verbs.cpp:2892 +msgid "Using the interpolate extension" msgstr "" -"Qualsiasi autointersezione del tracciato o sottotracciati crea vuoti nel " -"riempimento (fill-rule:evenodd)" -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:274 -msgid "" -"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" -msgstr "" -"Il riempimento è intero a meno che un sottotracciato sia in direzione " -"opposta (fill-rule: nonzero)" +#. "tutorial_interpolate" +#: ../src/verbs.cpp:2893 +msgid "_Elements of Design" +msgstr "_Elementi di grafica" -#: ../src/widgets/paint-selector.cpp:590 -#, fuzzy -msgid "No objects" -msgstr "Aggancio agli oggetti" +#: ../src/verbs.cpp:2894 +msgid "Principles of design in the tutorial form" +msgstr "Principi di grafica" -#: ../src/widgets/paint-selector.cpp:601 -#, fuzzy -msgid "Multiple styles" -msgstr "Stili multipli" +#. "tutorial_design" +#: ../src/verbs.cpp:2895 +msgid "_Tips and Tricks" +msgstr "_Trucchi" -#: ../src/widgets/paint-selector.cpp:612 -#, fuzzy -msgid "Paint is undefined" -msgstr "Il riempimento non è definito" +#: ../src/verbs.cpp:2896 +msgid "Miscellaneous tips and tricks" +msgstr "Trucchi vari" -#: ../src/widgets/paint-selector.cpp:623 -#, fuzzy -msgid "No paint" -msgstr "OpacitĂ :" +#. "tutorial_tips" +#. Effect -- renamed Extension +#: ../src/verbs.cpp:2899 +msgid "Previous Exte_nsion" +msgstr "Este_nsione precedente" -#: ../src/widgets/paint-selector.cpp:694 -#, fuzzy -msgid "Flat color" -msgstr "Colore uniforme" +#: ../src/verbs.cpp:2900 +msgid "Repeat the last extension with the same settings" +msgstr "Ripete l'ultima estensione con le stesse impostazioni" -#. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:758 -#, fuzzy -msgid "Linear gradient" -msgstr "Gradiente lineare" +#: ../src/verbs.cpp:2901 +msgid "_Previous Extension Settings..." +msgstr "Impostazioni estensione _precedente..." -#: ../src/widgets/paint-selector.cpp:761 -#, fuzzy -msgid "Radial gradient" -msgstr "Gradiente radiale" +#: ../src/verbs.cpp:2902 +msgid "Repeat the last extension with new settings" +msgstr "Ripete l'ultima estensione con nuove impostazioni" -#: ../src/widgets/paint-selector.cpp:1055 +#: ../src/verbs.cpp:2906 +msgid "Fit the page to the current selection" +msgstr "Adatta la pagina alla selezione attuale" + +#: ../src/verbs.cpp:2908 +msgid "Fit the page to the drawing" +msgstr "Adatta la pagina al disegno" + +#: ../src/verbs.cpp:2910 msgid "" -"Use the Node tool to adjust position, scale, and rotation of the " -"pattern on canvas. Use Object > Pattern > Objects to Pattern to " -"create a new pattern from selection." +"Fit the page to the current selection or the drawing if there is no selection" msgstr "" -"Usare lo strumento Nodo per modificare la posizione, dimensione e " -"rotazionedel motivo sul disegno. Usare Oggetto > Motivo > Da " -"oggetto a motivo per creare un nuovo motivo dalla selezione." +"Adatta la pagina alla selezione attuale o al disegno se non è selezionato " +"nulla" -#: ../src/widgets/paint-selector.cpp:1068 -#, fuzzy -msgid "Pattern fill" -msgstr "Motivo" +#. LockAndHide +#: ../src/verbs.cpp:2912 +msgid "Unlock All" +msgstr "Sblocca tutto" -#: ../src/widgets/paint-selector.cpp:1162 -#, fuzzy -msgid "Swatch fill" -msgstr "Imposta riempimento" +#: ../src/verbs.cpp:2914 +msgid "Unlock All in All Layers" +msgstr "Sblocca tutto in ogni livello" -#: ../src/widgets/paintbucket-toolbar.cpp:133 -msgid "Fill by" -msgstr "Riempi con" +#: ../src/verbs.cpp:2916 +msgid "Unhide All" +msgstr "Mostra tutto" -#: ../src/widgets/paintbucket-toolbar.cpp:134 -msgid "Fill by:" -msgstr "Riempi con:" +#: ../src/verbs.cpp:2918 +msgid "Unhide All in All Layers" +msgstr "Mostra tutto in ogni livello" -#: ../src/widgets/paintbucket-toolbar.cpp:146 -msgid "Fill Threshold" -msgstr "Soglia riempimento" +#: ../src/verbs.cpp:2922 +msgid "Link an ICC color profile" +msgstr "Collega un profilo colore ICC" -#: ../src/widgets/paintbucket-toolbar.cpp:147 -msgid "" -"The maximum allowed difference between the clicked pixel and the neighboring " -"pixels to be counted in the fill" -msgstr "" -"La differenza massima consentita tra il pixel cliccato e i pixel vicini da " -"contare per il riempimento" +#: ../src/verbs.cpp:2923 +msgid "Remove Color Profile" +msgstr "Rimuovi profilo colore" -#: ../src/widgets/paintbucket-toolbar.cpp:174 -msgid "Grow/shrink by" -msgstr "Intrudi/Estrudi di" +#: ../src/verbs.cpp:2924 +msgid "Remove a linked ICC color profile" +msgstr "Rimuove un profilo colore ICC collegato" -#: ../src/widgets/paintbucket-toolbar.cpp:174 -msgid "Grow/shrink by:" -msgstr "Intrudi/Estrudi di:" +#: ../src/verbs.cpp:2927 +msgid "Add External Script" +msgstr "Aggiungi script esterno" -#: ../src/widgets/paintbucket-toolbar.cpp:175 -msgid "" -"The amount to grow (positive) or shrink (negative) the created fill path" -msgstr "" -"Di quanto estrudere (valore positivo) o intrudere (valore negativo) il " -"riempimento creato" +#: ../src/verbs.cpp:2927 +msgid "Add an external script" +msgstr "Aggiungi uno script esterno" -#: ../src/widgets/paintbucket-toolbar.cpp:200 -msgid "Close gaps" -msgstr "Area cuscinetto" +#: ../src/verbs.cpp:2929 +msgid "Add Embedded Script" +msgstr "Aggiungi script incorporato" -#: ../src/widgets/paintbucket-toolbar.cpp:201 -msgid "Close gaps:" -msgstr "Area cuscinetto:" +#: ../src/verbs.cpp:2929 +msgid "Add an embedded script" +msgstr "Aggiungi uno script incorporato" -#: ../src/widgets/paintbucket-toolbar.cpp:212 -#: ../src/widgets/pencil-toolbar.cpp:293 ../src/widgets/spiral-toolbar.cpp:289 -#: ../src/widgets/star-toolbar.cpp:564 -msgid "Defaults" -msgstr "Predefiniti" +#: ../src/verbs.cpp:2931 +msgid "Edit Embedded Script" +msgstr "Modifica script incorporato" -#: ../src/widgets/paintbucket-toolbar.cpp:213 -msgid "" -"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " -"to change defaults)" -msgstr "" -"Reimposta i parametri del secchiello ai valori predefiniti (usare Preferenze " -"di Inkscape > Strumenti per cambiare i valori predefiniti)" +#: ../src/verbs.cpp:2931 +msgid "Edit an embedded script" +msgstr "Modifica uno script incorporato" -#: ../src/widgets/pencil-toolbar.cpp:96 -msgid "Bezier" -msgstr "Bezier" +#: ../src/verbs.cpp:2933 +msgid "Remove External Script" +msgstr "Rimuovi script esterno" -#: ../src/widgets/pencil-toolbar.cpp:97 -msgid "Create regular Bezier path" -msgstr "Crea tracciati Bezier normali" +#: ../src/verbs.cpp:2933 +msgid "Remove an external script" +msgstr "Rimuovi uno script esterno" -#: ../src/widgets/pencil-toolbar.cpp:104 -msgid "Create Spiro path" -msgstr "Crea tracciato Spiro" +#: ../src/verbs.cpp:2935 +msgid "Remove Embedded Script" +msgstr "Rimuovi script incorporato" -#: ../src/widgets/pencil-toolbar.cpp:111 -msgid "Zigzag" -msgstr "Zigzag" +#: ../src/verbs.cpp:2935 +msgid "Remove an embedded script" +msgstr "Rimuovi uno script incorporato" -#: ../src/widgets/pencil-toolbar.cpp:112 -msgid "Create a sequence of straight line segments" -msgstr "Crea una sequenza di segmenti diritti" +#: ../src/verbs.cpp:2957 ../src/verbs.cpp:2958 +#, fuzzy +msgid "Center on horizontal and vertical axis" +msgstr "Centra sull'asse orizzontale" -#: ../src/widgets/pencil-toolbar.cpp:118 -msgid "Paraxial" -msgstr "Parassiale" +#: ../src/widgets/arc-toolbar.cpp:131 +msgid "Arc: Change start/end" +msgstr "Arco: Modifica inizio/fine" -#: ../src/widgets/pencil-toolbar.cpp:119 -msgid "Create a sequence of paraxial line segments" -msgstr "Crea una sequenza di segmenti parassiali" +#: ../src/widgets/arc-toolbar.cpp:197 +msgid "Arc: Change open/closed" +msgstr "Arco: Commuta aperto/chiuso" -#: ../src/widgets/pencil-toolbar.cpp:127 -msgid "Mode of new lines drawn by this tool" -msgstr "ModalitĂ  delle nuove linee disegnate da questo strumento" +#: ../src/widgets/arc-toolbar.cpp:288 ../src/widgets/arc-toolbar.cpp:317 +#: ../src/widgets/rect-toolbar.cpp:258 ../src/widgets/rect-toolbar.cpp:296 +#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 +#: ../src/widgets/star-toolbar.cpp:383 ../src/widgets/star-toolbar.cpp:444 +msgid "New:" +msgstr "Nuovo:" -#: ../src/widgets/pencil-toolbar.cpp:156 -msgid "Triangle in" -msgstr "Triangolo crescente" +#. FIXME: implement averaging of all parameters for multiple selected +#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); +#: ../src/widgets/arc-toolbar.cpp:291 ../src/widgets/arc-toolbar.cpp:302 +#: ../src/widgets/rect-toolbar.cpp:266 ../src/widgets/rect-toolbar.cpp:284 +#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 +#: ../src/widgets/star-toolbar.cpp:385 +msgid "Change:" +msgstr "Cambia:" -#: ../src/widgets/pencil-toolbar.cpp:157 -msgid "Triangle out" -msgstr "Triangolo decrescente" +#: ../src/widgets/arc-toolbar.cpp:326 +msgid "Start:" +msgstr "Inizio:" -#: ../src/widgets/pencil-toolbar.cpp:159 -msgid "From clipboard" -msgstr "Dagli appunti" +#: ../src/widgets/arc-toolbar.cpp:327 +msgid "The angle (in degrees) from the horizontal to the arc's start point" +msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" -#: ../src/widgets/pencil-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:185 -msgid "Shape:" -msgstr "Forma:" +#: ../src/widgets/arc-toolbar.cpp:339 +msgid "End:" +msgstr "Fine:" -#: ../src/widgets/pencil-toolbar.cpp:184 -msgid "Shape of new paths drawn by this tool" -msgstr "Forma dei nuovi tracciati disegnati con questo strumento" +#: ../src/widgets/arc-toolbar.cpp:340 +msgid "The angle (in degrees) from the horizontal to the arc's end point" +msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" -#: ../src/widgets/pencil-toolbar.cpp:269 -msgid "(many nodes, rough)" -msgstr "(molti nodi, grezzo)" +#: ../src/widgets/arc-toolbar.cpp:356 +msgid "Closed arc" +msgstr "Arco chiuso" -#: ../src/widgets/pencil-toolbar.cpp:269 -msgid "(few nodes, smooth)" -msgstr "(pochi nodi, smussato)" +#: ../src/widgets/arc-toolbar.cpp:357 +msgid "Switch to segment (closed shape with two radii)" +msgstr "Commuta in segmento (forma chiusa con due raggi)" -#: ../src/widgets/pencil-toolbar.cpp:272 -msgid "Smoothing:" -msgstr "Smussamento:" +#: ../src/widgets/arc-toolbar.cpp:363 +msgid "Open Arc" +msgstr "Arco aperto" -#: ../src/widgets/pencil-toolbar.cpp:272 -msgid "Smoothing: " -msgstr "Smussamento:" +#: ../src/widgets/arc-toolbar.cpp:364 +msgid "Switch to arc (unclosed shape)" +msgstr "Trasforma in arco (forma aperta)" -#: ../src/widgets/pencil-toolbar.cpp:273 -msgid "How much smoothing (simplifying) is applied to the line" -msgstr "Il grado di smussamento (semplificazione) applicato alla linea" +#: ../src/widgets/arc-toolbar.cpp:387 +msgid "Make whole" +msgstr "Rendi intero" -#: ../src/widgets/pencil-toolbar.cpp:294 -msgid "" -"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " -"change defaults)" -msgstr "" -"Reimposta i parametri del pastello ai valori predefiniti (usare Preferenze " -"di Inkscape > Strumenti per cambiare i valori predefiniti)" +#: ../src/widgets/arc-toolbar.cpp:388 +msgid "Make the shape a whole ellipse, not arc or segment" +msgstr "Rende la forma in un ellisse intero, non un arco o un segmento" -#: ../src/widgets/rect-toolbar.cpp:122 -msgid "Change rectangle" -msgstr "Modifica rettangolo" +#. TODO: use the correct axis here, too +#: ../src/widgets/box3d-toolbar.cpp:232 +msgid "3D Box: Change perspective (angle of infinite axis)" +msgstr "Solido 3D: cambia prospettiva (angolo degli assi prospettici)" -#: ../src/widgets/rect-toolbar.cpp:314 -msgid "W:" -msgstr "L:" +#: ../src/widgets/box3d-toolbar.cpp:299 +msgid "Angle in X direction" +msgstr "Angolo sulla direzione X" -#: ../src/widgets/rect-toolbar.cpp:314 -msgid "Width of rectangle" -msgstr "Larghezza del rettangolo" +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:301 +msgid "Angle of PLs in X direction" +msgstr "Angolo degli assi prospettici lungo la direzione X" -#: ../src/widgets/rect-toolbar.cpp:331 -msgid "H:" -msgstr "H:" +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:323 +msgid "State of VP in X direction" +msgstr "Stato del punto di fuga sulla direzione X" -#: ../src/widgets/rect-toolbar.cpp:331 -msgid "Height of rectangle" -msgstr "Altezza del rettangolo" +#: ../src/widgets/box3d-toolbar.cpp:324 +msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" +msgstr "" +"Imposta il punto di fuga sulla direzione X come «finito» o " +"«infinito» (=parallelo)" -#: ../src/widgets/rect-toolbar.cpp:345 ../src/widgets/rect-toolbar.cpp:360 -msgid "not rounded" -msgstr "non arrotondato" +#: ../src/widgets/box3d-toolbar.cpp:339 +msgid "Angle in Y direction" +msgstr "Angolo sulla direzione Y" -#: ../src/widgets/rect-toolbar.cpp:348 -msgid "Horizontal radius" -msgstr "Raggio orizzontale" +#: ../src/widgets/box3d-toolbar.cpp:339 +msgid "Angle Y:" +msgstr "Angolo Y:" -#: ../src/widgets/rect-toolbar.cpp:348 -msgid "Rx:" -msgstr "Rx:" +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:341 +msgid "Angle of PLs in Y direction" +msgstr "Angolo degli assi prospettici lungo la direzione Y" -#: ../src/widgets/rect-toolbar.cpp:348 -msgid "Horizontal radius of rounded corners" -msgstr "Raggio orizzontale di un angolo arrotondato" +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:362 +msgid "State of VP in Y direction" +msgstr "Stato del punto di fuga sulla direzione Y" -#: ../src/widgets/rect-toolbar.cpp:363 -msgid "Vertical radius" -msgstr "Raggio verticale" +#: ../src/widgets/box3d-toolbar.cpp:363 +msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" +msgstr "" +"Imposta il punto di fuga sulla direzione Y come «finito» o " +"«infinito» (=parallelo)" -#: ../src/widgets/rect-toolbar.cpp:363 -msgid "Ry:" -msgstr "Ry:" +#: ../src/widgets/box3d-toolbar.cpp:378 +msgid "Angle in Z direction" +msgstr "Angolo sulla direzione Z" -#: ../src/widgets/rect-toolbar.cpp:363 -msgid "Vertical radius of rounded corners" -msgstr "Raggio verticale di un angolo arrotondato" +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:380 +msgid "Angle of PLs in Z direction" +msgstr "Angolo degli assi prospettici lungo la direzione Z" -#: ../src/widgets/rect-toolbar.cpp:382 -msgid "Not rounded" -msgstr "Non arrotondato" +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:401 +msgid "State of VP in Z direction" +msgstr "Stato del punto di fuga sulla direzione Z" -#: ../src/widgets/rect-toolbar.cpp:383 -msgid "Make corners sharp" -msgstr "Rende gli angoli spigolosi" +#: ../src/widgets/box3d-toolbar.cpp:402 +msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" +msgstr "" +"Imposta il punto di fuga sulla direzione Z come «finito» o " +"«infinito» (=parallelo)" -#: ../src/widgets/ruler.cpp:192 -#, fuzzy -msgid "The orientation of the ruler" -msgstr "Orientazione dell'elemento del pannello" +#. gint preset_index = ege_select_one_action_get_active( sel ); +#: ../src/widgets/calligraphy-toolbar.cpp:218 +#: ../src/widgets/calligraphy-toolbar.cpp:262 +#: ../src/widgets/calligraphy-toolbar.cpp:267 +msgid "No preset" +msgstr "Nessuna preselezione" -#: ../src/widgets/ruler.cpp:202 -#, fuzzy -msgid "Unit of the ruler" -msgstr "Larghezza del motivo" +#. Width +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(hairline)" +msgstr "(tratto finissimo)" -#: ../src/widgets/ruler.cpp:209 -msgid "Lower" -msgstr "Abbassa" +#. Mean +#. Rotation +#. Scale +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:269 +#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 +#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(default)" +msgstr "(predefinito)" -#: ../src/widgets/ruler.cpp:210 -#, fuzzy -msgid "Lower limit of ruler" -msgstr "Sposta al livello precedente" +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(broad stroke)" +msgstr "(tratto ampio)" -#: ../src/widgets/ruler.cpp:219 -#, fuzzy -msgid "Upper" -msgstr "Contagocce" +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 +msgid "Pen Width" +msgstr "Larghezza pennino" -#: ../src/widgets/ruler.cpp:220 -msgid "Upper limit of ruler" -msgstr "" +#: ../src/widgets/calligraphy-toolbar.cpp:431 +msgid "The width of the calligraphic pen (relative to the visible canvas area)" +msgstr "La larghezza del pennino (relativa all'area visibile)" -#: ../src/widgets/ruler.cpp:230 -#, fuzzy -msgid "Position of mark on the ruler" -msgstr "Posizione lungo la curva" +#. Thinning +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed blows up stroke)" +msgstr "(sbava crescendo di velocitĂ )" -#: ../src/widgets/ruler.cpp:239 -#, fuzzy -msgid "Max Size" -msgstr "Dimensione" +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight widening)" +msgstr "(lieve sbavatura)" -#: ../src/widgets/ruler.cpp:240 -msgid "Maximum size of the ruler" -msgstr "" +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(constant width)" +msgstr "(larghezza costante)" -#: ../src/widgets/select-toolbar.cpp:260 -msgid "Transform by toolbar" -msgstr "Trasforma tramite barra strumenti" +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight thinning, default)" +msgstr "(lieve assottigliamento, predefinito)" -#: ../src/widgets/select-toolbar.cpp:339 -msgid "Now stroke width is scaled when objects are scaled." -msgstr "" -"Ora la larghezza del contorno viene ridimensionata quando gli oggetti " -"vengono ridimensionati." +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed deflates stroke)" +msgstr "(assotigliato dalla velocitĂ )" -#: ../src/widgets/select-toolbar.cpp:341 -msgid "Now stroke width is not scaled when objects are scaled." -msgstr "" -"Ora la larghezza del contorno non viene ridimensionata quando gli " -"oggetti vengono ridimensionati." +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Stroke Thinning" +msgstr "Diradamento tratto" -#: ../src/widgets/select-toolbar.cpp:352 -msgid "" -"Now rounded rectangle corners are scaled when rectangles are " -"scaled." -msgstr "" -"Ora gli angoli arrotondati dei rettangoli vengono ridimensionati " -"quando i rettangoli vengono ridimensionati." +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Thinning:" +msgstr "Diradamento:" -#: ../src/widgets/select-toolbar.cpp:354 +#: ../src/widgets/calligraphy-toolbar.cpp:448 msgid "" -"Now rounded rectangle corners are not scaled when rectangles " -"are scaled." +"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " +"makes them broader, 0 makes width independent of velocity)" msgstr "" -"Ora gli angoli arrotondati dei rettangoli non vengono ridimensionati " -"quando i rettangoli vengono ridimensionati." +"La velocitĂ  di diradamento del contorno (> 0 tratti piĂą netti, < 0 tratti " +"piĂą larghi; 0 la larghezza è indipendente dalla velocitĂ )" -#: ../src/widgets/select-toolbar.cpp:365 -msgid "" -"Now gradients are transformed along with their objects when " -"those are transformed (moved, scaled, rotated, or skewed)." -msgstr "" -"Ora i gradienti vengono trasformati insieme ai loro oggetti " -"quando questi vengono trasformati (spostati, ridimensionati, ruotati o " -"distorti)." +#. Angle +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(left edge up)" +msgstr "(lato sinistro in alto)" -#: ../src/widgets/select-toolbar.cpp:367 -msgid "" -"Now gradients remain fixed when objects are transformed " -"(moved, scaled, rotated, or skewed)." -msgstr "" -"Ora i gradienti restano fissi quando gli oggetti vengono " -"trasformati (spostati, ridimensionati, ruotati o distorti)." +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(horizontal)" +msgstr "(orizzontale)" -#: ../src/widgets/select-toolbar.cpp:378 -msgid "" -"Now patterns are transformed along with their objects when " -"those are transformed (moved, scaled, rotated, or skewed)." -msgstr "" -"Ora i motivi vengono trasformati insieme ai loro oggetti " -"quando questi vengono trasformati (spostati, ridimensionati, ruotati o " -"distorti)." +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(right edge up)" +msgstr "(lato destro in alto)" -#: ../src/widgets/select-toolbar.cpp:380 +#: ../src/widgets/calligraphy-toolbar.cpp:463 +msgid "Pen Angle" +msgstr "Angolo de" + +#: ../src/widgets/calligraphy-toolbar.cpp:463 +#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 +msgid "Angle:" +msgstr "Angolo:" + +#: ../src/widgets/calligraphy-toolbar.cpp:464 msgid "" -"Now patterns remain fixed when objects are transformed (moved, " -"scaled, rotated, or skewed)." +"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " +"fixation = 0)" msgstr "" -"Ora i motivi restano fissi quando gli oggetti vengono " -"trasformati (spostati, ridimensionati, ruotati o distorti)." +"L'angolazione della penna (in gradi; 0 = orizzontale; non ha effetto se " +"incidenza = 0)" -#. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:498 -#, fuzzy -msgctxt "Select toolbar" -msgid "X position" -msgstr "Posizione" +#. Fixation +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(perpendicular to stroke, \"brush\")" +msgstr "(perpendicolare alla direzione, \"pennello\")" -#: ../src/widgets/select-toolbar.cpp:498 -#, fuzzy -msgctxt "Select toolbar" -msgid "X:" -msgstr "X:" +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(almost fixed, default)" +msgstr "(quasi fisso, predefinito)" -#: ../src/widgets/select-toolbar.cpp:500 -msgid "Horizontal coordinate of selection" -msgstr "Coordinate orizzontali della selezione" +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(fixed by Angle, \"pen\")" +msgstr "(fissato dall'Angolo, penna)" -#: ../src/widgets/select-toolbar.cpp:504 -#, fuzzy -msgctxt "Select toolbar" -msgid "Y position" -msgstr "Posizione" +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation" +msgstr "Incidenza" -#: ../src/widgets/select-toolbar.cpp:504 -#, fuzzy -msgctxt "Select toolbar" -msgid "Y:" -msgstr "Y:" +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation:" +msgstr "Incidenza:" -#: ../src/widgets/select-toolbar.cpp:506 -msgid "Vertical coordinate of selection" -msgstr "Coordinate verticali della selezione" +#: ../src/widgets/calligraphy-toolbar.cpp:482 +msgid "" +"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " +"fixed angle)" +msgstr "" +"Angolo di incidenza (0 = pennino sempre perpendicolare alla direzione, 100 = " +"angolo fisso)" -#: ../src/widgets/select-toolbar.cpp:510 -#, fuzzy -msgctxt "Select toolbar" -msgid "Width" -msgstr "Larghezza" +#. Cap Rounding +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(blunt caps, default)" +msgstr "(margine netto, predefinito)" -#: ../src/widgets/select-toolbar.cpp:510 -#, fuzzy -msgctxt "Select toolbar" -msgid "W:" -msgstr "L:" +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(slightly bulging)" +msgstr "(lievemente arrotondato)" -#: ../src/widgets/select-toolbar.cpp:512 -msgid "Width of selection" -msgstr "Larghezza della selezione" +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(approximately round)" +msgstr "(arrotondato)" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(long protruding caps)" +msgstr "(estremi molto protrudenti)" -#: ../src/widgets/select-toolbar.cpp:519 -msgid "Lock width and height" -msgstr "Blocca larghezza e altezza: " +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Cap rounding" +msgstr "Arrotondamento estremi" -#: ../src/widgets/select-toolbar.cpp:520 -msgid "When locked, change both width and height by the same proportion" -msgstr "Se bloccato, cambia l'altezza e la larghezza in maniera proporzionale" +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Caps:" +msgstr "Estremi:" -#: ../src/widgets/select-toolbar.cpp:529 -#, fuzzy -msgctxt "Select toolbar" -msgid "Height" -msgstr "Altezza" +#: ../src/widgets/calligraphy-toolbar.cpp:499 +msgid "" +"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " +"round caps)" +msgstr "" +"Aumentare il valore per avere maggior protrusione degli spigoli di fine " +"contorno (0 = nessuno spigolo, 1 = spigolo arrotondato)" -#: ../src/widgets/select-toolbar.cpp:529 -#, fuzzy -msgctxt "Select toolbar" -msgid "H:" -msgstr "H:" +#. Tremor +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(smooth line)" +msgstr "(linea dritta)" -#: ../src/widgets/select-toolbar.cpp:531 -msgid "Height of selection" -msgstr "Altezza della selezione" +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(slight tremor)" +msgstr "(leggero tremore)" -#: ../src/widgets/select-toolbar.cpp:581 -msgid "Scale rounded corners" -msgstr "Ridimensiona angoli arrotondati" +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(noticeable tremor)" +msgstr "(tremore notevole)" -#: ../src/widgets/select-toolbar.cpp:592 -msgid "Move gradients" -msgstr "Muovi gradiente" +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(maximum tremor)" +msgstr "(tremore massimo)" -#: ../src/widgets/select-toolbar.cpp:603 -msgid "Move patterns" -msgstr "Muovi motivi" +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Stroke Tremor" +msgstr "Tremore tratto" -#: ../src/widgets/sp-attribute-widget.cpp:299 -msgid "Set attribute" -msgstr "Imposta attributo" +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Tremor:" +msgstr "Tremore:" -#: ../src/widgets/sp-color-icc-selector.cpp:257 -msgid "CMS" -msgstr "CMS" +#: ../src/widgets/calligraphy-toolbar.cpp:515 +msgid "Increase to make strokes rugged and trembling" +msgstr "Aumentare per rendere il tratto increspato e tremolante" -#: ../src/widgets/sp-color-icc-selector.cpp:355 -#: ../src/widgets/sp-color-scales.cpp:428 -#, fuzzy -msgid "_R:" -msgstr "_R" +#. Wiggle +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(no wiggle)" +msgstr "(nessuna ondulazione)" -#. TYPE_RGB_16 -#: ../src/widgets/sp-color-icc-selector.cpp:356 -#: ../src/widgets/sp-color-scales.cpp:431 -#, fuzzy -msgid "_G:" -msgstr "_G" +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(slight deviation)" +msgstr "(leggera deviazione)" -#: ../src/widgets/sp-color-icc-selector.cpp:357 -#: ../src/widgets/sp-color-scales.cpp:434 -#, fuzzy -msgid "_B:" -msgstr "_B" +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(wild waves and curls)" +msgstr "(forte increspatura)" -#: ../src/widgets/sp-color-icc-selector.cpp:359 -msgid "Gray" -msgstr "Grigio" +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Pen Wiggle" +msgstr "Ondulazione pennino" -#. TYPE_GRAY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:361 -#: ../src/widgets/sp-color-icc-selector.cpp:365 -#: ../src/widgets/sp-color-scales.cpp:454 -#, fuzzy -msgid "_H:" -msgstr "_H" +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Wiggle:" +msgstr "Ondulazione:" -#. TYPE_HSV_16 -#: ../src/widgets/sp-color-icc-selector.cpp:362 -#: ../src/widgets/sp-color-icc-selector.cpp:367 -#: ../src/widgets/sp-color-scales.cpp:457 -#, fuzzy -msgid "_S:" -msgstr "_S" +#: ../src/widgets/calligraphy-toolbar.cpp:533 +msgid "Increase to make the pen waver and wiggle" +msgstr "Aumentare per rendere la scrittura piĂą ondulata" -#. TYPE_HLS_16 -#: ../src/widgets/sp-color-icc-selector.cpp:366 -#: ../src/widgets/sp-color-scales.cpp:460 -#, fuzzy -msgid "_L:" -msgstr "_L" +#. Mass +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(no inertia)" +msgstr "(nessun'inerzia)" -#: ../src/widgets/sp-color-icc-selector.cpp:369 -#: ../src/widgets/sp-color-icc-selector.cpp:374 -#: ../src/widgets/sp-color-scales.cpp:482 -#, fuzzy -msgid "_C:" -msgstr "_C" +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(slight smoothing, default)" +msgstr "(leggero ritardo, predefinito)" -#. TYPE_CMYK_16 -#. TYPE_CMY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:370 -#: ../src/widgets/sp-color-icc-selector.cpp:375 -#: ../src/widgets/sp-color-scales.cpp:485 -#, fuzzy -msgid "_M:" -msgstr "_M" +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(noticeable lagging)" +msgstr "(ritardo apprezzabile)" -#: ../src/widgets/sp-color-icc-selector.cpp:371 -#: ../src/widgets/sp-color-icc-selector.cpp:376 -#: ../src/widgets/sp-color-scales.cpp:488 -#, fuzzy -msgid "_Y:" -msgstr "Y:" +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(maximum inertia)" +msgstr "(inerzia massima)" -#: ../src/widgets/sp-color-icc-selector.cpp:372 -#: ../src/widgets/sp-color-scales.cpp:491 -#, fuzzy -msgid "_K:" -msgstr "_K" +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Pen Mass" +msgstr "Inerzia pennino" -#: ../src/widgets/sp-color-icc-selector.cpp:455 -msgid "Fix" -msgstr "Fissa" +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Mass:" +msgstr "Inerzia:" -#: ../src/widgets/sp-color-icc-selector.cpp:458 -msgid "Fix RGB fallback to match icc-color() value." -msgstr "Fissa fallback RGB corrispondente al valore icc-color()." +#: ../src/widgets/calligraphy-toolbar.cpp:550 +msgid "Increase to make the pen drag behind, as if slowed by inertia" +msgstr "" +"Aumentare il valore per impostare il ritardo al pennino, come se fosse " +"rallentato per inerzia" -#. Label -#: ../src/widgets/sp-color-icc-selector.cpp:561 -#: ../src/widgets/sp-color-scales.cpp:437 -#: ../src/widgets/sp-color-scales.cpp:463 -#: ../src/widgets/sp-color-scales.cpp:494 -#: ../src/widgets/sp-color-wheel-selector.cpp:140 -#, fuzzy -msgid "_A:" -msgstr "_A" +#: ../src/widgets/calligraphy-toolbar.cpp:565 +msgid "Trace Background" +msgstr "Vettorizza sfondo" -#: ../src/widgets/sp-color-icc-selector.cpp:572 -#: ../src/widgets/sp-color-icc-selector.cpp:585 -#: ../src/widgets/sp-color-scales.cpp:438 -#: ../src/widgets/sp-color-scales.cpp:439 -#: ../src/widgets/sp-color-scales.cpp:464 -#: ../src/widgets/sp-color-scales.cpp:465 -#: ../src/widgets/sp-color-scales.cpp:495 -#: ../src/widgets/sp-color-scales.cpp:496 -#: ../src/widgets/sp-color-wheel-selector.cpp:161 -#: ../src/widgets/sp-color-wheel-selector.cpp:185 -msgid "Alpha (opacity)" -msgstr "Alpha (opacitĂ )" +#: ../src/widgets/calligraphy-toolbar.cpp:566 +msgid "" +"Trace the lightness of the background by the width of the pen (white - " +"minimum width, black - maximum width)" +msgstr "" +"Imitare la luminositĂ  dello sfondo con lo spessore del tratto a penna " +"(bianco - larghezza minima, nero - larghezza massima)" -#: ../src/widgets/sp-color-notebook.cpp:385 -#, fuzzy -msgid "Color Managed" -msgstr "Gestione del colore" +#: ../src/widgets/calligraphy-toolbar.cpp:579 +msgid "Use the pressure of the input device to alter the width of the pen" +msgstr "" +"Usare la pressione del dispositivo di input per alterare la larghezza della " +"penna" -#: ../src/widgets/sp-color-notebook.cpp:392 -#, fuzzy -msgid "Out of gamut!" -msgstr "Colore avviso fuori gamma:" +#: ../src/widgets/calligraphy-toolbar.cpp:591 +msgid "Tilt" +msgstr "Tilt" -#: ../src/widgets/sp-color-notebook.cpp:399 -#, fuzzy -msgid "Too much ink!" -msgstr "Aumenta l'ingrandimento" +#: ../src/widgets/calligraphy-toolbar.cpp:592 +msgid "Use the tilt of the input device to alter the angle of the pen's nib" +msgstr "" +"Usare l'inclinazione della dispositivo di input per alterare l'angolo della " +"punta della penna" -#. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:416 -msgid "RGBA_:" -msgstr "RGBA_:" +#: ../src/widgets/calligraphy-toolbar.cpp:607 +msgid "Choose a preset" +msgstr "Usa una preselezione" -#: ../src/widgets/sp-color-notebook.cpp:424 -msgid "Hexadecimal RGBA value of the color" -msgstr "Valore RGBA esadecimale del colore" +#: ../src/widgets/calligraphy-toolbar.cpp:622 +#, fuzzy +msgid "Add/Edit Profile" +msgstr "Collega profilo" -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "RGB" -msgstr "RGB" +#: ../src/widgets/calligraphy-toolbar.cpp:623 +#, fuzzy +msgid "Add or edit calligraphic profile" +msgstr "Crea linee calligrafiche" -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "HSL" -msgstr "HSL" +#: ../src/widgets/connector-toolbar.cpp:120 +msgid "Set connector type: orthogonal" +msgstr "" -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "CMYK" -msgstr "CMYK" +#: ../src/widgets/connector-toolbar.cpp:120 +msgid "Set connector type: polyline" +msgstr "" -#: ../src/widgets/sp-color-selector.cpp:64 -msgid "Unnamed" -msgstr "Senza nome" +#: ../src/widgets/connector-toolbar.cpp:169 +#, fuzzy +msgid "Change connector curvature" +msgstr "Cambia spaziatura connettori" -#: ../src/widgets/sp-xmlview-attr-list.cpp:64 -msgid "Value" -msgstr "Valore" +#: ../src/widgets/connector-toolbar.cpp:220 +msgid "Change connector spacing" +msgstr "Cambia spaziatura connettori" -#: ../src/widgets/sp-xmlview-content.cpp:179 -msgid "Type text in a text node" -msgstr "Scrivi testo in un nodo testuale" +#: ../src/widgets/connector-toolbar.cpp:313 +msgid "Avoid" +msgstr "Evita" -#: ../src/widgets/spiral-toolbar.cpp:100 -msgid "Change spiral" -msgstr "Modifica spirale" +#: ../src/widgets/connector-toolbar.cpp:323 +msgid "Ignore" +msgstr "Ignora" -#: ../src/widgets/spiral-toolbar.cpp:246 -msgid "just a curve" -msgstr "curva semplice" +#: ../src/widgets/connector-toolbar.cpp:334 +msgid "Orthogonal" +msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:246 -msgid "one full revolution" -msgstr "una rivoluzione intera" +#: ../src/widgets/connector-toolbar.cpp:335 +msgid "Make connector orthogonal or polyline" +msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Number of turns" -msgstr "Numero di rivoluzioni" +# -Luca +#: ../src/widgets/connector-toolbar.cpp:349 +#, fuzzy +msgid "Connector Curvature" +msgstr "Preferenze connettore" -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Turns:" -msgstr "Rivoluzioni:" +#: ../src/widgets/connector-toolbar.cpp:349 +#, fuzzy +msgid "Curvature:" +msgstr "curvatura minima" -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Number of revolutions" -msgstr "Numero di rivoluzioni" +#: ../src/widgets/connector-toolbar.cpp:350 +msgid "The amount of connectors curvature" +msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "circle" -msgstr "cerchio" +#: ../src/widgets/connector-toolbar.cpp:360 +msgid "Connector Spacing" +msgstr "Spaziatura connettori" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "edge is much denser" -msgstr "contorno molto denso" +#: ../src/widgets/connector-toolbar.cpp:360 +msgid "Spacing:" +msgstr "Spaziatura:" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "edge is denser" -msgstr "contorno denso" +#: ../src/widgets/connector-toolbar.cpp:361 +msgid "The amount of space left around objects by auto-routing connectors" +msgstr "" +"Lo spazio da lasciare intorno agli oggetti quando si tracciano " +"automaticamente i connettori" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "even" -msgstr "pari" +#: ../src/widgets/connector-toolbar.cpp:372 +msgid "Graph" +msgstr "Grafico" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "center is denser" -msgstr "centro denso" +#: ../src/widgets/connector-toolbar.cpp:382 +msgid "Connector Length" +msgstr "Lunghezza connettori" -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "center is much denser" -msgstr "centro molto denso" +#: ../src/widgets/connector-toolbar.cpp:382 +msgid "Length:" +msgstr "Lunghezza:" -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "Divergence" -msgstr "Divergenza" +#: ../src/widgets/connector-toolbar.cpp:383 +msgid "Ideal length for connectors when layout is applied" +msgstr "Lunghezza ideale dei connettori quando il modello è applicato" -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "Divergence:" -msgstr "Divergenza:" +#: ../src/widgets/connector-toolbar.cpp:395 +msgid "Downwards" +msgstr "Contrario" -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "How much denser/sparser are outer revolutions; 1 = uniform" -msgstr "La densitĂ  delle rivoluzioni esterne; 1 = uniformi" +#: ../src/widgets/connector-toolbar.cpp:396 +msgid "Make connectors with end-markers (arrows) point downwards" +msgstr "" +"Fa sì che i connettori con delimitatori finali (frecce) puntino indietro" -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts from center" -msgstr "parte dal centro" +#: ../src/widgets/connector-toolbar.cpp:412 +msgid "Do not allow overlapping shapes" +msgstr "Non permettere la sovrapposizione delle forme" -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts mid-way" -msgstr "parte da metĂ " +#: ../src/widgets/dash-selector.cpp:59 +msgid "Dash pattern" +msgstr "Motivo del tratteggio" -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts near edge" -msgstr "parte vicino al termine" +#: ../src/widgets/dash-selector.cpp:76 +msgid "Pattern offset" +msgstr "Spessore del motivo" -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Inner radius" -msgstr "Raggio interno" +#: ../src/widgets/desktop-widget.cpp:466 +msgid "Zoom drawing if window size changes" +msgstr "Aggiusta l'ingrandimento se cambia la dimensione della finestra" -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Inner radius:" -msgstr "Raggio interno:" +#: ../src/widgets/desktop-widget.cpp:665 +msgid "Cursor coordinates" +msgstr "Cordinate del cursore" -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Radius of the innermost revolution (relative to the spiral size)" -msgstr "" -"Il raggio delle rivoluzioni piĂą interne (relativo alle dimensioni della " -"spirale)" +#: ../src/widgets/desktop-widget.cpp:691 +msgid "Z:" +msgstr "Z:" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:565 +#. display the initial welcome message in the statusbar +#: ../src/widgets/desktop-widget.cpp:734 msgid "" -"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " -"change defaults)" +"Welcome to Inkscape! Use shape or freehand tools to create objects; " +"use selector (arrow) to move or transform them." msgstr "" -"Reimposta i parametri delle forma ai valori predefiniti (usare Preferenze di " -"Inkscape > Strumenti per cambiare i valori predefiniti)" +"Benvenuti in Inkscape! Usare le forme o gli strumenti a mano libera " +"per creare gli oggetti; usare il selettore (freccia) per muoverli o " +"trasformarli." -#. Width -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/desktop-widget.cpp:828 #, fuzzy -msgid "(narrow spray)" -msgstr "piĂą stretta" +msgid "grayscale" +msgstr "Scala di grigi" -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/desktop-widget.cpp:829 #, fuzzy -msgid "(broad spray)" -msgstr "(tratto ampio)" +msgid ", grayscale" +msgstr "Scala di grigi" -#: ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/desktop-widget.cpp:830 #, fuzzy -msgid "The width of the spray area (relative to the visible canvas area)" -msgstr "" -"La larghezza dell'area di ritocco (relativa all'area della tela visibile)" +msgid "print colors preview" +msgstr "Anteprima di stam_pa" -#: ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/desktop-widget.cpp:831 #, fuzzy -msgid "(maximum mean)" -msgstr "(inerzia massima)" +msgid ", print colors preview" +msgstr "Anteprima di stam_pa" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/desktop-widget.cpp:832 #, fuzzy -msgid "Focus" -msgstr "angolare" +msgid "outline" +msgstr "Scheletro" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/desktop-widget.cpp:833 #, fuzzy -msgid "Focus:" -msgstr "Forza:" - -#: ../src/widgets/spray-toolbar.cpp:132 -msgid "0 to spray a spot; increase to enlarge the ring radius" -msgstr "" +msgid "no filters" +msgstr "Nessun _filtro" -#. Standard_deviation -#: ../src/widgets/spray-toolbar.cpp:145 -#, fuzzy -msgid "(minimum scatter)" -msgstr "(forza minima)" +#: ../src/widgets/desktop-widget.cpp:860 +#, fuzzy, c-format +msgid "%s%s: %d (%s%s) - Inkscape" +msgstr "%s: %d - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:145 -#, fuzzy -msgid "(maximum scatter)" -msgstr "(tremore massimo)" +#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 +#, fuzzy, c-format +msgid "%s%s: %d (%s) - Inkscape" +msgstr "%s: %d - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:148 -#, fuzzy -msgctxt "Spray tool" -msgid "Scatter" -msgstr "Sciame" +#: ../src/widgets/desktop-widget.cpp:868 +#, fuzzy, c-format +msgid "%s%s: %d - Inkscape" +msgstr "%s: %d - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:148 -#, fuzzy -msgctxt "Spray tool" -msgid "Scatter:" -msgstr "Sciame" +#: ../src/widgets/desktop-widget.cpp:874 +#, fuzzy, c-format +msgid "%s%s (%s%s) - Inkscape" +msgstr "%s - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:148 -msgid "Increase to scatter sprayed objects" -msgstr "" +#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 +#, fuzzy, c-format +msgid "%s%s (%s) - Inkscape" +msgstr "%s - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:167 -#, fuzzy -msgid "Spray copies of the initial selection" -msgstr "Applica l'effetto desiderato alla selezione" +#: ../src/widgets/desktop-widget.cpp:882 +#, fuzzy, c-format +msgid "%s%s - Inkscape" +msgstr "%s - Inkscape" -#: ../src/widgets/spray-toolbar.cpp:174 +#: ../src/widgets/desktop-widget.cpp:1051 #, fuzzy -msgid "Spray clones of the initial selection" -msgstr "Crea e serializza i cloni della selezione" +msgid "Color-managed display is enabled in this window" +msgstr "" +"Attiva la gestione del colore del display per questa finestra di documento" -#: ../src/widgets/spray-toolbar.cpp:180 +#: ../src/widgets/desktop-widget.cpp:1053 #, fuzzy -msgid "Spray single path" -msgstr "Cancella tracciato esistente" +msgid "Color-managed display is disabled in this window" +msgstr "" +"Attiva la gestione del colore del display per questa finestra di documento" -#: ../src/widgets/spray-toolbar.cpp:181 -msgid "Spray objects in a single path" +#: ../src/widgets/desktop-widget.cpp:1108 +#, c-format +msgid "" +"Save changes to document \"%s\" before " +"closing?\n" +"\n" +"If you close without saving, your changes will be discarded." msgstr "" +"Salvare i cambiamenti al documento \"%s" +"\" prima di chiudere?\n" +"\n" +"Chiudendo senza salvare, le modifiche verranno perse." -#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 -msgid "Mode" -msgstr "ModalitĂ " +#: ../src/widgets/desktop-widget.cpp:1118 +#: ../src/widgets/desktop-widget.cpp:1177 +msgid "Close _without saving" +msgstr "_Chiudi senza salvare" -#. Population -#: ../src/widgets/spray-toolbar.cpp:205 -msgid "(low population)" +#: ../src/widgets/desktop-widget.cpp:1167 +#, fuzzy, c-format +msgid "" +"The file \"%s\" was saved with a " +"format that may cause data loss!\n" +"\n" +"Do you want to save this file as Inkscape SVG?" msgstr "" +"Il file \"%s\" è stato salvato con un " +"formato (%s) che può provocare perdite di dati!\n" +"\n" +"Salvarlo come un file SVG di Inkscape?" -#: ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/desktop-widget.cpp:1179 #, fuzzy -msgid "(high population)" -msgstr "(leggera deviazione)" - -#: ../src/widgets/spray-toolbar.cpp:208 -msgid "Amount" -msgstr "QuantitĂ " +msgid "_Save as Inkscape SVG" +msgstr "_Salva come SVG" -#: ../src/widgets/spray-toolbar.cpp:209 -msgid "Adjusts the number of items sprayed per click" +#: ../src/widgets/desktop-widget.cpp:1392 +msgid "Note:" msgstr "" -#: ../src/widgets/spray-toolbar.cpp:225 -#, fuzzy +#: ../src/widgets/dropper-toolbar.cpp:90 +msgid "Pick opacity" +msgstr "Preleva opacitĂ " + +#: ../src/widgets/dropper-toolbar.cpp:91 msgid "" -"Use the pressure of the input device to alter the amount of sprayed objects" +"Pick both the color and the alpha (transparency) under cursor; otherwise, " +"pick only the visible color premultiplied by alpha" msgstr "" -"Usare la pressione del dispositivo di input per alterare la larghezza della " -"penna" - -#: ../src/widgets/spray-toolbar.cpp:235 -#, fuzzy -msgid "(high rotation variation)" -msgstr "(leggera deviazione)" +"Preleva sia il colore che l'alpha (trasparenza) sotto il cursore; altrimenti " +"preleva solo il colore visibile premoltiplicato per il valore alpha" -#: ../src/widgets/spray-toolbar.cpp:238 -#, fuzzy -msgid "Rotation" -msgstr "_Rotazione" +#: ../src/widgets/dropper-toolbar.cpp:94 +msgid "Pick" +msgstr "Preleva" -#: ../src/widgets/spray-toolbar.cpp:238 -#, fuzzy -msgid "Rotation:" -msgstr "_Rotazione" +#: ../src/widgets/dropper-toolbar.cpp:103 +msgid "Assign opacity" +msgstr "Assegna opacitĂ " -#: ../src/widgets/spray-toolbar.cpp:240 -#, no-c-format +#: ../src/widgets/dropper-toolbar.cpp:104 msgid "" -"Variation of the rotation of the sprayed objects; 0% for the same rotation " -"than the original object" +"If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "" +"Se il canale alpha è prelevato, lo assegna alla selezione come trasparenza " +"di riempimento o contorno" -#: ../src/widgets/spray-toolbar.cpp:253 -#, fuzzy -msgid "(high scale variation)" -msgstr "(leggera deviazione)" +#: ../src/widgets/dropper-toolbar.cpp:107 +msgid "Assign" +msgstr "Assegna" -#: ../src/widgets/spray-toolbar.cpp:256 -#, fuzzy -msgctxt "Spray tool" -msgid "Scale" -msgstr "Ridimensiona" +#: ../src/widgets/ege-paint-def.cpp:87 +msgid "remove" +msgstr "rimuovi" -#: ../src/widgets/spray-toolbar.cpp:256 -#, fuzzy -msgctxt "Spray tool" -msgid "Scale:" -msgstr "Ridimensiona:" +#: ../src/widgets/eraser-toolbar.cpp:94 +msgid "Delete objects touched by the eraser" +msgstr "Cancella oggetti toccati dalla gomma" -#: ../src/widgets/spray-toolbar.cpp:258 -#, no-c-format -msgid "" -"Variation in the scale of the sprayed objects; 0% for the same scale than " -"the original object" -msgstr "" +#: ../src/widgets/eraser-toolbar.cpp:100 +msgid "Cut" +msgstr "Taglia" -#: ../src/widgets/star-toolbar.cpp:102 -msgid "Star: Change number of corners" -msgstr "Stella: cambia numero di vertici" +#: ../src/widgets/eraser-toolbar.cpp:101 +msgid "Cut out from objects" +msgstr "Taglia dagli oggetti" -#: ../src/widgets/star-toolbar.cpp:155 -msgid "Star: Change spoke ratio" -msgstr "Stella: Cambia lunghezza dei raggi" +#: ../src/widgets/eraser-toolbar.cpp:129 +msgid "The width of the eraser pen (relative to the visible canvas area)" +msgstr "La larghezza del cancellino (relativa all'area della tela visibile)" -#: ../src/widgets/star-toolbar.cpp:200 -msgid "Make polygon" -msgstr "Crea poligono" +#: ../src/widgets/fill-style.cpp:362 +msgid "Change fill rule" +msgstr "Modifica regola di riempimento" -#: ../src/widgets/star-toolbar.cpp:200 -msgid "Make star" -msgstr "Crea stella" +#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +msgid "Set fill color" +msgstr "Imposta colore di riempimento" -#: ../src/widgets/star-toolbar.cpp:239 -msgid "Star: Change rounding" -msgstr "Stella: Cambia arrotondamento" +#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +msgid "Set stroke color" +msgstr "Imposta colore contorno" -#: ../src/widgets/star-toolbar.cpp:279 -msgid "Star: Change randomization" -msgstr "Stella: Cambia casualitĂ " +#: ../src/widgets/fill-style.cpp:625 +msgid "Set gradient on fill" +msgstr "Imposta gradiente per il riempimento" -#: ../src/widgets/star-toolbar.cpp:463 -msgid "Regular polygon (with one handle) instead of a star" -msgstr "Poligono regolare (con una maniglia) invece di una stella" +#: ../src/widgets/fill-style.cpp:625 +msgid "Set gradient on stroke" +msgstr "Imposta gradiente per il contorno" -#: ../src/widgets/star-toolbar.cpp:470 -msgid "Star instead of a regular polygon (with one handle)" -msgstr "Stella invece di un poligono regolare (con una maniglia)" +#: ../src/widgets/fill-style.cpp:685 +msgid "Set pattern on fill" +msgstr "Imposta motivo per il riempimento" -#: ../src/widgets/star-toolbar.cpp:491 -msgid "triangle/tri-star" -msgstr "triangolo/tri-stella" +#: ../src/widgets/fill-style.cpp:686 +msgid "Set pattern on stroke" +msgstr "Imposta motivo per il contorno" -#: ../src/widgets/star-toolbar.cpp:491 -msgid "square/quad-star" -msgstr "quadrato/quadri-stella" +#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:956 +#: ../src/widgets/text-toolbar.cpp:1270 +msgid "Font size" +msgstr "Dimensione carattere" -#: ../src/widgets/star-toolbar.cpp:491 -msgid "pentagon/five-pointed star" -msgstr "pentagono/penta-stella" +#. Family frame +#: ../src/widgets/font-selector.cpp:148 +msgid "Font family" +msgstr "Carattere" -#: ../src/widgets/star-toolbar.cpp:491 -msgid "hexagon/six-pointed star" -msgstr "esagono/esa-stella" +#. Style frame +#: ../src/widgets/font-selector.cpp:193 +msgctxt "Font selector" +msgid "Style" +msgstr "Stile" -#: ../src/widgets/star-toolbar.cpp:494 -msgid "Corners" -msgstr "Angoli" +#: ../src/widgets/font-selector.cpp:225 +#, fuzzy +msgid "Face" +msgstr "Facce" -#: ../src/widgets/star-toolbar.cpp:494 -msgid "Corners:" -msgstr "Angoli:" +#: ../src/widgets/font-selector.cpp:254 ../share/extensions/dots.inx.h:3 +msgid "Font size:" +msgstr "Dimensione carattere:" -#: ../src/widgets/star-toolbar.cpp:494 -msgid "Number of corners of a polygon or star" -msgstr "Numero di angoli di un poligono o di una stella" +#: ../src/widgets/gradient-selector.cpp:214 +msgid "Create a duplicate gradient" +msgstr "Crea un duplicato del gradiente" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "thin-ray star" -msgstr "stella a raggi sottili" +#: ../src/widgets/gradient-selector.cpp:230 +msgid "Edit gradient" +msgstr "Modifica gradiente" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "pentagram" -msgstr "pentagramma" +#: ../src/widgets/gradient-selector.cpp:306 +#: ../src/widgets/paint-selector.cpp:244 +#, fuzzy +msgid "Swatch" +msgstr "Bozzetto" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "hexagram" -msgstr "esagramma" +#: ../src/widgets/gradient-selector.cpp:356 +msgid "Rename gradient" +msgstr "Rinomina gradiente" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "heptagram" -msgstr "eptagramma" +#: ../src/widgets/gradient-toolbar.cpp:156 +#: ../src/widgets/gradient-toolbar.cpp:169 +#: ../src/widgets/gradient-toolbar.cpp:756 +#: ../src/widgets/gradient-toolbar.cpp:1094 +#, fuzzy +msgid "No gradient" +msgstr "Muovi gradiente" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "octagram" -msgstr "ottagramma" +#: ../src/widgets/gradient-toolbar.cpp:175 +#, fuzzy +msgid "Multiple gradients" +msgstr "Muovi gradiente" -#: ../src/widgets/star-toolbar.cpp:507 -msgid "regular polygon" -msgstr "poligono regolare" +#: ../src/widgets/gradient-toolbar.cpp:676 +#, fuzzy +msgid "Multiple stops" +msgstr "Stili multipli" -#: ../src/widgets/star-toolbar.cpp:510 -msgid "Spoke ratio" -msgstr "Rapporto raggi" +#: ../src/widgets/gradient-toolbar.cpp:774 +#: ../src/widgets/gradient-vector.cpp:629 +msgid "No stops in gradient" +msgstr "Nessun passaggio nel gradiente" -#: ../src/widgets/star-toolbar.cpp:510 -msgid "Spoke ratio:" -msgstr "Rapporto raggi:" +#: ../src/widgets/gradient-toolbar.cpp:927 +msgid "Assign gradient to object" +msgstr "Assegna gradiente ad oggetto" -#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. -#. Base radius is the same for the closest handle. -#: ../src/widgets/star-toolbar.cpp:513 -msgid "Base radius to tip radius ratio" -msgstr "Rapporto tra diametro interno e diametro totale" +#: ../src/widgets/gradient-toolbar.cpp:949 +#, fuzzy +msgid "Set gradient repeat" +msgstr "Imposta gradiente per il contorno" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "stretched" -msgstr "molto strozzato" +#: ../src/widgets/gradient-toolbar.cpp:987 +#: ../src/widgets/gradient-vector.cpp:740 +msgid "Change gradient stop offset" +msgstr "Cambia offset del passaggio del gradiente" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "twisted" -msgstr "visibilmente strozzato" +#: ../src/widgets/gradient-toolbar.cpp:1034 +#, fuzzy +msgid "linear" +msgstr "Lineare" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "slightly pinched" -msgstr "leggermente strozzato" +#: ../src/widgets/gradient-toolbar.cpp:1034 +msgid "Create linear gradient" +msgstr "Crea gradiente lineare" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "NOT rounded" -msgstr "non arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1038 +msgid "radial" +msgstr "" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "slightly rounded" -msgstr "leggermente arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1038 +msgid "Create radial (elliptic or circular) gradient" +msgstr "Crea un gradiente radiale (ellittico o circolare)" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "visibly rounded" -msgstr "visibilmente arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/mesh-toolbar.cpp:211 +msgid "New:" +msgstr "Nuovo:" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "well rounded" -msgstr "ben arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1064 +#: ../src/widgets/mesh-toolbar.cpp:234 +#, fuzzy +msgid "fill" +msgstr "Parallelo" -#: ../src/widgets/star-toolbar.cpp:531 -msgid "amply rounded" -msgstr "molto arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1064 +#: ../src/widgets/mesh-toolbar.cpp:234 +msgid "Create gradient in the fill" +msgstr "Crea gradiente per il riempimento" -#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 -msgid "blown up" -msgstr "gonfiato" +#: ../src/widgets/gradient-toolbar.cpp:1068 +#: ../src/widgets/mesh-toolbar.cpp:238 +#, fuzzy +msgid "stroke" +msgstr "Contorno:" -#: ../src/widgets/star-toolbar.cpp:534 -msgid "Rounded:" -msgstr "Arrotondamento:" +#: ../src/widgets/gradient-toolbar.cpp:1068 +#: ../src/widgets/mesh-toolbar.cpp:238 +msgid "Create gradient in the stroke" +msgstr "Crea gradiente per i contorni" -#: ../src/widgets/star-toolbar.cpp:534 -msgid "How much rounded are the corners (0 for sharp)" -msgstr "Il grado di arrotondamento degli angoli (0 per gli spigoli)" +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:241 +#, fuzzy +msgid "on:" +msgstr "abilitato" -#: ../src/widgets/star-toolbar.cpp:546 -msgid "NOT randomized" -msgstr "non casuale" +#: ../src/widgets/gradient-toolbar.cpp:1096 +msgid "Select" +msgstr "Seleziona" -#: ../src/widgets/star-toolbar.cpp:546 -msgid "slightly irregular" -msgstr "leggermente irregolare" +#: ../src/widgets/gradient-toolbar.cpp:1096 +#, fuzzy +msgid "Choose a gradient" +msgstr "Usa una preselezione" -#: ../src/widgets/star-toolbar.cpp:546 -msgid "visibly randomized" -msgstr "visibilmente casuale" +#: ../src/widgets/gradient-toolbar.cpp:1097 +#, fuzzy +msgid "Select:" +msgstr "Seleziona" -#: ../src/widgets/star-toolbar.cpp:546 -msgid "strongly randomized" -msgstr "molto casuale" +#: ../src/widgets/gradient-toolbar.cpp:1115 +#, fuzzy +msgid "Reflected" +msgstr "riflessa" -#: ../src/widgets/star-toolbar.cpp:549 -msgid "Randomized" -msgstr "Casuale" +#: ../src/widgets/gradient-toolbar.cpp:1118 +#, fuzzy +msgid "Direct" +msgstr "diretta" -#: ../src/widgets/star-toolbar.cpp:549 -msgid "Randomized:" -msgstr "Casuale:" +#: ../src/widgets/gradient-toolbar.cpp:1120 +#, fuzzy +msgid "Repeat" +msgstr "Ripetizione:" -#: ../src/widgets/star-toolbar.cpp:549 -msgid "Scatter randomly the corners and angles" -msgstr "Separa casualmente gli angoli" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute +#: ../src/widgets/gradient-toolbar.cpp:1122 +msgid "" +"Whether to fill with flat color beyond the ends of the gradient vector " +"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " +"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " +"directions (spreadMethod=\"reflect\")" +msgstr "" +"Determina se riempire dopo la fine del gradiente con un colore uniforme " +"(spreadMethod=\"pad\"), ripetere il gradiente nella stessa direzione " +"(spreadMethod=\"repeat\") o ripetere il gradiente nella direzione opposta " +"(spreadMethod=\"reflect\")" -#: ../src/widgets/stroke-style.cpp:192 -msgid "Stroke width" -msgstr "Larghezza contorno" +#: ../src/widgets/gradient-toolbar.cpp:1127 +msgid "Repeat:" +msgstr "Ripetizione:" -#: ../src/widgets/stroke-style.cpp:194 +#: ../src/widgets/gradient-toolbar.cpp:1141 #, fuzzy -msgctxt "Stroke width" -msgid "_Width:" -msgstr "_Larghezza:" +msgid "No stops" +msgstr "Nessun contorno" -#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:239 -msgid "Miter join" -msgstr "Spigolo vivo" +#: ../src/widgets/gradient-toolbar.cpp:1143 +#, fuzzy +msgid "Stops" +msgstr "_Ferma" -#. TRANSLATORS: Round join: joining lines with a rounded corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:247 -msgid "Round join" -msgstr "Spigolo arrotondato" +#: ../src/widgets/gradient-toolbar.cpp:1143 +#, fuzzy +msgid "Select a stop for the current gradient" +msgstr "Modifica i passaggi del gradiente" -#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:255 -msgid "Bevel join" -msgstr "Spigolo tagliato" +#: ../src/widgets/gradient-toolbar.cpp:1144 +#, fuzzy +msgid "Stops:" +msgstr "_Ferma" -#: ../src/widgets/stroke-style.cpp:280 +#. Label +#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-vector.cpp:926 +#, fuzzy +msgctxt "Gradient" +msgid "Offset:" +msgstr "Posizione:" + +#: ../src/widgets/gradient-toolbar.cpp:1156 +#, fuzzy +msgid "Offset of selected stop" +msgstr "Estrude il tracciato selezionato" + +#: ../src/widgets/gradient-toolbar.cpp:1174 +#: ../src/widgets/gradient-toolbar.cpp:1175 +#, fuzzy +msgid "Insert new stop" +msgstr "Inserisci nodo" + +#: ../src/widgets/gradient-toolbar.cpp:1188 +#: ../src/widgets/gradient-toolbar.cpp:1189 +#: ../src/widgets/gradient-vector.cpp:908 +msgid "Delete stop" +msgstr "Cancella passaggio" + +#: ../src/widgets/gradient-toolbar.cpp:1202 +#, fuzzy +msgid "Reverse" +msgstr "Inve_rti" + +#: ../src/widgets/gradient-toolbar.cpp:1203 +#, fuzzy +msgid "Reverse the direction of the gradient" +msgstr "Modifica i passaggi del gradiente" + +#: ../src/widgets/gradient-toolbar.cpp:1217 #, fuzzy -msgid "Miter _limit:" -msgstr "SpigolositĂ :" +msgid "Link gradients" +msgstr "Gradiente lineare" -#. Cap type -#. TRANSLATORS: cap type specifies the shape for the ends of lines -#. spw_label(t, _("_Cap:"), 0, i); -#: ../src/widgets/stroke-style.cpp:296 -msgid "Cap:" -msgstr "Estremi:" +#: ../src/widgets/gradient-toolbar.cpp:1218 +msgid "Link gradients to change all related gradients" +msgstr "" -#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point -#. of the line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:307 -msgid "Butt cap" -msgstr "Estremo geometrico" +#: ../src/widgets/gradient-vector.cpp:332 +#: ../src/widgets/paint-selector.cpp:922 +#: ../src/widgets/stroke-marker-selector.cpp:154 +msgid "No document selected" +msgstr "Nessun documento selezionato" -#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the -#. line; the ends of the line are rounded -#: ../src/widgets/stroke-style.cpp:314 -msgid "Round cap" -msgstr "Estremo arrotondato" +#: ../src/widgets/gradient-vector.cpp:336 +msgid "No gradients in document" +msgstr "Nessun gradiente nel documento" -#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the -#. line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:321 -msgid "Square cap" -msgstr "Estremo squadrato" +#: ../src/widgets/gradient-vector.cpp:340 +msgid "No gradient selected" +msgstr "Nessun gradiente selezionato" -#. Dash -#: ../src/widgets/stroke-style.cpp:326 -msgid "Dashes:" -msgstr "Tratteggio:" +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:903 +msgid "Add stop" +msgstr "Aggiungi passaggio" -#. Drop down marker selectors -#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes -#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. -#: ../src/widgets/stroke-style.cpp:352 -#, fuzzy -msgid "Markers:" -msgstr "Delimitatore" +#: ../src/widgets/gradient-vector.cpp:906 +msgid "Add another control stop to gradient" +msgstr "Aggiunge un altro passaggio al gradiente" -#: ../src/widgets/stroke-style.cpp:358 -msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "" -"I delimitatori iniziali vengon disegnati sul primo nodo di un tracciato o " -"forma" +#: ../src/widgets/gradient-vector.cpp:911 +msgid "Delete current control stop from gradient" +msgstr "Elimina il passaggio corrente dal gradiente" -#: ../src/widgets/stroke-style.cpp:367 -msgid "" -"Mid Markers are drawn on every node of a path or shape except the first and " -"last nodes" -msgstr "" -"I delimitatori di mezzo vengon disegnati su tutti i nodi di un tracciato o " -"forma, tranne il primo e l'utimo" +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:979 +msgid "Stop Color" +msgstr "Colore del passaggio" -#: ../src/widgets/stroke-style.cpp:376 -msgid "End Markers are drawn on the last node of a path or shape" -msgstr "" -"I delimitatori finali vengon disegnati sull'ultimo nodo di un tracciato o " -"forma" +#: ../src/widgets/gradient-vector.cpp:1007 +msgid "Gradient editor" +msgstr "Editor di gradiente" -#: ../src/widgets/stroke-style.cpp:494 -msgid "Set markers" -msgstr "Imposta delimitatori" +#: ../src/widgets/gradient-vector.cpp:1307 +msgid "Change gradient stop color" +msgstr "Gradiente lineare di contorno" -#: ../src/widgets/stroke-style.cpp:1024 ../src/widgets/stroke-style.cpp:1109 -msgid "Set stroke style" -msgstr "Imposta stile contorno" +#: ../src/widgets/lpe-toolbar.cpp:233 +msgid "Closed" +msgstr "Chiuso" -#: ../src/widgets/stroke-style.cpp:1197 -#, fuzzy -msgid "Set marker color" -msgstr "Imposta colore contorno" +#: ../src/widgets/lpe-toolbar.cpp:235 +msgid "Open start" +msgstr "Apri inizio" -#: ../src/widgets/swatch-selector.cpp:137 -#, fuzzy -msgid "Change swatch color" -msgstr "Gradiente lineare di contorno" +#: ../src/widgets/lpe-toolbar.cpp:237 +msgid "Open end" +msgstr "Apri fine" -#: ../src/widgets/text-toolbar.cpp:169 -msgid "Text: Change font family" -msgstr "Testo: Cambia font" +#: ../src/widgets/lpe-toolbar.cpp:239 +msgid "Open both" +msgstr "Apri entrambi" -#: ../src/widgets/text-toolbar.cpp:233 -msgid "Text: Change font size" -msgstr "Testo: Cambia dimensione carattere" +#: ../src/widgets/lpe-toolbar.cpp:298 +msgid "All inactive" +msgstr "Tutti inattivi" -#: ../src/widgets/text-toolbar.cpp:271 -msgid "Text: Change font style" -msgstr "Testo: Cambia stile" +#: ../src/widgets/lpe-toolbar.cpp:299 +msgid "No geometric tool is active" +msgstr "Nessuno strumento geometrico attivo" -#: ../src/widgets/text-toolbar.cpp:349 -msgid "Text: Change superscript or subscript" -msgstr "" +#: ../src/widgets/lpe-toolbar.cpp:332 +msgid "Show limiting bounding box" +msgstr "Mostra riquadro limite" -#: ../src/widgets/text-toolbar.cpp:494 -msgid "Text: Change alignment" -msgstr "Testo: Cambia allineamento" +#: ../src/widgets/lpe-toolbar.cpp:333 +msgid "Show bounding box (used to cut infinite lines)" +msgstr "Mostra riquadro (usato per tagliare linee infinite)" -#: ../src/widgets/text-toolbar.cpp:537 -#, fuzzy -msgid "Text: Change line-height" -msgstr "Testo: Cambia allineamento" +#: ../src/widgets/lpe-toolbar.cpp:344 +msgid "Get limiting bounding box from selection" +msgstr "Preleva riquadro limite dalla selezione" -#: ../src/widgets/text-toolbar.cpp:586 -#, fuzzy -msgid "Text: Change word-spacing" -msgstr "Testo: Cambia orientamento" +#: ../src/widgets/lpe-toolbar.cpp:345 +msgid "" +"Set limiting bounding box (used to cut infinite lines) to the bounding box " +"of current selection" +msgstr "" +"Imposta il riquadro limitante (usato per tagliare linee infinite) al " +"riquadro della selezione attuale" -#: ../src/widgets/text-toolbar.cpp:627 -#, fuzzy -msgid "Text: Change letter-spacing" -msgstr "Espandi spaziatura lettere" +#: ../src/widgets/lpe-toolbar.cpp:357 +msgid "Choose a line segment type" +msgstr "Scegliere un tipo di segmento" -#: ../src/widgets/text-toolbar.cpp:667 -#, fuzzy -msgid "Text: Change dx (kern)" -msgstr "Testo: Cambia dimensione carattere" +#: ../src/widgets/lpe-toolbar.cpp:373 +msgid "Display measuring info" +msgstr "Visualizza informazioni di misura" -#: ../src/widgets/text-toolbar.cpp:701 -#, fuzzy -msgid "Text: Change dy" -msgstr "Testo: Cambia stile" +#: ../src/widgets/lpe-toolbar.cpp:374 +msgid "Display measuring info for selected items" +msgstr "Visualizza informazioni di misura per gli elementi selezionati" -#: ../src/widgets/text-toolbar.cpp:736 -#, fuzzy -msgid "Text: Change rotate" -msgstr "Testo: Cambia stile" +#. Add the units menu. +#: ../src/widgets/lpe-toolbar.cpp:384 ../src/widgets/node-toolbar.cpp:613 +#: ../src/widgets/paintbucket-toolbar.cpp:166 +#: ../src/widgets/rect-toolbar.cpp:375 ../src/widgets/select-toolbar.cpp:536 +msgid "Units" +msgstr "UnitĂ " -#: ../src/widgets/text-toolbar.cpp:784 -msgid "Text: Change orientation" -msgstr "Testo: Cambia orientamento" +#: ../src/widgets/lpe-toolbar.cpp:394 +msgid "Open LPE dialog" +msgstr "Apri finestra LPE" -#: ../src/widgets/text-toolbar.cpp:1221 -#, fuzzy -msgid "Font Family" -msgstr "Carattere" +#: ../src/widgets/lpe-toolbar.cpp:395 +msgid "Open LPE dialog (to adapt parameters numerically)" +msgstr "Apri finestra LPE (per la modifica dei parametri numerici)" -#: ../src/widgets/text-toolbar.cpp:1222 -#, fuzzy -msgid "Select Font Family (Alt-X to access)" -msgstr "Selezionare famiglia del font (Alt+X per accedervi)" +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1273 +msgid "Font Size" +msgstr "Dimensione carattere" -#. Focus widget -#. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1232 -msgid "Select all text with this font-family" -msgstr "" +#: ../src/widgets/measure-toolbar.cpp:86 +msgid "Font Size:" +msgstr "Dimensione carattere:" -#: ../src/widgets/text-toolbar.cpp:1236 -msgid "Font not found on system" -msgstr "" +#: ../src/widgets/measure-toolbar.cpp:87 +msgid "The font size to be used in the measurement labels" +msgstr "La dimensione carattere da usare per lo strumento di misurazione" -#: ../src/widgets/text-toolbar.cpp:1295 +#: ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +msgid "The units to be used for the measurements" +msgstr "L'unitĂ  da usare per lo strumento di misurazione" + +#: ../src/widgets/mesh-toolbar.cpp:204 #, fuzzy -msgid "Font Style" -msgstr "Dimensione carattere" +msgid "normal" +msgstr "Normale" -#: ../src/widgets/text-toolbar.cpp:1296 +#: ../src/widgets/mesh-toolbar.cpp:204 #, fuzzy -msgid "Font style" -msgstr "Dimensione carattere" +msgid "Create mesh gradient" +msgstr "Crea gradiente lineare" -#. Name -#: ../src/widgets/text-toolbar.cpp:1313 -msgid "Toggle Superscript" +#: ../src/widgets/mesh-toolbar.cpp:208 +msgid "conical" msgstr "" -#. Label -#: ../src/widgets/text-toolbar.cpp:1314 -msgid "Toggle superscript" -msgstr "" +#: ../src/widgets/mesh-toolbar.cpp:208 +#, fuzzy +msgid "Create conical gradient" +msgstr "Crea gradiente lineare" -#. Name -#: ../src/widgets/text-toolbar.cpp:1326 -msgid "Toggle Subscript" -msgstr "" +#: ../src/widgets/mesh-toolbar.cpp:263 +msgid "Rows" +msgstr "Righe" -#. Label -#: ../src/widgets/text-toolbar.cpp:1327 +#: ../src/widgets/mesh-toolbar.cpp:263 +#: ../share/extensions/guides_creator.inx.h:5 +#: ../share/extensions/layout_nup.inx.h:12 +msgid "Rows:" +msgstr "Righe:" + +#: ../src/widgets/mesh-toolbar.cpp:263 #, fuzzy -msgid "Toggle subscript" -msgstr "Postscript" +msgid "Number of rows in new mesh" +msgstr "Numero di righe" -#: ../src/widgets/text-toolbar.cpp:1368 -msgid "Justify" -msgstr "Giustifica" +#: ../src/widgets/mesh-toolbar.cpp:279 +msgid "Columns" +msgstr "Colonne" -#. Name -#: ../src/widgets/text-toolbar.cpp:1375 -#, fuzzy -msgid "Alignment" -msgstr "Allinea a sinistra" +#: ../src/widgets/mesh-toolbar.cpp:279 +#: ../share/extensions/guides_creator.inx.h:4 +msgid "Columns:" +msgstr "Colonne:" -#. Label -#: ../src/widgets/text-toolbar.cpp:1376 +#: ../src/widgets/mesh-toolbar.cpp:279 #, fuzzy -msgid "Text alignment" -msgstr "Testo: Cambia allineamento" +msgid "Number of columns in new mesh" +msgstr "Numero di colonne" -#: ../src/widgets/text-toolbar.cpp:1403 +#: ../src/widgets/mesh-toolbar.cpp:293 #, fuzzy -msgid "Horizontal" -msgstr "Ori_zzontale" +msgid "Edit Fill" +msgstr "Modifica riempimento..." -#: ../src/widgets/text-toolbar.cpp:1410 +#: ../src/widgets/mesh-toolbar.cpp:294 #, fuzzy -msgid "Vertical" -msgstr "_Verticale" +msgid "Edit fill mesh" +msgstr "Modifica riempimento..." -#. Label -#: ../src/widgets/text-toolbar.cpp:1417 +#: ../src/widgets/mesh-toolbar.cpp:305 #, fuzzy -msgid "Text orientation" -msgstr "Orientamento" +msgid "Edit Stroke" +msgstr "Modifica contorno..." -#. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1440 +#: ../src/widgets/mesh-toolbar.cpp:306 #, fuzzy -msgid "Smaller spacing" -msgstr "Imposta Spaziatura:" +msgid "Edit stroke mesh" +msgstr "Modifica contorno..." -#: ../src/widgets/text-toolbar.cpp:1440 ../src/widgets/text-toolbar.cpp:1471 -#: ../src/widgets/text-toolbar.cpp:1502 -#, fuzzy -msgctxt "Text tool" -msgid "Normal" -msgstr "Normale" +#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:521 +msgid "Show Handles" +msgstr "Mostra maniglie" -#: ../src/widgets/text-toolbar.cpp:1440 +#: ../src/widgets/mesh-toolbar.cpp:318 #, fuzzy -msgid "Larger spacing" -msgstr "Spaziatura linee" +msgid "Show side and tensor handles" +msgstr "Salvataggio trasformazioni:" -#. name -#: ../src/widgets/text-toolbar.cpp:1445 -#, fuzzy -msgid "Line Height" -msgstr "Altezza" +#: ../src/widgets/node-toolbar.cpp:341 +msgid "Insert node" +msgstr "Inserisci nodo" -#. label -#: ../src/widgets/text-toolbar.cpp:1446 -#, fuzzy -msgid "Line:" -msgstr "Linea" +#: ../src/widgets/node-toolbar.cpp:342 +msgid "Insert new nodes into selected segments" +msgstr "Inserisce nuovi nodi nel segmento selezionato" -#. short label -#: ../src/widgets/text-toolbar.cpp:1447 -#, fuzzy -msgid "Spacing between lines (times font size)" -msgstr "Spaziatura tra le linee" +#: ../src/widgets/node-toolbar.cpp:345 +msgid "Insert" +msgstr "Inserisci" -#. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 -#, fuzzy -msgid "Negative spacing" -msgstr "Imposta Spaziatura:" +#: ../src/widgets/node-toolbar.cpp:356 +msgid "Insert node at min X" +msgstr "Inserisci nodo alla X minima" -#: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 +#: ../src/widgets/node-toolbar.cpp:357 #, fuzzy -msgid "Positive spacing" -msgstr "Spaziatura linee" +msgid "Insert new nodes at min X into selected segments" +msgstr "Inserisce nuovi nodi nel segmento selezionato" -#. name -#: ../src/widgets/text-toolbar.cpp:1476 +#: ../src/widgets/node-toolbar.cpp:360 #, fuzzy -msgid "Word spacing" -msgstr "Imposta Spaziatura:" +msgid "Insert min X" +msgstr "Inserisci nodo" -#. label -#: ../src/widgets/text-toolbar.cpp:1477 -#, fuzzy -msgid "Word:" -msgstr "ModalitĂ :" +#: ../src/widgets/node-toolbar.cpp:366 +msgid "Insert node at max X" +msgstr "Inserisci nodo alla X massima" -#. short label -#: ../src/widgets/text-toolbar.cpp:1478 +#: ../src/widgets/node-toolbar.cpp:367 #, fuzzy -msgid "Spacing between words (px)" -msgstr "Spaziatura tra le lettere" +msgid "Insert new nodes at max X into selected segments" +msgstr "Inserisce nuovi nodi nel segmento selezionato" -#. name -#: ../src/widgets/text-toolbar.cpp:1507 +#: ../src/widgets/node-toolbar.cpp:370 #, fuzzy -msgid "Letter spacing" -msgstr "Imposta Spaziatura:" +msgid "Insert max X" +msgstr "Inserisci" -#. label -#: ../src/widgets/text-toolbar.cpp:1508 -#, fuzzy -msgid "Letter:" -msgstr "Sinistra:" +#: ../src/widgets/node-toolbar.cpp:376 +msgid "Insert node at min Y" +msgstr "Inserisci nodo alla Y minima" -#. short label -#: ../src/widgets/text-toolbar.cpp:1509 +#: ../src/widgets/node-toolbar.cpp:377 #, fuzzy -msgid "Spacing between letters (px)" -msgstr "Spaziatura tra le lettere" +msgid "Insert new nodes at min Y into selected segments" +msgstr "Inserisce nuovi nodi nel segmento selezionato" -#. name -#: ../src/widgets/text-toolbar.cpp:1538 +#: ../src/widgets/node-toolbar.cpp:380 #, fuzzy -msgid "Kerning" -msgstr "_Crenatura" +msgid "Insert min Y" +msgstr "Inserisci nodo" -#. label -#: ../src/widgets/text-toolbar.cpp:1539 -#, fuzzy -msgid "Kern:" -msgstr "Nucleo:" +#: ../src/widgets/node-toolbar.cpp:386 +msgid "Insert node at max Y" +msgstr "Inserisci nodo alla Y massima" -#. short label -#: ../src/widgets/text-toolbar.cpp:1540 +#: ../src/widgets/node-toolbar.cpp:387 #, fuzzy -msgid "Horizontal kerning (px)" -msgstr "Trasformazione orizzontale" +msgid "Insert new nodes at max Y into selected segments" +msgstr "Inserisce nuovi nodi nel segmento selezionato" -#. name -#: ../src/widgets/text-toolbar.cpp:1569 +#: ../src/widgets/node-toolbar.cpp:390 #, fuzzy -msgid "Vertical Shift" -msgstr "Punto verticale:" +msgid "Insert max Y" +msgstr "Inserisci" -#. label -#: ../src/widgets/text-toolbar.cpp:1570 -#, fuzzy -msgid "Vert:" -msgstr "Inverti:" +#: ../src/widgets/node-toolbar.cpp:398 +msgid "Delete selected nodes" +msgstr "Elimina i nodi selezionati" -#. short label -#: ../src/widgets/text-toolbar.cpp:1571 -#, fuzzy -msgid "Vertical shift (px)" -msgstr "Proiezione verticale, px" +#: ../src/widgets/node-toolbar.cpp:409 +msgid "Join selected nodes" +msgstr "Unisce i nodi finali selezionati" -#. name -#: ../src/widgets/text-toolbar.cpp:1600 -#, fuzzy -msgid "Letter rotation" -msgstr "Imposta Spaziatura:" +#: ../src/widgets/node-toolbar.cpp:412 +msgid "Join" +msgstr "Unisci" -#. label -#: ../src/widgets/text-toolbar.cpp:1601 -#, fuzzy -msgid "Rot:" -msgstr "Ruolo:" +#: ../src/widgets/node-toolbar.cpp:420 +msgid "Break path at selected nodes" +msgstr "Separa il percorso nel nodo selezionato" -#. short label -#: ../src/widgets/text-toolbar.cpp:1602 -#, fuzzy -msgid "Character rotation (degrees)" -msgstr "Rotazione, in gradi" +#: ../src/widgets/node-toolbar.cpp:430 +msgid "Join with segment" +msgstr "Unisci tramite segmento" -#: ../src/widgets/toolbox.cpp:182 -msgid "Color/opacity used for color tweaking" -msgstr "Colore/opacitĂ  usato per il ritocco del colore" +#: ../src/widgets/node-toolbar.cpp:431 +msgid "Join selected endnodes with a new segment" +msgstr "Unisce i nodi finali selezionati con un nuovo segmento" -#: ../src/widgets/toolbox.cpp:190 -msgid "Style of new stars" -msgstr "Stile dei nuovi poligoni" +#: ../src/widgets/node-toolbar.cpp:440 +msgid "Delete segment" +msgstr "Elimina segmento" -#: ../src/widgets/toolbox.cpp:192 -msgid "Style of new rectangles" -msgstr "Stile dei nuovi rettangoli" +#: ../src/widgets/node-toolbar.cpp:441 +msgid "Delete segment between two non-endpoint nodes" +msgstr "Cancella il segmento tra due nodi non terminali" -#: ../src/widgets/toolbox.cpp:194 -msgid "Style of new 3D boxes" -msgstr "Stile dei nuovi solidi 3D" +#: ../src/widgets/node-toolbar.cpp:450 +msgid "Node Cusp" +msgstr "Nodo angolare" -#: ../src/widgets/toolbox.cpp:196 -msgid "Style of new ellipses" -msgstr "Stile delle nuove ellissi" +#: ../src/widgets/node-toolbar.cpp:451 +msgid "Make selected nodes corner" +msgstr "Rende angolari i nodi selezionati" + +#: ../src/widgets/node-toolbar.cpp:460 +msgid "Node Smooth" +msgstr "Nodo curvilineo" + +#: ../src/widgets/node-toolbar.cpp:461 +msgid "Make selected nodes smooth" +msgstr "Rende curvilinei i nodi selezionati" -#: ../src/widgets/toolbox.cpp:198 -msgid "Style of new spirals" -msgstr "Stile delle nuove spirali" +#: ../src/widgets/node-toolbar.cpp:470 +msgid "Node Symmetric" +msgstr "Nodo simmetrico" -#: ../src/widgets/toolbox.cpp:200 -msgid "Style of new paths created by Pencil" -msgstr "Stile dei nuovi tracciati creati con il «Pastello»" +#: ../src/widgets/node-toolbar.cpp:471 +msgid "Make selected nodes symmetric" +msgstr "Rende simmetrici i nodi selezionati" -#: ../src/widgets/toolbox.cpp:202 -msgid "Style of new paths created by Pen" -msgstr "Stile dei nuovi tracciati creati con la «Penna»" +#: ../src/widgets/node-toolbar.cpp:480 +msgid "Node Auto" +msgstr "Nodo automatico" -#: ../src/widgets/toolbox.cpp:204 -msgid "Style of new calligraphic strokes" -msgstr "Stile delle nuove linee calligrafiche" +#: ../src/widgets/node-toolbar.cpp:481 +msgid "Make selected nodes auto-smooth" +msgstr "Rende automaticamente curvilinei i nodi selezionati" -#: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 -msgid "TBD" -msgstr "Da definire" +#: ../src/widgets/node-toolbar.cpp:490 +msgid "Node Line" +msgstr "Nodo linea" -#: ../src/widgets/toolbox.cpp:220 -msgid "Style of Paint Bucket fill objects" -msgstr "Stile dei nuovi oggetti creati con il «Secchiello»" +#: ../src/widgets/node-toolbar.cpp:491 +msgid "Make selected segments lines" +msgstr "Trasforma in linee i segmenti selezionati" -#: ../src/widgets/toolbox.cpp:1682 -msgid "Bounding box" -msgstr "Riquadri" +#: ../src/widgets/node-toolbar.cpp:500 +msgid "Node Curve" +msgstr "Nodo curva" -#: ../src/widgets/toolbox.cpp:1682 -#, fuzzy -msgid "Snap bounding boxes" -msgstr "Aggancia angoli riquadri" +#: ../src/widgets/node-toolbar.cpp:501 +msgid "Make selected segments curves" +msgstr "Trasforma in curve i segmenti selezionati" -#: ../src/widgets/toolbox.cpp:1691 -msgid "Bounding box edges" -msgstr "Margini riquadri" +#: ../src/widgets/node-toolbar.cpp:510 +#, fuzzy +msgid "Show Transform Handles" +msgstr "Mostra maniglie" -#: ../src/widgets/toolbox.cpp:1691 -msgid "Snap to edges of a bounding box" -msgstr "Aggancia ai bordi dei riquadri" +#: ../src/widgets/node-toolbar.cpp:511 +#, fuzzy +msgid "Show transformation handles for selected nodes" +msgstr "Mostra le maniglie Bezier dei nodi selezionati" -#: ../src/widgets/toolbox.cpp:1700 -msgid "Bounding box corners" -msgstr "Angoli riquadri" +#: ../src/widgets/node-toolbar.cpp:522 +msgid "Show Bezier handles of selected nodes" +msgstr "Mostra le maniglie Bezier dei nodi selezionati" -#: ../src/widgets/toolbox.cpp:1700 -msgid "Snap bounding box corners" -msgstr "Aggancia angoli riquadri" +#: ../src/widgets/node-toolbar.cpp:532 +msgid "Show Outline" +msgstr "Mostra scheletro" -#: ../src/widgets/toolbox.cpp:1709 -msgid "BBox Edge Midpoints" -msgstr "MetĂ  margine riquadro" +#: ../src/widgets/node-toolbar.cpp:533 +msgid "Show path outline (without path effects)" +msgstr "Mostra lo scheletro di un tracciato (senza effetti su tracciato)" -#: ../src/widgets/toolbox.cpp:1709 +#: ../src/widgets/node-toolbar.cpp:555 #, fuzzy -msgid "Snap midpoints of bounding box edges" -msgstr "Aggancia a e con le metĂ  dei bordi dei riquadri" +msgid "Edit clipping paths" +msgstr "Modifica fissaggio" -#: ../src/widgets/toolbox.cpp:1719 -msgid "BBox Centers" -msgstr "Centri riquadri" +#: ../src/widgets/node-toolbar.cpp:556 +#, fuzzy +msgid "Show clipping path(s) of selected object(s)" +msgstr "Modifica il fissaggio dall'oggetto" -#: ../src/widgets/toolbox.cpp:1719 +#: ../src/widgets/node-toolbar.cpp:566 #, fuzzy -msgid "Snapping centers of bounding boxes" -msgstr "Aggancia a e con i centri dei riquadri" +msgid "Edit masks" +msgstr "Modifica maschera" -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/widgets/node-toolbar.cpp:567 #, fuzzy -msgid "Snap nodes, paths, and handles" -msgstr "Aggancia nodi o maniglie" +msgid "Show mask(s) of selected object(s)" +msgstr "Sfalsa i colori degli oggetti selezionati" -#: ../src/widgets/toolbox.cpp:1736 -msgid "Snap to paths" -msgstr "Aggancia ai tracciati" +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate:" +msgstr "Coordinata X:" -#: ../src/widgets/toolbox.cpp:1745 -msgid "Path intersections" -msgstr "Intersezione tracciati" +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate of selected node(s)" +msgstr "Coordinata X dei nodi selezionati" -#: ../src/widgets/toolbox.cpp:1745 -msgid "Snap to path intersections" -msgstr "Aggancia alle intersezioni dei tracciati" +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate:" +msgstr "Coordinata Y:" -#: ../src/widgets/toolbox.cpp:1754 -msgid "To nodes" -msgstr "Ai nodi" +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate of selected node(s)" +msgstr "Coordinata Y dei nodi selezionati" -#: ../src/widgets/toolbox.cpp:1754 -msgid "Snap cusp nodes, incl. rectangle corners" -msgstr "" +#: ../src/widgets/paint-selector.cpp:234 +msgid "No paint" +msgstr "Nessun colore" -#: ../src/widgets/toolbox.cpp:1763 -msgid "Smooth nodes" -msgstr "Nodi curvi" +#: ../src/widgets/paint-selector.cpp:236 +msgid "Flat color" +msgstr "Colore uniforme" -#: ../src/widgets/toolbox.cpp:1763 -msgid "Snap smooth nodes, incl. quadrant points of ellipses" -msgstr "" +#: ../src/widgets/paint-selector.cpp:238 +msgid "Linear gradient" +msgstr "Gradiente lineare" -#: ../src/widgets/toolbox.cpp:1772 -msgid "Line Midpoints" -msgstr "MetĂ  linea" +#: ../src/widgets/paint-selector.cpp:240 +msgid "Radial gradient" +msgstr "Gradiente radiale" -#: ../src/widgets/toolbox.cpp:1772 -#, fuzzy -msgid "Snap midpoints of line segments" -msgstr "Aggancia a e con le metĂ  dei segmenti" +#: ../src/widgets/paint-selector.cpp:246 +msgid "Unset paint (make it undefined so it can be inherited)" +msgstr "Disattiva riempimento (affinchĂ© possa essere ereditato)" -#: ../src/widgets/toolbox.cpp:1781 -#, fuzzy -msgid "Others" -msgstr "Altro" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty +#: ../src/widgets/paint-selector.cpp:263 +msgid "" +"Any path self-intersections or subpaths create holes in the fill (fill-rule: " +"evenodd)" +msgstr "" +"Qualsiasi autointersezione del tracciato o sottotracciati crea vuoti nel " +"riempimento (fill-rule:evenodd)" -#: ../src/widgets/toolbox.cpp:1781 -msgid "Snap other points (centers, guide origins, gradient handles, etc.)" +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty +#: ../src/widgets/paint-selector.cpp:274 +msgid "" +"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" +"Il riempimento è intero a meno che un sottotracciato sia in direzione " +"opposta (fill-rule: nonzero)" -#: ../src/widgets/toolbox.cpp:1789 -msgid "Object Centers" -msgstr "Centro oggetti" +#: ../src/widgets/paint-selector.cpp:590 +msgid "No objects" +msgstr "Nessun oggetto" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/paint-selector.cpp:601 #, fuzzy -msgid "Snap centers of objects" -msgstr "Aggancia a e con i centri degli oggetti" +msgid "Multiple styles" +msgstr "Stili multipli" -#: ../src/widgets/toolbox.cpp:1798 -msgid "Rotation Centers" -msgstr "Centro di rotazione" +#: ../src/widgets/paint-selector.cpp:612 +msgid "Paint is undefined" +msgstr "Il riempimento non è definito" -#: ../src/widgets/toolbox.cpp:1798 -#, fuzzy -msgid "Snap an item's rotation center" -msgstr "Aggancia a e con il centro di rotazione dell'elemento" +#: ../src/widgets/paint-selector.cpp:623 +msgid "No paint" +msgstr "Nessun colore" -#: ../src/widgets/toolbox.cpp:1807 -msgid "Text baseline" -msgstr "Linea base del testo" +#: ../src/widgets/paint-selector.cpp:694 +msgid "Flat color" +msgstr "Colore uniforme" -#: ../src/widgets/toolbox.cpp:1807 -#, fuzzy -msgid "Snap text anchors and baselines" -msgstr "Allinea linee del testo" +#. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); +#: ../src/widgets/paint-selector.cpp:758 +msgid "Linear gradient" +msgstr "Gradiente lineare" -#: ../src/widgets/toolbox.cpp:1817 -msgid "Page border" -msgstr "Bordo pagina" +#: ../src/widgets/paint-selector.cpp:761 +msgid "Radial gradient" +msgstr "Gradiente radiale" -#: ../src/widgets/toolbox.cpp:1817 -msgid "Snap to the page border" -msgstr "Aggancia ai bordi della pagina" +#: ../src/widgets/paint-selector.cpp:1055 +msgid "" +"Use the Node tool to adjust position, scale, and rotation of the " +"pattern on canvas. Use Object > Pattern > Objects to Pattern to " +"create a new pattern from selection." +msgstr "" +"Usare lo strumento Nodo per modificare la posizione, dimensione e " +"rotazionedel motivo sul disegno. Usare Oggetto > Motivo > Da " +"oggetto a motivo per creare un nuovo motivo dalla selezione." -#: ../src/widgets/toolbox.cpp:1826 -msgid "Snap to grids" -msgstr "Aggancia alle griglie" +#: ../src/widgets/paint-selector.cpp:1068 +msgid "Pattern fill" +msgstr "Motivo" -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/widgets/paint-selector.cpp:1162 #, fuzzy -msgid "Snap guides" -msgstr "Aggancia alle guide" +msgid "Swatch fill" +msgstr "Imposta riempimento" -#. Width -#: ../src/widgets/tweak-toolbar.cpp:125 -msgid "(pinch tweak)" -msgstr "(strozzato)" +#: ../src/widgets/paintbucket-toolbar.cpp:133 +msgid "Fill by" +msgstr "Riempi con" -#: ../src/widgets/tweak-toolbar.cpp:125 -msgid "(broad tweak)" -msgstr "(ritocco ampio)" +#: ../src/widgets/paintbucket-toolbar.cpp:134 +msgid "Fill by:" +msgstr "Riempi con:" -#: ../src/widgets/tweak-toolbar.cpp:128 -msgid "The width of the tweak area (relative to the visible canvas area)" +#: ../src/widgets/paintbucket-toolbar.cpp:146 +msgid "Fill Threshold" +msgstr "Soglia riempimento" + +#: ../src/widgets/paintbucket-toolbar.cpp:147 +msgid "" +"The maximum allowed difference between the clicked pixel and the neighboring " +"pixels to be counted in the fill" msgstr "" -"La larghezza dell'area di ritocco (relativa all'area della tela visibile)" +"La differenza massima consentita tra il pixel cliccato e i pixel vicini da " +"contare per il riempimento" -#. Force -#: ../src/widgets/tweak-toolbar.cpp:142 -msgid "(minimum force)" -msgstr "(forza minima)" +#: ../src/widgets/paintbucket-toolbar.cpp:174 +msgid "Grow/shrink by" +msgstr "Intrudi/Estrudi di" -#: ../src/widgets/tweak-toolbar.cpp:142 -msgid "(maximum force)" -msgstr "(forza massima)" +#: ../src/widgets/paintbucket-toolbar.cpp:174 +msgid "Grow/shrink by:" +msgstr "Intrudi/Estrudi di:" -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "Force" -msgstr "Forza" +#: ../src/widgets/paintbucket-toolbar.cpp:175 +msgid "" +"The amount to grow (positive) or shrink (negative) the created fill path" +msgstr "" +"Di quanto estrudere (valore positivo) o intrudere (valore negativo) il " +"riempimento creato" -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "Force:" -msgstr "Forza:" +#: ../src/widgets/paintbucket-toolbar.cpp:200 +msgid "Close gaps" +msgstr "Area cuscinetto" -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "The force of the tweak action" -msgstr "La forza del ritocco" +#: ../src/widgets/paintbucket-toolbar.cpp:201 +msgid "Close gaps:" +msgstr "Area cuscinetto:" -#: ../src/widgets/tweak-toolbar.cpp:163 -msgid "Move mode" -msgstr "ModalitĂ  spostamento" +#: ../src/widgets/paintbucket-toolbar.cpp:212 +#: ../src/widgets/pencil-toolbar.cpp:293 ../src/widgets/spiral-toolbar.cpp:289 +#: ../src/widgets/star-toolbar.cpp:564 +msgid "Defaults" +msgstr "Predefiniti" -#: ../src/widgets/tweak-toolbar.cpp:164 -msgid "Move objects in any direction" -msgstr "Sposta gli oggetti in qualsiasi direzione" +#: ../src/widgets/paintbucket-toolbar.cpp:213 +msgid "" +"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " +"to change defaults)" +msgstr "" +"Reimposta i parametri del secchiello ai valori predefiniti (usare Preferenze " +"di Inkscape > Strumenti per cambiare i valori predefiniti)" -#: ../src/widgets/tweak-toolbar.cpp:170 -msgid "Move in/out mode" -msgstr "ModalitĂ  spostamento dentro/fuori" +#: ../src/widgets/pencil-toolbar.cpp:96 +msgid "Bezier" +msgstr "Bezier" -#: ../src/widgets/tweak-toolbar.cpp:171 -msgid "Move objects towards cursor; with Shift from cursor" -msgstr "Muove oggetti verso il cursore; con Maiusc li allontana" +#: ../src/widgets/pencil-toolbar.cpp:97 +msgid "Create regular Bezier path" +msgstr "Crea tracciati Bezier normali" -#: ../src/widgets/tweak-toolbar.cpp:177 -msgid "Move jitter mode" -msgstr "ModalitĂ  spostamento sfalsato" +#: ../src/widgets/pencil-toolbar.cpp:104 +msgid "Create Spiro path" +msgstr "Crea tracciato Spiro" -#: ../src/widgets/tweak-toolbar.cpp:178 -msgid "Move objects in random directions" -msgstr "Muove oggetti in direzioni casuali" +#: ../src/widgets/pencil-toolbar.cpp:111 +msgid "Zigzag" +msgstr "Zigzag" -#: ../src/widgets/tweak-toolbar.cpp:184 -msgid "Scale mode" -msgstr "ModalitĂ  ridimensionamento" +#: ../src/widgets/pencil-toolbar.cpp:112 +msgid "Create a sequence of straight line segments" +msgstr "Crea una sequenza di segmenti diritti" -#: ../src/widgets/tweak-toolbar.cpp:185 -msgid "Shrink objects, with Shift enlarge" -msgstr "Riduce oggetti, con Maiusc allarga" +#: ../src/widgets/pencil-toolbar.cpp:118 +msgid "Paraxial" +msgstr "Parassiale" -#: ../src/widgets/tweak-toolbar.cpp:191 -msgid "Rotate mode" -msgstr "ModalitĂ  rotazione" +#: ../src/widgets/pencil-toolbar.cpp:119 +msgid "Create a sequence of paraxial line segments" +msgstr "Crea una sequenza di segmenti parassiali" -#: ../src/widgets/tweak-toolbar.cpp:192 -msgid "Rotate objects, with Shift counterclockwise" -msgstr "Ruota oggetti, con Maiusc in senso antiorario" +#: ../src/widgets/pencil-toolbar.cpp:127 +msgid "Mode of new lines drawn by this tool" +msgstr "ModalitĂ  delle nuove linee disegnate da questo strumento" -#: ../src/widgets/tweak-toolbar.cpp:198 -msgid "Duplicate/delete mode" -msgstr "ModalitĂ  duplicazione/eliminazione" +#: ../src/widgets/pencil-toolbar.cpp:156 +msgid "Triangle in" +msgstr "Triangolo crescente" -#: ../src/widgets/tweak-toolbar.cpp:199 -msgid "Duplicate objects, with Shift delete" -msgstr "Duplica oggetti, con Maiusc per eliminare" +#: ../src/widgets/pencil-toolbar.cpp:157 +msgid "Triangle out" +msgstr "Triangolo decrescente" -#: ../src/widgets/tweak-toolbar.cpp:205 -msgid "Push mode" -msgstr "ModalitĂ  distorsione" +#: ../src/widgets/pencil-toolbar.cpp:159 +msgid "From clipboard" +msgstr "Dagli appunti" -#: ../src/widgets/tweak-toolbar.cpp:206 -msgid "Push parts of paths in any direction" -msgstr "Sposta parti di tracciati in ogni direzione" +#: ../src/widgets/pencil-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:185 +msgid "Shape:" +msgstr "Forma:" -#: ../src/widgets/tweak-toolbar.cpp:212 -msgid "Shrink/grow mode" -msgstr "ModalitĂ  riduzione/accrescimento" +#: ../src/widgets/pencil-toolbar.cpp:184 +msgid "Shape of new paths drawn by this tool" +msgstr "Forma dei nuovi tracciati disegnati con questo strumento" -#: ../src/widgets/tweak-toolbar.cpp:213 -msgid "Shrink (inset) parts of paths; with Shift grow (outset)" -msgstr "Riduce (intrude) parti di tracciati; con Maiusc accresce (estrude)" +#: ../src/widgets/pencil-toolbar.cpp:269 +msgid "(many nodes, rough)" +msgstr "(molti nodi, grezzo)" -#: ../src/widgets/tweak-toolbar.cpp:219 -msgid "Attract/repel mode" -msgstr "ModalitĂ  attrazione/repulsione" +#: ../src/widgets/pencil-toolbar.cpp:269 +msgid "(few nodes, smooth)" +msgstr "(pochi nodi, smussato)" -#: ../src/widgets/tweak-toolbar.cpp:220 -msgid "Attract parts of paths towards cursor; with Shift from cursor" +#: ../src/widgets/pencil-toolbar.cpp:272 +msgid "Smoothing:" +msgstr "Smussamento:" + +#: ../src/widgets/pencil-toolbar.cpp:272 +msgid "Smoothing: " +msgstr "Smussamento:" + +#: ../src/widgets/pencil-toolbar.cpp:273 +msgid "How much smoothing (simplifying) is applied to the line" +msgstr "Il grado di smussamento (semplificazione) applicato alla linea" + +#: ../src/widgets/pencil-toolbar.cpp:294 +msgid "" +"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" msgstr "" -"Attrae parte di tracciati verso il cursore; con Maiusc lontano dal cursore" +"Reimposta i parametri del pastello ai valori predefiniti (usare Preferenze " +"di Inkscape > Strumenti per cambiare i valori predefiniti)" -#: ../src/widgets/tweak-toolbar.cpp:226 -msgid "Roughen mode" -msgstr "ModalitĂ  increspatura" +#: ../src/widgets/rect-toolbar.cpp:122 +msgid "Change rectangle" +msgstr "Modifica rettangolo" -#: ../src/widgets/tweak-toolbar.cpp:227 -msgid "Roughen parts of paths" -msgstr "Increspa parti di tracciati" +#: ../src/widgets/rect-toolbar.cpp:314 +msgid "W:" +msgstr "L:" -#: ../src/widgets/tweak-toolbar.cpp:233 -msgid "Color paint mode" -msgstr "ModalitĂ  tinta" +#: ../src/widgets/rect-toolbar.cpp:314 +msgid "Width of rectangle" +msgstr "Larghezza del rettangolo" -#: ../src/widgets/tweak-toolbar.cpp:234 -msgid "Paint the tool's color upon selected objects" -msgstr "Tinteggia gli oggetti selezionati con il colore dello strumento" +#: ../src/widgets/rect-toolbar.cpp:331 +msgid "H:" +msgstr "H:" -#: ../src/widgets/tweak-toolbar.cpp:240 -msgid "Color jitter mode" -msgstr "ModalitĂ  sfalsamento colore" +#: ../src/widgets/rect-toolbar.cpp:331 +msgid "Height of rectangle" +msgstr "Altezza del rettangolo" -#: ../src/widgets/tweak-toolbar.cpp:241 -msgid "Jitter the colors of selected objects" -msgstr "Sfalsa i colori degli oggetti selezionati" +#: ../src/widgets/rect-toolbar.cpp:345 ../src/widgets/rect-toolbar.cpp:360 +msgid "not rounded" +msgstr "non arrotondato" -#: ../src/widgets/tweak-toolbar.cpp:247 -msgid "Blur mode" -msgstr "ModalitĂ  sfocatura" +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Horizontal radius" +msgstr "Raggio orizzontale" -#: ../src/widgets/tweak-toolbar.cpp:248 -msgid "Blur selected objects more; with Shift, blur less" -msgstr "Sfuoca gli oggetti selezionati; con Maiusc, riduce la sfocatura" +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Rx:" +msgstr "Rx:" -#: ../src/widgets/tweak-toolbar.cpp:275 -msgid "Channels:" -msgstr "Canali:" +#: ../src/widgets/rect-toolbar.cpp:348 +msgid "Horizontal radius of rounded corners" +msgstr "Raggio orizzontale di un angolo arrotondato" -#: ../src/widgets/tweak-toolbar.cpp:287 -msgid "In color mode, act on objects' hue" -msgstr "In modalitĂ  colore, agisce sulla tinta dell'oggetto" +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Vertical radius" +msgstr "Raggio verticale" + +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Ry:" +msgstr "Ry:" + +#: ../src/widgets/rect-toolbar.cpp:363 +msgid "Vertical radius of rounded corners" +msgstr "Raggio verticale di un angolo arrotondato" + +#: ../src/widgets/rect-toolbar.cpp:382 +msgid "Not rounded" +msgstr "Non arrotondato" + +#: ../src/widgets/rect-toolbar.cpp:383 +msgid "Make corners sharp" +msgstr "Rende gli angoli spigolosi" + +#: ../src/widgets/ruler.cpp:192 +#, fuzzy +msgid "The orientation of the ruler" +msgstr "Orientazione dell'elemento del pannello" + +#: ../src/widgets/ruler.cpp:202 +#, fuzzy +msgid "Unit of the ruler" +msgstr "Larghezza del motivo" -#. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/tweak-toolbar.cpp:291 -msgid "H" -msgstr "H" +#: ../src/widgets/ruler.cpp:209 +msgid "Lower" +msgstr "Abbassa" -#: ../src/widgets/tweak-toolbar.cpp:303 -msgid "In color mode, act on objects' saturation" -msgstr "In modalitĂ  colore, agisce sulla saturazione dell'oggetto" +#: ../src/widgets/ruler.cpp:210 +#, fuzzy +msgid "Lower limit of ruler" +msgstr "Sposta al livello precedente" -#. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/tweak-toolbar.cpp:307 -msgid "S" -msgstr "S" +#: ../src/widgets/ruler.cpp:219 +#, fuzzy +msgid "Upper" +msgstr "Contagocce" -#: ../src/widgets/tweak-toolbar.cpp:319 -msgid "In color mode, act on objects' lightness" -msgstr "In modalitĂ  colore, agisce sulla luminositĂ  dell'oggetto" +#: ../src/widgets/ruler.cpp:220 +msgid "Upper limit of ruler" +msgstr "" -#. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/tweak-toolbar.cpp:323 -msgid "L" -msgstr "L" +#: ../src/widgets/ruler.cpp:230 +#, fuzzy +msgid "Position of mark on the ruler" +msgstr "Posizione lungo la curva" -#: ../src/widgets/tweak-toolbar.cpp:335 -msgid "In color mode, act on objects' opacity" -msgstr "In modalitĂ  colore, agisce sull'opacitĂ  dell'oggetto" +#: ../src/widgets/ruler.cpp:239 +#, fuzzy +msgid "Max Size" +msgstr "Dimensione" -#. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/tweak-toolbar.cpp:339 -msgid "O" -msgstr "O" +#: ../src/widgets/ruler.cpp:240 +msgid "Maximum size of the ruler" +msgstr "" -#. Fidelity -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(rough, simplified)" -msgstr "(grezzo, semplificato)" +#: ../src/widgets/select-toolbar.cpp:260 +msgid "Transform by toolbar" +msgstr "Trasforma tramite barra strumenti" -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(fine, but many nodes)" -msgstr "(buono, ma con molti nodi)" +#: ../src/widgets/select-toolbar.cpp:339 +msgid "Now stroke width is scaled when objects are scaled." +msgstr "" +"Ora la larghezza del contorno viene ridimensionata quando gli oggetti " +"vengono ridimensionati." -#: ../src/widgets/tweak-toolbar.cpp:353 -msgid "Fidelity" -msgstr "FedeltĂ " +#: ../src/widgets/select-toolbar.cpp:341 +msgid "Now stroke width is not scaled when objects are scaled." +msgstr "" +"Ora la larghezza del contorno non viene ridimensionata quando gli " +"oggetti vengono ridimensionati." -#: ../src/widgets/tweak-toolbar.cpp:353 -msgid "Fidelity:" -msgstr "FedeltĂ :" +#: ../src/widgets/select-toolbar.cpp:352 +msgid "" +"Now rounded rectangle corners are scaled when rectangles are " +"scaled." +msgstr "" +"Ora gli angoli arrotondati dei rettangoli vengono ridimensionati " +"quando i rettangoli vengono ridimensionati." -#: ../src/widgets/tweak-toolbar.cpp:354 +#: ../src/widgets/select-toolbar.cpp:354 msgid "" -"Low fidelity simplifies paths; high fidelity preserves path features but may " -"generate a lot of new nodes" +"Now rounded rectangle corners are not scaled when rectangles " +"are scaled." msgstr "" -"Una fedeltĂ  bassa rende il tracciato semplificato; una fedeltĂ  alta preserva " -"le caratteristiche del tracciato ma genera molti nuovi nodi" +"Ora gli angoli arrotondati dei rettangoli non vengono ridimensionati " +"quando i rettangoli vengono ridimensionati." -#: ../src/widgets/tweak-toolbar.cpp:373 -msgid "Use the pressure of the input device to alter the force of tweak action" +#: ../src/widgets/select-toolbar.cpp:365 +msgid "" +"Now gradients are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -"Usare la pressione del dispositivo di input per alterare l'intensitĂ  del " -"ritocco" +"Ora i gradienti vengono trasformati insieme ai loro oggetti " +"quando questi vengono trasformati (spostati, ridimensionati, ruotati o " +"distorti)." -#: ../share/extensions/convert2dashes.py:93 -#, fuzzy +#: ../src/widgets/select-toolbar.cpp:367 msgid "" -"The selected object is not a path.\n" -"Try using the procedure Path->Object to Path." +"Now gradients remain fixed when objects are transformed " +"(moved, scaled, rotated, or skewed)." msgstr "" -"Il primo elemento selezionato non è un tracciato.\n" -"Provare prima il procedimento Tracciato → Da oggetto a tracciato." +"Ora i gradienti restano fissi quando gli oggetti vengono " +"trasformati (spostati, ridimensionati, ruotati o distorti)." -#: ../share/extensions/dimension.py:109 -#, fuzzy -msgid "Please select an object." -msgstr "Duplica gli oggetti selezionati" +#: ../src/widgets/select-toolbar.cpp:378 +msgid "" +"Now patterns are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" +"Ora i motivi vengono trasformati insieme ai loro oggetti " +"quando questi vengono trasformati (spostati, ridimensionati, ruotati o " +"distorti)." -#: ../share/extensions/dimension.py:134 -msgid "Unable to process this object. Try changing it into a path first." -msgstr "Impossibile elaborare questo oggetto. Convertirlo prima in tracciato." +#: ../src/widgets/select-toolbar.cpp:380 +msgid "" +"Now patterns remain fixed when objects are transformed (moved, " +"scaled, rotated, or skewed)." +msgstr "" +"Ora i motivi restano fissi quando gli oggetti vengono " +"trasformati (spostati, ridimensionati, ruotati o distorti)." -#. report to the Inkscape console using errormsg -#: ../share/extensions/draw_from_triangle.py:180 +#. four spinbuttons +#: ../src/widgets/select-toolbar.cpp:498 #, fuzzy -msgid "Side Length 'a' (px): " -msgstr "Lunghezza lato 'a'/px:" +msgctxt "Select toolbar" +msgid "X position" +msgstr "Posizione" -#: ../share/extensions/draw_from_triangle.py:181 +#: ../src/widgets/select-toolbar.cpp:498 #, fuzzy -msgid "Side Length 'b' (px): " -msgstr "Lunghezza lato 'b'/px:" +msgctxt "Select toolbar" +msgid "X:" +msgstr "X:" -#: ../share/extensions/draw_from_triangle.py:182 +#: ../src/widgets/select-toolbar.cpp:500 +msgid "Horizontal coordinate of selection" +msgstr "Coordinate orizzontali della selezione" + +#: ../src/widgets/select-toolbar.cpp:504 #, fuzzy -msgid "Side Length 'c' (px): " -msgstr "Lunghezza lato 'c'/px:" +msgctxt "Select toolbar" +msgid "Y position" +msgstr "Posizione" -#: ../share/extensions/draw_from_triangle.py:183 +#: ../src/widgets/select-toolbar.cpp:504 #, fuzzy -msgid "Angle 'A' (radians): " -msgstr "Angolo 'A'/radianti:" +msgctxt "Select toolbar" +msgid "Y:" +msgstr "Y:" -#: ../share/extensions/draw_from_triangle.py:184 +#: ../src/widgets/select-toolbar.cpp:506 +msgid "Vertical coordinate of selection" +msgstr "Coordinate verticali della selezione" + +#: ../src/widgets/select-toolbar.cpp:510 #, fuzzy -msgid "Angle 'B' (radians): " -msgstr "Angolo 'B'/radianti:" +msgctxt "Select toolbar" +msgid "Width" +msgstr "Larghezza" -#: ../share/extensions/draw_from_triangle.py:185 +#: ../src/widgets/select-toolbar.cpp:510 #, fuzzy -msgid "Angle 'C' (radians): " -msgstr "Angolo 'C'/radianti:" +msgctxt "Select toolbar" +msgid "W:" +msgstr "L:" -#: ../share/extensions/draw_from_triangle.py:186 +#: ../src/widgets/select-toolbar.cpp:512 +msgid "Width of selection" +msgstr "Larghezza della selezione" + +#: ../src/widgets/select-toolbar.cpp:519 +msgid "Lock width and height" +msgstr "Blocca larghezza e altezza: " + +#: ../src/widgets/select-toolbar.cpp:520 +msgid "When locked, change both width and height by the same proportion" +msgstr "Se bloccato, cambia l'altezza e la larghezza in maniera proporzionale" + +#: ../src/widgets/select-toolbar.cpp:529 #, fuzzy -msgid "Semiperimeter (px): " -msgstr "Semiperimetro/px:" +msgctxt "Select toolbar" +msgid "Height" +msgstr "Altezza" -#: ../share/extensions/draw_from_triangle.py:187 +#: ../src/widgets/select-toolbar.cpp:529 #, fuzzy -msgid "Area (px^2): " -msgstr "Area /px²" +msgctxt "Select toolbar" +msgid "H:" +msgstr "H:" -#: ../share/extensions/dxf_input.py:504 -#, python-format -msgid "" -"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " -"to Release 13 format using QCad." -msgstr "" +#: ../src/widgets/select-toolbar.cpp:531 +msgid "Height of selection" +msgstr "Altezza della selezione" -#: ../share/extensions/dxf_outlines.py:49 -msgid "" -"Failed to import the numpy or numpy.linalg modules. These modules are " -"required by this extension. Please install them and try again." -msgstr "" -"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " -"necessari a quest'estensione. installarli e provare nuovamente." +#: ../src/widgets/select-toolbar.cpp:581 +msgid "Scale rounded corners" +msgstr "Ridimensiona angoli arrotondati" -#: ../share/extensions/dxf_outlines.py:300 -msgid "" -"Error: Field 'Layer match name' must be filled when using 'By name match' " -"option" -msgstr "" +#: ../src/widgets/select-toolbar.cpp:592 +msgid "Move gradients" +msgstr "Muovi gradiente" -#: ../share/extensions/dxf_outlines.py:341 -#, fuzzy, python-format -msgid "Warning: Layer '%s' not found!" -msgstr "Sposta livello in cima" +#: ../src/widgets/select-toolbar.cpp:603 +msgid "Move patterns" +msgstr "Muovi motivi" -#: ../share/extensions/embedimage.py:84 -msgid "" -"No xlink:href or sodipodi:absref attributes found, or they do not point to " -"an existing file! Unable to embed image." -msgstr "" -"Nessun attributo xlink:href o sodipodi:absref trovato, o non afferenti ad un " -"file esistente. Impossibile incorporare l'immagine." +#: ../src/widgets/sp-attribute-widget.cpp:299 +msgid "Set attribute" +msgstr "Imposta attributo" -#: ../share/extensions/embedimage.py:86 -#, python-format -msgid "Sorry we could not locate %s" -msgstr "Impossibile trovare %s" +#: ../src/widgets/sp-color-icc-selector.cpp:257 +msgid "CMS" +msgstr "CMS" -#: ../share/extensions/embedimage.py:111 -#, python-format -msgid "" -"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " -"or image/x-icon" -msgstr "" -"%s non è del tipo image/png, image/jpeg, image/bmp, image/gif, image/tiff, o " -"image/x-icon" +#: ../src/widgets/sp-color-icc-selector.cpp:355 +#: ../src/widgets/sp-color-scales.cpp:428 +msgid "_R:" +msgstr "_R:" -#: ../share/extensions/export_gimp_palette.py:16 -msgid "" -"The export_gpl.py module requires PyXML. Please download the latest version " -"from http://pyxml.sourceforge.net/." -msgstr "" -"Il modulo export_gpl.py richiede PyXML. Si può scaricare l'ultima versione " -"da http://pyxml.sourceforge.net/." +#. TYPE_RGB_16 +#: ../src/widgets/sp-color-icc-selector.cpp:356 +#: ../src/widgets/sp-color-scales.cpp:431 +msgid "_G:" +msgstr "_G:" -#: ../share/extensions/extractimage.py:68 -#, python-format -msgid "Image extracted to: %s" -msgstr "" +#: ../src/widgets/sp-color-icc-selector.cpp:357 +#: ../src/widgets/sp-color-scales.cpp:434 +msgid "_B:" +msgstr "_B:" -#: ../share/extensions/extractimage.py:75 -msgid "Unable to find image data." -msgstr "Impossibile trovare i dati dell'immagine." +#: ../src/widgets/sp-color-icc-selector.cpp:359 +msgid "Gray" +msgstr "Grigio" -#: ../share/extensions/extrude.py:43 -#, fuzzy -msgid "Need at least 2 paths selected" -msgstr "Nessuna selezione" +#. TYPE_GRAY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:361 +#: ../src/widgets/sp-color-icc-selector.cpp:365 +#: ../src/widgets/sp-color-scales.cpp:454 +msgid "_H:" +msgstr "_H:" -#: ../share/extensions/funcplot.py:48 -msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" -msgstr "" +#. TYPE_HSV_16 +#: ../src/widgets/sp-color-icc-selector.cpp:362 +#: ../src/widgets/sp-color-icc-selector.cpp:367 +#: ../src/widgets/sp-color-scales.cpp:457 +msgid "_S:" +msgstr "_S:" -#: ../share/extensions/funcplot.py:60 -msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" -msgstr "" +#. TYPE_HLS_16 +#: ../src/widgets/sp-color-icc-selector.cpp:366 +#: ../src/widgets/sp-color-scales.cpp:460 +msgid "_L:" +msgstr "_L:" -#: ../share/extensions/funcplot.py:315 -#, fuzzy -msgid "Please select a rectangle" -msgstr "Duplica gli oggetti selezionati" +#: ../src/widgets/sp-color-icc-selector.cpp:369 +#: ../src/widgets/sp-color-icc-selector.cpp:374 +#: ../src/widgets/sp-color-scales.cpp:482 +msgid "_C:" +msgstr "_C:" -#: ../share/extensions/gcodetools.py:3321 -#: ../share/extensions/gcodetools.py:4526 -#: ../share/extensions/gcodetools.py:4699 -#: ../share/extensions/gcodetools.py:6232 -#: ../share/extensions/gcodetools.py:6427 -msgid "No paths are selected! Trying to work on all available paths." -msgstr "" +#. TYPE_CMYK_16 +#. TYPE_CMY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:370 +#: ../src/widgets/sp-color-icc-selector.cpp:375 +#: ../src/widgets/sp-color-scales.cpp:485 +msgid "_M:" +msgstr "_M:" -#: ../share/extensions/gcodetools.py:3324 -msgid "Noting is selected. Please select something." -msgstr "" +#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:376 +#: ../src/widgets/sp-color-scales.cpp:488 +msgid "_Y:" +msgstr "_Y:" -#: ../share/extensions/gcodetools.py:3864 -#, fuzzy -msgid "" -"Directory does not exist! Please specify existing directory at Preferences " -"tab!" -msgstr "La cartella %s non esiste o non è una cartella.\n" +#: ../src/widgets/sp-color-icc-selector.cpp:372 +#: ../src/widgets/sp-color-scales.cpp:491 +msgid "_K:" +msgstr "_K:" -#: ../share/extensions/gcodetools.py:3894 -#, fuzzy, python-format -msgid "" -"Can not write to specified file!\n" -"%s" -msgstr "" -"Impossibile scrivere il file %s.\n" -"%s" +#: ../src/widgets/sp-color-icc-selector.cpp:455 +msgid "Fix" +msgstr "Fissa" -#: ../share/extensions/gcodetools.py:4040 -#, python-format -msgid "" -"Orientation points for '%s' layer have not been found! Please add " -"orientation points using Orientation tab!" -msgstr "" +#: ../src/widgets/sp-color-icc-selector.cpp:458 +msgid "Fix RGB fallback to match icc-color() value." +msgstr "Fissa fallback RGB corrispondente al valore icc-color()." -#: ../share/extensions/gcodetools.py:4047 -#, python-format -msgid "There are more than one orientation point groups in '%s' layer" -msgstr "" +#. Label +#: ../src/widgets/sp-color-icc-selector.cpp:561 +#: ../src/widgets/sp-color-scales.cpp:437 +#: ../src/widgets/sp-color-scales.cpp:463 +#: ../src/widgets/sp-color-scales.cpp:494 +#: ../src/widgets/sp-color-wheel-selector.cpp:140 +msgid "_A:" +msgstr "_A:" -#: ../share/extensions/gcodetools.py:4078 -#: ../share/extensions/gcodetools.py:4080 -msgid "" -"Orientation points are wrong! (if there are two orientation points they " -"should not be the same. If there are three orientation points they should " -"not be in a straight line.)" -msgstr "" +#: ../src/widgets/sp-color-icc-selector.cpp:572 +#: ../src/widgets/sp-color-icc-selector.cpp:585 +#: ../src/widgets/sp-color-scales.cpp:438 +#: ../src/widgets/sp-color-scales.cpp:439 +#: ../src/widgets/sp-color-scales.cpp:464 +#: ../src/widgets/sp-color-scales.cpp:465 +#: ../src/widgets/sp-color-scales.cpp:495 +#: ../src/widgets/sp-color-scales.cpp:496 +#: ../src/widgets/sp-color-wheel-selector.cpp:161 +#: ../src/widgets/sp-color-wheel-selector.cpp:185 +msgid "Alpha (opacity)" +msgstr "Alpha (opacitĂ )" -#: ../share/extensions/gcodetools.py:4250 -#, python-format -msgid "" -"Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " -"be corrupt!" -msgstr "" +#: ../src/widgets/sp-color-notebook.cpp:385 +#, fuzzy +msgid "Color Managed" +msgstr "Gestione del colore" -#: ../share/extensions/gcodetools.py:4263 -#, python-format -msgid "" -"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " -"could be corrupt!" -msgstr "" +#: ../src/widgets/sp-color-notebook.cpp:392 +msgid "Out of gamut!" +msgstr "Fuori gamma!" -#. xgettext:no-pango-format -#: ../share/extensions/gcodetools.py:4284 -msgid "" -"This extension works with Paths and Dynamic Offsets and groups of them only! " -"All other objects will be ignored!\n" -"Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" -"Solution 2: Path->Dynamic offset or Ctrl+J.\n" -"Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " -"and File->Import this file." -msgstr "" +#: ../src/widgets/sp-color-notebook.cpp:399 +#, fuzzy +msgid "Too much ink!" +msgstr "Aumenta l'ingrandimento" -#: ../share/extensions/gcodetools.py:4290 -msgid "" -"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" -"+L)" -msgstr "" +#. Create RGBA entry and color preview +#: ../src/widgets/sp-color-notebook.cpp:416 +msgid "RGBA_:" +msgstr "RGBA_:" -#: ../share/extensions/gcodetools.py:4294 -msgid "" -"Warning! There are some paths in the root of the document, but not in any " -"layer! Using bottom-most layer for them." -msgstr "" +#: ../src/widgets/sp-color-notebook.cpp:424 +msgid "Hexadecimal RGBA value of the color" +msgstr "Valore RGBA esadecimale del colore" -#: ../share/extensions/gcodetools.py:4371 -#, python-format -msgid "" -"Warning! Tool's and default tool's parameter's (%s) types are not the same " -"( type('%s') != type('%s') )." -msgstr "" +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "RGB" +msgstr "RGB" -#: ../share/extensions/gcodetools.py:4374 -#, python-format -msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." -msgstr "" +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "HSL" +msgstr "HSL" -#: ../share/extensions/gcodetools.py:4388 -#, python-format -msgid "Layer '%s' contains more than one tool!" -msgstr "" +#: ../src/widgets/sp-color-scales.cpp:80 +msgid "CMYK" +msgstr "CMYK" -#: ../share/extensions/gcodetools.py:4391 -#, python-format -msgid "" -"Can not find tool for '%s' layer! Please add one with Tools library tab!" -msgstr "" +#: ../src/widgets/sp-color-selector.cpp:64 +msgid "Unnamed" +msgstr "Senza nome" + +#: ../src/widgets/sp-xmlview-attr-list.cpp:64 +msgid "Value" +msgstr "Valore" + +#: ../src/widgets/sp-xmlview-content.cpp:179 +msgid "Type text in a text node" +msgstr "Scrivi testo in un nodo testuale" + +#: ../src/widgets/spiral-toolbar.cpp:100 +msgid "Change spiral" +msgstr "Modifica spirale" + +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "just a curve" +msgstr "curva semplice" -#: ../share/extensions/gcodetools.py:4553 -#: ../share/extensions/gcodetools.py:4708 -msgid "" -"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" -"+Shift+G) and Object to Path (Ctrl+Shift+C)!" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "one full revolution" +msgstr "una rivoluzione intera" -#: ../share/extensions/gcodetools.py:4667 -msgid "" -"Noting is selected. Please select something to convert to drill point " -"(dxfpoint) or clear point sign." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of turns" +msgstr "Numero di rivoluzioni" -#: ../share/extensions/gcodetools.py:4750 -#: ../share/extensions/gcodetools.py:4996 -#, fuzzy -msgid "This extension requires at least one selected path." -msgstr "Questa estensione richiede che vengan selezionati due tracciati." +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Turns:" +msgstr "Rivoluzioni:" -#: ../share/extensions/gcodetools.py:4756 -#: ../share/extensions/gcodetools.py:5002 -#, python-format -msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of revolutions" +msgstr "Numero di rivoluzioni" -#: ../share/extensions/gcodetools.py:4767 -#: ../share/extensions/gcodetools.py:4956 -#: ../share/extensions/gcodetools.py:5011 -msgid "Warning: omitting non-path" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "circle" +msgstr "cerchio" -#: ../share/extensions/gcodetools.py:5511 -#, fuzzy -msgid "Please select at least one path to engrave and run again." -msgstr "" -"Selezionare almeno 1 tracciato per effettuare un'unione booleana." +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is much denser" +msgstr "contorno molto denso" -#: ../share/extensions/gcodetools.py:5519 -msgid "Unknown unit selected. mm assumed" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is denser" +msgstr "contorno denso" -#: ../share/extensions/gcodetools.py:5540 -#, python-format -msgid "Tool '%s' has no shape. 45 degree cone assumed!" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "even" +msgstr "pari" -#: ../share/extensions/gcodetools.py:5611 -#: ../share/extensions/gcodetools.py:5616 -msgid "csp_normalised_normal error. See log." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is denser" +msgstr "centro denso" -#: ../share/extensions/gcodetools.py:5804 -msgid "No need to engrave sharp angles." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is much denser" +msgstr "centro molto denso" -#: ../share/extensions/gcodetools.py:5848 -msgid "" -"Active layer already has orientation points! Remove them or select another " -"layer!" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence" +msgstr "Divergenza" -#: ../share/extensions/gcodetools.py:5893 -msgid "Active layer already has a tool! Remove it or select another layer!" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence:" +msgstr "Divergenza:" -#: ../share/extensions/gcodetools.py:6008 -msgid "Selection is empty! Will compute whole drawing." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "How much denser/sparser are outer revolutions; 1 = uniform" +msgstr "La densitĂ  delle rivoluzioni esterne; 1 = uniformi" -#: ../share/extensions/gcodetools.py:6062 -msgid "" -"Tutorials, manuals and support can be found at\n" -"English support forum:\n" -"\thttp://www.cnc-club.ru/gcodetools\n" -"and Russian support forum:\n" -"\thttp://www.cnc-club.ru/gcodetoolsru" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts from center" +msgstr "parte dal centro" -#: ../share/extensions/gcodetools.py:6107 -msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts mid-way" +msgstr "parte da metĂ " -#: ../share/extensions/gcodetools.py:6110 -msgid "Lathe X and Z axis remap should be the same. Exiting..." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts near edge" +msgstr "parte vicino al termine" -#: ../share/extensions/gcodetools.py:6662 -#, python-format -msgid "" -"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " -"Orientation, Offset, Lathe or Tools library.\n" -" Current active tab id is %s" -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius" +msgstr "Raggio interno" -#: ../share/extensions/gcodetools.py:6668 -msgid "" -"Orientation points have not been defined! A default set of orientation " -"points has been automatically added." -msgstr "" +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius:" +msgstr "Raggio interno:" -#: ../share/extensions/gcodetools.py:6672 -msgid "" -"Cutting tool has not been defined! A default tool has been automatically " -"added." +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "" +"Il raggio delle rivoluzioni piĂą interne (relativo alle dimensioni della " +"spirale)" -#: ../share/extensions/generate_voronoi.py:35 +#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:565 msgid "" -"Failed to import the subprocess module. Please report this as a bug at: " -"https://bugs.launchpad.net/inkscape." +"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" msgstr "" +"Reimposta i parametri delle forma ai valori predefiniti (usare Preferenze di " +"Inkscape > Strumenti per cambiare i valori predefiniti)" -#: ../share/extensions/generate_voronoi.py:36 +#. Width +#: ../src/widgets/spray-toolbar.cpp:113 #, fuzzy -msgid "Python version is: " -msgstr "Conversione in guide:" +msgid "(narrow spray)" +msgstr "piĂą stretta" -#: ../share/extensions/generate_voronoi.py:94 +#: ../src/widgets/spray-toolbar.cpp:113 #, fuzzy -msgid "Please select an object" -msgstr "Duplica gli oggetti selezionati" +msgid "(broad spray)" +msgstr "(tratto ampio)" -#: ../share/extensions/gimp_xcf.py:39 -msgid "Gimp must be installed and set in your path variable." +#: ../src/widgets/spray-toolbar.cpp:116 +#, fuzzy +msgid "The width of the spray area (relative to the visible canvas area)" msgstr "" +"La larghezza dell'area di ritocco (relativa all'area della tela visibile)" -#: ../share/extensions/gimp_xcf.py:43 -msgid "An error occurred while processing the XCF file." -msgstr "" +#: ../src/widgets/spray-toolbar.cpp:129 +#, fuzzy +msgid "(maximum mean)" +msgstr "(inerzia massima)" -#: ../share/extensions/gimp_xcf.py:177 +#: ../src/widgets/spray-toolbar.cpp:132 #, fuzzy -msgid "This extension requires at least one non empty layer." -msgstr "Questa estensione richiede che vengan selezionati due tracciati." +msgid "Focus" +msgstr "angolare" -#: ../share/extensions/guillotine.py:250 -msgid "The sliced bitmaps have been saved as:" +#: ../src/widgets/spray-toolbar.cpp:132 +#, fuzzy +msgid "Focus:" +msgstr "Forza:" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "" -#: ../share/extensions/hpgl_decoder.py:43 +#. Standard_deviation +#: ../src/widgets/spray-toolbar.cpp:145 #, fuzzy -msgid "Movements" -msgstr "Muovi gradiente" +msgid "(minimum scatter)" +msgstr "(forza minima)" -#: ../share/extensions/hpgl_decoder.py:44 +#: ../src/widgets/spray-toolbar.cpp:145 #, fuzzy -msgid "Pen #" -msgstr "Inerzia pennino" +msgid "(maximum scatter)" +msgstr "(tremore massimo)" -#. issue error if no hpgl data found -#: ../share/extensions/hpgl_input.py:58 +#: ../src/widgets/spray-toolbar.cpp:148 #, fuzzy -msgid "No HPGL data found." -msgstr "Non arrotondato" - -#: ../share/extensions/hpgl_input.py:66 -msgid "" -"The HPGL data contained unknown (unsupported) commands, there is a " -"possibility that the drawing is missing some content." -msgstr "" - -#. issue error if no paths found -#: ../share/extensions/hpgl_output.py:58 -msgid "" -"No paths where found. Please convert all objects you want to save into paths." -msgstr "" +msgctxt "Spray tool" +msgid "Scatter" +msgstr "Sciame" -#: ../share/extensions/inkex.py:109 -#, fuzzy, python-format -msgid "" -"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " -"this extension. Please download and install the latest version from http://" -"cheeseshop.python.org/pypi/lxml/, or install it through your package manager " -"by a command like: sudo apt-get install python-lxml\n" -"\n" -"Technical details:\n" -"%s" -msgstr "" -"Il modulo lxml d'interfaccia con libxml2 è richiesto da inkex.py e quindi da " -"questa estensione. L'ultima versione può essere scaricata e installata da " -"http://cheeseshop.python.org/pypi/lxml/ o tramite il proprio gestore di " -"pacchetti con un comando simile a `sudo apt-get install python-lxml`" +#: ../src/widgets/spray-toolbar.cpp:148 +#, fuzzy +msgctxt "Spray tool" +msgid "Scatter:" +msgstr "Sciame" -#: ../share/extensions/inkex.py:162 -#, fuzzy, python-format -msgid "Unable to open specified file: %s" +#: ../src/widgets/spray-toolbar.cpp:148 +msgid "Increase to scatter sprayed objects" msgstr "" -"Impossibile scrivere il file %s.\n" -"%s" -#: ../share/extensions/inkex.py:171 -#, fuzzy, python-format -msgid "Unable to open object member file: %s" -msgstr "impossibile trovare il delimitatore: %s" +#: ../src/widgets/spray-toolbar.cpp:167 +#, fuzzy +msgid "Spray copies of the initial selection" +msgstr "Applica l'effetto desiderato alla selezione" -#: ../share/extensions/inkex.py:276 -#, python-format -msgid "No matching node for expression: %s" -msgstr "Nessun nodo corrispondente all'espressione: %s" +#: ../src/widgets/spray-toolbar.cpp:174 +#, fuzzy +msgid "Spray clones of the initial selection" +msgstr "Crea e serializza i cloni della selezione" -#: ../share/extensions/interp_att_g.py:167 +#: ../src/widgets/spray-toolbar.cpp:180 #, fuzzy -msgid "There is no selection to interpolate" -msgstr "Sposta la selezione in cima" +msgid "Spray single path" +msgstr "Cancella tracciato esistente" -#: ../share/extensions/jessyInk_autoTexts.py:45 -#: ../share/extensions/jessyInk_effects.py:50 -#: ../share/extensions/jessyInk_export.py:96 -#: ../share/extensions/jessyInk_keyBindings.py:188 -#: ../share/extensions/jessyInk_masterSlide.py:46 -#: ../share/extensions/jessyInk_mouseHandler.py:48 -#: ../share/extensions/jessyInk_summary.py:64 -#: ../share/extensions/jessyInk_transitions.py:50 -#: ../share/extensions/jessyInk_video.py:49 -#: ../share/extensions/jessyInk_view.py:67 -msgid "" -"The JessyInk script is not installed in this SVG file or has a different " -"version than the JessyInk extensions. Please select \"install/update...\" " -"from the \"JessyInk\" sub-menu of the \"Extensions\" menu to install or " -"update the JessyInk script.\n" -"\n" +#: ../src/widgets/spray-toolbar.cpp:181 +msgid "Spray objects in a single path" msgstr "" -#: ../share/extensions/jessyInk_autoTexts.py:48 -#, fuzzy -msgid "" -"To assign an effect, please select an object.\n" -"\n" -msgstr "Duplica gli oggetti selezionati" +#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 +msgid "Mode" +msgstr "ModalitĂ " -#: ../share/extensions/jessyInk_autoTexts.py:54 -msgid "" -"Node with id '{0}' is not a suitable text node and was therefore ignored.\n" -"\n" +#. Population +#: ../src/widgets/spray-toolbar.cpp:205 +msgid "(low population)" msgstr "" -#: ../share/extensions/jessyInk_effects.py:53 -msgid "" -"No object selected. Please select the object you want to assign an effect to " -"and then press apply.\n" -msgstr "" +#: ../src/widgets/spray-toolbar.cpp:205 +#, fuzzy +msgid "(high population)" +msgstr "(leggera deviazione)" -#: ../share/extensions/jessyInk_export.py:82 -msgid "Could not find Inkscape command.\n" -msgstr "" +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount" +msgstr "QuantitĂ " -#: ../share/extensions/jessyInk_masterSlide.py:56 -msgid "Layer not found. Removed current master slide selection.\n" +#: ../src/widgets/spray-toolbar.cpp:209 +msgid "Adjusts the number of items sprayed per click" msgstr "" -#: ../share/extensions/jessyInk_masterSlide.py:58 +#: ../src/widgets/spray-toolbar.cpp:225 +#, fuzzy msgid "" -"More than one layer with this name found. Removed current master slide " -"selection.\n" +"Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" +"Usare la pressione del dispositivo di input per alterare la larghezza della " +"penna" -#: ../share/extensions/jessyInk_summary.py:69 -msgid "JessyInk script version {0} installed." -msgstr "" +#: ../src/widgets/spray-toolbar.cpp:235 +#, fuzzy +msgid "(high rotation variation)" +msgstr "(leggera deviazione)" -#: ../share/extensions/jessyInk_summary.py:71 -msgid "JessyInk script installed." -msgstr "" +#: ../src/widgets/spray-toolbar.cpp:238 +#, fuzzy +msgid "Rotation" +msgstr "_Rotazione" -#: ../share/extensions/jessyInk_summary.py:83 +#: ../src/widgets/spray-toolbar.cpp:238 #, fuzzy -msgid "" -"\n" -"Master slide:" -msgstr "Incolla dimensione" +msgid "Rotation:" +msgstr "_Rotazione" -#: ../share/extensions/jessyInk_summary.py:89 +#: ../src/widgets/spray-toolbar.cpp:240 +#, no-c-format msgid "" -"\n" -"Slide {0!s}:" +"Variation of the rotation of the sprayed objects; 0% for the same rotation " +"than the original object" msgstr "" -#: ../share/extensions/jessyInk_summary.py:94 +#: ../src/widgets/spray-toolbar.cpp:253 #, fuzzy -msgid "{0}Layer name: {1}" -msgstr "Nome del livello:" - -#: ../share/extensions/jessyInk_summary.py:102 -msgid "{0}Transition in: {1} ({2!s} s)" -msgstr "" +msgid "(high scale variation)" +msgstr "(leggera deviazione)" -#: ../share/extensions/jessyInk_summary.py:104 +#: ../src/widgets/spray-toolbar.cpp:256 #, fuzzy -msgid "{0}Transition in: {1}" -msgstr "Trasformazione" - -#: ../share/extensions/jessyInk_summary.py:111 -msgid "{0}Transition out: {1} ({2!s} s)" -msgstr "" +msgctxt "Spray tool" +msgid "Scale" +msgstr "Ridimensiona" -#: ../share/extensions/jessyInk_summary.py:113 +#: ../src/widgets/spray-toolbar.cpp:256 #, fuzzy -msgid "{0}Transition out: {1}" -msgstr "Incolla effetto su tracciato" +msgctxt "Spray tool" +msgid "Scale:" +msgstr "Ridimensiona:" -#: ../share/extensions/jessyInk_summary.py:120 +#: ../src/widgets/spray-toolbar.cpp:258 +#, no-c-format msgid "" -"\n" -"{0}Auto-texts:" +"Variation in the scale of the sprayed objects; 0% for the same scale than " +"the original object" msgstr "" -#: ../share/extensions/jessyInk_summary.py:123 -msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." -msgstr "" +#: ../src/widgets/star-toolbar.cpp:102 +msgid "Star: Change number of corners" +msgstr "Stella: cambia numero di vertici" -#: ../share/extensions/jessyInk_summary.py:168 -msgid "" -"\n" -"{0}Initial effect (order number {1}):" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:155 +msgid "Star: Change spoke ratio" +msgstr "Stella: Cambia lunghezza dei raggi" -#: ../share/extensions/jessyInk_summary.py:170 -msgid "" -"\n" -"{0}Effect {1!s} (order number {2}):" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:200 +msgid "Make polygon" +msgstr "Crea poligono" -#: ../share/extensions/jessyInk_summary.py:174 -msgid "{0}\tView will be set according to object \"{1}\"" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:200 +msgid "Make star" +msgstr "Crea stella" -#: ../share/extensions/jessyInk_summary.py:176 -msgid "{0}\tObject \"{1}\"" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:239 +msgid "Star: Change rounding" +msgstr "Stella: Cambia arrotondamento" -#: ../share/extensions/jessyInk_summary.py:179 -#, fuzzy -msgid " will appear" -msgstr "Riempie aree delimitate" +#: ../src/widgets/star-toolbar.cpp:279 +msgid "Star: Change randomization" +msgstr "Stella: Cambia casualitĂ " -#: ../share/extensions/jessyInk_summary.py:181 -msgid " will disappear" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:463 +msgid "Regular polygon (with one handle) instead of a star" +msgstr "Poligono regolare (con una maniglia) invece di una stella" -#: ../share/extensions/jessyInk_summary.py:184 -msgid " using effect \"{0}\"" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:470 +msgid "Star instead of a regular polygon (with one handle)" +msgstr "Stella invece di un poligono regolare (con una maniglia)" -#: ../share/extensions/jessyInk_summary.py:187 -msgid " in {0!s} s" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:491 +msgid "triangle/tri-star" +msgstr "triangolo/tri-stella" -#: ../share/extensions/jessyInk_transitions.py:55 -#, fuzzy -msgid "Layer not found.\n" -msgstr "Sposta livello in cima" +#: ../src/widgets/star-toolbar.cpp:491 +msgid "square/quad-star" +msgstr "quadrato/quadri-stella" -#: ../share/extensions/jessyInk_transitions.py:57 -msgid "More than one layer with this name found.\n" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:491 +msgid "pentagon/five-pointed star" +msgstr "pentagono/penta-stella" + +#: ../src/widgets/star-toolbar.cpp:491 +msgid "hexagon/six-pointed star" +msgstr "esagono/esa-stella" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Corners" +msgstr "Angoli" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Corners:" +msgstr "Angoli:" + +#: ../src/widgets/star-toolbar.cpp:494 +msgid "Number of corners of a polygon or star" +msgstr "Numero di angoli di un poligono o di una stella" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "thin-ray star" +msgstr "stella a raggi sottili" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "pentagram" +msgstr "pentagramma" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "hexagram" +msgstr "esagramma" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "heptagram" +msgstr "eptagramma" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "octagram" +msgstr "ottagramma" + +#: ../src/widgets/star-toolbar.cpp:507 +msgid "regular polygon" +msgstr "poligono regolare" -#: ../share/extensions/jessyInk_transitions.py:70 -#, fuzzy -msgid "Please enter a layer name.\n" -msgstr "Bisogna inserire il nome del file" +#: ../src/widgets/star-toolbar.cpp:510 +msgid "Spoke ratio" +msgstr "Rapporto raggi" -#: ../share/extensions/jessyInk_video.py:54 -#: ../share/extensions/jessyInk_video.py:59 -msgid "" -"Could not obtain the selected layer for inclusion of the video element.\n" -"\n" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:510 +msgid "Spoke ratio:" +msgstr "Rapporto raggi:" -#: ../share/extensions/jessyInk_view.py:75 -#, fuzzy -msgid "More than one object selected. Please select only one object.\n" -msgstr "" -"PiĂą di un elemento selezionato. Impossibile prendere lo stile da piĂą " -"oggetti." +#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. +#. Base radius is the same for the closest handle. +#: ../src/widgets/star-toolbar.cpp:513 +msgid "Base radius to tip radius ratio" +msgstr "Rapporto tra diametro interno e diametro totale" -#: ../share/extensions/jessyInk_view.py:79 -msgid "" -"No object selected. Please select the object you want to assign a view to " -"and then press apply.\n" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "stretched" +msgstr "molto strozzato" -#: ../share/extensions/markers_strokepaint.py:83 -#, python-format -msgid "No style attribute found for id: %s" -msgstr "Nessun attributo style trovato per l'id: %s" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "twisted" +msgstr "visibilmente strozzato" -#: ../share/extensions/markers_strokepaint.py:137 -#, python-format -msgid "unable to locate marker: %s" -msgstr "impossibile trovare il delimitatore: %s" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "slightly pinched" +msgstr "leggermente strozzato" -#: ../share/extensions/measure.py:50 -#, fuzzy -msgid "" -"Failed to import the numpy modules. These modules are required by this " -"extension. Please install them and try again. On a Debian-like system this " -"can be done with the command, sudo apt-get install python-numpy." -msgstr "" -"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " -"necessari a quest'estensione. installarli e provare nuovamente. Su sistemi " -"derivati Debian questo può essere fatto col comando `sudo apt-get install " -"python-numpy`." +#: ../src/widgets/star-toolbar.cpp:531 +msgid "NOT rounded" +msgstr "non arrotondato" -#: ../share/extensions/measure.py:112 -msgid "Area is zero, cannot calculate Center of Mass" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "slightly rounded" +msgstr "leggermente arrotondato" -#: ../share/extensions/pathalongpath.py:208 -#: ../share/extensions/pathscatter.py:228 -#: ../share/extensions/perspective.py:53 -msgid "This extension requires two selected paths." -msgstr "Questa estensione richiede che vengan selezionati due tracciati." +#: ../src/widgets/star-toolbar.cpp:531 +msgid "visibly rounded" +msgstr "visibilmente arrotondato" -#: ../share/extensions/pathalongpath.py:234 -msgid "" -"The total length of the pattern is too small :\n" -"Please choose a larger object or set 'Space between copies' > 0" -msgstr "" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "well rounded" +msgstr "ben arrotondato" -#: ../share/extensions/pathalongpath.py:277 -msgid "" -"The 'stretch' option requires that the pattern must have non-zero width :\n" -"Please edit the pattern width." -msgstr "" +#: ../src/widgets/star-toolbar.cpp:531 +msgid "amply rounded" +msgstr "molto arrotondato" -#: ../share/extensions/pathmodifier.py:237 -#, python-format -msgid "Please first convert objects to paths! (Got [%s].)" -msgstr "Convertire prima l'oggetto in tracciato! (Ricevuto [%s].)" +#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 +msgid "blown up" +msgstr "gonfiato" -#: ../share/extensions/perspective.py:45 -msgid "" -"Failed to import the numpy or numpy.linalg modules. These modules are " -"required by this extension. Please install them and try again. On a Debian-" -"like system this can be done with the command, sudo apt-get install python-" -"numpy." -msgstr "" -"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " -"necessari a quest'estensione. installarli e provare nuovamente. Su sistemi " -"derivati Debian questo può essere fatto col comando `sudo apt-get install " -"python-numpy`." +#: ../src/widgets/star-toolbar.cpp:534 +msgid "Rounded:" +msgstr "Arrotondamento:" -#: ../share/extensions/perspective.py:61 -#: ../share/extensions/summersnight.py:52 -#, python-format -msgid "" -"The first selected object is of type '%s'.\n" -"Try using the procedure Path->Object to Path." -msgstr "" -"Il primo elemento selezionato è del tipo «%s».\n" -"Provare prima il procedimento Tracciato → Da oggetto a tracciato." +#: ../src/widgets/star-toolbar.cpp:534 +msgid "How much rounded are the corners (0 for sharp)" +msgstr "Il grado di arrotondamento degli angoli (0 per gli spigoli)" -#: ../share/extensions/perspective.py:68 -#: ../share/extensions/summersnight.py:60 -msgid "" -"This extension requires that the second selected path be four nodes long." -msgstr "" -"Questa estensione richiede che il secondo tracciato selezionato sia lungo " -"esattamente quattro nodi." +#: ../src/widgets/star-toolbar.cpp:546 +msgid "NOT randomized" +msgstr "non casuale" -#: ../share/extensions/perspective.py:94 -#: ../share/extensions/summersnight.py:93 -msgid "" -"The second selected object is a group, not a path.\n" -"Try using the procedure Object->Ungroup." -msgstr "" -"Il secondo elemento selezionato è un gruppo, non un tracciato.\n" -"Provare prima il procedimento Oggetto → Dividi." +#: ../src/widgets/star-toolbar.cpp:546 +msgid "slightly irregular" +msgstr "leggermente irregolare" -#: ../share/extensions/perspective.py:96 -#: ../share/extensions/summersnight.py:95 -msgid "" -"The second selected object is not a path.\n" -"Try using the procedure Path->Object to Path." -msgstr "" -"Il secondo elemento selezionato non è un tracciato.\n" -"Provare prima il procedimento Tracciato → Da oggetto a tracciato." +#: ../src/widgets/star-toolbar.cpp:546 +msgid "visibly randomized" +msgstr "visibilmente casuale" -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:98 -msgid "" -"The first selected object is not a path.\n" -"Try using the procedure Path->Object to Path." -msgstr "" -"Il primo elemento selezionato non è un tracciato.\n" -"Provare prima il procedimento Tracciato → Da oggetto a tracciato." +#: ../src/widgets/star-toolbar.cpp:546 +msgid "strongly randomized" +msgstr "molto casuale" -#. issue error if no paths found -#: ../share/extensions/plotter.py:66 -msgid "" -"No paths where found. Please convert all objects you want to plot into paths." -msgstr "" +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Randomized" +msgstr "Casuale" -#: ../share/extensions/plotter.py:143 -msgid "pySerial is not installed." -msgstr "" +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Randomized:" +msgstr "Casuale:" -#: ../share/extensions/plotter.py:163 -msgid "" -"Could not open port. Please check that your plotter is running, connected " -"and the settings are correct." -msgstr "" +#: ../src/widgets/star-toolbar.cpp:549 +msgid "Scatter randomly the corners and angles" +msgstr "Separa casualmente gli angoli" -#: ../share/extensions/polyhedron_3d.py:65 -msgid "" -"Failed to import the numpy module. This module is required by this " -"extension. Please install it and try again. On a Debian-like system this " -"can be done with the command 'sudo apt-get install python-numpy'." -msgstr "" -"Errore nell'importare il modulo numpy. Tale modulo è necessario a " -"quest'estensione, installarlo e provare nuovamente. Su sistemi derivati " -"Debian questo può essere fatto col comando `sudo apt-get install python-" -"numpy`." +#: ../src/widgets/stroke-style.cpp:192 +msgid "Stroke width" +msgstr "Larghezza contorno" -#: ../share/extensions/polyhedron_3d.py:336 -msgid "No face data found in specified file." -msgstr "Nessuna informazione per le facce trovata nel file specificato." +#: ../src/widgets/stroke-style.cpp:194 +msgctxt "Stroke width" +msgid "_Width:" +msgstr "_Larghezza:" -#: ../share/extensions/polyhedron_3d.py:337 -msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" -msgstr "" -"Selezionare \"Specificato allo spigolo\" nella scheda «File modello».\n" +#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:239 +msgid "Miter join" +msgstr "Spigolo vivo" -#: ../share/extensions/polyhedron_3d.py:343 -msgid "No edge data found in specified file." -msgstr "Nessuna informazione per gli spigoli trovata nel file specificato." +#. TRANSLATORS: Round join: joining lines with a rounded corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:247 +msgid "Round join" +msgstr "Spigolo arrotondato" -#: ../share/extensions/polyhedron_3d.py:344 -msgid "Try selecting \"Face Specified\" in the Model File tab.\n" -msgstr "Selezionare \"Specificato alla faccia\" nella scheda «File modello».\n" +#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:255 +msgid "Bevel join" +msgstr "Spigolo tagliato" -#. we cannot generate a list of faces from the edges without a lot of computation -#: ../share/extensions/polyhedron_3d.py:522 -msgid "" -"Face Data Not Found. Ensure file contains face data, and check the file is " -"imported as \"Face-Specified\" under the \"Model File\" tab.\n" -msgstr "" -"Informazioni sulle facce non trovate. Verificare che il file contenga " -"informazioni per le facce e che il file sia importato come \"Specificato " -"alla faccia\" nella scheda «File modello».\n" +#: ../src/widgets/stroke-style.cpp:280 +msgid "Miter _limit:" +msgstr "Spigo_lositĂ :" -#: ../share/extensions/polyhedron_3d.py:524 -msgid "Internal Error. No view type selected\n" -msgstr "Errore interno. Nessun tipo di dato selezionato\n" +#. Cap type +#. TRANSLATORS: cap type specifies the shape for the ends of lines +#. spw_label(t, _("_Cap:"), 0, i); +#: ../src/widgets/stroke-style.cpp:296 +msgid "Cap:" +msgstr "Estremi:" -#: ../share/extensions/print_win32_vector.py:41 -msgid "sorry, this will run only on Windows, exiting..." -msgstr "" +#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point +#. of the line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:307 +msgid "Butt cap" +msgstr "Estremo geometrico" -#: ../share/extensions/print_win32_vector.py:179 -#, fuzzy -msgid "Failed to open default printer" -msgstr "Impossibile impostare CairoRenderContext" +#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the +#. line; the ends of the line are rounded +#: ../src/widgets/stroke-style.cpp:314 +msgid "Round cap" +msgstr "Estremo arrotondato" -#: ../share/extensions/render_barcode_datamatrix.py:202 -msgid "Unrecognised DataMatrix size" -msgstr "" +#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the +#. line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:321 +msgid "Square cap" +msgstr "Estremo squadrato" -#. we have an invalid bit value -#: ../share/extensions/render_barcode_datamatrix.py:643 -msgid "Invalid bit value, this is a bug!" -msgstr "" +#. Dash +#: ../src/widgets/stroke-style.cpp:326 +msgid "Dashes:" +msgstr "Tratteggio:" -#. abort if converting blank text -#: ../share/extensions/render_barcode_datamatrix.py:678 -msgid "Please enter an input string" -msgstr "" +#. Drop down marker selectors +#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes +#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. +#: ../src/widgets/stroke-style.cpp:352 +msgid "Markers:" +msgstr "Delimitatori:" -#. abort if converting blank text -#: ../share/extensions/render_barcode_qrcode.py:1054 -#, fuzzy -msgid "Please enter an input text" -msgstr "Bisogna inserire il nome del file" +#: ../src/widgets/stroke-style.cpp:358 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "" +"I delimitatori iniziali vengon disegnati sul primo nodo di un tracciato o " +"forma" -#: ../share/extensions/replace_font.py:133 +#: ../src/widgets/stroke-style.cpp:367 msgid "" -"Couldn't find anything using that font, please ensure the spelling and " -"spacing is correct." +"Mid Markers are drawn on every node of a path or shape except the first and " +"last nodes" msgstr "" +"I delimitatori di mezzo vengon disegnati su tutti i nodi di un tracciato o " +"forma, tranne il primo e l'utimo" -#: ../share/extensions/replace_font.py:140 -#: ../share/extensions/svg_and_media_zip_output.py:193 -msgid "Didn't find any fonts in this document/selection." +#: ../src/widgets/stroke-style.cpp:376 +msgid "End Markers are drawn on the last node of a path or shape" msgstr "" +"I delimitatori finali vengon disegnati sull'ultimo nodo di un tracciato o " +"forma" -#: ../share/extensions/replace_font.py:143 -#: ../share/extensions/svg_and_media_zip_output.py:196 -#, python-format -msgid "Found the following font only: %s" -msgstr "" +#: ../src/widgets/stroke-style.cpp:494 +msgid "Set markers" +msgstr "Imposta delimitatori" -#: ../share/extensions/replace_font.py:145 -#: ../share/extensions/svg_and_media_zip_output.py:198 -#, python-format -msgid "" -"Found the following fonts:\n" -"%s" -msgstr "" +#: ../src/widgets/stroke-style.cpp:1024 ../src/widgets/stroke-style.cpp:1109 +msgid "Set stroke style" +msgstr "Imposta stile contorno" -#: ../share/extensions/replace_font.py:196 +#: ../src/widgets/stroke-style.cpp:1197 #, fuzzy -msgid "There was nothing selected" -msgstr "Nessuna selezione" +msgid "Set marker color" +msgstr "Imposta colore contorno" -#: ../share/extensions/replace_font.py:244 -msgid "Please enter a search string in the find box." -msgstr "" +#: ../src/widgets/swatch-selector.cpp:137 +#, fuzzy +msgid "Change swatch color" +msgstr "Gradiente lineare di contorno" -#: ../share/extensions/replace_font.py:248 -msgid "Please enter a replacement font in the replace with box." -msgstr "" +#: ../src/widgets/text-toolbar.cpp:169 +msgid "Text: Change font family" +msgstr "Testo: Cambia font" -#: ../share/extensions/replace_font.py:253 -msgid "Please enter a replacement font in the replace all box." -msgstr "" +#: ../src/widgets/text-toolbar.cpp:233 +msgid "Text: Change font size" +msgstr "Testo: Cambia dimensione carattere" -#: ../share/extensions/summersnight.py:44 -msgid "" -"This extension requires two selected paths. \n" -"The second path must be exactly four nodes long." +#: ../src/widgets/text-toolbar.cpp:271 +msgid "Text: Change font style" +msgstr "Testo: Cambia stile" + +#: ../src/widgets/text-toolbar.cpp:349 +msgid "Text: Change superscript or subscript" msgstr "" -"Questa estensione richiede due tracciati selezionati. \n" -"Il secondo tracciato deve essere lungo esattamente quattro nodi." -#: ../share/extensions/svg_and_media_zip_output.py:128 -#, python-format -msgid "Could not locate file: %s" -msgstr "Impossibile trovare il file: %s" +#: ../src/widgets/text-toolbar.cpp:494 +msgid "Text: Change alignment" +msgstr "Testo: Cambia allineamento" -#: ../share/extensions/svgcalendar.py:266 -#: ../share/extensions/svgcalendar.py:288 +#: ../src/widgets/text-toolbar.cpp:537 #, fuzzy -msgid "You must select a correct system encoding." -msgstr "Occorre selezionare almeno due elementi." - -#: ../share/extensions/uniconv-ext.py:56 -#: ../share/extensions/uniconv_output.py:122 -msgid "You need to install the UniConvertor software.\n" -msgstr "Ă necessario installare il programma UniConvertor.\n" +msgid "Text: Change line-height" +msgstr "Testo: Cambia allineamento" -#: ../share/extensions/voronoi2svg.py:215 +#: ../src/widgets/text-toolbar.cpp:586 #, fuzzy -msgid "Please select objects!" -msgstr "Duplica gli oggetti selezionati" - -#: ../share/extensions/web-set-att.py:58 -#: ../share/extensions/web-transmit-att.py:54 -msgid "You must select at least two elements." -msgstr "Occorre selezionare almeno due elementi." - -#: ../share/extensions/webslicer_create_group.py:57 -msgid "" -"You must create and select some \"Slicer rectangles\" before trying to group." -msgstr "" +msgid "Text: Change word-spacing" +msgstr "Testo: Cambia orientamento" -#: ../share/extensions/webslicer_create_group.py:72 -msgid "" -"You must to select some \"Slicer rectangles\" or other \"Layout groups\"." -msgstr "" +#: ../src/widgets/text-toolbar.cpp:627 +#, fuzzy +msgid "Text: Change letter-spacing" +msgstr "Espandi spaziatura lettere" -#: ../share/extensions/webslicer_create_group.py:76 -#, python-format -msgid "Oops... The element \"%s\" is not in the Web Slicer layer" -msgstr "" +#: ../src/widgets/text-toolbar.cpp:667 +#, fuzzy +msgid "Text: Change dx (kern)" +msgstr "Testo: Cambia dimensione carattere" -#: ../share/extensions/webslicer_export.py:57 -msgid "You must give a directory to export the slices." -msgstr "" +#: ../src/widgets/text-toolbar.cpp:701 +#, fuzzy +msgid "Text: Change dy" +msgstr "Testo: Cambia stile" -#: ../share/extensions/webslicer_export.py:69 -#, fuzzy, python-format -msgid "Can't create \"%s\"." -msgstr "" -"Impossibile creare il file %s.\n" -"%s" +#: ../src/widgets/text-toolbar.cpp:736 +#, fuzzy +msgid "Text: Change rotate" +msgstr "Testo: Cambia stile" -#: ../share/extensions/webslicer_export.py:70 -#, fuzzy, python-format -msgid "Error: %s" -msgstr "Errori" +#: ../src/widgets/text-toolbar.cpp:784 +msgid "Text: Change orientation" +msgstr "Testo: Cambia orientamento" -#: ../share/extensions/webslicer_export.py:73 -#, fuzzy, python-format -msgid "The directory \"%s\" does not exists." -msgstr "La cartella %s non esiste o non è una cartella.\n" +#: ../src/widgets/text-toolbar.cpp:1221 +#, fuzzy +msgid "Font Family" +msgstr "Carattere" -#: ../share/extensions/webslicer_export.py:102 -#, python-format -msgid "You have more than one element with \"%s\" html-id." -msgstr "" +#: ../src/widgets/text-toolbar.cpp:1222 +msgid "Select Font Family (Alt-X to access)" +msgstr "Selezionare famiglia del font (Alt+X per accedervi)" -#: ../share/extensions/webslicer_export.py:332 -msgid "You must install the ImageMagick to get JPG and GIF." +#. Focus widget +#. Enable entry completion +#: ../src/widgets/text-toolbar.cpp:1232 +msgid "Select all text with this font-family" msgstr "" -#. PARAMETER PROCESSING -#. lines of longitude are odd : abort -#: ../share/extensions/wireframe_sphere.py:116 -msgid "Please enter an even number of lines of longitude." +#: ../src/widgets/text-toolbar.cpp:1236 +msgid "Font not found on system" msgstr "" -#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 -#: ../share/extensions/addnodes.inx.h:1 -msgid "Add Nodes" -msgstr "Aggiungi nodi" - -#: ../share/extensions/addnodes.inx.h:2 -#, fuzzy -msgid "Division method:" -msgstr "Metodo di divisione" +#: ../src/widgets/text-toolbar.cpp:1295 +msgid "Font Style" +msgstr "Stile carattere" -#: ../share/extensions/addnodes.inx.h:3 -msgid "By max. segment length" -msgstr "Per lunghezza massima del segmento" +#: ../src/widgets/text-toolbar.cpp:1296 +msgid "Font style" +msgstr "Stile carattere" -#: ../share/extensions/addnodes.inx.h:4 -msgid "By number of segments" -msgstr "Per numero di segmenti" +#. Name +#: ../src/widgets/text-toolbar.cpp:1313 +msgid "Toggle Superscript" +msgstr "Abilita apice" -#: ../share/extensions/addnodes.inx.h:5 -#, fuzzy -msgid "Maximum segment length (px):" -msgstr "Lunghezza massima del segmento (px)" +#. Label +#: ../src/widgets/text-toolbar.cpp:1314 +msgid "Toggle superscript" +msgstr "Abilita apice" -#: ../share/extensions/addnodes.inx.h:6 -#, fuzzy -msgid "Number of segments:" -msgstr "Numero di segmenti" +#. Name +#: ../src/widgets/text-toolbar.cpp:1326 +msgid "Toggle Subscript" +msgstr "Abilita pedice" -#: ../share/extensions/addnodes.inx.h:7 -#: ../share/extensions/convert2dashes.inx.h:2 -#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 -#: ../share/extensions/fractalize.inx.h:4 -#: ../share/extensions/interp_att_g.inx.h:29 -#: ../share/extensions/markers_strokepaint.inx.h:13 -#: ../share/extensions/perspective.inx.h:2 -#: ../share/extensions/pixelsnap.inx.h:3 -#: ../share/extensions/radiusrand.inx.h:10 -#: ../share/extensions/rubberstretch.inx.h:6 -#: ../share/extensions/straightseg.inx.h:4 -#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 -msgid "Modify Path" -msgstr "Modifica tracciato" +#. Label +#: ../src/widgets/text-toolbar.cpp:1327 +msgid "Toggle subscript" +msgstr "Abilita pedice" -#: ../share/extensions/ai_input.inx.h:1 -msgid "AI 8.0 Input" -msgstr "Input AI 8.0" +#: ../src/widgets/text-toolbar.cpp:1368 +msgid "Justify" +msgstr "Giustifica" -#: ../share/extensions/ai_input.inx.h:2 -msgid "Adobe Illustrator 8.0 and below (*.ai)" -msgstr "Adobe Illustrator 8.0 e precedenti (*.ai)" +#. Name +#: ../src/widgets/text-toolbar.cpp:1375 +msgid "Alignment" +msgstr "Allineamento" -#: ../share/extensions/ai_input.inx.h:3 -msgid "Open files saved with Adobe Illustrator 8.0 or older" -msgstr "Apre file salvati con Adobe Illustrator 8.0 o piĂą vecchi" +#. Label +#: ../src/widgets/text-toolbar.cpp:1376 +msgid "Text alignment" +msgstr "Allineamento testo" -#: ../share/extensions/aisvg.inx.h:1 -msgid "AI SVG Input" -msgstr "Input AI SVG" +#: ../src/widgets/text-toolbar.cpp:1403 +msgid "Horizontal" +msgstr "Orizzontale" -#: ../share/extensions/aisvg.inx.h:2 -msgid "Adobe Illustrator SVG (*.ai.svg)" -msgstr "Adobe Illustrator SVG (*.ai.svg)" +#: ../src/widgets/text-toolbar.cpp:1410 +msgid "Vertical" +msgstr "Verticale" -#: ../share/extensions/aisvg.inx.h:3 -msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" -msgstr "Rimuove le impuritĂ  dagli SVG di Adobe Illustrator prima di aprirli" +#. Label +#: ../src/widgets/text-toolbar.cpp:1417 +msgid "Text orientation" +msgstr "Orientamento testo" -#: ../share/extensions/ccx_input.inx.h:1 +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1440 #, fuzzy -msgid "Corel DRAW Compressed Exchange files input (UC)" -msgstr " Files input Corel DRAW Compressed Exchange" +msgid "Smaller spacing" +msgstr "Imposta Spaziatura:" -#: ../share/extensions/ccx_input.inx.h:2 +#: ../src/widgets/text-toolbar.cpp:1440 ../src/widgets/text-toolbar.cpp:1471 +#: ../src/widgets/text-toolbar.cpp:1502 #, fuzzy -msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" -msgstr "File Corel DRAW Compressed Exchang (.ccx)" +msgctxt "Text tool" +msgid "Normal" +msgstr "Normale" -#: ../share/extensions/ccx_input.inx.h:3 +#: ../src/widgets/text-toolbar.cpp:1440 #, fuzzy -msgid "Open compressed exchange files saved in Corel DRAW (UC)" -msgstr "File Open compressed exchange salvato con Corel DRAW" +msgid "Larger spacing" +msgstr "Spaziatura linee" -#: ../share/extensions/cdr_input.inx.h:1 +#. name +#: ../src/widgets/text-toolbar.cpp:1445 #, fuzzy -msgid "Corel DRAW Input (UC)" -msgstr "Input Corel DRAW" +msgid "Line Height" +msgstr "Altezza" -#: ../share/extensions/cdr_input.inx.h:2 +#. label +#: ../src/widgets/text-toolbar.cpp:1446 #, fuzzy -msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" -msgstr "File Corel DRAW 7-X4 (*.cdr)" +msgid "Line:" +msgstr "Linea" -#: ../share/extensions/cdr_input.inx.h:3 -#, fuzzy -msgid "Open files saved in Corel DRAW 7-X4 (UC)" -msgstr "Apre file salvati con Corel DRAW 7-X4" +#. short label +#: ../src/widgets/text-toolbar.cpp:1447 +msgid "Spacing between lines (times font size)" +msgstr "Spaziatura tra le linee (volte dimensione carattere)" -#: ../share/extensions/cdt_input.inx.h:1 +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 #, fuzzy -msgid "Corel DRAW templates input (UC)" -msgstr "Input modello Corel DRAW" +msgid "Negative spacing" +msgstr "Imposta Spaziatura:" -#: ../share/extensions/cdt_input.inx.h:2 +#: ../src/widgets/text-toolbar.cpp:1471 ../src/widgets/text-toolbar.cpp:1502 #, fuzzy -msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" -msgstr "File modello Corel DRAW 7-13 (.cdt)" +msgid "Positive spacing" +msgstr "Spaziatura linee" -#: ../share/extensions/cdt_input.inx.h:3 +#. name +#: ../src/widgets/text-toolbar.cpp:1476 #, fuzzy -msgid "Open files saved in Corel DRAW 7-13 (UC)" -msgstr "Apre file salvati con Corel DRAW 7-13" - -#: ../share/extensions/cgm_input.inx.h:1 -msgid "Computer Graphics Metafile files input" -msgstr "File input Computer Graphics Metafile" +msgid "Word spacing" +msgstr "Imposta Spaziatura:" -#: ../share/extensions/cgm_input.inx.h:2 +#. label +#: ../src/widgets/text-toolbar.cpp:1477 #, fuzzy -msgid "Computer Graphics Metafile files (*.cgm)" -msgstr "File Computer Graphics Metafile (.cgm)" +msgid "Word:" +msgstr "ModalitĂ :" -#: ../share/extensions/cgm_input.inx.h:3 -msgid "Open Computer Graphics Metafile files" -msgstr "File Open Computer Graphics Metafile" +#. short label +#: ../src/widgets/text-toolbar.cpp:1478 +msgid "Spacing between words (px)" +msgstr "Spaziatura tra le parole (px)" -#: ../share/extensions/cmx_input.inx.h:1 +#. name +#: ../src/widgets/text-toolbar.cpp:1507 #, fuzzy -msgid "Corel DRAW Presentation Exchange files input (UC)" -msgstr "File input Corel DRAW Presentation Exchange" +msgid "Letter spacing" +msgstr "Imposta Spaziatura:" -#: ../share/extensions/cmx_input.inx.h:2 +#. label +#: ../src/widgets/text-toolbar.cpp:1508 #, fuzzy -msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" -msgstr "File Corel DRAW Presentation Exchange (.cmx)" +msgid "Letter:" +msgstr "Sinistra:" -#: ../share/extensions/cmx_input.inx.h:3 -#, fuzzy -msgid "Open presentation exchange files saved in Corel DRAW (UC)" -msgstr "File Open presentation exchange salvato con Corel DRAW" +#. short label +#: ../src/widgets/text-toolbar.cpp:1509 +msgid "Spacing between letters (px)" +msgstr "Spaziatura tra le lettere (px)" -#: ../share/extensions/color_HSL_adjust.inx.h:1 -#, fuzzy -msgid "HSL Adjust" -msgstr "Modifica HSB" +#. name +#: ../src/widgets/text-toolbar.cpp:1538 +msgid "Kerning" +msgstr "Crenatura" -#: ../share/extensions/color_HSL_adjust.inx.h:3 +#. label +#: ../src/widgets/text-toolbar.cpp:1539 #, fuzzy -msgid "Hue (°)" -msgstr "Rotazione (gradi)" +msgid "Kern:" +msgstr "Nucleo:" -#: ../share/extensions/color_HSL_adjust.inx.h:4 -#, fuzzy -msgid "Random hue" -msgstr "Albero casuale" +#. short label +#: ../src/widgets/text-toolbar.cpp:1540 +msgid "Horizontal kerning (px)" +msgstr "Crenatura orizzontale (px)" -#: ../share/extensions/color_HSL_adjust.inx.h:6 -#, fuzzy, no-c-format -msgid "Saturation (%)" -msgstr "Saturazione" +#. name +#: ../src/widgets/text-toolbar.cpp:1569 +msgid "Vertical Shift" +msgstr "Spostamento verticale" -#: ../share/extensions/color_HSL_adjust.inx.h:7 +#. label +#: ../src/widgets/text-toolbar.cpp:1570 #, fuzzy -msgid "Random saturation" -msgstr "Modifica saturazione" +msgid "Vert:" +msgstr "Inverti:" -#: ../share/extensions/color_HSL_adjust.inx.h:9 -#, fuzzy, no-c-format -msgid "Lightness (%)" -msgstr "LuminositĂ " +#. short label +#: ../src/widgets/text-toolbar.cpp:1571 +msgid "Vertical shift (px)" +msgstr "Spostamento verticale (px)" -#: ../share/extensions/color_HSL_adjust.inx.h:10 +#. name +#: ../src/widgets/text-toolbar.cpp:1600 #, fuzzy -msgid "Random lightness" -msgstr "LuminositĂ " - -#: ../share/extensions/color_HSL_adjust.inx.h:13 -#, no-c-format -msgid "" -"Adjusts hue, saturation and lightness in the HSL representation of the " -"selected objects's color.\n" -"Options:\n" -" * Hue: rotate by degrees (wraps around).\n" -" * Saturation: add/subtract % (min=-100, max=100).\n" -" * Lightness: add/subtract % (min=-100, max=100).\n" -" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" -" " -msgstr "" +msgid "Letter rotation" +msgstr "Imposta Spaziatura:" -#: ../share/extensions/color_blackandwhite.inx.h:1 +#. label +#: ../src/widgets/text-toolbar.cpp:1601 #, fuzzy -msgid "Black and White" -msgstr "Solo bianco e nero" +msgid "Rot:" +msgstr "Ruolo:" -#: ../share/extensions/color_blackandwhite.inx.h:2 -msgid "Threshold Color (1-255):" -msgstr "" +#. short label +#: ../src/widgets/text-toolbar.cpp:1602 +msgid "Character rotation (degrees)" +msgstr "Rotazione carattere (gradi)" -#: ../share/extensions/color_brighter.inx.h:1 -msgid "Brighter" -msgstr "Schiarisci" +#: ../src/widgets/toolbox.cpp:182 +msgid "Color/opacity used for color tweaking" +msgstr "Colore/opacitĂ  usato per il ritocco del colore" -#: ../share/extensions/color_custom.inx.h:1 -#, fuzzy -msgctxt "Custom color extension" -msgid "Custom" -msgstr "Personalizzata" +#: ../src/widgets/toolbox.cpp:190 +msgid "Style of new stars" +msgstr "Stile dei nuovi poligoni" -#: ../share/extensions/color_custom.inx.h:3 -#, fuzzy -msgid "Red Function:" -msgstr "Funzione rosso" +#: ../src/widgets/toolbox.cpp:192 +msgid "Style of new rectangles" +msgstr "Stile dei nuovi rettangoli" -#: ../share/extensions/color_custom.inx.h:4 -#, fuzzy -msgid "Green Function:" -msgstr "Funzione verde" +#: ../src/widgets/toolbox.cpp:194 +msgid "Style of new 3D boxes" +msgstr "Stile dei nuovi solidi 3D" -#: ../share/extensions/color_custom.inx.h:5 -#, fuzzy -msgid "Blue Function:" -msgstr "Funzione blu" +#: ../src/widgets/toolbox.cpp:196 +msgid "Style of new ellipses" +msgstr "Stile delle nuove ellissi" -#: ../share/extensions/color_custom.inx.h:6 -msgid "Input (r,g,b) Color Range:" -msgstr "" +#: ../src/widgets/toolbox.cpp:198 +msgid "Style of new spirals" +msgstr "Stile delle nuove spirali" -#: ../share/extensions/color_custom.inx.h:8 -msgid "" -"Allows you to evaluate different functions for each channel.\n" -"r, g and b are the normalized values of the red, green and blue channels. " -"The resulting RGB values are automatically clamped.\n" -" \n" -"Example (half the red, swap green and blue):\n" -" Red Function: r*0.5 \n" -" Green Function: b \n" -" Blue Function: g" -msgstr "" +#: ../src/widgets/toolbox.cpp:200 +msgid "Style of new paths created by Pencil" +msgstr "Stile dei nuovi tracciati creati con il «Pastello»" -#: ../share/extensions/color_darker.inx.h:1 -msgid "Darker" -msgstr "Scurisci" +#: ../src/widgets/toolbox.cpp:202 +msgid "Style of new paths created by Pen" +msgstr "Stile dei nuovi tracciati creati con la «Penna»" -#: ../share/extensions/color_desaturate.inx.h:1 -msgid "Desaturate" -msgstr "Desatura" +#: ../src/widgets/toolbox.cpp:204 +msgid "Style of new calligraphic strokes" +msgstr "Stile delle nuove linee calligrafiche" -#: ../share/extensions/color_grayscale.inx.h:1 -#: ../share/extensions/webslicer_create_rect.inx.h:15 -msgid "Grayscale" -msgstr "Scala di grigi" +#: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 +msgid "TBD" +msgstr "Da definire" -#: ../share/extensions/color_lesshue.inx.h:1 -msgid "Less Hue" -msgstr "Minor colore" +#: ../src/widgets/toolbox.cpp:220 +msgid "Style of Paint Bucket fill objects" +msgstr "Stile dei nuovi oggetti creati con il «Secchiello»" -#: ../share/extensions/color_lesslight.inx.h:1 -msgid "Less Light" -msgstr "Minor luminositĂ " +#: ../src/widgets/toolbox.cpp:1682 +msgid "Bounding box" +msgstr "Riquadri" -#: ../share/extensions/color_lesssaturation.inx.h:1 -msgid "Less Saturation" -msgstr "Minor saturazione" +#: ../src/widgets/toolbox.cpp:1682 +msgid "Snap bounding boxes" +msgstr "Aggancia angoli riquadri" -#: ../share/extensions/color_morehue.inx.h:1 -msgid "More Hue" -msgstr "Maggior colore" +#: ../src/widgets/toolbox.cpp:1691 +msgid "Bounding box edges" +msgstr "Margini riquadri" -#: ../share/extensions/color_morelight.inx.h:1 -msgid "More Light" -msgstr "Maggior luminositĂ " +#: ../src/widgets/toolbox.cpp:1691 +msgid "Snap to edges of a bounding box" +msgstr "Aggancia ai bordi dei riquadri" -#: ../share/extensions/color_moresaturation.inx.h:1 -msgid "More Saturation" -msgstr "Maggior saturazione" +#: ../src/widgets/toolbox.cpp:1700 +msgid "Bounding box corners" +msgstr "Angoli riquadri" -#: ../share/extensions/color_negative.inx.h:1 -msgid "Negative" -msgstr "Negativo" +#: ../src/widgets/toolbox.cpp:1700 +msgid "Snap bounding box corners" +msgstr "Aggancia angoli riquadri" -#: ../share/extensions/color_randomize.inx.h:1 -#: ../share/extensions/render_alphabetsoup.inx.h:4 -msgid "Randomize" -msgstr "CasualitĂ " +#: ../src/widgets/toolbox.cpp:1709 +msgid "BBox Edge Midpoints" +msgstr "MetĂ  margine riquadro" -#: ../share/extensions/color_randomize.inx.h:7 -msgid "" -"Converts to HSL, randomizes hue and/or saturation and/or lightness and " -"converts it back to RGB." -msgstr "" +#: ../src/widgets/toolbox.cpp:1709 +msgid "Snap midpoints of bounding box edges" +msgstr "Aggancia a e con le metĂ  dei bordi dei riquadri" -#: ../share/extensions/color_removeblue.inx.h:1 -msgid "Remove Blue" -msgstr "Rimuovi blu" +#: ../src/widgets/toolbox.cpp:1719 +msgid "BBox Centers" +msgstr "Centri riquadri" -#: ../share/extensions/color_removegreen.inx.h:1 -msgid "Remove Green" -msgstr "Rimuovi verde" +#: ../src/widgets/toolbox.cpp:1719 +msgid "Snapping centers of bounding boxes" +msgstr "Aggancia a e con i centri dei riquadri" -#: ../share/extensions/color_removered.inx.h:1 -msgid "Remove Red" -msgstr "Rimuovi rosso" +#: ../src/widgets/toolbox.cpp:1728 +msgid "Snap nodes, paths, and handles" +msgstr "Aggancia nodi, tracciati e maniglie" -#: ../share/extensions/color_replace.inx.h:1 -msgid "Replace color" -msgstr "Rimpiazza colore" +#: ../src/widgets/toolbox.cpp:1736 +msgid "Snap to paths" +msgstr "Aggancia ai tracciati" -#: ../share/extensions/color_replace.inx.h:2 -msgid "Replace color (RRGGBB hex):" -msgstr "Rimpiazza colore (RRGGBB esadecimale):" +#: ../src/widgets/toolbox.cpp:1745 +msgid "Path intersections" +msgstr "Intersezione tracciati" -#: ../share/extensions/color_replace.inx.h:3 -#, fuzzy -msgid "Color to replace" -msgstr "Colore delle linee della griglia" +#: ../src/widgets/toolbox.cpp:1745 +msgid "Snap to path intersections" +msgstr "Aggancia alle intersezioni dei tracciati" -#: ../share/extensions/color_replace.inx.h:4 -msgid "By color (RRGGBB hex):" -msgstr "Con colore (RRGGBB esadecimale):" +#: ../src/widgets/toolbox.cpp:1754 +msgid "To nodes" +msgstr "Ai nodi" -#: ../share/extensions/color_replace.inx.h:5 -#, fuzzy -msgid "New color" -msgstr "Colore anno" +#: ../src/widgets/toolbox.cpp:1754 +msgid "Snap cusp nodes, incl. rectangle corners" +msgstr "" -#: ../share/extensions/color_rgbbarrel.inx.h:1 -msgid "RGB Barrel" -msgstr "Rotazione canali RGB" +#: ../src/widgets/toolbox.cpp:1763 +msgid "Smooth nodes" +msgstr "Nodi curvi" -#: ../share/extensions/convert2dashes.inx.h:1 -msgid "Convert to Dashes" -msgstr "Converti in tratti" +#: ../src/widgets/toolbox.cpp:1763 +msgid "Snap smooth nodes, incl. quadrant points of ellipses" +msgstr "" -#: ../share/extensions/dhw_input.inx.h:1 +#: ../src/widgets/toolbox.cpp:1772 +msgid "Line Midpoints" +msgstr "MetĂ  linea" + +#: ../src/widgets/toolbox.cpp:1772 #, fuzzy -msgid "DHW file input" -msgstr "Input Windows Metafile" +msgid "Snap midpoints of line segments" +msgstr "Aggancia a e con le metĂ  dei segmenti" -#: ../share/extensions/dhw_input.inx.h:2 -msgid "ACECAD Digimemo File (*.dhw)" -msgstr "" +#: ../src/widgets/toolbox.cpp:1781 +#, fuzzy +msgid "Others" +msgstr "Altro" -#: ../share/extensions/dhw_input.inx.h:3 -msgid "Open files from ACECAD Digimemo" +#: ../src/widgets/toolbox.cpp:1781 +msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../share/extensions/dia.inx.h:1 -msgid "Dia Input" -msgstr "Input Dia" +#: ../src/widgets/toolbox.cpp:1789 +msgid "Object Centers" +msgstr "Centro oggetti" -#: ../share/extensions/dia.inx.h:2 -msgid "" -"The dia2svg.sh script should be installed with your Inkscape distribution. " -"If you do not have it, there is likely to be something wrong with your " -"Inkscape installation." -msgstr "" -"Lo script dia2svg dovrebbe venire installato insieme ad Inkscape.Se non è " -"presente, è probabile che vi sia qualche problema nell'installazione" +#: ../src/widgets/toolbox.cpp:1789 +msgid "Snap centers of objects" +msgstr "Aggancia a e con i centri degli oggetti" -#: ../share/extensions/dia.inx.h:3 -msgid "" -"In order to import Dia files, Dia itself must be installed. You can get Dia " -"at http://live.gnome.org/Dia" -msgstr "" -"Per importare file Dia, Dia deve essere installato. Lo si può reperire " -"presso http://live.gnome.org/Dia/" +#: ../src/widgets/toolbox.cpp:1798 +msgid "Rotation Centers" +msgstr "Centro di rotazione" -#: ../share/extensions/dia.inx.h:4 -msgid "Dia Diagram (*.dia)" -msgstr "Diagramma Dia (*.dia)" +#: ../src/widgets/toolbox.cpp:1798 +msgid "Snap an item's rotation center" +msgstr "Aggancia a e con il centro di rotazione dell'elemento" -#: ../share/extensions/dia.inx.h:5 -msgid "A diagram created with the program Dia" -msgstr "Un diagramma creato con il programma Dia" +#: ../src/widgets/toolbox.cpp:1807 +msgid "Text baseline" +msgstr "Linea base del testo" -#: ../share/extensions/dimension.inx.h:1 -msgid "Dimensions" -msgstr "Dimensioni" +#: ../src/widgets/toolbox.cpp:1807 +msgid "Snap text anchors and baselines" +msgstr "Allinea linee del testo" + +#: ../src/widgets/toolbox.cpp:1817 +msgid "Page border" +msgstr "Bordo pagina" + +#: ../src/widgets/toolbox.cpp:1817 +msgid "Snap to the page border" +msgstr "Aggancia ai bordi della pagina" + +#: ../src/widgets/toolbox.cpp:1826 +msgid "Snap to grids" +msgstr "Aggancia alle griglie" + +#: ../src/widgets/toolbox.cpp:1835 +msgid "Snap guides" +msgstr "Aggancia alle guide" + +#. Width +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(pinch tweak)" +msgstr "(strozzato)" + +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(broad tweak)" +msgstr "(ritocco ampio)" -#: ../share/extensions/dimension.inx.h:2 -#, fuzzy -msgid "X Offset:" -msgstr "Proiezione lungo X" +#: ../src/widgets/tweak-toolbar.cpp:128 +msgid "The width of the tweak area (relative to the visible canvas area)" +msgstr "" +"La larghezza dell'area di ritocco (relativa all'area della tela visibile)" -#: ../share/extensions/dimension.inx.h:3 -#, fuzzy -msgid "Y Offset:" -msgstr "Proiezione lungo Y" +#. Force +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(minimum force)" +msgstr "(forza minima)" -#: ../share/extensions/dimension.inx.h:4 -#, fuzzy -msgid "Bounding box type :" -msgstr "Riquadro da usare:" +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(maximum force)" +msgstr "(forza massima)" -#: ../share/extensions/dimension.inx.h:5 -#, fuzzy -msgid "Geometric" -msgstr "Accrescimento" +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force" +msgstr "Forza" -#: ../share/extensions/dimension.inx.h:6 -#, fuzzy -msgid "Visual" -msgstr "Visualizza tracciato" +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force:" +msgstr "Forza:" -#: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 -#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 -msgid "Visualize Path" -msgstr "Visualizza tracciato" +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "The force of the tweak action" +msgstr "La forza del ritocco" -#: ../share/extensions/dots.inx.h:1 -msgid "Number Nodes" -msgstr "Numera nodi" +#: ../src/widgets/tweak-toolbar.cpp:163 +msgid "Move mode" +msgstr "ModalitĂ  spostamento" -#: ../share/extensions/dots.inx.h:4 -#, fuzzy -msgid "Dot size:" -msgstr "Dimensione punti" +#: ../src/widgets/tweak-toolbar.cpp:164 +msgid "Move objects in any direction" +msgstr "Sposta gli oggetti in qualsiasi direzione" -#: ../share/extensions/dots.inx.h:5 -#, fuzzy -msgid "Starting dot number:" -msgstr "Angolo de" +#: ../src/widgets/tweak-toolbar.cpp:170 +msgid "Move in/out mode" +msgstr "ModalitĂ  spostamento dentro/fuori" -#: ../share/extensions/dots.inx.h:6 -#, fuzzy -msgid "Step:" -msgstr "Scatti" +#: ../src/widgets/tweak-toolbar.cpp:171 +msgid "Move objects towards cursor; with Shift from cursor" +msgstr "Muove oggetti verso il cursore; con Maiusc li allontana" -#: ../share/extensions/dots.inx.h:8 -msgid "" -"This extension replaces the selection's nodes with numbered dots according " -"to the following options:\n" -" * Font size: size of the node number labels (20px, 12pt...).\n" -" * Dot size: diameter of the dots placed at path nodes (10px, 2mm...).\n" -" * Starting dot number: first number in the sequence, assigned to the " -"first node of the path.\n" -" * Step: numbering step between two nodes." -msgstr "" +#: ../src/widgets/tweak-toolbar.cpp:177 +msgid "Move jitter mode" +msgstr "ModalitĂ  spostamento sfalsato" -#: ../share/extensions/draw_from_triangle.inx.h:1 -msgid "Draw From Triangle" -msgstr "Disegna dal triangolo" +#: ../src/widgets/tweak-toolbar.cpp:178 +msgid "Move objects in random directions" +msgstr "Muove oggetti in direzioni casuali" -#: ../share/extensions/draw_from_triangle.inx.h:2 -msgid "Common Objects" -msgstr "Oggetti comuni" +#: ../src/widgets/tweak-toolbar.cpp:184 +msgid "Scale mode" +msgstr "ModalitĂ  ridimensionamento" -#: ../share/extensions/draw_from_triangle.inx.h:3 -msgid "Circumcircle" -msgstr "Circumcerchio" +#: ../src/widgets/tweak-toolbar.cpp:185 +msgid "Shrink objects, with Shift enlarge" +msgstr "Riduce oggetti, con Maiusc allarga" -#: ../share/extensions/draw_from_triangle.inx.h:4 -msgid "Circumcentre" -msgstr "Circocentro" +#: ../src/widgets/tweak-toolbar.cpp:191 +msgid "Rotate mode" +msgstr "ModalitĂ  rotazione" -#: ../share/extensions/draw_from_triangle.inx.h:5 -msgid "Incircle" -msgstr "Incerchio" +#: ../src/widgets/tweak-toolbar.cpp:192 +msgid "Rotate objects, with Shift counterclockwise" +msgstr "Ruota oggetti, con Maiusc in senso antiorario" -#: ../share/extensions/draw_from_triangle.inx.h:6 -msgid "Incentre" -msgstr "Incentro" +#: ../src/widgets/tweak-toolbar.cpp:198 +msgid "Duplicate/delete mode" +msgstr "ModalitĂ  duplicazione/eliminazione" -#: ../share/extensions/draw_from_triangle.inx.h:7 -msgid "Contact Triangle" -msgstr "Triangolo inscritto" +#: ../src/widgets/tweak-toolbar.cpp:199 +msgid "Duplicate objects, with Shift delete" +msgstr "Duplica oggetti, con Maiusc per eliminare" -#: ../share/extensions/draw_from_triangle.inx.h:8 -msgid "Excircles" -msgstr "Cerchio exinscritto" +#: ../src/widgets/tweak-toolbar.cpp:205 +msgid "Push mode" +msgstr "ModalitĂ  distorsione" -#: ../share/extensions/draw_from_triangle.inx.h:9 -msgid "Excentres" -msgstr "Excentro" +#: ../src/widgets/tweak-toolbar.cpp:206 +msgid "Push parts of paths in any direction" +msgstr "Sposta parti di tracciati in ogni direzione" -#: ../share/extensions/draw_from_triangle.inx.h:10 -msgid "Extouch Triangle" -msgstr "Triangolo di Nagel" +#: ../src/widgets/tweak-toolbar.cpp:212 +msgid "Shrink/grow mode" +msgstr "ModalitĂ  riduzione/accrescimento" -#: ../share/extensions/draw_from_triangle.inx.h:11 -msgid "Excentral Triangle" -msgstr "Triangolo exincentro" +#: ../src/widgets/tweak-toolbar.cpp:213 +msgid "Shrink (inset) parts of paths; with Shift grow (outset)" +msgstr "Riduce (intrude) parti di tracciati; con Maiusc accresce (estrude)" -#: ../share/extensions/draw_from_triangle.inx.h:12 -msgid "Orthocentre" -msgstr "Ortocentro" +#: ../src/widgets/tweak-toolbar.cpp:219 +msgid "Attract/repel mode" +msgstr "ModalitĂ  attrazione/repulsione" -#: ../share/extensions/draw_from_triangle.inx.h:13 -msgid "Orthic Triangle" -msgstr "Triangolo ortico" +#: ../src/widgets/tweak-toolbar.cpp:220 +msgid "Attract parts of paths towards cursor; with Shift from cursor" +msgstr "" +"Attrae parte di tracciati verso il cursore; con Maiusc lontano dal cursore" -#: ../share/extensions/draw_from_triangle.inx.h:14 -msgid "Altitudes" -msgstr "Altezza" +#: ../src/widgets/tweak-toolbar.cpp:226 +msgid "Roughen mode" +msgstr "ModalitĂ  increspatura" -#: ../share/extensions/draw_from_triangle.inx.h:15 -msgid "Angle Bisectors" -msgstr "Bisettrice angolo" +#: ../src/widgets/tweak-toolbar.cpp:227 +msgid "Roughen parts of paths" +msgstr "Increspa parti di tracciati" -#: ../share/extensions/draw_from_triangle.inx.h:16 -msgid "Centroid" -msgstr "Centroide" +#: ../src/widgets/tweak-toolbar.cpp:233 +msgid "Color paint mode" +msgstr "ModalitĂ  tinta" -#: ../share/extensions/draw_from_triangle.inx.h:17 -msgid "Nine-Point Centre" -msgstr "Centro di Feuerbach" +#: ../src/widgets/tweak-toolbar.cpp:234 +msgid "Paint the tool's color upon selected objects" +msgstr "Tinteggia gli oggetti selezionati con il colore dello strumento" -#: ../share/extensions/draw_from_triangle.inx.h:18 -msgid "Nine-Point Circle" -msgstr "Cerchio di Feuerbach" +#: ../src/widgets/tweak-toolbar.cpp:240 +msgid "Color jitter mode" +msgstr "ModalitĂ  sfalsamento colore" -#: ../share/extensions/draw_from_triangle.inx.h:19 -msgid "Symmedians" -msgstr "Simmediane" +#: ../src/widgets/tweak-toolbar.cpp:241 +msgid "Jitter the colors of selected objects" +msgstr "Sfalsa i colori degli oggetti selezionati" -#: ../share/extensions/draw_from_triangle.inx.h:20 -msgid "Symmedian Point" -msgstr "Punto simmediano" +#: ../src/widgets/tweak-toolbar.cpp:247 +msgid "Blur mode" +msgstr "ModalitĂ  sfocatura" -#: ../share/extensions/draw_from_triangle.inx.h:21 -msgid "Symmedial Triangle" -msgstr "Triangolo simmediale" +#: ../src/widgets/tweak-toolbar.cpp:248 +msgid "Blur selected objects more; with Shift, blur less" +msgstr "Sfuoca gli oggetti selezionati; con Maiusc, riduce la sfocatura" -#: ../share/extensions/draw_from_triangle.inx.h:22 -msgid "Gergonne Point" -msgstr "Punto di Gergonne" +#: ../src/widgets/tweak-toolbar.cpp:275 +msgid "Channels:" +msgstr "Canali:" -#: ../share/extensions/draw_from_triangle.inx.h:23 -msgid "Nagel Point" -msgstr "Punto di Nagel" +#: ../src/widgets/tweak-toolbar.cpp:287 +msgid "In color mode, act on objects' hue" +msgstr "In modalitĂ  colore, agisce sulla tonalitĂ  dell'oggetto" -#: ../share/extensions/draw_from_triangle.inx.h:24 -msgid "Custom Points and Options" -msgstr "Opzioni e punti personalizzati" +#. TRANSLATORS: "H" here stands for hue +#: ../src/widgets/tweak-toolbar.cpp:291 +msgid "H" +msgstr "H" -#: ../share/extensions/draw_from_triangle.inx.h:25 -msgid "Custom Point Specified By:" -msgstr "Punto particolare specificato da:" +#: ../src/widgets/tweak-toolbar.cpp:303 +msgid "In color mode, act on objects' saturation" +msgstr "In modalitĂ  colore, agisce sulla saturazione dell'oggetto" -#: ../share/extensions/draw_from_triangle.inx.h:26 -#, fuzzy -msgid "Point At:" -msgstr "Punta a" +#. TRANSLATORS: "S" here stands for Saturation +#: ../src/widgets/tweak-toolbar.cpp:307 +msgid "S" +msgstr "S" -#: ../share/extensions/draw_from_triangle.inx.h:27 -msgid "Draw Marker At This Point" -msgstr "Disegna delimitatore in questo punto" +#: ../src/widgets/tweak-toolbar.cpp:319 +msgid "In color mode, act on objects' lightness" +msgstr "In modalitĂ  colore, agisce sulla luminositĂ  dell'oggetto" -#: ../share/extensions/draw_from_triangle.inx.h:28 -msgid "Draw Circle Around This Point" -msgstr "Disegna cerchio attorno a questo punto" +#. TRANSLATORS: "L" here stands for Lightness +#: ../src/widgets/tweak-toolbar.cpp:323 +msgid "L" +msgstr "L" -#: ../share/extensions/draw_from_triangle.inx.h:29 -#: ../share/extensions/wireframe_sphere.inx.h:6 -#, fuzzy -msgid "Radius (px):" -msgstr "Raggio / px" +#: ../src/widgets/tweak-toolbar.cpp:335 +msgid "In color mode, act on objects' opacity" +msgstr "In modalitĂ  colore, agisce sull'opacitĂ  dell'oggetto" -#: ../share/extensions/draw_from_triangle.inx.h:30 -msgid "Draw Isogonal Conjugate" -msgstr "Disegna il coniugato isogonale" +#. TRANSLATORS: "O" here stands for Opacity +#: ../src/widgets/tweak-toolbar.cpp:339 +msgid "O" +msgstr "O" -#: ../share/extensions/draw_from_triangle.inx.h:31 -msgid "Draw Isotomic Conjugate" -msgstr "Disegna il coniugato isotomico" +#. Fidelity +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(rough, simplified)" +msgstr "(grezzo, semplificato)" -#: ../share/extensions/draw_from_triangle.inx.h:32 -msgid "Report this triangle's properties" -msgstr "Mostra le proprietĂ  di questo triangolo" +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(fine, but many nodes)" +msgstr "(buono, ma con molti nodi)" -#: ../share/extensions/draw_from_triangle.inx.h:33 -msgid "Trilinear Coordinates" -msgstr "Coordinate trilineari" +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity" +msgstr "FedeltĂ " -#: ../share/extensions/draw_from_triangle.inx.h:34 -msgid "Triangle Function" -msgstr "Funzione triangolo" +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity:" +msgstr "FedeltĂ :" -#: ../share/extensions/draw_from_triangle.inx.h:36 +#: ../src/widgets/tweak-toolbar.cpp:354 msgid "" -"This extension draws constructions about a triangle defined by the first 3 " -"nodes of a selected path. You may select one of preset objects or create " -"your own ones.\n" -" \n" -"All units are the Inkscape's pixel unit. Angles are all in radians.\n" -"You can specify a point by trilinear coordinates or by a triangle centre " -"function.\n" -"Enter as functions of the side length or angles.\n" -"Trilinear elements should be separated by a colon: ':'.\n" -"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" -"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" -"You can also use the semi-perimeter and area of the triangle as constants. " -"Write 'area' or 'semiperim' for these.\n" -"\n" -"You can use any standard Python math function:\n" -"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" -"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" -"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" -"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" -"cosh(x); sinh(x); tanh(x)\n" -"\n" -"Also available are the inverse trigonometric functions:\n" -"sec(x); csc(x); cot(x)\n" -"\n" -"You can specify the radius of a circle around a custom point using a " -"formula, which may also contain the side lengths, angles, etc. You can also " -"plot the isogonal and isotomic conjugate of the point. Be aware that this " -"may cause a divide-by-zero error for certain points.\n" -" " +"Low fidelity simplifies paths; high fidelity preserves path features but may " +"generate a lot of new nodes" msgstr "" -"Questa estensione disegna costruzioni geometriche partendo da un triangolo " -"definito dai primi 3 nodi del tracciato selezionato. Si può usare un oggetto " -"esistente o crearne un nuovo.\n" -" \n" -"Tutte le dimensioni sono in unitĂ  pixel di Inkscape. Gli angoli sono in " -"radianti.\n" -"Un punto può essere specificato tramite coordinate trilineari o una funzione " -"di centro triangolo.\n" -"Inserire una formula in funzione della lunghezza dei lati o degli angoli.\n" -"I riferimenti trilineari devono essere separati da due punti: \":\".\n" -"La lunghezza dei lati è rappresentata da \"s_a\", \"s_b\" e \"s_c\".\n" -"Gli angolo corrispondenti sono \"a_a\", \"a_b\", e \"a_c\".\n" -"Si può usare anche il semi-perimetro o l'area come costanti per il " -"triangolo, inserendo usando \"area\" o \"semiperim\".\n" -"\n" -"Si possono usare le funzioni matematiche standard di Python:\n" -"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" -"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" -"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" -"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" -"cosh(x); sinh(x); tanh(x)\n" -"\n" -"Sono disponibili inoltre le funzioni trigonometriche inverse:\n" -"sec(x); csc(x); cot(x)\n" -"\n" -"Si può specificare il raggio di un cerchio attorno a un punto specifico " -"usando un formula, che può contenere la lunghezza dei lati, angoli, etc. Si " -"può anche disegnare il coniugato isogonale e isotomico del punto. Attenzione " -"che per alcuni punti questo potrebbe causare un errore dovuto a divisione " -"per zero.\n" -" " - -#: ../share/extensions/dxf_input.inx.h:1 -msgid "DXF Input" -msgstr "Input DXF" +"Una fedeltĂ  bassa rende il tracciato semplificato; una fedeltĂ  alta preserva " +"le caratteristiche del tracciato ma genera molti nuovi nodi" -#: ../share/extensions/dxf_input.inx.h:3 -msgid "Use automatic scaling to size A4" -msgstr "Usa ridimensionamento automatico ad A4" +#: ../src/widgets/tweak-toolbar.cpp:373 +msgid "Use the pressure of the input device to alter the force of tweak action" +msgstr "" +"Usare la pressione del dispositivo di input per alterare l'intensitĂ  del " +"ritocco" -#: ../share/extensions/dxf_input.inx.h:4 +#: ../share/extensions/convert2dashes.py:93 #, fuzzy -msgid "Or, use manual scale factor:" -msgstr "Altrimenti, usare un fattore di scala manuale" - -#: ../share/extensions/dxf_input.inx.h:5 -msgid "Manual x-axis origin (mm):" +msgid "" +"The selected object is not a path.\n" +"Try using the procedure Path->Object to Path." msgstr "" +"Il primo elemento selezionato non è un tracciato.\n" +"Provare prima il procedimento Tracciato → Da oggetto a tracciato." -#: ../share/extensions/dxf_input.inx.h:6 -msgid "Manual y-axis origin (mm):" -msgstr "" +#: ../share/extensions/dimension.py:109 +#, fuzzy +msgid "Please select an object." +msgstr "Duplica gli oggetti selezionati" -#: ../share/extensions/dxf_input.inx.h:7 -msgid "Gcodetools compatible point import" -msgstr "" +#: ../share/extensions/dimension.py:134 +msgid "Unable to process this object. Try changing it into a path first." +msgstr "Impossibile elaborare questo oggetto. Convertirlo prima in tracciato." -#: ../share/extensions/dxf_input.inx.h:8 -#: ../share/extensions/render_barcode_qrcode.inx.h:16 +#. report to the Inkscape console using errormsg +#: ../share/extensions/draw_from_triangle.py:180 #, fuzzy -msgid "Character encoding:" -msgstr "Codifica caratteri" +msgid "Side Length 'a' (px): " +msgstr "Lunghezza lato 'a'/px:" -#: ../share/extensions/dxf_input.inx.h:9 +#: ../share/extensions/draw_from_triangle.py:181 #, fuzzy -msgid "Text Font:" -msgstr "Input testo" +msgid "Side Length 'b' (px): " +msgstr "Lunghezza lato 'b'/px:" -#: ../share/extensions/dxf_input.inx.h:11 +#: ../share/extensions/draw_from_triangle.py:182 #, fuzzy -msgid "" -"- AutoCAD Release 13 and newer.\n" -"- assume dxf drawing is in mm.\n" -"- assume svg drawing is in pixels, at 90 dpi.\n" -"- scale factor and origin apply only to manual scaling.\n" -"- layers are preserved only on File->Open, not Import.\n" -"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." -msgstr "" -"- AutoCAD versione 13 e successive. \n" -"- si assume che il disegno dxf sia in mm. \n" -"- si assume che il disegno svg sia in pixel, a 90 dpi \n" -"- i livelli sono preservati solo tramite File → Apri, non con Importa \n" -"- supporto ai BLOCKS ancora limitato, se necessario usare la funzione " -"«Esplodi blocchi» di AutoCAD." +msgid "Side Length 'c' (px): " +msgstr "Lunghezza lato 'c'/px:" -#: ../share/extensions/dxf_input.inx.h:17 -msgid "AutoCAD DXF R13 (*.dxf)" -msgstr "AutoCAD DXF R13 (*.dxf)" +#: ../share/extensions/draw_from_triangle.py:183 +#, fuzzy +msgid "Angle 'A' (radians): " +msgstr "Angolo 'A'/radianti:" -#: ../share/extensions/dxf_input.inx.h:18 -msgid "Import AutoCAD's Document Exchange Format" -msgstr "Importa AutoCAD's Document Exchange Format" +#: ../share/extensions/draw_from_triangle.py:184 +#, fuzzy +msgid "Angle 'B' (radians): " +msgstr "Angolo 'B'/radianti:" -#: ../share/extensions/dxf_outlines.inx.h:1 -msgid "Desktop Cutting Plotter" -msgstr "Desktop Cutting Plotter" +#: ../share/extensions/draw_from_triangle.py:185 +#, fuzzy +msgid "Angle 'C' (radians): " +msgstr "Angolo 'C'/radianti:" -#: ../share/extensions/dxf_outlines.inx.h:3 +#: ../share/extensions/draw_from_triangle.py:186 #, fuzzy -msgid "use ROBO-Master type of spline output" -msgstr "abilita output ROBO-Master" +msgid "Semiperimeter (px): " +msgstr "Semiperimetro/px:" -#: ../share/extensions/dxf_outlines.inx.h:4 -msgid "use LWPOLYLINE type of line output" -msgstr "" +#: ../share/extensions/draw_from_triangle.py:187 +#, fuzzy +msgid "Area (px^2): " +msgstr "Area /px²" -#: ../share/extensions/dxf_outlines.inx.h:5 -msgid "Base unit" +#: ../share/extensions/dxf_input.py:504 +#, python-format +msgid "" +"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " +"to Release 13 format using QCad." msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:6 -msgid "Character Encoding" -msgstr "Codifica caratteri" - -#: ../share/extensions/dxf_outlines.inx.h:7 -#, fuzzy -msgid "Layer export selection" -msgstr "Elimina la selezione" - -#: ../share/extensions/dxf_outlines.inx.h:8 -#, fuzzy -msgid "Layer match name" -msgstr "Nome del livello:" +#: ../share/extensions/dxf_outlines.py:49 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again." +msgstr "" +"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " +"necessari a quest'estensione. installarli e provare nuovamente." -#: ../share/extensions/dxf_outlines.inx.h:9 -msgid "pt" -msgstr "pt" +#: ../share/extensions/dxf_outlines.py:300 +msgid "" +"Error: Field 'Layer match name' must be filled when using 'By name match' " +"option" +msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:10 -msgid "pc" -msgstr "pc" +#: ../share/extensions/dxf_outlines.py:341 +#, fuzzy, python-format +msgid "Warning: Layer '%s' not found!" +msgstr "Sposta livello in cima" -#: ../share/extensions/dxf_outlines.inx.h:11 -#: ../share/extensions/render_gears.inx.h:7 -msgid "px" -msgstr "px" +#: ../share/extensions/embedimage.py:84 +msgid "" +"No xlink:href or sodipodi:absref attributes found, or they do not point to " +"an existing file! Unable to embed image." +msgstr "" +"Nessun attributo xlink:href o sodipodi:absref trovato, o non afferenti ad un " +"file esistente. Impossibile incorporare l'immagine." -#: ../share/extensions/dxf_outlines.inx.h:12 -#: ../share/extensions/gcodetools_area.inx.h:46 -#: ../share/extensions/gcodetools_dxf_points.inx.h:18 -#: ../share/extensions/gcodetools_engraving.inx.h:24 -#: ../share/extensions/gcodetools_graffiti.inx.h:18 -#: ../share/extensions/gcodetools_lathe.inx.h:39 -#: ../share/extensions/gcodetools_orientation_points.inx.h:11 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 -#: ../share/extensions/render_gears.inx.h:9 -msgid "mm" -msgstr "mm" +#: ../share/extensions/embedimage.py:86 +#, python-format +msgid "Sorry we could not locate %s" +msgstr "Impossibile trovare %s" -#: ../share/extensions/dxf_outlines.inx.h:13 -msgid "cm" -msgstr "cm" +#: ../share/extensions/embedimage.py:111 +#, python-format +msgid "" +"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " +"or image/x-icon" +msgstr "" +"%s non è del tipo image/png, image/jpeg, image/bmp, image/gif, image/tiff, o " +"image/x-icon" -#: ../share/extensions/dxf_outlines.inx.h:14 -msgid "m" -msgstr "m" +#: ../share/extensions/export_gimp_palette.py:16 +msgid "" +"The export_gpl.py module requires PyXML. Please download the latest version " +"from http://pyxml.sourceforge.net/." +msgstr "" +"Il modulo export_gpl.py richiede PyXML. Si può scaricare l'ultima versione " +"da http://pyxml.sourceforge.net/." -#: ../share/extensions/dxf_outlines.inx.h:15 -#: ../share/extensions/gcodetools_area.inx.h:47 -#: ../share/extensions/gcodetools_dxf_points.inx.h:19 -#: ../share/extensions/gcodetools_engraving.inx.h:25 -#: ../share/extensions/gcodetools_graffiti.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:40 -#: ../share/extensions/gcodetools_orientation_points.inx.h:12 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 -#: ../share/extensions/render_gears.inx.h:8 -msgid "in" -msgstr "in" +#: ../share/extensions/extractimage.py:68 +#, python-format +msgid "Image extracted to: %s" +msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:16 -msgid "ft" -msgstr "ft" +#: ../share/extensions/extractimage.py:75 +msgid "Unable to find image data." +msgstr "Impossibile trovare i dati dell'immagine." -#: ../share/extensions/dxf_outlines.inx.h:17 +#: ../share/extensions/extrude.py:43 #, fuzzy -msgid "Latin 1" -msgstr "Satinato" +msgid "Need at least 2 paths selected" +msgstr "Nessuna selezione" -#: ../share/extensions/dxf_outlines.inx.h:18 -msgid "CP 1250" +#: ../share/extensions/funcplot.py:48 +msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:19 -msgid "CP 1252" +#: ../share/extensions/funcplot.py:60 +msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:20 -msgid "UTF 8" +#: ../share/extensions/funcplot.py:315 +#, fuzzy +msgid "Please select a rectangle" +msgstr "Duplica gli oggetti selezionati" + +#: ../share/extensions/gcodetools.py:3321 +#: ../share/extensions/gcodetools.py:4526 +#: ../share/extensions/gcodetools.py:4699 +#: ../share/extensions/gcodetools.py:6232 +#: ../share/extensions/gcodetools.py:6427 +msgid "No paths are selected! Trying to work on all available paths." msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:21 -#, fuzzy -msgid "All (default)" -msgstr "(predefinito)" +#: ../share/extensions/gcodetools.py:3324 +msgid "Noting is selected. Please select something." +msgstr "" -#: ../share/extensions/dxf_outlines.inx.h:22 +#: ../share/extensions/gcodetools.py:3864 #, fuzzy -msgid "Visible only" -msgstr "Colori visibili" +msgid "" +"Directory does not exist! Please specify existing directory at Preferences " +"tab!" +msgstr "La cartella %s non esiste o non è una cartella.\n" -#: ../share/extensions/dxf_outlines.inx.h:23 -msgid "By name match" +#: ../share/extensions/gcodetools.py:3894 +#, fuzzy, python-format +msgid "" +"Can not write to specified file!\n" +"%s" msgstr "" +"Impossibile scrivere il file %s.\n" +"%s" -#: ../share/extensions/dxf_outlines.inx.h:25 -#, fuzzy +#: ../share/extensions/gcodetools.py:4040 +#, python-format msgid "" -"- AutoCAD Release 14 DXF format.\n" -"- The base unit parameter specifies in what unit the coordinates are output " -"(90 px = 1 in).\n" -"- Supported element types\n" -" - paths (lines and splines)\n" -" - rectangles\n" -" - clones (the crossreference to the original is lost)\n" -"- ROBO-Master spline output is a specialized spline readable only by ROBO-" -"Master and AutoDesk viewers, not Inkscape.\n" -"- LWPOLYLINE output is a multiply-connected polyline, disable it to use a " -"legacy version of the LINE output.\n" -"- You can choose to export all layers, only visible ones or by name match " -"(case insensitive and use comma ',' as separator)" +"Orientation points for '%s' layer have not been found! Please add " +"orientation points using Orientation tab!" msgstr "" -"- Formato AutoCAD Release 13.\n" -"- si assume che le unitĂ  svg siano in pixel, a 90 dpi.\n" -"- si assume che le unitĂ  dxf siano in mm.\n" -"- sono supportati solo elementi LWPOLYLINE e SPLINE.\n" -"- l'opzione ROBO-Master genere una spline interpretabile solo da ROBO-Master " -"e lettori AutoDesk, non da Inkscape." -#: ../share/extensions/dxf_outlines.inx.h:34 -#, fuzzy -msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" -msgstr "Desktop Cutting Plotter (R13) (*.dxf)" +#: ../share/extensions/gcodetools.py:4047 +#, python-format +msgid "There are more than one orientation point groups in '%s' layer" +msgstr "" -#: ../share/extensions/dxf_output.inx.h:1 -msgid "DXF Output" -msgstr "Output DXF" +#: ../share/extensions/gcodetools.py:4078 +#: ../share/extensions/gcodetools.py:4080 +msgid "" +"Orientation points are wrong! (if there are two orientation points they " +"should not be the same. If there are three orientation points they should " +"not be in a straight line.)" +msgstr "" -#: ../share/extensions/dxf_output.inx.h:2 -msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" +#: ../share/extensions/gcodetools.py:4250 +#, python-format +msgid "" +"Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " +"be corrupt!" msgstr "" -"pstoedit deve essere installato; consultare http://www.pstoedit.net/pstoedit" -#: ../share/extensions/dxf_output.inx.h:3 -msgid "AutoCAD DXF R12 (*.dxf)" -msgstr "AutoCAD DXF R12 (*.dxf)" +#: ../share/extensions/gcodetools.py:4263 +#, python-format +msgid "" +"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " +"could be corrupt!" +msgstr "" -#: ../share/extensions/dxf_output.inx.h:4 -msgid "DXF file written by pstoedit" -msgstr "File DXF scritto da pstoedit" +#. xgettext:no-pango-format +#: ../share/extensions/gcodetools.py:4284 +msgid "" +"This extension works with Paths and Dynamic Offsets and groups of them only! " +"All other objects will be ignored!\n" +"Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" +"Solution 2: Path->Dynamic offset or Ctrl+J.\n" +"Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " +"and File->Import this file." +msgstr "" -#: ../share/extensions/edge3d.inx.h:1 -msgid "Edge 3D" -msgstr "Bordatura" +#: ../share/extensions/gcodetools.py:4290 +msgid "" +"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" +"+L)" +msgstr "" -#: ../share/extensions/edge3d.inx.h:2 -#, fuzzy -msgid "Illumination Angle:" -msgstr "Angolo illuminazione" +#: ../share/extensions/gcodetools.py:4294 +msgid "" +"Warning! There are some paths in the root of the document, but not in any " +"layer! Using bottom-most layer for them." +msgstr "" -#: ../share/extensions/edge3d.inx.h:3 -#, fuzzy -msgid "Shades:" -msgstr "Ombreggia" +#: ../share/extensions/gcodetools.py:4371 +#, python-format +msgid "" +"Warning! Tool's and default tool's parameter's (%s) types are not the same " +"( type('%s') != type('%s') )." +msgstr "" -#: ../share/extensions/edge3d.inx.h:4 -#, fuzzy -msgid "Only black and white:" -msgstr "Solo bianco e nero" +#: ../share/extensions/gcodetools.py:4374 +#, python-format +msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." +msgstr "" -#: ../share/extensions/edge3d.inx.h:5 -#, fuzzy -msgid "Stroke width:" -msgstr "Larghezza contorno" +#: ../share/extensions/gcodetools.py:4388 +#, python-format +msgid "Layer '%s' contains more than one tool!" +msgstr "" -#: ../share/extensions/edge3d.inx.h:6 -#, fuzzy -msgid "Blur stdDeviation:" -msgstr "Deviazione standard sfocatura" +#: ../share/extensions/gcodetools.py:4391 +#, python-format +msgid "" +"Can not find tool for '%s' layer! Please add one with Tools library tab!" +msgstr "" -#: ../share/extensions/edge3d.inx.h:7 -#, fuzzy -msgid "Blur width:" -msgstr "Larghezza sfocatura" +#: ../share/extensions/gcodetools.py:4553 +#: ../share/extensions/gcodetools.py:4708 +msgid "" +"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" +"+Shift+G) and Object to Path (Ctrl+Shift+C)!" +msgstr "" -#: ../share/extensions/edge3d.inx.h:8 +#: ../share/extensions/gcodetools.py:4667 +msgid "" +"Noting is selected. Please select something to convert to drill point " +"(dxfpoint) or clear point sign." +msgstr "" + +#: ../share/extensions/gcodetools.py:4750 +#: ../share/extensions/gcodetools.py:4996 #, fuzzy -msgid "Blur height:" -msgstr "Altezza sfocatura" +msgid "This extension requires at least one selected path." +msgstr "Questa estensione richiede che vengan selezionati due tracciati." -#: ../share/extensions/embedimage.inx.h:1 -msgid "Embed Images" -msgstr "Incorpora immagini" +#: ../share/extensions/gcodetools.py:4756 +#: ../share/extensions/gcodetools.py:5002 +#, python-format +msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" +msgstr "" -#: ../share/extensions/embedimage.inx.h:2 -#: ../share/extensions/embedselectedimages.inx.h:2 -msgid "Embed only selected images" -msgstr "Incorpora solo le immagini selezionate" +#: ../share/extensions/gcodetools.py:4767 +#: ../share/extensions/gcodetools.py:4956 +#: ../share/extensions/gcodetools.py:5011 +msgid "Warning: omitting non-path" +msgstr "" -#: ../share/extensions/embedselectedimages.inx.h:1 +#: ../share/extensions/gcodetools.py:5511 #, fuzzy -msgid "Embed Selected Images" -msgstr "Incorpora solo le immagini selezionate" - -#: ../share/extensions/empty_page.inx.h:1 -msgid "Empty Page" +msgid "Please select at least one path to engrave and run again." msgstr "" +"Selezionare almeno 1 tracciato per effettuare un'unione booleana." -#: ../share/extensions/empty_page.inx.h:2 -#, fuzzy -msgid "Page size:" -msgstr "Dimensione della p_agina:" +#: ../share/extensions/gcodetools.py:5519 +msgid "Unknown unit selected. mm assumed" +msgstr "" -#: ../share/extensions/empty_page.inx.h:3 -msgid "Page orientation:" -msgstr "Orientamento della pagina:" +#: ../share/extensions/gcodetools.py:5540 +#, python-format +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "" -#: ../share/extensions/eps_input.inx.h:1 -msgid "EPS Input" -msgstr "Input EPS" +#: ../share/extensions/gcodetools.py:5611 +#: ../share/extensions/gcodetools.py:5616 +msgid "csp_normalised_normal error. See log." +msgstr "" -#: ../share/extensions/eqtexsvg.inx.h:1 -#, fuzzy -msgid "LaTeX" -msgstr "Stampa LaTeX" +#: ../share/extensions/gcodetools.py:5804 +msgid "No need to engrave sharp angles." +msgstr "" -#: ../share/extensions/eqtexsvg.inx.h:2 -#, fuzzy -msgid "LaTeX input: " -msgstr "Stampa LaTeX" +#: ../share/extensions/gcodetools.py:5848 +msgid "" +"Active layer already has orientation points! Remove them or select another " +"layer!" +msgstr "" -#: ../share/extensions/eqtexsvg.inx.h:3 -msgid "Additional packages (comma-separated): " +#: ../share/extensions/gcodetools.py:5893 +msgid "Active layer already has a tool! Remove it or select another layer!" msgstr "" -#: ../share/extensions/export_gimp_palette.inx.h:1 -msgid "Export as GIMP Palette" -msgstr "Esporta come tavolozza di GIMP" +#: ../share/extensions/gcodetools.py:6008 +msgid "Selection is empty! Will compute whole drawing." +msgstr "" -#: ../share/extensions/export_gimp_palette.inx.h:2 -msgid "GIMP Palette (*.gpl)" -msgstr "Tavolozza GIMP (*.gpl)" +#: ../share/extensions/gcodetools.py:6062 +msgid "" +"Tutorials, manuals and support can be found at\n" +"English support forum:\n" +"\thttp://www.cnc-club.ru/gcodetools\n" +"and Russian support forum:\n" +"\thttp://www.cnc-club.ru/gcodetoolsru" +msgstr "" -#: ../share/extensions/export_gimp_palette.inx.h:3 -msgid "Exports the colors of this document as GIMP Palette" -msgstr "Esporta i colori di questo documento come tavolozza di GIMP" +#: ../share/extensions/gcodetools.py:6107 +msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." +msgstr "" -#: ../share/extensions/extractimage.inx.h:1 -msgid "Extract Image" -msgstr "Estrai immagine" +#: ../share/extensions/gcodetools.py:6110 +msgid "Lathe X and Z axis remap should be the same. Exiting..." +msgstr "" -#: ../share/extensions/extractimage.inx.h:2 -#, fuzzy -msgid "Path to save image:" -msgstr "Percorso in cui salvare l'immagine" +#: ../share/extensions/gcodetools.py:6662 +#, python-format +msgid "" +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " +"Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" +msgstr "" -#: ../share/extensions/extractimage.inx.h:3 +#: ../share/extensions/gcodetools.py:6668 msgid "" -"* Don't type the file extension, it is appended automatically.\n" -"* A relative path (or a filename without path) is relative to the user's " -"home directory." +"Orientation points have not been defined! A default set of orientation " +"points has been automatically added." msgstr "" -#: ../share/extensions/extrude.inx.h:3 -msgid "Lines" -msgstr "Linee" +#: ../share/extensions/gcodetools.py:6672 +msgid "" +"Cutting tool has not been defined! A default tool has been automatically " +"added." +msgstr "" -#: ../share/extensions/extrude.inx.h:4 -msgid "Polygons" -msgstr "Poligoni" +#: ../share/extensions/generate_voronoi.py:35 +msgid "" +"Failed to import the subprocess module. Please report this as a bug at: " +"https://bugs.launchpad.net/inkscape." +msgstr "" -#: ../share/extensions/fig_input.inx.h:1 -msgid "XFIG Input" -msgstr "Input XFIG" +#: ../share/extensions/generate_voronoi.py:36 +#, fuzzy +msgid "Python version is: " +msgstr "Conversione in guide:" -#: ../share/extensions/fig_input.inx.h:2 -msgid "XFIG Graphics File (*.fig)" -msgstr "File grafico di XFIG (*.fig)" +#: ../share/extensions/generate_voronoi.py:94 +#, fuzzy +msgid "Please select an object" +msgstr "Duplica gli oggetti selezionati" -#: ../share/extensions/fig_input.inx.h:3 -msgid "Open files saved with XFIG" -msgstr "Apre file salvati con XFIG" +#: ../share/extensions/gimp_xcf.py:39 +msgid "Gimp must be installed and set in your path variable." +msgstr "" -#: ../share/extensions/flatten.inx.h:1 -msgid "Flatten Beziers" -msgstr "Appiattisci bezier" +#: ../share/extensions/gimp_xcf.py:43 +msgid "An error occurred while processing the XCF file." +msgstr "" -#: ../share/extensions/flatten.inx.h:2 +#: ../share/extensions/gimp_xcf.py:177 #, fuzzy -msgid "Flatness:" -msgstr "Appiattimento" +msgid "This extension requires at least one non empty layer." +msgstr "Questa estensione richiede che vengan selezionati due tracciati." -#: ../share/extensions/foldablebox.inx.h:1 -msgid "Foldable Box" -msgstr "Scatola piegabile" +#: ../share/extensions/guillotine.py:250 +msgid "The sliced bitmaps have been saved as:" +msgstr "" -#: ../share/extensions/foldablebox.inx.h:4 +#: ../share/extensions/hpgl_decoder.py:43 #, fuzzy -msgid "Depth:" -msgstr "ProfonditĂ " +msgid "Movements" +msgstr "Muovi gradiente" -#: ../share/extensions/foldablebox.inx.h:5 +#: ../share/extensions/hpgl_decoder.py:44 #, fuzzy -msgid "Paper Thickness:" -msgstr "Spessore carta" +msgid "Pen #" +msgstr "Inerzia pennino" -#: ../share/extensions/foldablebox.inx.h:6 +#. issue error if no hpgl data found +#: ../share/extensions/hpgl_input.py:58 #, fuzzy -msgid "Tab Proportion:" -msgstr "Proporzione schede" +msgid "No HPGL data found." +msgstr "Non arrotondato" -#: ../share/extensions/foldablebox.inx.h:8 -msgid "Add Guide Lines" -msgstr "Aggiungi linee guida" +#: ../share/extensions/hpgl_input.py:66 +msgid "" +"The HPGL data contained unknown (unsupported) commands, there is a " +"possibility that the drawing is missing some content." +msgstr "" -#: ../share/extensions/fractalize.inx.h:1 -msgid "Fractalize" -msgstr "Frattalizza" +#. issue error if no paths found +#: ../share/extensions/hpgl_output.py:58 +msgid "" +"No paths where found. Please convert all objects you want to save into paths." +msgstr "" -#: ../share/extensions/fractalize.inx.h:2 -#, fuzzy -msgid "Subdivisions:" -msgstr "Suddivisione" +#: ../share/extensions/inkex.py:109 +#, fuzzy, python-format +msgid "" +"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " +"this extension. Please download and install the latest version from http://" +"cheeseshop.python.org/pypi/lxml/, or install it through your package manager " +"by a command like: sudo apt-get install python-lxml\n" +"\n" +"Technical details:\n" +"%s" +msgstr "" +"Il modulo lxml d'interfaccia con libxml2 è richiesto da inkex.py e quindi da " +"questa estensione. L'ultima versione può essere scaricata e installata da " +"http://cheeseshop.python.org/pypi/lxml/ o tramite il proprio gestore di " +"pacchetti con un comando simile a `sudo apt-get install python-lxml`" -#: ../share/extensions/funcplot.inx.h:1 -msgid "Function Plotter" -msgstr "Grafico funzione" +#: ../share/extensions/inkex.py:162 +#, fuzzy, python-format +msgid "Unable to open specified file: %s" +msgstr "" +"Impossibile scrivere il file %s.\n" +"%s" -#: ../share/extensions/funcplot.inx.h:2 -msgid "Range and sampling" -msgstr "Intervallo e campionamento" +#: ../share/extensions/inkex.py:171 +#, fuzzy, python-format +msgid "Unable to open object member file: %s" +msgstr "impossibile trovare il delimitatore: %s" -#: ../share/extensions/funcplot.inx.h:3 -#, fuzzy -msgid "Start X value:" -msgstr "Valore iniziale x" +#: ../share/extensions/inkex.py:276 +#, python-format +msgid "No matching node for expression: %s" +msgstr "Nessun nodo corrispondente all'espressione: %s" -#: ../share/extensions/funcplot.inx.h:4 +#: ../share/extensions/interp_att_g.py:167 #, fuzzy -msgid "End X value:" -msgstr "Valore finale di x" +msgid "There is no selection to interpolate" +msgstr "Sposta la selezione in cima" -#: ../share/extensions/funcplot.inx.h:5 -msgid "Multiply X range by 2*pi" -msgstr "Moltiplica l'intervallo X di 2*pi" +#: ../share/extensions/jessyInk_autoTexts.py:45 +#: ../share/extensions/jessyInk_effects.py:50 +#: ../share/extensions/jessyInk_export.py:96 +#: ../share/extensions/jessyInk_keyBindings.py:188 +#: ../share/extensions/jessyInk_masterSlide.py:46 +#: ../share/extensions/jessyInk_mouseHandler.py:48 +#: ../share/extensions/jessyInk_summary.py:64 +#: ../share/extensions/jessyInk_transitions.py:50 +#: ../share/extensions/jessyInk_video.py:49 +#: ../share/extensions/jessyInk_view.py:67 +msgid "" +"The JessyInk script is not installed in this SVG file or has a different " +"version than the JessyInk extensions. Please select \"install/update...\" " +"from the \"JessyInk\" sub-menu of the \"Extensions\" menu to install or " +"update the JessyInk script.\n" +"\n" +msgstr "" -#: ../share/extensions/funcplot.inx.h:6 +#: ../share/extensions/jessyInk_autoTexts.py:48 #, fuzzy -msgid "Y value of rectangle's bottom:" -msgstr "Valore Y per il bordo inferiore del rettangolo" +msgid "" +"To assign an effect, please select an object.\n" +"\n" +msgstr "Duplica gli oggetti selezionati" -#: ../share/extensions/funcplot.inx.h:7 -#, fuzzy -msgid "Y value of rectangle's top:" -msgstr "Valore Y del lato superiore del rettangolo" +#: ../share/extensions/jessyInk_autoTexts.py:54 +#, python-brace-format +msgid "" +"Node with id '{0}' is not a suitable text node and was therefore ignored.\n" +"\n" +msgstr "" -#: ../share/extensions/funcplot.inx.h:8 -#, fuzzy -msgid "Number of samples:" -msgstr "Numero di campioni" +#: ../share/extensions/jessyInk_effects.py:53 +msgid "" +"No object selected. Please select the object you want to assign an effect to " +"and then press apply.\n" +msgstr "" -#: ../share/extensions/funcplot.inx.h:9 -#: ../share/extensions/param_curves.inx.h:11 -msgid "Isotropic scaling" +#: ../share/extensions/jessyInk_export.py:82 +msgid "Could not find Inkscape command.\n" msgstr "" -#: ../share/extensions/funcplot.inx.h:10 -msgid "Use polar coordinates" -msgstr "Coordinate del cursore" +#: ../share/extensions/jessyInk_masterSlide.py:56 +msgid "Layer not found. Removed current master slide selection.\n" +msgstr "" -#: ../share/extensions/funcplot.inx.h:11 -#: ../share/extensions/param_curves.inx.h:12 -#, fuzzy +#: ../share/extensions/jessyInk_masterSlide.py:58 msgid "" -"When set, Isotropic scaling uses smallest of width/xrange or height/yrange" +"More than one layer with this name found. Removed current master slide " +"selection.\n" msgstr "" -"Ridimensionamento isotropico (usa minima altezza/range-y o larghezza/range-y)" -#: ../share/extensions/funcplot.inx.h:12 -#: ../share/extensions/param_curves.inx.h:13 -msgid "Use" -msgstr "Uso" +#: ../share/extensions/jessyInk_summary.py:69 +#, python-brace-format +msgid "JessyInk script version {0} installed." +msgstr "" -#: ../share/extensions/funcplot.inx.h:13 +#: ../share/extensions/jessyInk_summary.py:71 +msgid "JessyInk script installed." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:83 #, fuzzy msgid "" -"Select a rectangle before calling the extension,\n" -"it will determine X and Y scales. If you wish to fill the area, then add x-" -"axis endpoints.\n" "\n" -"With polar coordinates:\n" -" Start and end X values define the angle range in radians.\n" -" X scale is set so that left and right edges of rectangle are at +/-1.\n" -" Isotropic scaling is disabled.\n" -" First derivative is always determined numerically." -msgstr "" -"Selezionare un rettangolo prima di applicare l'effetto,\n" -"servirĂ  a determinare le scale per la x e per la y.\n" -"In caso di coordinate polari:\n" -" i valori iniziali e finali della x definiscono l'intervallo dell'angolo " -"(in radianti).\n" -" La scala di x è impostata in modo tale che i margini sinistro e destro del " -"rettangolo sono a +/-1. \n" -" Il ridimensionamento isotropico è disabilitato. \n" -" La prima derivata è sempre determinata numericamente." - -#: ../share/extensions/funcplot.inx.h:21 -#: ../share/extensions/param_curves.inx.h:16 -msgid "Functions" -msgstr "Funzioni" +"Master slide:" +msgstr "Incolla dimensione" -#: ../share/extensions/funcplot.inx.h:22 -#: ../share/extensions/param_curves.inx.h:17 +#: ../share/extensions/jessyInk_summary.py:89 msgid "" -"Standard Python math functions are available:\n" "\n" -"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" -"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" -"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" -"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" -"cosh(x); sinh(x); tanh(x).\n" -"\n" -"The constants pi and e are also available." +"Slide {0!s}:" msgstr "" -"Le seguenti funzioni matematiche standard di python sono disponibili: ceil" -"(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); " -"log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); " -"atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh" -"(x); sinh(x); tanh(x).\n" -" \n" -"Sono disponibili anche le costanti «pi» ed «e»." - -#: ../share/extensions/funcplot.inx.h:31 -#, fuzzy -msgid "Function:" -msgstr "Funzione" -#: ../share/extensions/funcplot.inx.h:32 -msgid "Calculate first derivative numerically" -msgstr "Calcola numericamente la derivata prima" +#: ../share/extensions/jessyInk_summary.py:94 +#, fuzzy, python-brace-format +msgid "{0}Layer name: {1}" +msgstr "Nome del livello:" -#: ../share/extensions/funcplot.inx.h:33 -#, fuzzy -msgid "First derivative:" -msgstr "Derivata prima" +#: ../share/extensions/jessyInk_summary.py:102 +msgid "{0}Transition in: {1} ({2!s} s)" +msgstr "" -#: ../share/extensions/funcplot.inx.h:34 -#, fuzzy -msgid "Clip with rectangle" -msgstr "Larghezza del rettangolo" +#: ../share/extensions/jessyInk_summary.py:104 +#, fuzzy, python-brace-format +msgid "{0}Transition in: {1}" +msgstr "Trasformazione" -#: ../share/extensions/funcplot.inx.h:35 -#: ../share/extensions/param_curves.inx.h:28 -msgid "Remove rectangle" -msgstr "Rimuovi rettangolo" +#: ../share/extensions/jessyInk_summary.py:111 +msgid "{0}Transition out: {1} ({2!s} s)" +msgstr "" -#: ../share/extensions/funcplot.inx.h:36 -#: ../share/extensions/param_curves.inx.h:29 -msgid "Draw Axes" -msgstr "Disegna assi" +#: ../share/extensions/jessyInk_summary.py:113 +#, fuzzy, python-brace-format +msgid "{0}Transition out: {1}" +msgstr "Incolla effetto su tracciato" -#: ../share/extensions/funcplot.inx.h:37 -msgid "Add x-axis endpoints" +#: ../share/extensions/jessyInk_summary.py:120 +#, python-brace-format +msgid "" +"\n" +"{0}Auto-texts:" msgstr "" -#: ../share/extensions/gcodetools_about.inx.h:1 -msgid "About" +#: ../share/extensions/jessyInk_summary.py:123 +#, python-brace-format +msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." msgstr "" -#: ../share/extensions/gcodetools_about.inx.h:2 +#: ../share/extensions/jessyInk_summary.py:168 +#, python-brace-format msgid "" -"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " -"is a special format which is used in most of CNC machines. So Gcodetools " -"allows you to use Inkscape as CAM program. It can be use with a lot of " -"machine types: Mills Lathes Laser and Plasma cutters and engravers Mill " -"engravers Plotters etc. To get more info visit developers page at http://www." -"cnc-club.ru/gcodetools" +"\n" +"{0}Initial effect (order number {1}):" msgstr "" -#: ../share/extensions/gcodetools_about.inx.h:4 -#: ../share/extensions/gcodetools_area.inx.h:54 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 -#: ../share/extensions/gcodetools_dxf_points.inx.h:26 -#: ../share/extensions/gcodetools_engraving.inx.h:32 -#: ../share/extensions/gcodetools_graffiti.inx.h:43 -#: ../share/extensions/gcodetools_lathe.inx.h:47 -#: ../share/extensions/gcodetools_orientation_points.inx.h:15 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 -#: ../share/extensions/gcodetools_tools_library.inx.h:13 +#: ../share/extensions/jessyInk_summary.py:170 msgid "" -"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " -"makes offset paths and engraves sharp corners using cone cutters. This plug-" -"in calculates Gcode for paths using circular interpolation or linear motion " -"when needed. Tutorials, manuals and support can be found at English support " -"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" -"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " -"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +"\n" +"{0}Effect {1!s} (order number {2}):" msgstr "" -#: ../share/extensions/gcodetools_about.inx.h:5 -#: ../share/extensions/gcodetools_area.inx.h:55 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:5 -#: ../share/extensions/gcodetools_dxf_points.inx.h:27 -#: ../share/extensions/gcodetools_engraving.inx.h:33 -#: ../share/extensions/gcodetools_graffiti.inx.h:44 -#: ../share/extensions/gcodetools_lathe.inx.h:48 -#: ../share/extensions/gcodetools_orientation_points.inx.h:16 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 -#: ../share/extensions/gcodetools_tools_library.inx.h:14 -msgid "Gcodetools" +#: ../share/extensions/jessyInk_summary.py:174 +#, python-brace-format +msgid "{0}\tView will be set according to object \"{1}\"" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:1 -#, fuzzy -msgid "Area" -msgstr "Armeno (hy)" - -#: ../share/extensions/gcodetools_area.inx.h:2 -msgid "Maximum area cutting curves:" +#: ../share/extensions/jessyInk_summary.py:176 +#, python-brace-format +msgid "{0}\tObject \"{1}\"" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:3 +#: ../share/extensions/jessyInk_summary.py:179 #, fuzzy -msgid "Area width:" -msgstr "Imposta larghezza:" +msgid " will appear" +msgstr "Riempie aree delimitate" -#: ../share/extensions/gcodetools_area.inx.h:4 -msgid "Area tool overlap (0..0.9):" +#: ../share/extensions/jessyInk_summary.py:181 +msgid " will disappear" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:5 -msgid "" -"\"Create area offset\": creates several Inkscape path offsets to fill " -"original path's area up to \"Area radius\" value. Outlines start from \"1/2 D" -"\" up to \"Area width\" total width with \"D\" steps where D is taken from " -"the nearest tool definition (\"Tool diameter\" value). Only one offset will " -"be created if the \"Area width\" is equal to \"1/2 D\"." +#: ../share/extensions/jessyInk_summary.py:184 +#, python-brace-format +msgid " using effect \"{0}\"" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:6 -#, fuzzy -msgid "Fill area" -msgstr "Riempie aree delimitate" +#: ../share/extensions/jessyInk_summary.py:187 +msgid " in {0!s} s" +msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:7 +#: ../share/extensions/jessyInk_transitions.py:55 #, fuzzy -msgid "Area fill angle" -msgstr "Angolo sinistro" +msgid "Layer not found.\n" +msgstr "Livello non trovato.\n" -#: ../share/extensions/gcodetools_area.inx.h:8 -msgid "Area fill shift" +#: ../share/extensions/jessyInk_transitions.py:57 +msgid "More than one layer with this name found.\n" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:9 +#: ../share/extensions/jessyInk_transitions.py:70 #, fuzzy -msgid "Filling method" -msgstr "Metodo di divisione" +msgid "Please enter a layer name.\n" +msgstr "Bisogna inserire il nome del file" -#: ../share/extensions/gcodetools_area.inx.h:10 -msgid "Zig zag" +#: ../share/extensions/jessyInk_video.py:54 +#: ../share/extensions/jessyInk_video.py:59 +msgid "" +"Could not obtain the selected layer for inclusion of the video element.\n" +"\n" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:12 -msgid "Area artifacts" +#: ../share/extensions/jessyInk_view.py:75 +#, fuzzy +msgid "More than one object selected. Please select only one object.\n" msgstr "" +"PiĂą di un elemento selezionato. Impossibile prendere lo stile da piĂą " +"oggetti." -#: ../share/extensions/gcodetools_area.inx.h:13 -msgid "Artifact diameter:" +#: ../share/extensions/jessyInk_view.py:79 +msgid "" +"No object selected. Please select the object you want to assign a view to " +"and then press apply.\n" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:14 -#, fuzzy -msgid "Action:" -msgstr "Accelerazione:" +#: ../share/extensions/markers_strokepaint.py:83 +#, python-format +msgid "No style attribute found for id: %s" +msgstr "Nessun attributo style trovato per l'id: %s" -#: ../share/extensions/gcodetools_area.inx.h:15 -msgid "mark with an arrow" -msgstr "" +#: ../share/extensions/markers_strokepaint.py:137 +#, python-format +msgid "unable to locate marker: %s" +msgstr "impossibile trovare il delimitatore: %s" -#: ../share/extensions/gcodetools_area.inx.h:16 +#: ../share/extensions/measure.py:50 #, fuzzy -msgid "mark with style" -msgstr "Stile campioni" +msgid "" +"Failed to import the numpy modules. These modules are required by this " +"extension. Please install them and try again. On a Debian-like system this " +"can be done with the command, sudo apt-get install python-numpy." +msgstr "" +"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " +"necessari a quest'estensione. installarli e provare nuovamente. Su sistemi " +"derivati Debian questo può essere fatto col comando `sudo apt-get install " +"python-numpy`." -#: ../share/extensions/gcodetools_area.inx.h:17 -#, fuzzy -msgid "delete" -msgstr "Elimina" +#: ../share/extensions/measure.py:112 +msgid "Area is zero, cannot calculate Center of Mass" +msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:18 +#: ../share/extensions/pathalongpath.py:208 +#: ../share/extensions/pathscatter.py:228 +#: ../share/extensions/perspective.py:53 +msgid "This extension requires two selected paths." +msgstr "Questa estensione richiede che vengan selezionati due tracciati." + +#: ../share/extensions/pathalongpath.py:234 msgid "" -"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" -"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " -"colored arrows." +"The total length of the pattern is too small :\n" +"Please choose a larger object or set 'Space between copies' > 0" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:12 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 -#, fuzzy -msgid "Path to Gcode" -msgstr "Il tracciato è chiuso." +#: ../share/extensions/pathalongpath.py:277 +msgid "" +"The 'stretch' option requires that the pattern must have non-zero width :\n" +"Please edit the pattern width." +msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:20 -#: ../share/extensions/gcodetools_lathe.inx.h:13 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 -#, fuzzy -msgid "Biarc interpolation tolerance:" -msgstr "Passi d'interpolazione" +#: ../share/extensions/pathmodifier.py:237 +#, python-format +msgid "Please first convert objects to paths! (Got [%s].)" +msgstr "Convertire prima l'oggetto in tracciato! (Ricevuto [%s].)" -#: ../share/extensions/gcodetools_area.inx.h:21 -#: ../share/extensions/gcodetools_lathe.inx.h:14 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 -#, fuzzy -msgid "Maximum splitting depth:" -msgstr "Semplificazione tracciati:" +#: ../share/extensions/perspective.py:45 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again. On a Debian-" +"like system this can be done with the command, sudo apt-get install python-" +"numpy." +msgstr "" +"Errore nell'importare i moduili numpy o numpy.linalg. Tali moduli sono " +"necessari a quest'estensione. installarli e provare nuovamente. Su sistemi " +"derivati Debian questo può essere fatto col comando `sudo apt-get install " +"python-numpy`." -#: ../share/extensions/gcodetools_area.inx.h:22 -#: ../share/extensions/gcodetools_lathe.inx.h:15 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 -msgid "Cutting order:" +#: ../share/extensions/perspective.py:61 +#: ../share/extensions/summersnight.py:52 +#, python-format +msgid "" +"The first selected object is of type '%s'.\n" +"Try using the procedure Path->Object to Path." msgstr "" +"Il primo elemento selezionato è del tipo «%s».\n" +"Provare prima il procedimento Tracciato → Da oggetto a tracciato." -#: ../share/extensions/gcodetools_area.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:16 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -#, fuzzy -msgid "Depth function:" -msgstr "Funzione rosso" +#: ../share/extensions/perspective.py:68 +#: ../share/extensions/summersnight.py:60 +msgid "" +"This extension requires that the second selected path be four nodes long." +msgstr "" +"Questa estensione richiede che il secondo tracciato selezionato sia lungo " +"esattamente quattro nodi." -#: ../share/extensions/gcodetools_area.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:17 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 -msgid "Sort paths to reduse rapid distance" +#: ../share/extensions/perspective.py:94 +#: ../share/extensions/summersnight.py:93 +msgid "" +"The second selected object is a group, not a path.\n" +"Try using the procedure Object->Ungroup." msgstr "" +"Il secondo elemento selezionato è un gruppo, non un tracciato.\n" +"Provare prima il procedimento Oggetto → Dividi." -#: ../share/extensions/gcodetools_area.inx.h:25 -#: ../share/extensions/gcodetools_lathe.inx.h:18 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 -msgid "Subpath by subpath" +#: ../share/extensions/perspective.py:96 +#: ../share/extensions/summersnight.py:95 +msgid "" +"The second selected object is not a path.\n" +"Try using the procedure Path->Object to Path." msgstr "" +"Il secondo elemento selezionato non è un tracciato.\n" +"Provare prima il procedimento Tracciato → Da oggetto a tracciato." -#: ../share/extensions/gcodetools_area.inx.h:26 -#: ../share/extensions/gcodetools_lathe.inx.h:19 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -#, fuzzy -msgid "Path by path" -msgstr "Incolla tracciato" +#: ../share/extensions/perspective.py:99 +#: ../share/extensions/summersnight.py:98 +msgid "" +"The first selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" +"Il primo elemento selezionato non è un tracciato.\n" +"Provare prima il procedimento Tracciato → Da oggetto a tracciato." -#: ../share/extensions/gcodetools_area.inx.h:27 -#: ../share/extensions/gcodetools_lathe.inx.h:20 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 -msgid "Pass by Pass" +#. issue error if no paths found +#: ../share/extensions/plotter.py:66 +msgid "" +"No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:28 -#: ../share/extensions/gcodetools_lathe.inx.h:21 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +#: ../share/extensions/plotter.py:143 msgid "" -"Biarc interpolation tolerance is the maximum distance between path and its " -"approximation. The segment will be split into two segments if the distance " -"between path's segment and its approximation exceeds biarc interpolation " -"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " -"(black), d is the depth defined by orientation points, s - surface defined " -"by orientation points." +"pySerial is not installed.\n" +"\n" +"1. Download pySerial here (not the \".exe\"!): http://pypi.python.org/pypi/" +"pyserial\n" +"2. Extract the \"serial\" subfolder from the zip to the following folder: C:" +"\\[Program files]\\inkscape\\python\\Lib\\\n" +"3. Restart Inkscape." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:30 -#: ../share/extensions/gcodetools_engraving.inx.h:8 -#: ../share/extensions/gcodetools_graffiti.inx.h:22 -#: ../share/extensions/gcodetools_lathe.inx.h:23 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 -#, fuzzy -msgid "Scale along Z axis:" -msgstr "UnitĂ  di lunghezza dell'asse z" +#: ../share/extensions/plotter.py:163 +msgid "" +"Could not open port. Please check that your plotter is running, connected " +"and the settings are correct." +msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:31 -#: ../share/extensions/gcodetools_engraving.inx.h:9 -#: ../share/extensions/gcodetools_graffiti.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:24 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 -msgid "Offset along Z axis:" +#: ../share/extensions/polyhedron_3d.py:65 +msgid "" +"Failed to import the numpy module. This module is required by this " +"extension. Please install it and try again. On a Debian-like system this " +"can be done with the command 'sudo apt-get install python-numpy'." msgstr "" +"Errore nell'importare il modulo numpy. Tale modulo è necessario a " +"quest'estensione, installarlo e provare nuovamente. Su sistemi derivati " +"Debian questo può essere fatto col comando `sudo apt-get install python-" +"numpy`." -#: ../share/extensions/gcodetools_area.inx.h:32 -#: ../share/extensions/gcodetools_engraving.inx.h:10 -#: ../share/extensions/gcodetools_graffiti.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:25 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 -msgid "Select all paths if nothing is selected" +#: ../share/extensions/polyhedron_3d.py:336 +msgid "No face data found in specified file." +msgstr "Nessuna informazione per le facce trovata nel file specificato." + +#: ../share/extensions/polyhedron_3d.py:337 +msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" msgstr "" +"Selezionare \"Specificato allo spigolo\" nella scheda «File modello».\n" -#: ../share/extensions/gcodetools_area.inx.h:33 -#: ../share/extensions/gcodetools_engraving.inx.h:11 -#: ../share/extensions/gcodetools_graffiti.inx.h:25 -#: ../share/extensions/gcodetools_lathe.inx.h:26 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -#, fuzzy -msgid "Minimum arc radius:" -msgstr "Raggio interno:" +#: ../share/extensions/polyhedron_3d.py:343 +msgid "No edge data found in specified file." +msgstr "Nessuna informazione per gli spigoli trovata nel file specificato." -#: ../share/extensions/gcodetools_area.inx.h:34 -#: ../share/extensions/gcodetools_engraving.inx.h:12 -#: ../share/extensions/gcodetools_graffiti.inx.h:26 -#: ../share/extensions/gcodetools_lathe.inx.h:27 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 -msgid "Comment Gcode:" +#: ../share/extensions/polyhedron_3d.py:344 +msgid "Try selecting \"Face Specified\" in the Model File tab.\n" +msgstr "Selezionare \"Specificato alla faccia\" nella scheda «File modello».\n" + +#. we cannot generate a list of faces from the edges without a lot of computation +#: ../share/extensions/polyhedron_3d.py:522 +msgid "" +"Face Data Not Found. Ensure file contains face data, and check the file is " +"imported as \"Face-Specified\" under the \"Model File\" tab.\n" msgstr "" +"Informazioni sulle facce non trovate. Verificare che il file contenga " +"informazioni per le facce e che il file sia importato come \"Specificato " +"alla faccia\" nella scheda «File modello».\n" -#: ../share/extensions/gcodetools_area.inx.h:35 -#: ../share/extensions/gcodetools_engraving.inx.h:13 -#: ../share/extensions/gcodetools_graffiti.inx.h:27 -#: ../share/extensions/gcodetools_lathe.inx.h:28 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 -msgid "Get additional comments from object's properties" +#: ../share/extensions/polyhedron_3d.py:524 +msgid "Internal Error. No view type selected\n" +msgstr "Errore interno. Nessun tipo di dato selezionato\n" + +#: ../share/extensions/print_win32_vector.py:41 +msgid "sorry, this will run only on Windows, exiting..." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:36 -#: ../share/extensions/gcodetools_dxf_points.inx.h:8 -#: ../share/extensions/gcodetools_engraving.inx.h:14 -#: ../share/extensions/gcodetools_graffiti.inx.h:28 -#: ../share/extensions/gcodetools_lathe.inx.h:29 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +#: ../share/extensions/print_win32_vector.py:179 #, fuzzy -msgid "Preferences" -msgstr "Preferenze penna" +msgid "Failed to open default printer" +msgstr "Impossibile impostare CairoRenderContext" -#: ../share/extensions/gcodetools_area.inx.h:37 -#: ../share/extensions/gcodetools_dxf_points.inx.h:9 -#: ../share/extensions/gcodetools_engraving.inx.h:15 -#: ../share/extensions/gcodetools_graffiti.inx.h:29 -#: ../share/extensions/gcodetools_lathe.inx.h:30 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 -#, fuzzy -msgid "File:" -msgstr "File" +#: ../share/extensions/render_barcode_datamatrix.py:202 +msgid "Unrecognised DataMatrix size" +msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:38 -#: ../share/extensions/gcodetools_dxf_points.inx.h:10 -#: ../share/extensions/gcodetools_engraving.inx.h:16 -#: ../share/extensions/gcodetools_graffiti.inx.h:30 -#: ../share/extensions/gcodetools_lathe.inx.h:31 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 -msgid "Add numeric suffix to filename" +#. we have an invalid bit value +#: ../share/extensions/render_barcode_datamatrix.py:643 +msgid "Invalid bit value, this is a bug!" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:39 -#: ../share/extensions/gcodetools_dxf_points.inx.h:11 -#: ../share/extensions/gcodetools_engraving.inx.h:17 -#: ../share/extensions/gcodetools_graffiti.inx.h:31 -#: ../share/extensions/gcodetools_lathe.inx.h:32 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +#. abort if converting blank text +#: ../share/extensions/render_barcode_datamatrix.py:678 +msgid "Please enter an input string" +msgstr "" + +#. abort if converting blank text +#: ../share/extensions/render_barcode_qrcode.py:1054 #, fuzzy -msgid "Directory:" -msgstr "Descrizione" +msgid "Please enter an input text" +msgstr "Bisogna inserire il nome del file" -#: ../share/extensions/gcodetools_area.inx.h:40 -#: ../share/extensions/gcodetools_dxf_points.inx.h:12 -#: ../share/extensions/gcodetools_engraving.inx.h:18 -#: ../share/extensions/gcodetools_graffiti.inx.h:32 -#: ../share/extensions/gcodetools_lathe.inx.h:33 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 -msgid "Z safe height for G00 move over blank:" +#: ../share/extensions/replace_font.py:133 +msgid "" +"Couldn't find anything using that font, please ensure the spelling and " +"spacing is correct." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:41 -#: ../share/extensions/gcodetools_dxf_points.inx.h:13 -#: ../share/extensions/gcodetools_engraving.inx.h:19 -#: ../share/extensions/gcodetools_graffiti.inx.h:13 -#: ../share/extensions/gcodetools_lathe.inx.h:34 -#: ../share/extensions/gcodetools_orientation_points.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 -msgid "Units (mm or in):" +#: ../share/extensions/replace_font.py:140 +#: ../share/extensions/svg_and_media_zip_output.py:193 +msgid "Didn't find any fonts in this document/selection." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:42 -#: ../share/extensions/gcodetools_dxf_points.inx.h:14 -#: ../share/extensions/gcodetools_engraving.inx.h:20 -#: ../share/extensions/gcodetools_graffiti.inx.h:33 -#: ../share/extensions/gcodetools_lathe.inx.h:35 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 -msgid "Post-processor:" +#: ../share/extensions/replace_font.py:143 +#: ../share/extensions/svg_and_media_zip_output.py:196 +#, python-format +msgid "Found the following font only: %s" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:43 -#: ../share/extensions/gcodetools_dxf_points.inx.h:15 -#: ../share/extensions/gcodetools_engraving.inx.h:21 -#: ../share/extensions/gcodetools_graffiti.inx.h:34 -#: ../share/extensions/gcodetools_lathe.inx.h:36 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 -msgid "Additional post-processor:" +#: ../share/extensions/replace_font.py:145 +#: ../share/extensions/svg_and_media_zip_output.py:198 +#, python-format +msgid "" +"Found the following fonts:\n" +"%s" msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:44 -#: ../share/extensions/gcodetools_dxf_points.inx.h:16 -#: ../share/extensions/gcodetools_engraving.inx.h:22 -#: ../share/extensions/gcodetools_graffiti.inx.h:35 -#: ../share/extensions/gcodetools_lathe.inx.h:37 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 -#, fuzzy -msgid "Generate log file" -msgstr "Genera modello" - -#: ../share/extensions/gcodetools_area.inx.h:45 -#: ../share/extensions/gcodetools_dxf_points.inx.h:17 -#: ../share/extensions/gcodetools_engraving.inx.h:23 -#: ../share/extensions/gcodetools_graffiti.inx.h:36 -#: ../share/extensions/gcodetools_lathe.inx.h:38 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 -#, fuzzy -msgid "Full path to log file:" -msgstr "Riempimento con colore uniforme" - -#: ../share/extensions/gcodetools_area.inx.h:49 -#: ../share/extensions/gcodetools_dxf_points.inx.h:21 -#: ../share/extensions/gcodetools_engraving.inx.h:27 -#: ../share/extensions/gcodetools_graffiti.inx.h:38 -#: ../share/extensions/gcodetools_lathe.inx.h:42 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +#: ../share/extensions/replace_font.py:196 #, fuzzy -msgid "Parameterize Gcode" -msgstr "Parametri" +msgid "There was nothing selected" +msgstr "Nessuna selezione" -#: ../share/extensions/gcodetools_area.inx.h:50 -#: ../share/extensions/gcodetools_dxf_points.inx.h:22 -#: ../share/extensions/gcodetools_engraving.inx.h:28 -#: ../share/extensions/gcodetools_graffiti.inx.h:39 -#: ../share/extensions/gcodetools_lathe.inx.h:43 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 -msgid "Flip y axis and parameterize Gcode" +#: ../share/extensions/replace_font.py:244 +msgid "Please enter a search string in the find box." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:51 -#: ../share/extensions/gcodetools_dxf_points.inx.h:23 -#: ../share/extensions/gcodetools_engraving.inx.h:29 -#: ../share/extensions/gcodetools_graffiti.inx.h:40 -#: ../share/extensions/gcodetools_lathe.inx.h:44 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 -msgid "Round all values to 4 digits" +#: ../share/extensions/replace_font.py:248 +msgid "Please enter a replacement font in the replace with box." msgstr "" -#: ../share/extensions/gcodetools_area.inx.h:52 -#: ../share/extensions/gcodetools_dxf_points.inx.h:24 -#: ../share/extensions/gcodetools_engraving.inx.h:30 -#: ../share/extensions/gcodetools_graffiti.inx.h:41 -#: ../share/extensions/gcodetools_lathe.inx.h:45 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 -msgid "Fast pre-penetrate" +#: ../share/extensions/replace_font.py:253 +msgid "Please enter a replacement font in the replace all box." msgstr "" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 -msgid "Check for updates" +#: ../share/extensions/summersnight.py:44 +msgid "" +"This extension requires two selected paths. \n" +"The second path must be exactly four nodes long." msgstr "" +"Questa estensione richiede due tracciati selezionati. \n" +"Il secondo tracciato deve essere lungo esattamente quattro nodi." -#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 -msgid "Check for Gcodetools latest stable version and try to get the updates." -msgstr "" +#: ../share/extensions/svg_and_media_zip_output.py:128 +#, python-format +msgid "Could not locate file: %s" +msgstr "Impossibile trovare il file: %s" -#: ../share/extensions/gcodetools_dxf_points.inx.h:1 +#: ../share/extensions/svgcalendar.py:266 +#: ../share/extensions/svgcalendar.py:288 #, fuzzy -msgid "DXF Points" -msgstr "Punti" +msgid "You must select a correct system encoding." +msgstr "Occorre selezionare almeno due elementi." -#: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#, fuzzy -msgid "DXF points" -msgstr "Input DXF" +#: ../share/extensions/uniconv-ext.py:56 +#: ../share/extensions/uniconv_output.py:122 +msgid "" +"You need to install the UniConvertor software.\n" +"For GNU/Linux: install the package python-uniconvertor.\n" +"For Windows: download it from\n" +"http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" +"and install into your Inkscape's Python location\n" +msgstr "" -#: ../share/extensions/gcodetools_dxf_points.inx.h:3 +#: ../share/extensions/voronoi2svg.py:215 #, fuzzy -msgid "Convert selection:" -msgstr "In_verti selezione" +msgid "Please select objects!" +msgstr "Duplica gli oggetti selezionati" -#: ../share/extensions/gcodetools_dxf_points.inx.h:4 +#: ../share/extensions/web-set-att.py:58 +#: ../share/extensions/web-transmit-att.py:54 +msgid "You must select at least two elements." +msgstr "Occorre selezionare almeno due elementi." + +#: ../share/extensions/webslicer_create_group.py:57 msgid "" -"Convert selected objects to drill points (as dxf_import plugin does). Also " -"you can save original shape. Only the start point of each curve will be " -"used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " -"and add or remove XML tag 'dxfpoint' with any value." +"You must create and select some \"Slicer rectangles\" before trying to group." msgstr "" -#: ../share/extensions/gcodetools_dxf_points.inx.h:5 -msgid "set as dxfpoint and save shape" +#: ../share/extensions/webslicer_create_group.py:72 +msgid "" +"You must to select some \"Slicer rectangles\" or other \"Layout groups\"." msgstr "" -#: ../share/extensions/gcodetools_dxf_points.inx.h:6 -msgid "set as dxfpoint and draw arrow" +#: ../share/extensions/webslicer_create_group.py:76 +#, python-format +msgid "Oops... The element \"%s\" is not in the Web Slicer layer" msgstr "" -#: ../share/extensions/gcodetools_dxf_points.inx.h:7 -msgid "clear dxfpoint sign" +#: ../share/extensions/webslicer_export.py:57 +msgid "You must give a directory to export the slices." msgstr "" -#: ../share/extensions/gcodetools_engraving.inx.h:1 -#, fuzzy -msgid "Engraving" -msgstr "Incisione in trasparenza" - -#: ../share/extensions/gcodetools_engraving.inx.h:2 -msgid "Smooth convex corners between this value and 180 degrees:" +#: ../share/extensions/webslicer_export.py:69 +#, fuzzy, python-format +msgid "Can't create \"%s\"." msgstr "" +"Impossibile creare il file %s.\n" +"%s" -#: ../share/extensions/gcodetools_engraving.inx.h:3 -#, fuzzy -msgid "Maximum distance for engraving (mm/inch):" -msgstr "Spostamento massimo sulle X, px" +#: ../share/extensions/webslicer_export.py:70 +#, fuzzy, python-format +msgid "Error: %s" +msgstr "Errori" -#: ../share/extensions/gcodetools_engraving.inx.h:4 -msgid "Accuracy factor (2 low to 10 high):" -msgstr "" +#: ../share/extensions/webslicer_export.py:73 +#, fuzzy, python-format +msgid "The directory \"%s\" does not exists." +msgstr "La cartella %s non esiste o non è una cartella.\n" -#: ../share/extensions/gcodetools_engraving.inx.h:5 -msgid "Draw additional graphics to see engraving path" +#: ../share/extensions/webslicer_export.py:102 +#, python-format +msgid "You have more than one element with \"%s\" html-id." msgstr "" -#: ../share/extensions/gcodetools_engraving.inx.h:6 -msgid "" -"This function creates path to engrave letters or any shape with sharp " -"angles. Cutter's depth as a function of radius is defined by the tool. Depth " -"may be any Python expression. For instance: cone....(45 " -"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " -"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " -"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +#: ../share/extensions/webslicer_export.py:332 +msgid "You must install the ImageMagick to get JPG and GIF." msgstr "" -#: ../share/extensions/gcodetools_graffiti.inx.h:1 -msgid "Graffiti" +#. PARAMETER PROCESSING +#. lines of longitude are odd : abort +#: ../share/extensions/wireframe_sphere.py:116 +msgid "Please enter an even number of lines of longitude." msgstr "" -#: ../share/extensions/gcodetools_graffiti.inx.h:2 -#, fuzzy -msgid "Maximum segment length:" -msgstr "Lunghezza massima del segmento (px)" +#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 +#: ../share/extensions/addnodes.inx.h:1 +msgid "Add Nodes" +msgstr "Aggiungi nodi" -#: ../share/extensions/gcodetools_graffiti.inx.h:3 -#, fuzzy -msgid "Minimal connector radius:" -msgstr "Raggio interno:" +#: ../share/extensions/addnodes.inx.h:2 +msgid "Division method:" +msgstr "Metodo di divisione:" -#: ../share/extensions/gcodetools_graffiti.inx.h:4 -#, fuzzy -msgid "Start position (x;y):" -msgstr "Posizione casuale" +#: ../share/extensions/addnodes.inx.h:3 +msgid "By max. segment length" +msgstr "Per lunghezza massima del segmento" -#: ../share/extensions/gcodetools_graffiti.inx.h:5 -#, fuzzy -msgid "Create preview" -msgstr "Attiva anteprima" +#: ../share/extensions/addnodes.inx.h:4 +msgid "By number of segments" +msgstr "Per numero di segmenti" -#: ../share/extensions/gcodetools_graffiti.inx.h:6 -#, fuzzy -msgid "Create linearization preview" -msgstr "Crea gradiente lineare" +#: ../share/extensions/addnodes.inx.h:5 +msgid "Maximum segment length (px):" +msgstr "Lunghezza massima del segmento (px):" -#: ../share/extensions/gcodetools_graffiti.inx.h:7 -#, fuzzy -msgid "Preview's size (px):" -msgstr "Estremo squadrato" +#: ../share/extensions/addnodes.inx.h:6 +msgid "Number of segments:" +msgstr "Numero di segmenti:" -#: ../share/extensions/gcodetools_graffiti.inx.h:8 -msgid "Preview's paint emmit (pts/s):" -msgstr "" +#: ../share/extensions/addnodes.inx.h:7 +#: ../share/extensions/convert2dashes.inx.h:2 +#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 +#: ../share/extensions/fractalize.inx.h:4 +#: ../share/extensions/interp_att_g.inx.h:29 +#: ../share/extensions/markers_strokepaint.inx.h:13 +#: ../share/extensions/perspective.inx.h:2 +#: ../share/extensions/pixelsnap.inx.h:3 +#: ../share/extensions/radiusrand.inx.h:10 +#: ../share/extensions/rubberstretch.inx.h:6 +#: ../share/extensions/straightseg.inx.h:4 +#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 +msgid "Modify Path" +msgstr "Modifica tracciato" -#: ../share/extensions/gcodetools_graffiti.inx.h:10 -#: ../share/extensions/gcodetools_orientation_points.inx.h:3 -#, fuzzy -msgid "Orientation type:" -msgstr "Orientamento" +#: ../share/extensions/ai_input.inx.h:1 +msgid "AI 8.0 Input" +msgstr "Input AI 8.0" -#: ../share/extensions/gcodetools_graffiti.inx.h:11 -#: ../share/extensions/gcodetools_orientation_points.inx.h:4 -#, fuzzy -msgid "Z surface:" -msgstr "Ordina profonditĂ  facce per:" +#: ../share/extensions/ai_input.inx.h:2 +msgid "Adobe Illustrator 8.0 and below (*.ai)" +msgstr "Adobe Illustrator 8.0 e precedenti (*.ai)" -#: ../share/extensions/gcodetools_graffiti.inx.h:12 -#: ../share/extensions/gcodetools_orientation_points.inx.h:5 -#, fuzzy -msgid "Z depth:" -msgstr "ProfonditĂ " +#: ../share/extensions/ai_input.inx.h:3 +msgid "Open files saved with Adobe Illustrator 8.0 or older" +msgstr "Apre file salvati con Adobe Illustrator 8.0 o piĂą vecchi" -#: ../share/extensions/gcodetools_graffiti.inx.h:14 -#: ../share/extensions/gcodetools_orientation_points.inx.h:7 -msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" -msgstr "" +#: ../share/extensions/aisvg.inx.h:1 +msgid "AI SVG Input" +msgstr "Input AI SVG" -#: ../share/extensions/gcodetools_graffiti.inx.h:15 -#: ../share/extensions/gcodetools_orientation_points.inx.h:8 -msgid "3-points mode (move, rotate and mirror, different X/Y scale)" -msgstr "" +#: ../share/extensions/aisvg.inx.h:2 +msgid "Adobe Illustrator SVG (*.ai.svg)" +msgstr "Adobe Illustrator SVG (*.ai.svg)" -#: ../share/extensions/gcodetools_graffiti.inx.h:16 -#: ../share/extensions/gcodetools_orientation_points.inx.h:9 -#, fuzzy -msgid "graffiti points" -msgstr "Orientamento" +#: ../share/extensions/aisvg.inx.h:3 +msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" +msgstr "Rimuove le impuritĂ  dagli SVG di Adobe Illustrator prima di aprirli" -#: ../share/extensions/gcodetools_graffiti.inx.h:17 -#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +#: ../share/extensions/ccx_input.inx.h:1 #, fuzzy -msgid "in-out reference point" -msgstr "Preferenze gradiente" - -#: ../share/extensions/gcodetools_graffiti.inx.h:20 -#: ../share/extensions/gcodetools_orientation_points.inx.h:13 -msgid "" -"Orientation points are used to calculate transformation (offset,scale,mirror," -"rotation in XY plane) of the path. 3-points mode only: do not put all three " -"into one line (use 2-points mode instead). You can modify Z surface, Z depth " -"values later using text tool (3rd coordinates). If there are no orientation " -"points inside current layer they are taken from the upper layer. Do not " -"ungroup orientation points! You can select them using double click to enter " -"the group or by Ctrl+Click. Now press apply to create control points " -"(independent set for each layer)." -msgstr "" +msgid "Corel DRAW Compressed Exchange files input (UC)" +msgstr " Files input Corel DRAW Compressed Exchange" -#: ../share/extensions/gcodetools_lathe.inx.h:1 +#: ../share/extensions/ccx_input.inx.h:2 #, fuzzy -msgid "Lathe" -msgstr "Cuoio" +msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" +msgstr "File Corel DRAW Compressed Exchang (.ccx)" -#: ../share/extensions/gcodetools_lathe.inx.h:2 +#: ../share/extensions/ccx_input.inx.h:3 #, fuzzy -msgid "Lathe width:" -msgstr "Imposta larghezza:" +msgid "Open compressed exchange files saved in Corel DRAW (UC)" +msgstr "File Open compressed exchange salvato con Corel DRAW" -#: ../share/extensions/gcodetools_lathe.inx.h:3 +#: ../share/extensions/cdr_input.inx.h:1 #, fuzzy -msgid "Fine cut width:" -msgstr "Imposta larghezza:" +msgid "Corel DRAW Input (UC)" +msgstr "Input Corel DRAW" -#: ../share/extensions/gcodetools_lathe.inx.h:4 +#: ../share/extensions/cdr_input.inx.h:2 #, fuzzy -msgid "Fine cut count:" -msgstr "Bottone" +msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" +msgstr "File Corel DRAW 7-X4 (*.cdr)" -#: ../share/extensions/gcodetools_lathe.inx.h:5 +#: ../share/extensions/cdr_input.inx.h:3 #, fuzzy -msgid "Create fine cut using:" -msgstr "Crea nuovi oggetti con:" - -#: ../share/extensions/gcodetools_lathe.inx.h:6 -msgid "Lathe X axis remap:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:7 -msgid "Lathe Z axis remap:" -msgstr "" +msgid "Open files saved in Corel DRAW 7-X4 (UC)" +msgstr "Apre file salvati con Corel DRAW 7-X4" -#: ../share/extensions/gcodetools_lathe.inx.h:8 +#: ../share/extensions/cdt_input.inx.h:1 #, fuzzy -msgid "Move path" -msgstr "Muovi motivi" +msgid "Corel DRAW templates input (UC)" +msgstr "Input modello Corel DRAW" -#: ../share/extensions/gcodetools_lathe.inx.h:9 -msgid "Offset path" -msgstr "Tracciato estruso" +#: ../share/extensions/cdt_input.inx.h:2 +#, fuzzy +msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" +msgstr "File modello Corel DRAW 7-13 (.cdt)" -#: ../share/extensions/gcodetools_lathe.inx.h:10 +#: ../share/extensions/cdt_input.inx.h:3 #, fuzzy -msgid "Lathe modify path" -msgstr "Modifica tracciato" +msgid "Open files saved in Corel DRAW 7-13 (UC)" +msgstr "Apre file salvati con Corel DRAW 7-13" -#: ../share/extensions/gcodetools_lathe.inx.h:11 -msgid "" -"This function modifies path so it will be able to be cut with the " -"rectangular cutter." -msgstr "" +#: ../share/extensions/cgm_input.inx.h:1 +msgid "Computer Graphics Metafile files input" +msgstr "File input Computer Graphics Metafile" -#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +#: ../share/extensions/cgm_input.inx.h:2 #, fuzzy -msgid "Orientation points" -msgstr "Orientamento" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 -msgid "Prepare path for plasma" -msgstr "" +msgid "Computer Graphics Metafile files (*.cgm)" +msgstr "File Computer Graphics Metafile (.cgm)" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 -msgid "Prepare path for plasma or laser cuters" -msgstr "" +#: ../share/extensions/cgm_input.inx.h:3 +msgid "Open Computer Graphics Metafile files" +msgstr "File Open Computer Graphics Metafile" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +#: ../share/extensions/cmx_input.inx.h:1 #, fuzzy -msgid "Create in-out paths" -msgstr "Crea tracciato Spiro" +msgid "Corel DRAW Presentation Exchange files input (UC)" +msgstr "File input Corel DRAW Presentation Exchange" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +#: ../share/extensions/cmx_input.inx.h:2 #, fuzzy -msgid "In-out path length:" -msgstr "Lunghezza tracciato" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 -msgid "In-out path max distance to reference point:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 -msgid "In-out path type:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 -msgid "In-out path radius for round path:" -msgstr "" +msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" +msgstr "File Corel DRAW Presentation Exchange (.cmx)" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +#: ../share/extensions/cmx_input.inx.h:3 #, fuzzy -msgid "Replace original path" -msgstr "Sostituisci testo" +msgid "Open presentation exchange files saved in Corel DRAW (UC)" +msgstr "File Open presentation exchange salvato con Corel DRAW" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 -msgid "Do not add in-out reference points" -msgstr "" +#: ../share/extensions/color_HSL_adjust.inx.h:1 +msgid "HSL Adjust" +msgstr "Modifica HSL" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 -#, fuzzy -msgid "Prepare corners" -msgstr "angolo pagina" +#: ../share/extensions/color_HSL_adjust.inx.h:3 +msgid "Hue (°)" +msgstr "TonalitĂ  (°)" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 -#, fuzzy -msgid "Stepout distance for corners:" -msgstr "Aggancia angoli riquadri" +#: ../share/extensions/color_HSL_adjust.inx.h:4 +msgid "Random hue" +msgstr "TonalitĂ  casuale" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 -msgid "Maximum angle for corner (0-180 deg):" -msgstr "" +#: ../share/extensions/color_HSL_adjust.inx.h:6 +#, no-c-format +msgid "Saturation (%)" +msgstr "Saturazione (%)" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 -#, fuzzy -msgid "Perpendicular" -msgstr "Bisettrice perpendicolare" +#: ../share/extensions/color_HSL_adjust.inx.h:7 +msgid "Random saturation" +msgstr "Saturazione casuale" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 -#, fuzzy -msgid "Tangent" -msgstr "Magenta" +#: ../share/extensions/color_HSL_adjust.inx.h:9 +#, no-c-format +msgid "Lightness (%)" +msgstr "LuminositĂ  (%)" -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 -msgid "-------------------------------------------------" -msgstr "" +#: ../share/extensions/color_HSL_adjust.inx.h:10 +msgid "Random lightness" +msgstr "LuminositĂ  casuale" -#: ../share/extensions/gcodetools_tools_library.inx.h:1 -msgid "Tools library" +#: ../share/extensions/color_HSL_adjust.inx.h:13 +#, no-c-format +msgid "" +"Adjusts hue, saturation and lightness in the HSL representation of the " +"selected objects's color.\n" +"Options:\n" +" * Hue: rotate by degrees (wraps around).\n" +" * Saturation: add/subtract % (min=-100, max=100).\n" +" * Lightness: add/subtract % (min=-100, max=100).\n" +" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" +" " msgstr "" +"Modifica tonalitĂ , saturazione e luminositĂ  nella rappresentazione HSL " +"del colore dell'oggetto selezionato.\n" +"Opzioni:\n" +" * TonalitĂ : ruota in gradi (giro completo)." +" * Saturazione: aggiungi/sottrai % (min=-100, max=100).\n" +" * LuminositĂ : aggiungi/sottrai % (min=-100, max=100).\n" +" * TonalitĂ /Saturazione/LuminositĂ  casuale: randomizza i parametri del valore.\n" +" " -#: ../share/extensions/gcodetools_tools_library.inx.h:2 -#, fuzzy -msgid "Tools type:" -msgstr "Tipo operazione booleana" +#: ../share/extensions/color_blackandwhite.inx.h:1 +msgid "Black and White" +msgstr "Bianco e nero" -#: ../share/extensions/gcodetools_tools_library.inx.h:3 -#, fuzzy -msgid "default" -msgstr "(predefinito)" +#: ../share/extensions/color_blackandwhite.inx.h:2 +msgid "Threshold Color (1-255):" +msgstr "Soglia colore (1-255):" -#: ../share/extensions/gcodetools_tools_library.inx.h:4 +#: ../share/extensions/color_brighter.inx.h:1 +msgid "Brighter" +msgstr "Schiarisci" + +#: ../share/extensions/color_custom.inx.h:1 #, fuzzy -msgid "cylinder" -msgstr "Poligonale" +msgctxt "Custom color extension" +msgid "Custom" +msgstr "Personalizzata" -#: ../share/extensions/gcodetools_tools_library.inx.h:5 +#: ../share/extensions/color_custom.inx.h:3 #, fuzzy -msgid "cone" -msgstr "angolo" +msgid "Red Function:" +msgstr "Funzione rosso" -#: ../share/extensions/gcodetools_tools_library.inx.h:6 +#: ../share/extensions/color_custom.inx.h:4 #, fuzzy -msgid "plasma" -msgstr "_Splash" +msgid "Green Function:" +msgstr "Funzione verde" -#: ../share/extensions/gcodetools_tools_library.inx.h:7 +#: ../share/extensions/color_custom.inx.h:5 #, fuzzy -msgid "tangent knife" -msgstr "Proiezione tangenziale" +msgid "Blue Function:" +msgstr "Funzione blu" -#: ../share/extensions/gcodetools_tools_library.inx.h:8 -msgid "lathe cutter" +#: ../share/extensions/color_custom.inx.h:6 +msgid "Input (r,g,b) Color Range:" msgstr "" -#: ../share/extensions/gcodetools_tools_library.inx.h:9 -msgid "graffiti" +#: ../share/extensions/color_custom.inx.h:8 +msgid "" +"Allows you to evaluate different functions for each channel.\n" +"r, g and b are the normalized values of the red, green and blue channels. " +"The resulting RGB values are automatically clamped.\n" +" \n" +"Example (half the red, swap green and blue):\n" +" Red Function: r*0.5 \n" +" Green Function: b \n" +" Blue Function: g" msgstr "" -#: ../share/extensions/gcodetools_tools_library.inx.h:10 -msgid "Just check tools" -msgstr "" +#: ../share/extensions/color_darker.inx.h:1 +msgid "Darker" +msgstr "Scurisci" -#: ../share/extensions/gcodetools_tools_library.inx.h:11 -msgid "" -"Selected tool type fills appropriate default values. You can change these " -"values using the Text tool later on. The topmost (z order) tool in the " -"active layer is used. If there is no tool inside the current layer it is " -"taken from the upper layer. Press Apply to create new tool." -msgstr "" +#: ../share/extensions/color_desaturate.inx.h:1 +msgid "Desaturate" +msgstr "Desatura" -#: ../share/extensions/generate_voronoi.inx.h:1 -#, fuzzy -msgid "Voronoi Pattern" -msgstr "Muovi motivi" +#: ../share/extensions/color_grayscale.inx.h:1 +#: ../share/extensions/webslicer_create_rect.inx.h:15 +msgid "Grayscale" +msgstr "Scala di grigi" -#: ../share/extensions/generate_voronoi.inx.h:3 -msgid "Average size of cell (px):" -msgstr "" +#: ../share/extensions/color_lesshue.inx.h:1 +msgid "Less Hue" +msgstr "Minor colore" -#: ../share/extensions/generate_voronoi.inx.h:4 -msgid "Size of Border (px):" -msgstr "" +#: ../share/extensions/color_lesslight.inx.h:1 +msgid "Less Light" +msgstr "Minor luminositĂ " -#: ../share/extensions/generate_voronoi.inx.h:6 -msgid "" -"Generate a random pattern of Voronoi cells. The pattern will be accessible " -"in the Fill and Stroke dialog. You must select an object or a group.\n" -"\n" -"If border is zero, the pattern will be discontinuous at the edges. Use a " -"positive border, preferably greater than the cell size, to produce a smooth " -"join of the pattern at the edges. Use a negative border to reduce the size " -"of the pattern and get an empty border." -msgstr "" +#: ../share/extensions/color_lesssaturation.inx.h:1 +msgid "Less Saturation" +msgstr "Minor saturazione" -#: ../share/extensions/gimp_xcf.inx.h:1 -msgid "GIMP XCF" -msgstr "GIMP XCF" +#: ../share/extensions/color_morehue.inx.h:1 +msgid "More Hue" +msgstr "Maggior colore" -#: ../share/extensions/gimp_xcf.inx.h:3 -#, fuzzy -msgid "Save Guides" -msgstr "Salva guide:" +#: ../share/extensions/color_morelight.inx.h:1 +msgid "More Light" +msgstr "Maggior luminositĂ " -#: ../share/extensions/gimp_xcf.inx.h:4 -#, fuzzy -msgid "Save Grid" -msgstr "Salva griglia:" +#: ../share/extensions/color_moresaturation.inx.h:1 +msgid "More Saturation" +msgstr "Maggior saturazione" -#: ../share/extensions/gimp_xcf.inx.h:5 -#, fuzzy -msgid "Save Background" -msgstr "Vettorizza sfondo" +#: ../share/extensions/color_negative.inx.h:1 +msgid "Negative" +msgstr "Negativo" -#: ../share/extensions/gimp_xcf.inx.h:6 -#, fuzzy -msgid "File Resolution:" -msgstr "Relazione:" +#: ../share/extensions/color_randomize.inx.h:1 +#: ../share/extensions/render_alphabetsoup.inx.h:4 +msgid "Randomize" +msgstr "CasualitĂ " -#: ../share/extensions/gimp_xcf.inx.h:8 +#: ../share/extensions/color_randomize.inx.h:7 msgid "" -"This extension exports the document to Gimp XCF format according to the " -"following options:\n" -" * Save Guides: convert all guides to Gimp guides.\n" -" * Save Grid: convert the first rectangular grid to a Gimp grid (note " -"that the default Inkscape grid is very narrow when shown in Gimp).\n" -" * Save Background: add the document background to each converted layer.\n" -" * File Resolution: XCF file resolution, in DPI.\n" -"\n" -"Each first level layer is converted to a Gimp layer. Sublayers are " -"concatenated and converted with their first level parent layer into a single " -"Gimp layer." +"Converts to HSL, randomizes hue and/or saturation and/or lightness and " +"converts it back to RGB." msgstr "" +"Converte in HSL, randomizza la tonalitĂ  e/o la saturazione e/o la " +"luminositĂ  e converte nuovamente in RGB." -#: ../share/extensions/gimp_xcf.inx.h:15 -msgid "GIMP XCF maintaining layers (*.xcf)" -msgstr "GIMP XCF mantenendo i livelli (*.xcf)" +#: ../share/extensions/color_removeblue.inx.h:1 +msgid "Remove Blue" +msgstr "Rimuovi blu" -#: ../share/extensions/grid_cartesian.inx.h:1 -msgid "Cartesian Grid" -msgstr "Griglia cartesiana" +#: ../share/extensions/color_removegreen.inx.h:1 +msgid "Remove Green" +msgstr "Rimuovi verde" -#: ../share/extensions/grid_cartesian.inx.h:2 -#: ../share/extensions/grid_isometric.inx.h:10 -#, fuzzy -msgid "Border Thickness (px):" -msgstr "Spessore bordo [px]" +#: ../share/extensions/color_removered.inx.h:1 +msgid "Remove Red" +msgstr "Rimuovi rosso" -#: ../share/extensions/grid_cartesian.inx.h:3 -#, fuzzy -msgid "X Axis" -msgstr "Asse X" +#: ../share/extensions/color_replace.inx.h:1 +msgid "Replace color" +msgstr "Rimpiazza colore" -#: ../share/extensions/grid_cartesian.inx.h:4 -#, fuzzy -msgid "Major X Divisions:" -msgstr "Divisioni X principali" +#: ../share/extensions/color_replace.inx.h:2 +msgid "Replace color (RRGGBB hex):" +msgstr "Rimpiazza colore (RRGGBB esadecimale):" -#: ../share/extensions/grid_cartesian.inx.h:5 -#, fuzzy -msgid "Major X Division Spacing (px):" -msgstr "Spaziatura divisioni X primarie [px]" +#: ../share/extensions/color_replace.inx.h:3 +msgid "Color to replace" +msgstr "Colore da rimpiazzare" -#: ../share/extensions/grid_cartesian.inx.h:6 -#, fuzzy -msgid "Subdivisions per Major X Division:" -msgstr "Sottodivisioni per divisione principale X" +#: ../share/extensions/color_replace.inx.h:4 +msgid "By color (RRGGBB hex):" +msgstr "Con colore (RRGGBB esadecimale):" -#: ../share/extensions/grid_cartesian.inx.h:7 -msgid "Logarithmic X Subdiv. (Base given by entry above)" -msgstr "Suddivisione logaritmica X (base specificata nella voce precedente)." +#: ../share/extensions/color_replace.inx.h:5 +msgid "New color" +msgstr "Nuovo colore" -#: ../share/extensions/grid_cartesian.inx.h:8 -#, fuzzy -msgid "Subsubdivs. per X Subdivision:" -msgstr "Sottodivisioni minori per ogni sottodivisione su X" +#: ../share/extensions/color_rgbbarrel.inx.h:1 +msgid "RGB Barrel" +msgstr "Rotazione canali RGB" -#: ../share/extensions/grid_cartesian.inx.h:9 +#: ../share/extensions/convert2dashes.inx.h:1 +msgid "Convert to Dashes" +msgstr "Converti in tratti" + +#: ../share/extensions/dhw_input.inx.h:1 #, fuzzy -msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgid "DHW file input" +msgstr "Input Windows Metafile" + +#: ../share/extensions/dhw_input.inx.h:2 +msgid "ACECAD Digimemo File (*.dhw)" msgstr "" -"MetĂ  sottodivisione secondaria X. Frequenza dopo \"n\" suddivisioni (solo " -"log)." -#: ../share/extensions/grid_cartesian.inx.h:10 -#, fuzzy -msgid "Major X Division Thickness (px):" -msgstr "Spessore divisioni X primarie [px]" +#: ../share/extensions/dhw_input.inx.h:3 +msgid "Open files from ACECAD Digimemo" +msgstr "" -#: ../share/extensions/grid_cartesian.inx.h:11 -#, fuzzy -msgid "Minor X Division Thickness (px):" -msgstr "Spessore divisioni X secondarie [px]" +#: ../share/extensions/dia.inx.h:1 +msgid "Dia Input" +msgstr "Input Dia" -#: ../share/extensions/grid_cartesian.inx.h:12 -#, fuzzy -msgid "Subminor X Division Thickness (px):" -msgstr "Spessore sottodivisioni minori Y [px]" +#: ../share/extensions/dia.inx.h:2 +msgid "" +"The dia2svg.sh script should be installed with your Inkscape distribution. " +"If you do not have it, there is likely to be something wrong with your " +"Inkscape installation." +msgstr "" +"Lo script dia2svg dovrebbe venire installato insieme ad Inkscape.Se non è " +"presente, è probabile che vi sia qualche problema nell'installazione" -#: ../share/extensions/grid_cartesian.inx.h:13 -#, fuzzy -msgid "Y Axis" -msgstr "Asse Y" +#: ../share/extensions/dia.inx.h:3 +msgid "" +"In order to import Dia files, Dia itself must be installed. You can get Dia " +"at http://live.gnome.org/Dia" +msgstr "" +"Per importare file Dia, Dia deve essere installato. Lo si può reperire " +"presso http://live.gnome.org/Dia/" -#: ../share/extensions/grid_cartesian.inx.h:14 -#, fuzzy -msgid "Major Y Divisions:" -msgstr "Divisioni Y principali" +#: ../share/extensions/dia.inx.h:4 +msgid "Dia Diagram (*.dia)" +msgstr "Diagramma Dia (*.dia)" -#: ../share/extensions/grid_cartesian.inx.h:15 -#, fuzzy -msgid "Major Y Division Spacing (px):" -msgstr "Spaziatura divisioni Y primarie [px]" +#: ../share/extensions/dia.inx.h:5 +msgid "A diagram created with the program Dia" +msgstr "Un diagramma creato con il programma Dia" -#: ../share/extensions/grid_cartesian.inx.h:16 -#, fuzzy -msgid "Subdivisions per Major Y Division:" -msgstr "Sottodivisioni per divisione principale X" +#: ../share/extensions/dimension.inx.h:1 +msgid "Dimensions" +msgstr "Dimensioni" -#: ../share/extensions/grid_cartesian.inx.h:17 -msgid "Logarithmic Y Subdiv. (Base given by entry above)" -msgstr "Suddivisione logaritmica Y (base specificata nella voce precedente)." +#: ../share/extensions/dimension.inx.h:2 +msgid "X Offset:" +msgstr "Proiezione lungo X:" -#: ../share/extensions/grid_cartesian.inx.h:18 -#, fuzzy -msgid "Subsubdivs. per Y Subdivision:" -msgstr "Sottodivisioni minori per ogni sottodivisione su X" +#: ../share/extensions/dimension.inx.h:3 +msgid "Y Offset:" +msgstr "Proiezione lungo Y:" -#: ../share/extensions/grid_cartesian.inx.h:19 -#, fuzzy -msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" -msgstr "" -"MetĂ  sottodivisione secondaria Y. Frequenza dopo \"n\" suddivisioni (solo " -"log)." +#: ../share/extensions/dimension.inx.h:4 +msgid "Bounding box type :" +msgstr "Riquadro da usare:" -#: ../share/extensions/grid_cartesian.inx.h:20 +#: ../share/extensions/dimension.inx.h:5 #, fuzzy -msgid "Major Y Division Thickness (px):" -msgstr "Spessore divisioni Y primarie [px]" +msgid "Geometric" +msgstr "Accrescimento" -#: ../share/extensions/grid_cartesian.inx.h:21 +#: ../share/extensions/dimension.inx.h:6 #, fuzzy -msgid "Minor Y Division Thickness (px):" -msgstr "Spessore divisioni Y secondarie [px]" +msgid "Visual" +msgstr "Visualizza tracciato" -#: ../share/extensions/grid_cartesian.inx.h:22 -#, fuzzy -msgid "Subminor Y Division Thickness (px):" -msgstr "Spessore sottodivisioni minori Y [px]" +#: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 +#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 +msgid "Visualize Path" +msgstr "Visualizza tracciato" -#: ../share/extensions/grid_isometric.inx.h:1 -#, fuzzy -msgid "Isometric Grid" -msgstr "Griglia assonometrica" +#: ../share/extensions/dots.inx.h:1 +msgid "Number Nodes" +msgstr "Numera nodi" -#: ../share/extensions/grid_isometric.inx.h:2 -#, fuzzy -msgid "X Divisions [x2]:" -msgstr "Divisioni X principali" +#: ../share/extensions/dots.inx.h:4 +msgid "Dot size:" +msgstr "Dimensione punto:" -#: ../share/extensions/grid_isometric.inx.h:3 -msgid "Y Divisions [x2] [> 1/2 X Div]:" +#: ../share/extensions/dots.inx.h:5 +msgid "Starting dot number:" +msgstr "Numero iniziale punti:" + +#: ../share/extensions/dots.inx.h:6 +msgid "Step:" +msgstr "Incremento:" + +#: ../share/extensions/dots.inx.h:8 +msgid "" +"This extension replaces the selection's nodes with numbered dots according " +"to the following options:\n" +" * Font size: size of the node number labels (20px, 12pt...).\n" +" * Dot size: diameter of the dots placed at path nodes (10px, 2mm...).\n" +" * Starting dot number: first number in the sequence, assigned to the " +"first node of the path.\n" +" * Step: numbering step between two nodes." msgstr "" -#: ../share/extensions/grid_isometric.inx.h:4 -#, fuzzy -msgid "Division Spacing (px):" -msgstr "Spaziatura divisioni X primarie [px]" +#: ../share/extensions/draw_from_triangle.inx.h:1 +msgid "Draw From Triangle" +msgstr "Disegna dal triangolo" -#: ../share/extensions/grid_isometric.inx.h:5 -#, fuzzy -msgid "Subdivisions per Major Division:" -msgstr "Sottodivisioni per divisione principale X" +#: ../share/extensions/draw_from_triangle.inx.h:2 +msgid "Common Objects" +msgstr "Oggetti comuni" -#: ../share/extensions/grid_isometric.inx.h:6 -#, fuzzy -msgid "Subsubdivs per Subdivision:" -msgstr "Sottodivisioni minori per ogni sottodivisione su X" +#: ../share/extensions/draw_from_triangle.inx.h:3 +msgid "Circumcircle" +msgstr "Circumcerchio" -#: ../share/extensions/grid_isometric.inx.h:7 -#, fuzzy -msgid "Major Division Thickness (px):" -msgstr "Spessore divisioni X primarie [px]" +#: ../share/extensions/draw_from_triangle.inx.h:4 +msgid "Circumcentre" +msgstr "Circocentro" -#: ../share/extensions/grid_isometric.inx.h:8 -#, fuzzy -msgid "Minor Division Thickness (px):" -msgstr "Spessore divisioni X secondarie [px]" +#: ../share/extensions/draw_from_triangle.inx.h:5 +msgid "Incircle" +msgstr "Incerchio" -#: ../share/extensions/grid_isometric.inx.h:9 -#, fuzzy -msgid "Subminor Division Thickness (px):" -msgstr "Spessore sottodivisioni minori Y [px]" +#: ../share/extensions/draw_from_triangle.inx.h:6 +msgid "Incentre" +msgstr "Incentro" -#: ../share/extensions/grid_polar.inx.h:1 -msgid "Polar Grid" -msgstr "Griglia polare" +#: ../share/extensions/draw_from_triangle.inx.h:7 +msgid "Contact Triangle" +msgstr "Triangolo inscritto" -#: ../share/extensions/grid_polar.inx.h:2 -#, fuzzy -msgid "Centre Dot Diameter (px):" -msgstr "Diametro punto centrale [px]" +#: ../share/extensions/draw_from_triangle.inx.h:8 +msgid "Excircles" +msgstr "Cerchio exinscritto" -#: ../share/extensions/grid_polar.inx.h:3 -#, fuzzy -msgid "Circumferential Labels:" -msgstr "Etichetta circonferenza" +#: ../share/extensions/draw_from_triangle.inx.h:9 +msgid "Excentres" +msgstr "Excentro" -#: ../share/extensions/grid_polar.inx.h:5 -msgid "Degrees" -msgstr "Gradi" +#: ../share/extensions/draw_from_triangle.inx.h:10 +msgid "Extouch Triangle" +msgstr "Triangolo di Nagel" -#: ../share/extensions/grid_polar.inx.h:6 -#, fuzzy -msgid "Circumferential Label Size (px):" -msgstr "Dimensione etichetta circonferenza [px]" +#: ../share/extensions/draw_from_triangle.inx.h:11 +msgid "Excentral Triangle" +msgstr "Triangolo exincentro" -#: ../share/extensions/grid_polar.inx.h:7 -#, fuzzy -msgid "Circumferential Label Outset (px):" -msgstr "Spostamento etichetta circonferenza [px]" +#: ../share/extensions/draw_from_triangle.inx.h:12 +msgid "Orthocentre" +msgstr "Ortocentro" -#: ../share/extensions/grid_polar.inx.h:8 -#, fuzzy -msgid "Circular Divisions" -msgstr "Divisioni circolari principali" +#: ../share/extensions/draw_from_triangle.inx.h:13 +msgid "Orthic Triangle" +msgstr "Triangolo ortico" -#: ../share/extensions/grid_polar.inx.h:9 -#, fuzzy -msgid "Major Circular Divisions:" -msgstr "Divisioni circolari principali" +#: ../share/extensions/draw_from_triangle.inx.h:14 +msgid "Altitudes" +msgstr "Altezza" -#: ../share/extensions/grid_polar.inx.h:10 -#, fuzzy -msgid "Major Circular Division Spacing (px):" -msgstr "Spaziatura divisioni circolari primarie [px]" +#: ../share/extensions/draw_from_triangle.inx.h:15 +msgid "Angle Bisectors" +msgstr "Bisettrice angolo" -#: ../share/extensions/grid_polar.inx.h:11 -#, fuzzy -msgid "Subdivisions per Major Circular Division:" -msgstr "Sottodivisioni per divisioni circolari principali" +#: ../share/extensions/draw_from_triangle.inx.h:16 +msgid "Centroid" +msgstr "Centroide" -#: ../share/extensions/grid_polar.inx.h:12 -msgid "Logarithmic Subdiv. (Base given by entry above)" -msgstr "Suddivisione logaritmica (base specificata nella voce precedente)." +#: ../share/extensions/draw_from_triangle.inx.h:17 +msgid "Nine-Point Centre" +msgstr "Centro di Feuerbach" -#: ../share/extensions/grid_polar.inx.h:13 -#, fuzzy -msgid "Major Circular Division Thickness (px):" -msgstr "Spessore divisioni circolari principali [px]" +#: ../share/extensions/draw_from_triangle.inx.h:18 +msgid "Nine-Point Circle" +msgstr "Cerchio di Feuerbach" -#: ../share/extensions/grid_polar.inx.h:14 -#, fuzzy -msgid "Minor Circular Division Thickness (px):" -msgstr "Spessore divisioni circolari secondarie [px]" +#: ../share/extensions/draw_from_triangle.inx.h:19 +msgid "Symmedians" +msgstr "Simmediane" -#: ../share/extensions/grid_polar.inx.h:15 -#, fuzzy -msgid "Angular Divisions" -msgstr "Divisione angolo" +#: ../share/extensions/draw_from_triangle.inx.h:20 +msgid "Symmedian Point" +msgstr "Punto simmediano" -#: ../share/extensions/grid_polar.inx.h:16 -#, fuzzy -msgid "Angle Divisions:" -msgstr "Divisione angolo" +#: ../share/extensions/draw_from_triangle.inx.h:21 +msgid "Symmedial Triangle" +msgstr "Triangolo simmediale" -#: ../share/extensions/grid_polar.inx.h:17 -#, fuzzy -msgid "Angle Divisions at Centre:" -msgstr "Divisione angolo al centro" +#: ../share/extensions/draw_from_triangle.inx.h:22 +msgid "Gergonne Point" +msgstr "Punto di Gergonne" -#: ../share/extensions/grid_polar.inx.h:18 -#, fuzzy -msgid "Subdivisions per Major Angular Division:" -msgstr "Sottodivisioni per divisioni angolari principali" +#: ../share/extensions/draw_from_triangle.inx.h:23 +msgid "Nagel Point" +msgstr "Punto di Nagel" -#: ../share/extensions/grid_polar.inx.h:19 -#, fuzzy -msgid "Minor Angle Division End 'n' Divs. Before Centre:" -msgstr "" -"Le divisioni secondarie d'angolo terminano \"n\" divisioni prima del centro" +#: ../share/extensions/draw_from_triangle.inx.h:24 +msgid "Custom Points and Options" +msgstr "Opzioni e punti personalizzati" -#: ../share/extensions/grid_polar.inx.h:20 -#, fuzzy -msgid "Major Angular Division Thickness (px):" -msgstr "Spessore divisioni angolari principali [px]" +#: ../share/extensions/draw_from_triangle.inx.h:25 +msgid "Custom Point Specified By:" +msgstr "Punto particolare specificato da:" -#: ../share/extensions/grid_polar.inx.h:21 +#: ../share/extensions/draw_from_triangle.inx.h:26 #, fuzzy -msgid "Minor Angular Division Thickness (px):" -msgstr "Spessore divisioni angolari secondarie [px]" +msgid "Point At:" +msgstr "Punta a" -#: ../share/extensions/guides_creator.inx.h:1 -msgid "Guides creator" -msgstr "Creazione guide" +#: ../share/extensions/draw_from_triangle.inx.h:27 +msgid "Draw Marker At This Point" +msgstr "Disegna delimitatore in questo punto" -#: ../share/extensions/guides_creator.inx.h:2 -#, fuzzy -msgid "Regular guides" -msgstr "Griglia rettangolare" +#: ../share/extensions/draw_from_triangle.inx.h:28 +msgid "Draw Circle Around This Point" +msgstr "Disegna cerchio attorno a questo punto" -#: ../share/extensions/guides_creator.inx.h:3 +#: ../share/extensions/draw_from_triangle.inx.h:29 +#: ../share/extensions/wireframe_sphere.inx.h:6 #, fuzzy -msgid "Guides preset:" -msgstr "Creazione guide" - -#: ../share/extensions/guides_creator.inx.h:6 -msgid "Start from edges" -msgstr "Parte dallo spigolo" +msgid "Radius (px):" +msgstr "Raggio / px" -#: ../share/extensions/guides_creator.inx.h:7 -msgid "Delete existing guides" -msgstr "Cancella guide esistenti" +#: ../share/extensions/draw_from_triangle.inx.h:30 +msgid "Draw Isogonal Conjugate" +msgstr "Disegna il coniugato isogonale" -#: ../share/extensions/guides_creator.inx.h:8 -msgid "Custom..." -msgstr "Personalizzata..." +#: ../share/extensions/draw_from_triangle.inx.h:31 +msgid "Draw Isotomic Conjugate" +msgstr "Disegna il coniugato isotomico" -#: ../share/extensions/guides_creator.inx.h:9 -msgid "Golden ratio" -msgstr "Rapporto aureo" +#: ../share/extensions/draw_from_triangle.inx.h:32 +msgid "Report this triangle's properties" +msgstr "Mostra le proprietĂ  di questo triangolo" -#: ../share/extensions/guides_creator.inx.h:10 -msgid "Rule-of-third" -msgstr "Regola del terzo" +#: ../share/extensions/draw_from_triangle.inx.h:33 +msgid "Trilinear Coordinates" +msgstr "Coordinate trilineari" -#: ../share/extensions/guides_creator.inx.h:11 -#, fuzzy -msgid "Diagonal guides" -msgstr "Aggancia alle guide" +#: ../share/extensions/draw_from_triangle.inx.h:34 +msgid "Triangle Function" +msgstr "Funzione triangolo" -#: ../share/extensions/guides_creator.inx.h:12 -#, fuzzy -msgid "Upper left corner" -msgstr "angolo pagina" +#: ../share/extensions/draw_from_triangle.inx.h:36 +msgid "" +"This extension draws constructions about a triangle defined by the first 3 " +"nodes of a selected path. You may select one of preset objects or create " +"your own ones.\n" +" \n" +"All units are the Inkscape's pixel unit. Angles are all in radians.\n" +"You can specify a point by trilinear coordinates or by a triangle centre " +"function.\n" +"Enter as functions of the side length or angles.\n" +"Trilinear elements should be separated by a colon: ':'.\n" +"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" +"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" +"You can also use the semi-perimeter and area of the triangle as constants. " +"Write 'area' or 'semiperim' for these.\n" +"\n" +"You can use any standard Python math function:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Also available are the inverse trigonometric functions:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"You can specify the radius of a circle around a custom point using a " +"formula, which may also contain the side lengths, angles, etc. You can also " +"plot the isogonal and isotomic conjugate of the point. Be aware that this " +"may cause a divide-by-zero error for certain points.\n" +" " +msgstr "" +"Questa estensione disegna costruzioni geometriche partendo da un triangolo " +"definito dai primi 3 nodi del tracciato selezionato. Si può usare un oggetto " +"esistente o crearne un nuovo.\n" +" \n" +"Tutte le dimensioni sono in unitĂ  pixel di Inkscape. Gli angoli sono in " +"radianti.\n" +"Un punto può essere specificato tramite coordinate trilineari o una funzione " +"di centro triangolo.\n" +"Inserire una formula in funzione della lunghezza dei lati o degli angoli.\n" +"I riferimenti trilineari devono essere separati da due punti: \":\".\n" +"La lunghezza dei lati è rappresentata da \"s_a\", \"s_b\" e \"s_c\".\n" +"Gli angolo corrispondenti sono \"a_a\", \"a_b\", e \"a_c\".\n" +"Si può usare anche il semi-perimetro o l'area come costanti per il " +"triangolo, inserendo usando \"area\" o \"semiperim\".\n" +"\n" +"Si possono usare le funzioni matematiche standard di Python:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Sono disponibili inoltre le funzioni trigonometriche inverse:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"Si può specificare il raggio di un cerchio attorno a un punto specifico " +"usando un formula, che può contenere la lunghezza dei lati, angoli, etc. Si " +"può anche disegnare il coniugato isogonale e isotomico del punto. Attenzione " +"che per alcuni punti questo potrebbe causare un errore dovuto a divisione " +"per zero.\n" +" " -#: ../share/extensions/guides_creator.inx.h:13 -#, fuzzy -msgid "Upper right corner" -msgstr "angolo pagina" +#: ../share/extensions/dxf_input.inx.h:1 +msgid "DXF Input" +msgstr "Input DXF" -#: ../share/extensions/guides_creator.inx.h:14 -#, fuzzy -msgid "Lower left corner" -msgstr "Abbassa il livello attuale" +#: ../share/extensions/dxf_input.inx.h:3 +msgid "Use automatic scaling to size A4" +msgstr "Usa ridimensionamento automatico ad A4" -#: ../share/extensions/guides_creator.inx.h:15 +#: ../share/extensions/dxf_input.inx.h:4 #, fuzzy -msgid "Lower right corner" -msgstr "Abbassa il livello attuale" +msgid "Or, use manual scale factor:" +msgstr "Altrimenti, usare un fattore di scala manuale" -#: ../share/extensions/guides_creator.inx.h:16 -#, fuzzy -msgid "Margins" -msgstr "riquadro immagine" +#: ../share/extensions/dxf_input.inx.h:5 +msgid "Manual x-axis origin (mm):" +msgstr "" -#: ../share/extensions/guides_creator.inx.h:17 -msgid "Margins preset:" +#: ../share/extensions/dxf_input.inx.h:6 +msgid "Manual y-axis origin (mm):" msgstr "" -#: ../share/extensions/guides_creator.inx.h:18 -#, fuzzy -msgid "Header margin:" -msgstr "Angolo sinistro" +#: ../share/extensions/dxf_input.inx.h:7 +msgid "Gcodetools compatible point import" +msgstr "" -#: ../share/extensions/guides_creator.inx.h:19 +#: ../share/extensions/dxf_input.inx.h:8 +#: ../share/extensions/render_barcode_qrcode.inx.h:16 #, fuzzy -msgid "Footer margin:" -msgstr "Margine del mese" +msgid "Character encoding:" +msgstr "Codifica caratteri" -#: ../share/extensions/guides_creator.inx.h:20 +#: ../share/extensions/dxf_input.inx.h:9 #, fuzzy -msgid "Left margin:" -msgstr "Angolo sinistro" +msgid "Text Font:" +msgstr "Input testo" -#: ../share/extensions/guides_creator.inx.h:21 +#: ../share/extensions/dxf_input.inx.h:11 #, fuzzy -msgid "Right margin:" -msgstr "Angolo destro" +msgid "" +"- AutoCAD Release 13 and newer.\n" +"- assume dxf drawing is in mm.\n" +"- assume svg drawing is in pixels, at 90 dpi.\n" +"- scale factor and origin apply only to manual scaling.\n" +"- layers are preserved only on File->Open, not Import.\n" +"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." +msgstr "" +"- AutoCAD versione 13 e successive. \n" +"- si assume che il disegno dxf sia in mm. \n" +"- si assume che il disegno svg sia in pixel, a 90 dpi \n" +"- i livelli sono preservati solo tramite File → Apri, non con Importa \n" +"- supporto ai BLOCKS ancora limitato, se necessario usare la funzione " +"«Esplodi blocchi» di AutoCAD." -#: ../share/extensions/guides_creator.inx.h:22 -#, fuzzy -msgid "Left book page" -msgstr "Angolo sinistro" +#: ../share/extensions/dxf_input.inx.h:17 +msgid "AutoCAD DXF R13 (*.dxf)" +msgstr "AutoCAD DXF R13 (*.dxf)" -#: ../share/extensions/guides_creator.inx.h:23 -#, fuzzy -msgid "Right book page" -msgstr "Angolo destro" +#: ../share/extensions/dxf_input.inx.h:18 +msgid "Import AutoCAD's Document Exchange Format" +msgstr "Importa AutoCAD's Document Exchange Format" -#: ../share/extensions/guillotine.inx.h:1 -#, fuzzy -msgid "Guillotine" -msgstr "Linee guida" +#: ../share/extensions/dxf_outlines.inx.h:1 +msgid "Desktop Cutting Plotter" +msgstr "Desktop Cutting Plotter" -#: ../share/extensions/guillotine.inx.h:2 +#: ../share/extensions/dxf_outlines.inx.h:3 #, fuzzy -msgid "Directory to save images to:" -msgstr "Percorso in cui salvare l'immagine" +msgid "use ROBO-Master type of spline output" +msgstr "abilita output ROBO-Master" -#: ../share/extensions/guillotine.inx.h:3 -msgid "Image name (without extension):" +#: ../share/extensions/dxf_outlines.inx.h:4 +msgid "use LWPOLYLINE type of line output" msgstr "" -#: ../share/extensions/guillotine.inx.h:4 -msgid "Ignore these settings and use export hints" +#: ../share/extensions/dxf_outlines.inx.h:5 +msgid "Base unit" msgstr "" -#: ../share/extensions/handles.inx.h:1 -msgid "Draw Handles" -msgstr "Disegna maniglie" - -#: ../share/extensions/hershey.inx.h:1 -msgid "Hershey Text" -msgstr "" +#: ../share/extensions/dxf_outlines.inx.h:6 +msgid "Character Encoding" +msgstr "Codifica caratteri" -#: ../share/extensions/hershey.inx.h:2 +#: ../share/extensions/dxf_outlines.inx.h:7 #, fuzzy -msgid "Render Text" -msgstr "Render" +msgid "Layer export selection" +msgstr "Elimina la selezione" -#: ../share/extensions/hershey.inx.h:3 -#: ../share/extensions/render_alphabetsoup.inx.h:2 -#: ../share/extensions/render_barcode_datamatrix.inx.h:2 -#: ../share/extensions/render_barcode_qrcode.inx.h:3 +#: ../share/extensions/dxf_outlines.inx.h:8 #, fuzzy -msgid "Text:" -msgstr "Testo" +msgid "Layer match name" +msgstr "Nome del livello:" -#: ../share/extensions/hershey.inx.h:4 -#, fuzzy -msgid "Action: " -msgstr "Accelerazione:" +#: ../share/extensions/dxf_outlines.inx.h:9 +msgid "pt" +msgstr "pt" -#: ../share/extensions/hershey.inx.h:5 -#, fuzzy -msgid "Font face: " -msgstr "Dimensione carattere:" +#: ../share/extensions/dxf_outlines.inx.h:10 +msgid "pc" +msgstr "pc" -#: ../share/extensions/hershey.inx.h:6 -#, fuzzy -msgid "Typeset that text" -msgstr "Inserimento testo" +#: ../share/extensions/dxf_outlines.inx.h:11 +#: ../share/extensions/render_gears.inx.h:7 +msgid "px" +msgstr "px" -#: ../share/extensions/hershey.inx.h:7 -#, fuzzy -msgid "Write glyph table" -msgstr "Modifica nome glifo" +#: ../share/extensions/dxf_outlines.inx.h:12 +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +#: ../share/extensions/render_gears.inx.h:9 +msgid "mm" +msgstr "mm" -#: ../share/extensions/hershey.inx.h:8 -#, fuzzy -msgid "Sans 1-stroke" -msgstr "Disattiva contorno" +#: ../share/extensions/dxf_outlines.inx.h:13 +msgid "cm" +msgstr "cm" -#: ../share/extensions/hershey.inx.h:9 -#, fuzzy -msgid "Sans bold" -msgstr "Rendi grassetto" +#: ../share/extensions/dxf_outlines.inx.h:14 +msgid "m" +msgstr "m" -#: ../share/extensions/hershey.inx.h:10 +#: ../share/extensions/dxf_outlines.inx.h:15 +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +#: ../share/extensions/render_gears.inx.h:8 +msgid "in" +msgstr "in" + +#: ../share/extensions/dxf_outlines.inx.h:16 +msgid "ft" +msgstr "ft" + +#: ../share/extensions/dxf_outlines.inx.h:17 #, fuzzy -msgid "Serif medium" -msgstr "media" +msgid "Latin 1" +msgstr "Satinato" -#: ../share/extensions/hershey.inx.h:11 -msgid "Serif medium italic" +#: ../share/extensions/dxf_outlines.inx.h:18 +msgid "CP 1250" msgstr "" -#: ../share/extensions/hershey.inx.h:12 -msgid "Serif bold italic" +#: ../share/extensions/dxf_outlines.inx.h:19 +msgid "CP 1252" msgstr "" -#: ../share/extensions/hershey.inx.h:13 +#: ../share/extensions/dxf_outlines.inx.h:20 +msgid "UTF 8" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:21 #, fuzzy -msgid "Serif bold" -msgstr "Rendi grassetto" +msgid "All (default)" +msgstr "(predefinito)" -#: ../share/extensions/hershey.inx.h:14 +#: ../share/extensions/dxf_outlines.inx.h:22 #, fuzzy -msgid "Script 1-stroke" -msgstr "Imposta contorno" +msgid "Visible only" +msgstr "Colori visibili" -#: ../share/extensions/hershey.inx.h:15 -msgid "Script 1-stroke (alt)" +#: ../share/extensions/dxf_outlines.inx.h:23 +msgid "By name match" msgstr "" -#: ../share/extensions/hershey.inx.h:16 +#: ../share/extensions/dxf_outlines.inx.h:25 #, fuzzy -msgid "Script medium" -msgstr "Script" +msgid "" +"- AutoCAD Release 14 DXF format.\n" +"- The base unit parameter specifies in what unit the coordinates are output " +"(90 px = 1 in).\n" +"- Supported element types\n" +" - paths (lines and splines)\n" +" - rectangles\n" +" - clones (the crossreference to the original is lost)\n" +"- ROBO-Master spline output is a specialized spline readable only by ROBO-" +"Master and AutoDesk viewers, not Inkscape.\n" +"- LWPOLYLINE output is a multiply-connected polyline, disable it to use a " +"legacy version of the LINE output.\n" +"- You can choose to export all layers, only visible ones or by name match " +"(case insensitive and use comma ',' as separator)" +msgstr "" +"- Formato AutoCAD Release 13.\n" +"- si assume che le unitĂ  svg siano in pixel, a 90 dpi.\n" +"- si assume che le unitĂ  dxf siano in mm.\n" +"- sono supportati solo elementi LWPOLYLINE e SPLINE.\n" +"- l'opzione ROBO-Master genere una spline interpretabile solo da ROBO-Master " +"e lettori AutoDesk, non da Inkscape." -#: ../share/extensions/hershey.inx.h:17 +#: ../share/extensions/dxf_outlines.inx.h:34 #, fuzzy -msgid "Gothic English" -msgstr "Accrescimento" +msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" +msgstr "Desktop Cutting Plotter (R13) (*.dxf)" -#: ../share/extensions/hershey.inx.h:18 -#, fuzzy -msgid "Gothic German" -msgstr "Accrescimento" +#: ../share/extensions/dxf_output.inx.h:1 +msgid "DXF Output" +msgstr "Output DXF" -#: ../share/extensions/hershey.inx.h:19 -#, fuzzy -msgid "Gothic Italian" -msgstr "Accrescimento" +#: ../share/extensions/dxf_output.inx.h:2 +msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" +msgstr "" +"pstoedit deve essere installato; consultare http://www.pstoedit.net/pstoedit" -#: ../share/extensions/hershey.inx.h:20 -#, fuzzy -msgid "Greek 1-stroke" -msgstr "Imposta contorno" +#: ../share/extensions/dxf_output.inx.h:3 +msgid "AutoCAD DXF R12 (*.dxf)" +msgstr "AutoCAD DXF R12 (*.dxf)" -#: ../share/extensions/hershey.inx.h:21 +#: ../share/extensions/dxf_output.inx.h:4 +msgid "DXF file written by pstoedit" +msgstr "File DXF scritto da pstoedit" + +#: ../share/extensions/edge3d.inx.h:1 +msgid "Edge 3D" +msgstr "Bordatura" + +#: ../share/extensions/edge3d.inx.h:2 #, fuzzy -msgid "Greek medium" -msgstr "media" +msgid "Illumination Angle:" +msgstr "Angolo illuminazione" -#: ../share/extensions/hershey.inx.h:23 +#: ../share/extensions/edge3d.inx.h:3 #, fuzzy -msgid "Japanese" -msgstr "Evanescente" +msgid "Shades:" +msgstr "Ombreggia" -#: ../share/extensions/hershey.inx.h:24 +#: ../share/extensions/edge3d.inx.h:4 #, fuzzy -msgid "Astrology" -msgstr "Morfologia" +msgid "Only black and white:" +msgstr "Solo bianco e nero" -#: ../share/extensions/hershey.inx.h:25 -msgid "Math (lower)" -msgstr "" +#: ../share/extensions/edge3d.inx.h:5 +#, fuzzy +msgid "Stroke width:" +msgstr "Larghezza contorno" -#: ../share/extensions/hershey.inx.h:26 +#: ../share/extensions/edge3d.inx.h:6 #, fuzzy -msgid "Math (upper)" -msgstr "Bisettrice perpendicolare" +msgid "Blur stdDeviation:" +msgstr "Deviazione standard sfocatura" -#: ../share/extensions/hershey.inx.h:28 +#: ../share/extensions/edge3d.inx.h:7 #, fuzzy -msgid "Meteorology" -msgstr "Morfologia" +msgid "Blur width:" +msgstr "Larghezza sfocatura" -#: ../share/extensions/hershey.inx.h:29 -msgid "Music" -msgstr "" +#: ../share/extensions/edge3d.inx.h:8 +#, fuzzy +msgid "Blur height:" +msgstr "Altezza sfocatura" -#: ../share/extensions/hershey.inx.h:30 -msgid "Symbolic" -msgstr "" +#: ../share/extensions/embedimage.inx.h:1 +msgid "Embed Images" +msgstr "Incorpora immagini" -#: ../share/extensions/hershey.inx.h:31 -msgid "" -" \n" -"\n" -"\n" -"\n" -msgstr "" +#: ../share/extensions/embedimage.inx.h:2 +#: ../share/extensions/embedselectedimages.inx.h:2 +msgid "Embed only selected images" +msgstr "Incorpora solo le immagini selezionate" -#: ../share/extensions/hershey.inx.h:36 -msgid "About..." -msgstr "" +#: ../share/extensions/embedselectedimages.inx.h:1 +#, fuzzy +msgid "Embed Selected Images" +msgstr "Incorpora solo le immagini selezionate" -#: ../share/extensions/hershey.inx.h:37 -msgid "" -"\n" -"This extension renders a line of text using\n" -"\"Hershey\" fonts for plotters, derived from \n" -"NBS SP-424 1976-04, \"A contribution to \n" -"computer typesetting techniques: Tables of\n" -"Coordinates for Hershey's Repertory of\n" -"Occidental Type Fonts and Graphic Symbols.\"\n" -"\n" -"These are not traditional \"outline\" fonts, \n" -"but are instead \"single-stroke\" fonts, or\n" -"\"engraving\" fonts where the character is\n" -"formed by the stroke (and not the fill).\n" -"\n" -"For additional information, please visit:\n" -" www.evilmadscientist.com/go/hershey" -msgstr "" +#: ../share/extensions/empty_page.inx.h:1 +msgid "Empty Page" +msgstr "Pagina vuota" -#: ../share/extensions/hpgl_input.inx.h:1 -#, fuzzy -msgid "HPGL Input" -msgstr "Input WPG" +#: ../share/extensions/empty_page.inx.h:2 +msgid "Page size:" +msgstr "Dimensione pagina:" -#: ../share/extensions/hpgl_input.inx.h:2 -msgid "" -"Please note that you can only open HPGL files written by Inkscape, to open " -"other HPGL files please change their file extension to .plt, make sure you " -"have UniConverter installed and open them again." -msgstr "" +#: ../share/extensions/empty_page.inx.h:3 +msgid "Page orientation:" +msgstr "Orientamento della pagina:" -#: ../share/extensions/hpgl_input.inx.h:3 -#: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 -#, fuzzy -msgid "Resolution X (dpi):" -msgstr "Risoluzione (punti per pollice)" +#: ../share/extensions/eps_input.inx.h:1 +msgid "EPS Input" +msgstr "Input EPS" -#: ../share/extensions/hpgl_input.inx.h:4 -#: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the X axis " -"(Default: 1016.0)" -msgstr "" +#: ../share/extensions/eqtexsvg.inx.h:1 +msgid "LaTeX" +msgstr "LaTeX" -#: ../share/extensions/hpgl_input.inx.h:5 -#: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 -#, fuzzy -msgid "Resolution Y (dpi):" -msgstr "Risoluzione (punti per pollice)" +#: ../share/extensions/eqtexsvg.inx.h:2 +msgid "LaTeX input: " +msgstr "Input LaTeX: " -#: ../share/extensions/hpgl_input.inx.h:6 -#: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the Y axis " -"(Default: 1016.0)" -msgstr "" +#: ../share/extensions/eqtexsvg.inx.h:3 +msgid "Additional packages (comma-separated): " +msgstr "Pacchetti aggiuntivi (separati da virgola): " -#: ../share/extensions/hpgl_input.inx.h:7 -msgid "Show movements between paths" -msgstr "" +#: ../share/extensions/export_gimp_palette.inx.h:1 +msgid "Export as GIMP Palette" +msgstr "Esporta come tavolozza di GIMP" -#: ../share/extensions/hpgl_input.inx.h:8 -msgid "Check this to show movements between paths (Default: Unchecked)" -msgstr "" +#: ../share/extensions/export_gimp_palette.inx.h:2 +msgid "GIMP Palette (*.gpl)" +msgstr "Tavolozza GIMP (*.gpl)" -#: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 -msgid "HP Graphics Language file (*.hpgl)" -msgstr "File HP Graphics Language (*.hpgl)" +#: ../share/extensions/export_gimp_palette.inx.h:3 +msgid "Exports the colors of this document as GIMP Palette" +msgstr "Esporta i colori di questo documento come tavolozza di GIMP" -#: ../share/extensions/hpgl_input.inx.h:10 -#, fuzzy -msgid "Import an HP Graphics Language file" -msgstr "Esporta un file HP Graphics Language" +#: ../share/extensions/extractimage.inx.h:1 +msgid "Extract Image" +msgstr "Estrai immagine" -#: ../share/extensions/hpgl_output.inx.h:1 -msgid "HPGL Output" -msgstr "Output HPGL" +#: ../share/extensions/extractimage.inx.h:2 +msgid "Path to save image:" +msgstr "Percorso in cui salvare l'immagine:" -#: ../share/extensions/hpgl_output.inx.h:2 +#: ../share/extensions/extractimage.inx.h:3 msgid "" -"Please make sure that all objects you want to save are converted to paths. " -"Please use the plotter extension (Extensions menu) to plot directly over a " -"serial connection." +"* Don't type the file extension, it is appended automatically.\n" +"* A relative path (or a filename without path) is relative to the user's " +"home directory." msgstr "" +"* Non digitare l'estensione file, sarĂ  aggiunta automaticamente.\n" +"* Un percorso relativo (o nome file senza percorso) fa riferimento alla " +"cartella home dell'utente." -#: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 -#, fuzzy -msgid "Plotter Settings " -msgstr "Impostazioni importazione PDF" - -#: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 -#, fuzzy -msgid "Pen number:" -msgstr "Angolo de" +#: ../share/extensions/extrude.inx.h:3 +msgid "Lines" +msgstr "Linee" -#: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 -msgid "The number of the pen (tool) to use (Standard: '1')" -msgstr "" +#: ../share/extensions/extrude.inx.h:4 +msgid "Polygons" +msgstr "Poligoni" -#: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 -msgid "Pen force (g):" -msgstr "" +#: ../share/extensions/fig_input.inx.h:1 +msgid "XFIG Input" +msgstr "Input XFIG" -#: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 -msgid "" -"The amount of force pushing down the pen in grams, set to 0 to omit command; " -"most plotters ignore this command (Default: 0)" -msgstr "" +#: ../share/extensions/fig_input.inx.h:2 +msgid "XFIG Graphics File (*.fig)" +msgstr "File grafico di XFIG (*.fig)" -#: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 -msgid "Pen speed (cm/s or mm/s):" -msgstr "" +#: ../share/extensions/fig_input.inx.h:3 +msgid "Open files saved with XFIG" +msgstr "Apre file salvati con XFIG" -#: ../share/extensions/hpgl_output.inx.h:13 -msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command; most plotters " -"ignore this command (Default: 0)" -msgstr "" +#: ../share/extensions/flatten.inx.h:1 +msgid "Flatten Beziers" +msgstr "Appiattisci bezier" -#: ../share/extensions/hpgl_output.inx.h:14 +#: ../share/extensions/flatten.inx.h:2 #, fuzzy -msgid "Rotation (°, Clockwise):" -msgstr "Rotazione oraria" +msgid "Flatness:" +msgstr "Appiattimento" -#: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 -msgid "Rotation of the drawing (Default: 0°)" -msgstr "" +#: ../share/extensions/foldablebox.inx.h:1 +msgid "Foldable Box" +msgstr "Scatola piegabile" -#: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/foldablebox.inx.h:4 #, fuzzy -msgid "Mirror X axis" -msgstr "Asse Y riflessione" +msgid "Depth:" +msgstr "ProfonditĂ " -#: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 -msgid "Check this to mirror the X axis (Default: Unchecked)" -msgstr "" +#: ../share/extensions/foldablebox.inx.h:5 +#, fuzzy +msgid "Paper Thickness:" +msgstr "Spessore carta" -#: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/foldablebox.inx.h:6 #, fuzzy -msgid "Mirror Y axis" -msgstr "Asse Y riflessione" +msgid "Tab Proportion:" +msgstr "Proporzione schede" -#: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 -msgid "Check this to mirror the Y axis (Default: Unchecked)" -msgstr "" +#: ../share/extensions/foldablebox.inx.h:8 +msgid "Add Guide Lines" +msgstr "Aggiungi linee guida" -#: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/fractalize.inx.h:1 +msgid "Fractalize" +msgstr "Frattalizza" + +#: ../share/extensions/fractalize.inx.h:2 #, fuzzy -msgid "Center zero point" -msgstr "Centra linee" +msgid "Subdivisions:" +msgstr "Suddivisione" -#: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 -msgid "" -"Check this if your plotter uses a centered zero point (Default: Unchecked)" -msgstr "" +#: ../share/extensions/funcplot.inx.h:1 +msgid "Function Plotter" +msgstr "Grafico funzione" -#: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/funcplot.inx.h:2 +msgid "Range and sampling" +msgstr "Intervallo e campionamento" + +#: ../share/extensions/funcplot.inx.h:3 #, fuzzy -msgid "Plot Features " -msgstr "Cuoio" +msgid "Start X value:" +msgstr "Valore iniziale x" -#: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 -msgid "Overcut (mm):" -msgstr "" +#: ../share/extensions/funcplot.inx.h:4 +#, fuzzy +msgid "End X value:" +msgstr "Valore finale di x" -#: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 -msgid "" -"The distance in mm that will be cut over the starting point of the path to " -"prevent open paths, set to 0.0 to omit command (Default: 1.00)" -msgstr "" +#: ../share/extensions/funcplot.inx.h:5 +msgid "Multiply X range by 2*pi" +msgstr "Moltiplica l'intervallo X di 2*pi" -#: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/funcplot.inx.h:6 #, fuzzy -msgid "Tool offset (mm):" -msgstr "Proiezione orizzontale, px" +msgid "Y value of rectangle's bottom:" +msgstr "Valore Y per il bordo inferiore del rettangolo" -#: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 -msgid "" -"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " -"command (Default: 0.25)" -msgstr "" +#: ../share/extensions/funcplot.inx.h:7 +#, fuzzy +msgid "Y value of rectangle's top:" +msgstr "Valore Y del lato superiore del rettangolo" -#: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/funcplot.inx.h:8 #, fuzzy -msgid "Use precut" -msgstr "Impostazioni predefinita del sistema" +msgid "Number of samples:" +msgstr "Numero di campioni" -#: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 -msgid "" -"Check this to cut a small line before the real drawing starts to correctly " -"align the tool orientation. (Default: Checked)" +#: ../share/extensions/funcplot.inx.h:9 +#: ../share/extensions/param_curves.inx.h:11 +msgid "Isotropic scaling" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 -#, fuzzy -msgid "Curve flatness:" -msgstr "Appiattimento" +#: ../share/extensions/funcplot.inx.h:10 +msgid "Use polar coordinates" +msgstr "Coordinate del cursore" -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/funcplot.inx.h:11 +#: ../share/extensions/param_curves.inx.h:12 +#, fuzzy msgid "" -"Curves are divided into lines, this number controls how fine the curves will " -"be reproduced, the smaller the finer (Default: '1.2')" +"When set, Isotropic scaling uses smallest of width/xrange or height/yrange" msgstr "" +"Ridimensionamento isotropico (usa minima altezza/range-y o larghezza/range-y)" -#: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 -#, fuzzy -msgid "Auto align" -msgstr "Allineamento" +#: ../share/extensions/funcplot.inx.h:12 +#: ../share/extensions/param_curves.inx.h:13 +msgid "Use" +msgstr "Uso" -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/funcplot.inx.h:13 +#, fuzzy msgid "" -"Check this to auto align the drawing to the zero point (Plus the tool offset " -"if used). If unchecked you have to make sure that all parts of your drawing " -"are within the document border! (Default: Checked)" +"Select a rectangle before calling the extension,\n" +"it will determine X and Y scales. If you wish to fill the area, then add x-" +"axis endpoints.\n" +"\n" +"With polar coordinates:\n" +" Start and end X values define the angle range in radians.\n" +" X scale is set so that left and right edges of rectangle are at +/-1.\n" +" Isotropic scaling is disabled.\n" +" First derivative is always determined numerically." msgstr "" +"Selezionare un rettangolo prima di applicare l'effetto,\n" +"servirĂ  a determinare le scale per la x e per la y.\n" +"In caso di coordinate polari:\n" +" i valori iniziali e finali della x definiscono l'intervallo dell'angolo " +"(in radianti).\n" +" La scala di x è impostata in modo tale che i margini sinistro e destro del " +"rettangolo sono a +/-1. \n" +" Il ridimensionamento isotropico è disabilitato. \n" +" La prima derivata è sempre determinata numericamente." -#: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/funcplot.inx.h:21 +#: ../share/extensions/param_curves.inx.h:16 +msgid "Functions" +msgstr "Funzioni" + +#: ../share/extensions/funcplot.inx.h:22 +#: ../share/extensions/param_curves.inx.h:17 msgid "" -"All these settings depend on the plotter you use, for more information " -"please consult the manual or homepage for your plotter." +"Standard Python math functions are available:\n" +"\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x).\n" +"\n" +"The constants pi and e are also available." msgstr "" +"Le seguenti funzioni matematiche standard di python sono disponibili: " +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); " +"exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); " +"atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); " +"radians(x); cosh(x); sinh(x); tanh(x).\n" +" \n" +"Sono disponibili anche le costanti «pi» ed «e»." -#: ../share/extensions/hpgl_output.inx.h:35 -#, fuzzy -msgid "Export an HP Graphics Language file" -msgstr "Esporta un file HP Graphics Language" - -#: ../share/extensions/ink2canvas.inx.h:1 +#: ../share/extensions/funcplot.inx.h:31 #, fuzzy -msgid "Convert to html5 canvas" -msgstr "Converti in tratti" +msgid "Function:" +msgstr "Funzione" -#: ../share/extensions/ink2canvas.inx.h:2 -msgid "HTML 5 canvas (*.html)" -msgstr "" +#: ../share/extensions/funcplot.inx.h:32 +msgid "Calculate first derivative numerically" +msgstr "Calcola numericamente la derivata prima" -#: ../share/extensions/ink2canvas.inx.h:3 -msgid "HTML 5 canvas code" -msgstr "" +#: ../share/extensions/funcplot.inx.h:33 +#, fuzzy +msgid "First derivative:" +msgstr "Derivata prima" -#: ../share/extensions/inkscape_follow_link.inx.h:1 +#: ../share/extensions/funcplot.inx.h:34 #, fuzzy -msgid "Follow Link" -msgstr "Segui Collegamento" +msgid "Clip with rectangle" +msgstr "Larghezza del rettangolo" -#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 -msgid "Ask Us a Question" -msgstr "Domande e risposte" +#: ../share/extensions/funcplot.inx.h:35 +#: ../share/extensions/param_curves.inx.h:28 +msgid "Remove rectangle" +msgstr "Rimuovi rettangolo" -#: ../share/extensions/inkscape_help_commandline.inx.h:1 -msgid "Command Line Options" -msgstr "Opzioni da linea di comando" +#: ../share/extensions/funcplot.inx.h:36 +#: ../share/extensions/param_curves.inx.h:29 +msgid "Draw Axes" +msgstr "Disegna assi" -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_commandline.inx.h:3 -msgid "http://inkscape.org/doc/inkscape-man.html" +#: ../share/extensions/funcplot.inx.h:37 +msgid "Add x-axis endpoints" msgstr "" -#: ../share/extensions/inkscape_help_faq.inx.h:1 -msgid "FAQ" -msgstr "FAQ" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_faq.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" +#: ../share/extensions/gcodetools_about.inx.h:1 +msgid "About" msgstr "" -#: ../share/extensions/inkscape_help_keys.inx.h:1 -msgid "Keys and Mouse Reference" -msgstr "Scorciatoie con mouse e tastiera" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_keys.inx.h:3 -msgid "http://inkscape.org/doc/keys048.html" +#: ../share/extensions/gcodetools_about.inx.h:2 +msgid "" +"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " +"is a special format which is used in most of CNC machines. So Gcodetools " +"allows you to use Inkscape as CAM program. It can be use with a lot of " +"machine types: Mills Lathes Laser and Plasma cutters and engravers Mill " +"engravers Plotters etc. To get more info visit developers page at http://www." +"cnc-club.ru/gcodetools" msgstr "" -#: ../share/extensions/inkscape_help_manual.inx.h:1 -msgid "Inkscape Manual" -msgstr "Manuale di Inkscape" +#: ../share/extensions/gcodetools_about.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:54 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +#: ../share/extensions/gcodetools_tools_library.inx.h:13 +msgid "" +"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " +"makes offset paths and engraves sharp corners using cone cutters. This plug-" +"in calculates Gcode for paths using circular interpolation or linear motion " +"when needed. Tutorials, manuals and support can be found at English support " +"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" +"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " +"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +msgstr "" -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_manual.inx.h:3 -msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:5 +#: ../share/extensions/gcodetools_dxf_points.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 +#: ../share/extensions/gcodetools_tools_library.inx.h:14 +msgid "Gcodetools" msgstr "" -#: ../share/extensions/inkscape_help_relnotes.inx.h:1 -msgid "New in This Version" -msgstr "NovitĂ  di questa versione" +#: ../share/extensions/gcodetools_area.inx.h:1 +#, fuzzy +msgid "Area" +msgstr "Armeno (hy)" -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_relnotes.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91" +#: ../share/extensions/gcodetools_area.inx.h:2 +msgid "Maximum area cutting curves:" msgstr "" -#: ../share/extensions/inkscape_help_reportabug.inx.h:1 -msgid "Report a Bug" -msgstr "Segnala un bug" +#: ../share/extensions/gcodetools_area.inx.h:3 +#, fuzzy +msgid "Area width:" +msgstr "Imposta larghezza:" -#: ../share/extensions/inkscape_help_svgspec.inx.h:1 -msgid "SVG 1.1 Specification" -msgstr "Specifiche SVG 1.1" +#: ../share/extensions/gcodetools_area.inx.h:4 +msgid "Area tool overlap (0..0.9):" +msgstr "" -#: ../share/extensions/interp.inx.h:1 -msgid "Interpolate" -msgstr "Interpola" +#: ../share/extensions/gcodetools_area.inx.h:5 +msgid "" +"\"Create area offset\": creates several Inkscape path offsets to fill " +"original path's area up to \"Area radius\" value. Outlines start from \"1/2 D" +"\" up to \"Area width\" total width with \"D\" steps where D is taken from " +"the nearest tool definition (\"Tool diameter\" value). Only one offset will " +"be created if the \"Area width\" is equal to \"1/2 D\"." +msgstr "" -#: ../share/extensions/interp.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:6 #, fuzzy -msgid "Interpolation steps:" -msgstr "Passi d'interpolazione" +msgid "Fill area" +msgstr "Riempie aree delimitate" -#: ../share/extensions/interp.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:7 #, fuzzy -msgid "Interpolation method:" -msgstr "Metodo d'interpolazione" +msgid "Area fill angle" +msgstr "Angolo sinistro" -#: ../share/extensions/interp.inx.h:5 -msgid "Duplicate endpaths" -msgstr "Duplica nodi finale" +#: ../share/extensions/gcodetools_area.inx.h:8 +msgid "Area fill shift" +msgstr "" -#: ../share/extensions/interp.inx.h:6 -msgid "Interpolate style" -msgstr "Stile d'interpolazione" +#: ../share/extensions/gcodetools_area.inx.h:9 +#, fuzzy +msgid "Filling method" +msgstr "Metodo di divisione" -#: ../share/extensions/interp_att_g.inx.h:1 -msgid "Interpolate Attribute in a group" -msgstr "Interpola attributi in un gruppo" +#: ../share/extensions/gcodetools_area.inx.h:10 +msgid "Zig zag" +msgstr "" -#: ../share/extensions/interp_att_g.inx.h:3 -#, fuzzy -msgid "Attribute to Interpolate:" -msgstr "Attributo da interpolare" +#: ../share/extensions/gcodetools_area.inx.h:12 +msgid "Area artifacts" +msgstr "" -#: ../share/extensions/interp_att_g.inx.h:4 -#, fuzzy -msgid "Other Attribute:" -msgstr "Altro attributo" +#: ../share/extensions/gcodetools_area.inx.h:13 +msgid "Artifact diameter:" +msgstr "" -#: ../share/extensions/interp_att_g.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:14 #, fuzzy -msgid "Other Attribute type:" -msgstr "Altro tipo d'attributo" +msgid "Action:" +msgstr "Accelerazione:" -#: ../share/extensions/interp_att_g.inx.h:6 -#, fuzzy -msgid "Apply to:" -msgstr "Applica filtro" +#: ../share/extensions/gcodetools_area.inx.h:15 +msgid "mark with an arrow" +msgstr "" -#: ../share/extensions/interp_att_g.inx.h:7 +#: ../share/extensions/gcodetools_area.inx.h:16 #, fuzzy -msgid "Start Value:" -msgstr "Valore iniziale" +msgid "mark with style" +msgstr "Stile campioni" -#: ../share/extensions/interp_att_g.inx.h:8 +#: ../share/extensions/gcodetools_area.inx.h:17 #, fuzzy -msgid "End Value:" -msgstr "Valore finale" - -#: ../share/extensions/interp_att_g.inx.h:13 -msgid "Translate X" -msgstr "Spostamento X" - -#: ../share/extensions/interp_att_g.inx.h:14 -msgid "Translate Y" -msgstr "Spostamento Y" - -#: ../share/extensions/interp_att_g.inx.h:15 -#: ../share/extensions/markers_strokepaint.inx.h:9 -msgid "Fill" -msgstr "Riempimento" - -#: ../share/extensions/interp_att_g.inx.h:17 -msgid "Other" -msgstr "Altro" +msgid "delete" +msgstr "Elimina" -#: ../share/extensions/interp_att_g.inx.h:18 -#, fuzzy +#: ../share/extensions/gcodetools_area.inx.h:18 msgid "" -"If you select \"Other\", you must know the SVG attributes to identify here " -"this \"other\"." +"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" +"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " +"colored arrows." msgstr "" -"Se si seleziona «Altro», occorre conoscere gli attributi SVG per determinare " -"questo «altro»:" - -#: ../share/extensions/interp_att_g.inx.h:20 -msgid "Integer Number" -msgstr "Numero intero" - -#: ../share/extensions/interp_att_g.inx.h:21 -msgid "Float Number" -msgstr "Numero decimale" - -#: ../share/extensions/interp_att_g.inx.h:22 -msgid "Tag" -msgstr "Etichetta" - -#: ../share/extensions/interp_att_g.inx.h:23 -#: ../share/extensions/polyhedron_3d.inx.h:33 -msgid "Style" -msgstr "Stile" - -#: ../share/extensions/interp_att_g.inx.h:24 -msgid "Transformation" -msgstr "Trasformazione" -#: ../share/extensions/interp_att_g.inx.h:25 -msgid "••••••••••••••••••••••••••••••••••••••••••••••••" -msgstr "••••••••••••••••••••••••••••••••••••••••••••••••" +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 +#, fuzzy +msgid "Path to Gcode" +msgstr "Il tracciato è chiuso." -#: ../share/extensions/interp_att_g.inx.h:26 -msgid "No Unit" -msgstr "Nessuna unitĂ " +#: ../share/extensions/gcodetools_area.inx.h:20 +#: ../share/extensions/gcodetools_lathe.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 +#, fuzzy +msgid "Biarc interpolation tolerance:" +msgstr "Passi d'interpolazione" -#: ../share/extensions/interp_att_g.inx.h:28 +#: ../share/extensions/gcodetools_area.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 #, fuzzy -msgid "" -"This effect applies a value for any interpolatable attribute for all " -"elements inside the selected group or for all elements in a multiple " -"selection." -msgstr "" -"Questo effetto applica un valore per ogni attributo interpolabile a tutti " -"gli elementi del gruppo o degli oggetti multipli selezionati" +msgid "Maximum splitting depth:" +msgstr "Semplificazione tracciati:" -#: ../share/extensions/jessyInk_autoTexts.inx.h:1 -msgid "Auto-texts" +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 +msgid "Cutting order:" msgstr "" -#: ../share/extensions/jessyInk_autoTexts.inx.h:2 -#: ../share/extensions/jessyInk_effects.inx.h:2 -#: ../share/extensions/jessyInk_export.inx.h:2 -#: ../share/extensions/jessyInk_masterSlide.inx.h:2 -#: ../share/extensions/jessyInk_transitions.inx.h:2 -#: ../share/extensions/jessyInk_view.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 #, fuzzy -msgid "Settings" -msgstr "Inizio" +msgid "Depth function:" +msgstr "Funzione rosso" -#: ../share/extensions/jessyInk_autoTexts.inx.h:3 -msgid "Auto-Text:" +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +msgid "Sort paths to reduse rapid distance" msgstr "" -#: ../share/extensions/jessyInk_autoTexts.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 #, fuzzy -msgid "None (remove)" -msgstr "rimuovi" +msgid "Path by path" +msgstr "Incolla tracciato" -#: ../share/extensions/jessyInk_autoTexts.inx.h:5 -msgid "Slide title" +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:20 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Pass by Pass" msgstr "" -#: ../share/extensions/jessyInk_autoTexts.inx.h:6 -#, fuzzy -msgid "Slide number" -msgstr "Angolo de" +#: ../share/extensions/gcodetools_area.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:21 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "" +"Biarc interpolation tolerance is the maximum distance between path and its " +"approximation. The segment will be split into two segments if the distance " +"between path's segment and its approximation exceeds biarc interpolation " +"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " +"(black), d is the depth defined by orientation points, s - surface defined " +"by orientation points." +msgstr "" -#: ../share/extensions/jessyInk_autoTexts.inx.h:7 +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:23 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 #, fuzzy -msgid "Number of slides" -msgstr "Numero di campioni" +msgid "Scale along Z axis:" +msgstr "UnitĂ  di lunghezza dell'asse z" -#: ../share/extensions/jessyInk_autoTexts.inx.h:9 -msgid "" -"This extension allows you to install, update and remove auto-texts for a " -"JessyInk presentation. Please see code.google.com/p/jessyink for more " -"details." +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:24 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +msgid "Offset along Z axis:" msgstr "" -#: ../share/extensions/jessyInk_autoTexts.inx.h:10 -#: ../share/extensions/jessyInk_effects.inx.h:15 -#: ../share/extensions/jessyInk_install.inx.h:4 -#: ../share/extensions/jessyInk_keyBindings.inx.h:46 -#: ../share/extensions/jessyInk_masterSlide.inx.h:7 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:8 -#: ../share/extensions/jessyInk_summary.inx.h:4 -#: ../share/extensions/jessyInk_transitions.inx.h:14 -#: ../share/extensions/jessyInk_uninstall.inx.h:12 -#: ../share/extensions/jessyInk_video.inx.h:4 -#: ../share/extensions/jessyInk_view.inx.h:9 -msgid "JessyInk" +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:25 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +msgid "Select all paths if nothing is selected" msgstr "" -#: ../share/extensions/jessyInk_effects.inx.h:1 +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 #, fuzzy -msgid "Effects" -msgstr "_Effetti" +msgid "Minimum arc radius:" +msgstr "Raggio interno:" -#: ../share/extensions/jessyInk_effects.inx.h:4 -#: ../share/extensions/jessyInk_transitions.inx.h:4 -#: ../share/extensions/jessyInk_view.inx.h:4 -#, fuzzy -msgid "Duration in seconds:" -msgstr "Disegno finito" +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Comment Gcode:" +msgstr "" -#: ../share/extensions/jessyInk_effects.inx.h:6 -#, fuzzy -msgid "Build-in effect" -msgstr "Effetto attuale" +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:28 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +msgid "Get additional comments from object's properties" +msgstr "" -#: ../share/extensions/jessyInk_effects.inx.h:7 -#, fuzzy -msgid "None (default)" -msgstr "(predefinito)" +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +msgid "Preferences" +msgstr "Preferenze" -#: ../share/extensions/jessyInk_effects.inx.h:8 -#: ../share/extensions/jessyInk_transitions.inx.h:8 +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 #, fuzzy -msgid "Appear" -msgstr "Calamaio" +msgid "File:" +msgstr "File" -#: ../share/extensions/jessyInk_effects.inx.h:9 -#, fuzzy -msgid "Fade in" -msgstr "Facce" +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:31 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 +msgid "Add numeric suffix to filename" +msgstr "" -#: ../share/extensions/jessyInk_effects.inx.h:10 -#: ../share/extensions/jessyInk_transitions.inx.h:10 +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:17 +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 #, fuzzy -msgid "Pop" -msgstr "Cima" +msgid "Directory:" +msgstr "Descrizione" -#: ../share/extensions/jessyInk_effects.inx.h:11 -#, fuzzy -msgid "Build-out effect" -msgstr "Effetto attuale" +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 +msgid "Z safe height for G00 move over blank:" +msgstr "" -#: ../share/extensions/jessyInk_effects.inx.h:12 -#, fuzzy -msgid "Fade out" -msgstr "OpacitĂ :" +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_orientation_points.inx.h:6 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +msgid "Units (mm or in):" +msgstr "UnitĂ  (mm o in):" -#: ../share/extensions/jessyInk_effects.inx.h:14 -msgid "" -"This extension allows you to install, update and remove object effects for a " -"JessyInk presentation. Please see code.google.com/p/jessyink for more " -"details." +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Post-processor:" msgstr "" -#: ../share/extensions/jessyInk_export.inx.h:1 -msgid "JessyInk zipped pdf or png output" +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +msgid "Additional post-processor:" msgstr "" -#: ../share/extensions/jessyInk_export.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 #, fuzzy -msgid "Resolution:" -msgstr "Relazione:" +msgid "Generate log file" +msgstr "Genera modello" -#: ../share/extensions/jessyInk_export.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:45 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 #, fuzzy -msgid "PDF" -msgstr "PDF 1.4" +msgid "Full path to log file:" +msgstr "Riempimento con colore uniforme" -#: ../share/extensions/jessyInk_export.inx.h:6 -msgid "PNG" -msgstr "" +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +#, fuzzy +msgid "Parameterize Gcode" +msgstr "Parametri" -#: ../share/extensions/jessyInk_export.inx.h:8 -msgid "" -"This extension allows you to export a JessyInk presentation once you created " -"an export layer in your browser. Please see code.google.com/p/jessyink for " -"more details." +#: ../share/extensions/gcodetools_area.inx.h:50 +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +#: ../share/extensions/gcodetools_engraving.inx.h:28 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Flip y axis and parameterize Gcode" msgstr "" -#: ../share/extensions/jessyInk_export.inx.h:9 -msgid "JessyInk zipped pdf or png output (*.zip)" +#: ../share/extensions/gcodetools_area.inx.h:51 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:29 +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_lathe.inx.h:44 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Round all values to 4 digits" msgstr "" -#: ../share/extensions/jessyInk_export.inx.h:10 -msgid "" -"Creates a zip file containing pdfs or pngs of all slides of a JessyInk " -"presentation." +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Fast pre-penetrate" msgstr "" -#: ../share/extensions/jessyInk_install.inx.h:1 -msgid "Install/update" -msgstr "" +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for updates" +msgstr "Controlla aggiornamenti" -#: ../share/extensions/jessyInk_install.inx.h:3 -msgid "" -"This extension allows you to install or update the JessyInk script in order " -"to turn your SVG file into a presentation. Please see code.google.com/p/" -"jessyink for more details." +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for Gcodetools latest stable version and try to get the updates." msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:1 -#, fuzzy -msgid "Key bindings" -msgstr "_Crenatura" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:2 +#: ../share/extensions/gcodetools_dxf_points.inx.h:1 #, fuzzy -msgid "Slide mode" -msgstr "ModalitĂ  ridimensionamento" +msgid "DXF Points" +msgstr "Punti" -#: ../share/extensions/jessyInk_keyBindings.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:2 #, fuzzy -msgid "Back (with effects):" -msgstr "Effetti su tracciato..." +msgid "DXF points" +msgstr "Input DXF" -#: ../share/extensions/jessyInk_keyBindings.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:3 #, fuzzy -msgid "Next (with effects):" -msgstr "Luce neon" +msgid "Convert selection:" +msgstr "In_verti selezione" -#: ../share/extensions/jessyInk_keyBindings.inx.h:5 -msgid "Back (without effects):" +#: ../share/extensions/gcodetools_dxf_points.inx.h:4 +msgid "" +"Convert selected objects to drill points (as dxf_import plugin does). Also " +"you can save original shape. Only the start point of each curve will be " +"used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " +"and add or remove XML tag 'dxfpoint' with any value." msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:6 -#, fuzzy -msgid "Next (without effects):" -msgstr "Luce neon" +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 +msgid "set as dxfpoint and save shape" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:7 -#, fuzzy -msgid "First slide:" -msgstr "Primo selezionato" +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +msgid "set as dxfpoint and draw arrow" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:8 -#, fuzzy -msgid "Last slide:" -msgstr "Incolla dimensione" +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +msgid "clear dxfpoint sign" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:1 #, fuzzy -msgid "Switch to index mode:" -msgstr "Passa al livello successivo" +msgid "Engraving" +msgstr "Incisione in trasparenza" -#: ../share/extensions/jessyInk_keyBindings.inx.h:10 -#, fuzzy -msgid "Switch to drawing mode:" -msgstr "Passa alla modalitĂ  di visualizzazione normale" +#: ../share/extensions/gcodetools_engraving.inx.h:2 +msgid "Smooth convex corners between this value and 180 degrees:" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:3 #, fuzzy -msgid "Set duration:" -msgstr "Saturazione" +msgid "Maximum distance for engraving (mm/inch):" +msgstr "Spostamento massimo sulle X, px" -#: ../share/extensions/jessyInk_keyBindings.inx.h:12 -#, fuzzy -msgid "Add slide:" -msgstr "lato superiore" +#: ../share/extensions/gcodetools_engraving.inx.h:4 +msgid "Accuracy factor (2 low to 10 high):" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:13 -msgid "Toggle progress bar:" +#: ../share/extensions/gcodetools_engraving.inx.h:5 +msgid "Draw additional graphics to see engraving path" msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:14 -#, fuzzy -msgid "Reset timer:" -msgstr "Resetta centro" +#: ../share/extensions/gcodetools_engraving.inx.h:6 +msgid "" +"This function creates path to engrave letters or any shape with sharp " +"angles. Cutter's depth as a function of radius is defined by the tool. Depth " +"may be any Python expression. For instance: cone....(45 " +"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " +"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " +"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:15 -#, fuzzy -msgid "Export presentation:" -msgstr "Orientamento" +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +msgid "Graffiti" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:17 +#: ../share/extensions/gcodetools_graffiti.inx.h:2 #, fuzzy -msgid "Switch to slide mode:" -msgstr "Passa alla modalitĂ  di visualizzazione normale" +msgid "Maximum segment length:" +msgstr "Lunghezza massima del segmento (px)" -#: ../share/extensions/jessyInk_keyBindings.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:3 #, fuzzy -msgid "Set path width to default:" -msgstr "Imposta come predefinito" +msgid "Minimal connector radius:" +msgstr "Raggio interno:" -#: ../share/extensions/jessyInk_keyBindings.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:4 #, fuzzy -msgid "Set path width to 1:" -msgstr "Imposta larghezza:" +msgid "Start position (x;y):" +msgstr "Posizione casuale" -#: ../share/extensions/jessyInk_keyBindings.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:5 #, fuzzy -msgid "Set path width to 3:" -msgstr "Imposta larghezza:" +msgid "Create preview" +msgstr "Attiva anteprima" -#: ../share/extensions/jessyInk_keyBindings.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:6 #, fuzzy -msgid "Set path width to 5:" -msgstr "Imposta larghezza:" +msgid "Create linearization preview" +msgstr "Crea gradiente lineare" -#: ../share/extensions/jessyInk_keyBindings.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:7 #, fuzzy -msgid "Set path width to 7:" -msgstr "Imposta larghezza:" +msgid "Preview's size (px):" +msgstr "Estremo squadrato" -#: ../share/extensions/jessyInk_keyBindings.inx.h:23 -#, fuzzy -msgid "Set path width to 9:" -msgstr "Imposta larghezza:" +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +msgid "Preview's paint emmit (pts/s):" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 #, fuzzy -msgid "Set path color to blue:" -msgstr "Rimuove il colore del contorno" +msgid "Orientation type:" +msgstr "Orientamento" -#: ../share/extensions/jessyInk_keyBindings.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 #, fuzzy -msgid "Set path color to cyan:" -msgstr "Rimuove il colore del contorno" +msgid "Z surface:" +msgstr "Ordina profonditĂ  facce per:" -#: ../share/extensions/jessyInk_keyBindings.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_orientation_points.inx.h:5 #, fuzzy -msgid "Set path color to green:" -msgstr "Rimuove il colore del contorno" +msgid "Z depth:" +msgstr "ProfonditĂ " -#: ../share/extensions/jessyInk_keyBindings.inx.h:27 -#, fuzzy -msgid "Set path color to black:" -msgstr "Rimuove il colore del contorno" +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:28 -#, fuzzy -msgid "Set path color to magenta:" -msgstr "Rimuove il colore del contorno" +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:29 +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 #, fuzzy -msgid "Set path color to orange:" -msgstr "Rimuove il colore del contorno" +msgid "graffiti points" +msgstr "Orientamento" -#: ../share/extensions/jessyInk_keyBindings.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 #, fuzzy -msgid "Set path color to red:" -msgstr "Rimuove il colore del contorno" +msgid "in-out reference point" +msgstr "Preferenze gradiente" -#: ../share/extensions/jessyInk_keyBindings.inx.h:31 -#, fuzzy -msgid "Set path color to white:" -msgstr "Rimuove il colore del contorno" +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +msgid "" +"Orientation points are used to calculate transformation (offset,scale,mirror," +"rotation in XY plane) of the path. 3-points mode only: do not put all three " +"into one line (use 2-points mode instead). You can modify Z surface, Z depth " +"values later using text tool (3rd coordinates). If there are no orientation " +"points inside current layer they are taken from the upper layer. Do not " +"ungroup orientation points! You can select them using double click to enter " +"the group or by Ctrl+Click. Now press apply to create control points " +"(independent set for each layer)." +msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:32 +#: ../share/extensions/gcodetools_lathe.inx.h:1 #, fuzzy -msgid "Set path color to yellow:" -msgstr "Rimuove il colore del contorno" +msgid "Lathe" +msgstr "Cuoio" -#: ../share/extensions/jessyInk_keyBindings.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:2 #, fuzzy -msgid "Undo last path segment:" -msgstr "Annulla l'ultima azione" +msgid "Lathe width:" +msgstr "Imposta larghezza:" -#: ../share/extensions/jessyInk_keyBindings.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:3 #, fuzzy -msgid "Index mode" -msgstr "Indenta nodo" +msgid "Fine cut width:" +msgstr "Imposta larghezza:" -#: ../share/extensions/jessyInk_keyBindings.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:4 #, fuzzy -msgid "Select the slide to the left:" -msgstr "Selezionare il file da salvare" +msgid "Fine cut count:" +msgstr "Bottone" -#: ../share/extensions/jessyInk_keyBindings.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:5 #, fuzzy -msgid "Select the slide to the right:" -msgstr "Adatta la pagina al disegno" +msgid "Create fine cut using:" +msgstr "Crea nuovi oggetti con:" -#: ../share/extensions/jessyInk_keyBindings.inx.h:37 -msgid "Select the slide above:" +#: ../share/extensions/gcodetools_lathe.inx.h:6 +msgid "Lathe X axis remap:" msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:38 -msgid "Select the slide below:" +#: ../share/extensions/gcodetools_lathe.inx.h:7 +msgid "Lathe Z axis remap:" msgstr "" -#: ../share/extensions/jessyInk_keyBindings.inx.h:39 -#, fuzzy -msgid "Previous page:" -msgstr "Effetto Precedente" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:40 -#, fuzzy -msgid "Next page:" -msgstr "Seleziona pagina:" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:41 +#: ../share/extensions/gcodetools_lathe.inx.h:8 #, fuzzy -msgid "Decrease number of columns:" -msgstr "Numero di colonne" +msgid "Move path" +msgstr "Muovi motivi" -#: ../share/extensions/jessyInk_keyBindings.inx.h:42 -#, fuzzy -msgid "Increase number of columns:" -msgstr "Numero di colonne" +#: ../share/extensions/gcodetools_lathe.inx.h:9 +msgid "Offset path" +msgstr "Tracciato estruso" -#: ../share/extensions/jessyInk_keyBindings.inx.h:43 +#: ../share/extensions/gcodetools_lathe.inx.h:10 #, fuzzy -msgid "Set number of columns to default:" -msgstr "Numero di colonne" +msgid "Lathe modify path" +msgstr "Modifica tracciato" -#: ../share/extensions/jessyInk_keyBindings.inx.h:45 +#: ../share/extensions/gcodetools_lathe.inx.h:11 msgid "" -"This extension allows you customise the key bindings JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." +"This function modifies path so it will be able to be cut with the " +"rectangular cutter." msgstr "" -#: ../share/extensions/jessyInk_masterSlide.inx.h:1 -#, fuzzy -msgid "Master slide" -msgstr "Incolla dimensione" - -#: ../share/extensions/jessyInk_masterSlide.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:3 +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 #, fuzzy -msgid "Name of layer:" -msgstr "Rinomina livello" +msgid "Orientation points" +msgstr "Orientamento" -#: ../share/extensions/jessyInk_masterSlide.inx.h:4 -msgid "If no layer name is supplied, the master slide is unset." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "Prepare path for plasma" msgstr "" -#: ../share/extensions/jessyInk_masterSlide.inx.h:6 -msgid "" -"This extension allows you to change the master slide JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 +msgid "Prepare path for plasma or laser cuters" msgstr "" -#: ../share/extensions/jessyInk_mouseHandler.inx.h:1 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 #, fuzzy -msgid "Mouse handler" -msgstr "Muovi maniglia" +msgid "Create in-out paths" +msgstr "Crea tracciato Spiro" -#: ../share/extensions/jessyInk_mouseHandler.inx.h:2 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 #, fuzzy -msgid "Mouse settings:" -msgstr "Impostazioni pagina" +msgid "In-out path length:" +msgstr "Lunghezza tracciato" -#: ../share/extensions/jessyInk_mouseHandler.inx.h:4 -#, fuzzy -msgid "No-click" -msgstr "al clic" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +msgid "In-out path max distance to reference point:" +msgstr "" -#: ../share/extensions/jessyInk_mouseHandler.inx.h:5 -#, fuzzy -msgid "Dragging/zoom" -msgstr "Disegno" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 +msgid "In-out path type:" +msgstr "" -#: ../share/extensions/jessyInk_mouseHandler.inx.h:7 -msgid "" -"This extension allows you customise the mouse handler JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +msgid "In-out path radius for round path:" msgstr "" -#: ../share/extensions/jessyInk_summary.inx.h:1 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 #, fuzzy -msgid "Summary" -msgstr "_Simmetria" +msgid "Replace original path" +msgstr "Sostituisci testo" -#: ../share/extensions/jessyInk_summary.inx.h:3 -msgid "" -"This extension allows you to obtain information about the JessyInk script, " -"effects and transitions contained in this SVG file. Please see code.google." -"com/p/jessyink for more details." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "Do not add in-out reference points" msgstr "" -#: ../share/extensions/jessyInk_transitions.inx.h:1 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 #, fuzzy -msgid "Transitions" -msgstr "Trasformazione" +msgid "Prepare corners" +msgstr "angolo pagina" -#: ../share/extensions/jessyInk_transitions.inx.h:6 -msgid "Transition in effect" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +#, fuzzy +msgid "Stepout distance for corners:" +msgstr "Aggancia angoli riquadri" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 +msgid "Maximum angle for corner (0-180 deg):" msgstr "" -#: ../share/extensions/jessyInk_transitions.inx.h:9 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 #, fuzzy -msgid "Fade" -msgstr "Facce" +msgid "Perpendicular" +msgstr "Bisettrice perpendicolare" -#: ../share/extensions/jessyInk_transitions.inx.h:11 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 #, fuzzy -msgid "Transition out effect" -msgstr "Incolla effetto su tracciato" +msgid "Tangent" +msgstr "Magenta" -#: ../share/extensions/jessyInk_transitions.inx.h:13 -msgid "" -"This extension allows you to change the transition JessyInk uses for the " -"selected layer. Please see code.google.com/p/jessyink for more details." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 +msgid "-------------------------------------------------" msgstr "" -#: ../share/extensions/jessyInk_uninstall.inx.h:1 -msgid "Uninstall/remove" +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Tools library" msgstr "" -#: ../share/extensions/jessyInk_uninstall.inx.h:3 +#: ../share/extensions/gcodetools_tools_library.inx.h:2 #, fuzzy -msgid "Remove script" -msgstr "Rimuovi griglia" +msgid "Tools type:" +msgstr "Tipo operazione booleana" -#: ../share/extensions/jessyInk_uninstall.inx.h:4 +#: ../share/extensions/gcodetools_tools_library.inx.h:3 #, fuzzy -msgid "Remove effects" -msgstr "Rimuove effetti su tracciato" +msgid "default" +msgstr "(predefinito)" -#: ../share/extensions/jessyInk_uninstall.inx.h:5 +#: ../share/extensions/gcodetools_tools_library.inx.h:4 #, fuzzy -msgid "Remove master slide assignment" -msgstr "Rimuovi la maschera dalla selezione" +msgid "cylinder" +msgstr "Poligonale" -#: ../share/extensions/jessyInk_uninstall.inx.h:6 +#: ../share/extensions/gcodetools_tools_library.inx.h:5 #, fuzzy -msgid "Remove transitions" -msgstr "Rimuovi _trasformazioni" +msgid "cone" +msgstr "angolo" -#: ../share/extensions/jessyInk_uninstall.inx.h:7 +#: ../share/extensions/gcodetools_tools_library.inx.h:6 #, fuzzy -msgid "Remove auto-texts" -msgstr "Rimuovi contorno" +msgid "plasma" +msgstr "_Splash" -#: ../share/extensions/jessyInk_uninstall.inx.h:8 +#: ../share/extensions/gcodetools_tools_library.inx.h:7 #, fuzzy -msgid "Remove views" -msgstr "Rimuovi filtri" +msgid "tangent knife" +msgstr "Proiezione tangenziale" -#: ../share/extensions/jessyInk_uninstall.inx.h:9 -msgid "Please select the parts of JessyInk you want to uninstall/remove." +#: ../share/extensions/gcodetools_tools_library.inx.h:8 +msgid "lathe cutter" msgstr "" -#: ../share/extensions/jessyInk_uninstall.inx.h:11 -msgid "" -"This extension allows you to uninstall the JessyInk script. Please see code." -"google.com/p/jessyink for more details." +#: ../share/extensions/gcodetools_tools_library.inx.h:9 +msgid "graffiti" msgstr "" -#: ../share/extensions/jessyInk_video.inx.h:1 -#, fuzzy -msgid "Video" -msgstr "Visualizza" +#: ../share/extensions/gcodetools_tools_library.inx.h:10 +msgid "Just check tools" +msgstr "" -#: ../share/extensions/jessyInk_video.inx.h:3 +#: ../share/extensions/gcodetools_tools_library.inx.h:11 msgid "" -"This extension puts a JessyInk video element on the current slide (layer). " -"This element allows you to integrate a video into your JessyInk " -"presentation. Please see code.google.com/p/jessyink for more details." +"Selected tool type fills appropriate default values. You can change these " +"values using the Text tool later on. The topmost (z order) tool in the " +"active layer is used. If there is no tool inside the current layer it is " +"taken from the upper layer. Press Apply to create new tool." msgstr "" -#: ../share/extensions/jessyInk_view.inx.h:5 +#: ../share/extensions/generate_voronoi.inx.h:1 #, fuzzy -msgid "Remove view" -msgstr "Rimuovi rosso" - -#: ../share/extensions/jessyInk_view.inx.h:6 -msgid "Choose order number 0 to set the initial view of a slide." -msgstr "" +msgid "Voronoi Pattern" +msgstr "Muovi motivi" -#: ../share/extensions/jessyInk_view.inx.h:8 -msgid "" -"This extension allows you to set, update and remove views for a JessyInk " -"presentation. Please see code.google.com/p/jessyink for more details." +#: ../share/extensions/generate_voronoi.inx.h:3 +msgid "Average size of cell (px):" msgstr "" -#: ../share/extensions/layers2svgfont.inx.h:1 -msgid "3 - Convert Glyph Layers to SVG Font" +#: ../share/extensions/generate_voronoi.inx.h:4 +msgid "Size of Border (px):" msgstr "" -#: ../share/extensions/layers2svgfont.inx.h:2 -#: ../share/extensions/new_glyph_layer.inx.h:3 -#: ../share/extensions/next_glyph_layer.inx.h:2 -#: ../share/extensions/previous_glyph_layer.inx.h:2 -#: ../share/extensions/setup_typography_canvas.inx.h:7 -#: ../share/extensions/svgfont2layers.inx.h:3 -#, fuzzy -msgid "Typography" -msgstr "Spirografo" - -#: ../share/extensions/layout_nup.inx.h:1 -msgid "N-up layout" +#: ../share/extensions/generate_voronoi.inx.h:6 +msgid "" +"Generate a random pattern of Voronoi cells. The pattern will be accessible " +"in the Fill and Stroke dialog. You must select an object or a group.\n" +"\n" +"If border is zero, the pattern will be discontinuous at the edges. Use a " +"positive border, preferably greater than the cell size, to produce a smooth " +"join of the pattern at the edges. Use a negative border to reduce the size " +"of the pattern and get an empty border." msgstr "" -#: ../share/extensions/layout_nup.inx.h:2 -#, fuzzy -msgid "Page dimensions" -msgstr "Dimensioni" - -#: ../share/extensions/layout_nup.inx.h:4 -#, fuzzy -msgid "Size X:" -msgstr "Dimensione X" +#: ../share/extensions/gimp_xcf.inx.h:1 +msgid "GIMP XCF" +msgstr "GIMP XCF" -#: ../share/extensions/layout_nup.inx.h:5 +#: ../share/extensions/gimp_xcf.inx.h:3 #, fuzzy -msgid "Size Y:" -msgstr "Dimensione Y" - -#: ../share/extensions/layout_nup.inx.h:6 -#: ../share/extensions/printing_marks.inx.h:13 -msgid "Top:" -msgstr "Cima:" - -#: ../share/extensions/layout_nup.inx.h:7 -#: ../share/extensions/printing_marks.inx.h:14 -msgid "Bottom:" -msgstr "Fondo:" - -#: ../share/extensions/layout_nup.inx.h:8 -#: ../share/extensions/printing_marks.inx.h:15 -msgid "Left:" -msgstr "Sinistra:" - -#: ../share/extensions/layout_nup.inx.h:9 -#: ../share/extensions/printing_marks.inx.h:16 -msgid "Right:" -msgstr "Destro:" +msgid "Save Guides" +msgstr "Salva guide:" -#: ../share/extensions/layout_nup.inx.h:10 +#: ../share/extensions/gimp_xcf.inx.h:4 #, fuzzy -msgid "Page margins" -msgstr "Angolo sinistro" +msgid "Save Grid" +msgstr "Salva griglia:" -#: ../share/extensions/layout_nup.inx.h:11 +#: ../share/extensions/gimp_xcf.inx.h:5 #, fuzzy -msgid "Layout dimensions" -msgstr "Posizione casuale" +msgid "Save Background" +msgstr "Vettorizza sfondo" -#: ../share/extensions/layout_nup.inx.h:13 +#: ../share/extensions/gimp_xcf.inx.h:6 #, fuzzy -msgid "Cols:" -msgstr "Colori" +msgid "File Resolution:" +msgstr "Relazione:" -#: ../share/extensions/layout_nup.inx.h:14 -msgid "Auto calculate layout size" +#: ../share/extensions/gimp_xcf.inx.h:8 +msgid "" +"This extension exports the document to Gimp XCF format according to the " +"following options:\n" +" * Save Guides: convert all guides to Gimp guides.\n" +" * Save Grid: convert the first rectangular grid to a Gimp grid (note " +"that the default Inkscape grid is very narrow when shown in Gimp).\n" +" * Save Background: add the document background to each converted layer.\n" +" * File Resolution: XCF file resolution, in DPI.\n" +"\n" +"Each first level layer is converted to a Gimp layer. Sublayers are " +"concatenated and converted with their first level parent layer into a single " +"Gimp layer." msgstr "" -#: ../share/extensions/layout_nup.inx.h:15 +#: ../share/extensions/gimp_xcf.inx.h:15 +msgid "GIMP XCF maintaining layers (*.xcf)" +msgstr "GIMP XCF mantenendo i livelli (*.xcf)" + +#: ../share/extensions/grid_cartesian.inx.h:1 +msgid "Cartesian Grid" +msgstr "Griglia cartesiana" + +#: ../share/extensions/grid_cartesian.inx.h:2 +#: ../share/extensions/grid_isometric.inx.h:10 #, fuzzy -msgid "Layout padding" -msgstr "Posizione casuale" +msgid "Border Thickness (px):" +msgstr "Spessore bordo [px]" -#: ../share/extensions/layout_nup.inx.h:16 +#: ../share/extensions/grid_cartesian.inx.h:3 #, fuzzy -msgid "Layout margins" -msgstr "Angolo sinistro" +msgid "X Axis" +msgstr "Asse X" -#: ../share/extensions/layout_nup.inx.h:17 -#: ../share/extensions/printing_marks.inx.h:2 -msgid "Marks" -msgstr "Segni" +#: ../share/extensions/grid_cartesian.inx.h:4 +#, fuzzy +msgid "Major X Divisions:" +msgstr "Divisioni X principali" -#: ../share/extensions/layout_nup.inx.h:18 +#: ../share/extensions/grid_cartesian.inx.h:5 #, fuzzy -msgid "Place holder" -msgstr "Buco nero" +msgid "Major X Division Spacing (px):" +msgstr "Spaziatura divisioni X primarie [px]" -#: ../share/extensions/layout_nup.inx.h:19 +#: ../share/extensions/grid_cartesian.inx.h:6 #, fuzzy -msgid "Cutting marks" -msgstr "Margini di stampa" +msgid "Subdivisions per Major X Division:" +msgstr "Sottodivisioni per divisione principale X" -#: ../share/extensions/layout_nup.inx.h:20 -msgid "Padding guide" -msgstr "" +#: ../share/extensions/grid_cartesian.inx.h:7 +msgid "Logarithmic X Subdiv. (Base given by entry above)" +msgstr "Suddivisione logaritmica X (base specificata nella voce precedente)." -#: ../share/extensions/layout_nup.inx.h:21 +#: ../share/extensions/grid_cartesian.inx.h:8 #, fuzzy -msgid "Margin guide" -msgstr "Muovi guida" +msgid "Subsubdivs. per X Subdivision:" +msgstr "Sottodivisioni minori per ogni sottodivisione su X" -#: ../share/extensions/layout_nup.inx.h:22 +#: ../share/extensions/grid_cartesian.inx.h:9 #, fuzzy -msgid "Padding box" -msgstr "Riquadri" +msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgstr "" +"MetĂ  sottodivisione secondaria X. Frequenza dopo \"n\" suddivisioni (solo " +"log)." -#: ../share/extensions/layout_nup.inx.h:23 +#: ../share/extensions/grid_cartesian.inx.h:10 #, fuzzy -msgid "Margin box" -msgstr "riquadro immagine" - -#: ../share/extensions/layout_nup.inx.h:25 -msgid "" -"\n" -"Parameters:\n" -" * Page size: width and height.\n" -" * Page margins: extra space around each page.\n" -" * Layout rows and cols.\n" -" * Layout size: width and height, auto calculated if one is 0.\n" -" * Auto calculate layout size: don't use the layout size values.\n" -" * Layout margins: white space around each part of the layout.\n" -" * Layout padding: inner padding for each part of the layout.\n" -" " -msgstr "" +msgid "Major X Division Thickness (px):" +msgstr "Spessore divisioni X primarie [px]" -#: ../share/extensions/layout_nup.inx.h:36 -#: ../share/extensions/perfectboundcover.inx.h:20 -#: ../share/extensions/printing_marks.inx.h:21 -#: ../share/extensions/svgcalendar.inx.h:13 -msgid "Layout" -msgstr "Aspetto" +#: ../share/extensions/grid_cartesian.inx.h:11 +#, fuzzy +msgid "Minor X Division Thickness (px):" +msgstr "Spessore divisioni X secondarie [px]" -#: ../share/extensions/lindenmayer.inx.h:1 -msgid "L-system" -msgstr "Sistema L" +#: ../share/extensions/grid_cartesian.inx.h:12 +#, fuzzy +msgid "Subminor X Division Thickness (px):" +msgstr "Spessore sottodivisioni minori Y [px]" -#: ../share/extensions/lindenmayer.inx.h:2 -msgid "Axiom and rules" -msgstr "Assioma e regole" +#: ../share/extensions/grid_cartesian.inx.h:13 +#, fuzzy +msgid "Y Axis" +msgstr "Asse Y" -#: ../share/extensions/lindenmayer.inx.h:3 +#: ../share/extensions/grid_cartesian.inx.h:14 #, fuzzy -msgid "Axiom:" -msgstr "Assioma" +msgid "Major Y Divisions:" +msgstr "Divisioni Y principali" -#: ../share/extensions/lindenmayer.inx.h:4 +#: ../share/extensions/grid_cartesian.inx.h:15 #, fuzzy -msgid "Rules:" -msgstr "Regola" +msgid "Major Y Division Spacing (px):" +msgstr "Spaziatura divisioni Y primarie [px]" -#: ../share/extensions/lindenmayer.inx.h:6 +#: ../share/extensions/grid_cartesian.inx.h:16 #, fuzzy -msgid "Step length (px):" -msgstr "Lunghezza passi (px)" +msgid "Subdivisions per Major Y Division:" +msgstr "Sottodivisioni per divisione principale X" -#: ../share/extensions/lindenmayer.inx.h:8 -#, fuzzy, no-c-format -msgid "Randomize step (%):" -msgstr "CasualitĂ  passo (%)" +#: ../share/extensions/grid_cartesian.inx.h:17 +msgid "Logarithmic Y Subdiv. (Base given by entry above)" +msgstr "Suddivisione logaritmica Y (base specificata nella voce precedente)." -#: ../share/extensions/lindenmayer.inx.h:9 +#: ../share/extensions/grid_cartesian.inx.h:18 #, fuzzy -msgid "Left angle:" -msgstr "Angolo sinistro" +msgid "Subsubdivs. per Y Subdivision:" +msgstr "Sottodivisioni minori per ogni sottodivisione su X" -#: ../share/extensions/lindenmayer.inx.h:10 +#: ../share/extensions/grid_cartesian.inx.h:19 #, fuzzy -msgid "Right angle:" -msgstr "Angolo destro" - -#: ../share/extensions/lindenmayer.inx.h:12 -#, fuzzy, no-c-format -msgid "Randomize angle (%):" -msgstr "CasualitĂ  angolo (%)" - -#: ../share/extensions/lindenmayer.inx.h:14 -msgid "" -"\n" -"The path is generated by applying the \n" -"substitutions of Rules to the Axiom, \n" -"Order times. The following commands are \n" -"recognized in Axiom and Rules:\n" -"\n" -"Any of A,B,C,D,E,F: draw forward \n" -"\n" -"Any of G,H,I,J,K,L: move forward \n" -"\n" -"+: turn left\n" -"\n" -"-: turn right\n" -"\n" -"|: turn 180 degrees\n" -"\n" -"[: remember point\n" -"\n" -"]: return to remembered point\n" +msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" msgstr "" -"\n" -"Il tracciato verrĂ  generato applicando le \n" -"sostituzioni definite Regole all'Assioma, in \n" -"numero pari a Ordine. Sono riconosciuti i \n" -"seguenti comandi in Regole e Assioma:\n" -"\n" -"Uno tra A,B,C,D,E,F: disegna dritto \n" -"\n" -"Uno tra G,H,I,J,K,L: muovi dritto \n" -"\n" -"+: gira a sinistra\n" -"\n" -"-: gira a destra\n" -"\n" -"|: ruota di 180 gradi\n" -"\n" -"[: memorizza punto \n" -"\n" -"]: ritorna al punto memorizzato\n" +"MetĂ  sottodivisione secondaria Y. Frequenza dopo \"n\" suddivisioni (solo " +"log)." -#: ../share/extensions/lorem_ipsum.inx.h:1 -msgid "Lorem ipsum" -msgstr "Lorem ipsum" +#: ../share/extensions/grid_cartesian.inx.h:20 +#, fuzzy +msgid "Major Y Division Thickness (px):" +msgstr "Spessore divisioni Y primarie [px]" -#: ../share/extensions/lorem_ipsum.inx.h:3 +#: ../share/extensions/grid_cartesian.inx.h:21 #, fuzzy -msgid "Number of paragraphs:" -msgstr "Numero di paragrafi" +msgid "Minor Y Division Thickness (px):" +msgstr "Spessore divisioni Y secondarie [px]" -#: ../share/extensions/lorem_ipsum.inx.h:4 +#: ../share/extensions/grid_cartesian.inx.h:22 #, fuzzy -msgid "Sentences per paragraph:" -msgstr "Frasi per paragrafo" +msgid "Subminor Y Division Thickness (px):" +msgstr "Spessore sottodivisioni minori Y [px]" -#: ../share/extensions/lorem_ipsum.inx.h:5 +#: ../share/extensions/grid_isometric.inx.h:1 #, fuzzy -msgid "Paragraph length fluctuation (sentences):" -msgstr "Lunghezza paragrafo (numero frasi)" +msgid "Isometric Grid" +msgstr "Griglia assonometrica" -#: ../share/extensions/lorem_ipsum.inx.h:7 -msgid "" -"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder " -"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " -"new flowed text object, the size of the page, is created in a new layer." +#: ../share/extensions/grid_isometric.inx.h:2 +#, fuzzy +msgid "X Divisions [x2]:" +msgstr "Divisioni X principali" + +#: ../share/extensions/grid_isometric.inx.h:3 +msgid "Y Divisions [x2] [> 1/2 X Div]:" msgstr "" -"Questo effetto crea il testo segnaposto pseudolatino standard «Lorem Ipsum». " -"Se è stato selezionato un testo dinamico, Lorem Ipsum viene accodato ad " -"esso; altrimenti viene creato in un nuovo livello un testo dinamico, della " -"larghezza della pagina intera." -#: ../share/extensions/markers_strokepaint.inx.h:1 +#: ../share/extensions/grid_isometric.inx.h:4 #, fuzzy -msgid "Color Markers" -msgstr "Barra colori" +msgid "Division Spacing (px):" +msgstr "Spaziatura divisioni X primarie [px]" -#: ../share/extensions/markers_strokepaint.inx.h:2 +#: ../share/extensions/grid_isometric.inx.h:5 #, fuzzy -msgid "From object" -msgstr "Nessun oggetto" +msgid "Subdivisions per Major Division:" +msgstr "Sottodivisioni per divisione principale X" -#: ../share/extensions/markers_strokepaint.inx.h:3 +#: ../share/extensions/grid_isometric.inx.h:6 #, fuzzy -msgid "Marker type:" -msgstr "Delimitatore" +msgid "Subsubdivs per Subdivision:" +msgstr "Sottodivisioni minori per ogni sottodivisione su X" -#: ../share/extensions/markers_strokepaint.inx.h:4 +#: ../share/extensions/grid_isometric.inx.h:7 #, fuzzy -msgid "Invert fill and stroke colors" -msgstr "Imposta colore contorno" +msgid "Major Division Thickness (px):" +msgstr "Spessore divisioni X primarie [px]" -#: ../share/extensions/markers_strokepaint.inx.h:5 +#: ../share/extensions/grid_isometric.inx.h:8 #, fuzzy -msgid "Assign alpha" -msgstr "Assegna opacitĂ " - -#: ../share/extensions/markers_strokepaint.inx.h:6 -msgid "solid" -msgstr "" +msgid "Minor Division Thickness (px):" +msgstr "Spessore divisioni X secondarie [px]" -#: ../share/extensions/markers_strokepaint.inx.h:7 +#: ../share/extensions/grid_isometric.inx.h:9 #, fuzzy -msgid "filled" -msgstr "Parallelo" +msgid "Subminor Division Thickness (px):" +msgstr "Spessore sottodivisioni minori Y [px]" -#: ../share/extensions/markers_strokepaint.inx.h:10 -#, fuzzy -msgid "Assign fill color" -msgstr "Imposta colore di riempimento" +#: ../share/extensions/grid_polar.inx.h:1 +msgid "Polar Grid" +msgstr "Griglia polare" -#: ../share/extensions/markers_strokepaint.inx.h:11 +#: ../share/extensions/grid_polar.inx.h:2 #, fuzzy -msgid "Stroke" -msgstr "Contorno:" +msgid "Centre Dot Diameter (px):" +msgstr "Diametro punto centrale [px]" -#: ../share/extensions/markers_strokepaint.inx.h:12 +#: ../share/extensions/grid_polar.inx.h:3 #, fuzzy -msgid "Assign stroke color" -msgstr "Imposta colore contorno" - -#: ../share/extensions/measure.inx.h:1 -msgid "Measure Path" -msgstr "Misura tracciato" +msgid "Circumferential Labels:" +msgstr "Etichetta circonferenza" -#: ../share/extensions/measure.inx.h:2 -msgid "Measure" -msgstr "Misura" +#: ../share/extensions/grid_polar.inx.h:5 +msgid "Degrees" +msgstr "Gradi" -#: ../share/extensions/measure.inx.h:3 +#: ../share/extensions/grid_polar.inx.h:6 #, fuzzy -msgid "Measurement Type: " -msgstr "UnitĂ  di misura:" +msgid "Circumferential Label Size (px):" +msgstr "Dimensione etichetta circonferenza [px]" -#: ../share/extensions/measure.inx.h:4 +#: ../share/extensions/grid_polar.inx.h:7 #, fuzzy -msgid "Text Orientation: " -msgstr "Orientamento" +msgid "Circumferential Label Outset (px):" +msgstr "Spostamento etichetta circonferenza [px]" -#: ../share/extensions/measure.inx.h:5 -msgid "Angle [with Fixed Angle option only] (°):" -msgstr "" +#: ../share/extensions/grid_polar.inx.h:8 +#, fuzzy +msgid "Circular Divisions" +msgstr "Divisioni circolari principali" -#: ../share/extensions/measure.inx.h:6 +#: ../share/extensions/grid_polar.inx.h:9 #, fuzzy -msgid "Font size (px):" -msgstr "Dimensione carattere [px]" +msgid "Major Circular Divisions:" +msgstr "Divisioni circolari principali" -#: ../share/extensions/measure.inx.h:7 +#: ../share/extensions/grid_polar.inx.h:10 #, fuzzy -msgid "Offset (px):" -msgstr "Scostamento x" +msgid "Major Circular Division Spacing (px):" +msgstr "Spaziatura divisioni circolari primarie [px]" -#: ../share/extensions/measure.inx.h:8 +#: ../share/extensions/grid_polar.inx.h:11 #, fuzzy -msgid "Precision:" -msgstr "Precisione" +msgid "Subdivisions per Major Circular Division:" +msgstr "Sottodivisioni per divisioni circolari principali" -#: ../share/extensions/measure.inx.h:9 -msgid "Scale Factor (Drawing:Real Length) = 1:" -msgstr "Fattore di riduzione (Disegno:Lughezza reale) = 1" +#: ../share/extensions/grid_polar.inx.h:12 +msgid "Logarithmic Subdiv. (Base given by entry above)" +msgstr "Suddivisione logaritmica (base specificata nella voce precedente)." -#: ../share/extensions/measure.inx.h:10 +#: ../share/extensions/grid_polar.inx.h:13 #, fuzzy -msgid "Length Unit:" -msgstr "UnitĂ  di lunghezza:" +msgid "Major Circular Division Thickness (px):" +msgstr "Spessore divisioni circolari principali [px]" -#: ../share/extensions/measure.inx.h:12 +#: ../share/extensions/grid_polar.inx.h:14 #, fuzzy -msgctxt "measure extension" -msgid "Area" -msgstr "Armeno (hy)" +msgid "Minor Circular Division Thickness (px):" +msgstr "Spessore divisioni circolari secondarie [px]" -#: ../share/extensions/measure.inx.h:13 +#: ../share/extensions/grid_polar.inx.h:15 #, fuzzy -msgctxt "measure extension" -msgid "Center of Mass" -msgstr "Inerzia pennino" +msgid "Angular Divisions" +msgstr "Divisione angolo" -#: ../share/extensions/measure.inx.h:14 +#: ../share/extensions/grid_polar.inx.h:16 #, fuzzy -msgctxt "measure extension" -msgid "Text On Path" -msgstr "Metti su tracciato" +msgid "Angle Divisions:" +msgstr "Divisione angolo" -#: ../share/extensions/measure.inx.h:15 +#: ../share/extensions/grid_polar.inx.h:17 #, fuzzy -msgctxt "measure extension" -msgid "Fixed Angle" -msgstr "Angolo de" - -#: ../share/extensions/measure.inx.h:18 -#, fuzzy, no-c-format -msgid "" -"This effect measures the length, area, or center-of-mass of the selected " -"paths. Length and area are added as a text object with the selected units. " -"Center-of-mass is shown as a cross symbol.\n" -"\n" -" * Text display format can be either Text-On-Path, or stand-alone text at a " -"specified angle.\n" -" * The number of significant digits can be controlled by the Precision " -"field.\n" -" * The Offset field controls the distance from the text to the path.\n" -" * The Scale factor can be used to make measurements in scaled drawings. " -"For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " -"must be set to 250.\n" -" * When calculating area, the result should be precise for polygons and " -"Bezier curves. If a circle is used, the area may be too high by as much as " -"0.03%." -msgstr "" -"Questo effetto misura la lunghezza del tracciato selezionato e ne crea un " -"testo su tracciato con l'unitĂ  di misura specificata. Il numero di cifre " -"significative può essere controllato tramite il campo Precisione. Il campo " -"Margine controlla la distanza del testo dal tracciato. Il fattore di " -"riduzione può essere usato per fare misure di disegni in scala. Per esempio, " -"se un 1 cm nel disegno corrisponde a 2.5 m nella realtĂ , il fattore " -"dev'essere impostato a 250." +msgid "Angle Divisions at Centre:" +msgstr "Divisione angolo al centro" -#: ../share/extensions/merge_styles.inx.h:1 -msgid "Merge Styles into CSS" -msgstr "" +#: ../share/extensions/grid_polar.inx.h:18 +#, fuzzy +msgid "Subdivisions per Major Angular Division:" +msgstr "Sottodivisioni per divisioni angolari principali" -#: ../share/extensions/merge_styles.inx.h:2 -msgid "" -"All selected nodes will be grouped together and their common style " -"attributes will create a new class, this class will replace the existing " -"inline style attributes. Please use a name which best describes the kinds of " -"objects and their common context for best effect." +#: ../share/extensions/grid_polar.inx.h:19 +#, fuzzy +msgid "Minor Angle Division End 'n' Divs. Before Centre:" msgstr "" +"Le divisioni secondarie d'angolo terminano \"n\" divisioni prima del centro" -#: ../share/extensions/merge_styles.inx.h:3 -msgid "New Class Name:" -msgstr "" +#: ../share/extensions/grid_polar.inx.h:20 +#, fuzzy +msgid "Major Angular Division Thickness (px):" +msgstr "Spessore divisioni angolari principali [px]" -#: ../share/extensions/merge_styles.inx.h:4 +#: ../share/extensions/grid_polar.inx.h:21 #, fuzzy -msgid "Stylesheet" -msgstr "Stile" +msgid "Minor Angular Division Thickness (px):" +msgstr "Spessore divisioni angolari secondarie [px]" -#: ../share/extensions/motion.inx.h:1 -msgid "Motion" -msgstr "Movimento" +#: ../share/extensions/guides_creator.inx.h:1 +msgid "Guides creator" +msgstr "Creazione guide" -#: ../share/extensions/motion.inx.h:2 +#: ../share/extensions/guides_creator.inx.h:2 #, fuzzy -msgid "Magnitude:" -msgstr "Ordine" +msgid "Regular guides" +msgstr "Griglia rettangolare" -#: ../share/extensions/new_glyph_layer.inx.h:1 +#: ../share/extensions/guides_creator.inx.h:3 #, fuzzy -msgid "2 - Add Glyph Layer" -msgstr "Aggiungi glifo" +msgid "Guides preset:" +msgstr "Creazione guide" -#: ../share/extensions/new_glyph_layer.inx.h:2 -#, fuzzy -msgid "Unicode character:" -msgstr "Inserisci carattere Unicode" +#: ../share/extensions/guides_creator.inx.h:6 +msgid "Start from edges" +msgstr "Parte dallo spigolo" -#: ../share/extensions/next_glyph_layer.inx.h:1 -msgid "View Next Glyph" -msgstr "" +#: ../share/extensions/guides_creator.inx.h:7 +msgid "Delete existing guides" +msgstr "Cancella guide esistenti" -#: ../share/extensions/param_curves.inx.h:1 -msgid "Parametric Curves" -msgstr "Curva parametrica" +#: ../share/extensions/guides_creator.inx.h:8 +msgid "Custom..." +msgstr "Personalizzata..." -#: ../share/extensions/param_curves.inx.h:2 -msgid "Range and Sampling" -msgstr "Intervallo e campioni" +#: ../share/extensions/guides_creator.inx.h:9 +msgid "Golden ratio" +msgstr "Rapporto aureo" -#: ../share/extensions/param_curves.inx.h:3 +#: ../share/extensions/guides_creator.inx.h:10 +msgid "Rule-of-third" +msgstr "Regola del terzo" + +#: ../share/extensions/guides_creator.inx.h:11 #, fuzzy -msgid "Start t-value:" -msgstr "Valore iniziale di t" +msgid "Diagonal guides" +msgstr "Aggancia alle guide" -#: ../share/extensions/param_curves.inx.h:4 +#: ../share/extensions/guides_creator.inx.h:12 +#, fuzzy +msgid "Upper left corner" +msgstr "angolo pagina" + +#: ../share/extensions/guides_creator.inx.h:13 +#, fuzzy +msgid "Upper right corner" +msgstr "angolo pagina" + +#: ../share/extensions/guides_creator.inx.h:14 #, fuzzy -msgid "End t-value:" -msgstr "Valore finale di t" +msgid "Lower left corner" +msgstr "Abbassa il livello attuale" -#: ../share/extensions/param_curves.inx.h:5 +#: ../share/extensions/guides_creator.inx.h:15 #, fuzzy -msgid "Multiply t-range by 2*pi" -msgstr "Moltiplica intervallo t di 2*pi" +msgid "Lower right corner" +msgstr "Abbassa il livello attuale" -#: ../share/extensions/param_curves.inx.h:6 +#: ../share/extensions/guides_creator.inx.h:16 #, fuzzy -msgid "X-value of rectangle's left:" -msgstr "Valore y del lato superiore del rettangolo" +msgid "Margins" +msgstr "riquadro immagine" -#: ../share/extensions/param_curves.inx.h:7 +#: ../share/extensions/guides_creator.inx.h:17 +msgid "Margins preset:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:18 #, fuzzy -msgid "X-value of rectangle's right:" -msgstr "Valore y del lato superiore del rettangolo" +msgid "Header margin:" +msgstr "Angolo sinistro" -#: ../share/extensions/param_curves.inx.h:8 +#: ../share/extensions/guides_creator.inx.h:19 #, fuzzy -msgid "Y-value of rectangle's bottom:" -msgstr "Valore y per il bordo inferiore del rettangolo" +msgid "Footer margin:" +msgstr "Margine del mese" -#: ../share/extensions/param_curves.inx.h:9 +#: ../share/extensions/guides_creator.inx.h:20 #, fuzzy -msgid "Y-value of rectangle's top:" -msgstr "Valore y del lato superiore del rettangolo" +msgid "Left margin:" +msgstr "Angolo sinistro" -#: ../share/extensions/param_curves.inx.h:10 +#: ../share/extensions/guides_creator.inx.h:21 #, fuzzy -msgid "Samples:" -msgstr "Campioni" +msgid "Right margin:" +msgstr "Angolo destro" -#: ../share/extensions/param_curves.inx.h:14 +#: ../share/extensions/guides_creator.inx.h:22 #, fuzzy -msgid "" -"Select a rectangle before calling the extension, it will determine X and Y " -"scales.\n" -"First derivatives are always determined numerically." -msgstr "" -"Selezionare un rettangolo prima di applicare l'estensione, \n" -" servirĂ  a determinare le scale X e Y.\n" -"\n" -"La prima derivata è sempre calcolata numericamente." +msgid "Left book page" +msgstr "Angolo sinistro" -#: ../share/extensions/param_curves.inx.h:26 +#: ../share/extensions/guides_creator.inx.h:23 #, fuzzy -msgid "X-Function:" -msgstr "Funzione x" +msgid "Right book page" +msgstr "Angolo destro" -#: ../share/extensions/param_curves.inx.h:27 +#: ../share/extensions/guillotine.inx.h:1 #, fuzzy -msgid "Y-Function:" -msgstr "Funzione x" +msgid "Guillotine" +msgstr "Linee guida" -#: ../share/extensions/pathalongpath.inx.h:1 -msgid "Pattern along Path" -msgstr "Motivo lungo tracciato" +#: ../share/extensions/guillotine.inx.h:2 +msgid "Directory to save images to:" +msgstr "Percorso in cui salvare l'immagine:" -#: ../share/extensions/pathalongpath.inx.h:3 -msgid "Copies of the pattern:" -msgstr "Copie del motivo:" +#: ../share/extensions/guillotine.inx.h:3 +msgid "Image name (without extension):" +msgstr "Nome immagine (senza estensione):" -#: ../share/extensions/pathalongpath.inx.h:4 -msgid "Deformation type:" -msgstr "Tipo di deformazione:" +#: ../share/extensions/guillotine.inx.h:4 +msgid "Ignore these settings and use export hints" +msgstr "" -#: ../share/extensions/pathalongpath.inx.h:5 -#: ../share/extensions/pathscatter.inx.h:5 -msgid "Space between copies:" -msgstr "Spaziatura tra le copie:" +#: ../share/extensions/handles.inx.h:1 +msgid "Draw Handles" +msgstr "Disegna maniglie" -#: ../share/extensions/pathalongpath.inx.h:6 -#: ../share/extensions/pathscatter.inx.h:6 -#, fuzzy -msgid "Normal offset:" -msgstr "Proiezione normale" +#: ../share/extensions/hershey.inx.h:1 +msgid "Hershey Text" +msgstr "" -#: ../share/extensions/pathalongpath.inx.h:7 -#: ../share/extensions/pathscatter.inx.h:7 +#: ../share/extensions/hershey.inx.h:2 #, fuzzy -msgid "Tangential offset:" -msgstr "Proiezione tangenziale" - -#: ../share/extensions/pathalongpath.inx.h:8 -#: ../share/extensions/pathscatter.inx.h:8 -msgid "Pattern is vertical" -msgstr "Motivo verticale" +msgid "Render Text" +msgstr "Render" -#: ../share/extensions/pathalongpath.inx.h:9 -#: ../share/extensions/pathscatter.inx.h:10 -msgid "Duplicate the pattern before deformation" -msgstr "Duplica il motivo prima della deformazione" +#: ../share/extensions/hershey.inx.h:3 +#: ../share/extensions/render_alphabetsoup.inx.h:2 +#: ../share/extensions/render_barcode_datamatrix.inx.h:2 +#: ../share/extensions/render_barcode_qrcode.inx.h:3 +#, fuzzy +msgid "Text:" +msgstr "Testo:" -# ehm ?! -#: ../share/extensions/pathalongpath.inx.h:14 -msgid "Snake" -msgstr "Serpente" +#: ../share/extensions/hershey.inx.h:4 +#, fuzzy +msgid "Action: " +msgstr "Accelerazione:" -#: ../share/extensions/pathalongpath.inx.h:15 -msgid "Ribbon" -msgstr "Nastro" +#: ../share/extensions/hershey.inx.h:5 +#, fuzzy +msgid "Font face: " +msgstr "Dimensione carattere:" -#: ../share/extensions/pathalongpath.inx.h:17 +#: ../share/extensions/hershey.inx.h:6 #, fuzzy -msgid "" -"This effect scatters or bends a pattern along arbitrary \"skeleton\" paths. " -"The pattern is the topmost object in the selection. Groups of paths, shapes " -"or clones are allowed." -msgstr "" -"Questo effetto sparge elementi di un motivo lungo tracciati \"scheletro\" " -"arbitrari. Il motivo deve essere l'oggetto in cima alla selezione. Sono " -"permessi gruppi di tracciati, forme e cloni." +msgid "Typeset that text" +msgstr "Inserimento testo" -#: ../share/extensions/pathscatter.inx.h:1 -msgid "Scatter" -msgstr "Sciame" +#: ../share/extensions/hershey.inx.h:7 +#, fuzzy +msgid "Write glyph table" +msgstr "Modifica nome glifo" -#: ../share/extensions/pathscatter.inx.h:3 -msgid "Follow path orientation" -msgstr "Segui orientamento tracciato:" +#: ../share/extensions/hershey.inx.h:8 +#, fuzzy +msgid "Sans 1-stroke" +msgstr "Disattiva contorno" -#: ../share/extensions/pathscatter.inx.h:4 -msgid "Stretch spaces to fit skeleton length" -msgstr "Stira gli spazi per adattarsi alla lunghezza dello scheletro" +#: ../share/extensions/hershey.inx.h:9 +#, fuzzy +msgid "Sans bold" +msgstr "Rendi grassetto" -#: ../share/extensions/pathscatter.inx.h:9 -msgid "Original pattern will be:" -msgstr "La trama originale sarĂ :" +#: ../share/extensions/hershey.inx.h:10 +#, fuzzy +msgid "Serif medium" +msgstr "media" -#: ../share/extensions/pathscatter.inx.h:11 -msgid "If pattern is a group, pick group members" +#: ../share/extensions/hershey.inx.h:11 +msgid "Serif medium italic" msgstr "" -#: ../share/extensions/pathscatter.inx.h:12 -msgid "Pick group members:" +#: ../share/extensions/hershey.inx.h:12 +msgid "Serif bold italic" msgstr "" -#: ../share/extensions/pathscatter.inx.h:13 -msgid "Moved" -msgstr "Spostato" +#: ../share/extensions/hershey.inx.h:13 +#, fuzzy +msgid "Serif bold" +msgstr "Rendi grassetto" -#: ../share/extensions/pathscatter.inx.h:14 -msgid "Copied" -msgstr "Copiato" +#: ../share/extensions/hershey.inx.h:14 +#, fuzzy +msgid "Script 1-stroke" +msgstr "Imposta contorno" -#: ../share/extensions/pathscatter.inx.h:15 -msgid "Cloned" -msgstr "Clonato" +#: ../share/extensions/hershey.inx.h:15 +msgid "Script 1-stroke (alt)" +msgstr "" -#: ../share/extensions/pathscatter.inx.h:16 +#: ../share/extensions/hershey.inx.h:16 #, fuzzy -msgid "Randomly" -msgstr "CasualitĂ " +msgid "Script medium" +msgstr "Script" -#: ../share/extensions/pathscatter.inx.h:17 +#: ../share/extensions/hershey.inx.h:17 #, fuzzy -msgid "Sequentially" -msgstr "Imposta riempimento" +msgid "Gothic English" +msgstr "Accrescimento" -#: ../share/extensions/pathscatter.inx.h:19 -msgid "" -"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " -"pattern must be the topmost object in the selection. Groups of paths, " -"shapes, clones are allowed." -msgstr "" -"Questo effetto sparge elementi di un motivo lungo tracciati \"scheletro\" " -"arbitrari. Il motivo deve essere l'oggetto in cima alla selezione. Sono " -"permessi gruppi di tracciati, forme e cloni." +#: ../share/extensions/hershey.inx.h:18 +#, fuzzy +msgid "Gothic German" +msgstr "Accrescimento" -#: ../share/extensions/perfectboundcover.inx.h:1 -msgid "Perfect-Bound Cover Template" -msgstr "Copertina" +#: ../share/extensions/hershey.inx.h:19 +#, fuzzy +msgid "Gothic Italian" +msgstr "Accrescimento" -#: ../share/extensions/perfectboundcover.inx.h:2 -msgid "Book Properties" -msgstr "ProprietĂ  libro" +#: ../share/extensions/hershey.inx.h:20 +#, fuzzy +msgid "Greek 1-stroke" +msgstr "Imposta contorno" -#: ../share/extensions/perfectboundcover.inx.h:3 +#: ../share/extensions/hershey.inx.h:21 #, fuzzy -msgid "Book Width (inches):" -msgstr "Larghezza libro (pollici)" +msgid "Greek medium" +msgstr "media" -#: ../share/extensions/perfectboundcover.inx.h:4 +#: ../share/extensions/hershey.inx.h:23 #, fuzzy -msgid "Book Height (inches):" -msgstr "Altezza libro (pollici)" +msgid "Japanese" +msgstr "Evanescente" -#: ../share/extensions/perfectboundcover.inx.h:5 +#: ../share/extensions/hershey.inx.h:24 #, fuzzy -msgid "Number of Pages:" -msgstr "Numero di pagine" +msgid "Astrology" +msgstr "Morfologia" -#: ../share/extensions/perfectboundcover.inx.h:6 -msgid "Remove existing guides" -msgstr "Cancella guide esistenti" +#: ../share/extensions/hershey.inx.h:25 +msgid "Math (lower)" +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:7 -msgid "Interior Pages" -msgstr "Pagine interne" +#: ../share/extensions/hershey.inx.h:26 +#, fuzzy +msgid "Math (upper)" +msgstr "Bisettrice perpendicolare" -#: ../share/extensions/perfectboundcover.inx.h:8 +#: ../share/extensions/hershey.inx.h:28 #, fuzzy -msgid "Paper Thickness Measurement:" -msgstr "UnitĂ  spessore carta" +msgid "Meteorology" +msgstr "Morfologia" -#: ../share/extensions/perfectboundcover.inx.h:9 -msgid "Pages Per Inch (PPI)" -msgstr "Pagine per pollice (PPI)" +#: ../share/extensions/hershey.inx.h:29 +msgid "Music" +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:10 -msgid "Caliper (inches)" -msgstr "Calibro (pollici)" +#: ../share/extensions/hershey.inx.h:30 +msgid "Symbolic" +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:11 -msgid "Points" -msgstr "Punti" +#: ../share/extensions/hershey.inx.h:31 +msgid "" +" \n" +"\n" +"\n" +"\n" +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:12 -msgid "Bond Weight #" -msgstr "Peso dichiarato" +#: ../share/extensions/hershey.inx.h:36 +msgid "About..." +msgstr "Informazioni..." -#: ../share/extensions/perfectboundcover.inx.h:13 -msgid "Specify Width" -msgstr "Specifica larghezza" +#: ../share/extensions/hershey.inx.h:37 +msgid "" +"\n" +"This extension renders a line of text using\n" +"\"Hershey\" fonts for plotters, derived from \n" +"NBS SP-424 1976-04, \"A contribution to \n" +"computer typesetting techniques: Tables of\n" +"Coordinates for Hershey's Repertory of\n" +"Occidental Type Fonts and Graphic Symbols.\"\n" +"\n" +"These are not traditional \"outline\" fonts, \n" +"but are instead \"single-stroke\" fonts, or\n" +"\"engraving\" fonts where the character is\n" +"formed by the stroke (and not the fill).\n" +"\n" +"For additional information, please visit:\n" +" www.evilmadscientist.com/go/hershey" +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:14 +#: ../share/extensions/hpgl_input.inx.h:1 #, fuzzy -msgid "Value:" -msgstr "Valore" - -#: ../share/extensions/perfectboundcover.inx.h:15 -msgid "Cover" -msgstr "Copertina" +msgid "HPGL Input" +msgstr "Input WPG" -#: ../share/extensions/perfectboundcover.inx.h:16 -#, fuzzy -msgid "Cover Thickness Measurement:" -msgstr "UnitĂ  spessore copertina" +#: ../share/extensions/hpgl_input.inx.h:2 +msgid "" +"Please note that you can only open HPGL files written by Inkscape, to open " +"other HPGL files please change their file extension to .plt, make sure you " +"have UniConverter installed and open them again." +msgstr "" -#: ../share/extensions/perfectboundcover.inx.h:17 +#: ../share/extensions/hpgl_input.inx.h:3 +#: ../share/extensions/hpgl_output.inx.h:4 +#: ../share/extensions/plotter.inx.h:23 #, fuzzy -msgid "Bleed (in):" -msgstr "Margine (in)" - -#: ../share/extensions/perfectboundcover.inx.h:18 -msgid "Note: Bond Weight # calculations are a best-guess estimate." -msgstr "Nota: i calcoli sul peso dichiaro sono frutto di una stima empirica" +msgid "Resolution X (dpi):" +msgstr "Risoluzione (punti per pollice)" -#: ../share/extensions/perspective.inx.h:1 -msgid "Perspective" -msgstr "Prospettiva" +#: ../share/extensions/hpgl_input.inx.h:4 +#: ../share/extensions/hpgl_output.inx.h:5 +#: ../share/extensions/plotter.inx.h:24 +msgid "" +"The amount of steps the plotter moves if it moves for 1 inch on the X axis " +"(Default: 1016.0)" +msgstr "" -#: ../share/extensions/pixelsnap.inx.h:1 +#: ../share/extensions/hpgl_input.inx.h:5 +#: ../share/extensions/hpgl_output.inx.h:6 +#: ../share/extensions/plotter.inx.h:25 #, fuzzy -msgid "PixelSnap" -msgstr "Pixel" +msgid "Resolution Y (dpi):" +msgstr "Risoluzione (punti per pollice)" -#: ../share/extensions/pixelsnap.inx.h:2 +#: ../share/extensions/hpgl_input.inx.h:6 +#: ../share/extensions/hpgl_output.inx.h:7 +#: ../share/extensions/plotter.inx.h:26 msgid "" -"Snap all paths in selection to pixels. Snaps borders to half-points and " -"fills to full points." +"The amount of steps the plotter moves if it moves for 1 inch on the Y axis " +"(Default: 1016.0)" msgstr "" -#: ../share/extensions/plotter.inx.h:1 -msgid "Plot" +#: ../share/extensions/hpgl_input.inx.h:7 +msgid "Show movements between paths" msgstr "" -#: ../share/extensions/plotter.inx.h:2 -msgid "" -"Please make sure that all objects you want to plot are converted to paths." +#: ../share/extensions/hpgl_input.inx.h:8 +msgid "Check this to show movements between paths (Default: Unchecked)" msgstr "" -#: ../share/extensions/plotter.inx.h:3 -#, fuzzy -msgid "Connection Settings " -msgstr "Connessione" +#: ../share/extensions/hpgl_input.inx.h:9 +#: ../share/extensions/hpgl_output.inx.h:34 +msgid "HP Graphics Language file (*.hpgl)" +msgstr "File HP Graphics Language (*.hpgl)" -#: ../share/extensions/plotter.inx.h:4 +#: ../share/extensions/hpgl_input.inx.h:10 #, fuzzy -msgid "Serial port:" -msgstr "Punto verticale:" +msgid "Import an HP Graphics Language file" +msgstr "Esporta un file HP Graphics Language" -#: ../share/extensions/plotter.inx.h:5 +#: ../share/extensions/hpgl_output.inx.h:1 +msgid "HPGL Output" +msgstr "Output HPGL" + +#: ../share/extensions/hpgl_output.inx.h:2 msgid "" -"The port of your serial connection, on Windows something like 'COM1', on " -"Linux something like: '/dev/ttyUSB0' (Default: COM1)" +"Please make sure that all objects you want to save are converted to paths. " +"Please use the plotter extension (Extensions menu) to plot directly over a " +"serial connection." msgstr "" -#: ../share/extensions/plotter.inx.h:6 +#: ../share/extensions/hpgl_output.inx.h:3 +#: ../share/extensions/plotter.inx.h:22 #, fuzzy -msgid "Serial baud rate:" -msgstr "_Verticale" +msgid "Plotter Settings " +msgstr "Impostazioni importazione PDF" -#: ../share/extensions/plotter.inx.h:7 -msgid "The Baud rate of your serial connection (Default: 9600)" +#: ../share/extensions/hpgl_output.inx.h:8 +#: ../share/extensions/plotter.inx.h:27 +#, fuzzy +msgid "Pen number:" +msgstr "Angolo de" + +#: ../share/extensions/hpgl_output.inx.h:9 +#: ../share/extensions/plotter.inx.h:28 +msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" -#: ../share/extensions/plotter.inx.h:8 -#, fuzzy -msgid "Flow control:" -msgstr "Navigazione" +#: ../share/extensions/hpgl_output.inx.h:10 +#: ../share/extensions/plotter.inx.h:29 +msgid "Pen force (g):" +msgstr "" -#: ../share/extensions/plotter.inx.h:9 +#: ../share/extensions/hpgl_output.inx.h:11 +#: ../share/extensions/plotter.inx.h:30 msgid "" -"The Software / Hardware flow control of your serial connection (Default: " -"Software)" +"The amount of force pushing down the pen in grams, set to 0 to omit command; " +"most plotters ignore this command (Default: 0)" msgstr "" -#: ../share/extensions/plotter.inx.h:10 +#: ../share/extensions/hpgl_output.inx.h:12 +#: ../share/extensions/plotter.inx.h:31 +msgid "Pen speed (cm/s or mm/s):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:13 +msgid "" +"The speed the pen will move with in centimeters or millimeters per second " +"(depending on your plotter model), set to 0 to omit command; most plotters " +"ignore this command (Default: 0)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:14 #, fuzzy -msgid "Command language:" -msgstr "Seconda lingua:" +msgid "Rotation (°, Clockwise):" +msgstr "Rotazione oraria" -#: ../share/extensions/plotter.inx.h:11 -msgid "The command language to use (Default: HPGL)" +#: ../share/extensions/hpgl_output.inx.h:15 +#: ../share/extensions/plotter.inx.h:34 +msgid "Rotation of the drawing (Default: 0°)" msgstr "" -#: ../share/extensions/plotter.inx.h:12 -msgid "Software (XON/XOFF)" +#: ../share/extensions/hpgl_output.inx.h:16 +#: ../share/extensions/plotter.inx.h:35 +#, fuzzy +msgid "Mirror X axis" +msgstr "Asse Y riflessione" + +#: ../share/extensions/hpgl_output.inx.h:17 +#: ../share/extensions/plotter.inx.h:36 +msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/hpgl_output.inx.h:18 +#: ../share/extensions/plotter.inx.h:37 #, fuzzy -msgid "Hardware (RTS/CTS)" -msgstr "Filo spinato" +msgid "Mirror Y axis" +msgstr "Asse Y riflessione" -#: ../share/extensions/plotter.inx.h:14 -msgid "Hardware (DSR/DTR + RTS/CTS)" +#: ../share/extensions/hpgl_output.inx.h:19 +#: ../share/extensions/plotter.inx.h:38 +msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "" -#: ../share/extensions/plotter.inx.h:16 -msgid "HPGL" +#: ../share/extensions/hpgl_output.inx.h:20 +#: ../share/extensions/plotter.inx.h:39 +#, fuzzy +msgid "Center zero point" +msgstr "Centra linee" + +#: ../share/extensions/hpgl_output.inx.h:21 +#: ../share/extensions/plotter.inx.h:40 +msgid "" +"Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "" -#: ../share/extensions/plotter.inx.h:17 -msgid "DMPL" -msgstr "" +#: ../share/extensions/hpgl_output.inx.h:22 +#: ../share/extensions/plotter.inx.h:41 +#, fuzzy +msgid "Plot Features " +msgstr "Cuoio" -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" +#: ../share/extensions/hpgl_output.inx.h:23 +#: ../share/extensions/plotter.inx.h:42 +msgid "Overcut (mm):" msgstr "" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/hpgl_output.inx.h:24 +#: ../share/extensions/plotter.inx.h:43 msgid "" -"Using wrong settings can under certain circumstances cause Inkscape to " -"freeze. Always save your work before plotting!" +"The distance in mm that will be cut over the starting point of the path to " +"prevent open paths, set to 0.0 to omit command (Default: 1.00)" msgstr "" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:44 +#, fuzzy +msgid "Tool offset (mm):" +msgstr "Proiezione orizzontale, px" + +#: ../share/extensions/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:45 msgid "" -"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " -"plotter manufacturer for drivers if needed." +"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " +"command (Default: 0.25)" msgstr "" -#: ../share/extensions/plotter.inx.h:21 -msgid "Parallel (LPT) connections are not supported." -msgstr "" +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:46 +#, fuzzy +msgid "Use precut" +msgstr "Impostazioni predefinita del sistema" -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:47 msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command. Most plotters " -"ignore this command. (Default: 0)" +"Check this to cut a small line before the real drawing starts to correctly " +"align the tool orientation. (Default: Checked)" msgstr "" -#: ../share/extensions/plotter.inx.h:33 -#, fuzzy -msgid "Rotation (°, clockwise):" -msgstr "Rotazione oraria" - -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:48 #, fuzzy -msgid "Show debug information" -msgstr "Informazioni sull'uso della memoria" +msgid "Curve flatness:" +msgstr "Appiattimento" -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:49 msgid "" -"Check this to get verbose information about the plot without actually " -"sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" +"Curves are divided into lines, this number controls how fine the curves will " +"be reproduced, the smaller the finer (Default: '1.2')" msgstr "" -#: ../share/extensions/plt_input.inx.h:1 -msgid "AutoCAD Plot Input" -msgstr "Input AutoCAD Plot" - -#: ../share/extensions/plt_input.inx.h:2 -#: ../share/extensions/plt_output.inx.h:2 -msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" -msgstr "File HP Graphics Language Plot [AutoCAD] (*.plt)" - -#: ../share/extensions/plt_input.inx.h:3 -msgid "Open HPGL plotter files" -msgstr "Apri file HPGL per plotter" +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:50 +#, fuzzy +msgid "Auto align" +msgstr "Allineamento" -#: ../share/extensions/plt_output.inx.h:1 -msgid "AutoCAD Plot Output" -msgstr "Output AutoCAD Plot" +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:51 +msgid "" +"Check this to auto align the drawing to the zero point (Plus the tool offset " +"if used). If unchecked you have to make sure that all parts of your drawing " +"are within the document border! (Default: Checked)" +msgstr "" -#: ../share/extensions/plt_output.inx.h:3 -msgid "Save a file for plotters" -msgstr "Salva un file per plotter" +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:54 +msgid "" +"All these settings depend on the plotter you use, for more information " +"please consult the manual or homepage for your plotter." +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:1 -msgid "3D Polyhedron" -msgstr "Poliedro 3D" +#: ../share/extensions/hpgl_output.inx.h:35 +#, fuzzy +msgid "Export an HP Graphics Language file" +msgstr "Esporta un file HP Graphics Language" -#: ../share/extensions/polyhedron_3d.inx.h:2 -msgid "Model file" -msgstr "File modello" +#: ../share/extensions/ink2canvas.inx.h:1 +#, fuzzy +msgid "Convert to html5 canvas" +msgstr "Converti in tratti" -#: ../share/extensions/polyhedron_3d.inx.h:3 -msgid "Object:" -msgstr "Oggetto:" +#: ../share/extensions/ink2canvas.inx.h:2 +msgid "HTML 5 canvas (*.html)" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:4 -msgid "Filename:" -msgstr "Nome file:" +#: ../share/extensions/ink2canvas.inx.h:3 +msgid "HTML 5 canvas code" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:5 +#: ../share/extensions/inkscape_follow_link.inx.h:1 #, fuzzy -msgid "Object Type:" -msgstr "Tipo oggetto" - -#: ../share/extensions/polyhedron_3d.inx.h:6 -msgid "Clockwise wound object" -msgstr "Ruota oggetto in senso orario" - -#: ../share/extensions/polyhedron_3d.inx.h:7 -msgid "Cube" -msgstr "Cubo" +msgid "Follow Link" +msgstr "Segui Collegamento" -#: ../share/extensions/polyhedron_3d.inx.h:8 -msgid "Truncated Cube" -msgstr "Cubo tronco" +#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 +msgid "Ask Us a Question" +msgstr "Domande e risposte" -#: ../share/extensions/polyhedron_3d.inx.h:9 -msgid "Snub Cube" -msgstr "Cubo camuso" +#: ../share/extensions/inkscape_help_commandline.inx.h:1 +msgid "Command Line Options" +msgstr "Opzioni da linea di comando" -#: ../share/extensions/polyhedron_3d.inx.h:10 -msgid "Cuboctahedron" -msgstr "Cubottaedro" +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_commandline.inx.h:3 +msgid "http://inkscape.org/doc/inkscape-man.html" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:11 -msgid "Tetrahedron" -msgstr "Tetra edro" +#: ../share/extensions/inkscape_help_faq.inx.h:1 +msgid "FAQ" +msgstr "FAQ" -#: ../share/extensions/polyhedron_3d.inx.h:12 -msgid "Truncated Tetrahedron" -msgstr "Tetraedro tronco" +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_faq.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:13 -msgid "Octahedron" -msgstr "Ottaedro" +#: ../share/extensions/inkscape_help_keys.inx.h:1 +msgid "Keys and Mouse Reference" +msgstr "Scorciatoie con mouse e tastiera" -#: ../share/extensions/polyhedron_3d.inx.h:14 -msgid "Truncated Octahedron" -msgstr "Ottaedro tronco" +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_keys.inx.h:3 +msgid "http://inkscape.org/doc/keys048.html" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:15 -msgid "Icosahedron" -msgstr "Icosaedro" +#: ../share/extensions/inkscape_help_manual.inx.h:1 +msgid "Inkscape Manual" +msgstr "Manuale di Inkscape" -#: ../share/extensions/polyhedron_3d.inx.h:16 -msgid "Truncated Icosahedron" -msgstr "Icosaedro tronco" +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_manual.inx.h:3 +msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:17 -msgid "Small Triambic Icosahedron" -msgstr "Piccolo icosaedro triambico" +#: ../share/extensions/inkscape_help_relnotes.inx.h:1 +msgid "New in This Version" +msgstr "NovitĂ  di questa versione" -#: ../share/extensions/polyhedron_3d.inx.h:18 -msgid "Dodecahedron" -msgstr "Dodecaedro" +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_relnotes.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91" +msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:19 -msgid "Truncated Dodecahedron" -msgstr "Dodecaedro tronco" +#: ../share/extensions/inkscape_help_reportabug.inx.h:1 +msgid "Report a Bug" +msgstr "Segnala un bug" -#: ../share/extensions/polyhedron_3d.inx.h:20 -msgid "Snub Dodecahedron" -msgstr "Dodecaedro camuso" +#: ../share/extensions/inkscape_help_svgspec.inx.h:1 +msgid "SVG 1.1 Specification" +msgstr "Specifiche SVG 1.1" -#: ../share/extensions/polyhedron_3d.inx.h:21 -msgid "Great Dodecahedron" -msgstr "Grande dodecaedro" +#: ../share/extensions/interp.inx.h:1 +msgid "Interpolate" +msgstr "Interpola" -#: ../share/extensions/polyhedron_3d.inx.h:22 -msgid "Great Stellated Dodecahedron" -msgstr "Grande dodecaedro stellato" +#: ../share/extensions/interp.inx.h:3 +msgid "Interpolation steps:" +msgstr "Passi d'interpolazione:" -#: ../share/extensions/polyhedron_3d.inx.h:23 -msgid "Load from file" -msgstr "Carica da file" +#: ../share/extensions/interp.inx.h:4 +msgid "Interpolation method:" +msgstr "Metodo d'interpolazione:" -#: ../share/extensions/polyhedron_3d.inx.h:24 -msgid "Face-Specified" -msgstr "Specifico alla faccia" +#: ../share/extensions/interp.inx.h:5 +msgid "Duplicate endpaths" +msgstr "Duplica nodi finale" -#: ../share/extensions/polyhedron_3d.inx.h:25 -msgid "Edge-Specified" -msgstr "Specifico allo spigolo" +#: ../share/extensions/interp.inx.h:6 +msgid "Interpolate style" +msgstr "Stile d'interpolazione" -#: ../share/extensions/polyhedron_3d.inx.h:27 -msgid "Rotate around:" -msgstr "Ruota attorno:" +#: ../share/extensions/interp_att_g.inx.h:1 +msgid "Interpolate Attribute in a group" +msgstr "Interpola attributi in un gruppo" -#: ../share/extensions/polyhedron_3d.inx.h:28 -#: ../share/extensions/spirograph.inx.h:8 -#: ../share/extensions/wireframe_sphere.inx.h:5 +#: ../share/extensions/interp_att_g.inx.h:3 #, fuzzy -msgid "Rotation (deg):" -msgstr "Rotazione (gradi)" - -#: ../share/extensions/polyhedron_3d.inx.h:29 -msgid "Then rotate around:" -msgstr "Quindi ruota attorno:" - -#: ../share/extensions/polyhedron_3d.inx.h:30 -msgid "X-Axis" -msgstr "Asse X" - -#: ../share/extensions/polyhedron_3d.inx.h:31 -msgid "Y-Axis" -msgstr "Asse Y" - -#: ../share/extensions/polyhedron_3d.inx.h:32 -msgid "Z-Axis" -msgstr "Asse Z" +msgid "Attribute to Interpolate:" +msgstr "Attributo da interpolare" -#: ../share/extensions/polyhedron_3d.inx.h:34 +#: ../share/extensions/interp_att_g.inx.h:4 #, fuzzy -msgid "Scaling factor:" -msgstr "Fattore di ingrandimento" +msgid "Other Attribute:" +msgstr "Altro attributo" -#: ../share/extensions/polyhedron_3d.inx.h:35 +#: ../share/extensions/interp_att_g.inx.h:5 #, fuzzy -msgid "Fill color, Red:" -msgstr "Colore riempimento, rosso" +msgid "Other Attribute type:" +msgstr "Altro tipo d'attributo" -#: ../share/extensions/polyhedron_3d.inx.h:36 +#: ../share/extensions/interp_att_g.inx.h:6 #, fuzzy -msgid "Fill color, Green:" -msgstr "Colore riempimento, verde" +msgid "Apply to:" +msgstr "Applica filtro" -#: ../share/extensions/polyhedron_3d.inx.h:37 +#: ../share/extensions/interp_att_g.inx.h:7 #, fuzzy -msgid "Fill color, Blue:" -msgstr "Colore riempimento, blu" - -#: ../share/extensions/polyhedron_3d.inx.h:39 -#, fuzzy, no-c-format -msgid "Fill opacity (%):" -msgstr "OpacitĂ  riempimento, %" - -#: ../share/extensions/polyhedron_3d.inx.h:41 -#, fuzzy, no-c-format -msgid "Stroke opacity (%):" -msgstr "OpacitĂ  contorno, %" +msgid "Start Value:" +msgstr "Valore iniziale" -#: ../share/extensions/polyhedron_3d.inx.h:42 +#: ../share/extensions/interp_att_g.inx.h:8 #, fuzzy -msgid "Stroke width (px):" -msgstr "Larghezza contorno, px" +msgid "End Value:" +msgstr "Valore finale" -#: ../share/extensions/polyhedron_3d.inx.h:43 -msgid "Shading" -msgstr "Ombreggiatura" +#: ../share/extensions/interp_att_g.inx.h:13 +msgid "Translate X" +msgstr "Spostamento X" -#: ../share/extensions/polyhedron_3d.inx.h:44 -#, fuzzy -msgid "Light X:" -msgstr "Illuminazione X" +#: ../share/extensions/interp_att_g.inx.h:14 +msgid "Translate Y" +msgstr "Spostamento Y" -#: ../share/extensions/polyhedron_3d.inx.h:45 -#, fuzzy -msgid "Light Y:" -msgstr "Illuminazione Y" +#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/markers_strokepaint.inx.h:9 +msgid "Fill" +msgstr "Riempimento" -#: ../share/extensions/polyhedron_3d.inx.h:46 -#, fuzzy -msgid "Light Z:" -msgstr "Illuminazione Z" +#: ../share/extensions/interp_att_g.inx.h:17 +msgid "Other" +msgstr "Altro" -#: ../share/extensions/polyhedron_3d.inx.h:48 -msgid "Draw back-facing polygons" -msgstr "Disegna poligoni al contrario" +#: ../share/extensions/interp_att_g.inx.h:18 +#, fuzzy +msgid "" +"If you select \"Other\", you must know the SVG attributes to identify here " +"this \"other\"." +msgstr "" +"Se si seleziona «Altro», occorre conoscere gli attributi SVG per determinare " +"questo «altro»:" -#: ../share/extensions/polyhedron_3d.inx.h:49 -msgid "Z-sort faces by:" -msgstr "Ordina profonditĂ  facce per:" +#: ../share/extensions/interp_att_g.inx.h:20 +msgid "Integer Number" +msgstr "Numero intero" -#: ../share/extensions/polyhedron_3d.inx.h:50 -msgid "Faces" -msgstr "Facce" +#: ../share/extensions/interp_att_g.inx.h:21 +msgid "Float Number" +msgstr "Numero decimale" -#: ../share/extensions/polyhedron_3d.inx.h:51 -msgid "Edges" -msgstr "Spigoli" +#: ../share/extensions/interp_att_g.inx.h:22 +msgid "Tag" +msgstr "Etichetta" -#: ../share/extensions/polyhedron_3d.inx.h:52 -msgid "Vertices" -msgstr "Vertici" +#: ../share/extensions/interp_att_g.inx.h:23 +#: ../share/extensions/polyhedron_3d.inx.h:33 +msgid "Style" +msgstr "Stile" -#: ../share/extensions/polyhedron_3d.inx.h:53 -msgid "Maximum" -msgstr "Massimo" +#: ../share/extensions/interp_att_g.inx.h:24 +msgid "Transformation" +msgstr "Trasformazione" -#: ../share/extensions/polyhedron_3d.inx.h:54 -msgid "Minimum" -msgstr "Minimo" +#: ../share/extensions/interp_att_g.inx.h:25 +msgid "••••••••••••••••••••••••••••••••••••••••••••••••" +msgstr "••••••••••••••••••••••••••••••••••••••••••••••••" -#: ../share/extensions/polyhedron_3d.inx.h:55 -msgid "Mean" -msgstr "Media" +#: ../share/extensions/interp_att_g.inx.h:26 +msgid "No Unit" +msgstr "Nessuna unitĂ " -#: ../share/extensions/previous_glyph_layer.inx.h:1 +#: ../share/extensions/interp_att_g.inx.h:28 #, fuzzy -msgid "View Previous Glyph" -msgstr "Effetto Precedente" +msgid "" +"This effect applies a value for any interpolatable attribute for all " +"elements inside the selected group or for all elements in a multiple " +"selection." +msgstr "" +"Questo effetto applica un valore per ogni attributo interpolabile a tutti " +"gli elementi del gruppo o degli oggetti multipli selezionati" -#: ../share/extensions/print_win32_vector.inx.h:1 -#, fuzzy -msgid "Win32 Vector Print" -msgstr "Stampa Windows 32-bit" +#: ../share/extensions/jessyInk_autoTexts.inx.h:1 +msgid "Auto-texts" +msgstr "" -#: ../share/extensions/printing_marks.inx.h:1 -msgid "Printing Marks" -msgstr "Margini di stampa" +#: ../share/extensions/jessyInk_autoTexts.inx.h:2 +#: ../share/extensions/jessyInk_effects.inx.h:2 +#: ../share/extensions/jessyInk_export.inx.h:2 +#: ../share/extensions/jessyInk_masterSlide.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:2 +#, fuzzy +msgid "Settings" +msgstr "Inizio" -#: ../share/extensions/printing_marks.inx.h:3 -msgid "Crop Marks" -msgstr "Margini di taglio" +#: ../share/extensions/jessyInk_autoTexts.inx.h:3 +msgid "Auto-Text:" +msgstr "" -#: ../share/extensions/printing_marks.inx.h:4 -msgid "Bleed Marks" -msgstr "Indicatori di taglio" +#: ../share/extensions/jessyInk_autoTexts.inx.h:4 +#, fuzzy +msgid "None (remove)" +msgstr "rimuovi" -#: ../share/extensions/printing_marks.inx.h:5 -msgid "Registration Marks" -msgstr "Segni di registrazione" +#: ../share/extensions/jessyInk_autoTexts.inx.h:5 +msgid "Slide title" +msgstr "" -#: ../share/extensions/printing_marks.inx.h:6 -msgid "Star Target" -msgstr "Indicatore a stella" +#: ../share/extensions/jessyInk_autoTexts.inx.h:6 +#, fuzzy +msgid "Slide number" +msgstr "Angolo de" -#: ../share/extensions/printing_marks.inx.h:7 -msgid "Color Bars" -msgstr "Barra colori" +#: ../share/extensions/jessyInk_autoTexts.inx.h:7 +#, fuzzy +msgid "Number of slides" +msgstr "Numero di campioni" -#: ../share/extensions/printing_marks.inx.h:8 -msgid "Page Information" -msgstr "Informazioni pagina" +#: ../share/extensions/jessyInk_autoTexts.inx.h:9 +msgid "" +"This extension allows you to install, update and remove auto-texts for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." +msgstr "" -#: ../share/extensions/printing_marks.inx.h:9 -msgid "Positioning" -msgstr "Posizionamento" +#: ../share/extensions/jessyInk_autoTexts.inx.h:10 +#: ../share/extensions/jessyInk_effects.inx.h:15 +#: ../share/extensions/jessyInk_install.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:46 +#: ../share/extensions/jessyInk_masterSlide.inx.h:7 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:8 +#: ../share/extensions/jessyInk_summary.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:14 +#: ../share/extensions/jessyInk_uninstall.inx.h:12 +#: ../share/extensions/jessyInk_video.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:9 +msgid "JessyInk" +msgstr "" -#: ../share/extensions/printing_marks.inx.h:10 +#: ../share/extensions/jessyInk_effects.inx.h:1 #, fuzzy -msgid "Set crop marks to:" -msgstr "Imposta delimitatori a" - -#: ../share/extensions/printing_marks.inx.h:17 -msgid "Canvas" -msgstr "Tela" +msgid "Effects" +msgstr "_Effetti" -#: ../share/extensions/printing_marks.inx.h:19 -msgid "Bleed Margin" -msgstr "Margini di rifilo" +#: ../share/extensions/jessyInk_effects.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:4 +#, fuzzy +msgid "Duration in seconds:" +msgstr "Disegno finito" -#: ../share/extensions/ps_input.inx.h:1 -msgid "PostScript Input" -msgstr "Input PostScript" +#: ../share/extensions/jessyInk_effects.inx.h:6 +#, fuzzy +msgid "Build-in effect" +msgstr "Effetto attuale" -#: ../share/extensions/radiusrand.inx.h:1 -msgid "Jitter nodes" -msgstr "Sfalsa nodi" +#: ../share/extensions/jessyInk_effects.inx.h:7 +#, fuzzy +msgid "None (default)" +msgstr "(predefinito)" -#: ../share/extensions/radiusrand.inx.h:3 +#: ../share/extensions/jessyInk_effects.inx.h:8 +#: ../share/extensions/jessyInk_transitions.inx.h:8 #, fuzzy -msgid "Maximum displacement in X (px):" -msgstr "Spostamento massimo sulle X, px" +msgid "Appear" +msgstr "Calamaio" -#: ../share/extensions/radiusrand.inx.h:4 +#: ../share/extensions/jessyInk_effects.inx.h:9 #, fuzzy -msgid "Maximum displacement in Y (px):" -msgstr "Spostamento massimo sulle Y, px" +msgid "Fade in" +msgstr "Facce" -#: ../share/extensions/radiusrand.inx.h:5 -msgid "Shift nodes" -msgstr "Sposta nodi" +#: ../share/extensions/jessyInk_effects.inx.h:10 +#: ../share/extensions/jessyInk_transitions.inx.h:10 +#, fuzzy +msgid "Pop" +msgstr "Cima" -#: ../share/extensions/radiusrand.inx.h:6 -msgid "Shift node handles" -msgstr "Sposta maniglie dei nodi" +#: ../share/extensions/jessyInk_effects.inx.h:11 +#, fuzzy +msgid "Build-out effect" +msgstr "Effetto attuale" -#: ../share/extensions/radiusrand.inx.h:7 -msgid "Use normal distribution" -msgstr "Usa distribuzione normale" +#: ../share/extensions/jessyInk_effects.inx.h:12 +#, fuzzy +msgid "Fade out" +msgstr "OpacitĂ :" -#: ../share/extensions/radiusrand.inx.h:9 +#: ../share/extensions/jessyInk_effects.inx.h:14 msgid "" -"This effect randomly shifts the nodes (and optionally node handles) of the " -"selected path." +"This extension allows you to install, update and remove object effects for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." msgstr "" -"Questo effetto sposta in maniera casuale i nodi (e opzionalmente anche le " -"maniglie) del tracciato selezionato." - -#: ../share/extensions/render_alphabetsoup.inx.h:1 -msgid "Alphabet Soup" -msgstr "Guazzabuglio di lettere" -#: ../share/extensions/render_barcode.inx.h:1 -msgid "Classic" +#: ../share/extensions/jessyInk_export.inx.h:1 +msgid "JessyInk zipped pdf or png output" msgstr "" -#: ../share/extensions/render_barcode.inx.h:2 -msgid "Barcode Type:" -msgstr "Tipo codice a barre: " - -#: ../share/extensions/render_barcode.inx.h:3 -msgid "Barcode Data:" -msgstr "Dati codice a barre:" - -#: ../share/extensions/render_barcode.inx.h:4 -msgid "Bar Height:" -msgstr "Altezza barre:" - -#: ../share/extensions/render_barcode.inx.h:6 -#: ../share/extensions/render_barcode_datamatrix.inx.h:6 -#: ../share/extensions/render_barcode_qrcode.inx.h:19 -msgid "Barcode" -msgstr "Codice a barre" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:1 +#: ../share/extensions/jessyInk_export.inx.h:4 #, fuzzy -msgid "Datamatrix" -msgstr "Dati codice a barre:" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:3 -#: ../share/extensions/render_barcode_qrcode.inx.h:4 -msgid "Size, in unit squares:" -msgstr "" +msgid "Resolution:" +msgstr "Relazione:" -#: ../share/extensions/render_barcode_datamatrix.inx.h:4 +#: ../share/extensions/jessyInk_export.inx.h:5 #, fuzzy -msgid "Square Size (px):" -msgstr "Estremo squadrato" - -#: ../share/extensions/render_barcode_qrcode.inx.h:1 -msgid "QR Code" -msgstr "" +msgid "PDF" +msgstr "PDF 1.4" -#: ../share/extensions/render_barcode_qrcode.inx.h:2 -msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" +#: ../share/extensions/jessyInk_export.inx.h:6 +msgid "PNG" msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:5 -#, fuzzy -msgid "Auto" -msgstr "Salvataggio automatico" - -#: ../share/extensions/render_barcode_qrcode.inx.h:6 +#: ../share/extensions/jessyInk_export.inx.h:8 msgid "" -"With \"Auto\", the size of the barcode depends on the length of the text and " -"the error correction level" +"This extension allows you to export a JessyInk presentation once you created " +"an export layer in your browser. Please see code.google.com/p/jessyink for " +"more details." msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:7 -#, fuzzy -msgid "Error correction level:" -msgstr "PM: riflessione" - -#: ../share/extensions/render_barcode_qrcode.inx.h:9 -#, no-c-format -msgid "L (Approx. 7%)" +#: ../share/extensions/jessyInk_export.inx.h:9 +msgid "JessyInk zipped pdf or png output (*.zip)" msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:11 -#, no-c-format -msgid "M (Approx. 15%)" +#: ../share/extensions/jessyInk_export.inx.h:10 +msgid "" +"Creates a zip file containing pdfs or pngs of all slides of a JessyInk " +"presentation." msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:13 -#, no-c-format -msgid "Q (Approx. 25%)" +#: ../share/extensions/jessyInk_install.inx.h:1 +msgid "Install/update" msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:15 -#, no-c-format -msgid "H (Approx. 30%)" +#: ../share/extensions/jessyInk_install.inx.h:3 +msgid "" +"This extension allows you to install or update the JessyInk script in order " +"to turn your SVG file into a presentation. Please see code.google.com/p/" +"jessyink for more details." msgstr "" -#: ../share/extensions/render_barcode_qrcode.inx.h:17 +#: ../share/extensions/jessyInk_keyBindings.inx.h:1 #, fuzzy -msgid "Square size (px):" -msgstr "Estremo squadrato" +msgid "Key bindings" +msgstr "_Crenatura" -#: ../share/extensions/render_gear_rack.inx.h:1 +#: ../share/extensions/jessyInk_keyBindings.inx.h:2 #, fuzzy -msgid "Rack Gear" -msgstr "Ingranaggi" +msgid "Slide mode" +msgstr "ModalitĂ  ridimensionamento" -#: ../share/extensions/render_gear_rack.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:3 #, fuzzy -msgid "Rack Length:" -msgstr "Lunghezza:" +msgid "Back (with effects):" +msgstr "Effetti su tracciato..." -#: ../share/extensions/render_gear_rack.inx.h:3 +#: ../share/extensions/jessyInk_keyBindings.inx.h:4 #, fuzzy -msgid "Tooth Spacing:" -msgstr "Spaziatura orizzontale" +msgid "Next (with effects):" +msgstr "Luce neon" -#: ../share/extensions/render_gear_rack.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:5 +msgid "Back (without effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:6 #, fuzzy -msgid "Contact Angle:" -msgstr "Triangolo inscritto" +msgid "Next (without effects):" +msgstr "Luce neon" -#: ../share/extensions/render_gear_rack.inx.h:6 -#: ../share/extensions/render_gears.inx.h:1 -msgid "Gear" -msgstr "Ingranaggi" +#: ../share/extensions/jessyInk_keyBindings.inx.h:7 +#, fuzzy +msgid "First slide:" +msgstr "Primo selezionato" -#: ../share/extensions/render_gears.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:8 #, fuzzy -msgid "Number of teeth:" -msgstr "Numero di denti" +msgid "Last slide:" +msgstr "Incolla dimensione" -#: ../share/extensions/render_gears.inx.h:3 +#: ../share/extensions/jessyInk_keyBindings.inx.h:9 #, fuzzy -msgid "Circular pitch (tooth size):" -msgstr "Passo, px" +msgid "Switch to index mode:" +msgstr "Passa al livello successivo" -#: ../share/extensions/render_gears.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:10 #, fuzzy -msgid "Pressure angle (degrees):" -msgstr "Angolo di pressione" +msgid "Switch to drawing mode:" +msgstr "Passa alla modalitĂ  di visualizzazione normale" -#: ../share/extensions/render_gears.inx.h:5 -msgid "Diameter of center hole (0 for none):" -msgstr "" +#: ../share/extensions/jessyInk_keyBindings.inx.h:11 +#, fuzzy +msgid "Set duration:" +msgstr "Saturazione" -#: ../share/extensions/render_gears.inx.h:10 -msgid "Unit of measurement for both circular pitch and center diameter." +#: ../share/extensions/jessyInk_keyBindings.inx.h:12 +#, fuzzy +msgid "Add slide:" +msgstr "lato superiore" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:13 +msgid "Toggle progress bar:" msgstr "" -#: ../share/extensions/replace_font.inx.h:1 +#: ../share/extensions/jessyInk_keyBindings.inx.h:14 #, fuzzy -msgid "Replace font" -msgstr "Sostituisci testo" +msgid "Reset timer:" +msgstr "Resetta centro" -#: ../share/extensions/replace_font.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:15 #, fuzzy -msgid "Find and Replace font" -msgstr "T_rova e sostituisci testo..." +msgid "Export presentation:" +msgstr "Orientamento" -#: ../share/extensions/replace_font.inx.h:3 +#: ../share/extensions/jessyInk_keyBindings.inx.h:17 #, fuzzy -msgid "Find font: " -msgstr "Aggiungi font" +msgid "Switch to slide mode:" +msgstr "Passa alla modalitĂ  di visualizzazione normale" -#: ../share/extensions/replace_font.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:18 #, fuzzy -msgid "Replace with: " -msgstr "Rimpiazza:" - -#: ../share/extensions/replace_font.inx.h:5 -msgid "Replace all fonts with: " -msgstr "" +msgid "Set path width to default:" +msgstr "Imposta come predefinito" -#: ../share/extensions/replace_font.inx.h:6 +#: ../share/extensions/jessyInk_keyBindings.inx.h:19 #, fuzzy -msgid "List all fonts" -msgstr "Modifica font SVG" - -#: ../share/extensions/replace_font.inx.h:7 -msgid "" -"Choose this tab if you would like to see a list of the fonts used/found." -msgstr "" +msgid "Set path width to 1:" +msgstr "Imposta larghezza:" -#: ../share/extensions/replace_font.inx.h:8 +#: ../share/extensions/jessyInk_keyBindings.inx.h:20 #, fuzzy -msgid "Work on:" -msgstr "ModalitĂ :" +msgid "Set path width to 3:" +msgstr "Imposta larghezza:" -#: ../share/extensions/replace_font.inx.h:9 +#: ../share/extensions/jessyInk_keyBindings.inx.h:21 #, fuzzy -msgid "Entire drawing" -msgstr "L'area esportata è il disegno" +msgid "Set path width to 5:" +msgstr "Imposta larghezza:" -#: ../share/extensions/replace_font.inx.h:10 +#: ../share/extensions/jessyInk_keyBindings.inx.h:22 #, fuzzy -msgid "Selected objects only" -msgstr "Riflette orizzontalmente gli oggetti selezionati" +msgid "Set path width to 7:" +msgstr "Imposta larghezza:" -#: ../share/extensions/restack.inx.h:1 -msgid "Restack" -msgstr "Reimpila" +#: ../share/extensions/jessyInk_keyBindings.inx.h:23 +#, fuzzy +msgid "Set path width to 9:" +msgstr "Imposta larghezza:" -#: ../share/extensions/restack.inx.h:2 -msgid "Restack Direction:" -msgstr "Direzione della pila:" +#: ../share/extensions/jessyInk_keyBindings.inx.h:24 +#, fuzzy +msgid "Set path color to blue:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:3 -msgid "Left to Right (0)" -msgstr "Da sinistra a destra (0)" +#: ../share/extensions/jessyInk_keyBindings.inx.h:25 +#, fuzzy +msgid "Set path color to cyan:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:4 -msgid "Bottom to Top (90)" -msgstr "Dal fondo alla cima (90)" +#: ../share/extensions/jessyInk_keyBindings.inx.h:26 +#, fuzzy +msgid "Set path color to green:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:5 -msgid "Right to Left (180)" -msgstr "Da destra a sinistra (180)" +#: ../share/extensions/jessyInk_keyBindings.inx.h:27 +#, fuzzy +msgid "Set path color to black:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:6 -msgid "Top to Bottom (270)" -msgstr "Dalla cima al fondo (270)" +#: ../share/extensions/jessyInk_keyBindings.inx.h:28 +#, fuzzy +msgid "Set path color to magenta:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:7 -msgid "Radial Outward" -msgstr "Raggio esterno" +#: ../share/extensions/jessyInk_keyBindings.inx.h:29 +#, fuzzy +msgid "Set path color to orange:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:8 -msgid "Radial Inward" -msgstr "Raggio interno" +#: ../share/extensions/jessyInk_keyBindings.inx.h:30 +#, fuzzy +msgid "Set path color to red:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:9 +#: ../share/extensions/jessyInk_keyBindings.inx.h:31 #, fuzzy -msgid "Arbitrary Angle" -msgstr "Angolo arbitrario:" +msgid "Set path color to white:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:11 -msgid "Horizontal Point:" -msgstr "Punto orizzontale:" +#: ../share/extensions/jessyInk_keyBindings.inx.h:32 +#, fuzzy +msgid "Set path color to yellow:" +msgstr "Rimuove il colore del contorno" -#: ../share/extensions/restack.inx.h:13 -#: ../share/extensions/text_extract.inx.h:9 -#: ../share/extensions/text_merge.inx.h:9 -msgid "Middle" -msgstr "MetĂ " +#: ../share/extensions/jessyInk_keyBindings.inx.h:33 +#, fuzzy +msgid "Undo last path segment:" +msgstr "Annulla l'ultima azione" -#: ../share/extensions/restack.inx.h:15 -msgid "Vertical Point:" -msgstr "Punto verticale:" +#: ../share/extensions/jessyInk_keyBindings.inx.h:34 +#, fuzzy +msgid "Index mode" +msgstr "Indenta nodo" -#: ../share/extensions/restack.inx.h:16 -#: ../share/extensions/text_extract.inx.h:12 -#: ../share/extensions/text_merge.inx.h:12 -msgid "Top" -msgstr "Cima" +#: ../share/extensions/jessyInk_keyBindings.inx.h:35 +#, fuzzy +msgid "Select the slide to the left:" +msgstr "Selezionare il file da salvare" -#: ../share/extensions/restack.inx.h:17 -#: ../share/extensions/text_extract.inx.h:13 -#: ../share/extensions/text_merge.inx.h:13 -msgid "Bottom" -msgstr "Fondo" +#: ../share/extensions/jessyInk_keyBindings.inx.h:36 +#, fuzzy +msgid "Select the slide to the right:" +msgstr "Adatta la pagina al disegno" -#: ../share/extensions/restack.inx.h:18 -msgid "Arrange" -msgstr "Ordinamento" +#: ../share/extensions/jessyInk_keyBindings.inx.h:37 +msgid "Select the slide above:" +msgstr "" -#: ../share/extensions/rtree.inx.h:1 -msgid "Random Tree" -msgstr "Albero casuale" +#: ../share/extensions/jessyInk_keyBindings.inx.h:38 +msgid "Select the slide below:" +msgstr "" -#: ../share/extensions/rtree.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:39 #, fuzzy -msgid "Initial size:" -msgstr "Dimensione iniziale" +msgid "Previous page:" +msgstr "Effetto Precedente" -#: ../share/extensions/rtree.inx.h:3 +#: ../share/extensions/jessyInk_keyBindings.inx.h:40 #, fuzzy -msgid "Minimum size:" -msgstr "Dimensione minima" +msgid "Next page:" +msgstr "Seleziona pagina:" -#: ../share/extensions/rubberstretch.inx.h:1 -msgid "Rubber Stretch" -msgstr "Deformazione elastica" +#: ../share/extensions/jessyInk_keyBindings.inx.h:41 +#, fuzzy +msgid "Decrease number of columns:" +msgstr "Numero di colonne" -#: ../share/extensions/rubberstretch.inx.h:3 -#, no-c-format -msgid "Strength (%):" -msgstr "Forza (%)" +#: ../share/extensions/jessyInk_keyBindings.inx.h:42 +#, fuzzy +msgid "Increase number of columns:" +msgstr "Numero di colonne" -#: ../share/extensions/rubberstretch.inx.h:5 -#, no-c-format -msgid "Curve (%):" -msgstr "Curvatura (%):" +#: ../share/extensions/jessyInk_keyBindings.inx.h:43 +#, fuzzy +msgid "Set number of columns to default:" +msgstr "Numero di colonne" -#: ../share/extensions/scour.inx.h:1 -msgid "Optimized SVG Output" -msgstr "Output SVG ottimizzato" +#: ../share/extensions/jessyInk_keyBindings.inx.h:45 +msgid "" +"This extension allows you customise the key bindings JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" -#: ../share/extensions/scour.inx.h:3 +#: ../share/extensions/jessyInk_masterSlide.inx.h:1 #, fuzzy -msgid "Shorten color values" -msgstr "Colori tenui" +msgid "Master slide" +msgstr "Incolla dimensione" -#: ../share/extensions/scour.inx.h:4 +#: ../share/extensions/jessyInk_masterSlide.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:3 #, fuzzy -msgid "Convert CSS attributes to XML attributes" -msgstr "Cancella attributo" +msgid "Name of layer:" +msgstr "Rinomina livello" -#: ../share/extensions/scour.inx.h:5 -msgid "Group collapsing" +#: ../share/extensions/jessyInk_masterSlide.inx.h:4 +msgid "If no layer name is supplied, the master slide is unset." msgstr "" -#: ../share/extensions/scour.inx.h:6 -msgid "Create groups for similar attributes" +#: ../share/extensions/jessyInk_masterSlide.inx.h:6 +msgid "" +"This extension allows you to change the master slide JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." msgstr "" -#: ../share/extensions/scour.inx.h:7 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:1 #, fuzzy -msgid "Embed rasters" -msgstr "Incorpora immagini" +msgid "Mouse handler" +msgstr "Muovi maniglia" -#: ../share/extensions/scour.inx.h:8 -msgid "Keep editor data" -msgstr "" +#: ../share/extensions/jessyInk_mouseHandler.inx.h:2 +#, fuzzy +msgid "Mouse settings:" +msgstr "Impostazioni pagina" -#: ../share/extensions/scour.inx.h:9 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:4 #, fuzzy -msgid "Remove metadata" -msgstr "Rimuovi rosso" +msgid "No-click" +msgstr "al clic" -#: ../share/extensions/scour.inx.h:10 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:5 #, fuzzy -msgid "Remove comments" -msgstr "Rimuovi font" +msgid "Dragging/zoom" +msgstr "Disegno" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:7 +msgid "" +"This extension allows you customise the mouse handler JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_summary.inx.h:1 +#, fuzzy +msgid "Summary" +msgstr "_Simmetria" + +#: ../share/extensions/jessyInk_summary.inx.h:3 +msgid "" +"This extension allows you to obtain information about the JessyInk script, " +"effects and transitions contained in this SVG file. Please see code.google." +"com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:1 +#, fuzzy +msgid "Transitions" +msgstr "Trasformazione" -#: ../share/extensions/scour.inx.h:11 -msgid "Work around renderer bugs" +#: ../share/extensions/jessyInk_transitions.inx.h:6 +msgid "Transition in effect" msgstr "" -#: ../share/extensions/scour.inx.h:12 +#: ../share/extensions/jessyInk_transitions.inx.h:9 #, fuzzy -msgid "Enable viewboxing" -msgstr "Attiva anteprima" +msgid "Fade" +msgstr "Facce" -#: ../share/extensions/scour.inx.h:13 +#: ../share/extensions/jessyInk_transitions.inx.h:11 #, fuzzy -msgid "Remove the xml declaration" -msgstr "Rimuovi _trasformazioni" +msgid "Transition out effect" +msgstr "Incolla effetto su tracciato" -#: ../share/extensions/scour.inx.h:14 -msgid "Number of significant digits for coords:" +#: ../share/extensions/jessyInk_transitions.inx.h:13 +msgid "" +"This extension allows you to change the transition JessyInk uses for the " +"selected layer. Please see code.google.com/p/jessyink for more details." msgstr "" -#: ../share/extensions/scour.inx.h:15 -msgid "XML indentation (pretty-printing):" +#: ../share/extensions/jessyInk_uninstall.inx.h:1 +msgid "Uninstall/remove" msgstr "" -#: ../share/extensions/scour.inx.h:16 +#: ../share/extensions/jessyInk_uninstall.inx.h:3 #, fuzzy -msgid "Space" -msgstr "Macchia" +msgid "Remove script" +msgstr "Rimuovi griglia" -#: ../share/extensions/scour.inx.h:17 +#: ../share/extensions/jessyInk_uninstall.inx.h:4 #, fuzzy -msgid "Tab" -msgstr "Tabella" +msgid "Remove effects" +msgstr "Rimuove effetti su tracciato" -#: ../share/extensions/scour.inx.h:19 +#: ../share/extensions/jessyInk_uninstall.inx.h:5 #, fuzzy -msgid "Ids" -msgstr "_Id" +msgid "Remove master slide assignment" +msgstr "Rimuovi la maschera dalla selezione" -#: ../share/extensions/scour.inx.h:20 -msgid "Remove unused ID names for elements" -msgstr "" +#: ../share/extensions/jessyInk_uninstall.inx.h:6 +#, fuzzy +msgid "Remove transitions" +msgstr "Rimuovi _trasformazioni" -#: ../share/extensions/scour.inx.h:21 -msgid "Shorten IDs" -msgstr "" +#: ../share/extensions/jessyInk_uninstall.inx.h:7 +#, fuzzy +msgid "Remove auto-texts" +msgstr "Rimuovi contorno" -#: ../share/extensions/scour.inx.h:22 -msgid "Preserve manually created ID names not ending with digits" -msgstr "" +#: ../share/extensions/jessyInk_uninstall.inx.h:8 +#, fuzzy +msgid "Remove views" +msgstr "Rimuovi filtri" -#: ../share/extensions/scour.inx.h:23 -msgid "Preserve these ID names, comma-separated:" +#: ../share/extensions/jessyInk_uninstall.inx.h:9 +msgid "Please select the parts of JessyInk you want to uninstall/remove." msgstr "" -#: ../share/extensions/scour.inx.h:24 -msgid "Preserve ID names starting with:" +#: ../share/extensions/jessyInk_uninstall.inx.h:11 +msgid "" +"This extension allows you to uninstall the JessyInk script. Please see code." +"google.com/p/jessyink for more details." msgstr "" -#: ../share/extensions/scour.inx.h:25 +#: ../share/extensions/jessyInk_video.inx.h:1 #, fuzzy -msgid "Help (Options)" -msgstr "Opzioni" +msgid "Video" +msgstr "Visualizza" -#: ../share/extensions/scour.inx.h:27 -#, no-c-format +#: ../share/extensions/jessyInk_video.inx.h:3 msgid "" -"This extension optimizes the SVG file according to the following options:\n" -" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" -" * Convert CSS attributes to XML attributes: convert styles from style " -"tags and inline style=\"\" declarations into XML attributes.\n" -" * Group collapsing: removes useless g elements, promoting their contents " -"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" -" * Create groups for similar attributes: create g elements for runs of " -"elements having at least one attribute in common (e.g. fill color, stroke " -"opacity, ...).\n" -" * Embed rasters: embed raster images as base64-encoded data URLs.\n" -" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " -"elements and attributes.\n" -" * Remove metadata: remove metadata tags along with all the information " -"in them, which may include license metadata, alternate versions for non-SVG-" -"enabled browsers, etc.\n" -" * Remove comments: remove comment tags.\n" -" * Work around renderer bugs: emits slightly larger SVG data, but works " -"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " -"various applications.\n" -" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" -" * Number of significant digits for coords: all coordinates are output " -"with that number of significant digits. For example, if 3 is specified, the " -"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " -"472.\n" -" * XML indentation (pretty-printing): either None for no indentation, " -"Space to use one space per nesting level, or Tab to use one tab per nesting " -"level." +"This extension puts a JessyInk video element on the current slide (layer). " +"This element allows you to integrate a video into your JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." msgstr "" -#: ../share/extensions/scour.inx.h:40 -msgid "Help (Ids)" +#: ../share/extensions/jessyInk_view.inx.h:5 +#, fuzzy +msgid "Remove view" +msgstr "Rimuovi rosso" + +#: ../share/extensions/jessyInk_view.inx.h:6 +msgid "Choose order number 0 to set the initial view of a slide." msgstr "" -#: ../share/extensions/scour.inx.h:41 +#: ../share/extensions/jessyInk_view.inx.h:8 msgid "" -"Ids specific options:\n" -" * Remove unused ID names for elements: remove all unreferenced ID " -"attributes.\n" -" * Shorten IDs: reduce the length of all ID attributes, assigning the " -"shortest to the most-referenced elements. For instance, #linearGradient5621, " -"referenced 100 times, can become #a.\n" -" * Preserve manually created ID names not ending with digits: usually, " -"optimised SVG output removes these, but if they're needed for referencing (e." -"g. #middledot), you may use this option.\n" -" * Preserve these ID names, comma-separated: you can use this in " -"conjunction with the other preserve options if you wish to preserve some " -"more specific ID names.\n" -" * Preserve ID names starting with: usually, optimised SVG output removes " -"all unused ID names, but if all of your preserved ID names start with the " -"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." +"This extension allows you to set, update and remove views for a JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." msgstr "" -#: ../share/extensions/scour.inx.h:47 -msgid "Optimized SVG (*.svg)" -msgstr "SVG ottimizzato (*.svg)" - -#: ../share/extensions/scour.inx.h:48 -msgid "Scalable Vector Graphics" -msgstr "Scalable Vector Graphics" - -#: ../share/extensions/setup_typography_canvas.inx.h:1 -msgid "1 - Setup Typography Canvas" +#: ../share/extensions/layers2svgfont.inx.h:1 +msgid "3 - Convert Glyph Layers to SVG Font" msgstr "" -#: ../share/extensions/setup_typography_canvas.inx.h:2 -#, fuzzy -msgid "Em-size:" -msgstr "Dimensione:" - -#: ../share/extensions/setup_typography_canvas.inx.h:3 -#, fuzzy -msgid "Ascender:" -msgstr "Render" - -#: ../share/extensions/setup_typography_canvas.inx.h:4 -#, fuzzy -msgid "Caps Height:" -msgstr "Altezza barre:" - -#: ../share/extensions/setup_typography_canvas.inx.h:5 -#, fuzzy -msgid "X-Height:" -msgstr "Altezza:" - -#: ../share/extensions/setup_typography_canvas.inx.h:6 -#, fuzzy -msgid "Descender:" -msgstr "Dipendenza:" +#: ../share/extensions/layers2svgfont.inx.h:2 +#: ../share/extensions/new_glyph_layer.inx.h:3 +#: ../share/extensions/next_glyph_layer.inx.h:2 +#: ../share/extensions/previous_glyph_layer.inx.h:2 +#: ../share/extensions/setup_typography_canvas.inx.h:7 +#: ../share/extensions/svgfont2layers.inx.h:3 +msgid "Typography" +msgstr "Tipografia" -#: ../share/extensions/sk1_input.inx.h:1 -msgid "sK1 vector graphics files input" -msgstr "Input file grafico vettoriale sK1" +#: ../share/extensions/layout_nup.inx.h:1 +msgid "N-up layout" +msgstr "" -#: ../share/extensions/sk1_input.inx.h:2 -#: ../share/extensions/sk1_output.inx.h:2 +#: ../share/extensions/layout_nup.inx.h:2 #, fuzzy -msgid "sK1 vector graphics files (*.sk1)" -msgstr "File grafico vettoriale sK1 (.sk1)" - -#: ../share/extensions/sk1_input.inx.h:3 -msgid "Open files saved in sK1 vector graphics editor" -msgstr "Apri file salvati con l'editor vettoriale sK1" +msgid "Page dimensions" +msgstr "Dimensioni" -#: ../share/extensions/sk1_output.inx.h:1 -msgid "sK1 vector graphics files output" -msgstr "Output file grafico vettoriale sK1" +#: ../share/extensions/layout_nup.inx.h:4 +msgid "Size X:" +msgstr "Dimensione X:" -#: ../share/extensions/sk1_output.inx.h:3 -msgid "File format for use in sK1 vector graphics editor" -msgstr "Formato di file per l'uso con l'editor vettoriale sK1" +#: ../share/extensions/layout_nup.inx.h:5 +msgid "Size Y:" +msgstr "Dimensione Y:" -#: ../share/extensions/sk_input.inx.h:1 -msgid "Sketch Input" -msgstr "Input Sketch" +#: ../share/extensions/layout_nup.inx.h:6 +#: ../share/extensions/printing_marks.inx.h:13 +msgid "Top:" +msgstr "Cima:" -#: ../share/extensions/sk_input.inx.h:2 -msgid "Sketch Diagram (*.sk)" -msgstr "Diagramma di Sketch (*.sk)" +#: ../share/extensions/layout_nup.inx.h:7 +#: ../share/extensions/printing_marks.inx.h:14 +msgid "Bottom:" +msgstr "Fondo:" -#: ../share/extensions/sk_input.inx.h:3 -msgid "A diagram created with the program Sketch" -msgstr "Un diagramma creato con il programma Sketch" +#: ../share/extensions/layout_nup.inx.h:8 +#: ../share/extensions/printing_marks.inx.h:15 +msgid "Left:" +msgstr "Sinistra:" -#: ../share/extensions/spirograph.inx.h:1 -msgid "Spirograph" -msgstr "Spirografo" +#: ../share/extensions/layout_nup.inx.h:9 +#: ../share/extensions/printing_marks.inx.h:16 +msgid "Right:" +msgstr "Destro:" -#: ../share/extensions/spirograph.inx.h:2 +#: ../share/extensions/layout_nup.inx.h:10 #, fuzzy -msgid "R - Ring Radius (px):" -msgstr "R - Raggio dell'anello (px)" +msgid "Page margins" +msgstr "Angolo sinistro" -#: ../share/extensions/spirograph.inx.h:3 +#: ../share/extensions/layout_nup.inx.h:11 #, fuzzy -msgid "r - Gear Radius (px):" -msgstr "r - Raggio dell'ingranaggio (px)" +msgid "Layout dimensions" +msgstr "Posizione casuale" -#: ../share/extensions/spirograph.inx.h:4 +#: ../share/extensions/layout_nup.inx.h:13 #, fuzzy -msgid "d - Pen Radius (px):" -msgstr "d - Raggio della penna (px)" +msgid "Cols:" +msgstr "Colori" -#: ../share/extensions/spirograph.inx.h:5 +#: ../share/extensions/layout_nup.inx.h:14 +msgid "Auto calculate layout size" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:15 #, fuzzy -msgid "Gear Placement:" -msgstr "Posizione ingranaggi" +msgid "Layout padding" +msgstr "Posizione casuale" -#: ../share/extensions/spirograph.inx.h:6 -msgid "Inside (Hypotrochoid)" -msgstr "Interni (ipotrocoide)" +#: ../share/extensions/layout_nup.inx.h:16 +#, fuzzy +msgid "Layout margins" +msgstr "Angolo sinistro" -#: ../share/extensions/spirograph.inx.h:7 -msgid "Outside (Epitrochoid)" -msgstr "Esterni (epitrocoide)" +#: ../share/extensions/layout_nup.inx.h:17 +#: ../share/extensions/printing_marks.inx.h:2 +msgid "Marks" +msgstr "Segni" -#: ../share/extensions/spirograph.inx.h:9 +#: ../share/extensions/layout_nup.inx.h:18 #, fuzzy -msgid "Quality (Default = 16):" -msgstr "QualitĂ  (predefinita = 16)" +msgid "Place holder" +msgstr "Buco nero" -#: ../share/extensions/split.inx.h:1 +#: ../share/extensions/layout_nup.inx.h:19 #, fuzzy -msgid "Split text" -msgstr "Elimina testo" - -#: ../share/extensions/split.inx.h:3 -msgid "Split:" -msgstr "" +msgid "Cutting marks" +msgstr "Margini di stampa" -#: ../share/extensions/split.inx.h:4 -msgid "Preserve original text" +#: ../share/extensions/layout_nup.inx.h:20 +msgid "Padding guide" msgstr "" -#: ../share/extensions/split.inx.h:5 +#: ../share/extensions/layout_nup.inx.h:21 #, fuzzy -msgctxt "split" -msgid "Lines" -msgstr "Linee" +msgid "Margin guide" +msgstr "Muovi guida" -#: ../share/extensions/split.inx.h:6 +#: ../share/extensions/layout_nup.inx.h:22 #, fuzzy -msgctxt "split" -msgid "Words" -msgstr "ModalitĂ :" +msgid "Padding box" +msgstr "Riquadri" -#: ../share/extensions/split.inx.h:7 +#: ../share/extensions/layout_nup.inx.h:23 #, fuzzy -msgctxt "split" -msgid "Letters" -msgstr "Sinistra:" +msgid "Margin box" +msgstr "riquadro immagine" -#: ../share/extensions/split.inx.h:9 -msgid "This effect splits texts into different lines, words or letters." +#: ../share/extensions/layout_nup.inx.h:25 +msgid "" +"\n" +"Parameters:\n" +" * Page size: width and height.\n" +" * Page margins: extra space around each page.\n" +" * Layout rows and cols.\n" +" * Layout size: width and height, auto calculated if one is 0.\n" +" * Auto calculate layout size: don't use the layout size values.\n" +" * Layout margins: white space around each part of the layout.\n" +" * Layout padding: inner padding for each part of the layout.\n" +" " msgstr "" -#: ../share/extensions/straightseg.inx.h:1 -msgid "Straighten Segments" -msgstr "Appiattisci segmento" +#: ../share/extensions/layout_nup.inx.h:36 +#: ../share/extensions/perfectboundcover.inx.h:20 +#: ../share/extensions/printing_marks.inx.h:21 +#: ../share/extensions/svgcalendar.inx.h:13 +msgid "Layout" +msgstr "Aspetto" -#: ../share/extensions/straightseg.inx.h:2 +#: ../share/extensions/lindenmayer.inx.h:1 +msgid "L-system" +msgstr "Sistema L" + +#: ../share/extensions/lindenmayer.inx.h:2 +msgid "Axiom and rules" +msgstr "Assioma e regole" + +#: ../share/extensions/lindenmayer.inx.h:3 #, fuzzy -msgid "Percent:" -msgstr "Percentuale" +msgid "Axiom:" +msgstr "Assioma" -#: ../share/extensions/straightseg.inx.h:3 +#: ../share/extensions/lindenmayer.inx.h:4 #, fuzzy -msgid "Behavior:" -msgstr "Comportamento" +msgid "Rules:" +msgstr "Regola" -#: ../share/extensions/summersnight.inx.h:1 -msgid "Envelope" -msgstr "Imbusta" +#: ../share/extensions/lindenmayer.inx.h:6 +#, fuzzy +msgid "Step length (px):" +msgstr "Lunghezza passi (px)" -#: ../share/extensions/svg2fxg.inx.h:1 +#: ../share/extensions/lindenmayer.inx.h:8 +#, fuzzy, no-c-format +msgid "Randomize step (%):" +msgstr "CasualitĂ  passo (%)" + +#: ../share/extensions/lindenmayer.inx.h:9 #, fuzzy -msgid "FXG Output" -msgstr "Output SVG" +msgid "Left angle:" +msgstr "Angolo sinistro" -#: ../share/extensions/svg2fxg.inx.h:2 +#: ../share/extensions/lindenmayer.inx.h:10 #, fuzzy -msgid "Flash XML Graphics (*.fxg)" -msgstr "File grafico di XFIG (*.fig)" +msgid "Right angle:" +msgstr "Angolo destro" -#: ../share/extensions/svg2fxg.inx.h:3 -msgid "Adobe's XML Graphics file format" +#: ../share/extensions/lindenmayer.inx.h:12 +#, fuzzy, no-c-format +msgid "Randomize angle (%):" +msgstr "CasualitĂ  angolo (%)" + +#: ../share/extensions/lindenmayer.inx.h:14 +msgid "" +"\n" +"The path is generated by applying the \n" +"substitutions of Rules to the Axiom, \n" +"Order times. The following commands are \n" +"recognized in Axiom and Rules:\n" +"\n" +"Any of A,B,C,D,E,F: draw forward \n" +"\n" +"Any of G,H,I,J,K,L: move forward \n" +"\n" +"+: turn left\n" +"\n" +"-: turn right\n" +"\n" +"|: turn 180 degrees\n" +"\n" +"[: remember point\n" +"\n" +"]: return to remembered point\n" msgstr "" +"\n" +"Il tracciato verrĂ  generato applicando le \n" +"sostituzioni definite Regole all'Assioma, in \n" +"numero pari a Ordine. Sono riconosciuti i \n" +"seguenti comandi in Regole e Assioma:\n" +"\n" +"Uno tra A,B,C,D,E,F: disegna dritto \n" +"\n" +"Uno tra G,H,I,J,K,L: muovi dritto \n" +"\n" +"+: gira a sinistra\n" +"\n" +"-: gira a destra\n" +"\n" +"|: ruota di 180 gradi\n" +"\n" +"[: memorizza punto \n" +"\n" +"]: ritorna al punto memorizzato\n" -#: ../share/extensions/svg2xaml.inx.h:1 -msgid "XAML Output" -msgstr "Output XAML" +#: ../share/extensions/lorem_ipsum.inx.h:1 +msgid "Lorem ipsum" +msgstr "Lorem ipsum" -#: ../share/extensions/svg2xaml.inx.h:2 -msgid "Silverlight compatible XAML" -msgstr "" +#: ../share/extensions/lorem_ipsum.inx.h:3 +msgid "Number of paragraphs:" +msgstr "Numero di paragrafi:" -#: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 -msgid "Microsoft XAML (*.xaml)" -msgstr "Microsoft XAML (*.xaml)" +#: ../share/extensions/lorem_ipsum.inx.h:4 +msgid "Sentences per paragraph:" +msgstr "Frasi per paragrafo:" -#: ../share/extensions/svg2xaml.inx.h:4 ../share/extensions/xaml2svg.inx.h:3 -msgid "Microsoft's GUI definition format" -msgstr "Forma di definizione GUI di Microsoft" +#: ../share/extensions/lorem_ipsum.inx.h:5 +msgid "Paragraph length fluctuation (sentences):" +msgstr "Lunghezza paragrafo (numero frasi):" -#: ../share/extensions/svg_and_media_zip_output.inx.h:1 -#, fuzzy -msgid "Compressed Inkscape SVG with media export" -msgstr "Inkscape SVG compresso con altri media (*.zip)" +#: ../share/extensions/lorem_ipsum.inx.h:7 +msgid "" +"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder " +"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " +"new flowed text object, the size of the page, is created in a new layer." +msgstr "" +"Questo effetto crea il testo segnaposto pseudolatino standard «Lorem Ipsum». " +"Se è stato selezionato un testo dinamico, Lorem Ipsum viene accodato ad " +"esso; altrimenti viene creato in un nuovo livello un testo dinamico, della " +"larghezza della pagina intera." -#: ../share/extensions/svg_and_media_zip_output.inx.h:2 +#: ../share/extensions/markers_strokepaint.inx.h:1 #, fuzzy -msgid "Image zip directory:" -msgstr "Cartella di lavoro non valida: %s" +msgid "Color Markers" +msgstr "Barra colori" -#: ../share/extensions/svg_and_media_zip_output.inx.h:3 +#: ../share/extensions/markers_strokepaint.inx.h:2 #, fuzzy -msgid "Add font list" -msgstr "Aggiungi font" +msgid "From object" +msgstr "Nessun oggetto" -#: ../share/extensions/svg_and_media_zip_output.inx.h:4 -msgid "Compressed Inkscape SVG with media (*.zip)" -msgstr "Inkscape SVG compresso con altri media (*.zip)" +#: ../share/extensions/markers_strokepaint.inx.h:3 +#, fuzzy +msgid "Marker type:" +msgstr "Delimitatore" -#: ../share/extensions/svg_and_media_zip_output.inx.h:5 -msgid "" -"Inkscape's native file format compressed with Zip and including all media " -"files" -msgstr "" -"Formato nativo di Inkscape compresso con Zip e contenente tutti i file " -"multimediali" +#: ../share/extensions/markers_strokepaint.inx.h:4 +#, fuzzy +msgid "Invert fill and stroke colors" +msgstr "Imposta colore contorno" -#: ../share/extensions/svgcalendar.inx.h:1 -msgid "Calendar" -msgstr "Calendario" +#: ../share/extensions/markers_strokepaint.inx.h:5 +#, fuzzy +msgid "Assign alpha" +msgstr "Assegna opacitĂ " -#: ../share/extensions/svgcalendar.inx.h:3 -msgid "Year (4 digits):" +#: ../share/extensions/markers_strokepaint.inx.h:6 +msgid "solid" msgstr "" -#: ../share/extensions/svgcalendar.inx.h:4 +#: ../share/extensions/markers_strokepaint.inx.h:7 #, fuzzy -msgid "Month (0 for all):" -msgstr "Mese (0 per tutti)" - -#: ../share/extensions/svgcalendar.inx.h:5 -msgid "Fill empty day boxes with next month's days" -msgstr "Riempire le caselle vuote con i giorni del mese successivo" +msgid "filled" +msgstr "Parallelo" -#: ../share/extensions/svgcalendar.inx.h:6 +#: ../share/extensions/markers_strokepaint.inx.h:10 #, fuzzy -msgid "Show week number" -msgstr "Angolo de" +msgid "Assign fill color" +msgstr "Imposta colore di riempimento" -#: ../share/extensions/svgcalendar.inx.h:7 +#: ../share/extensions/markers_strokepaint.inx.h:11 #, fuzzy -msgid "Week start day:" -msgstr "Primo giorno della settimana" +msgid "Stroke" +msgstr "Contorno" -#: ../share/extensions/svgcalendar.inx.h:8 +#: ../share/extensions/markers_strokepaint.inx.h:12 #, fuzzy -msgid "Weekend:" -msgstr "Weekend" +msgid "Assign stroke color" +msgstr "Imposta colore contorno" -#: ../share/extensions/svgcalendar.inx.h:9 -msgid "Sunday" -msgstr "Domenica" +#: ../share/extensions/measure.inx.h:1 +msgid "Measure Path" +msgstr "Misura tracciato" -#: ../share/extensions/svgcalendar.inx.h:10 -msgid "Monday" -msgstr "Lunedì" +#: ../share/extensions/measure.inx.h:2 +msgid "Measure" +msgstr "Misura" -#: ../share/extensions/svgcalendar.inx.h:11 -msgid "Saturday and Sunday" -msgstr "Sabato e domenica" +#: ../share/extensions/measure.inx.h:3 +msgid "Measurement Type: " +msgstr "Tipo di misurazione: " -#: ../share/extensions/svgcalendar.inx.h:12 -msgid "Saturday" -msgstr "Sabato" +#: ../share/extensions/measure.inx.h:4 +msgid "Text Orientation: " +msgstr "Orientamento testo: " -#: ../share/extensions/svgcalendar.inx.h:14 -msgid "Automatically set size and position" -msgstr "Imposta automaticamente dimensione e posizione" +#: ../share/extensions/measure.inx.h:5 +msgid "Angle [with Fixed Angle option only] (°):" +msgstr "Angolo [solo con Angolo fisso] (°):" -#: ../share/extensions/svgcalendar.inx.h:15 -#, fuzzy -msgid "Months per line:" -msgstr "Mesi per riga" +#: ../share/extensions/measure.inx.h:6 +msgid "Font size (px):" +msgstr "Dimensione carattere (px):" -#: ../share/extensions/svgcalendar.inx.h:16 -#, fuzzy -msgid "Month Width:" -msgstr "Larghezza del mese" +#: ../share/extensions/measure.inx.h:7 +msgid "Offset (px):" +msgstr "Scostamento (px):" -#: ../share/extensions/svgcalendar.inx.h:17 -#, fuzzy -msgid "Month Margin:" -msgstr "Margine del mese" +#: ../share/extensions/measure.inx.h:8 +msgid "Precision:" +msgstr "Precisione:" -#: ../share/extensions/svgcalendar.inx.h:18 -msgid "The options below have no influence when the above is checked." +#: ../share/extensions/measure.inx.h:9 +msgid "Scale Factor (Drawing:Real Length) = 1:" +msgstr "Fattore di riduzione (Disegno:Lughezza reale) = 1" + +#: ../share/extensions/measure.inx.h:10 +msgid "Length Unit:" +msgstr "UnitĂ  di lunghezza:" + +#: ../share/extensions/measure.inx.h:12 +msgctxt "measure extension" +msgid "Area" +msgstr "Area" + +#: ../share/extensions/measure.inx.h:13 +msgctxt "measure extension" +msgid "Center of Mass" +msgstr "Centro di massa" + +#: ../share/extensions/measure.inx.h:14 +msgctxt "measure extension" +msgid "Text On Path" +msgstr "Testo su tracciato" + +#: ../share/extensions/measure.inx.h:15 +msgctxt "measure extension" +msgid "Fixed Angle" +msgstr "Angolo fisso" + +#: ../share/extensions/measure.inx.h:18 +#, no-c-format +msgid "" +"This effect measures the length, area, or center-of-mass of the selected " +"paths. Length and area are added as a text object with the selected units. " +"Center-of-mass is shown as a cross symbol.\n" +"\n" +" * Text display format can be either Text-On-Path, or stand-alone text at a " +"specified angle.\n" +" * The number of significant digits can be controlled by the Precision " +"field.\n" +" * The Offset field controls the distance from the text to the path.\n" +" * The Scale factor can be used to make measurements in scaled drawings. " +"For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " +"must be set to 250.\n" +" * When calculating area, the result should be precise for polygons and " +"Bezier curves. If a circle is used, the area may be too high by as much as " +"0.03%." msgstr "" -"Le opzioni successive non hanno effetto quando la precedente è abilitata." +"Questo effetto misura la lunghezza, area o centro di massa dei tracciati " +"selezionati. Lunghezza e area sono aggiunti come testo con l'unitĂ  selezionata. " +"Il centro di massa è indicato con il simbolo di una croce.\n" +"\n" +" * La disposizione del testo può essere Testo su tracciato, o come testo " +"indipendente ad un angolo specificato.\n" +" * Il numero di cifre significative può essere impostato nel campo Precisione.\n" +" * Lo Scostamento definisce la distanza del testo dal tracciato.\n" +" * Il Fattore di riduzione può essere utilizzato per effettuare misurazioni " +"in disegni scalati. Se 1 cm del disegno equivale a 2,5 m reali, il Fattore deve " +"essere impostato a 250.\n" +" * Misurando l'area, il risultato è preciso per i poligoni e curve di bezier. " +"Nel caso dei cerchi può esserci un margine di errore dello 0.03%." -#: ../share/extensions/svgcalendar.inx.h:20 -#, fuzzy -msgid "Year color:" -msgstr "Colore anno" +#: ../share/extensions/merge_styles.inx.h:1 +msgid "Merge Styles into CSS" +msgstr "" -#: ../share/extensions/svgcalendar.inx.h:21 -#, fuzzy -msgid "Month color:" -msgstr "Colore del mese" +#: ../share/extensions/merge_styles.inx.h:2 +msgid "" +"All selected nodes will be grouped together and their common style " +"attributes will create a new class, this class will replace the existing " +"inline style attributes. Please use a name which best describes the kinds of " +"objects and their common context for best effect." +msgstr "" -#: ../share/extensions/svgcalendar.inx.h:22 -#, fuzzy -msgid "Weekday name color:" -msgstr "Colore nome del giorno" +#: ../share/extensions/merge_styles.inx.h:3 +msgid "New Class Name:" +msgstr "" -#: ../share/extensions/svgcalendar.inx.h:23 +#: ../share/extensions/merge_styles.inx.h:4 #, fuzzy -msgid "Day color:" -msgstr "Colore del giorno" +msgid "Stylesheet" +msgstr "Stile" -#: ../share/extensions/svgcalendar.inx.h:24 -#, fuzzy -msgid "Weekend day color:" -msgstr "Colore del weekend" +#: ../share/extensions/motion.inx.h:1 +msgid "Motion" +msgstr "Movimento" -#: ../share/extensions/svgcalendar.inx.h:25 +#: ../share/extensions/motion.inx.h:2 +msgid "Magnitude:" +msgstr "Ordine:" + +#: ../share/extensions/new_glyph_layer.inx.h:1 #, fuzzy -msgid "Next month day color:" -msgstr "Colore mese successivo" +msgid "2 - Add Glyph Layer" +msgstr "Aggiungi glifo" -#: ../share/extensions/svgcalendar.inx.h:26 +#: ../share/extensions/new_glyph_layer.inx.h:2 #, fuzzy -msgid "Week number color:" -msgstr "Colore nome del giorno" +msgid "Unicode character:" +msgstr "Inserisci carattere Unicode" -#: ../share/extensions/svgcalendar.inx.h:27 -msgid "Localization" -msgstr "Localizzazione" +#: ../share/extensions/next_glyph_layer.inx.h:1 +msgid "View Next Glyph" +msgstr "" -#: ../share/extensions/svgcalendar.inx.h:28 -#, fuzzy -msgid "Month names:" -msgstr "Nome del mese" +#: ../share/extensions/param_curves.inx.h:1 +msgid "Parametric Curves" +msgstr "Curva parametrica" -#: ../share/extensions/svgcalendar.inx.h:29 +#: ../share/extensions/param_curves.inx.h:2 +msgid "Range and Sampling" +msgstr "Intervallo e campioni" + +#: ../share/extensions/param_curves.inx.h:3 #, fuzzy -msgid "Day names:" -msgstr "Nome del giorno" +msgid "Start t-value:" +msgstr "Valore iniziale di t" -#: ../share/extensions/svgcalendar.inx.h:30 +#: ../share/extensions/param_curves.inx.h:4 #, fuzzy -msgid "Week number column name:" -msgstr "Numero di colonne" +msgid "End t-value:" +msgstr "Valore finale di t" -#: ../share/extensions/svgcalendar.inx.h:31 +#: ../share/extensions/param_curves.inx.h:5 #, fuzzy -msgid "Char Encoding:" -msgstr "Codifica caratteri" +msgid "Multiply t-range by 2*pi" +msgstr "Moltiplica intervallo t di 2*pi" -#: ../share/extensions/svgcalendar.inx.h:32 -msgid "You may change the names for other languages:" -msgstr "Ă possibile cambiare i nomi per le altre lingue:" +#: ../share/extensions/param_curves.inx.h:6 +#, fuzzy +msgid "X-value of rectangle's left:" +msgstr "Valore y del lato superiore del rettangolo" -#: ../share/extensions/svgcalendar.inx.h:33 -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" -"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre " -"Novembre Dicembre" +#: ../share/extensions/param_curves.inx.h:7 +#, fuzzy +msgid "X-value of rectangle's right:" +msgstr "Valore y del lato superiore del rettangolo" -#: ../share/extensions/svgcalendar.inx.h:34 -msgid "Sun Mon Tue Wed Thu Fri Sat" -msgstr "Lun Mar Mer Gio Ven Sab Dom" +#: ../share/extensions/param_curves.inx.h:8 +#, fuzzy +msgid "Y-value of rectangle's bottom:" +msgstr "Valore y per il bordo inferiore del rettangolo" -#: ../share/extensions/svgcalendar.inx.h:35 +#: ../share/extensions/param_curves.inx.h:9 #, fuzzy -msgid "The day names list must start from Sunday." -msgstr "(La lista dei nomi dei giorni deve iniziare da Domenica)" +msgid "Y-value of rectangle's top:" +msgstr "Valore y del lato superiore del rettangolo" -#: ../share/extensions/svgcalendar.inx.h:36 -msgid "Wk" -msgstr "" +#: ../share/extensions/param_curves.inx.h:10 +#, fuzzy +msgid "Samples:" +msgstr "Campioni" -#: ../share/extensions/svgcalendar.inx.h:37 +#: ../share/extensions/param_curves.inx.h:14 #, fuzzy msgid "" -"Select your system encoding. More information at http://docs.python.org/" -"library/codecs.html#standard-encodings." +"Select a rectangle before calling the extension, it will determine X and Y " +"scales.\n" +"First derivatives are always determined numerically." msgstr "" -"(Selezionare la codifica usata dal proprio sistema. Consultare http://docs." -"python.org/library/codecs.html#standard-encodings per maggiori informazioni)" +"Selezionare un rettangolo prima di applicare l'estensione, \n" +" servirĂ  a determinare le scale X e Y.\n" +"\n" +"La prima derivata è sempre calcolata numericamente." -#: ../share/extensions/svgfont2layers.inx.h:1 +#: ../share/extensions/param_curves.inx.h:26 #, fuzzy -msgid "Convert SVG Font to Glyph Layers" -msgstr "Inverti in tutti livelli" - -#: ../share/extensions/svgfont2layers.inx.h:2 -msgid "Load only the first 30 glyphs (Recommended)" -msgstr "" +msgid "X-Function:" +msgstr "Funzione x" -#: ../share/extensions/synfig_output.inx.h:1 +#: ../share/extensions/param_curves.inx.h:27 #, fuzzy -msgid "Synfig Output" -msgstr "Output SVG" - -#: ../share/extensions/synfig_output.inx.h:2 -msgid "Synfig Animation (*.sif)" -msgstr "" +msgid "Y-Function:" +msgstr "Funzione x" -#: ../share/extensions/synfig_output.inx.h:3 -msgid "Synfig Animation written using the sif-file exporter extension" -msgstr "" +#: ../share/extensions/pathalongpath.inx.h:1 +msgid "Pattern along Path" +msgstr "Motivo lungo tracciato" -#: ../share/extensions/tar_layers.inx.h:1 -msgid "Collection of SVG files One per root layer" -msgstr "" +#: ../share/extensions/pathalongpath.inx.h:3 +msgid "Copies of the pattern:" +msgstr "Copie del motivo:" -#: ../share/extensions/tar_layers.inx.h:2 -msgid "Layers as Separate SVG (*.tar)" -msgstr "" +#: ../share/extensions/pathalongpath.inx.h:4 +msgid "Deformation type:" +msgstr "Tipo di deformazione:" -#: ../share/extensions/tar_layers.inx.h:3 -msgid "" -"Each layer split into it's own svg file and collected as a tape archive (tar " -"file)" -msgstr "" +#: ../share/extensions/pathalongpath.inx.h:5 +#: ../share/extensions/pathscatter.inx.h:5 +msgid "Space between copies:" +msgstr "Spaziatura tra le copie:" -#: ../share/extensions/text_braille.inx.h:1 -msgid "Convert to Braille" -msgstr "Converti in Braille" +#: ../share/extensions/pathalongpath.inx.h:6 +#: ../share/extensions/pathscatter.inx.h:6 +msgid "Normal offset:" +msgstr "Proiezione normale:" -#: ../share/extensions/text_extract.inx.h:1 -#, fuzzy -msgid "Extract" -msgstr "Estrai immagine" +#: ../share/extensions/pathalongpath.inx.h:7 +#: ../share/extensions/pathscatter.inx.h:7 +msgid "Tangential offset:" +msgstr "Proiezione tangenziale:" -#: ../share/extensions/text_extract.inx.h:2 -#: ../share/extensions/text_merge.inx.h:2 -#, fuzzy -msgid "Text direction:" -msgstr "Segna direzione" +#: ../share/extensions/pathalongpath.inx.h:8 +#: ../share/extensions/pathscatter.inx.h:8 +msgid "Pattern is vertical" +msgstr "Motivo verticale" -#: ../share/extensions/text_extract.inx.h:3 -#: ../share/extensions/text_merge.inx.h:3 -#, fuzzy -msgid "Left to right" -msgstr "Da sinistra a destra (0)" +#: ../share/extensions/pathalongpath.inx.h:9 +#: ../share/extensions/pathscatter.inx.h:10 +msgid "Duplicate the pattern before deformation" +msgstr "Duplica il motivo prima della deformazione" -#: ../share/extensions/text_extract.inx.h:4 -#: ../share/extensions/text_merge.inx.h:4 -#, fuzzy -msgid "Bottom to top" -msgstr "Dal fondo alla cima (90)" +# ehm ?! +#: ../share/extensions/pathalongpath.inx.h:14 +msgid "Snake" +msgstr "Serpente" -#: ../share/extensions/text_extract.inx.h:5 -#: ../share/extensions/text_merge.inx.h:5 -#, fuzzy -msgid "Right to left" -msgstr "Da destra a sinistra (180)" +#: ../share/extensions/pathalongpath.inx.h:15 +msgid "Ribbon" +msgstr "Nastro" -#: ../share/extensions/text_extract.inx.h:6 -#: ../share/extensions/text_merge.inx.h:6 +#: ../share/extensions/pathalongpath.inx.h:17 #, fuzzy -msgid "Top to bottom" -msgstr "Sposta in fondo" +msgid "" +"This effect scatters or bends a pattern along arbitrary \"skeleton\" paths. " +"The pattern is the topmost object in the selection. Groups of paths, shapes " +"or clones are allowed." +msgstr "" +"Questo effetto sparge elementi di un motivo lungo tracciati \"scheletro\" " +"arbitrari. Il motivo deve essere l'oggetto in cima alla selezione. Sono " +"permessi gruppi di tracciati, forme e cloni." -#: ../share/extensions/text_extract.inx.h:7 -#: ../share/extensions/text_merge.inx.h:7 -#, fuzzy -msgid "Horizontal point:" -msgstr "Punto orizzontale:" +#: ../share/extensions/pathscatter.inx.h:3 +msgid "Follow path orientation" +msgstr "Segui orientamento tracciato:" -#: ../share/extensions/text_extract.inx.h:11 -#: ../share/extensions/text_merge.inx.h:11 -#, fuzzy -msgid "Vertical point:" -msgstr "Punto verticale:" +#: ../share/extensions/pathscatter.inx.h:4 +msgid "Stretch spaces to fit skeleton length" +msgstr "Stira gli spazi per adattarsi alla lunghezza dello scheletro" -#: ../share/extensions/text_flipcase.inx.h:1 -msgid "fLIP cASE" -msgstr "iNVERTI mAIUSCOLE" +#: ../share/extensions/pathscatter.inx.h:9 +msgid "Original pattern will be:" +msgstr "La trama originale sarĂ :" -#: ../share/extensions/text_flipcase.inx.h:3 -#: ../share/extensions/text_lowercase.inx.h:3 -#: ../share/extensions/text_randomcase.inx.h:3 -#: ../share/extensions/text_sentencecase.inx.h:3 -#: ../share/extensions/text_titlecase.inx.h:3 -#: ../share/extensions/text_uppercase.inx.h:3 -#, fuzzy -msgid "Change Case" -msgstr "Modifica maniglia" +#: ../share/extensions/pathscatter.inx.h:11 +msgid "If pattern is a group, pick group members" +msgstr "Se il motivo è un gruppo, prendi membri del gruppo" -#: ../share/extensions/text_lowercase.inx.h:1 -msgid "lowercase" -msgstr "tutte minuscole" +#: ../share/extensions/pathscatter.inx.h:12 +msgid "Pick group members:" +msgstr "Prendi membri del gruppo:" -#. false -#: ../share/extensions/text_merge.inx.h:15 -#, fuzzy -msgid "Keep style" -msgstr "Imposta stile testo" +#: ../share/extensions/pathscatter.inx.h:13 +msgid "Moved" +msgstr "Spostato" -#: ../share/extensions/text_randomcase.inx.h:1 -msgid "rANdOm CasE" -msgstr "mAIuScoLe CaSUAli" +#: ../share/extensions/pathscatter.inx.h:14 +msgid "Copied" +msgstr "Copiato" -#: ../share/extensions/text_sentencecase.inx.h:1 -msgid "Sentence case" -msgstr "Maiuscole paragrafo" +#: ../share/extensions/pathscatter.inx.h:15 +msgid "Cloned" +msgstr "Clonato" -#: ../share/extensions/text_titlecase.inx.h:1 -msgid "Title Case" -msgstr "Iniziali Maiuscole" +#: ../share/extensions/pathscatter.inx.h:16 +msgid "Randomly" +msgstr "Casualmente" -#: ../share/extensions/text_uppercase.inx.h:1 -msgid "UPPERCASE" -msgstr "TUTTE MAIUSCOLE" +#: ../share/extensions/pathscatter.inx.h:17 +msgid "Sequentially" +msgstr "Sequenzialmente" -#: ../share/extensions/triangle.inx.h:1 -msgid "Triangle" -msgstr "Triangolo" +#: ../share/extensions/pathscatter.inx.h:19 +msgid "" +"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " +"pattern must be the topmost object in the selection. Groups of paths, " +"shapes, clones are allowed." +msgstr "" +"Questo effetto sparge elementi di un motivo lungo tracciati \"scheletro\" " +"arbitrari. Il motivo deve essere l'oggetto in cima alla selezione. Sono " +"permessi gruppi di tracciati, forme e cloni." -#: ../share/extensions/triangle.inx.h:2 -#, fuzzy -msgid "Side Length a (px):" -msgstr "Lunghezza lato a / px" +#: ../share/extensions/perfectboundcover.inx.h:1 +msgid "Perfect-Bound Cover Template" +msgstr "Copertina" -#: ../share/extensions/triangle.inx.h:3 -#, fuzzy -msgid "Side Length b (px):" -msgstr "Lunghezza lato b / px" +#: ../share/extensions/perfectboundcover.inx.h:2 +msgid "Book Properties" +msgstr "ProprietĂ  libro" -#: ../share/extensions/triangle.inx.h:4 +#: ../share/extensions/perfectboundcover.inx.h:3 #, fuzzy -msgid "Side Length c (px):" -msgstr "Lunghezza lato c / px" +msgid "Book Width (inches):" +msgstr "Larghezza libro (pollici)" -#: ../share/extensions/triangle.inx.h:5 +#: ../share/extensions/perfectboundcover.inx.h:4 #, fuzzy -msgid "Angle a (deg):" -msgstr "Angolo a / gradi" +msgid "Book Height (inches):" +msgstr "Altezza libro (pollici)" -#: ../share/extensions/triangle.inx.h:6 +#: ../share/extensions/perfectboundcover.inx.h:5 #, fuzzy -msgid "Angle b (deg):" -msgstr "Angolo b / gradi" +msgid "Number of Pages:" +msgstr "Numero di pagine" -#: ../share/extensions/triangle.inx.h:7 -#, fuzzy -msgid "Angle c (deg):" -msgstr "Angolo c / gradi" +#: ../share/extensions/perfectboundcover.inx.h:6 +msgid "Remove existing guides" +msgstr "Cancella guide esistenti" -#: ../share/extensions/triangle.inx.h:9 -msgid "From Three Sides" -msgstr "Da tre lati" +#: ../share/extensions/perfectboundcover.inx.h:7 +msgid "Interior Pages" +msgstr "Pagine interne" -#: ../share/extensions/triangle.inx.h:10 -msgid "From Sides a, b and Angle c" -msgstr "Dai lati a, b e angolo c" +#: ../share/extensions/perfectboundcover.inx.h:8 +#, fuzzy +msgid "Paper Thickness Measurement:" +msgstr "UnitĂ  spessore carta" -#: ../share/extensions/triangle.inx.h:11 -msgid "From Sides a, b and Angle a" -msgstr "Dai lati a, b e angolo a" +#: ../share/extensions/perfectboundcover.inx.h:9 +msgid "Pages Per Inch (PPI)" +msgstr "Pagine per pollice (PPI)" -#: ../share/extensions/triangle.inx.h:12 -msgid "From Side a and Angles a, b" -msgstr "Dal lato a e angoli a, b" +#: ../share/extensions/perfectboundcover.inx.h:10 +msgid "Caliper (inches)" +msgstr "Calibro (pollici)" -#: ../share/extensions/triangle.inx.h:13 -msgid "From Side c and Angles a, b" -msgstr "Dal lato c e angoli a, b" +#: ../share/extensions/perfectboundcover.inx.h:11 +msgid "Points" +msgstr "Punti" -#: ../share/extensions/voronoi2svg.inx.h:1 -#, fuzzy -msgid "Voronoi Diagram" -msgstr "Muovi motivi" +#: ../share/extensions/perfectboundcover.inx.h:12 +msgid "Bond Weight #" +msgstr "Peso dichiarato" -#: ../share/extensions/voronoi2svg.inx.h:3 -msgid "Type of diagram:" -msgstr "" +#: ../share/extensions/perfectboundcover.inx.h:13 +msgid "Specify Width" +msgstr "Specifica larghezza" -#: ../share/extensions/voronoi2svg.inx.h:4 +#: ../share/extensions/perfectboundcover.inx.h:14 #, fuzzy -msgid "Bounding box of the diagram:" -msgstr "Riquadro da usare:" +msgid "Value:" +msgstr "Valore" -#: ../share/extensions/voronoi2svg.inx.h:5 -#, fuzzy -msgid "Show the bounding box" -msgstr "Mostra riquadro limite" +#: ../share/extensions/perfectboundcover.inx.h:15 +msgid "Cover" +msgstr "Copertina" -#: ../share/extensions/voronoi2svg.inx.h:6 +#: ../share/extensions/perfectboundcover.inx.h:16 #, fuzzy -msgid "Delaunay Triangulation" -msgstr "Declina invito" +msgid "Cover Thickness Measurement:" +msgstr "UnitĂ  spessore copertina" -#: ../share/extensions/voronoi2svg.inx.h:7 +#: ../share/extensions/perfectboundcover.inx.h:17 #, fuzzy -msgid "Voronoi and Delaunay" -msgstr "Muovi motivi" +msgid "Bleed (in):" +msgstr "Margine (in)" -#: ../share/extensions/voronoi2svg.inx.h:8 -msgid "Options for Voronoi diagram" -msgstr "" +#: ../share/extensions/perfectboundcover.inx.h:18 +msgid "Note: Bond Weight # calculations are a best-guess estimate." +msgstr "Nota: i calcoli sul peso dichiaro sono frutto di una stima empirica" -#: ../share/extensions/voronoi2svg.inx.h:10 +#: ../share/extensions/perspective.inx.h:1 +msgid "Perspective" +msgstr "Prospettiva" + +#: ../share/extensions/pixelsnap.inx.h:1 #, fuzzy -msgid "Automatic from selected objects" -msgstr "Raggruppa gli oggetti selezionati" +msgid "PixelSnap" +msgstr "Pixel" -#: ../share/extensions/voronoi2svg.inx.h:12 +#: ../share/extensions/pixelsnap.inx.h:2 msgid "" -"Select a set of objects. Their centroids will be used as the sites of the " -"Voronoi diagram. Text objects are not handled." +"Snap all paths in selection to pixels. Snaps borders to half-points and " +"fills to full points." msgstr "" -#: ../share/extensions/web-set-att.inx.h:1 -msgid "Set Attributes" -msgstr "Imposta attributi" +#: ../share/extensions/plotter.inx.h:1 +msgid "Plot" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:3 -#, fuzzy -msgid "Attribute to set:" -msgstr "Attributo da impostare" +#: ../share/extensions/plotter.inx.h:2 +msgid "" +"Please make sure that all objects you want to plot are converted to paths." +msgstr "" -#: ../share/extensions/web-set-att.inx.h:4 +#: ../share/extensions/plotter.inx.h:3 #, fuzzy -msgid "When should the set be done:" -msgstr "Quando attivare l'impostazione?" +msgid "Connection Settings " +msgstr "Connessione" -#: ../share/extensions/web-set-att.inx.h:5 +#: ../share/extensions/plotter.inx.h:4 #, fuzzy -msgid "Value to set:" -msgstr "Valore da impostare" +msgid "Serial port:" +msgstr "Punto verticale:" -#: ../share/extensions/web-set-att.inx.h:6 -#: ../share/extensions/web-transmit-att.inx.h:5 -#, fuzzy -msgid "Compatibility with previews code to this event:" -msgstr "CompatibilitĂ  di questo evento con codice di anteprima" +#: ../share/extensions/plotter.inx.h:5 +msgid "" +"The port of your serial connection, on Windows something like 'COM1', on " +"Linux something like: '/dev/ttyUSB0' (Default: COM1)" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:7 +#: ../share/extensions/plotter.inx.h:6 #, fuzzy -msgid "Source and destination of setting:" -msgstr "Sorgente e destinazione dell'impostazione" - -#: ../share/extensions/web-set-att.inx.h:8 -#: ../share/extensions/web-transmit-att.inx.h:7 -msgid "on click" -msgstr "al clic" - -#: ../share/extensions/web-set-att.inx.h:9 -#: ../share/extensions/web-transmit-att.inx.h:8 -msgid "on focus" -msgstr "al focuse" - -#: ../share/extensions/web-set-att.inx.h:10 -#: ../share/extensions/web-transmit-att.inx.h:9 -msgid "on blur" -msgstr "alla sfocatura" - -#: ../share/extensions/web-set-att.inx.h:11 -#: ../share/extensions/web-transmit-att.inx.h:10 -msgid "on activate" -msgstr "all'attivazione" - -#: ../share/extensions/web-set-att.inx.h:12 -#: ../share/extensions/web-transmit-att.inx.h:11 -msgid "on mouse down" -msgstr "alla pressione del mouse" - -#: ../share/extensions/web-set-att.inx.h:13 -#: ../share/extensions/web-transmit-att.inx.h:12 -msgid "on mouse up" -msgstr "al rilascio del mouse" +msgid "Serial baud rate:" +msgstr "_Verticale" -#: ../share/extensions/web-set-att.inx.h:14 -#: ../share/extensions/web-transmit-att.inx.h:13 -msgid "on mouse over" -msgstr "al passaggio del mouse" +#: ../share/extensions/plotter.inx.h:7 +msgid "The Baud rate of your serial connection (Default: 9600)" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:15 -#: ../share/extensions/web-transmit-att.inx.h:14 -msgid "on mouse move" -msgstr "al movimento del mouse" +#: ../share/extensions/plotter.inx.h:8 +#, fuzzy +msgid "Flow control:" +msgstr "Navigazione" -#: ../share/extensions/web-set-att.inx.h:16 -#: ../share/extensions/web-transmit-att.inx.h:15 -msgid "on mouse out" -msgstr "all'allontanamento del mouse" +#: ../share/extensions/plotter.inx.h:9 +msgid "" +"The Software / Hardware flow control of your serial connection (Default: " +"Software)" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:17 -#: ../share/extensions/web-transmit-att.inx.h:16 -msgid "on element loaded" -msgstr "al caricamento oggetto" +#: ../share/extensions/plotter.inx.h:10 +#, fuzzy +msgid "Command language:" +msgstr "Seconda lingua:" -#: ../share/extensions/web-set-att.inx.h:18 -msgid "The list of values must have the same size as the attributes list." +#: ../share/extensions/plotter.inx.h:11 +msgid "The command language to use (Default: HPGL)" msgstr "" -"La lista dei valori deve avere la stessa dimensione della lista degli " -"attributi." -#: ../share/extensions/web-set-att.inx.h:19 -#: ../share/extensions/web-transmit-att.inx.h:17 -msgid "Run it after" -msgstr "Esegui prima" +#: ../share/extensions/plotter.inx.h:12 +msgid "Software (XON/XOFF)" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:20 -#: ../share/extensions/web-transmit-att.inx.h:18 -msgid "Run it before" -msgstr "Esegui dopo" +#: ../share/extensions/plotter.inx.h:13 +#, fuzzy +msgid "Hardware (RTS/CTS)" +msgstr "Filo spinato" -#: ../share/extensions/web-set-att.inx.h:22 -#: ../share/extensions/web-transmit-att.inx.h:20 -msgid "The next parameter is useful when you select more than two elements" -msgstr "Il parametro successivo è utile se si selezionano piĂą di due elementi" +#: ../share/extensions/plotter.inx.h:14 +msgid "Hardware (DSR/DTR + RTS/CTS)" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:23 -msgid "All selected ones set an attribute in the last one" -msgstr "Tutti quelli selezionati impostano un attributo all'ultimo" +#: ../share/extensions/plotter.inx.h:16 +msgid "HPGL" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:24 -msgid "The first selected sets an attribute in all others" -msgstr "Il primo selezionato imposta un attributo in tutti gli altri" +#: ../share/extensions/plotter.inx.h:17 +msgid "DMPL" +msgstr "" -#: ../share/extensions/web-set-att.inx.h:26 -#: ../share/extensions/web-transmit-att.inx.h:24 -msgid "" -"This effect adds a feature visible (or usable) only on a SVG enabled web " -"browser (like Firefox)." +#: ../share/extensions/plotter.inx.h:18 +msgid "KNK Zing (HPGL variant)" msgstr "" -"Questo effetto aggiunge una caratteristica visibile (o usabile) solo su " -"browser web che supportino SVG (come Firefox)" -#: ../share/extensions/web-set-att.inx.h:27 +#: ../share/extensions/plotter.inx.h:19 msgid "" -"This effect sets one or more attributes in the second selected element, when " -"a defined event occurs on the first selected element." +"Using wrong settings can under certain circumstances cause Inkscape to " +"freeze. Always save your work before plotting!" msgstr "" -"Questo effetto imposta uno o piĂą attributi nel secondo elemento selezionato, " -"quando sul primo si verifica un determinato evento." -#: ../share/extensions/web-set-att.inx.h:28 +#: ../share/extensions/plotter.inx.h:20 msgid "" -"If you want to set more than one attribute, you must separate this with a " -"space, and only with a space." +"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " +"plotter manufacturer for drivers if needed." msgstr "" -"Se si vogliono impostare attributi multipli, separarli con un solo spazio." - -#: ../share/extensions/web-set-att.inx.h:29 -#: ../share/extensions/web-transmit-att.inx.h:27 -#: ../share/extensions/webslicer_create_group.inx.h:13 -#: ../share/extensions/webslicer_create_rect.inx.h:41 -#: ../share/extensions/webslicer_export.inx.h:8 -msgid "Web" -msgstr "Web" -#: ../share/extensions/web-transmit-att.inx.h:1 -msgid "Transmit Attributes" -msgstr "Trasmetti attributi" +#: ../share/extensions/plotter.inx.h:21 +msgid "Parallel (LPT) connections are not supported." +msgstr "" -#: ../share/extensions/web-transmit-att.inx.h:3 -#, fuzzy -msgid "Attribute to transmit:" -msgstr "Attributi da trasmettere" +#: ../share/extensions/plotter.inx.h:32 +msgid "" +"The speed the pen will move with in centimeters or millimeters per second " +"(depending on your plotter model), set to 0 to omit command. Most plotters " +"ignore this command. (Default: 0)" +msgstr "" -#: ../share/extensions/web-transmit-att.inx.h:4 +#: ../share/extensions/plotter.inx.h:33 #, fuzzy -msgid "When to transmit:" -msgstr "Quando trasmettere" +msgid "Rotation (°, clockwise):" +msgstr "Rotazione oraria" -#: ../share/extensions/web-transmit-att.inx.h:6 +#: ../share/extensions/plotter.inx.h:52 #, fuzzy -msgid "Source and destination of transmitting:" -msgstr "Sorgente e destinazione della trasmissione" - -#: ../share/extensions/web-transmit-att.inx.h:21 -msgid "All selected ones transmit to the last one" -msgstr "Tutti quelli selezionati si trasmettono all'ultimo" - -#: ../share/extensions/web-transmit-att.inx.h:22 -msgid "The first selected transmits to all others" -msgstr "La prima selezione trasmette a tutti gli altri" +msgid "Show debug information" +msgstr "Informazioni sull'uso della memoria" -#: ../share/extensions/web-transmit-att.inx.h:25 +#: ../share/extensions/plotter.inx.h:53 msgid "" -"This effect transmits one or more attributes from the first selected element " -"to the second when an event occurs." +"Check this to get verbose information about the plot without actually " +"sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" msgstr "" -"Questo effetto trasmette uno o piĂą attributi dal primo elemento selezionato " -"al secondo quando si verifica un evento." -#: ../share/extensions/web-transmit-att.inx.h:26 -msgid "" -"If you want to transmit more than one attribute, you should separate this " -"with a space, and only with a space." -msgstr "" -"Se si vogliono trasmettere attributi multipli, separarli con un solo spazio." +#: ../share/extensions/plt_input.inx.h:1 +msgid "AutoCAD Plot Input" +msgstr "Input AutoCAD Plot" -#: ../share/extensions/webslicer_create_group.inx.h:1 -msgid "Set a layout group" -msgstr "" +#: ../share/extensions/plt_input.inx.h:2 +#: ../share/extensions/plt_output.inx.h:2 +msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" +msgstr "File HP Graphics Language Plot [AutoCAD] (*.plt)" -#: ../share/extensions/webslicer_create_group.inx.h:3 -#: ../share/extensions/webslicer_create_rect.inx.h:18 -#, fuzzy -msgid "HTML id attribute:" -msgstr "Imposta attributo" +#: ../share/extensions/plt_input.inx.h:3 +msgid "Open HPGL plotter files" +msgstr "Apri file HPGL per plotter" -#: ../share/extensions/webslicer_create_group.inx.h:4 -#: ../share/extensions/webslicer_create_rect.inx.h:19 -#, fuzzy -msgid "HTML class attribute:" -msgstr "Imposta attributo" +#: ../share/extensions/plt_output.inx.h:1 +msgid "AutoCAD Plot Output" +msgstr "Output AutoCAD Plot" -#: ../share/extensions/webslicer_create_group.inx.h:5 -#, fuzzy -msgid "Width unit:" -msgstr "Larghezza" +#: ../share/extensions/plt_output.inx.h:3 +msgid "Save a file for plotters" +msgstr "Salva un file per plotter" -#: ../share/extensions/webslicer_create_group.inx.h:6 -#, fuzzy -msgid "Height unit:" -msgstr "Altezza" +#: ../share/extensions/polyhedron_3d.inx.h:1 +msgid "3D Polyhedron" +msgstr "Poliedro 3D" -#: ../share/extensions/webslicer_create_group.inx.h:7 -#: ../share/extensions/webslicer_create_rect.inx.h:9 -#, fuzzy -msgid "Background color:" -msgstr "Colore di sfondo" +#: ../share/extensions/polyhedron_3d.inx.h:2 +msgid "Model file" +msgstr "File modello" -#: ../share/extensions/webslicer_create_group.inx.h:8 -msgid "Pixel (fixed)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:3 +msgid "Object:" +msgstr "Oggetto:" -#: ../share/extensions/webslicer_create_group.inx.h:9 +#: ../share/extensions/polyhedron_3d.inx.h:4 +msgid "Filename:" +msgstr "Nome file:" + +#: ../share/extensions/polyhedron_3d.inx.h:5 #, fuzzy -msgid "Percent (relative to parent size)" -msgstr "Ridimensiona larghezza relativamente alla lunghezza" +msgid "Object Type:" +msgstr "Tipo oggetto" -#: ../share/extensions/webslicer_create_group.inx.h:10 -msgid "Undefined (relative to non-floating content size)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:6 +msgid "Clockwise wound object" +msgstr "Ruota oggetto in senso orario" -#: ../share/extensions/webslicer_create_group.inx.h:12 -msgid "" -"Layout Group is only about to help a better code generation (if you need " -"it). To use this, you must to select some \"Slicer rectangles\" first." -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:7 +msgid "Cube" +msgstr "Cubo" -#: ../share/extensions/webslicer_create_group.inx.h:14 -#, fuzzy -msgid "Slicer" -msgstr "Sciame" +#: ../share/extensions/polyhedron_3d.inx.h:8 +msgid "Truncated Cube" +msgstr "Cubo tronco" -#: ../share/extensions/webslicer_create_rect.inx.h:1 -#, fuzzy -msgid "Create a slicer rectangle" -msgstr "Crea rettangolo" +#: ../share/extensions/polyhedron_3d.inx.h:9 +msgid "Snub Cube" +msgstr "Cubo camuso" -#: ../share/extensions/webslicer_create_rect.inx.h:4 -#, fuzzy -msgid "DPI:" -msgstr "DPI" +#: ../share/extensions/polyhedron_3d.inx.h:10 +msgid "Cuboctahedron" +msgstr "Cubottaedro" -#: ../share/extensions/webslicer_create_rect.inx.h:5 -#, fuzzy -msgid "Force Dimension:" -msgstr "Dimensioni" +#: ../share/extensions/polyhedron_3d.inx.h:11 +msgid "Tetrahedron" +msgstr "Tetra edro" -#. i18n. Description duplicated in a fake value attribute in order to make it translatable -#: ../share/extensions/webslicer_create_rect.inx.h:7 -msgid "Force Dimension must be set as x" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:12 +msgid "Truncated Tetrahedron" +msgstr "Tetraedro tronco" -#: ../share/extensions/webslicer_create_rect.inx.h:8 -msgid "If set, this will replace DPI." -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:13 +msgid "Octahedron" +msgstr "Ottaedro" -#: ../share/extensions/webslicer_create_rect.inx.h:10 -#, fuzzy -msgid "JPG specific options" -msgstr "Specifiche SVG 1.1" +#: ../share/extensions/polyhedron_3d.inx.h:14 +msgid "Truncated Octahedron" +msgstr "Ottaedro tronco" -#: ../share/extensions/webslicer_create_rect.inx.h:11 -#, fuzzy -msgid "Quality:" -msgstr "_Esci" +#: ../share/extensions/polyhedron_3d.inx.h:15 +msgid "Icosahedron" +msgstr "Icosaedro" -#: ../share/extensions/webslicer_create_rect.inx.h:12 -msgid "" -"0 is the lowest image quality and highest compression, and 100 is the best " -"quality but least effective compression" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:16 +msgid "Truncated Icosahedron" +msgstr "Icosaedro tronco" -#: ../share/extensions/webslicer_create_rect.inx.h:13 -#, fuzzy -msgid "GIF specific options" -msgstr "Specifiche SVG 1.1" +#: ../share/extensions/polyhedron_3d.inx.h:17 +msgid "Small Triambic Icosahedron" +msgstr "Piccolo icosaedro triambico" -#: ../share/extensions/webslicer_create_rect.inx.h:16 -#, fuzzy -msgid "Palette" -msgstr "_Paletta" +#: ../share/extensions/polyhedron_3d.inx.h:18 +msgid "Dodecahedron" +msgstr "Dodecaedro" -#: ../share/extensions/webslicer_create_rect.inx.h:17 -#, fuzzy -msgid "Palette size:" -msgstr "Incolla dimensione" +#: ../share/extensions/polyhedron_3d.inx.h:19 +msgid "Truncated Dodecahedron" +msgstr "Dodecaedro tronco" -#: ../share/extensions/webslicer_create_rect.inx.h:20 -msgid "Options for HTML export" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:20 +msgid "Snub Dodecahedron" +msgstr "Dodecaedro camuso" -#: ../share/extensions/webslicer_create_rect.inx.h:21 -#, fuzzy -msgid "Layout disposition:" -msgstr "Posizione casuale" +#: ../share/extensions/polyhedron_3d.inx.h:21 +msgid "Great Dodecahedron" +msgstr "Grande dodecaedro" -#: ../share/extensions/webslicer_create_rect.inx.h:22 -msgid "Positioned html block element with the image as Background" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:22 +msgid "Great Stellated Dodecahedron" +msgstr "Grande dodecaedro stellato" -#: ../share/extensions/webslicer_create_rect.inx.h:23 -msgid "Tiled Background (on parent group)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:23 +msgid "Load from file" +msgstr "Carica da file" -#: ../share/extensions/webslicer_create_rect.inx.h:24 -msgid "Background — repeat horizontally (on parent group)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:24 +msgid "Face-Specified" +msgstr "Specifico alla faccia" -#: ../share/extensions/webslicer_create_rect.inx.h:25 -msgid "Background — repeat vertically (on parent group)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:25 +msgid "Edge-Specified" +msgstr "Specifico allo spigolo" -#: ../share/extensions/webslicer_create_rect.inx.h:26 -msgid "Background — no repeat (on parent group)" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:27 +msgid "Rotate around:" +msgstr "Ruota attorno:" -#: ../share/extensions/webslicer_create_rect.inx.h:27 +#: ../share/extensions/polyhedron_3d.inx.h:28 +#: ../share/extensions/spirograph.inx.h:8 +#: ../share/extensions/wireframe_sphere.inx.h:5 #, fuzzy -msgid "Positioned Image" -msgstr "Posizionamento" +msgid "Rotation (deg):" +msgstr "Rotazione (gradi)" -#: ../share/extensions/webslicer_create_rect.inx.h:28 -#, fuzzy -msgid "Non Positioned Image" -msgstr "Angolo di rotazione" +#: ../share/extensions/polyhedron_3d.inx.h:29 +msgid "Then rotate around:" +msgstr "Quindi ruota attorno:" + +#: ../share/extensions/polyhedron_3d.inx.h:30 +msgid "X-Axis" +msgstr "Asse X" -#: ../share/extensions/webslicer_create_rect.inx.h:29 -msgid "Left Floated Image" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:31 +msgid "Y-Axis" +msgstr "Asse Y" -#: ../share/extensions/webslicer_create_rect.inx.h:30 -#, fuzzy -msgid "Right Floated Image" -msgstr "Angolo destro" +#: ../share/extensions/polyhedron_3d.inx.h:32 +msgid "Z-Axis" +msgstr "Asse Z" -#: ../share/extensions/webslicer_create_rect.inx.h:31 +#: ../share/extensions/polyhedron_3d.inx.h:34 #, fuzzy -msgid "Position anchor:" -msgstr "Posizione" +msgid "Scaling factor:" +msgstr "Fattore di ingrandimento" -#: ../share/extensions/webslicer_create_rect.inx.h:32 +#: ../share/extensions/polyhedron_3d.inx.h:35 #, fuzzy -msgid "Top and Left" -msgstr "Tracciato lato superiore" +msgid "Fill color, Red:" +msgstr "Colore riempimento, rosso" -#: ../share/extensions/webslicer_create_rect.inx.h:33 +#: ../share/extensions/polyhedron_3d.inx.h:36 #, fuzzy -msgid "Top and Center" -msgstr "Tracciato lato superiore" +msgid "Fill color, Green:" +msgstr "Colore riempimento, verde" -#: ../share/extensions/webslicer_create_rect.inx.h:34 +#: ../share/extensions/polyhedron_3d.inx.h:37 #, fuzzy -msgid "Top and right" -msgstr "_Trucchi" +msgid "Fill color, Blue:" +msgstr "Colore riempimento, blu" -#: ../share/extensions/webslicer_create_rect.inx.h:35 -#, fuzzy -msgid "Middle and Left" -msgstr "Tracciato lato superiore" +#: ../share/extensions/polyhedron_3d.inx.h:39 +#, no-c-format +msgid "Fill opacity (%):" +msgstr "OpacitĂ  riempimento (%):" -#: ../share/extensions/webslicer_create_rect.inx.h:36 -msgid "Middle and Center" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:41 +#, no-c-format +msgid "Stroke opacity (%):" +msgstr "OpacitĂ  contorno (%):" -#: ../share/extensions/webslicer_create_rect.inx.h:37 +#: ../share/extensions/polyhedron_3d.inx.h:42 #, fuzzy -msgid "Middle and Right" -msgstr "Tracciato lato inferiore" +msgid "Stroke width (px):" +msgstr "Larghezza contorno, px" -#: ../share/extensions/webslicer_create_rect.inx.h:38 +#: ../share/extensions/polyhedron_3d.inx.h:43 +msgid "Shading" +msgstr "Ombreggiatura" + +#: ../share/extensions/polyhedron_3d.inx.h:44 #, fuzzy -msgid "Bottom and Left" -msgstr "Tracciato lato inferiore" +msgid "Light X:" +msgstr "Illuminazione X" -#: ../share/extensions/webslicer_create_rect.inx.h:39 +#: ../share/extensions/polyhedron_3d.inx.h:45 #, fuzzy -msgid "Bottom and Center" -msgstr "Tracciato lato inferiore" +msgid "Light Y:" +msgstr "Illuminazione Y" -#: ../share/extensions/webslicer_create_rect.inx.h:40 +#: ../share/extensions/polyhedron_3d.inx.h:46 #, fuzzy -msgid "Bottom and Right" -msgstr "Tracciato lato inferiore" +msgid "Light Z:" +msgstr "Illuminazione Z" -#: ../share/extensions/webslicer_export.inx.h:1 -msgid "Export layout pieces and HTML+CSS code" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:48 +msgid "Draw back-facing polygons" +msgstr "Disegna poligoni al contrario" -#: ../share/extensions/webslicer_export.inx.h:3 -msgid "Directory path to export:" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:49 +msgid "Z-sort faces by:" +msgstr "Ordina profonditĂ  facce per:" -#: ../share/extensions/webslicer_export.inx.h:4 -msgid "Create directory, if it does not exists" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:50 +msgid "Faces" +msgstr "Facce" -#: ../share/extensions/webslicer_export.inx.h:5 -msgid "With HTML and CSS" -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:51 +msgid "Edges" +msgstr "Spigoli" -#: ../share/extensions/webslicer_export.inx.h:7 -msgid "" -"All sliced images, and optionally - code, will be generated as you had " -"configured and saved to one directory." -msgstr "" +#: ../share/extensions/polyhedron_3d.inx.h:52 +msgid "Vertices" +msgstr "Vertici" -#: ../share/extensions/whirl.inx.h:1 -msgid "Whirl" -msgstr "Spirale" +#: ../share/extensions/polyhedron_3d.inx.h:53 +msgid "Maximum" +msgstr "Massimo" -#: ../share/extensions/whirl.inx.h:2 -#, fuzzy -msgid "Amount of whirl:" -msgstr "Grado di vorticositĂ " +#: ../share/extensions/polyhedron_3d.inx.h:54 +msgid "Minimum" +msgstr "Minimo" -#: ../share/extensions/whirl.inx.h:3 -msgid "Rotation is clockwise" -msgstr "Rotazione oraria" +#: ../share/extensions/polyhedron_3d.inx.h:55 +msgid "Mean" +msgstr "Media" -#: ../share/extensions/wireframe_sphere.inx.h:1 -msgid "Wireframe Sphere" -msgstr "" +#: ../share/extensions/previous_glyph_layer.inx.h:1 +#, fuzzy +msgid "View Previous Glyph" +msgstr "Effetto Precedente" -#: ../share/extensions/wireframe_sphere.inx.h:2 +#: ../share/extensions/print_win32_vector.inx.h:1 #, fuzzy -msgid "Lines of latitude:" -msgstr "Copie del motivo:" +msgid "Win32 Vector Print" +msgstr "Stampa Windows 32-bit" -#: ../share/extensions/wireframe_sphere.inx.h:3 -msgid "Lines of longitude:" -msgstr "" +#: ../share/extensions/printing_marks.inx.h:1 +msgid "Printing Marks" +msgstr "Margini di stampa" -#: ../share/extensions/wireframe_sphere.inx.h:4 -msgid "Tilt (deg):" -msgstr "" +#: ../share/extensions/printing_marks.inx.h:3 +msgid "Crop Marks" +msgstr "Margini di taglio" -#: ../share/extensions/wireframe_sphere.inx.h:7 -msgid "Hide lines behind the sphere" -msgstr "" +#: ../share/extensions/printing_marks.inx.h:4 +msgid "Bleed Marks" +msgstr "Indicatori di taglio" -#: ../share/extensions/wmf_input.inx.h:1 -#: ../share/extensions/wmf_output.inx.h:1 -msgid "Windows Metafile Input" -msgstr "Input Windows Metafile" +#: ../share/extensions/printing_marks.inx.h:5 +msgid "Registration Marks" +msgstr "Segni di registrazione" -#: ../share/extensions/wmf_input.inx.h:3 -#: ../share/extensions/wmf_output.inx.h:3 -msgid "A popular graphics file format for clipart" -msgstr "Un formato grafico molto diffuso per clipart" +#: ../share/extensions/printing_marks.inx.h:6 +msgid "Star Target" +msgstr "Indicatore a stella" -#: ../share/extensions/xaml2svg.inx.h:1 -msgid "XAML Input" -msgstr "Input XAML" +#: ../share/extensions/printing_marks.inx.h:7 +msgid "Color Bars" +msgstr "Barra colori" -#, fuzzy -#~ msgid "Smart Jelly" -#~ msgstr "Gelatina migliorata" +#: ../share/extensions/printing_marks.inx.h:8 +msgid "Page Information" +msgstr "Informazioni pagina" -#~ msgid "Same as Matte jelly but with more controls" -#~ msgstr "Come Gelatina opaca, ma con piĂą parametri" +#: ../share/extensions/printing_marks.inx.h:9 +msgid "Positioning" +msgstr "Posizionamento" +#: ../share/extensions/printing_marks.inx.h:10 #, fuzzy -#~ msgid "Metal Casting" -#~ msgstr "Colata metallica" - -#~ msgid "Smooth drop-like bevel with metallic finish" -#~ msgstr "Smussatura dolce a goccia, con finiture metalliche" +msgid "Set crop marks to:" +msgstr "Imposta delimitatori a" -#~ msgid "Apparition" -#~ msgstr "Apparizione" +#: ../share/extensions/printing_marks.inx.h:17 +msgid "Canvas" +msgstr "Tela" -#~ msgid "Edges are partly feathered out" -#~ msgstr "I bordi sono parzialmente spiumati" +#: ../share/extensions/printing_marks.inx.h:19 +msgid "Bleed Margin" +msgstr "Margini di rifilo" -#, fuzzy -#~ msgid "Jigsaw Piece" -#~ msgstr "Puzzle" +#: ../share/extensions/ps_input.inx.h:1 +msgid "PostScript Input" +msgstr "Input PostScript" -#~ msgid "Low, sharp bevel" -#~ msgstr "Smussatura netta e bassa" +#: ../share/extensions/radiusrand.inx.h:1 +msgid "Jitter nodes" +msgstr "Sfalsa nodi" +#: ../share/extensions/radiusrand.inx.h:3 #, fuzzy -#~ msgid "Rubber Stamp" -#~ msgstr "Timbro di gomma" - -#~ msgid "Random whiteouts inside" -#~ msgstr "Tratti interne casuali di bianchetto" +msgid "Maximum displacement in X (px):" +msgstr "Spostamento massimo sulle X, px" +#: ../share/extensions/radiusrand.inx.h:4 #, fuzzy -#~ msgid "Ink Bleed" -#~ msgstr "Macchie d'inchiostro" +msgid "Maximum displacement in Y (px):" +msgstr "Spostamento massimo sulle Y, px" -#~ msgid "Protrusions" -#~ msgstr "Protrusioni" +#: ../share/extensions/radiusrand.inx.h:5 +msgid "Shift nodes" +msgstr "Sposta nodi" -#~ msgid "Inky splotches underneath the object" -#~ msgstr "Macchie di inchiostro sotto l'oggetto" +#: ../share/extensions/radiusrand.inx.h:6 +msgid "Shift node handles" +msgstr "Sposta maniglie dei nodi" -#~ msgid "Fire" -#~ msgstr "Fuoco" +#: ../share/extensions/radiusrand.inx.h:7 +msgid "Use normal distribution" +msgstr "Usa distribuzione normale" -#~ msgid "Edges of object are on fire" -#~ msgstr "Bordi dell'oggetto infiammati" +#: ../share/extensions/radiusrand.inx.h:9 +msgid "" +"This effect randomly shifts the nodes (and optionally node handles) of the " +"selected path." +msgstr "" +"Questo effetto sposta in maniera casuale i nodi (e opzionalmente anche le " +"maniglie) del tracciato selezionato." -#~ msgid "Bloom" -#~ msgstr "Riverbero" +#: ../share/extensions/render_alphabetsoup.inx.h:1 +msgid "Alphabet Soup" +msgstr "Guazzabuglio di lettere" -#~ msgid "Soft, cushion-like bevel with matte highlights" -#~ msgstr "Smussatura lieve \"a cuscino\", con riflessi opachi" +#: ../share/extensions/render_barcode.inx.h:1 +msgid "Classic" +msgstr "" -#, fuzzy -#~ msgid "Ridged Border" -#~ msgstr "Bordo con cresta" +#: ../share/extensions/render_barcode.inx.h:2 +msgid "Barcode Type:" +msgstr "Tipo codice a barre: " -#~ msgid "Ridged border with inner bevel" -#~ msgstr "Bordo truccato con smussatura interna" +#: ../share/extensions/render_barcode.inx.h:3 +msgid "Barcode Data:" +msgstr "Dati codice a barre:" -#~ msgid "Ripple" -#~ msgstr "Oscillazione" +#: ../share/extensions/render_barcode.inx.h:4 +msgid "Bar Height:" +msgstr "Altezza barre:" -#~ msgid "Horizontal rippling of edges" -#~ msgstr "Ondulazione orizzontale dei bordi" +#: ../share/extensions/render_barcode.inx.h:6 +#: ../share/extensions/render_barcode_datamatrix.inx.h:6 +#: ../share/extensions/render_barcode_qrcode.inx.h:19 +msgid "Barcode" +msgstr "Codice a barre" -#~ msgid "Speckle" -#~ msgstr "Macchia" +#: ../share/extensions/render_barcode_datamatrix.inx.h:1 +#, fuzzy +msgid "Datamatrix" +msgstr "Dati codice a barre:" -#~ msgid "Fill object with sparse translucent specks" -#~ msgstr "Disegna l'oggetto con granelli traslucidi sparsi" +#: ../share/extensions/render_barcode_datamatrix.inx.h:3 +#: ../share/extensions/render_barcode_qrcode.inx.h:4 +msgid "Size, in unit squares:" +msgstr "" +#: ../share/extensions/render_barcode_datamatrix.inx.h:4 #, fuzzy -#~ msgid "Oil Slick" -#~ msgstr "Macchia oleosa" - -#~ msgid "Rainbow-colored semitransparent oily splotches" -#~ msgstr "Macchie oleose semitrasparenti iridate" +msgid "Square Size (px):" +msgstr "Estremo squadrato" -#~ msgid "Frost" -#~ msgstr "Brina" +#: ../share/extensions/render_barcode_qrcode.inx.h:1 +msgid "QR Code" +msgstr "" -#~ msgid "Flake-like white splotches" -#~ msgstr "Macchie bianche simili a fiocchi di neve" +#: ../share/extensions/render_barcode_qrcode.inx.h:2 +msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" +msgstr "" +#: ../share/extensions/render_barcode_qrcode.inx.h:5 #, fuzzy -#~ msgid "Leopard Fur" -#~ msgstr "Pelo di leopardo" - -#~ msgid "Materials" -#~ msgstr "Materiali" +msgid "Auto" +msgstr "Salvataggio automatico" -#~ msgid "Leopard spots (loses object's own color)" -#~ msgstr "Macchie di leopardo (per il colore originario dell'oggetto)" +#: ../share/extensions/render_barcode_qrcode.inx.h:6 +msgid "" +"With \"Auto\", the size of the barcode depends on the length of the text and " +"the error correction level" +msgstr "" -#~ msgid "Zebra" -#~ msgstr "Zebra" +#: ../share/extensions/render_barcode_qrcode.inx.h:7 +#, fuzzy +msgid "Error correction level:" +msgstr "PM: riflessione" -#~ msgid "Irregular vertical dark stripes (loses object's own color)" -#~ msgstr "" -#~ "Irregolari strisce scure verticali (rimuove il colore originale " -#~ "dell'oggetto)" +#: ../share/extensions/render_barcode_qrcode.inx.h:9 +#, no-c-format +msgid "L (Approx. 7%)" +msgstr "" -#~ msgid "Clouds" -#~ msgstr "Nuvole" +#: ../share/extensions/render_barcode_qrcode.inx.h:11 +#, no-c-format +msgid "M (Approx. 15%)" +msgstr "" -#~ msgid "Airy, fluffy, sparse white clouds" -#~ msgstr "Nuvole bianche sparse, soffici e rade" +#: ../share/extensions/render_barcode_qrcode.inx.h:13 +#, no-c-format +msgid "Q (Approx. 25%)" +msgstr "" -#~ msgid "Sharpen edges and boundaries within the object, force=0.15" -#~ msgstr "Affina bordi e riquadri interni all'oggetto, forza=0.15" +#: ../share/extensions/render_barcode_qrcode.inx.h:15 +#, no-c-format +msgid "H (Approx. 30%)" +msgstr "" +#: ../share/extensions/render_barcode_qrcode.inx.h:17 #, fuzzy -#~ msgid "Sharpen More" -#~ msgstr "Maggiore nitidezza" - -#~ msgid "Sharpen edges and boundaries within the object, force=0.3" -#~ msgstr "Affina bordi e riquadri interni all'oggetto, forza=0.3" +msgid "Square size (px):" +msgstr "Estremo squadrato" -#~ msgid "Oil painting" -#~ msgstr "Pittura ad olio" +#: ../share/extensions/render_gear_rack.inx.h:1 +#, fuzzy +msgid "Rack Gear" +msgstr "Ingranaggi" -#~ msgid "Simulate oil painting style" -#~ msgstr "Simula lo stile dei dipinti ad olio" +#: ../share/extensions/render_gear_rack.inx.h:2 +#, fuzzy +msgid "Rack Length:" +msgstr "Lunghezza:" -#~ msgid "Detect color edges and retrace them in grayscale" -#~ msgstr "Rileva bordi colorati e li ridisegna in scala di grigi" +#: ../share/extensions/render_gear_rack.inx.h:3 +#, fuzzy +msgid "Tooth Spacing:" +msgstr "Spaziatura orizzontale" -#~ msgid "Blueprint" -#~ msgstr "Cianotipo" +#: ../share/extensions/render_gear_rack.inx.h:4 +#, fuzzy +msgid "Contact Angle:" +msgstr "Triangolo inscritto" -#~ msgid "Detect color edges and retrace them in blue" -#~ msgstr "Rileva bordi colorati e li ridisegna in blu" +#: ../share/extensions/render_gear_rack.inx.h:6 +#: ../share/extensions/render_gears.inx.h:1 +msgid "Gear" +msgstr "Ingranaggi" -#~ msgid "Age" -#~ msgstr "Invecchiato" +#: ../share/extensions/render_gears.inx.h:2 +#, fuzzy +msgid "Number of teeth:" +msgstr "Numero di denti" -#~ msgid "Imitate aged photograph" -#~ msgstr "Imita fotografie antiche" +#: ../share/extensions/render_gears.inx.h:3 +#, fuzzy +msgid "Circular pitch (tooth size):" +msgstr "Passo, px" -#~ msgid "Organic" -#~ msgstr "Organico" +#: ../share/extensions/render_gears.inx.h:4 +#, fuzzy +msgid "Pressure angle (degrees):" +msgstr "Angolo di pressione" -#~ msgid "Textures" -#~ msgstr "Texture" +#: ../share/extensions/render_gears.inx.h:5 +msgid "Diameter of center hole (0 for none):" +msgstr "" -#~ msgid "Bulging, knotty, slick 3D surface" -#~ msgstr "Superficie 3D nodosa, patinata e con protrusioni" +#: ../share/extensions/render_gears.inx.h:10 +msgid "Unit of measurement for both circular pitch and center diameter." +msgstr "" +#: ../share/extensions/replace_font.inx.h:1 #, fuzzy -#~ msgid "Barbed Wire" -#~ msgstr "Filo spinato" - -#~ msgid "Gray bevelled wires with drop shadows" -#~ msgstr "Filo grigio spigoloso, con ombreggiature" +msgid "Replace font" +msgstr "Sostituisci testo" +#: ../share/extensions/replace_font.inx.h:2 #, fuzzy -#~ msgid "Swiss Cheese" -#~ msgstr "Gruviera" - -#~ msgid "Random inner-bevel holes" -#~ msgstr "Buchi casuali interni agli spigoli" +msgid "Find and Replace font" +msgstr "T_rova e sostituisci testo..." +#: ../share/extensions/replace_font.inx.h:3 #, fuzzy -#~ msgid "Blue Cheese" -#~ msgstr "Gorgonzola" - -#~ msgid "Marble-like bluish speckles" -#~ msgstr "Chiazze bluastre simili a marmo" - -#~ msgid "Button" -#~ msgstr "Bottone" - -#~ msgid "Soft bevel, slightly depressed middle" -#~ msgstr "Leggera smussatura, lieve depressione intermedia" - -#~ msgid "Inset" -#~ msgstr "Intrusione" +msgid "Find font: " +msgstr "Aggiungi font" -#~ msgid "Shadowy outer bevel" -#~ msgstr "Smussatura esterna ombreggiata" +#: ../share/extensions/replace_font.inx.h:4 +#, fuzzy +msgid "Replace with: " +msgstr "Rimpiazza:" -#~ msgid "Random paint streaks downwards" -#~ msgstr "Colate casuali di pittura" +#: ../share/extensions/replace_font.inx.h:5 +msgid "Replace all fonts with: " +msgstr "" +#: ../share/extensions/replace_font.inx.h:6 #, fuzzy -#~ msgid "Jam Spread" -#~ msgstr "Marmellata" +msgid "List all fonts" +msgstr "Modifica font SVG" -#~ msgid "Glossy clumpy jam spread" -#~ msgstr "Marmellata con grumi e riflessi" +#: ../share/extensions/replace_font.inx.h:7 +msgid "" +"Choose this tab if you would like to see a list of the fonts used/found." +msgstr "" +#: ../share/extensions/replace_font.inx.h:8 #, fuzzy -#~ msgid "Pixel Smear" -#~ msgstr "Sbaffi di pixel" +msgid "Work on:" +msgstr "ModalitĂ :" -#~ msgid "Van Gogh painting effect for bitmaps" -#~ msgstr "Effetto Van Gogh per bitmap" +#: ../share/extensions/replace_font.inx.h:9 +#, fuzzy +msgid "Entire drawing" +msgstr "L'area esportata è il disegno" +#: ../share/extensions/replace_font.inx.h:10 #, fuzzy -#~ msgid "Cracked Glass" -#~ msgstr "Vetro rotto" +msgid "Selected objects only" +msgstr "Riflette orizzontalmente gli oggetti selezionati" -#~ msgid "Under a cracked glass" -#~ msgstr "Sotto un vetro rotto" +#: ../share/extensions/restack.inx.h:1 +msgid "Restack" +msgstr "Reimpila" -#~ msgid "Bubbly Bumps" -#~ msgstr "Rughe a bolle" +#: ../share/extensions/restack.inx.h:2 +msgid "Restack Direction:" +msgstr "Direzione della pila:" -#~ msgid "Flexible bubbles effect with some displacement" -#~ msgstr "Bolle parametrizzate con una quantitĂ  di spostamento" +#: ../share/extensions/restack.inx.h:3 +msgid "Left to Right (0)" +msgstr "Da sinistra a destra (0)" -#, fuzzy -#~ msgid "Glowing Bubble" -#~ msgstr "Bolle con alone" +#: ../share/extensions/restack.inx.h:4 +msgid "Bottom to Top (90)" +msgstr "Dal fondo alla cima (90)" -#~ msgid "Ridges" -#~ msgstr "Creste" +#: ../share/extensions/restack.inx.h:5 +msgid "Right to Left (180)" +msgstr "Da destra a sinistra (180)" -#~ msgid "Bubble effect with refraction and glow" -#~ msgstr "Bolle con effetti di alone e rifrazione" +#: ../share/extensions/restack.inx.h:6 +msgid "Top to Bottom (270)" +msgstr "Dalla cima al fondo (270)" -#~ msgid "Neon" -#~ msgstr "Neon" +#: ../share/extensions/restack.inx.h:7 +msgid "Radial Outward" +msgstr "Raggio esterno" -#~ msgid "Neon light effect" -#~ msgstr "Luce neon" +#: ../share/extensions/restack.inx.h:8 +msgid "Radial Inward" +msgstr "Raggio interno" +#: ../share/extensions/restack.inx.h:9 #, fuzzy -#~ msgid "Molten Metal" -#~ msgstr "Metallo fuso" +msgid "Arbitrary Angle" +msgstr "Angolo arbitrario:" -#~ msgid "Melting parts of object together, with a glossy bevel and a glow" -#~ msgstr "" -#~ "Fonde insieme parti dell'oggetto, con un alone e una sfumatura patinata" +#: ../share/extensions/restack.inx.h:11 +msgid "Horizontal Point:" +msgstr "Punto orizzontale:" -#, fuzzy -#~ msgid "Pressed Steel" -#~ msgstr "Acciaio pressato" +#: ../share/extensions/restack.inx.h:13 +#: ../share/extensions/text_extract.inx.h:9 +#: ../share/extensions/text_merge.inx.h:9 +msgid "Middle" +msgstr "MetĂ " -#~ msgid "Pressed metal with a rolled edge" -#~ msgstr "Metallo pressato con bordi incurvati" +#: ../share/extensions/restack.inx.h:15 +msgid "Vertical Point:" +msgstr "Punto verticale:" -#, fuzzy -#~ msgid "Matte Bevel" -#~ msgstr "Sfumatura opaca" +#: ../share/extensions/restack.inx.h:16 +#: ../share/extensions/text_extract.inx.h:12 +#: ../share/extensions/text_merge.inx.h:12 +msgid "Top" +msgstr "Cima" -#~ msgid "Soft, pastel-colored, blurry bevel" -#~ msgstr "Sfumatura sfocata leggera, color pastello" +#: ../share/extensions/restack.inx.h:17 +#: ../share/extensions/text_extract.inx.h:13 +#: ../share/extensions/text_merge.inx.h:13 +msgid "Bottom" +msgstr "Fondo" -#~ msgid "Thin Membrane" -#~ msgstr "Membrana sottile" +#: ../share/extensions/restack.inx.h:18 +msgid "Arrange" +msgstr "Ordinamento" -#~ msgid "Thin like a soap membrane" -#~ msgstr "Membrana sottile come il sapone" +#: ../share/extensions/rtree.inx.h:1 +msgid "Random Tree" +msgstr "Albero casuale" +#: ../share/extensions/rtree.inx.h:2 #, fuzzy -#~ msgid "Matte Ridge" -#~ msgstr "Cresta opaca" - -#~ msgid "Soft pastel ridge" -#~ msgstr "Creste a pastello leggero" +msgid "Initial size:" +msgstr "Dimensione iniziale" +#: ../share/extensions/rtree.inx.h:3 #, fuzzy -#~ msgid "Glowing Metal" -#~ msgstr "Metallo lucidato" +msgid "Minimum size:" +msgstr "Dimensione minima" -#~ msgid "Glowing metal texture" -#~ msgstr "Texture metallica con alone" +#: ../share/extensions/rubberstretch.inx.h:1 +msgid "Rubber Stretch" +msgstr "Deformazione elastica" -#~ msgid "Leaves" -#~ msgstr "Foglie" +#: ../share/extensions/rubberstretch.inx.h:3 +#, no-c-format +msgid "Strength (%):" +msgstr "Forza (%)" -#~ msgid "Leaves on the ground in Fall, or living foliage" -#~ msgstr "Foglie cadute in autunno, o foglie vive" +#: ../share/extensions/rubberstretch.inx.h:5 +#, no-c-format +msgid "Curve (%):" +msgstr "Curvatura (%):" -#~ msgid "Illuminated translucent plastic or glass effect" -#~ msgstr "Vetro o plastica lucidi e illuminati" +#: ../share/extensions/scour.inx.h:1 +msgid "Optimized SVG Output" +msgstr "Output SVG ottimizzato" +#: ../share/extensions/scour.inx.h:3 #, fuzzy -#~ msgid "Iridescent Beeswax" -#~ msgstr "Cera d'api iridescente" - -#~ msgid "Waxy texture which keeps its iridescence through color fill change" -#~ msgstr "" -#~ "Texture ondulata che mantiene l'iridescenza con cambiamenti del colore di " -#~ "riempimento" +msgid "Shorten color values" +msgstr "Colori tenui" +#: ../share/extensions/scour.inx.h:4 #, fuzzy -#~ msgid "Eroded Metal" -#~ msgstr "Metallo consumato" - -#~ msgid "Eroded metal texture with ridges, grooves, holes and bumps" -#~ msgstr "Texture a metallo consumato con sporgenze, buchi, aloni e righe" - -#~ msgid "Cracked Lava" -#~ msgstr "Magma frammentato" - -#~ msgid "A volcanic texture, a little like leather" -#~ msgstr "Una texture magmatica, simile al cuoio" - -#~ msgid "Bark texture, vertical; use with deep colors" -#~ msgstr "Texture a corteccia, verticale; usare con colori scuri" +msgid "Convert CSS attributes to XML attributes" +msgstr "Cancella attributo" -#, fuzzy -#~ msgid "Lizard Skin" -#~ msgstr "Pelle di lucertola" +#: ../share/extensions/scour.inx.h:5 +msgid "Group collapsing" +msgstr "" -#~ msgid "Stylized reptile skin texture" -#~ msgstr "Texture stilizzata come pelle di rettile" +#: ../share/extensions/scour.inx.h:6 +msgid "Create groups for similar attributes" +msgstr "" +#: ../share/extensions/scour.inx.h:7 #, fuzzy -#~ msgid "Stone Wall" -#~ msgstr "Muro in pietra" +msgid "Embed rasters" +msgstr "Incorpora immagini" -#~ msgid "Stone wall texture to use with not too saturated colors" -#~ msgstr "Texture a muro di pietra, da usare con colori non troppo saturi" +#: ../share/extensions/scour.inx.h:8 +msgid "Keep editor data" +msgstr "" +#: ../share/extensions/scour.inx.h:9 #, fuzzy -#~ msgid "Silk Carpet" -#~ msgstr "Tappeto di seta" - -#~ msgid "Silk carpet texture, horizontal stripes" -#~ msgstr "Texture a tappeto di seta, con strisce orizzontali" +msgid "Remove metadata" +msgstr "Rimuovi rosso" +#: ../share/extensions/scour.inx.h:10 #, fuzzy -#~ msgid "Refractive Gel A" -#~ msgstr "Gel rifrangente A" +msgid "Remove comments" +msgstr "Rimuovi font" -#~ msgid "Gel effect with light refraction" -#~ msgstr "Effetto gel con debole rifrazione" +#: ../share/extensions/scour.inx.h:11 +msgid "Work around renderer bugs" +msgstr "" +#: ../share/extensions/scour.inx.h:12 #, fuzzy -#~ msgid "Refractive Gel B" -#~ msgstr "Gel rifrangente B" - -#~ msgid "Gel effect with strong refraction" -#~ msgstr "Effetto gel con forte rifrazione" +msgid "Enable viewboxing" +msgstr "Attiva anteprima" +#: ../share/extensions/scour.inx.h:13 #, fuzzy -#~ msgid "Metallized Paint" -#~ msgstr "Vernice metallizzata" - -#~ msgid "" -#~ "Metallized effect with a soft lighting, slightly translucent at the edges" -#~ msgstr "" -#~ "Effetto metallizzato con tenue illuminazione, leggermente traslucido ai " -#~ "bordi" +msgid "Remove the xml declaration" +msgstr "Rimuovi _trasformazioni" -#~ msgid "Dragee" -#~ msgstr "Confetti" +#: ../share/extensions/scour.inx.h:14 +msgid "Number of significant digits for coords:" +msgstr "" -#~ msgid "Gel Ridge with a pearlescent look" -#~ msgstr "Cresta gelatinosa con un effetto perlaceo" +#: ../share/extensions/scour.inx.h:15 +msgid "XML indentation (pretty-printing):" +msgstr "" +#: ../share/extensions/scour.inx.h:16 #, fuzzy -#~ msgid "Raised Border" -#~ msgstr "Bordo rialzato" - -#~ msgid "Strongly raised border around a flat surface" -#~ msgstr "Bordo molto sporgente da una superficie piatta" +msgid "Space" +msgstr "Macchia" +#: ../share/extensions/scour.inx.h:17 #, fuzzy -#~ msgid "Metallized Ridge" -#~ msgstr "Cresta metallizzata" - -#~ msgid "Gel Ridge metallized at its top" -#~ msgstr "Cresta gelatinosa con punta metallizzata" +msgid "Tab" +msgstr "Tabella" +#: ../share/extensions/scour.inx.h:19 #, fuzzy -#~ msgid "Fat Oil" -#~ msgstr "Copertura oleosa" +msgid "Ids" +msgstr "_Id" -#~ msgid "Fat oil with some adjustable turbulence" -#~ msgstr "Copertura oleosa con turbolenza variabile" +#: ../share/extensions/scour.inx.h:20 +msgid "Remove unused ID names for elements" +msgstr "" -#, fuzzy -#~ msgid "Black Hole" -#~ msgstr "Buco nero" +#: ../share/extensions/scour.inx.h:21 +msgid "Shorten IDs" +msgstr "" -#~ msgid "Creates a black light inside and outside" -#~ msgstr "Crea una luce scura all'interno e all'esterno" +#: ../share/extensions/scour.inx.h:22 +msgid "Preserve manually created ID names not ending with digits" +msgstr "" -#~ msgid "Cubes" -#~ msgstr "Cubi" +#: ../share/extensions/scour.inx.h:23 +msgid "Preserve these ID names, comma-separated:" +msgstr "" -#~ msgid "Scattered cubes; adjust the Morphology primitive to vary size" -#~ msgstr "Cubi sparsi; dimensione regolabile tramite il filtro Morfologia" +#: ../share/extensions/scour.inx.h:24 +msgid "Preserve ID names starting with:" +msgstr "" +#: ../share/extensions/scour.inx.h:25 #, fuzzy -#~ msgid "Peel Off" -#~ msgstr "Strappi" - -#~ msgid "Peeling painting on a wall" -#~ msgstr "Carta da parati strappata" +msgid "Help (Options)" +msgstr "Opzioni" -#, fuzzy -#~ msgid "Gold Splatter" -#~ msgstr "Spruzzi dorati" +#: ../share/extensions/scour.inx.h:27 +#, no-c-format +msgid "" +"This extension optimizes the SVG file according to the following options:\n" +" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" +" * Convert CSS attributes to XML attributes: convert styles from style " +"tags and inline style=\"\" declarations into XML attributes.\n" +" * Group collapsing: removes useless g elements, promoting their contents " +"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" +" * Create groups for similar attributes: create g elements for runs of " +"elements having at least one attribute in common (e.g. fill color, stroke " +"opacity, ...).\n" +" * Embed rasters: embed raster images as base64-encoded data URLs.\n" +" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " +"elements and attributes.\n" +" * Remove metadata: remove metadata tags along with all the information " +"in them, which may include license metadata, alternate versions for non-SVG-" +"enabled browsers, etc.\n" +" * Remove comments: remove comment tags.\n" +" * Work around renderer bugs: emits slightly larger SVG data, but works " +"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " +"various applications.\n" +" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" +" * Number of significant digits for coords: all coordinates are output " +"with that number of significant digits. For example, if 3 is specified, the " +"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " +"472.\n" +" * XML indentation (pretty-printing): either None for no indentation, " +"Space to use one space per nesting level, or Tab to use one tab per nesting " +"level." +msgstr "" -#~ msgid "Splattered cast metal, with golden highlights" -#~ msgstr "Stampo metallico a spruzzi, con riflessi dorati" +#: ../share/extensions/scour.inx.h:40 +msgid "Help (Ids)" +msgstr "" -#, fuzzy -#~ msgid "Gold Paste" -#~ msgstr "Campiture dorate" +#: ../share/extensions/scour.inx.h:41 +msgid "" +"Ids specific options:\n" +" * Remove unused ID names for elements: remove all unreferenced ID " +"attributes.\n" +" * Shorten IDs: reduce the length of all ID attributes, assigning the " +"shortest to the most-referenced elements. For instance, #linearGradient5621, " +"referenced 100 times, can become #a.\n" +" * Preserve manually created ID names not ending with digits: usually, " +"optimised SVG output removes these, but if they're needed for referencing (e." +"g. #middledot), you may use this option.\n" +" * Preserve these ID names, comma-separated: you can use this in " +"conjunction with the other preserve options if you wish to preserve some " +"more specific ID names.\n" +" * Preserve ID names starting with: usually, optimised SVG output removes " +"all unused ID names, but if all of your preserved ID names start with the " +"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." +msgstr "" -#~ msgid "Fat pasted cast metal, with golden highlights" -#~ msgstr "Stampo metallico a campiture, con riflessi dorati" +#: ../share/extensions/scour.inx.h:47 +msgid "Optimized SVG (*.svg)" +msgstr "SVG ottimizzato (*.svg)" -#, fuzzy -#~ msgid "Crumpled Plastic" -#~ msgstr "Plastica spiegazzata" +#: ../share/extensions/scour.inx.h:48 +msgid "Scalable Vector Graphics" +msgstr "Scalable Vector Graphics" -#~ msgid "Crumpled matte plastic, with melted edge" -#~ msgstr "Plastica spiegazzata opaca, con bordi fusi" +#: ../share/extensions/setup_typography_canvas.inx.h:1 +msgid "1 - Setup Typography Canvas" +msgstr "" +#: ../share/extensions/setup_typography_canvas.inx.h:2 #, fuzzy -#~ msgid "Enamel Jewelry" -#~ msgstr "Gioielli smaltati" - -#~ msgid "Slightly cracked enameled texture" -#~ msgstr "Texture smaltata con leggere striature" +msgid "Em-size:" +msgstr "Dimensione:" +#: ../share/extensions/setup_typography_canvas.inx.h:3 #, fuzzy -#~ msgid "Rough Paper" -#~ msgstr "Carta grezza" - -#~ msgid "Aquarelle paper effect which can be used for pictures as for objects" -#~ msgstr "Carta acquarellata, usabile per oggetti o immagini" +msgid "Ascender:" +msgstr "Render" +#: ../share/extensions/setup_typography_canvas.inx.h:4 #, fuzzy -#~ msgid "Rough and Glossy" -#~ msgstr "Grezza e patinata" - -#~ msgid "" -#~ "Crumpled glossy paper effect which can be used for pictures as for objects" -#~ msgstr "" -#~ "Carta stropicciata e patinata, può essere usa per oggetti o immagini" - -#~ msgid "Inner colorized shadow, outer black shadow" -#~ msgstr "Ombra interna colorabile, ombra scura esterna" +msgid "Caps Height:" +msgstr "Altezza barre:" +#: ../share/extensions/setup_typography_canvas.inx.h:5 #, fuzzy -#~ msgid "Air Spray" -#~ msgstr "Nebulizzatore" - -#~ msgid "Convert to small scattered particles with some thickness" -#~ msgstr "Converte in piccole particelle sparse dotate di spessore" +msgid "X-Height:" +msgstr "Altezza:" +#: ../share/extensions/setup_typography_canvas.inx.h:6 #, fuzzy -#~ msgid "Warm Inside" -#~ msgstr "Calore interno" +msgid "Descender:" +msgstr "Dipendenza:" -#~ msgid "Blurred colorized contour, filled inside" -#~ msgstr "Contorno sfumato colorabile, riempimento interno" +#: ../share/extensions/sk1_input.inx.h:1 +msgid "sK1 vector graphics files input" +msgstr "Input file grafico vettoriale sK1" +#: ../share/extensions/sk1_input.inx.h:2 +#: ../share/extensions/sk1_output.inx.h:2 #, fuzzy -#~ msgid "Cool Outside" -#~ msgstr "Esterno freddo" +msgid "sK1 vector graphics files (*.sk1)" +msgstr "File grafico vettoriale sK1 (.sk1)" -#~ msgid "Blurred colorized contour, empty inside" -#~ msgstr "Contorno sfumato colorabile, interno vuoto" +#: ../share/extensions/sk1_input.inx.h:3 +msgid "Open files saved in sK1 vector graphics editor" +msgstr "Apri file salvati con l'editor vettoriale sK1" -#, fuzzy -#~ msgid "Electronic Microscopy" -#~ msgstr "Microscopio elettronico" +#: ../share/extensions/sk1_output.inx.h:1 +msgid "sK1 vector graphics files output" +msgstr "Output file grafico vettoriale sK1" -#~ msgid "" -#~ "Bevel, crude light, discoloration and glow like in electronic microscopy" -#~ msgstr "" -#~ "Luce fredda, opaca, scolorata e smussature come in un microscopio " -#~ "elettronico" +#: ../share/extensions/sk1_output.inx.h:3 +msgid "File format for use in sK1 vector graphics editor" +msgstr "Formato di file per l'uso con l'editor vettoriale sK1" -#~ msgid "Tartan" -#~ msgstr "Tartan" +#: ../share/extensions/sk_input.inx.h:1 +msgid "Sketch Input" +msgstr "Input Sketch" -#~ msgid "Checkered tartan pattern" -#~ msgstr "Tartan con trama quadrettata" +#: ../share/extensions/sk_input.inx.h:2 +msgid "Sketch Diagram (*.sk)" +msgstr "Diagramma di Sketch (*.sk)" -#, fuzzy -#~ msgid "Shaken Liquid" -#~ msgstr "Liquido agitato" +#: ../share/extensions/sk_input.inx.h:3 +msgid "A diagram created with the program Sketch" +msgstr "Un diagramma creato con il programma Sketch" -#~ msgid "Colorizable filling with flow inside like transparency" -#~ msgstr "Riempimento colorabile con flussi interni in trasparenza" +#: ../share/extensions/spirograph.inx.h:1 +msgid "Spirograph" +msgstr "Spirografo" +#: ../share/extensions/spirograph.inx.h:2 #, fuzzy -#~ msgid "Soft Focus Lens" -#~ msgstr "Lente focale leggera" - -#~ msgid "Glowing image content without blurring it" -#~ msgstr "Aggiunge bagliore all'immagine senza sfuocarla" - -#~ msgid "Illuminated stained glass effect" -#~ msgstr "Vetrata illuminata" +msgid "R - Ring Radius (px):" +msgstr "R - Raggio dell'anello (px)" +#: ../share/extensions/spirograph.inx.h:3 #, fuzzy -#~ msgid "Dark Glass" -#~ msgstr "Vetro scuro" - -#~ msgid "Illuminated glass effect with light coming from beneath" -#~ msgstr "Vetro illuminato da sotto" +msgid "r - Gear Radius (px):" +msgstr "r - Raggio dell'ingranaggio (px)" +#: ../share/extensions/spirograph.inx.h:4 #, fuzzy -#~ msgid "HSL Bumps Alpha" -#~ msgstr "Rughe HSL e alpha" - -#~ msgid "Same as HSL Bumps but with transparent highlights" -#~ msgstr "Come Rughe HSL, ma con riflessi trasparenti" +msgid "d - Pen Radius (px):" +msgstr "d - Raggio della penna (px)" +#: ../share/extensions/spirograph.inx.h:5 #, fuzzy -#~ msgid "Bubbly Bumps Alpha" -#~ msgstr "Rughe a bolle, con trasparenza" - -#~ msgid "Same as Bubbly Bumps but with transparent highlights" -#~ msgstr "Come Rughe a bolle, ma con un riflesso trasparente" +msgid "Gear Placement:" +msgstr "Posizione ingranaggi" -#, fuzzy -#~ msgid "Torn Edges" -#~ msgstr "Contorni frastagliati" +#: ../share/extensions/spirograph.inx.h:6 +msgid "Inside (Hypotrochoid)" +msgstr "Interni (ipotrocoide)" -#~ msgid "" -#~ "Displace the outside of shapes and pictures without altering their content" -#~ msgstr "Scosta l'esterno di forme e immagine senza alterare il contenuto" +#: ../share/extensions/spirograph.inx.h:7 +msgid "Outside (Epitrochoid)" +msgstr "Esterni (epitrocoide)" +#: ../share/extensions/spirograph.inx.h:9 #, fuzzy -#~ msgid "Roughen Inside" -#~ msgstr "Interno nitido" - -#~ msgid "Roughen all inside shapes" -#~ msgstr "Interni delle forme piĂą nitidi" - -#~ msgid "Evanescent" -#~ msgstr "Evanescente" - -#~ msgid "" -#~ "Blur the contents of objects, preserving the outline and adding " -#~ "progressive transparency at edges" -#~ msgstr "" -#~ "Sfuma il contenuto dell'oggetto, preservando il contorno e aggiungendo " -#~ "una trasparenza progressiva ai bordi" +msgid "Quality (Default = 16):" +msgstr "QualitĂ  (predefinita = 16)" +#: ../share/extensions/split.inx.h:1 #, fuzzy -#~ msgid "Chalk and Sponge" -#~ msgstr "Gesso e spugna" - -#~ msgid "Low turbulence gives sponge look and high turbulence chalk" -#~ msgstr "Una bassa turbolenza per un effetto spugna, alta per effetto gesso" - -#~ msgid "People" -#~ msgstr "Persone" - -#~ msgid "Colorized blotches, like a crowd of people" -#~ msgstr "Macchie colorate, simile a una folla di persone" - -#~ msgid "Scotland" -#~ msgstr "Tartan" - -#~ msgid "Colorized mountain tops out of the fog" -#~ msgstr "Montagna colorata con la cima annuvolata" - -#~ msgid "Garden of Delights" -#~ msgstr "Giardino delle delizie" - -#~ msgid "" -#~ "Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of " -#~ "Delights" -#~ msgstr "" -#~ "Ammasso fantasmagorico e turbolento, come nel Giardino delle Delizie di " -#~ "Hieronymus Bosch" - -#~ msgid "Cutout Glow" -#~ msgstr "Alone netto" - -#~ msgid "In and out glow with a possible offset and colorizable flood" -#~ msgstr "" -#~ "Alone interno e esterno con riempimento colorabile ed eventuale " -#~ "spiazzamento" +msgid "Split text" +msgstr "Elimina testo" -#~ msgid "Dark Emboss" -#~ msgstr "Rilievo scuro" +#: ../share/extensions/split.inx.h:3 +msgid "Split:" +msgstr "" -#~ msgid "Emboss effect : 3D relief where white is replaced by black" -#~ msgstr "Rilievo: effetto 3D dove il bianco è rimpiazzato col nero" +#: ../share/extensions/split.inx.h:4 +msgid "Preserve original text" +msgstr "" +#: ../share/extensions/split.inx.h:5 #, fuzzy -#~ msgid "Bubbly Bumps Matte" -#~ msgstr "Rughe a bolle, opache" - -#~ msgid "" -#~ "Same as Bubbly Bumps but with a diffuse light instead of a specular one" -#~ msgstr "" -#~ "Come rughe a bolle ma con un'illuminazione diffusa anzichĂ© speculare" +msgctxt "split" +msgid "Lines" +msgstr "Linee" +#: ../share/extensions/split.inx.h:6 #, fuzzy -#~ msgid "Blotting Paper" -#~ msgstr "Carta macchiata" - -#~ msgid "Inkblot on blotting paper" -#~ msgstr "Macchie d'inchiostro su carta" +msgctxt "split" +msgid "Words" +msgstr "ModalitĂ :" +#: ../share/extensions/split.inx.h:7 #, fuzzy -#~ msgid "Wax Print" -#~ msgstr "Dipinto a cera" +msgctxt "split" +msgid "Letters" +msgstr "Sinistra:" -#~ msgid "Wax print on tissue texture" -#~ msgstr "Texture stampa a cera su tessuto" +#: ../share/extensions/split.inx.h:9 +msgid "This effect splits texts into different lines, words or letters." +msgstr "" -#~ msgid "Watercolor" -#~ msgstr "Colore ad acqua" +#: ../share/extensions/straightseg.inx.h:1 +msgid "Straighten Segments" +msgstr "Appiattisci segmento" -#~ msgid "Cloudy watercolor effect" -#~ msgstr "Effetto nuvola acquerellata" +#: ../share/extensions/straightseg.inx.h:2 +#, fuzzy +msgid "Percent:" +msgstr "Percentuale" -#~ msgid "Felt" -#~ msgstr "Feltro" +#: ../share/extensions/straightseg.inx.h:3 +#, fuzzy +msgid "Behavior:" +msgstr "Comportamento" -#~ msgid "" -#~ "Felt like texture with color turbulence and slightly darker at the edges" -#~ msgstr "" -#~ "Texture simile a feltro con turbolenza colorata e leggermente piĂą scura " -#~ "ai bordi" +#: ../share/extensions/summersnight.inx.h:1 +msgid "Envelope" +msgstr "Imbusta" +#: ../share/extensions/svg2fxg.inx.h:1 #, fuzzy -#~ msgid "Ink Paint" -#~ msgstr "Disegno a china" - -#~ msgid "Ink paint on paper with some turbulent color shift" -#~ msgstr "Inchiostro su carta con variazioni di colore turbolente" +msgid "FXG Output" +msgstr "Output SVG" +#: ../share/extensions/svg2fxg.inx.h:2 #, fuzzy -#~ msgid "Tinted Rainbow" -#~ msgstr "Arcobaleno tinto" +msgid "Flash XML Graphics (*.fxg)" +msgstr "File grafico di XFIG (*.fig)" -#~ msgid "Smooth rainbow colors melted along the edges and colorizable" -#~ msgstr "Arcobaleno di colori, fuso lungo i bordi e colorabile" +#: ../share/extensions/svg2fxg.inx.h:3 +msgid "Adobe's XML Graphics file format" +msgstr "" -#, fuzzy -#~ msgid "Melted Rainbow" -#~ msgstr "Arcobaleno fuso" +#: ../share/extensions/svg2xaml.inx.h:1 +msgid "XAML Output" +msgstr "Output XAML" -#~ msgid "Smooth rainbow colors slightly melted along the edges" -#~ msgstr "Arcobaleno di colori, leggermente fuso lungo i bordi" +#: ../share/extensions/svg2xaml.inx.h:2 +msgid "Silverlight compatible XAML" +msgstr "" -#, fuzzy -#~ msgid "Flex Metal" -#~ msgstr "Metallo colato" +#: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 +msgid "Microsoft XAML (*.xaml)" +msgstr "Microsoft XAML (*.xaml)" -#~ msgid "Bright, polished uneven metal casting, colorizable" -#~ msgstr "Colata metallica irregolare e brillante, colorabile" +#: ../share/extensions/svg2xaml.inx.h:4 ../share/extensions/xaml2svg.inx.h:3 +msgid "Microsoft's GUI definition format" +msgstr "Forma di definizione GUI di Microsoft" +#: ../share/extensions/svg_and_media_zip_output.inx.h:1 #, fuzzy -#~ msgid "Wavy Tartan" -#~ msgstr "Tartan increspato" +msgid "Compressed Inkscape SVG with media export" +msgstr "Inkscape SVG compresso con altri media (*.zip)" -#~ msgid "Tartan pattern with a wavy displacement and bevel around the edges" -#~ msgstr "Motivo a tartan con spostamento a onde e smussatura ai bordi" +#: ../share/extensions/svg_and_media_zip_output.inx.h:2 +#, fuzzy +msgid "Image zip directory:" +msgstr "Cartella di lavoro non valida: %s" +#: ../share/extensions/svg_and_media_zip_output.inx.h:3 #, fuzzy -#~ msgid "3D Marble" -#~ msgstr "Marmo 3D" +msgid "Add font list" +msgstr "Aggiungi font" -#~ msgid "3D warped marble texture" -#~ msgstr "Texture marmorea convoluta 3D" +#: ../share/extensions/svg_and_media_zip_output.inx.h:4 +msgid "Compressed Inkscape SVG with media (*.zip)" +msgstr "Inkscape SVG compresso con altri media (*.zip)" -#~ msgid "3D warped, fibered wood texture" -#~ msgstr "Texture convoluta 3D, legno fibroso" +#: ../share/extensions/svg_and_media_zip_output.inx.h:5 +msgid "" +"Inkscape's native file format compressed with Zip and including all media " +"files" +msgstr "" +"Formato nativo di Inkscape compresso con Zip e contenente tutti i file " +"multimediali" -#, fuzzy -#~ msgid "3D Mother of Pearl" -#~ msgstr "Madreperla 3D" +#: ../share/extensions/svgcalendar.inx.h:1 +msgid "Calendar" +msgstr "Calendario" -#~ msgid "3D warped, iridescent pearly shell texture" -#~ msgstr "Texture convoluta 3D, perlaceo iridescente" +#: ../share/extensions/svgcalendar.inx.h:3 +msgid "Year (4 digits):" +msgstr "" +#: ../share/extensions/svgcalendar.inx.h:4 #, fuzzy -#~ msgid "Tiger Fur" -#~ msgstr "Pelo di tigre" - -#~ msgid "Tiger fur pattern with folds and bevel around the edges" -#~ msgstr "Motivo tigrati con pieghe e smussature lungo i bordi" - -#~ msgid "Black Light" -#~ msgstr "Luce nera" +msgid "Month (0 for all):" +msgstr "Mese (0 per tutti)" -#~ msgid "Light areas turn to black" -#~ msgstr "Le aree chiare diventano nere" +#: ../share/extensions/svgcalendar.inx.h:5 +msgid "Fill empty day boxes with next month's days" +msgstr "Riempire le caselle vuote con i giorni del mese successivo" +#: ../share/extensions/svgcalendar.inx.h:6 #, fuzzy -#~ msgid "Film Grain" -#~ msgstr "Pellicola a grani" - -#~ msgid "Adds a small scale graininess" -#~ msgstr "Aggiunge una leggere granularitĂ " +msgid "Show week number" +msgstr "Angolo de" +#: ../share/extensions/svgcalendar.inx.h:7 #, fuzzy -#~ msgid "Plaster Color" -#~ msgstr "Incolla colore" +msgid "Week start day:" +msgstr "Primo giorno della settimana" +#: ../share/extensions/svgcalendar.inx.h:8 #, fuzzy -#~ msgid "Colored plaster emboss effect" -#~ msgstr "Effetto nuvola acquerellata" +msgid "Weekend:" +msgstr "Weekend" -#~ msgid "Velvet Bumps" -#~ msgstr "Rughe vellutate" +#: ../share/extensions/svgcalendar.inx.h:9 +msgid "Sunday" +msgstr "Domenica" -#~ msgid "Gives Smooth Bumps velvet like" -#~ msgstr "Crea rughe soffici ad effetto velluto" +#: ../share/extensions/svgcalendar.inx.h:10 +msgid "Monday" +msgstr "Lunedì" -#, fuzzy -#~ msgid "Comics Cream" -#~ msgstr "Fumetto crema" +#: ../share/extensions/svgcalendar.inx.h:11 +msgid "Saturday and Sunday" +msgstr "Sabato e domenica" -#~ msgid "Non realistic 3D shaders" -#~ msgstr "Shader 3D non realistici" +#: ../share/extensions/svgcalendar.inx.h:12 +msgid "Saturday" +msgstr "Sabato" -#~ msgid "Comics shader with creamy waves transparency" -#~ msgstr "Shader a fumetto con onde cremose in trasparenza" +#: ../share/extensions/svgcalendar.inx.h:14 +msgid "Automatically set size and position" +msgstr "Imposta automaticamente dimensione e posizione" +#: ../share/extensions/svgcalendar.inx.h:15 #, fuzzy -#~ msgid "Chewing Gum" -#~ msgstr "Chewing gum" - -#~ msgid "" -#~ "Creates colorizable blotches which smoothly flow over the edges of the " -#~ "lines at their crossings" -#~ msgstr "" -#~ "Crea macchie colorabili che fluiscono dolcemente lungo i bordi delle " -#~ "linee dai punti di intersezione" +msgid "Months per line:" +msgstr "Mesi per riga" +#: ../share/extensions/svgcalendar.inx.h:16 #, fuzzy -#~ msgid "Dark And Glow" -#~ msgstr "Scuro e con alone" - -#~ msgid "Darkens the edge with an inner blur and adds a flexible glow" -#~ msgstr "" -#~ "Scurisce il bordo con una sfocatura interna e aggiunge un alone " -#~ "controllabile" +msgid "Month Width:" +msgstr "Larghezza del mese" +#: ../share/extensions/svgcalendar.inx.h:17 #, fuzzy -#~ msgid "Warped Rainbow" -#~ msgstr "Arcobaleno distorto" +msgid "Month Margin:" +msgstr "Margine del mese" -#~ msgid "Smooth rainbow colors warped along the edges and colorizable" -#~ msgstr "Arcobaleno colorato deformato lungo i bordi e colorabile" +#: ../share/extensions/svgcalendar.inx.h:18 +msgid "The options below have no influence when the above is checked." +msgstr "" +"Le opzioni successive non hanno effetto quando la precedente è abilitata." +#: ../share/extensions/svgcalendar.inx.h:20 #, fuzzy -#~ msgid "Rough and Dilate" -#~ msgstr "Espansione con increspature" - -#~ msgid "Create a turbulent contour around" -#~ msgstr "Crea un contorno turbolento attorno" +msgid "Year color:" +msgstr "Colore anno" +#: ../share/extensions/svgcalendar.inx.h:21 #, fuzzy -#~ msgid "Old Postcard" -#~ msgstr "Cartolina antica" - -#~ msgid "Slightly posterize and draw edges like on old printed postcards" -#~ msgstr "" -#~ "Posterizza leggermente e disegna i bordi come nelle vecchie cartoline " -#~ "stampate" +msgid "Month color:" +msgstr "Colore del mese" +#: ../share/extensions/svgcalendar.inx.h:22 #, fuzzy -#~ msgid "Dots Transparency" -#~ msgstr "Puntinatura in trasparenza" - -#~ msgid "Gives a pointillist HSL sensitive transparency" -#~ msgstr "Produce una trasparenza con HSL regolabili in stile puntinista" +msgid "Weekday name color:" +msgstr "Colore nome del giorno" +#: ../share/extensions/svgcalendar.inx.h:23 #, fuzzy -#~ msgid "Canvas Transparency" -#~ msgstr "Tela in trasparenza" +msgid "Day color:" +msgstr "Colore del giorno" +#: ../share/extensions/svgcalendar.inx.h:24 #, fuzzy -#~ msgid "Gives a canvas like HSL sensitive transparency." -#~ msgstr "Produce una trasparenza con HSL regolabili simile alla tela" +msgid "Weekend day color:" +msgstr "Colore del weekend" +#: ../share/extensions/svgcalendar.inx.h:25 #, fuzzy -#~ msgid "Smear Transparency" -#~ msgstr "Sbavatura in trasparenza" - -#~ msgid "" -#~ "Paint objects with a transparent turbulence which turns around color edges" -#~ msgstr "" -#~ "Dipinge l'oggetto con una turbolenza trasparente che gira attorno ai " -#~ "bordi di colore" +msgid "Next month day color:" +msgstr "Colore mese successivo" +#: ../share/extensions/svgcalendar.inx.h:26 #, fuzzy -#~ msgid "Thick Paint" -#~ msgstr "Pittura densa" - -#~ msgid "Thick painting effect with turbulence" -#~ msgstr "Effetto pittura spessa con turbolenza" - -#~ msgid "Burst" -#~ msgstr "Palloncino scoppiato" +msgid "Week number color:" +msgstr "Colore nome del giorno" -#~ msgid "Burst balloon texture crumpled and with holes" -#~ msgstr "Texture a palloncino scoppiato con pieghe e buchi" +#: ../share/extensions/svgcalendar.inx.h:27 +msgid "Localization" +msgstr "Localizzazione" +#: ../share/extensions/svgcalendar.inx.h:28 #, fuzzy -#~ msgid "Embossed Leather" -#~ msgstr "Pelle goffrata" - -#~ msgid "" -#~ "Combine a HSL edges detection bump with a leathery or woody and " -#~ "colorizable texture" -#~ msgstr "" -#~ "Combina Rughe HSL con rilevamento dei bordi con una texture legnosa o in " -#~ "pelle colorabile" - -#~ msgid "Carnaval" -#~ msgstr "Carnevale" - -#~ msgid "White splotches evocating carnaval masks" -#~ msgstr "Macchie bianche simili a quelle della maschere di carnevale" - -#~ msgid "Plastify" -#~ msgstr "Plastificato" - -#~ msgid "" -#~ "HSL edges detection bump with a wavy reflective surface effect and " -#~ "variable crumple" -#~ msgstr "" -#~ "Rughe HSL con rilevamento dei bordi con una superficie increspata " -#~ "riflettente e pieghe adattabili" - -#~ msgid "Plaster" -#~ msgstr "Gesso" - -#~ msgid "" -#~ "Combine a HSL edges detection bump with a matte and crumpled surface " -#~ "effect" -#~ msgstr "" -#~ "Combina Rughe HSL con rilevamento dei bordi con una superficie " -#~ "stropicciata e sbiadita" +msgid "Month names:" +msgstr "Nome del mese" +#: ../share/extensions/svgcalendar.inx.h:29 #, fuzzy -#~ msgid "Rough Transparency" -#~ msgstr "Trasparenza grezza" +msgid "Day names:" +msgstr "Nome del giorno" -#~ msgid "" -#~ "Adds a turbulent transparency which displaces pixels at the same time" -#~ msgstr "" -#~ "Aggiunge una turbolenza trasparente che sposta vari pixel " -#~ "contemporaneamente" +#: ../share/extensions/svgcalendar.inx.h:30 +#, fuzzy +msgid "Week number column name:" +msgstr "Numero di colonne" -#~ msgid "Gouache" -#~ msgstr "Guazzo" +#: ../share/extensions/svgcalendar.inx.h:31 +#, fuzzy +msgid "Char Encoding:" +msgstr "Codifica caratteri" -#~ msgid "Partly opaque water color effect with bleed" -#~ msgstr "Effetto acqua colorata parzialmente opaca e con macchie" +#: ../share/extensions/svgcalendar.inx.h:32 +msgid "You may change the names for other languages:" +msgstr "Ă possibile cambiare i nomi per le altre lingue:" -#, fuzzy -#~ msgid "Alpha Engraving" -#~ msgstr "Incisione in trasparenza" +#: ../share/extensions/svgcalendar.inx.h:33 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" +"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre " +"Novembre Dicembre" -#~ msgid "Gives a transparent engraving effect with rough line and filling" -#~ msgstr "" -#~ "Aggiunge un effetto di incisione in trasparenza con linee e riempimenti " -#~ "grezzi" +#: ../share/extensions/svgcalendar.inx.h:34 +msgid "Sun Mon Tue Wed Thu Fri Sat" +msgstr "Lun Mar Mer Gio Ven Sab Dom" +#: ../share/extensions/svgcalendar.inx.h:35 #, fuzzy -#~ msgid "Alpha Draw Liquid" -#~ msgstr "Disegno liquido in trasparenza" +msgid "The day names list must start from Sunday." +msgstr "(La lista dei nomi dei giorni deve iniziare da Domenica)" -#~ msgid "Gives a transparent fluid drawing effect with rough line and filling" -#~ msgstr "" -#~ "Aggiunge un effetto fluido e trasparente alle immagini con linee e " -#~ "riempimenti grezzi" +#: ../share/extensions/svgcalendar.inx.h:36 +msgid "Wk" +msgstr "" +#: ../share/extensions/svgcalendar.inx.h:37 #, fuzzy -#~ msgid "Liquid Drawing" -#~ msgstr "Pittura ad acqua" - -#~ msgid "Gives a fluid and wavy expressionist drawing effect to images" -#~ msgstr "Aggiunge un effetto espressionista fluido e ondulato alle immagini" +msgid "" +"Select your system encoding. More information at http://docs.python.org/" +"library/codecs.html#standard-encodings." +msgstr "" +"(Selezionare la codifica usata dal proprio sistema. Consultare http://docs." +"python.org/library/codecs.html#standard-encodings per maggiori informazioni)" +#: ../share/extensions/svgfont2layers.inx.h:1 #, fuzzy -#~ msgid "Marbled Ink" -#~ msgstr "Inchiostro marmorizzato" +msgid "Convert SVG Font to Glyph Layers" +msgstr "Inverti in tutti livelli" -#~ msgid "Marbled transparency effect which conforms to image detected edges" -#~ msgstr "" -#~ "Effetto marmoreo trasparente che si adatta ai bordi rilevati dell'immagine" +#: ../share/extensions/svgfont2layers.inx.h:2 +msgid "Load only the first 30 glyphs (Recommended)" +msgstr "" +#: ../share/extensions/synfig_output.inx.h:1 #, fuzzy -#~ msgid "Thick Acrylic" -#~ msgstr "Acrilico denso" +msgid "Synfig Output" +msgstr "Output SVG" -#~ msgid "Thick acrylic paint texture with high texture depth" -#~ msgstr "Texture acrilico denso con forte profonditĂ " +#: ../share/extensions/synfig_output.inx.h:2 +msgid "Synfig Animation (*.sif)" +msgstr "" -#, fuzzy -#~ msgid "Alpha Engraving B" -#~ msgstr "Incisione B in trasparenza" +#: ../share/extensions/synfig_output.inx.h:3 +msgid "Synfig Animation written using the sif-file exporter extension" +msgstr "" -#~ msgid "" -#~ "Gives a controllable roughness engraving effect to bitmaps and materials" -#~ msgstr "" -#~ "Aggiunge un effetto incisione grezza regolabile a immagine e materiali" +#: ../share/extensions/tar_layers.inx.h:1 +msgid "Collection of SVG files One per root layer" +msgstr "" -#~ msgid "Lapping" -#~ msgstr "Lappatura" +#: ../share/extensions/tar_layers.inx.h:2 +msgid "Layers as Separate SVG (*.tar)" +msgstr "" -#~ msgid "Something like a water noise" -#~ msgstr "Simile ai disturbi dovuti all'acqua" +#: ../share/extensions/tar_layers.inx.h:3 +msgid "" +"Each layer split into it's own svg file and collected as a tape archive (tar " +"file)" +msgstr "" -#, fuzzy -#~ msgid "Monochrome Transparency" -#~ msgstr "Trasparenza monocromatica" +#: ../share/extensions/text_braille.inx.h:1 +msgid "Convert to Braille" +msgstr "Converti in Braille" -#~ msgid "Convert to a colorizable transparent positive or negative" -#~ msgstr "Converte in un negativo o positivo trasparente colorabile" +#: ../share/extensions/text_extract.inx.h:1 +msgid "Extract" +msgstr "Estrai" -#, fuzzy -#~ msgid "Saturation Map" -#~ msgstr "Mappa di saturazione" +#: ../share/extensions/text_extract.inx.h:2 +#: ../share/extensions/text_merge.inx.h:2 +msgid "Text direction:" +msgstr "Direzione testo:" -#~ msgid "" -#~ "Creates an approximative semi-transparent and colorizable image of the " -#~ "saturation levels" -#~ msgstr "" -#~ "Crea un'immagine approssimativa semi-trasparente e colorabile dei livelli " -#~ "di saturazione" +#: ../share/extensions/text_extract.inx.h:3 +#: ../share/extensions/text_merge.inx.h:3 +msgid "Left to right" +msgstr "Da sinistra a destra" -#~ msgid "Riddled" -#~ msgstr "Crivellato" +#: ../share/extensions/text_extract.inx.h:4 +#: ../share/extensions/text_merge.inx.h:4 +msgid "Bottom to top" +msgstr "Dal fondo alla cima" -#~ msgid "Riddle the surface and add bump to images" -#~ msgstr "Crivella la superficie e aggiunge rughe all'immagine" +#: ../share/extensions/text_extract.inx.h:5 +#: ../share/extensions/text_merge.inx.h:5 +msgid "Right to left" +msgstr "Da destra a sinistra" -#, fuzzy -#~ msgid "Wrinkled Varnish" -#~ msgstr "Smalto rugoso" +#: ../share/extensions/text_extract.inx.h:6 +#: ../share/extensions/text_merge.inx.h:6 +msgid "Top to bottom" +msgstr "Dalla cima al fondo" -#~ msgid "Thick glossy and translucent paint texture with high depth" -#~ msgstr "Texture di pittura traslucida spessa e con riflessi" +#: ../share/extensions/text_extract.inx.h:7 +#: ../share/extensions/text_merge.inx.h:7 +msgid "Horizontal point:" +msgstr "Punto orizzontale:" -#~ msgid "Canvas Bumps" -#~ msgstr "Tela rugosa" +#: ../share/extensions/text_extract.inx.h:11 +#: ../share/extensions/text_merge.inx.h:11 +msgid "Vertical point:" +msgstr "Punto verticale:" -#~ msgid "Canvas texture with an HSL sensitive height map" -#~ msgstr "Texture simile a tela con HSL dipendenti dalla mappa del rilievo" +#: ../share/extensions/text_flipcase.inx.h:1 +msgid "fLIP cASE" +msgstr "iNVERTI mAIUSCOLE" -#, fuzzy -#~ msgid "Canvas Bumps Matte" -#~ msgstr "Rughe della tela, opache" +#: ../share/extensions/text_flipcase.inx.h:3 +#: ../share/extensions/text_lowercase.inx.h:3 +#: ../share/extensions/text_randomcase.inx.h:3 +#: ../share/extensions/text_sentencecase.inx.h:3 +#: ../share/extensions/text_titlecase.inx.h:3 +#: ../share/extensions/text_uppercase.inx.h:3 +msgid "Change Case" +msgstr "Cambia Maiuscole" -#~ msgid "" -#~ "Same as Canvas Bumps but with a diffuse light instead of a specular one" -#~ msgstr "Come Tela rugosa, ma con un'illuminazione diffusa anzichè speculare" +#: ../share/extensions/text_lowercase.inx.h:1 +msgid "lowercase" +msgstr "tutte minuscole" +#. false +#: ../share/extensions/text_merge.inx.h:15 #, fuzzy -#~ msgid "Canvas Bumps Alpha" -#~ msgstr "Rughe della tela, con alpha" +msgid "Keep style" +msgstr "Imposta stile testo" -#~ msgid "Same as Canvas Bumps but with transparent highlights" -#~ msgstr "Come Tela rugosa, ma con riflesso trasparente " +#: ../share/extensions/text_randomcase.inx.h:1 +msgid "rANdOm CasE" +msgstr "mAIuScoLe CaSUAli" -#, fuzzy -#~ msgid "Bright Metal" -#~ msgstr "Metallo lucido" +#: ../share/extensions/text_sentencecase.inx.h:1 +msgid "Sentence case" +msgstr "Maiuscole paragrafo" -#~ msgid "Bright metallic effect for any color" -#~ msgstr "Effetto metallico brillante per qualsiasi colore" +#: ../share/extensions/text_titlecase.inx.h:1 +msgid "Title Case" +msgstr "Iniziali Maiuscole" -#, fuzzy -#~ msgid "Deep Colors Plastic" -#~ msgstr "Plastica a colori scuri" +#: ../share/extensions/text_uppercase.inx.h:1 +msgid "UPPERCASE" +msgstr "TUTTE MAIUSCOLE" -#~ msgid "Transparent plastic with deep colors" -#~ msgstr "Plastica trasparente con colori scuri" +#: ../share/extensions/triangle.inx.h:1 +msgid "Triangle" +msgstr "Triangolo" +#: ../share/extensions/triangle.inx.h:2 #, fuzzy -#~ msgid "Melted Jelly Matte" -#~ msgstr "Gelatina sciolta, opaca" - -#~ msgid "Matte bevel with blurred edges" -#~ msgstr "Smussatura opaca con contorni sfumati" +msgid "Side Length a (px):" +msgstr "Lunghezza lato a / px" +#: ../share/extensions/triangle.inx.h:3 #, fuzzy -#~ msgid "Melted Jelly" -#~ msgstr "Gelatina sciolta" - -#~ msgid "Glossy bevel with blurred edges" -#~ msgstr "Smussatura vitrea con bordi sfumati" +msgid "Side Length b (px):" +msgstr "Lunghezza lato b / px" +#: ../share/extensions/triangle.inx.h:4 #, fuzzy -#~ msgid "Combined Lighting" -#~ msgstr "Illuminazione combinata" - -#~ msgid "Tinfoil" -#~ msgstr "Stagnola" - -#~ msgid "" -#~ "Metallic foil effect combining two lighting types and variable crumple" -#~ msgstr "" -#~ "Effetto carta stagnola con due tipi d'illuminazione e pieghe variabili" +msgid "Side Length c (px):" +msgstr "Lunghezza lato c / px" +#: ../share/extensions/triangle.inx.h:5 #, fuzzy -#~ msgid "Soft Colors" -#~ msgstr "Colori tenui" - -#~ msgid "Adds a colorizable edges glow inside objects and pictures" -#~ msgstr "" -#~ "Proietta un alone colorabile dei bordi all'interno di oggetti e immagini" +msgid "Angle a (deg):" +msgstr "Angolo a / gradi" +#: ../share/extensions/triangle.inx.h:6 #, fuzzy -#~ msgid "Relief Print" -#~ msgstr "Stampa in rilievo" - -#~ msgid "Bumps effect with a bevel, color flood and complex lighting" -#~ msgstr "" -#~ "Effetto rugoso con smussatura, riempimento colorato e illuminazione " -#~ "avanzata" +msgid "Angle b (deg):" +msgstr "Angolo b / gradi" +#: ../share/extensions/triangle.inx.h:7 #, fuzzy -#~ msgid "Growing Cells" -#~ msgstr "Coltura di cellule" +msgid "Angle c (deg):" +msgstr "Angolo c / gradi" -#~ msgid "Random rounded living cells like fill" -#~ msgstr "Riempimento casuale con piccole cellule viventi tondeggianti" +#: ../share/extensions/triangle.inx.h:9 +msgid "From Three Sides" +msgstr "Da tre lati" -#~ msgid "Fluorescence" -#~ msgstr "Fluorescenza" +#: ../share/extensions/triangle.inx.h:10 +msgid "From Sides a, b and Angle c" +msgstr "Dai lati a, b e angolo c" -#~ msgid "Oversaturate colors which can be fluorescent in real world" -#~ msgstr "" -#~ "Rende sovrasaturi colori che possono essere fluorescenti nella realtĂ " +#: ../share/extensions/triangle.inx.h:11 +msgid "From Sides a, b and Angle a" +msgstr "Dai lati a, b e angolo a" -#, fuzzy -#~ msgid "Pixellize" -#~ msgstr "Pixel" +#: ../share/extensions/triangle.inx.h:12 +msgid "From Side a and Angles a, b" +msgstr "Dal lato a e angoli a, b" -#, fuzzy -#~ msgid "Pixel tools" -#~ msgstr "Pixel" +#: ../share/extensions/triangle.inx.h:13 +msgid "From Side c and Angles a, b" +msgstr "Dal lato c e angoli a, b" -#, fuzzy -#~ msgid "Set Resolution" -#~ msgstr "Relazione:" +#: ../share/extensions/voronoi2svg.inx.h:1 +msgid "Voronoi Diagram" +msgstr "Diagramma di Voronoi" -#, fuzzy -#~ msgid "Set filter resolution" -#~ msgstr "Risoluzione predefinita per l'esportazione" +#: ../share/extensions/voronoi2svg.inx.h:3 +msgid "Type of diagram:" +msgstr "Tipo di diagramma:" -#, fuzzy -#~ msgid "Matte emboss effect" -#~ msgstr "Rimuove effetti su tracciato" +#: ../share/extensions/voronoi2svg.inx.h:4 +msgid "Bounding box of the diagram:" +msgstr "Riquadro del diagramma:" -#, fuzzy -#~ msgid "Basic Specular Bump" -#~ msgstr "Esponente speculare" +#: ../share/extensions/voronoi2svg.inx.h:5 +msgid "Show the bounding box" +msgstr "Mostra il riquadro" -#, fuzzy -#~ msgid "Specular emboss effect" -#~ msgstr "Esponente speculare" +#: ../share/extensions/voronoi2svg.inx.h:6 +msgid "Delaunay Triangulation" +msgstr "Triangolazione di Delaunay" -#, fuzzy -#~ msgid "Linen Canvas" -#~ msgstr "Tela" +#: ../share/extensions/voronoi2svg.inx.h:7 +msgid "Voronoi and Delaunay" +msgstr "Voronoi e Delaunay" -#, fuzzy -#~ msgid "Plasticine" -#~ msgstr "Gesso" +#: ../share/extensions/voronoi2svg.inx.h:8 +msgid "Options for Voronoi diagram" +msgstr "Opzioni per il diagramma di Voronoi" -#, fuzzy -#~ msgid "Matte modeling paste emboss effect" -#~ msgstr "Incolla effetto su tracciato" +#: ../share/extensions/voronoi2svg.inx.h:10 +msgid "Automatic from selected objects" +msgstr "Automatico dagli oggetti selezionati" -#, fuzzy -#~ msgid "Paper like emboss effect" -#~ msgstr "Incolla effetto su tracciato" +#: ../share/extensions/voronoi2svg.inx.h:12 +msgid "" +"Select a set of objects. Their centroids will be used as the sites of the " +"Voronoi diagram. Text objects are not handled." +msgstr "" +"Seleziona un insieme di oggetti. I loro baricentri saranno usati per la " +"creazione del diagramma di Voronoi. Oggetti di testo non sono gestiti." -#, fuzzy -#~ msgid "Jelly Bump" -#~ msgstr "Rughe a bolle" +#: ../share/extensions/web-set-att.inx.h:1 +msgid "Set Attributes" +msgstr "Imposta attributi" +#: ../share/extensions/web-set-att.inx.h:3 #, fuzzy -#~ msgid "Convert pictures to thick jelly" -#~ msgstr "Converti testo in tracciato" +msgid "Attribute to set:" +msgstr "Attributo da impostare" +#: ../share/extensions/web-set-att.inx.h:4 #, fuzzy -#~ msgid "Blend Opposites" -#~ msgstr "ModalitĂ  mi_scela:" +msgid "When should the set be done:" +msgstr "Quando attivare l'impostazione?" +#: ../share/extensions/web-set-att.inx.h:5 #, fuzzy -#~ msgid "Hue to White" -#~ msgstr "Ruota luminositĂ " +msgid "Value to set:" +msgstr "Valore da impostare" +#: ../share/extensions/web-set-att.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:5 #, fuzzy -#~ msgid "" -#~ "Paint objects with a transparent turbulence which wraps around color edges" -#~ msgstr "" -#~ "Dipinge l'oggetto con una turbolenza trasparente che gira attorno ai " -#~ "bordi di colore" +msgid "Compatibility with previews code to this event:" +msgstr "CompatibilitĂ  di questo evento con codice di anteprima" +#: ../share/extensions/web-set-att.inx.h:7 #, fuzzy -#~ msgid "Pointillism" -#~ msgstr "Punti" +msgid "Source and destination of setting:" +msgstr "Sorgente e destinazione dell'impostazione" -#, fuzzy -#~ msgid "Gives a turbulent pointillist HSL sensitive transparency" -#~ msgstr "Produce una trasparenza con HSL regolabili in stile puntinista" +#: ../share/extensions/web-set-att.inx.h:8 +#: ../share/extensions/web-transmit-att.inx.h:7 +msgid "on click" +msgstr "al clic" -#~ msgid "Basic noise transparency texture" -#~ msgstr "Texture semplice con disturbo in trasparenza" +#: ../share/extensions/web-set-att.inx.h:9 +#: ../share/extensions/web-transmit-att.inx.h:8 +msgid "on focus" +msgstr "al focuse" -#, fuzzy -#~ msgid "Fill Background" -#~ msgstr "Sfondo" +#: ../share/extensions/web-set-att.inx.h:10 +#: ../share/extensions/web-transmit-att.inx.h:9 +msgid "on blur" +msgstr "alla sfocatura" -#, fuzzy -#~ msgid "Adds a colorizable opaque background" -#~ msgstr "Proietta un'ombra interna colorabile" +#: ../share/extensions/web-set-att.inx.h:11 +#: ../share/extensions/web-transmit-att.inx.h:10 +msgid "on activate" +msgstr "all'attivazione" -#, fuzzy -#~ msgid "Flatten Transparency" -#~ msgstr "Trasparenza finestre:" +#: ../share/extensions/web-set-att.inx.h:12 +#: ../share/extensions/web-transmit-att.inx.h:11 +msgid "on mouse down" +msgstr "alla pressione del mouse" -#, fuzzy -#~ msgid "Adds a white opaque background" -#~ msgstr "Rimuovi sfondo" +#: ../share/extensions/web-set-att.inx.h:13 +#: ../share/extensions/web-transmit-att.inx.h:12 +msgid "on mouse up" +msgstr "al rilascio del mouse" -#, fuzzy -#~ msgid "Fill Area" -#~ msgstr "Colore uniforme" +#: ../share/extensions/web-set-att.inx.h:14 +#: ../share/extensions/web-transmit-att.inx.h:13 +msgid "on mouse over" +msgstr "al passaggio del mouse" -#, fuzzy -#~ msgid "Blur Double" -#~ msgstr "ModalitĂ  sfocatura" +#: ../share/extensions/web-set-att.inx.h:15 +#: ../share/extensions/web-transmit-att.inx.h:14 +msgid "on mouse move" +msgstr "al movimento del mouse" -#, fuzzy -#~ msgid "Enhance and redraw color edges in 1 bit black and white" -#~ msgstr "Solo bianco e nero" +#: ../share/extensions/web-set-att.inx.h:16 +#: ../share/extensions/web-transmit-att.inx.h:15 +msgid "on mouse out" +msgstr "all'allontanamento del mouse" -#, fuzzy -#~ msgid "Adds a small scale screen like noise locally" -#~ msgstr "Aggiunge una leggere granularitĂ " +#: ../share/extensions/web-set-att.inx.h:17 +#: ../share/extensions/web-transmit-att.inx.h:16 +msgid "on element loaded" +msgstr "al caricamento oggetto" -#, fuzzy -#~ msgid "Poster Color Fun" -#~ msgstr "Incolla colore" +#: ../share/extensions/web-set-att.inx.h:18 +msgid "The list of values must have the same size as the attributes list." +msgstr "" +"La lista dei valori deve avere la stessa dimensione della lista degli " +"attributi." -#, fuzzy -#~ msgid "Alpha Monochrome Cracked" -#~ msgstr "Negativo monocromo" +#: ../share/extensions/web-set-att.inx.h:19 +#: ../share/extensions/web-transmit-att.inx.h:17 +msgid "Run it after" +msgstr "Esegui prima" -#~ msgid "Basic noise fill texture; adjust color in Flood" -#~ msgstr "" -#~ "Texture semplice di riempimento rumoroso; colore impostabile in " -#~ "Riempimento" +#: ../share/extensions/web-set-att.inx.h:20 +#: ../share/extensions/web-transmit-att.inx.h:18 +msgid "Run it before" +msgstr "Esegui dopo" -#, fuzzy -#~ msgid "Alpha Turbulent" -#~ msgstr "Tinta con trasparenza" +#: ../share/extensions/web-set-att.inx.h:22 +#: ../share/extensions/web-transmit-att.inx.h:20 +msgid "The next parameter is useful when you select more than two elements" +msgstr "Il parametro successivo è utile se si selezionano piĂą di due elementi" -#, fuzzy -#~ msgid "Colorize Turbulent" -#~ msgstr "Colora" +#: ../share/extensions/web-set-att.inx.h:23 +msgid "All selected ones set an attribute in the last one" +msgstr "Tutti quelli selezionati impostano un attributo all'ultimo" -#, fuzzy -#~ msgid "Cross Noise B" -#~ msgstr "Disturbo di Poisson" +#: ../share/extensions/web-set-att.inx.h:24 +msgid "The first selected sets an attribute in all others" +msgstr "Il primo selezionato imposta un attributo in tutti gli altri" -#, fuzzy -#~ msgid "Adds a small scale crossy graininess" -#~ msgstr "Aggiunge una leggere granularitĂ " +#: ../share/extensions/web-set-att.inx.h:26 +#: ../share/extensions/web-transmit-att.inx.h:24 +msgid "" +"This effect adds a feature visible (or usable) only on a SVG enabled web " +"browser (like Firefox)." +msgstr "" +"Questo effetto aggiunge una caratteristica visibile (o usabile) solo su " +"browser web che supportino SVG (come Firefox)" -#, fuzzy -#~ msgid "Cross Noise" -#~ msgstr "Disturbo di Poisson" +#: ../share/extensions/web-set-att.inx.h:27 +msgid "" +"This effect sets one or more attributes in the second selected element, when " +"a defined event occurs on the first selected element." +msgstr "" +"Questo effetto imposta uno o piĂą attributi nel secondo elemento selezionato, " +"quando sul primo si verifica un determinato evento." -#, fuzzy -#~ msgid "Adds a small scale screen like graininess" -#~ msgstr "Aggiunge una leggere granularitĂ " +#: ../share/extensions/web-set-att.inx.h:28 +msgid "" +"If you want to set more than one attribute, you must separate this with a " +"space, and only with a space." +msgstr "" +"Se si vogliono impostare attributi multipli, separarli con un solo spazio." -#, fuzzy -#~ msgid "Light Eraser Cracked" -#~ msgstr "Sovraesposto" +#: ../share/extensions/web-set-att.inx.h:29 +#: ../share/extensions/web-transmit-att.inx.h:27 +#: ../share/extensions/webslicer_create_group.inx.h:13 +#: ../share/extensions/webslicer_create_rect.inx.h:41 +#: ../share/extensions/webslicer_export.inx.h:8 +msgid "Web" +msgstr "Web" -#, fuzzy -#~ msgid "Poster Turbulent" -#~ msgstr "Turbolenza" +#: ../share/extensions/web-transmit-att.inx.h:1 +msgid "Transmit Attributes" +msgstr "Trasmetti attributi" +#: ../share/extensions/web-transmit-att.inx.h:3 #, fuzzy -#~ msgid "Tartan Smart" -#~ msgstr "Tartan" +msgid "Attribute to transmit:" +msgstr "Attributi da trasmettere" +#: ../share/extensions/web-transmit-att.inx.h:4 #, fuzzy -#~ msgid "Highly configurable checkered tartan pattern" -#~ msgstr "Tartan con trama quadrettata" +msgid "When to transmit:" +msgstr "Quando trasmettere" +#: ../share/extensions/web-transmit-att.inx.h:6 #, fuzzy -#~ msgid "Light Contour" -#~ msgstr "Sorgente d'illuminazione:" +msgid "Source and destination of transmitting:" +msgstr "Sorgente e destinazione della trasmissione" -#~ msgid "Liquid" -#~ msgstr "Liquido" +#: ../share/extensions/web-transmit-att.inx.h:21 +msgid "All selected ones transmit to the last one" +msgstr "Tutti quelli selezionati si trasmettono all'ultimo" -#~ msgid "Colorizable filling with liquid transparency" -#~ msgstr "Riempimento colorabile con una trasparenza liquida" +#: ../share/extensions/web-transmit-att.inx.h:22 +msgid "The first selected transmits to all others" +msgstr "La prima selezione trasmette a tutti gli altri" -#~ msgid "Aluminium" -#~ msgstr "Alluminio" +#: ../share/extensions/web-transmit-att.inx.h:25 +msgid "" +"This effect transmits one or more attributes from the first selected element " +"to the second when an event occurs." +msgstr "" +"Questo effetto trasmette uno o piĂą attributi dal primo elemento selezionato " +"al secondo quando si verifica un evento." -#, fuzzy -#~ msgid "Aluminium effect with sharp brushed reflections" -#~ msgstr "Effetto gel con forte rifrazione" +#: ../share/extensions/web-transmit-att.inx.h:26 +msgid "" +"If you want to transmit more than one attribute, you should separate this " +"with a space, and only with a space." +msgstr "" +"Se si vogliono trasmettere attributi multipli, separarli con un solo spazio." -#~ msgid "Comics" -#~ msgstr "Fumetti" +#: ../share/extensions/webslicer_create_group.inx.h:1 +msgid "Set a layout group" +msgstr "" +#: ../share/extensions/webslicer_create_group.inx.h:3 +#: ../share/extensions/webslicer_create_rect.inx.h:18 #, fuzzy -#~ msgid "Comics cartoon drawing effect" -#~ msgstr "Disegno di fumetto abbozzato" +msgid "HTML id attribute:" +msgstr "Imposta attributo" +#: ../share/extensions/webslicer_create_group.inx.h:4 +#: ../share/extensions/webslicer_create_rect.inx.h:19 #, fuzzy -#~ msgid "Comics Draft" -#~ msgstr "Fumetto" +msgid "HTML class attribute:" +msgstr "Imposta attributo" -#~ msgid "Draft painted cartoon shading with a glassy look" -#~ msgstr "Ombreggiatura a fumetto grezza con un aspetto vitreo" +#: ../share/extensions/webslicer_create_group.inx.h:5 +#, fuzzy +msgid "Width unit:" +msgstr "Larghezza" +#: ../share/extensions/webslicer_create_group.inx.h:6 #, fuzzy -#~ msgid "Comics Fading" -#~ msgstr "Fumetto scolorito" +msgid "Height unit:" +msgstr "Altezza" -#~ msgid "Cartoon paint style with some fading at the edges" -#~ msgstr "Tinta in stile fumetto con bordi scoloriti" +#: ../share/extensions/webslicer_create_group.inx.h:7 +#: ../share/extensions/webslicer_create_rect.inx.h:9 +msgid "Background color:" +msgstr "Colore di sfondo:" -#, fuzzy -#~ msgid "Brushed Metal" -#~ msgstr "Metallo consumato" +#: ../share/extensions/webslicer_create_group.inx.h:8 +msgid "Pixel (fixed)" +msgstr "" +#: ../share/extensions/webslicer_create_group.inx.h:9 #, fuzzy -#~ msgid "Opaline" -#~ msgstr "Scheletro" +msgid "Percent (relative to parent size)" +msgstr "Ridimensiona larghezza relativamente alla lunghezza" -#~ msgid "Contouring version of smooth shader" -#~ msgstr "Versione contornata dello shader liscio" +#: ../share/extensions/webslicer_create_group.inx.h:10 +msgid "Undefined (relative to non-floating content size)" +msgstr "" -#~ msgid "Chrome" -#~ msgstr "Cromatura" +#: ../share/extensions/webslicer_create_group.inx.h:12 +msgid "" +"Layout Group is only about to help a better code generation (if you need " +"it). To use this, you must to select some \"Slicer rectangles\" first." +msgstr "" +#: ../share/extensions/webslicer_create_group.inx.h:14 #, fuzzy -#~ msgid "Bright chrome effect" -#~ msgstr "Metallo lucido" +msgid "Slicer" +msgstr "Sciame" +#: ../share/extensions/webslicer_create_rect.inx.h:1 #, fuzzy -#~ msgid "Deep Chrome" -#~ msgstr "Cromatura" +msgid "Create a slicer rectangle" +msgstr "Crea rettangolo" +#: ../share/extensions/webslicer_create_rect.inx.h:4 #, fuzzy -#~ msgid "Dark chrome effect" -#~ msgstr "Effetto attuale" +msgid "DPI:" +msgstr "DPI" +#: ../share/extensions/webslicer_create_rect.inx.h:5 #, fuzzy -#~ msgid "Emboss Shader" -#~ msgstr "Shader rilievo" +msgid "Force Dimension:" +msgstr "Dimensioni" -#, fuzzy -#~ msgid "Combination of satiny and emboss effect" -#~ msgstr "Combinazione di ombreggiatura dolce e rilievo" +#. i18n. Description duplicated in a fake value attribute in order to make it translatable +#: ../share/extensions/webslicer_create_rect.inx.h:7 +msgid "Force Dimension must be set as x" +msgstr "" -#, fuzzy -#~ msgid "Sharp Metal" -#~ msgstr "Nitidezza" +#: ../share/extensions/webslicer_create_rect.inx.h:8 +msgid "If set, this will replace DPI." +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:10 #, fuzzy -#~ msgid "Chrome effect with darkened edges" -#~ msgstr "Metallo pressato con bordi incurvati" +msgid "JPG specific options" +msgstr "Specifiche SVG 1.1" +#: ../share/extensions/webslicer_create_rect.inx.h:11 #, fuzzy -#~ msgid "Brush Draw" -#~ msgstr "Pennello" +msgid "Quality:" +msgstr "_Esci" -#, fuzzy -#~ msgid "Chrome Emboss" -#~ msgstr "Rilievo scuro" +#: ../share/extensions/webslicer_create_rect.inx.h:12 +msgid "" +"0 is the lowest image quality and highest compression, and 100 is the best " +"quality but least effective compression" +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:13 #, fuzzy -#~ msgid "Embossed chrome effect" -#~ msgstr "Rimuove effetti su tracciato" +msgid "GIF specific options" +msgstr "Specifiche SVG 1.1" +#: ../share/extensions/webslicer_create_rect.inx.h:16 #, fuzzy -#~ msgid "Contour Emboss" -#~ msgstr "Rilievo colorato" +msgid "Palette" +msgstr "_Paletta" +#: ../share/extensions/webslicer_create_rect.inx.h:17 #, fuzzy -#~ msgid "Sharp Deco" -#~ msgstr "Nitidezza" +msgid "Palette size:" +msgstr "Incolla dimensione" -#, fuzzy -#~ msgid "Unrealistic reflections with sharp edges" -#~ msgstr "Metallo pressato con bordi incurvati" +#: ../share/extensions/webslicer_create_rect.inx.h:20 +msgid "Options for HTML export" +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:21 #, fuzzy -#~ msgid "Deep Metal" -#~ msgstr "Metallo colato" +msgid "Layout disposition:" +msgstr "Posizione casuale" -#, fuzzy -#~ msgid "Aluminium Emboss" -#~ msgstr "Alluminio" +#: ../share/extensions/webslicer_create_rect.inx.h:22 +msgid "Positioned html block element with the image as Background" +msgstr "" -#, fuzzy -#~ msgid "Refractive Glass" -#~ msgstr "Gel rifrangente A" +#: ../share/extensions/webslicer_create_rect.inx.h:23 +msgid "Tiled Background (on parent group)" +msgstr "" -#, fuzzy -#~ msgid "Double reflection through glass with some refraction" -#~ msgstr "Effetto gel con forte rifrazione" +#: ../share/extensions/webslicer_create_rect.inx.h:24 +msgid "Background — repeat horizontally (on parent group)" +msgstr "" -#, fuzzy -#~ msgid "Frosted Glass" -#~ msgstr "Vetro smerigliato" +#: ../share/extensions/webslicer_create_rect.inx.h:25 +msgid "Background — repeat vertically (on parent group)" +msgstr "" -#, fuzzy -#~ msgid "Satiny glass effect" -#~ msgstr "Vetrata illuminata" +#: ../share/extensions/webslicer_create_rect.inx.h:26 +msgid "Background — no repeat (on parent group)" +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:27 #, fuzzy -#~ msgid "Bump Engraving" -#~ msgstr "Incisione in trasparenza" +msgid "Positioned Image" +msgstr "Posizionamento" +#: ../share/extensions/webslicer_create_rect.inx.h:28 #, fuzzy -#~ msgid "Carving emboss effect" -#~ msgstr "Incolla effetto su tracciato" +msgid "Non Positioned Image" +msgstr "Angolo di rotazione" -#, fuzzy -#~ msgid "Convoluted Bump" -#~ msgstr "Sfoca o contrasta" +#: ../share/extensions/webslicer_create_rect.inx.h:29 +msgid "Left Floated Image" +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:30 #, fuzzy -#~ msgid "Convoluted emboss effect" -#~ msgstr "Effetto nuvola acquerellata" +msgid "Right Floated Image" +msgstr "Angolo destro" +#: ../share/extensions/webslicer_create_rect.inx.h:31 #, fuzzy -#~ msgid "Emergence" -#~ msgstr "Divergenza" +msgid "Position anchor:" +msgstr "Posizione" +#: ../share/extensions/webslicer_create_rect.inx.h:32 #, fuzzy -#~ msgid "Create a two colors lithographic effect" -#~ msgstr "Crea e applica effetti su tracciato" +msgid "Top and Left" +msgstr "Tracciato lato superiore" +#: ../share/extensions/webslicer_create_rect.inx.h:33 #, fuzzy -#~ msgid "Paint Channels" -#~ msgstr "Canale «Ciano»" +msgid "Top and Center" +msgstr "Tracciato lato superiore" +#: ../share/extensions/webslicer_create_rect.inx.h:34 #, fuzzy -#~ msgid "Posterized Light Eraser 4" -#~ msgstr "Sovraesposto" +msgid "Top and right" +msgstr "_Trucchi" +#: ../share/extensions/webslicer_create_rect.inx.h:35 #, fuzzy -#~ msgid "Trichrome" -#~ msgstr "Cromatura" +msgid "Middle and Left" +msgstr "Tracciato lato superiore" -#, fuzzy -#~ msgid "Contouring table" -#~ msgstr "Triangolo inscritto" +#: ../share/extensions/webslicer_create_rect.inx.h:36 +msgid "Middle and Center" +msgstr "" +#: ../share/extensions/webslicer_create_rect.inx.h:37 #, fuzzy -#~ msgid "Blurred multiple contours for objects" -#~ msgstr "Contorno sfumato colorabile, interno vuoto" +msgid "Middle and Right" +msgstr "Tracciato lato inferiore" +#: ../share/extensions/webslicer_create_rect.inx.h:38 #, fuzzy -#~ msgid "Contouring discrete" -#~ msgstr "Pannello atto al controllo" +msgid "Bottom and Left" +msgstr "Tracciato lato inferiore" +#: ../share/extensions/webslicer_create_rect.inx.h:39 #, fuzzy -#~ msgid "Sharp multiple contour for objects" -#~ msgstr "Aggancia a e con i centri degli oggetti" - -#~ msgid "Stripes 1:1" -#~ msgstr "Strisce 1:1" - -#~ msgid "Stripes 1:1 white" -#~ msgstr "Strisce 1:1 bianche" - -#~ msgid "Stripes 1:1.5" -#~ msgstr "Strisce 1:1.5" - -#~ msgid "Stripes 1:1.5 white" -#~ msgstr "Strisce 1:1.5 bianche" - -#~ msgid "Stripes 1:2" -#~ msgstr "Strisce 1:2" - -#~ msgid "Stripes 1:2 white" -#~ msgstr "Strisce 1:2 bianche" - -#~ msgid "Stripes 1:3" -#~ msgstr "Strisce 1:3" - -#~ msgid "Stripes 1:3 white" -#~ msgstr "Strisce 1:3 bianche" - -#~ msgid "Stripes 1:4" -#~ msgstr "Strisce 1:4" - -#~ msgid "Stripes 1:4 white" -#~ msgstr "Strisce 1:4 bianche" - -#~ msgid "Stripes 1:5" -#~ msgstr "Strisce 1:5" - -#~ msgid "Stripes 1:5 white" -#~ msgstr "Strisce 1:5 bianche" - -#~ msgid "Stripes 1:8" -#~ msgstr "Strisce 1:8" - -#~ msgid "Stripes 1:8 white" -#~ msgstr "Strisce 1:8 bianche" - -#~ msgid "Stripes 1:10" -#~ msgstr "Strisce 1:10" - -#~ msgid "Stripes 1:10 white" -#~ msgstr "Strisce 1:10 bianche" - -#~ msgid "Stripes 1:16" -#~ msgstr "Strisce 1:16" - -#~ msgid "Stripes 1:16 white" -#~ msgstr "Strisce 1:16 bianche" - -#~ msgid "Stripes 1:32" -#~ msgstr "Strisce 1:32" - -#~ msgid "Stripes 1:32 white" -#~ msgstr "Strisce 1:32 bianche" +msgid "Bottom and Center" +msgstr "Tracciato lato inferiore" -#~ msgid "Stripes 1:64" -#~ msgstr "Strisce 1:64" +#: ../share/extensions/webslicer_create_rect.inx.h:40 +#, fuzzy +msgid "Bottom and Right" +msgstr "Tracciato lato inferiore" -#~ msgid "Stripes 2:1" -#~ msgstr "Strisce 2:1" +#: ../share/extensions/webslicer_export.inx.h:1 +msgid "Export layout pieces and HTML+CSS code" +msgstr "" -#~ msgid "Stripes 2:1 white" -#~ msgstr "Strisce 2:1 bianche" +#: ../share/extensions/webslicer_export.inx.h:3 +msgid "Directory path to export:" +msgstr "" -#~ msgid "Stripes 4:1" -#~ msgstr "Strisce 4:1" +#: ../share/extensions/webslicer_export.inx.h:4 +msgid "Create directory, if it does not exists" +msgstr "" -#~ msgid "Stripes 4:1 white" -#~ msgstr "Strisce 4:1 bianche" +#: ../share/extensions/webslicer_export.inx.h:5 +msgid "With HTML and CSS" +msgstr "" -#~ msgid "Checkerboard" -#~ msgstr "Scacchiera" +#: ../share/extensions/webslicer_export.inx.h:7 +msgid "" +"All sliced images, and optionally - code, will be generated as you had " +"configured and saved to one directory." +msgstr "" -#~ msgid "Checkerboard white" -#~ msgstr "Scacchiera bianca" +#: ../share/extensions/whirl.inx.h:1 +msgid "Whirl" +msgstr "Spirale" -#~ msgid "Packed circles" -#~ msgstr "Cerchi impacchettati" +#: ../share/extensions/whirl.inx.h:2 +#, fuzzy +msgid "Amount of whirl:" +msgstr "Grado di vorticositĂ " -#~ msgid "Polka dots, small" -#~ msgstr "Pois, piccoli" +#: ../share/extensions/whirl.inx.h:3 +msgid "Rotation is clockwise" +msgstr "Rotazione oraria" -#~ msgid "Polka dots, small white" -#~ msgstr "A pois, piccoli e bianchi" +#: ../share/extensions/wireframe_sphere.inx.h:1 +msgid "Wireframe Sphere" +msgstr "" -#~ msgid "Polka dots, medium" -#~ msgstr "Pois, medi" +#: ../share/extensions/wireframe_sphere.inx.h:2 +#, fuzzy +msgid "Lines of latitude:" +msgstr "Copie del motivo:" -#~ msgid "Polka dots, medium white" -#~ msgstr "A pois, medi e bianchi" +#: ../share/extensions/wireframe_sphere.inx.h:3 +msgid "Lines of longitude:" +msgstr "" -#~ msgid "Polka dots, large" -#~ msgstr "Pois, larghi" +#: ../share/extensions/wireframe_sphere.inx.h:4 +msgid "Tilt (deg):" +msgstr "" -#~ msgid "Polka dots, large white" -#~ msgstr "A pois, larghi e bianchi" +#: ../share/extensions/wireframe_sphere.inx.h:7 +msgid "Hide lines behind the sphere" +msgstr "" -#~ msgid "Wavy" -#~ msgstr "Ondulato" +#: ../share/extensions/wmf_input.inx.h:1 +#: ../share/extensions/wmf_output.inx.h:1 +msgid "Windows Metafile Input" +msgstr "Input Windows Metafile" -#~ msgid "Wavy white" -#~ msgstr "Ondulato bianco" +#: ../share/extensions/wmf_input.inx.h:3 +#: ../share/extensions/wmf_output.inx.h:3 +msgid "A popular graphics file format for clipart" +msgstr "Un formato grafico molto diffuso per clipart" -#~ msgid "Camouflage" -#~ msgstr "Camuffamento" +#: ../share/extensions/xaml2svg.inx.h:1 +msgid "XAML Input" +msgstr "Input XAML" -#~ msgid "Ermine" -#~ msgstr "Ermellino" +#~ msgid "You need to install the UniConvertor software.\n" +#~ msgstr "Ă necessario installare il programma UniConvertor.\n" -#~ msgid "Sand (bitmap)" -#~ msgstr "Sabbia (bitmap)" +#, fuzzy +#~ msgid "Set Resolution" +#~ msgstr "Relazione:" -#~ msgid "Cloth (bitmap)" -#~ msgstr "Tessuto (bitmap)" +#, fuzzy +#~ msgid "Set filter resolution" +#~ msgstr "Risoluzione predefinita per l'esportazione" -#~ msgid "Old paint (bitmap)" -#~ msgstr "Dipinto antico (bitmap)" +#, fuzzy +#~ msgid "Fill Area" +#~ msgstr "Colore uniforme" #, fuzzy #~ msgid "Add a new connection point" -- cgit v1.2.3 From 65e028240540fafc4269bd43e66cdeaf41408b12 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sat, 30 Aug 2014 08:24:40 +0200 Subject: Translators list update (bzr r13536) --- TRANSLATORS | 8 +++++--- src/ui/dialog/aboutbox.cpp | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/TRANSLATORS b/TRANSLATORS index b77f28502..696a06010 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -39,6 +39,7 @@ Duarte Loreto 2002, 2003 (Maintainer). Elias Norberg , 2009. Equipe de Tradução Inkscape Brasil , 2007. Fatih Demir , 2000. +Firas Hanife , 2014. Foppe Benedictus , 2007-2009. Francesc Dorca , 2003. TraducciĂł sodipodi. Francisco Javier F. Serrador , 2003. @@ -50,8 +51,9 @@ Hleb Valoshka <375gnu@gmail.com>, 2008-2009. Hizkuntza Politikarako Sailburuordetza , 2005. Ilia Penev , 2006. Ivan Masár , 2006-2010. +Ivan Ĺihošek , 2014. Iñaki Larrañaga , 2006. -JÄnis Eisaks , 2012, 2013. +JÄnis Eisaks , 2012-2014. Jeffrey Steve BorbĂłn Sanabria , 2005. Jesper Ă–qvist , 2010, 2011. Joaquim Perez i Noguer , 2008-2009. @@ -73,7 +75,7 @@ Khandakar Mujahidul Islam , 2006. Kingsley Turner , 2006. Kitae , 2006. Kjartan Maraas , 2000-2002. -Kris De Gussem , 2008-2013. +Kris De Gussem , 2008-2014. Lauris Kaplinski , 2000. Leandro Regueiro , 2006-2008, 2010. Liu Xiaoqin , 2008. @@ -93,7 +95,7 @@ Mufit Eribol , 2000. Muhammad Bashir Al-Noimi , 2008. Myckel Habets , 2008. Nguyen Dinh Trung , 2007, 2008. -Nicolas Dufour , 2008-2013. +Nicolas Dufour , 2008-2014. Pawan Chitrakar , 2006. PrzemysĹ‚aw Loesch , 2005. Quico Llach , 2000. TraducciĂł sodipodi. diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index a66855b2a..7cd069132 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -482,6 +482,7 @@ void AboutBox::initStrings() { "Elias Norberg , 2009.\n" "Equipe de Tradução Inkscape Brasil , 2007.\n" "Fatih Demir , 2000.\n" +"Firas Hanife , 2014.\n" "Foppe Benedictus , 2007-2009.\n" "Francesc Dorca , 2003. TraducciĂł sodipodi.\n" "Francisco Javier F. Serrador , 2003.\n" @@ -493,8 +494,9 @@ void AboutBox::initStrings() { "Hizkuntza Politikarako Sailburuordetza , 2005.\n" "Ilia Penev , 2006.\n" "Ivan Masár , 2006-2010. \n" +"Ivan Ĺihošek , 2014.\n" "Iñaki Larrañaga , 2006.\n" -"JÄnis Eisaks , 2012, 2013.\n" +"JÄnis Eisaks , 2012-2014.\n" "Jeffrey Steve BorbĂłn Sanabria , 2005.\n" "Jesper Ă–qvist , 2010, 2011.\n" "Joaquim Perez i Noguer , 2008-2009.\n" @@ -516,7 +518,7 @@ void AboutBox::initStrings() { "Kingsley Turner , 2006.\n" "Kitae , 2006.\n" "Kjartan Maraas , 2000-2002.\n" -"Kris De Gussem , 2008-2013.\n" +"Kris De Gussem , 2008-2014.\n" "Lauris Kaplinski , 2000.\n" "Leandro Regueiro , 2006-2008, 2010.\n" "Liu Xiaoqin , 2008.\n" @@ -536,7 +538,7 @@ void AboutBox::initStrings() { "Muhammad Bashir Al-Noimi , 2008.\n" "Myckel Habets , 2008.\n" "Nguyen Dinh Trung , 2007, 2008.\n" -"Nicolas Dufour , 2008-2013.\n" +"Nicolas Dufour , 2008-2014.\n" "Pawan Chitrakar , 2006.\n" "PrzemysĹ‚aw Loesch , 2005.\n" "Quico Llach , 2000. TraducciĂł sodipodi.\n" -- cgit v1.2.3 From 9066e62e9f0cb4972f3b7988004393e96e55e09d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 30 Aug 2014 12:00:43 +0100 Subject: Fix modelines (bzr r13341.1.183) --- src/livarot/PathStroke.cpp | 18 +++++++++--------- src/ui/dialog/aboutbox.cpp | 6 +++--- src/ui/dialog/aboutbox.h | 6 +++--- src/ui/dialog/inkscape-preferences.h | 4 ++-- src/ui/widget/button.cpp | 6 +++--- src/ui/widget/button.h | 6 +++--- src/ui/widget/entity-entry.cpp | 4 ++-- src/ui/widget/entity-entry.h | 4 ++-- src/ui/widget/licensor.cpp | 4 ++-- src/ui/widget/licensor.h | 4 ++-- src/ui/widget/notebook-page.cpp | 6 +++--- src/ui/widget/notebook-page.h | 6 +++--- src/ui/widget/page-sizer.cpp | 4 ++-- src/ui/widget/page-sizer.h | 4 ++-- src/ui/widget/preferences-widget.h | 4 ++-- src/ui/widget/registered-widget.cpp | 4 ++-- src/ui/widget/registered-widget.h | 4 ++-- src/ui/widget/registry.cpp | 4 ++-- src/ui/widget/registry.h | 4 ++-- src/ui/widget/rotateable.cpp | 6 +++--- src/ui/widget/rotateable.h | 4 ++-- src/ui/widget/selected-style.cpp | 4 ++-- src/ui/widget/selected-style.h | 6 +++--- src/ui/widget/spin-scale.cpp | 6 +++--- src/ui/widget/spin-scale.h | 6 +++--- src/ui/widget/spin-slider.cpp | 6 +++--- src/ui/widget/spin-slider.h | 6 +++--- src/ui/widget/spinbutton.cpp | 6 +++--- src/ui/widget/spinbutton.h | 6 +++--- src/ui/widget/style-swatch.cpp | 4 ++-- src/ui/widget/style-swatch.h | 6 +++--- src/ui/widget/tolerance-slider.cpp | 4 ++-- src/ui/widget/tolerance-slider.h | 4 ++-- src/ui/widget/unit-menu.cpp | 6 +++--- src/ui/widget/unit-menu.h | 4 ++-- 35 files changed, 93 insertions(+), 93 deletions(-) diff --git a/src/livarot/PathStroke.cpp b/src/livarot/PathStroke.cpp index 50c335176..6ec7fa209 100644 --- a/src/livarot/PathStroke.cpp +++ b/src/livarot/PathStroke.cpp @@ -748,12 +748,12 @@ void Path::RecRound(Shape *dest, int sNo, int eNo, // start and end index } /* - Local Variables: -mode:c++ -c-file-style:"stroustrup" -c-file-offsets:((innamespace . 0)(inline-open . 0)) -indent-tabs-mode:nil -fill-column:99 -End: - */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index a66855b2a..44ed3b58f 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -941,13 +941,13 @@ void AboutBox::initStrings() { } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/aboutbox.h b/src/ui/dialog/aboutbox.h index 7b3308672..015e344a1 100644 --- a/src/ui/dialog/aboutbox.h +++ b/src/ui/dialog/aboutbox.h @@ -55,13 +55,13 @@ private: #endif // INKSCAPE_UI_DIALOG_ABOUTBOX_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h index 9f37626ed..dcea91741 100644 --- a/src/ui/dialog/inkscape-preferences.h +++ b/src/ui/dialog/inkscape-preferences.h @@ -545,9 +545,9 @@ private: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/button.cpp b/src/ui/widget/button.cpp index bac866920..6c2d419cf 100644 --- a/src/ui/widget/button.cpp +++ b/src/ui/widget/button.cpp @@ -51,13 +51,13 @@ RadioButton::RadioButton(Glib::ustring const &label, Glib::ustring const &toolti } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/button.h b/src/ui/widget/button.h index a214dd881..471b7d8a2 100644 --- a/src/ui/widget/button.h +++ b/src/ui/widget/button.h @@ -67,13 +67,13 @@ public: #endif // INKSCAPE_UI_WIDGET_BUTTON_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/entity-entry.cpp b/src/ui/widget/entity-entry.cpp index 0f526f77a..c7d5efe29 100644 --- a/src/ui/widget/entity-entry.cpp +++ b/src/ui/widget/entity-entry.cpp @@ -206,9 +206,9 @@ EntityMultiLineEntry::on_changed() Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/entity-entry.h b/src/ui/widget/entity-entry.h index 09289496d..35f6ecfb4 100644 --- a/src/ui/widget/entity-entry.h +++ b/src/ui/widget/entity-entry.h @@ -76,9 +76,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/licensor.cpp b/src/ui/widget/licensor.cpp index 42f352e3c..7429bb07e 100644 --- a/src/ui/widget/licensor.cpp +++ b/src/ui/widget/licensor.cpp @@ -160,9 +160,9 @@ void Licensor::update (SPDocument *doc) Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/licensor.h b/src/ui/widget/licensor.h index 0ac3e5ab8..c75c5fe9e 100644 --- a/src/ui/widget/licensor.h +++ b/src/ui/widget/licensor.h @@ -56,9 +56,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/notebook-page.cpp b/src/ui/widget/notebook-page.cpp index 6653499b8..2f03ed23b 100644 --- a/src/ui/widget/notebook-page.cpp +++ b/src/ui/widget/notebook-page.cpp @@ -44,13 +44,13 @@ NotebookPage::NotebookPage(int n_rows, int n_columns, bool expand, bool fill, gu } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/notebook-page.h b/src/ui/widget/notebook-page.h index 38ae9e054..4f7915423 100644 --- a/src/ui/widget/notebook-page.h +++ b/src/ui/widget/notebook-page.h @@ -67,13 +67,13 @@ protected: #endif // INKSCAPE_UI_WIDGET_NOTEBOOK_PAGE_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp index eae0d4a95..89b0b8f7e 100644 --- a/src/ui/widget/page-sizer.cpp +++ b/src/ui/widget/page-sizer.cpp @@ -728,9 +728,9 @@ PageSizer::on_units_changed() Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h index dc8e34d82..f4bcae4b6 100644 --- a/src/ui/widget/page-sizer.h +++ b/src/ui/widget/page-sizer.h @@ -277,9 +277,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h index cb4ce17d1..5d9816e74 100644 --- a/src/ui/widget/preferences-widget.h +++ b/src/ui/widget/preferences-widget.h @@ -306,9 +306,9 @@ public: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp index 8a81b1c02..44d8dcbf3 100644 --- a/src/ui/widget/registered-widget.cpp +++ b/src/ui/widget/registered-widget.cpp @@ -788,9 +788,9 @@ RegisteredRandom::on_value_changed() Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h index d8c0e6602..1f505a3cd 100644 --- a/src/ui/widget/registered-widget.h +++ b/src/ui/widget/registered-widget.h @@ -419,9 +419,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/registry.cpp b/src/ui/widget/registry.cpp index 725e52791..ea8198422 100644 --- a/src/ui/widget/registry.cpp +++ b/src/ui/widget/registry.cpp @@ -48,9 +48,9 @@ Registry::setUpdating (bool upd) Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/registry.h b/src/ui/widget/registry.h index 2da29735c..a236b96ad 100644 --- a/src/ui/widget/registry.h +++ b/src/ui/widget/registry.h @@ -39,9 +39,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/rotateable.cpp b/src/ui/widget/rotateable.cpp index 72ec69362..2d7597d7c 100644 --- a/src/ui/widget/rotateable.cpp +++ b/src/ui/widget/rotateable.cpp @@ -173,13 +173,13 @@ Rotateable::~Rotateable() { } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/rotateable.h b/src/ui/widget/rotateable.h index 52fb5306c..6404c3550 100644 --- a/src/ui/widget/rotateable.h +++ b/src/ui/widget/rotateable.h @@ -62,9 +62,9 @@ private: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 85538c8c7..a0a163286 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -1571,9 +1571,9 @@ Dialog::FillAndStroke *get_fill_and_stroke_panel(SPDesktop *desktop) Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/selected-style.h b/src/ui/widget/selected-style.h index df0f41507..0b6a14762 100644 --- a/src/ui/widget/selected-style.h +++ b/src/ui/widget/selected-style.h @@ -301,13 +301,13 @@ protected: #endif // INKSCAPE_UI_WIDGET_BUTTON_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spin-scale.cpp b/src/ui/widget/spin-scale.cpp index ade3d1e60..bb08d67df 100644 --- a/src/ui/widget/spin-scale.cpp +++ b/src/ui/widget/spin-scale.cpp @@ -235,13 +235,13 @@ void DualSpinScale::update_linked() } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spin-scale.h b/src/ui/widget/spin-scale.h index 5fec8b1d8..d0447e4a6 100644 --- a/src/ui/widget/spin-scale.h +++ b/src/ui/widget/spin-scale.h @@ -113,13 +113,13 @@ private: #endif // INKSCAPE_UI_WIDGET_SPIN_SCALE_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spin-slider.cpp b/src/ui/widget/spin-slider.cpp index 1cb59a7b3..9b361ae78 100644 --- a/src/ui/widget/spin-slider.cpp +++ b/src/ui/widget/spin-slider.cpp @@ -262,13 +262,13 @@ void DualSpinSlider::update_linked() } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spin-slider.h b/src/ui/widget/spin-slider.h index 5f86fd15a..74982ea58 100644 --- a/src/ui/widget/spin-slider.h +++ b/src/ui/widget/spin-slider.h @@ -111,13 +111,13 @@ private: #endif // INKSCAPE_UI_WIDGET_SPIN_SLIDER_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spinbutton.cpp b/src/ui/widget/spinbutton.cpp index 7709a837b..d7669d4e5 100644 --- a/src/ui/widget/spinbutton.cpp +++ b/src/ui/widget/spinbutton.cpp @@ -100,13 +100,13 @@ void SpinButton::undo() } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h index 812b5f515..cbe33e8ea 100644 --- a/src/ui/widget/spinbutton.h +++ b/src/ui/widget/spinbutton.h @@ -111,13 +111,13 @@ private: #endif // INKSCAPE_UI_WIDGET_SPINBUTTON_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp index 98f4e47cd..157fd2ad9 100644 --- a/src/ui/widget/style-swatch.cpp +++ b/src/ui/widget/style-swatch.cpp @@ -386,9 +386,9 @@ void StyleSwatch::setStyle(SPStyle *query) Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/style-swatch.h b/src/ui/widget/style-swatch.h index 557ca82e2..582d2ebb3 100644 --- a/src/ui/widget/style-swatch.h +++ b/src/ui/widget/style-swatch.h @@ -108,13 +108,13 @@ friend class ToolObserver; #endif // INKSCAPE_UI_WIDGET_BUTTON_H -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp index 5fc588fdc..aac7451f4 100644 --- a/src/ui/widget/tolerance-slider.cpp +++ b/src/ui/widget/tolerance-slider.cpp @@ -216,9 +216,9 @@ void ToleranceSlider::update (double val) Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/tolerance-slider.h b/src/ui/widget/tolerance-slider.h index 2184cd52b..7ae8e4712 100644 --- a/src/ui/widget/tolerance-slider.h +++ b/src/ui/widget/tolerance-slider.h @@ -88,9 +88,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/unit-menu.cpp b/src/ui/widget/unit-menu.cpp index 7416a2f02..423313a1f 100644 --- a/src/ui/widget/unit-menu.cpp +++ b/src/ui/widget/unit-menu.cpp @@ -140,13 +140,13 @@ bool UnitMenu::isRadial() const } // namespace UI } // namespace Inkscape -/* +/* Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/unit-menu.h b/src/ui/widget/unit-menu.h index 114c536c9..2fd25a6a9 100644 --- a/src/ui/widget/unit-menu.h +++ b/src/ui/widget/unit-menu.h @@ -141,9 +141,9 @@ protected: Local Variables: mode:c++ c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)) + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) indent-tabs-mode:nil fill-column:99 End: */ -// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From 977857ef75a45ed1ec79cfdcf0f25dd66d4a7e86 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 30 Aug 2014 14:00:28 +0100 Subject: Reduce header bloat (bzr r13341.1.184) --- src/axis-manip.h | 2 +- src/desktop-events.h | 8 +++++--- src/display/sp-canvas-item.h | 4 ++-- src/display/sp-canvas.h | 1 - src/ege-adjustment-action.h | 2 -- src/ege-output-action.h | 2 -- src/ege-select-one-action.h | 2 -- src/extension/input.h | 5 ++--- src/extension/internal/emf-inout.cpp | 2 +- src/extension/internal/wmf-inout.cpp | 1 + src/extension/output.h | 1 - src/helper/action.h | 6 +----- src/icon-size.h | 2 -- src/ink-action.h | 2 -- src/ink-comboboxentry-action.h | 4 ---- src/knot.cpp | 1 + src/knot.h | 4 +--- src/proj_pt.h | 2 +- src/sp-pattern.h | 6 +----- src/ui/dialog/clonetiler.h | 1 - src/ui/dialog/export.h | 9 --------- src/ui/dialog/filedialogimpl-gtkmm.cpp | 1 + src/ui/tools/flood-tool.h | 4 +--- src/ui/tools/select-tool.h | 1 - src/ui/tools/spiral-tool.h | 8 +++----- src/ui/tools/text-tool.h | 7 +++---- src/ui/widget/unit-tracker.h | 7 +++++-- src/widgets/button.cpp | 1 + src/widgets/button.h | 12 ++++++++++-- src/widgets/eek-preview.h | 1 - src/widgets/gradient-image.h | 1 - src/widgets/gradient-selector.cpp | 4 +++- src/widgets/gradient-selector.h | 20 ++++++++------------ src/widgets/gradient-vector.h | 8 -------- src/widgets/paint-selector.h | 1 - src/widgets/sp-color-icc-selector.h | 2 -- src/widgets/sp-color-notebook.h | 1 - src/widgets/sp-color-scales.h | 2 -- src/widgets/sp-color-selector.h | 4 +--- src/widgets/sp-color-slider.h | 2 -- src/widgets/sp-color-wheel-selector.h | 1 - src/widgets/sp-widget.h | 1 - src/widgets/sp-xmlview-content.h | 2 -- src/widgets/spinbutton-events.h | 4 +++- src/widgets/toolbox.h | 6 +++--- 45 files changed, 59 insertions(+), 109 deletions(-) diff --git a/src/axis-manip.h b/src/axis-manip.h index 9392e2ddd..7842b4135 100644 --- a/src/axis-manip.h +++ b/src/axis-manip.h @@ -13,7 +13,7 @@ #define SEEN_AXIS_MANIP_H #include -#include +#include namespace Proj { diff --git a/src/desktop-events.h b/src/desktop-events.h index 7123ce91b..dc85e563b 100644 --- a/src/desktop-events.h +++ b/src/desktop-events.h @@ -13,13 +13,15 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include - class SPDesktop; struct SPDesktopWidget; struct SPCanvasItem; +typedef union _GdkEvent GdkEvent; +typedef struct _GdkEventCrossing GdkEventCrossing; +typedef struct _GdkEventMotion GdkEventMotion; +typedef struct _GtkWidget GtkWidget; + /* Item handlers */ int sp_desktop_root_handler (SPCanvasItem *item, GdkEvent *event, SPDesktop *desktop); diff --git a/src/display/sp-canvas-item.h b/src/display/sp-canvas-item.h index 6781be59c..a388ffa91 100644 --- a/src/display/sp-canvas-item.h +++ b/src/display/sp-canvas-item.h @@ -24,8 +24,6 @@ #endif #include -#include -#include #include <2geom/rect.h> #include "ui/control-types.h" @@ -36,6 +34,8 @@ struct SPCanvasBuf; struct SPCanvasGroup; typedef struct _SPCanvasItemClass SPCanvasItemClass; +typedef union _GdkEvent GdkEvent; +typedef struct _GdkCursor GdkCursor; #define SP_TYPE_CANVAS_ITEM (sp_canvas_item_get_type()) #define SP_CANVAS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), SP_TYPE_CANVAS_ITEM, SPCanvasItem)) diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h index 72ae4b6bc..adae30f35 100644 --- a/src/display/sp-canvas.h +++ b/src/display/sp-canvas.h @@ -30,7 +30,6 @@ # endif #endif -#include #include #include #include diff --git a/src/ege-adjustment-action.h b/src/ege-adjustment-action.h index 590035eb3..8cfaa3e52 100644 --- a/src/ege-adjustment-action.h +++ b/src/ege-adjustment-action.h @@ -45,9 +45,7 @@ /* Note: this file should be kept compilable as both .cpp and .c */ -#include #include -#include G_BEGIN_DECLS diff --git a/src/ege-output-action.h b/src/ege-output-action.h index fc21c2f27..0f4e21805 100644 --- a/src/ege-output-action.h +++ b/src/ege-output-action.h @@ -45,9 +45,7 @@ /* Note: this file should be kept compilable as both .cpp and .c */ -#include #include -#include G_BEGIN_DECLS diff --git a/src/ege-select-one-action.h b/src/ege-select-one-action.h index d605f4a67..0c5cecaa3 100644 --- a/src/ege-select-one-action.h +++ b/src/ege-select-one-action.h @@ -48,9 +48,7 @@ /* Note: this file should be kept compilable as both .cpp and .c */ -#include #include -#include G_BEGIN_DECLS diff --git a/src/extension/input.h b/src/extension/input.h index b01ffeb86..2a0a177a0 100644 --- a/src/extension/input.h +++ b/src/extension/input.h @@ -14,9 +14,8 @@ #include #include #include "extension.h" -#include "xml/repr.h" -#include "document.h" -#include + +class SPDocument; namespace Inkscape { namespace Extension { diff --git a/src/extension/internal/emf-inout.cpp b/src/extension/internal/emf-inout.cpp index 084fbcd58..9a5a78a34 100644 --- a/src/extension/internal/emf-inout.cpp +++ b/src/extension/internal/emf-inout.cpp @@ -27,12 +27,12 @@ # include "config.h" #endif -//#include //This must precede text_reassemble.h or it blows up in pngconf.h when compiling #include #include #include #include +#include "document.h" #include "sp-root.h" // even though it is included indirectly by wmf-inout.h #include "sp-path.h" #include "print.h" diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp index 5ccad678a..c03e7efe0 100644 --- a/src/extension/internal/wmf-inout.cpp +++ b/src/extension/internal/wmf-inout.cpp @@ -33,6 +33,7 @@ #include #include +#include "document.h" #include "sp-root.h" // even though it is included indirectly by wmf-inout.h #include "sp-path.h" #include "print.h" diff --git a/src/extension/output.h b/src/extension/output.h index c5b1beb45..44a731ca0 100644 --- a/src/extension/output.h +++ b/src/extension/output.h @@ -13,7 +13,6 @@ #ifndef INKSCAPE_EXTENSION_OUTPUT_H__ #define INKSCAPE_EXTENSION_OUTPUT_H__ -#include #include "extension.h" class SPDocument; diff --git a/src/helper/action.h b/src/helper/action.h index 1f2de87b4..4b81ee7f9 100644 --- a/src/helper/action.h +++ b/src/helper/action.h @@ -13,12 +13,8 @@ #define SEEN_INKSCAPE_SP_ACTION_H #include "helper/action-context.h" -#include +#include #include -#include - -struct SPAction; -struct SPActionClass; #define SP_TYPE_ACTION (sp_action_get_type()) #define SP_ACTION(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_ACTION, SPAction)) diff --git a/src/icon-size.h b/src/icon-size.h index 4bb4f1df6..d7a9c9b0b 100644 --- a/src/icon-size.h +++ b/src/icon-size.h @@ -12,8 +12,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - #include namespace Inkscape { diff --git a/src/ink-action.h b/src/ink-action.h index 1d4106681..ac5cb9873 100644 --- a/src/ink-action.h +++ b/src/ink-action.h @@ -2,9 +2,7 @@ #define SEEN_INK_ACTION -#include #include -#include #include "icon-size.h" #include "attributes.h" diff --git a/src/ink-comboboxentry-action.h b/src/ink-comboboxentry-action.h index a66f0790e..04b66e8fe 100644 --- a/src/ink-comboboxentry-action.h +++ b/src/ink-comboboxentry-action.h @@ -19,12 +19,8 @@ #ifndef SEEN_INK_COMBOBOXENTRY_ACTION #define SEEN_INK_COMBOBOXENTRY_ACTION -#include -#include - #include - #define INK_COMBOBOXENTRY_TYPE_ACTION (ink_comboboxentry_action_get_type()) #define INK_COMBOBOXENTRY_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INK_COMBOBOXENTRY_TYPE_ACTION, Ink_ComboBoxEntry_Action)) #define INK_COMBOBOXENTRY_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INK_COMBOBOXENTRY_TYPE_ACTION, Ink_ComboBoxEntry_ActionClass)) diff --git a/src/knot.cpp b/src/knot.cpp index 6205af26a..49b4dbb54 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -28,6 +28,7 @@ #include "message-stack.h" #include "message-context.h" #include "ui/tools/tool-base.h" +#include using Inkscape::DocumentUndo; diff --git a/src/knot.h b/src/knot.h index b18f89566..b79614bcb 100644 --- a/src/knot.h +++ b/src/knot.h @@ -17,14 +17,12 @@ #include #include <2geom/point.h> #include "knot-enums.h" -#include #include #include "enums.h" -#include -#include "sp-item.h" class SPDesktop; struct SPCanvasItem; +class SPItem; #define SP_KNOT(obj) (dynamic_cast(static_cast(obj))) #define SP_IS_KNOT(obj) (dynamic_cast(static_cast(obj)) != NULL) diff --git a/src/proj_pt.h b/src/proj_pt.h index 226c182cc..28ec0aca3 100644 --- a/src/proj_pt.h +++ b/src/proj_pt.h @@ -13,7 +13,7 @@ #define SEEN_PROJ_PT_H #include <2geom/point.h> -#include +#include namespace Proj { diff --git a/src/sp-pattern.h b/src/sp-pattern.h index eb34b6714..8f7dbbadd 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -13,21 +13,17 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - -#include "sp-item.h" - #define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) class SPPatternReference; +class SPItem; #include "svg/svg-length.h" #include "sp-paint-server.h" #include "uri-references.h" #include "viewbox.h" -#include #include diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h index 9bacc701d..70da86338 100644 --- a/src/ui/dialog/clonetiler.h +++ b/src/ui/dialog/clonetiler.h @@ -11,7 +11,6 @@ #define __SP_CLONE_TILER_H__ #include "ui/widget/panel.h" -#include #include "ui/dialog/desktop-tracker.h" #include "ui/widget/color-picker.h" diff --git a/src/ui/dialog/export.h b/src/ui/dialog/export.h index 6f3c0dfac..23af0109b 100644 --- a/src/ui/dialog/export.h +++ b/src/ui/dialog/export.h @@ -12,20 +12,11 @@ #ifndef SP_EXPORT_H #define SP_EXPORT_H -#include -#include - -#include -#include -#include #include -#include -#include "desktop.h" #include "ui/dialog/desktop-tracker.h" #include "ui/widget/panel.h" #include "ui/widget/button.h" -#include "ui/widget/entry.h" namespace Gtk { class Dialog; diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp index 8ba3ad684..575519848 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.cpp +++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp @@ -40,6 +40,7 @@ #include #include +#include "document.h" #include "extension/input.h" #include "extension/output.h" #include "extension/db.h" diff --git a/src/ui/tools/flood-tool.h b/src/ui/tools/flood-tool.h index 3ed670e8b..5104a42e9 100644 --- a/src/ui/tools/flood-tool.h +++ b/src/ui/tools/flood-tool.h @@ -11,9 +11,7 @@ * Released under GNU GPL */ -#include -#include -#include +#include #include "ui/tools/tool-base.h" #define SP_FLOOD_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) diff --git a/src/ui/tools/select-tool.h b/src/ui/tools/select-tool.h index edc4069a2..5af99a56a 100644 --- a/src/ui/tools/select-tool.h +++ b/src/ui/tools/select-tool.h @@ -13,7 +13,6 @@ */ #include "ui/tools/tool-base.h" -#include #define SP_SELECT_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) #define SP_IS_SELECT_CONTEXT(obj) (dynamic_cast((const Inkscape::UI::Tools::ToolBase*)obj) != NULL) diff --git a/src/ui/tools/spiral-tool.h b/src/ui/tools/spiral-tool.h index 416aeb7e4..add92342d 100644 --- a/src/ui/tools/spiral-tool.h +++ b/src/ui/tools/spiral-tool.h @@ -15,17 +15,15 @@ * Released under GNU GPL */ -#include -#include -#include +#include #include <2geom/point.h> #include "ui/tools/tool-base.h" -#include "sp-spiral.h" - #define SP_SPIRAL_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) #define SP_IS_SPIRAL_CONTEXT(obj) (dynamic_cast((const Inkscape::UI::Tools::ToolBase*)obj) != NULL) +class SPSpiral; + namespace Inkscape { namespace UI { namespace Tools { diff --git a/src/ui/tools/text-tool.h b/src/ui/tools/text-tool.h index ca2b3d19a..289ee180d 100644 --- a/src/ui/tools/text-tool.h +++ b/src/ui/tools/text-tool.h @@ -14,10 +14,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -/* #include */ -#include -#include -#include +#include #include "ui/tools/tool-base.h" #include <2geom/point.h> @@ -26,6 +23,8 @@ #define SP_TEXT_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) #define SP_IS_TEXT_CONTEXT(obj) (dynamic_cast((const Inkscape::UI::Tools::ToolBase*)obj) != NULL) +typedef struct _GtkIMContext GtkIMContext; + struct SPCtrlLine; namespace Inkscape { diff --git a/src/ui/widget/unit-tracker.h b/src/ui/widget/unit-tracker.h index 61bb556ef..06245930e 100644 --- a/src/ui/widget/unit-tracker.h +++ b/src/ui/widget/unit-tracker.h @@ -16,13 +16,16 @@ #define INKSCAPE_UI_WIDGET_UNIT_TRACKER_H #include -#include - #include "util/units.h" using Inkscape::Util::Unit; using Inkscape::Util::UnitType; +typedef struct _GObject GObject; +typedef struct _GtkAction GtkAction; +typedef struct _GtkAdjustment GtkAdjustment; +typedef struct _GtkListStore GtkListStore; + namespace Inkscape { namespace UI { namespace Widget { diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp index f97bba072..cda97654e 100644 --- a/src/widgets/button.cpp +++ b/src/widgets/button.cpp @@ -18,6 +18,7 @@ #include "helper/action-context.h" #include "interface.h" #include "shortcuts.h" +#include "helper/action.h" #include diff --git a/src/widgets/button.h b/src/widgets/button.h index d5e29da1a..2bceb5e97 100644 --- a/src/widgets/button.h +++ b/src/widgets/button.h @@ -17,10 +17,18 @@ #define SP_IS_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_BUTTON)) #include -#include -#include "helper/action.h" +#include #include "icon-size.h" +struct SPAction; + +namespace Inkscape { +namespace UI { +namespace View { +class View; +} +} +} typedef enum { SP_BUTTON_TYPE_NORMAL, diff --git a/src/widgets/eek-preview.h b/src/widgets/eek-preview.h index e4c724cc5..883ce713e 100644 --- a/src/widgets/eek-preview.h +++ b/src/widgets/eek-preview.h @@ -37,7 +37,6 @@ #ifndef SEEN_EEK_PREVIEW_H #define SEEN_EEK_PREVIEW_H -#include #include /** diff --git a/src/widgets/gradient-image.h b/src/widgets/gradient-image.h index 6a9c89acf..0d3833441 100644 --- a/src/widgets/gradient-image.h +++ b/src/widgets/gradient-image.h @@ -17,7 +17,6 @@ class SPGradient; -#include #include #define SP_TYPE_GRADIENT_IMAGE (sp_gradient_image_get_type ()) diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp index e85c115a8..a5e16aed2 100644 --- a/src/widgets/gradient-selector.cpp +++ b/src/widgets/gradient-selector.cpp @@ -16,8 +16,10 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif + +#include + #include "gradient-vector.h" -#include #include "document.h" #include "document-undo.h" diff --git a/src/widgets/gradient-selector.h b/src/widgets/gradient-selector.h index 1a6468ad4..e090d7cbd 100644 --- a/src/widgets/gradient-selector.h +++ b/src/widgets/gradient-selector.h @@ -19,27 +19,23 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include - -#include -#include -#include #include -#include #include #include -#include "sp-gradient.h" #include "sp-gradient-spread.h" #include "sp-gradient-units.h" +class SPDocument; class SPGradient; +namespace Gtk { +class CellRendererPixbuf; +class CellRendererText; +class ScrolledWindow; +class TreeView; +} + #define SP_TYPE_GRADIENT_SELECTOR (sp_gradient_selector_get_type ()) #define SP_GRADIENT_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelector)) #define SP_GRADIENT_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_GRADIENT_SELECTOR, SPGradientSelectorClass)) diff --git a/src/widgets/gradient-vector.h b/src/widgets/gradient-vector.h index fc85b0d9c..5ae90b28f 100644 --- a/src/widgets/gradient-vector.h +++ b/src/widgets/gradient-vector.h @@ -19,16 +19,8 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include - -#include #include - -#include #include "gradient-selector.h" #define SP_TYPE_GRADIENT_VECTOR_SELECTOR (sp_gradient_vector_selector_get_type ()) diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h index 1e8ad6d2e..788aa673e 100644 --- a/src/widgets/paint-selector.h +++ b/src/widgets/paint-selector.h @@ -12,7 +12,6 @@ * */ -#include #include #include "color.h" diff --git a/src/widgets/sp-color-icc-selector.h b/src/widgets/sp-color-icc-selector.h index f63ab0853..6cdaff639 100644 --- a/src/widgets/sp-color-icc-selector.h +++ b/src/widgets/sp-color-icc-selector.h @@ -2,8 +2,6 @@ #define SEEN_SP_COLOR_ICC_SELECTOR_H #include -#include - #include "sp-color-selector.h" namespace Inkscape { diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index 50c2bb2e7..469bb56e8 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -12,7 +12,6 @@ * This code is in public domain */ -#include #include "sp-color-selector.h" #include diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h index de6544d11..72cbafa2f 100644 --- a/src/widgets/sp-color-scales.h +++ b/src/widgets/sp-color-scales.h @@ -2,9 +2,7 @@ #define SEEN_SP_COLOR_SCALES_H #include -#include -#include #include struct SPColorScales; diff --git a/src/widgets/sp-color-selector.h b/src/widgets/sp-color-selector.h index 9d71a4a56..30061774a 100644 --- a/src/widgets/sp-color-selector.h +++ b/src/widgets/sp-color-selector.h @@ -2,9 +2,7 @@ #define SEEN_SP_COLOR_SELECTOR_H #include -#include "../color.h" - -#include +#include "color.h" struct SPColorSelector; diff --git a/src/widgets/sp-color-slider.h b/src/widgets/sp-color-slider.h index 85db01081..b81d62e41 100644 --- a/src/widgets/sp-color-slider.h +++ b/src/widgets/sp-color-slider.h @@ -14,8 +14,6 @@ #include -#include - #define SP_TYPE_COLOR_SLIDER (sp_color_slider_get_type ()) #define SP_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_SLIDER, SPColorSlider)) #define SP_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_SLIDER, SPColorSliderClass)) diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index 23ac0050d..12b060dbe 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -1,7 +1,6 @@ #ifndef SEEN_SP_COLOR_WHEEL_SELECTOR_H #define SEEN_SP_COLOR_WHEEL_SELECTOR_H -#include #include #include "sp-color-selector.h" diff --git a/src/widgets/sp-widget.h b/src/widgets/sp-widget.h index b3cce32a6..6227c3a72 100644 --- a/src/widgets/sp-widget.h +++ b/src/widgets/sp-widget.h @@ -15,7 +15,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include #define SP_TYPE_WIDGET (sp_widget_get_type()) diff --git a/src/widgets/sp-xmlview-content.h b/src/widgets/sp-xmlview-content.h index a09d2d92d..140eacf46 100644 --- a/src/widgets/sp-xmlview-content.h +++ b/src/widgets/sp-xmlview-content.h @@ -14,8 +14,6 @@ #include #include -#include - #define SP_TYPE_XMLVIEW_CONTENT (sp_xmlview_content_get_type ()) #define SP_XMLVIEW_CONTENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_XMLVIEW_CONTENT, SPXMLViewContent)) diff --git a/src/widgets/spinbutton-events.h b/src/widgets/spinbutton-events.h index c1df88c8a..9bf50d87c 100644 --- a/src/widgets/spinbutton-events.h +++ b/src/widgets/spinbutton-events.h @@ -10,7 +10,9 @@ */ #include -#include /* GtkWidget */ + +typedef struct _GdkEventKey GdkEventKey; +typedef struct _GtkWidget GtkWidget; gboolean spinbutton_focus_in (GtkWidget *w, GdkEventKey *event, gpointer data); void spinbutton_undo (GtkWidget *w); diff --git a/src/widgets/toolbox.h b/src/widgets/toolbox.h index fb749bfb5..db9130034 100644 --- a/src/widgets/toolbox.h +++ b/src/widgets/toolbox.h @@ -13,15 +13,15 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include #include "icon-size.h" -#include "../ege-adjustment-action.h" -#include "../preferences.h" +#include "preferences.h" #define TOOLBAR_SLIDER_HINT "full" +typedef struct _EgeAdjustmentAction EgeAdjustmentAction; + class SPDesktop; namespace Inkscape { -- cgit v1.2.3 From bb1fa6bf07ac6a00eaced3f60400a86cbcb6be0d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 30 Aug 2014 11:31:41 -0400 Subject: Fix SP_ACTIVE_DOCUMENT usage (document can be determined from context) (bzr r13341.1.185) --- src/live_effects/lpe-perspective_path.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/live_effects/lpe-perspective_path.cpp b/src/live_effects/lpe-perspective_path.cpp index a2372131c..9e21f5d25 100644 --- a/src/live_effects/lpe-perspective_path.cpp +++ b/src/live_effects/lpe-perspective_path.cpp @@ -18,6 +18,7 @@ #include "document.h" #include "document-private.h" #include "live_effects/lpe-perspective_path.h" +#include "live_effects/lpeobject.h" #include "sp-item-group.h" #include "knot-holder-entity.h" #include "knotholder.h" @@ -62,7 +63,7 @@ LPEPerspectivePath::LPEPerspectivePath(LivePathEffectObject *lpeobject) : concatenate_before_pwd2 = true; // don't split the path into its subpaths _provides_knotholder_entities = true; unapply = false; - Persp3D *persp = persp3d_document_first_persp(inkscape_active_document()); + Persp3D *persp = persp3d_document_first_persp(lpeobject->document); if(persp == 0 ){ char *msg = _("You need a BOX 3D object"); Gtk::MessageDialog dialog(msg, false, Gtk::MESSAGE_INFO, @@ -72,7 +73,7 @@ LPEPerspectivePath::LPEPerspectivePath(LivePathEffectObject *lpeobject) : return; } Proj::TransfMat3x4 pmat = persp->perspective_impl->tmat; - pmat = pmat * inkscape_active_desktop()->doc2dt(); + pmat = pmat * SP_ACTIVE_DESKTOP->doc2dt(); pmat.copy_tmat(tmat); } @@ -95,7 +96,7 @@ void LPEPerspectivePath::refresh(Gtk::Entry* perspective) { perspectiveID = perspective->get_text(); Persp3D *first = 0; Persp3D *persp = 0; - for ( SPObject *child = inkscape_active_document()->getDefs()->firstChild(); child && !persp; child = child->getNext() ) { + for ( SPObject *child = this->lpeobj->document->getDefs()->firstChild(); child && !persp; child = child->getNext() ) { if (SP_IS_PERSP3D(child) && first == 0) { first = SP_PERSP3D(child); } @@ -125,7 +126,7 @@ void LPEPerspectivePath::refresh(Gtk::Entry* perspective) { dialog.run(); } Proj::TransfMat3x4 pmat = persp->perspective_impl->tmat; - pmat = pmat * inkscape_active_desktop()->doc2dt(); + pmat = pmat * SP_ACTIVE_DESKTOP->doc2dt(); pmat.copy_tmat(tmat); }; @@ -144,7 +145,7 @@ LPEPerspectivePath::doEffect_pwd2 (Geom::Piecewise > cons Piecewise preimage[4]; //Geom::Point orig = Geom::Point(bounds_X.min(), bounds_Y.middle()); - //orig = Geom::Point(orig[X], sp_document_height(inkscape_active_document()) - orig[Y]); + //orig = Geom::Point(orig[X], sp_document_height(this->lpeobj->document) - orig[Y]); //double offset = uses_plane_xy ? boundingbox_X.extent() : 0.0; -- cgit v1.2.3 From 60c9a93dd37ecc1a4875dde3f827e9f6c3e0c642 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 30 Aug 2014 11:42:57 -0400 Subject: Fix gtk3 build (bzr r13341.1.186) --- src/widgets/gradient-vector.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 68f40f80c..53ce8ceac 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -23,6 +23,7 @@ # include "config.h" #endif +#include #include "gradient-vector.h" #include "ui/widget/color-preview.h" #include "verbs.h" @@ -30,17 +31,17 @@ #include "macros.h" #include #include -#include "../widgets/gradient-image.h" -#include "../inkscape.h" -#include "../document-private.h" -#include "../gradient-chemistry.h" -#include "../helper/window.h" +#include "widgets/gradient-image.h" +#include "inkscape.h" +#include "document-private.h" +#include "gradient-chemistry.h" +#include "helper/window.h" #include "io/resource.h" #include "xml/repr.h" -#include "../dialogs/dialog-events.h" -#include "../preferences.h" +#include "dialogs/dialog-events.h" +#include "preferences.h" #include "svg/css-ostringstream.h" #include "sp-stop.h" #include "selection-chemistry.h" @@ -50,8 +51,7 @@ #include "desktop.h" #include "layer-manager.h" -#include -#include +#include #include "document-undo.h" using Inkscape::DocumentUndo; @@ -468,10 +468,10 @@ void SPGradientVectorSelector::setSwatched() ### Vector Editing Widget ##################################################################*/ -#include "../widgets/sp-color-notebook.h" -#include "../widgets/widget-sizes.h" -#include "../xml/node-event-vector.h" -#include "../svg/svg-color.h" +#include "widgets/sp-color-notebook.h" +#include "widgets/widget-sizes.h" +#include "xml/node-event-vector.h" +#include "svg/svg-color.h" #define PAD 4 -- cgit v1.2.3 From 7290c6aa6cbaf9bbf8418eb463a0f7570f645e9a Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 30 Aug 2014 11:44:33 -0400 Subject: Remove old stub from inkview (bzr r13341.1.187) --- src/inkview.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/inkview.cpp b/src/inkview.cpp index 4188c832f..2969bb140 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -570,16 +570,6 @@ static void usage() exit(1); } -#ifdef XXX -/* TODO !!! make this temporary stub unnecessary */ -InkscapeApplication *inkscape_get_instance() { return NULL; } -void inkscape_ref (void) {} -void inkscape_unref (void) {} -void inkscape_add_document (SPDocument *document) {} -void inkscape_remove_document (SPDocument *document) {} -#endif - - /* Local Variables: mode:c++ -- cgit v1.2.3 From ae04b2c08499b9cb8a52bdc01970959d3aba1214 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 30 Aug 2014 11:50:55 -0400 Subject: Fix make check (bzr r13341.1.188) --- po/POTFILES.in | 1 + 1 file changed, 1 insertion(+) diff --git a/po/POTFILES.in b/po/POTFILES.in index c7ee60181..aaa560f3b 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -140,6 +140,7 @@ src/live_effects/lpe-extrude.cpp src/live_effects/lpe-fillet-chamfer.cpp src/live_effects/lpe-gears.cpp src/live_effects/lpe-interpolate.cpp +src/live_effects/lpe-interpolate_points.cpp src/live_effects/lpe-knot.cpp src/live_effects/lpe-lattice2.cpp src/live_effects/lpe-patternalongpath.cpp -- cgit v1.2.3 From 77edfe45996574c82f66c2156ce6e8037520c8ff Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 30 Aug 2014 13:23:17 -0400 Subject: Minor pass of header cleanup (bzr r13341.1.189) --- src/attribute-rel-util.h | 2 +- src/axis-manip.cpp | 9 ++++ src/axis-manip.h | 30 +++++------ src/cms-color-types.h | 5 +- src/cms-system.h | 8 ++- src/color-profile.h | 21 ++++---- src/color-rgba.h | 5 +- src/color.cpp | 8 +-- src/color.h | 6 +-- src/conn-avoid-ref.h | 2 +- src/display/cairo-utils.h | 6 +-- src/display/canvas-bpath.cpp | 3 -- src/display/canvas-text.cpp | 4 -- src/display/drawing.h | 7 ++- src/extension/internal/cairo-render-context.h | 3 ++ src/satisfied-guide-cns.h | 2 +- src/sp-gradient.cpp | 21 ++++---- src/sp-gradient.h | 27 +++++----- src/sp-guide.cpp | 2 +- src/sp-guide.h | 7 ++- src/sp-mesh-array.cpp | 2 + src/sp-mesh-gradient.cpp | 2 + src/sp-object.h | 73 ++++++++++++++------------- 23 files changed, 126 insertions(+), 129 deletions(-) diff --git a/src/attribute-rel-util.h b/src/attribute-rel-util.h index 3a6661965..604987779 100644 --- a/src/attribute-rel-util.h +++ b/src/attribute-rel-util.h @@ -8,7 +8,7 @@ * Author: tavmjong */ -#include "glibmm/ustring.h" +#include #include "xml/sp-css-attr.h" using Inkscape::XML::Node; diff --git a/src/axis-manip.cpp b/src/axis-manip.cpp index 1240d99e6..8955202c8 100644 --- a/src/axis-manip.cpp +++ b/src/axis-manip.cpp @@ -9,6 +9,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include #include "axis-manip.h" namespace Proj { @@ -31,6 +32,14 @@ get_remaining_axes (Axis axis) { return std::make_pair (extract_first_axis_direction (plane), extract_second_axis_direction (plane)); } +char * string_from_axes (Box3D::Axis axis) { + GString *pstring = g_string_new(""); + if (axis & Box3D::X) g_string_append_printf (pstring, "X"); + if (axis & Box3D::Y) g_string_append_printf (pstring, "Y"); + if (axis & Box3D::Z) g_string_append_printf (pstring, "Z"); + return pstring->str; +} + } // namespace Box3D /* diff --git a/src/axis-manip.h b/src/axis-manip.h index 7842b4135..619b9089c 100644 --- a/src/axis-manip.h +++ b/src/axis-manip.h @@ -12,8 +12,9 @@ #ifndef SEEN_AXIS_MANIP_H #define SEEN_AXIS_MANIP_H +#include +#include #include -#include namespace Proj { @@ -34,7 +35,7 @@ enum Axis { extern Axis axes[4]; -inline gchar const * +inline char const* string_from_axis(Proj::Axis axis) { switch (axis) { case X: return "X"; break; @@ -88,7 +89,7 @@ inline int axis_to_int(Box3D::Axis axis) { return -1; break; default: - g_assert_not_reached(); + assert(false); } } @@ -103,7 +104,7 @@ inline Proj::Axis toProj(Box3D::Axis axis) { case Box3D::NONE: return Proj::NONE; default: - g_assert_not_reached(); + assert(false); } } @@ -126,7 +127,7 @@ inline Box3D::Axis toAffine(Proj::Axis axis) { case Proj::NONE: return Box3D::NONE; default: - g_assert_not_reached(); + assert(false); } } @@ -144,7 +145,7 @@ namespace Box3D { // (which is normally used to index an array). Return -1 if the bit sequence // does not specify a face. A face can either be given by its plane (e.g, XY) // or by the axis that is orthogonal to it (e.g., Z). -inline gint face_to_int (guint face_id) { +inline int face_to_int (unsigned int face_id) { switch (face_id) { case 1: return 0; case 2: return 1; @@ -164,7 +165,7 @@ inline gint face_to_int (guint face_id) { } } -inline gint int_to_face (guint id) { +inline int int_to_face (unsigned id) { switch (id) { case 0: return Box3D::YZ ^ Box3D::FRONT; case 1: return Box3D::XZ ^ Box3D::FRONT; @@ -176,7 +177,7 @@ inline gint int_to_face (guint id) { return Box3D::NONE; // should not be reached } -inline bool is_face_id (guint face_id) { +inline bool is_face_id (unsigned int face_id) { return !((face_id & 0x7) == 0x7); } @@ -186,8 +187,8 @@ inline gint opposite_face (guint face_id) { } **/ -inline guint number_of_axis_directions (Box3D::Axis axis) { - guint num = 0; +inline unsigned int number_of_axis_directions (Box3D::Axis axis) { + unsigned int num = 0; if (axis & Box3D::X) num++; if (axis & Box3D::Y) num++; if (axis & Box3D::Z) num++; @@ -238,14 +239,7 @@ inline Box3D::Axis get_perpendicular_axis_direction (Box3D::Axis dirs) { return Box3D::NONE; } -inline gchar * string_from_axes (Box3D::Axis axis) { - GString *pstring = g_string_new(""); - if (axis & Box3D::X) g_string_append_printf (pstring, "X"); - if (axis & Box3D::Y) g_string_append_printf (pstring, "Y"); - if (axis & Box3D::Z) g_string_append_printf (pstring, "Z"); - return pstring->str; -} - +char * string_from_axes (Box3D::Axis axis); std::pair get_remaining_axes (Axis axis); } // namespace Box3D diff --git a/src/cms-color-types.h b/src/cms-color-types.h index 47157c243..b94c96029 100644 --- a/src/cms-color-types.h +++ b/src/cms-color-types.h @@ -10,15 +10,14 @@ # include "config.h" #endif // HAVE_CONFIG_H -#include - #if HAVE_LIBLCMS1 # include #endif #if HAVE_STDINT_H -# include +# include // uint8_t, etc #endif +typedef unsigned int guint32; typedef void * cmsHPROFILE; typedef void * cmsHTRANSFORM; diff --git a/src/cms-system.h b/src/cms-system.h index c528deb94..73d1a89c4 100644 --- a/src/cms-system.h +++ b/src/cms-system.h @@ -5,8 +5,6 @@ * Macros and fn declarations related to linear gradients. */ -#include -#include #include #include #include "cms-color-types.h" @@ -19,13 +17,13 @@ class ColorProfile; class CMSSystem { public: - static cmsHPROFILE getHandle( SPDocument* document, guint* intent, gchar const* name ); + static cmsHPROFILE getHandle( SPDocument* document, unsigned int* intent, char const* name ); static cmsHTRANSFORM getDisplayTransform(); static Glib::ustring getDisplayId( int screen, int monitor ); - static Glib::ustring setDisplayPer( gpointer buf, guint bufLen, int screen, int monitor ); + static Glib::ustring setDisplayPer( void* buf, unsigned int bufLen, int screen, int monitor ); static cmsHTRANSFORM getDisplayPer( Glib::ustring const& id ); @@ -39,7 +37,7 @@ public: static bool isPrintColorSpace(ColorProfile const *profile); - static gint getChannelCount(ColorProfile const *profile); + static int getChannelCount(ColorProfile const *profile); }; diff --git a/src/color-profile.h b/src/color-profile.h index 2da757b91..cb6b25945 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -2,7 +2,6 @@ #define SEEN_COLOR_PROFILE_H #include -#include #include #include #include "cms-color-types.h" @@ -31,7 +30,7 @@ public: ColorProfile(); virtual ~ColorProfile(); - friend cmsHPROFILE colorprofile_get_handle( SPDocument*, guint*, gchar const* ); + friend cmsHPROFILE colorprofile_get_handle( SPDocument*, unsigned int*, char const* ); friend class CMSSystem; static std::vector getBaseProfileDirs(); @@ -49,21 +48,21 @@ public: #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gchar* href; - gchar* local; - gchar* name; - gchar* intentStr; - guint rendering_intent; + char* href; + char* local; + char* name; + char* intentStr; + unsigned int rendering_intent; // FIXME: type the enum and hold that instead protected: ColorProfileImpl *impl; - virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void release(); + virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; } // namespace Inkscape diff --git a/src/color-rgba.h b/src/color-rgba.h index ef7d9aee1..55cf68877 100644 --- a/src/color-rgba.h +++ b/src/color-rgba.h @@ -9,8 +9,9 @@ #ifndef SEEN_COLOR_RGBA_H #define SEEN_COLOR_RGBA_H -#include // g_assert() +#include #include "decimal-round.h" +typedef unsigned int guint32; /** * A class to contain a floating point RGBA color as one unit. @@ -96,7 +97,7 @@ public: * @return The requested value. */ float operator[](unsigned int const i) const { - g_assert( unsigned(i) < 4 ); + assert( unsigned(i) < 4 ); return _c[i]; } diff --git a/src/color.cpp b/src/color.cpp index dccd603b0..da4406748 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -160,7 +160,7 @@ void SPColor::set( guint32 value ) * Convert SPColor with integer alpha value to 32bit RGBA value. * \pre alpha < 256 */ -guint32 SPColor::toRGBA32( gint alpha ) const +guint32 SPColor::toRGBA32( int alpha ) const { g_return_val_if_fail (alpha <= 0xff, 0x0); @@ -175,12 +175,12 @@ guint32 SPColor::toRGBA32( gint alpha ) const * Convert SPColor with float alpha value to 32bit RGBA value. * \pre color != NULL && 0 <= alpha <= 1 */ -guint32 SPColor::toRGBA32( gdouble alpha ) const +guint32 SPColor::toRGBA32( double alpha ) const { g_return_val_if_fail(alpha >= 0.0, 0x0); g_return_val_if_fail(alpha <= 1.0, 0x0); - return toRGBA32( static_cast(SP_COLOR_F_TO_U(alpha)) ); + return toRGBA32( static_cast(SP_COLOR_F_TO_U(alpha)) ); } std::string SPColor::toString() const @@ -284,7 +284,7 @@ sp_color_rgb_to_hsv_floatv (float *hsv, float r, float g, float b) void sp_color_hsv_to_rgb_floatv (float *rgb, float h, float s, float v) { - gdouble f, w, q, t, d; + double f, w, q, t, d; d = h * 5.99999999; f = d - floor (d); diff --git a/src/color.h b/src/color.h index 604dff0e3..887daf66b 100644 --- a/src/color.h +++ b/src/color.h @@ -13,8 +13,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include +typedef unsigned int guint32; // uint is guaranteed to hold up to 2^32 â’ 1 /* Useful composition macros */ @@ -52,8 +52,8 @@ struct SPColor { void set( float r, float g, float b ); void set( guint32 value ); - guint32 toRGBA32( gint alpha ) const; - guint32 toRGBA32( gdouble alpha ) const; + guint32 toRGBA32( int alpha ) const; + guint32 toRGBA32( double alpha ) const; std::string toString() const; diff --git a/src/conn-avoid-ref.h b/src/conn-avoid-ref.h index ce364abf1..e9e12118f 100644 --- a/src/conn-avoid-ref.h +++ b/src/conn-avoid-ref.h @@ -14,13 +14,13 @@ */ #include <2geom/point.h> -#include #include #include class SPDesktop; class SPObject; class SPItem; +typedef struct _GSList GSList; namespace Avoid { class ShapeRef; } class SPAvoidRef { diff --git a/src/display/cairo-utils.h b/src/display/cairo-utils.h index f252c4a44..9c46ef359 100644 --- a/src/display/cairo-utils.h +++ b/src/display/cairo-utils.h @@ -12,15 +12,13 @@ #ifndef SEEN_INKSCAPE_DISPLAY_CAIRO_UTILS_H #define SEEN_INKSCAPE_DISPLAY_CAIRO_UTILS_H +#include <2geom/forward.h> #include -//#include // workaround -//#include #include -//#include -#include <2geom/forward.h> #include "style.h" struct SPColor; +typedef struct _GdkPixbuf GdkPixbuf; namespace Inkscape { diff --git a/src/display/canvas-bpath.cpp b/src/display/canvas-bpath.cpp index 328409e12..46b59d25a 100644 --- a/src/display/canvas-bpath.cpp +++ b/src/display/canvas-bpath.cpp @@ -11,9 +11,6 @@ * */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif #include #include #include "desktop.h" diff --git a/src/display/canvas-text.cpp b/src/display/canvas-text.cpp index 88812af0a..5ad87b4ef 100644 --- a/src/display/canvas-text.cpp +++ b/src/display/canvas-text.cpp @@ -12,10 +12,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - #include #include diff --git a/src/display/drawing.h b/src/display/drawing.h index cc74833ba..88e35b03b 100644 --- a/src/display/drawing.h +++ b/src/display/drawing.h @@ -13,7 +13,6 @@ #define SEEN_INKSCAPE_DISPLAY_DRAWING_H #include -#include #include #include #include @@ -23,7 +22,7 @@ #include "nr-filter-colormatrix.h" typedef struct _SPCanvasArena SPCanvasArena; - +typedef unsigned int guint32; namespace Inkscape { @@ -65,7 +64,7 @@ public: OutlineColors const &colors() const { return _colors; } - void setGrayscaleMatrix(gdouble value_matrix[20]); + void setGrayscaleMatrix(double value_matrix[20]); void update(Geom::IntRect const &area = Geom::IntRect::infinite(), UpdateContext const &ctx = UpdateContext(), unsigned flags = DrawingItem::STATE_ALL, unsigned reset = 0); void render(DrawingContext &dc, Geom::IntRect const &area, unsigned flags = 0); @@ -100,7 +99,7 @@ private: OutlineColors _colors; Filters::FilterColorMatrix::ColorMatrixMatrix _grayscale_colormatrix; - SPCanvasArena *_canvasarena; // may be NULL is this arena is not the screen + SPCanvasArena *_canvasarena; // may be NULL if this arena is not the screen // but used for export etc. friend class DrawingItem; diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h index 8d3e63775..8071cae36 100644 --- a/src/extension/internal/cairo-render-context.h +++ b/src/extension/internal/cairo-render-context.h @@ -31,6 +31,9 @@ class SPClipPath; class SPMask; +typedef struct _PangoFont PangoFont; +typedef struct _PangoLayout PangoLayout; + namespace Inkscape { class Pixbuf; diff --git a/src/satisfied-guide-cns.h b/src/satisfied-guide-cns.h index 73e1e7e7f..25e5919d0 100644 --- a/src/satisfied-guide-cns.h +++ b/src/satisfied-guide-cns.h @@ -3,7 +3,7 @@ #include <2geom/forward.h> #include -#include +#include "sp-item.h" class SPDesktop; class SPGuideConstraint; diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index 70c54451a..b3e885560 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -54,9 +54,6 @@ #include "style.h" #include "display/grayscale.h" -#define SP_MACROS_SILENT -#include "macros.h" - /// Has to be power of 2 Seems to be unused. //#define NCOLORS NR_GRADIENT_VECTOR_LENGTH @@ -107,11 +104,11 @@ void SPGradient::setSwatch( bool swatch ) * Equivalent meaning they have the same stop count, same stop colors and same stop opacity * @param that - A gradient to compare this to */ -gboolean SPGradient::isEquivalent(SPGradient *that) +bool SPGradient::isEquivalent(SPGradient *that) { //TODO Make this work for mesh gradients - bool status = FALSE; + bool status = false; while(1){ // not really a loop, used to avoid deep nesting or multiple exit points from function if (this->getStopCount() != that->getStopCount()) { break; } @@ -132,11 +129,11 @@ gboolean SPGradient::isEquivalent(SPGradient *that) SPStop *as = this->getVector()->getFirstStop(); SPStop *bs = that->getVector()->getFirstStop(); - bool effective = TRUE; + bool effective = true; while (effective && (as && bs)) { if (!as->getEffectiveColor().isClose(bs->getEffectiveColor(), 0.001) || as->offset != bs->offset) { - effective = FALSE; + effective = false; break; } else { @@ -144,9 +141,9 @@ gboolean SPGradient::isEquivalent(SPGradient *that) bs = bs->getNextStop(); } } - if(!effective)break; + if (!effective) break; - status = TRUE; + status = true; break; } return status; @@ -157,9 +154,9 @@ gboolean SPGradient::isEquivalent(SPGradient *that) * Aligned means that they have exactly the same coordinates and transform. * @param that - A gradient to compare this to */ -gboolean SPGradient::isAligned(SPGradient *that) +bool SPGradient::isAligned(SPGradient *that) { - bool status = FALSE; + bool status = false; /* Some gradients have coordinates/other values specified, some don't. yes/yes check the coordinates/other values @@ -223,7 +220,7 @@ gboolean SPGradient::isAligned(SPGradient *that) } else { break; } - status = TRUE; + status = true; break; } return status; diff --git a/src/sp-gradient.h b/src/sp-gradient.h index 1dfff22ee..a14dcc09e 100644 --- a/src/sp-gradient.h +++ b/src/sp-gradient.h @@ -15,7 +15,6 @@ */ #include -#include #include #include <2geom/affine.h> #include "sp-paint-server.h" @@ -109,30 +108,30 @@ public: private: /** gradientUnits attribute */ SPGradientUnits units; - guint units_set : 1; + unsigned int units_set : 1; public: /** gradientTransform attribute */ Geom::Affine gradientTransform; - guint gradientTransform_set : 1; + unsigned int gradientTransform_set : 1; private: /** spreadMethod attribute */ SPGradientSpread spread; - guint spread_set : 1; + unsigned int spread_set : 1; /** Gradient stops */ - guint has_stops : 1; + unsigned int has_stops : 1; /** Gradient patches */ - guint has_patches : 1; + unsigned int has_patches : 1; public: /** Reference (href) */ SPGradientReference *ref; /** State in Inkscape gradient system */ - guint state; + unsigned int state; /** Linear and Radial Gradients */ @@ -146,8 +145,8 @@ public: SPStop* getFirstStop(); int getStopCount() const; - gboolean isEquivalent(SPGradient *b); - gboolean isAligned(SPGradient *b); + bool isEquivalent(SPGradient *b); + bool isAligned(SPGradient *b); /** Mesh Gradients **************/ @@ -175,7 +174,7 @@ public: */ SPGradient *getVector(bool force_private = false); - static GType getType(); + //static GType getType(); /** Forces vector to be built, if not present (i.e. changed) */ void ensureVector(); @@ -196,7 +195,7 @@ public: void setSwatch(bool swatch = true); - static void gradientRefModified(SPObject *href, guint flags, SPGradient *gradient); + static void gradientRefModified(SPObject *href, unsigned int flags, SPGradient *gradient); static void gradientRefChanged(SPObject *old_ref, SPObject *ref, SPGradient *gr); private: @@ -208,13 +207,13 @@ private: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void modified(guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void modified(unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual void child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref); virtual void remove_child(Inkscape::XML::Node *child); - virtual void set(unsigned key, gchar const *value); + virtual void set(unsigned key, char const *value); }; void diff --git a/src/sp-guide.cpp b/src/sp-guide.cpp index 60f15a79d..0e83c2acf 100644 --- a/src/sp-guide.cpp +++ b/src/sp-guide.cpp @@ -341,7 +341,7 @@ void SPGuide::hideSPGuide(SPCanvas *canvas) g_assert_not_reached(); } -void SPGuide::sensitize(SPCanvas *canvas, gboolean sensitive) +void SPGuide::sensitize(SPCanvas *canvas, bool sensitive) { g_assert(canvas != NULL); g_assert(SP_IS_CANVAS(canvas)); diff --git a/src/sp-guide.h b/src/sp-guide.h index fa4f0033b..9f5d7ba03 100644 --- a/src/sp-guide.h +++ b/src/sp-guide.h @@ -19,6 +19,9 @@ #include "sp-object.h" #include "sp-guide-attachment.h" +typedef unsigned int guint32; +typedef void (*GCallback) (void); + struct SPCanvas; struct SPCanvasGroup; class SPDesktop; @@ -52,14 +55,14 @@ public: static SPGuide *createSPGuide(SPDocument *doc, Geom::Point const &pt1, Geom::Point const &pt2); void showSPGuide(SPCanvasGroup *group, GCallback handler); void hideSPGuide(SPCanvas *canvas); - void sensitize(SPCanvas *canvas, gboolean sensitive); + void sensitize(SPCanvas *canvas, bool sensitive); Geom::Point getPositionFrom(Geom::Point const &pt) const; double getDistanceFrom(Geom::Point const &pt) const; protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); }; void sp_guide_pt_pairs_to_guides(SPDocument *doc, std::list > &pts); diff --git a/src/sp-mesh-array.cpp b/src/sp-mesh-array.cpp index 300f2ad19..8bfe23656 100644 --- a/src/sp-mesh-array.cpp +++ b/src/sp-mesh-array.cpp @@ -37,6 +37,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include + // For color picking #include "display/drawing.h" #include "display/drawing-context.h" diff --git a/src/sp-mesh-gradient.cpp b/src/sp-mesh-gradient.cpp index 1b04a6f8e..bf28164a9 100644 --- a/src/sp-mesh-gradient.cpp +++ b/src/sp-mesh-gradient.cpp @@ -1,3 +1,5 @@ +#include + #include "attributes.h" #include "display/cairo-utils.h" #include "xml/repr.h" diff --git a/src/sp-object.h b/src/sp-object.h index e58f161d6..21926ad90 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -46,7 +46,7 @@ class SPObject; #define SP_OBJECT_WRITE_EXT (1 << 1) #define SP_OBJECT_WRITE_ALL (1 << 2) -#include +#include #include #include #include @@ -57,6 +57,7 @@ class SPObject; class SPCSSAttr; class SPStyle; +typedef struct _GSList GSList; namespace Inkscape { namespace XML { @@ -109,8 +110,8 @@ class SPDocument; class SPIXmlSpace { public: SPIXmlSpace(): set(0), value(SP_XML_SPACE_DEFAULT) {}; - guint set : 1; - guint value : 1; + unsigned int set : 1; + unsigned int value : 1; }; /* @@ -183,7 +184,7 @@ SPObject *sp_object_hunref(SPObject *object, gpointer owner); * provides document level functionality such as the undo stack, * dictionary and so on. Source: doc/architecture.txt */ -class SPObject { // : public GObject { +class SPObject { public: enum CollectionPolicy { COLLECT_WITH_PARENT, @@ -209,7 +210,7 @@ private: SPObject(const SPObject&); SPObject& operator=(const SPObject&); - gchar *id; /* Our very own unique id */ + char *id; /* Our very own unique id */ Inkscape::XML::Node *repr; /* Our xml representation */ public: int refCount; @@ -217,7 +218,7 @@ public: /** * Returns the objects current ID string. */ - gchar const* getId() const; + char const* getId() const; /** * Returns the XML representation of tree @@ -281,7 +282,7 @@ public: typedef Inkscape::Util::ForwardPointerIterator ConstSiblingIterator; bool isSiblingOf(SPObject const *object) const { - g_return_val_if_fail(object != NULL, false); + if (object == NULL) return false; return this->parent && this->parent == object->parent; } @@ -332,26 +333,26 @@ public: * Gets the author-visible label property for the object or a default if * no label is defined. */ - gchar const *label() const; + char const *label() const; /** * Returns a default label property for this object. */ - gchar const *defaultLabel() const; + char const *defaultLabel() const; /** * Sets the author-visible label for this object. * * @param label the new label. */ - void setLabel(gchar const *label); + void setLabel(char const *label); /** * Returns the title of this object, or NULL if there is none. * The caller must free the returned string using g_free() - see comment * for getTitleOrDesc() below. */ - gchar *title() const; + char *title() const; /** * Sets the title of this object. @@ -359,14 +360,14 @@ public: * (if any) should be deleted. * The second argument is optional - @see setTitleOrDesc() below for details. */ - bool setTitle(gchar const *title, bool verbatim = false); + bool setTitle(char const *title, bool verbatim = false); /** * Returns the description of this object, or NULL if there is none. * The caller must free the returned string using g_free() - see comment * for getTitleOrDesc() below. */ - gchar *desc() const; + char *desc() const; /** * Sets the description of this object. @@ -374,7 +375,7 @@ public: * description (if any) should be deleted. * The second argument is optional - @see setTitleOrDesc() below for details. */ - bool setDesc(gchar const *desc, bool verbatim=false); + bool setDesc(char const *desc, bool verbatim=false); /** * Set the policy under which this object will be orphan-collected. @@ -501,9 +502,9 @@ public: * Indicates that another object supercedes this one. */ void setSuccessor(SPObject *successor) { - g_assert(successor != NULL); - g_assert(_successor == NULL); - g_assert(successor->_successor == NULL); + assert(successor != NULL); + assert(_successor == NULL); + assert(successor->_successor == NULL); sp_object_ref(successor, NULL); _successor = successor; } @@ -655,8 +656,8 @@ public: sigc::signal _modified_signal; SPObject *_successor; CollectionPolicy _collection_policy; - gchar *_label; - mutable gchar *_default_label; + char *_label; + mutable char *_default_label; // WARNING: // Methods below should not be used outside of the SP tree, @@ -690,7 +691,7 @@ public: unsigned getPosition(); - gchar const * getAttribute(gchar const *name,SPException *ex=NULL) const; + char const * getAttribute(char const *name,SPException *ex=NULL) const; void appendChild(Inkscape::XML::Node *child); @@ -699,18 +700,18 @@ public: /** * Call virtual set() function of object. */ - void setKeyValue(unsigned int key, gchar const *value); + void setKeyValue(unsigned int key, char const *value); - void setAttribute(gchar const *key, gchar const *value, SPException *ex=NULL); + void setAttribute(char const *key, char const *value, SPException *ex=NULL); /** * Read value of key attribute from XML node into object. */ - void readAttr(gchar const *key); + void readAttr(char const *key); - gchar const *getTagName(SPException *ex) const; + char const *getTagName(SPException *ex) const; - void removeAttribute(gchar const *key, SPException *ex=NULL); + void removeAttribute(char const *key, SPException *ex=NULL); /** * Returns an object style property. @@ -740,13 +741,13 @@ public: * element instead), we should probably make the caller * responsible for ascending the repr tree as necessary. */ - gchar const *getStyleProperty(gchar const *key, gchar const *def) const; + char const *getStyleProperty(char const *key, char const *def) const; - void setCSS(SPCSSAttr *css, gchar const *attr); + void setCSS(SPCSSAttr *css, char const *attr); - void changeCSS(SPCSSAttr *css, gchar const *attr); + void changeCSS(SPCSSAttr *css, char const *attr); - bool storeAsDouble( gchar const *key, double *val ) const; + bool storeAsDouble( char const *key, double *val ) const; private: // Private member functions used in the definitions of setTitle(), @@ -769,7 +770,7 @@ private: * The return value is true if a change was made to the title/description, * and usually false otherwise. */ - bool setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool verbatim); + bool setTitleOrDesc(char const *value, char const *svg_tagname, bool verbatim); /** * Returns the title or description of this object, or NULL if there is none. @@ -781,13 +782,13 @@ private: * Consequently, the return value is a newly allocated string (or NULL), and * must be freed (using g_free()) by the caller. */ - gchar * getTitleOrDesc(gchar const *svg_tagname) const; + char * getTitleOrDesc(char const *svg_tagname) const; /** * Find the first child of this object with a given tag name, * and return it. Returns NULL if there is no matching child. */ - SPObject * findFirstChild(gchar const *tagname) const; + SPObject * findFirstChild(char const *tagname) const; /** * Return the full textual content of an element (typically all the @@ -802,12 +803,12 @@ public: /** * Callback for attr_changed node event. */ - static void repr_attr_changed(Inkscape::XML::Node *repr, gchar const *key, gchar const *oldval, gchar const *newval, bool is_interactive, gpointer data); + static void repr_attr_changed(Inkscape::XML::Node *repr, char const *key, char const *oldval, char const *newval, bool is_interactive, gpointer data); /** * Callback for content_changed node event. */ - static void repr_content_changed(Inkscape::XML::Node *repr, gchar const *oldcontent, gchar const *newcontent, gpointer data); + static void repr_content_changed(Inkscape::XML::Node *repr, char const *oldcontent, char const *newcontent, gpointer data); /** * Callback for child_added node event. @@ -838,12 +839,12 @@ protected: virtual void order_changed(Inkscape::XML::Node* child, Inkscape::XML::Node* old_repr, Inkscape::XML::Node* new_repr); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); public: virtual void read_content(); -- cgit v1.2.3 From 1f2d8bc4ce99e970cead4ca96c1859c383a9c043 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 31 Aug 2014 14:17:26 -0400 Subject: Header cleanup: stop using Glib types where they aren't truly needed. Eases GThread deprecation errors. (bzr r13341.1.190) --- src/CMakeLists.txt | 1 - src/Makefile_insert | 1 - src/box3d-side.h | 8 +- src/box3d.h | 20 ++--- src/context-fns.cpp | 13 ++- src/context-fns.h | 15 ++-- src/desktop-style.h | 3 +- src/dir-util.h | 5 +- src/document-private.h | 1 + src/document-undo.cpp | 13 --- src/document.cpp | 2 +- src/document.h | 56 ++++++------ src/draw-anchor.cpp | 4 +- src/draw-anchor.h | 9 +- src/event-log.h | 8 -- src/extension/internal/gdkpixbuf-input.cpp | 13 ++- src/extension/internal/gdkpixbuf-input.h | 2 +- src/extract-uri.h | 4 +- src/factory.h | 2 +- src/file.h | 8 +- src/filter-chemistry.h | 9 +- src/filter-enums.h | 2 - src/gc-anchored.h | 1 - src/gc-core.h | 1 - src/gradient-chemistry.h | 21 ++--- src/graphlayout.h | 13 ++- src/helper-fns.h | 30 +------ src/inkscape-version.h | 2 +- src/interface.cpp | 2 +- src/interface.h | 18 ++-- src/isinf.h | 2 +- src/isnormal.h | 19 ---- src/knot-holder-entity.h | 30 +++---- src/knot.h | 62 +++++++------ src/knotholder.h | 9 +- src/layer-manager.h | 11 +-- src/layer-model.h | 6 +- src/line-geometry.h | 5 +- src/line-snapper.cpp | 5 +- src/line-snapper.h | 5 +- src/live_effects/lpe-copy_rotate.cpp | 1 + src/live_effects/lpe-knot.cpp | 1 + src/live_effects/lpeobject-reference.h | 6 +- src/live_effects/lpeobject.h | 4 +- src/main-cmdlineact.h | 6 +- src/marker.h | 10 +-- src/message-context.h | 15 ++-- src/message-stack.h | 31 +++---- src/number-opt-number.h | 30 +++---- src/object-edit.cpp | 140 ++++++++++++++--------------- src/object-hierarchy.cpp | 23 ++--- src/object-hierarchy.h | 3 +- src/path-chemistry.h | 5 +- src/path-prefix.h | 16 ++-- src/persp3d-reference.h | 7 +- src/persp3d.h | 15 ++-- src/perspective-line.h | 1 - src/preferences-skeleton.h | 3 +- src/preferences.h | 6 +- src/print.h | 6 +- src/profile-manager.h | 5 +- src/proj_pt.h | 16 ++-- src/rdf.h | 39 ++++---- src/removeoverlap.h | 2 +- src/rubberband.h | 10 +-- src/selcue.h | 8 +- src/selection-chemistry.h | 30 +++---- src/selection-describer.h | 6 +- src/selection.h | 21 ++--- src/seltrans-handles.h | 14 +-- src/seltrans.h | 67 +++++++------- src/shape-editor.h | 8 +- src/shortcuts.h | 11 +-- src/snap-candidate.h | 5 +- src/snap-preferences.h | 18 ++-- src/snap.h | 1 + src/snapped-curve.h | 6 +- src/snapped-point.h | 7 +- src/snapper.h | 13 ++- src/sp-anchor.h | 14 +-- src/sp-clippath.h | 21 +++-- src/sp-conn-end-pair.h | 18 ++-- src/sp-conn-end.h | 13 ++- src/sp-cursor.cpp | 9 +- src/sp-cursor.h | 9 +- src/sp-defs.h | 2 +- src/sp-desc.h | 6 +- src/sp-ellipse.h | 8 +- src/sp-filter-primitive.h | 12 +-- src/sp-filter.h | 17 ++-- src/sp-flowdiv.h | 26 +++--- src/sp-flowregion.h | 8 +- src/sp-flowtext.h | 10 +-- src/sp-font-face.h | 12 +-- src/sp-font.h | 8 +- src/sp-glyph-kerning.h | 10 +-- src/sp-glyph.h | 4 +- src/sp-gradient-vector.h | 5 +- src/sp-gradient.h | 21 ++--- src/sp-guide.h | 2 +- src/sp-image.h | 13 ++- src/sp-item-group.h | 17 ++-- src/sp-item-notify-moveto.cpp | 9 +- src/sp-item-transform.cpp | 2 + src/sp-item-transform.h | 9 +- src/sp-item.cpp | 2 +- src/sp-item.h | 25 +++--- src/sp-line.h | 6 +- src/sp-linear-gradient.cpp | 2 + src/sp-linear-gradient.h | 4 +- src/sp-lpe-item.h | 10 +-- src/sp-mask.h | 16 ++-- src/sp-mesh-array.h | 64 +++++++------ src/sp-mesh-gradient.h | 4 +- src/sp-mesh-patch.h | 6 +- src/sp-mesh-row.h | 5 +- src/sp-metadata.h | 9 +- src/sp-missing-glyph.h | 12 +-- src/sp-namedview.cpp | 2 +- src/sp-namedview.h | 29 +++--- src/sp-object-group.h | 2 +- src/sp-object.cpp | 16 ++-- src/sp-object.h | 14 +-- src/sp-offset.h | 18 ++-- src/sp-paint-server-reference.h | 3 +- src/sp-paint-server.h | 4 +- src/sp-path.h | 10 +-- src/sp-pattern.h | 31 +++---- src/sp-polygon.h | 13 ++- src/sp-polyline.h | 6 +- src/sp-radial-gradient.cpp | 2 + src/sp-radial-gradient.h | 8 +- src/sp-rect.h | 32 +++---- src/sp-root.h | 8 +- src/sp-script.h | 10 +-- src/sp-shape.h | 16 ++-- src/sp-solid-color.cpp | 2 + src/sp-solid-color.h | 8 +- src/sp-spiral.h | 16 ++-- src/sp-star.h | 18 ++-- src/sp-stop.h | 13 +-- src/sp-string.h | 4 +- src/sp-style-elem.h | 4 +- src/sp-switch.h | 10 ++- src/sp-symbol.h | 18 ++-- src/sp-text.h | 18 ++-- src/sp-textpath.h | 7 +- src/sp-title.h | 6 +- src/sp-tref-reference.h | 8 +- src/sp-tref.h | 6 +- src/sp-tspan.h | 7 +- src/sp-use-reference.h | 8 +- src/sp-use.h | 15 ++-- src/splivarot.h | 7 +- src/streq.h | 1 - src/style-enums.h | 6 +- src/style.h | 35 ++++---- src/svg-view-widget.h | 2 +- src/svg-view.h | 13 ++- src/text-chemistry.h | 2 + src/text-editing.h | 19 ++-- src/transf_mat_3x4.h | 4 +- src/unclump.cpp | 1 + src/unclump.h | 2 +- src/unicoderange.h | 14 +-- src/uri-references.h | 6 +- src/uri.h | 35 ++++---- src/vanishing-point.h | 12 ++- src/verbs.h | 49 +++++----- src/version.cpp | 22 ++--- src/version.h | 12 ++- 171 files changed, 1028 insertions(+), 1113 deletions(-) delete mode 100644 src/isnormal.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ab697d126..34f06ed99 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -351,7 +351,6 @@ set(inkscape_SRC inkscape.h interface.h isinf.h - isnormal.h knot-enums.h knot-holder-entity.h knot.h diff --git a/src/Makefile_insert b/src/Makefile_insert index 8e45cb4e0..e1b95c1d6 100644 --- a/src/Makefile_insert +++ b/src/Makefile_insert @@ -74,7 +74,6 @@ ink_common_sources += \ inkscape.cpp inkscape.h inkscape-private.h \ interface.cpp interface.h \ isinf.h \ - isnormal.h \ knot.cpp knot.h \ knot-enums.h \ knotholder.cpp knotholder.h \ diff --git a/src/box3d-side.h b/src/box3d-side.h index 04bd196c2..89b3b0399 100644 --- a/src/box3d-side.h +++ b/src/box3d-side.h @@ -36,16 +36,16 @@ public: static Box3DSide * createBox3DSide(SPBox3D *box); virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); - virtual void update(SPCtx *ctx, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); + virtual void update(SPCtx *ctx, unsigned int flags); virtual void set_shape(); }; void box3d_side_position_set (Box3DSide *side); // FIXME: Replace this by box3d_side_set_shape?? -gchar *box3d_side_axes_string(Box3DSide *side); +char *box3d_side_axes_string(Box3DSide *side); Persp3D *box3d_side_perspective(Box3DSide *side); diff --git a/src/box3d.h b/src/box3d.h index 4107d2452..60b966187 100644 --- a/src/box3d.h +++ b/src/box3d.h @@ -32,9 +32,9 @@ public: SPBox3D(); virtual ~SPBox3D(); - gint z_orders[6]; // z_orders[i] holds the ID of the face at position #i in the group (from top to bottom) + int z_orders[6]; // z_orders[i] holds the ID of the face at position #i in the group (from top to bottom) - gchar *persp_href; + char *persp_href; Persp3DReference *persp_ref; Proj::Pt3 orig_corner0; @@ -45,7 +45,7 @@ public: Box3D::Axis swapped; // to indicate which coordinates are swapped during dragging - gint my_counter; // for debugging only + int my_counter; // for debugging only /** * Create a SPBox3D and append it to the parent. @@ -54,24 +54,24 @@ public: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); - virtual void update(SPCtx *ctx, guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* display_name(); virtual Geom::Affine set_transform(Geom::Affine const &transform); virtual void convert_to_guides() const; virtual const char* displayName() const; - virtual gchar *description() const; + virtual char *description() const; }; void box3d_position_set (SPBox3D *box); -Proj::Pt3 box3d_get_proj_corner (SPBox3D const *box, guint id); -Geom::Point box3d_get_corner_screen (SPBox3D const *box, guint id, bool item_coords = true); +Proj::Pt3 box3d_get_proj_corner (SPBox3D const *box, unsigned int id); +Geom::Point box3d_get_corner_screen (SPBox3D const *box, unsigned int id, bool item_coords = true); Proj::Pt3 box3d_get_proj_center (SPBox3D *box); Geom::Point box3d_get_center_screen (SPBox3D *box); -void box3d_set_corner (SPBox3D *box, guint id, Geom::Point const &new_pos, Box3D::Axis movement, bool constrained); +void box3d_set_corner (SPBox3D *box, unsigned int id, Geom::Point const &new_pos, Box3D::Axis movement, bool constrained); void box3d_set_center (SPBox3D *box, Geom::Point const &new_pos, Geom::Point const &old_pos, Box3D::Axis movement, bool constrained); void box3d_corners_for_PLs (const SPBox3D * box, Proj::Axis axis, Geom::Point &corner1, Geom::Point &corner2, Geom::Point &corner3, Geom::Point &corner4); bool box3d_recompute_z_orders (SPBox3D *box); diff --git a/src/context-fns.cpp b/src/context-fns.cpp index 1e30e51de..e1df53d98 100644 --- a/src/context-fns.cpp +++ b/src/context-fns.cpp @@ -1,17 +1,14 @@ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include -#include "sp-item.h" + +#include "context-fns.h" #include "desktop.h" +#include "display/snap-indicator.h" #include "message-context.h" #include "message-stack.h" -#include "context-fns.h" #include "snap.h" -#include "ui/tools/tool-base.h" +#include "sp-item.h" #include "sp-namedview.h" -#include "display/snap-indicator.h" +#include "ui/tools/tool-base.h" static const double midpt_1_goldenratio = (1 + goldenratio) / 2; static const double midpt_goldenratio_2 = (goldenratio + 2) / 2; diff --git a/src/context-fns.h b/src/context-fns.h index bd48e5fb8..82554a6c9 100644 --- a/src/context-fns.h +++ b/src/context-fns.h @@ -2,7 +2,6 @@ #define SEEN_CONTEXT_FNS_H /* - * * * Authors: * @@ -11,11 +10,13 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include <2geom/forward.h> -class SPDesktop; -class SPItem; +class SPDesktop; +class SPItem; +typedef union _GdkEvent GdkEvent; + +const double goldenratio = 1.61803398874989484820; // golden ratio namespace Inkscape { namespace UI { @@ -25,12 +26,6 @@ class ToolBase; } } -} - -const double goldenratio = 1.61803398874989484820; // golden ratio - -namespace Inkscape -{ class MessageContext; class MessageStack; diff --git a/src/desktop-style.h b/src/desktop-style.h index fc20e97b9..40ca27e9e 100644 --- a/src/desktop-style.h +++ b/src/desktop-style.h @@ -13,13 +13,12 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - class ColorRGBA; class SPCSSAttr; class SPDesktop; class SPObject; class SPStyle; +typedef struct _GSList GSList; namespace Inkscape { namespace XML { class Node; diff --git a/src/dir-util.h b/src/dir-util.h index 17261af41..4865158bd 100644 --- a/src/dir-util.h +++ b/src/dir-util.h @@ -9,8 +9,7 @@ * */ -#include -#include +#include /** * Returns a form of \a path relative to \a base if that is easy to construct (eg if \a path @@ -49,7 +48,7 @@ char *inkscape_rel2abs(char const *path, char const *base, char *result, size_t char *inkscape_abs2rel(char const *path, char const *base, char *result, size_t const size); -gchar *prepend_current_dir_if_relative(gchar const *filename); +gchar *prepend_current_dir_if_relative(char const *filename); #endif // !SEEN_DIR_UTIL_H diff --git a/src/document-private.h b/src/document-private.h index 4560aa28f..8e28b288b 100644 --- a/src/document-private.h +++ b/src/document-private.h @@ -34,6 +34,7 @@ class Event; } } +typedef struct _GHashTable GHashTable; struct SPDocumentPrivate { typedef std::map IDChangedSignalMap; diff --git a/src/document-undo.cpp b/src/document-undo.cpp index 478266b7b..0519b6874 100644 --- a/src/document-undo.cpp +++ b/src/document-undo.cpp @@ -44,19 +44,6 @@ * (Lauris Kaplinski) */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - - - -#if HAVE_STRING_H -#endif - - -#if HAVE_STDLIB_H -#endif - #include #include #include "xml/repr.h" diff --git a/src/document.cpp b/src/document.cpp index f79a00178..bb1954916 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1370,7 +1370,7 @@ GSList *SPDocument::getItemsAtPoints(unsigned const key, std::vectorpriv != NULL, NULL); diff --git a/src/document.h b/src/document.h index ee903449d..4ace249ae 100644 --- a/src/document.h +++ b/src/document.h @@ -75,8 +75,8 @@ class SPDocument : public Inkscape::GC::Managed<>, public: typedef sigc::signal IDChangedSignal; typedef sigc::signal ResourcesChangedSignal; - typedef sigc::signal ModifiedSignal; - typedef sigc::signal URISetSignal; + typedef sigc::signal ModifiedSignal; + typedef sigc::signal URISetSignal; typedef sigc::signal ResizedSignal; typedef sigc::signal ReconstructionStart; typedef sigc::signal ReconstructionFinish; @@ -100,9 +100,9 @@ public: CRCascade *style_cascade; protected: - gchar *uri; ///< A filename (not a URI yet), or NULL - gchar *base; ///< To be used for resolving relative hrefs. - gchar *name; ///< basename(uri) or other human-readable label for the document. + char *uri; ///< A filename (not a URI yet), or NULL + char *base; ///< To be used for resolving relative hrefs. + char *name; ///< basename(uri) or other human-readable label for the document. public: @@ -112,10 +112,10 @@ public: Glib::ustring actionkey; /// Handler ID - guint modified_id; + unsigned modified_id; /// Connector rerouting handler ID - guint rerouting_handler_id; + unsigned rerouting_handler_id; Inkscape::ProfileManager* profileManager; @@ -137,15 +137,15 @@ public: Inkscape::XML::Document const *getReprDoc() const { return rdoc; } /** A filename (not a URI yet), or NULL */ - gchar const *getURI() const { return uri; } - void setUri(gchar const *uri); + char const *getURI() const { return uri; } + void setUri(char const *uri); /** To be used for resolving relative hrefs. */ - gchar const *getBase() const { return base; }; - void setBase( gchar const* base ); + char const *getBase() const { return base; }; + void setBase( char const* base ); /** basename(uri) or other human-readable label for the document. */ - gchar const* getName() const { return name; } + char const* getName() const { return name; } /** Return the main defs object for the document. */ SPDefs *getDefs(); @@ -173,10 +173,10 @@ public: sigc::connection connectResized(ResizedSignal::slot_type slot); sigc::connection connectCommit(CommitSignal::slot_type slot); - void bindObjectToId(gchar const *id, SPObject *object); + void bindObjectToId(char const *id, SPObject *object); SPObject *getObjectById(Glib::ustring const &id) const; - SPObject *getObjectById(gchar const *id) const; - sigc::connection connectIdChanged(const gchar *id, IDChangedSignal::slot_type slot); + SPObject *getObjectById(char const *id) const; + sigc::connection connectIdChanged(const char *id, IDChangedSignal::slot_type slot); void bindObjectToRepr(Inkscape::XML::Node *repr, SPObject *object); SPObject *getObjectByRepr(Inkscape::XML::Node *repr) const; @@ -222,12 +222,12 @@ public: sigc::connection _selection_changed_connection; sigc::connection _desktop_activated_connection; - sigc::connection connectResourcesChanged(const gchar *key, SPDocument::ResourcesChangedSignal::slot_type slot); + sigc::connection connectResourcesChanged(char const *key, SPDocument::ResourcesChangedSignal::slot_type slot); void fitToRect(Geom::Rect const &rect, bool with_margins = false); - static SPDocument *createNewDoc(const gchar *uri, unsigned int keepalive, + static SPDocument *createNewDoc(char const*uri, unsigned int keepalive, bool make_new = false, SPDocument *parent=NULL ); - static SPDocument *createNewDocFromMem(const gchar *buffer, gint length, unsigned int keepalive); + static SPDocument *createNewDocFromMem(char const*buffer, int length, unsigned int keepalive); SPDocument *createChildDoc(std::string const &uri); /** @@ -235,8 +235,8 @@ public: */ static SPItem *getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, const GSList *list, Geom::Point const &p, bool take_insensitive = false); - static SPDocument *createDoc(Inkscape::XML::Document *rdoc, gchar const *uri, - gchar const *base, gchar const *name, unsigned int keepalive, + static SPDocument *createDoc(Inkscape::XML::Document *rdoc, char const *uri, + char const *base, char const *name, unsigned int keepalive, SPDocument *parent); SPDocument *doRef(); @@ -250,25 +250,25 @@ public: void setHeight(const Inkscape::Util::Quantity &height); void setViewBox(const Geom::Rect &viewBox); void requestModified(); - gint ensureUpToDate(); - bool addResource(const gchar *key, SPObject *object); - bool removeResource(const gchar *key, SPObject *object); - const GSList *getResourceList(const gchar *key) const; + int ensureUpToDate(); + bool addResource(char const *key, SPObject *object); + bool removeResource(char const *key, SPObject *object); + const GSList *getResourceList(char const *key) const; GSList *getItemsInBox(unsigned int dkey, Geom::Rect const &box) const; GSList *getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const; - SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, gboolean into_groups, SPItem *upto = NULL) const; + SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; GSList *getItemsAtPoints(unsigned const key, std::vector points) const; SPItem *getGroupAtPoint(unsigned int key, Geom::Point const &p) const; - void changeUriAndHrefs(gchar const *uri); - void emitResizedSignal(gdouble width, gdouble height); + void changeUriAndHrefs(char const *uri); + void emitResizedSignal(double width, double height); unsigned int vacuumDocument(); void importDefs(SPDocument *source); private: - void do_change_uri(gchar const *const filename, bool const rebase); + void do_change_uri(char const *const filename, bool const rebase); void setupViewport(SPItemCtx *ctx); }; diff --git a/src/draw-anchor.cpp b/src/draw-anchor.cpp index 00db936e1..6b02bb607 100644 --- a/src/draw-anchor.cpp +++ b/src/draw-anchor.cpp @@ -30,7 +30,7 @@ using Inkscape::ControlManager; /** * Creates an anchor object and initializes it. */ -SPDrawAnchor *sp_draw_anchor_new(Inkscape::UI::Tools::FreehandBase *dc, SPCurve *curve, gboolean start, Geom::Point delta) +SPDrawAnchor *sp_draw_anchor_new(Inkscape::UI::Tools::FreehandBase *dc, SPCurve *curve, bool start, Geom::Point delta) { if (SP_IS_LPETOOL_CONTEXT(dc)) { // suppress all kinds of anchors in LPEToolContext @@ -73,7 +73,7 @@ SPDrawAnchor *sp_draw_anchor_destroy(SPDrawAnchor *anchor) * Test if point is near anchor, if so fill anchor on canvas and return * pointer to it or NULL. */ -SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, gboolean activate) +SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, bool activate) { SPCtrl *ctrl = SP_CTRL(anchor->ctrl); diff --git a/src/draw-anchor.h b/src/draw-anchor.h index e7b252186..1f7b55920 100644 --- a/src/draw-anchor.h +++ b/src/draw-anchor.h @@ -5,7 +5,6 @@ * Drawing anchors. */ -#include #include <2geom/point.h> namespace Inkscape { @@ -26,17 +25,17 @@ struct SPCanvasItem; struct SPDrawAnchor { Inkscape::UI::Tools::FreehandBase *dc; SPCurve *curve; - guint start : 1; - guint active : 1; + unsigned int start : 1; + unsigned int active : 1; Geom::Point dp; SPCanvasItem *ctrl; }; -SPDrawAnchor *sp_draw_anchor_new(Inkscape::UI::Tools::FreehandBase *dc, SPCurve *curve, gboolean start, +SPDrawAnchor *sp_draw_anchor_new(Inkscape::UI::Tools::FreehandBase *dc, SPCurve *curve, bool start, Geom::Point delta); SPDrawAnchor *sp_draw_anchor_destroy(SPDrawAnchor *anchor); -SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, gboolean activate); +SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, bool activate); #endif /* !SEEN_DRAW_ANCHOR_H */ diff --git a/src/event-log.h b/src/event-log.h index 7e3ba6817..6d4112a5a 100644 --- a/src/event-log.h +++ b/src/event-log.h @@ -11,14 +11,6 @@ #ifndef INKSCAPE_EVENT_LOG_H #define INKSCAPE_EVENT_LOG_H -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp index da179bee0..28e44c461 100644 --- a/src/extension/internal/gdkpixbuf-input.cpp +++ b/src/extension/internal/gdkpixbuf-input.cpp @@ -1,21 +1,20 @@ -#ifdef HAVE_CONFIG_H -# include -#endif +#include + #include #include #include +#include "dir-util.h" +#include "display/cairo-utils.h" #include "document-private.h" -#include +#include "document-undo.h" #include "extension/input.h" #include "extension/system.h" +#include "image-resolution.h" #include "gdkpixbuf-input.h" #include "preferences.h" #include "selection-chemistry.h" #include "sp-image.h" -#include "document-undo.h" #include "util/units.h" -#include "image-resolution.h" -#include "display/cairo-utils.h" #include namespace Inkscape { diff --git a/src/extension/internal/gdkpixbuf-input.h b/src/extension/internal/gdkpixbuf-input.h index 597e7246b..2e03a96db 100644 --- a/src/extension/internal/gdkpixbuf-input.h +++ b/src/extension/internal/gdkpixbuf-input.h @@ -10,7 +10,7 @@ namespace Internal { class GdkpixbufInput : Inkscape::Extension::Implementation::Implementation { public: SPDocument *open(Inkscape::Extension::Input *mod, - gchar const *uri); + char const *uri); static void init(); }; diff --git a/src/extract-uri.h b/src/extract-uri.h index a6707f1a1..e9ee0b1d8 100644 --- a/src/extract-uri.h +++ b/src/extract-uri.h @@ -1,9 +1,7 @@ #ifndef SEEN_EXTRACT_URI_H #define SEEN_EXTRACT_URI_H -#include - -gchar *extract_uri(gchar const *s, gchar const** endptr = 0); +char *extract_uri(char const *s, char const** endptr = 0); #endif /* !SEEN_EXTRACT_URI_H */ diff --git a/src/factory.h b/src/factory.h index c76501cfd..c1288b460 100644 --- a/src/factory.h +++ b/src/factory.h @@ -91,7 +91,7 @@ struct NodeTraits { break; case Inkscape::XML::ELEMENT_NODE: { - gchar const *const sptype = node.attribute("sodipodi:type"); + char const *const sptype = node.attribute("sodipodi:type"); if (sptype) { name = sptype; diff --git a/src/file.h b/src/file.h index 7f80f3645..4ffbc8ec0 100644 --- a/src/file.h +++ b/src/file.h @@ -75,7 +75,7 @@ bool sp_file_open( * Displays a file open dialog. Calls sp_file_open on * an OK. */ -void sp_file_open_dialog (Gtk::Window &parentWindow, gpointer object, gpointer data); +void sp_file_open_dialog (Gtk::Window &parentWindow, void* object, void* data); /** * Reverts file to disk-copy on "YES" @@ -96,19 +96,19 @@ bool file_save_remote(SPDocument *doc, const Glib::ustring &uri, /** * */ -bool sp_file_save (Gtk::Window &parentWindow, gpointer object, gpointer data); +bool sp_file_save (Gtk::Window &parentWindow, void* object, void* data); /** * Saves the given document. Displays a file select dialog * to choose the new name. */ -bool sp_file_save_as (Gtk::Window &parentWindow, gpointer object, gpointer data); +bool sp_file_save_as (Gtk::Window &parentWindow, void* object, void* data); /** * Saves a copy of the given document. Displays a file select dialog * to choose a name for the copy. */ -bool sp_file_save_a_copy (Gtk::Window &parentWindow, gpointer object, gpointer data); +bool sp_file_save_a_copy (Gtk::Window &parentWindow, void* object, void* data); /** diff --git a/src/filter-chemistry.h b/src/filter-chemistry.h index 2ac3ebe8f..104016845 100644 --- a/src/filter-chemistry.h +++ b/src/filter-chemistry.h @@ -14,8 +14,6 @@ #ifndef SEEN_SP_FILTER_CHEMISTRY_H #define SEEN_SP_FILTER_CHEMISTRY_H -#include - #include "display/nr-filter-types.h" class SPDocument; @@ -24,12 +22,11 @@ class SPFilterPrimitive; class SPItem; class SPObject; - SPFilterPrimitive *filter_add_primitive(SPFilter *filter, Inkscape::Filters::FilterPrimitiveType); SPFilter *new_filter (SPDocument *document); -SPFilter *new_filter_gaussian_blur (SPDocument *document, gdouble stdDeviation, double expansion, double expansionX, double expansionY, double width, double height); -SPFilter *new_filter_simple_from_item (SPDocument *document, SPItem *item, const char *mode, gdouble stdDeviation); -SPFilter *modify_filter_gaussian_blur_from_item (SPDocument *document, SPItem *item, gdouble stdDeviation); +SPFilter *new_filter_gaussian_blur (SPDocument *document, double stdDeviation, double expansion, double expansionX, double expansionY, double width, double height); +SPFilter *new_filter_simple_from_item (SPDocument *document, SPItem *item, const char *mode, double stdDeviation); +SPFilter *modify_filter_gaussian_blur_from_item (SPDocument *document, SPItem *item, double stdDeviation); void remove_filter (SPObject *item, bool recursive); void remove_filter_gaussian_blur (SPObject *item); bool filter_is_single_gaussian_blur(SPFilter *filter); diff --git a/src/filter-enums.h b/src/filter-enums.h index e6d656f8a..3ced5ab94 100644 --- a/src/filter-enums.h +++ b/src/filter-enums.h @@ -12,8 +12,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - #include "display/nr-filter-blend.h" #include "display/nr-filter-colormatrix.h" #include "display/nr-filter-component-transfer.h" diff --git a/src/gc-anchored.h b/src/gc-anchored.h index a20904dce..99b78c784 100644 --- a/src/gc-anchored.h +++ b/src/gc-anchored.h @@ -9,7 +9,6 @@ #ifndef SEEN_INKSCAPE_GC_ANCHORED_H #define SEEN_INKSCAPE_GC_ANCHORED_H -#include #include "gc-managed.h" namespace Inkscape { diff --git a/src/gc-core.h b/src/gc-core.h index 3957bda1a..d9d0bf4ff 100644 --- a/src/gc-core.h +++ b/src/gc-core.h @@ -24,7 +24,6 @@ #else # include #endif -#include namespace Inkscape { namespace GC { diff --git a/src/gradient-chemistry.h b/src/gradient-chemistry.h index 728874f88..792ccc72e 100644 --- a/src/gradient-chemistry.h +++ b/src/gradient-chemistry.h @@ -22,6 +22,7 @@ class SPCSSAttr; class SPItem; +typedef unsigned int guint32; /** * Either normalizes given gradient to vector, or returns fresh normalized @@ -53,7 +54,7 @@ SPGradient *sp_gradient_vector_for_object( SPDocument *doc, SPDesktop *desktop, void sp_object_ensure_fill_gradient_normalized (SPObject *object); void sp_object_ensure_stroke_gradient_normalized (SPObject *object); -SPGradient *sp_gradient_convert_to_userspace (SPGradient *gr, SPItem *item, const gchar *property); +SPGradient *sp_gradient_convert_to_userspace (SPGradient *gr, SPItem *item, const char *property); SPGradient *sp_gradient_reset_to_userspace (SPGradient *gr, SPItem *item); SPGradient *sp_gradient_fork_vector_if_necessary (SPGradient *gr); @@ -61,11 +62,11 @@ SPGradient *sp_gradient_get_forked_vector_if_necessary(SPGradient *gradient, boo SPStop* sp_last_stop(SPGradient *gradient); -SPStop* sp_get_stop_i(SPGradient *gradient, guint i); -guint sp_number_of_stops(SPGradient const *gradient); -guint sp_number_of_stops_before_stop(SPGradient const *gradient, SPStop *target); +SPStop* sp_get_stop_i(SPGradient *gradient, unsigned int i); +unsigned int sp_number_of_stops(SPGradient const *gradient); +unsigned int sp_number_of_stops_before_stop(SPGradient const *gradient, SPStop *target); -guint32 average_color(guint32 c1, guint32 c2, gdouble p = 0.5); +guint32 average_color(guint32 c1, guint32 c2, double p = 0.5); SPStop *sp_vector_add_stop(SPGradient *vector, SPStop* prev_stop, SPStop* next_stop, gfloat offset); @@ -86,20 +87,20 @@ void sp_gradient_unset_swatch(SPDesktop *desktop, std::string id); SPGradient *getGradient(SPItem *item, Inkscape::PaintTarget fill_or_stroke); -void sp_item_gradient_set_coords(SPItem *item, GrPointType point_type, guint point_i, Geom::Point p_desk, Inkscape::PaintTarget fill_or_stroke, bool write_repr, bool scale); +void sp_item_gradient_set_coords(SPItem *item, GrPointType point_type, unsigned int point_i, Geom::Point p_desk, Inkscape::PaintTarget fill_or_stroke, bool write_repr, bool scale); /** * Returns the position of point point_type of the gradient applied to item (either fill_or_stroke), * in desktop coordinates. */ -Geom::Point getGradientCoords(SPItem *item, GrPointType point_type, guint point_i, Inkscape::PaintTarget fill_or_stroke); +Geom::Point getGradientCoords(SPItem *item, GrPointType point_type, unsigned int point_i, Inkscape::PaintTarget fill_or_stroke); SPGradient *sp_item_gradient_get_vector(SPItem *item, Inkscape::PaintTarget fill_or_stroke); SPGradientSpread sp_item_gradient_get_spread(SPItem *item, Inkscape::PaintTarget fill_or_stroke); -void sp_item_gradient_stop_set_style(SPItem *item, GrPointType point_type, guint point_i, Inkscape::PaintTarget fill_or_stroke, SPCSSAttr *stop); -guint32 sp_item_gradient_stop_query_style(SPItem *item, GrPointType point_type, guint point_i, Inkscape::PaintTarget fill_or_stroke); -void sp_item_gradient_edit_stop(SPItem *item, GrPointType point_type, guint point_i, Inkscape::PaintTarget fill_or_stroke); +void sp_item_gradient_stop_set_style(SPItem *item, GrPointType point_type, unsigned int point_i, Inkscape::PaintTarget fill_or_stroke, SPCSSAttr *stop); +guint32 sp_item_gradient_stop_query_style(SPItem *item, GrPointType point_type, unsigned int point_i, Inkscape::PaintTarget fill_or_stroke); +void sp_item_gradient_edit_stop(SPItem *item, GrPointType point_type, unsigned int point_i, Inkscape::PaintTarget fill_or_stroke); void sp_item_gradient_reverse_vector(SPItem *item, Inkscape::PaintTarget fill_or_stroke); void sp_item_gradient_invert_vector_color(SPItem *item, Inkscape::PaintTarget fill_or_stroke); diff --git a/src/graphlayout.h b/src/graphlayout.h index 6083ad77f..0ffb645b6 100644 --- a/src/graphlayout.h +++ b/src/graphlayout.h @@ -14,10 +14,15 @@ #ifndef SEEN_GRAPHLAYOUT_H #define SEEN_GRAPHLAYOUT_H -struct _GSList; -void graphlayout(_GSList const *const items); +#include + +typedef struct _GSList GSList; class SPItem; + +void graphlayout(GSList const *const items); + bool isConnector(SPItem const *const item); -#include -void filterConnectors(_GSList const *const items, std::list &filtered); + +void filterConnectors(GSList const *const items, std::list &filtered); + #endif // SEEN_GRAPHLAYOUT_H diff --git a/src/helper-fns.h b/src/helper-fns.h index 699fbbe11..2f1829c37 100644 --- a/src/helper-fns.h +++ b/src/helper-fns.h @@ -10,7 +10,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include +#include #include #include @@ -59,34 +59,6 @@ inline bool helperfns_read_bool(gchar const *value, bool default_value){ return default_value; } -/* convert ascii representation to double - * the function can only be used to convert numbers as given by gui elements that use localized representation - * numbers are delimeted by space - * @param value ascii representation of the number - * @param size number of elements in string - * @return the vector of the converted numbers - */ -/* -inline std::vector helperfns_read_vector(const gchar* value, int size){ - std::vector v(size, (gdouble) 0); - std::istringstream is(value); - for(int i = 0; i < size; i++){ - std::string str; - is >> str; - char *end; - - double ret = g_ascii_strtod(str.c_str(), &end); - if (*end) { - g_warning("helper-fns::helperfns_read_vector() Unable to convert \"%s\" to number", str.c_str()); - // We could leave this out, too. If strtod can't convert - // anything, it will return zero. - ret = 0; - } - v[i] = ret; - }; - return v; -} -*/ /* convert ascii representation to double * the function can only be used to convert numbers as given by gui elements that use localized representation * numbers are delimeted by space diff --git a/src/inkscape-version.h b/src/inkscape-version.h index 791351184..ff219047e 100644 --- a/src/inkscape-version.h +++ b/src/inkscape-version.h @@ -16,7 +16,7 @@ namespace Inkscape { -extern gchar const *version_string; ///< Full version string +extern char const *version_string; ///< Full version string } // namespace Inkscape diff --git a/src/interface.cpp b/src/interface.cpp index 1cbeb44a3..3b5958a33 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -149,7 +149,7 @@ static void injectRenamedIcons(); static const int MIN_ONSCREEN_DISTANCE = 50; void -sp_create_window(SPViewWidget *vw, gboolean editable) +sp_create_window(SPViewWidget *vw, bool editable) { g_return_if_fail(vw != NULL); g_return_if_fail(SP_IS_VIEW_WIDGET(vw)); diff --git a/src/interface.h b/src/interface.h index 215a3bfc9..2418223ae 100644 --- a/src/interface.h +++ b/src/interface.h @@ -17,13 +17,9 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif +//#ifdef HAVE_CONFIG_H +//# include +//#endif #include @@ -50,7 +46,7 @@ class View; /** * Create a new document window. */ -void sp_create_window (SPViewWidget *vw, gboolean editable); +void sp_create_window (SPViewWidget *vw, bool editable); /** * \param widget unused @@ -87,15 +83,15 @@ unsigned int sp_ui_close_all (void); GtkWidget *sp_ui_main_menubar (Inkscape::UI::View::View *view); void sp_menu_append_recent_documents (GtkWidget *menu); -void sp_ui_dialog_title_string (Inkscape::Verb * verb, gchar* c); +void sp_ui_dialog_title_string (Inkscape::Verb * verb, char* c); Glib::ustring getLayoutPrefPath( Inkscape::UI::View::View *view ); /** * */ -void sp_ui_error_dialog (const gchar * message); -bool sp_ui_overwrite_file (const gchar * filename); +void sp_ui_error_dialog (char const* message); +bool sp_ui_overwrite_file (char const* filename); /** diff --git a/src/isinf.h b/src/isinf.h index b4c56f79d..8d590b972 100644 --- a/src/isinf.h +++ b/src/isinf.h @@ -2,7 +2,7 @@ #define __ISINF_H__ /* - * Fix for missing std::isnormal with SOLARIS8/GCC3.2 + * Fix for missing std::isinf with SOLARIS8/GCC3.2 */ #if defined (SOLARIS) diff --git a/src/isnormal.h b/src/isnormal.h deleted file mode 100644 index d53105926..000000000 --- a/src/isnormal.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __ISNORMAL_H__ -#define __ISNORMAL_H__ - -/* - * Fix for missing std::isnormal with SOLARIS8/GCC3.2 - */ - -#if defined (SOLARIS) - - #include - #define isnormal(x) (fpclass(x) >= FP_NZERO) - -#else - - using std::isnormal; - -#endif - -#endif /* __ISNORMAL_H__ */ diff --git a/src/knot-holder-entity.h b/src/knot-holder-entity.h index dde60f515..43ab25e5c 100644 --- a/src/knot-holder-entity.h +++ b/src/knot-holder-entity.h @@ -14,11 +14,11 @@ * Released under GNU GPL */ -#include -#include "knot.h" #include <2geom/forward.h> -#include "snapper.h" + #include "display/sp-canvas-item.h" +#include "knot.h" +#include "snapper.h" class SPItem; class SPKnot; @@ -31,7 +31,7 @@ namespace LivePathEffect { } // namespace LivePathEffect } // namespace Inkscape -typedef void (* SPKnotHolderSetFunc) (SPItem *item, Geom::Point const &p, Geom::Point const &origin, guint state); +typedef void (* SPKnotHolderSetFunc) (SPItem *item, Geom::Point const &p, Geom::Point const &origin, unsigned int state); typedef Geom::Point (* SPKnotHolderGetFunc) (SPItem *item); /** @@ -50,22 +50,22 @@ public: virtual void create(SPDesktop *desktop, SPItem *item, KnotHolder *parent, Inkscape::ControlType type = Inkscape::CTRL_TYPE_UNKNOWN, - const gchar *tip = "", + char const*tip = "", SPKnotShapeType shape = SP_KNOT_SHAPE_DIAMOND, SPKnotModeType mode = SP_KNOT_MODE_XOR, guint32 color = 0xffffff00); /* the get/set/click handlers are virtual functions; each handler class for a knot should be derived from KnotHolderEntity and override these functions */ - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) = 0; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) = 0; virtual Geom::Point knot_get() const = 0; - virtual void knot_click(guint /*state*/) {} + virtual void knot_click(unsigned int /*state*/) {} void update_knot(); //private: - Geom::Point snap_knot_position(Geom::Point const &p, guint state); - Geom::Point snap_knot_position_constrained(Geom::Point const &p, Inkscape::Snapper::SnapConstraint const &constraint, guint state); + Geom::Point snap_knot_position(Geom::Point const &p, unsigned int state); + Geom::Point snap_knot_position_constrained(Geom::Point const &p, Inkscape::Snapper::SnapConstraint const &constraint, unsigned int state); SPKnot *knot; SPItem *item; @@ -77,11 +77,11 @@ public: static int counter; /** Connection to \a knot's "moved" signal. */ - guint handler_id; + unsigned int handler_id; /** Connection to \a knot's "clicked" signal. */ - guint _click_handler_id; + unsigned int _click_handler_id; /** Connection to \a knot's "ungrabbed" signal. */ - guint _ungrab_handler_id; + unsigned int _ungrab_handler_id; private: sigc::connection _moved_connection; @@ -103,7 +103,7 @@ class PatternKnotHolderEntityXY : public KnotHolderEntity { public: PatternKnotHolderEntityXY(bool fill) : KnotHolderEntity(), _fill(fill) {} virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); private: // true if the entity tracks fill, false for stroke bool _fill; @@ -113,7 +113,7 @@ class PatternKnotHolderEntityAngle : public KnotHolderEntity { public: PatternKnotHolderEntityAngle(bool fill) : KnotHolderEntity(), _fill(fill) {} virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); private: bool _fill; }; @@ -122,7 +122,7 @@ class PatternKnotHolderEntityScale : public KnotHolderEntity { public: PatternKnotHolderEntityScale(bool fill) : KnotHolderEntity(), _fill(fill) {} virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); private: bool _fill; }; diff --git a/src/knot.h b/src/knot.h index b79614bcb..e3ad98e66 100644 --- a/src/knot.h +++ b/src/knot.h @@ -14,15 +14,19 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include <2geom/point.h> -#include "knot-enums.h" #include + +#include "knot-enums.h" #include "enums.h" class SPDesktop; -struct SPCanvasItem; class SPItem; +struct SPCanvasItem; + +typedef struct _GdkCursor GdkCursor; +typedef union _GdkEvent GdkEvent; +typedef unsigned int guint32; #define SP_KNOT(obj) (dynamic_cast(static_cast(obj))) #define SP_IS_KNOT(obj) (dynamic_cast(static_cast(obj)) != NULL) @@ -36,19 +40,17 @@ class SPItem; */ class SPKnot { public: - SPKnot(SPDesktop *desktop, gchar const *tip); + SPKnot(SPDesktop *desktop, char const *tip); virtual ~SPKnot(); - - int ref_count; - + int ref_count; // FIXME encapsulation SPDesktop *desktop; /**< Desktop we are on. */ SPCanvasItem *item; /**< Our CanvasItem. */ SPItem *owner; /**< Optional Owner Item */ - guint flags; + unsigned int flags; - guint size; /**< Always square. */ + unsigned int size; /**< Always square. */ Geom::Point pos; /**< Our desktop coordinates. */ Geom::Point grabbed_rel_pos; /**< Grabbed relative position. */ Geom::Point drag_origin; /**< Origin of drag. */ @@ -59,39 +61,41 @@ public: guint32 fill[SP_KNOT_VISIBLE_STATES]; guint32 stroke[SP_KNOT_VISIBLE_STATES]; - guchar *image[SP_KNOT_VISIBLE_STATES]; + unsigned char *image[SP_KNOT_VISIBLE_STATES]; GdkCursor *cursor[SP_KNOT_VISIBLE_STATES]; GdkCursor *saved_cursor; - gpointer pixbuf; + void* pixbuf; - gchar *tip; + char *tip; - gulong _event_handler_id; + unsigned long _event_handler_id; double pressure; /**< The tablet pen pressure when the knot is being dragged. */ - sigc::signal click_signal; - sigc::signal doubleclicked_signal; - sigc::signal grabbed_signal; - sigc::signal ungrabbed_signal; - sigc::signal moved_signal; + // FIXME: signals should NOT need to emit the object they came from, the callee should + // be able to figure that out + sigc::signal click_signal; + sigc::signal doubleclicked_signal; + sigc::signal grabbed_signal; + sigc::signal ungrabbed_signal; + sigc::signal moved_signal; sigc::signal event_signal; - sigc::signal request_signal; + sigc::signal request_signal; //TODO: all the members above should eventualle become private, accessible via setters/getters - void setSize(guint i); - void setShape(guint i); - void setAnchor(guint i); - void setMode(guint i); - void setPixbuf(gpointer p); + void setSize(unsigned int i); + void setShape(unsigned int i); + void setAnchor(unsigned int i); + void setMode(unsigned int i); + void setPixbuf(void* p); void setFill(guint32 normal, guint32 mouseover, guint32 dragging); void setStroke(guint32 normal, guint32 mouseover, guint32 dragging); - void setImage(guchar* normal, guchar* mouseover, guchar* dragging); + void setImage(unsigned char* normal, unsigned char* mouseover, unsigned char* dragging); void setCursor(GdkCursor* normal, GdkCursor* mouseover, GdkCursor* dragging); @@ -108,7 +112,7 @@ public: /** * Set flag in knot, with side effects. */ - void setFlag(guint flag, bool set); + void setFlag(unsigned int flag, bool set); /** * Update knot's pixbuf and set its control state. @@ -118,17 +122,17 @@ public: /** * Request or set new position for knot. */ - void requestPosition(Geom::Point const &pos, guint state); + void requestPosition(Geom::Point const &pos, unsigned int state); /** * Update knot for dragging and tell canvas an item was grabbed. */ - void startDragging(Geom::Point const &p, gint x, gint y, guint32 etime); + void startDragging(Geom::Point const &p, int x, int y, guint32 etime); /** * Move knot to new position and emits "moved" signal. */ - void setPosition(Geom::Point const &p, guint state); + void setPosition(Geom::Point const &p, unsigned int state); /** * Move knot to new position, without emitting a MOVED signal. diff --git a/src/knotholder.h b/src/knotholder.h index dc2300105..d33adb610 100644 --- a/src/knotholder.h +++ b/src/knotholder.h @@ -17,7 +17,6 @@ * */ -#include #include <2geom/forward.h> #include #include @@ -47,9 +46,9 @@ public: void update_knots(); - void knot_moved_handler(SPKnot *knot, Geom::Point const &p, guint state); - void knot_clicked_handler(SPKnot *knot, guint state); - void knot_ungrabbed_handler(SPKnot *knot, guint); + void knot_moved_handler(SPKnot *knot, Geom::Point const &p, unsigned int state); + void knot_clicked_handler(SPKnot *knot, unsigned int state); + void knot_ungrabbed_handler(SPKnot *knot, unsigned int); void add(KnotHolderEntity *e); @@ -76,7 +75,7 @@ protected: SPKnotHolderReleasedFunc released; - gboolean local_change; ///< if true, no need to recreate knotholder if repr was changed. + bool local_change; ///< if true, no need to recreate knotholder if repr was changed. bool dragging; diff --git a/src/layer-manager.h b/src/layer-manager.h index 1b69324d5..9eea68004 100644 --- a/src/layer-manager.h +++ b/src/layer-manager.h @@ -10,11 +10,12 @@ #ifndef SEEN_INKSCAPE_LAYER_MANAGER_H #define SEEN_INKSCAPE_LAYER_MANAGER_H +#include +#include + #include "document-subset.h" #include "gc-finalized.h" #include "gc-soft-ptr.h" -#include -#include class SPDesktop; class SPDocument; @@ -29,8 +30,8 @@ public: virtual ~LayerManager(); void setCurrentLayer( SPObject* obj ); - void renameLayer( SPObject* obj, gchar const *label, bool uniquify ); - Glib::ustring getNextLayerName( SPObject* obj, gchar const *label); + void renameLayer( SPObject* obj, char const *label, bool uniquify ); + Glib::ustring getNextLayerName( SPObject* obj, char const *label); sigc::connection connectCurrentLayerChanged(const sigc::slot & slot) { return _layer_changed_signal.connect(slot); @@ -44,7 +45,7 @@ private: friend class LayerWatcher; class LayerWatcher; - void _objectModified( SPObject* obj, guint flags ); + void _objectModified( SPObject* obj, unsigned int flags ); void _setDocument(SPDocument *document); void _rebuild(); void _selectedLayerChanged(SPObject *layer); diff --git a/src/layer-model.h b/src/layer-model.h index 79b7fbe44..86aba63ef 100644 --- a/src/layer-model.h +++ b/src/layer-model.h @@ -22,12 +22,8 @@ * */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include #include +#include class SPDocument; class SPObject; diff --git a/src/line-geometry.h b/src/line-geometry.h index d7be9570c..a77d6e1f3 100644 --- a/src/line-geometry.h +++ b/src/line-geometry.h @@ -12,13 +12,14 @@ #ifndef SEEN_LINE_GEOMETRY_H #define SEEN_LINE_GEOMETRY_H +#include <2geom/point.h> #include -#include "glib.h" + #include "axis-manip.h" // FIXME: This is only for Box3D::epsilon; move that to a better location -#include "2geom/point.h" #include "persp3d.h" class SPDesktop; +typedef unsigned int guint32; namespace Box3D { diff --git a/src/line-snapper.cpp b/src/line-snapper.cpp index 930b7fca9..6122b133a 100644 --- a/src/line-snapper.cpp +++ b/src/line-snapper.cpp @@ -11,9 +11,10 @@ */ #include <2geom/line.h> +#include + #include "line-snapper.h" #include "snapped-line.h" -//#include #include "snap.h" Inkscape::LineSnapper::LineSnapper(SnapManager *sm, Geom::Coord const d) : Snapper(sm, d) @@ -37,7 +38,7 @@ void Inkscape::LineSnapper::freeSnap(IntermSnapResults &isr, Geom::Point const p1 = i->second; // point at guide/grid line Geom::Point const p2 = p1 + Geom::rot90(i->first); // 2nd point at guide/grid line // std::cout << " line through " << i->second << " with normal " << i->first; - g_assert(i->first != Geom::Point(0,0)); // we cannot project on an linesegment of zero length + assert(i->first != Geom::Point(0,0)); // we cannot project on an linesegment of zero length Geom::Point const p_proj = Geom::projection(p.getPoint(), Geom::Line(p1, p2)); Geom::Coord const dist = Geom::L2(p_proj - p.getPoint()); diff --git a/src/line-snapper.h b/src/line-snapper.h index 4b165e0a5..b2fc3d389 100644 --- a/src/line-snapper.h +++ b/src/line-snapper.h @@ -12,10 +12,9 @@ #include "snapper.h" -namespace Inkscape -{ -class SnapCandidatePoint; +namespace Inkscape { +class SnapCandidatePoint; /** * Superclass for snappers to horizontal and vertical lines. diff --git a/src/live_effects/lpe-copy_rotate.cpp b/src/live_effects/lpe-copy_rotate.cpp index 65bbcdad1..e466093d3 100644 --- a/src/live_effects/lpe-copy_rotate.cpp +++ b/src/live_effects/lpe-copy_rotate.cpp @@ -12,6 +12,7 @@ */ #include +#include #include "live_effects/lpe-copy_rotate.h" #include "sp-shape.h" diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index cac3a9347..938287c22 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -22,6 +22,7 @@ #include "knotholder.h" #include +#include #include <2geom/sbasis-to-bezier.h> #include <2geom/sbasis.h> diff --git a/src/live_effects/lpeobject-reference.h b/src/live_effects/lpeobject-reference.h index b1ba1ee4e..374e715ec 100644 --- a/src/live_effects/lpeobject-reference.h +++ b/src/live_effects/lpeobject-reference.h @@ -9,10 +9,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information. */ -#include -#include #include +#include "uri-references.h" + namespace Inkscape { namespace XML { class Node; @@ -33,7 +33,7 @@ public: SPObject *owner; // concerning the LPEObject that is refered to: - gchar *lpeobject_href; + char *lpeobject_href; Inkscape::XML::Node *lpeobject_repr; LivePathEffectObject *lpeobject; diff --git a/src/live_effects/lpeobject.h b/src/live_effects/lpeobject.h index 9700024fe..2e62707e3 100644 --- a/src/live_effects/lpeobject.h +++ b/src/live_effects/lpeobject.h @@ -47,9 +47,9 @@ protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif diff --git a/src/main-cmdlineact.h b/src/main-cmdlineact.h index fe11357fa..c8ef64f10 100644 --- a/src/main-cmdlineact.h +++ b/src/main-cmdlineact.h @@ -15,20 +15,18 @@ * Released under GNU GPL v2.x, read the file 'COPYING' for more information */ -#include - namespace Inkscape { class ActionContext; class CmdLineAction { bool _isVerb; - gchar * _arg; + char * _arg; static std::list _list; public: - CmdLineAction (bool isVerb, gchar const * arg); + CmdLineAction (bool isVerb, char const * arg); virtual ~CmdLineAction (); void doIt (ActionContext const & context); diff --git a/src/marker.h b/src/marker.h index 9eefcdf16..b58523251 100644 --- a/src/marker.h +++ b/src/marker.h @@ -1,5 +1,5 @@ -#ifndef __SP_MARKER_H__ -#define __SP_MARKER_H__ +#ifndef SEEN_SP_MARKER_H +#define SEEN_SP_MARKER_H /* * SVG implementation @@ -12,7 +12,6 @@ * * Released under GNU GPL, read the file 'COPYING' for more information */ - /* * This is quite similar in logic to * Maybe we should merge them somehow (Lauris) @@ -26,8 +25,9 @@ struct SPMarkerView; #include <2geom/rect.h> #include <2geom/affine.h> -#include "svg/svg-length.h" + #include "enums.h" +#include "svg/svg-length.h" #include "sp-item-group.h" #include "uri-references.h" #include "viewbox.h" @@ -93,7 +93,7 @@ Inkscape::DrawingItem *sp_marker_show_instance (SPMarker *marker, Inkscape::Draw unsigned int key, unsigned int pos, Geom::Affine const &base, float linewidth); void sp_marker_hide (SPMarker *marker, unsigned int key); -const gchar *generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); +const char *generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); SPObject *sp_marker_fork_if_necessary(SPObject *marker); #endif diff --git a/src/message-context.h b/src/message-context.h index a92874d68..ea86c4ec0 100644 --- a/src/message-context.h +++ b/src/message-context.h @@ -14,8 +14,9 @@ #ifndef SEEN_INKSCAPE_MESSAGE_CONTEXT_H #define SEEN_INKSCAPE_MESSAGE_CONTEXT_H -#include +#include #include + #include "message.h" namespace Inkscape { @@ -48,7 +49,7 @@ public: * @param type the message type * @param message the message text */ - void set(MessageType type, gchar const *message); + void set(MessageType type, char const *message); /** @brief pushes a message on the stack using prinf-style formatting, * and replacing our old message @@ -56,7 +57,7 @@ public: * @param type the message type * @param format a printf-style formatting string */ - void setF(MessageType type, gchar const *format, ...) G_GNUC_PRINTF(3,4); + void setF(MessageType type, char const *format, ...) G_GNUC_PRINTF(3,4); /** @brief pushes a message on the stack using printf-style formatting, * and a stdarg argument list @@ -65,7 +66,7 @@ public: * @param format a printf-style formatting string * @param args printf-style arguments */ - void setVF(MessageType type, gchar const *format, va_list args); + void setVF(MessageType type, char const *format, va_list args); /** @brief pushes a message onto the stack for a brief period of time * without disturbing our "current" message @@ -73,7 +74,7 @@ public: * @param type the message type * @param message the message text */ - void flash(MessageType type, gchar const *message); + void flash(MessageType type, char const *message); /** @brief pushes a message onto the stack for a brief period of time * using printf-style formatting, without disturbing our current @@ -82,7 +83,7 @@ public: * @param type the message type * @param format a printf-style formatting string */ - void flashF(MessageType type, gchar const *format, ...) G_GNUC_PRINTF(3,4); + void flashF(MessageType type, char const *format, ...) G_GNUC_PRINTF(3,4); /** @brief pushes a message onto the stack for a brief period of time * using printf-style formatting and a stdarg argument list; @@ -92,7 +93,7 @@ public: * @param format a printf-style formatting string * @param args printf-style arguments */ - void flashVF(MessageType type, gchar const *format, va_list args); + void flashVF(MessageType type, char const *format, va_list args); /** @brief removes our current message from the stack */ void clear(); diff --git a/src/message-stack.h b/src/message-stack.h index 3b8307761..42bf4e8a7 100644 --- a/src/message-stack.h +++ b/src/message-stack.h @@ -16,11 +16,12 @@ #ifndef SEEN_INKSCAPE_MESSAGE_STACK_H #define SEEN_INKSCAPE_MESSAGE_STACK_H -#include -#include -#include -#include +#include +#include +#include // G_GNUC_PRINTF is the only thing worth having from here #include +#include + #include "gc-managed.h" #include "gc-finalized.h" #include "gc-anchored.h" @@ -61,14 +62,14 @@ public: /** @brief returns the text of the message currently at the top of * the stack */ - gchar const *currentMessage() { + char const *currentMessage() { return _messages ? _messages->message : NULL; } /** @brief connects to the "changed" signal which is emitted whenever * the topmost message on the stack changes. */ - sigc::connection connectChanged(sigc::slot slot) + sigc::connection connectChanged(sigc::slot slot) { return _changed_signal.connect(slot); } @@ -80,7 +81,7 @@ public: * * @return the id of the pushed message */ - MessageId push(MessageType type, gchar const *message); + MessageId push(MessageType type, char const *message); /** @brief pushes a message onto the stack using printf-like formatting * @@ -89,7 +90,7 @@ public: * * @return the id of the pushed message */ - MessageId pushF(MessageType type, gchar const *format, ...) G_GNUC_PRINTF(3,4); + MessageId pushF(MessageType type, char const *format, ...) G_GNUC_PRINTF(3,4); /** @brief pushes a message onto the stack using printf-like formatting, * using a stdarg argument list @@ -100,7 +101,7 @@ public: * * @return the id of the pushed message */ - MessageId pushVF(MessageType type, gchar const *format, va_list args); + MessageId pushVF(MessageType type, char const *format, va_list args); /** @brief removes a message from the stack, given its id * @@ -119,7 +120,7 @@ public: * * @return the id of the pushed message */ - MessageId flash(MessageType type, gchar const *message); + MessageId flash(MessageType type, char const *message); /** * Temporarily pushes a message onto the stack. @@ -140,7 +141,7 @@ public: * * @return the id of the pushed message */ - MessageId flashF(MessageType type, gchar const *format, ...) G_GNUC_PRINTF(3,4); + MessageId flashF(MessageType type, char const *format, ...) G_GNUC_PRINTF(3,4); /** @brief temporarily pushes a message onto the stack using * printf-like formatting, using a stdarg argument list @@ -151,7 +152,7 @@ public: * * @return the id of the pushed message */ - MessageId flashVF(MessageType type, gchar const *format, va_list args); + MessageId flashVF(MessageType type, char const *format, va_list args); private: struct Message { @@ -167,13 +168,13 @@ private: void operator=(MessageStack const &); // no assign /// pushes a message onto the stack with an optional timeout - MessageId _push(MessageType type, guint lifetime, gchar const *message); + MessageId _push(MessageType type, unsigned int lifetime, char const *message); Message *_discard(Message *m); ///< frees a message struct and returns the next such struct in the list void _emitChanged(); ///< emits the "changed" signal - static gboolean _timeout(gpointer data); ///< callback to expire flashed messages + static int _timeout(void* data); ///< callback to expire flashed messages - sigc::signal _changed_signal; + sigc::signal _changed_signal; Message *_messages; ///< the stack of messages as a linked list MessageId _next_id; ///< the next message id to assign }; diff --git a/src/number-opt-number.h b/src/number-opt-number.h index d9ab56102..f6fe584f9 100644 --- a/src/number-opt-number.h +++ b/src/number-opt-number.h @@ -13,27 +13,23 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include #include -//todo: use glib instead of stdlib -#include +#include + #include "svg/stringstream.h" class NumberOptNumber { public: - gfloat number; + float number; - gfloat optNumber; + float optNumber; - guint _set : 1; + unsigned int _set : 1; - guint optNumber_set : 1; + unsigned int optNumber_set : 1; NumberOptNumber() { @@ -44,27 +40,27 @@ public: optNumber_set = FALSE; } - gfloat getNumber() + float getNumber() { if(_set) return number; return -1; } - gfloat getOptNumber() + float getOptNumber() { if(optNumber_set) return optNumber; return -1; } - void setOptNumber(gfloat num) + void setOptNumber(float num) { optNumber_set = true; optNumber = num; } - void setNumber(gfloat num) + void setNumber(float num) { _set = true; number = num; @@ -78,7 +74,7 @@ public: return _set; } - gchar *getValueString() + char *getValueString() { Inkscape::SVGOStringStream os; @@ -96,12 +92,12 @@ public: return g_strdup(os.str().c_str()); } - void set(gchar const *str) + void set(char const *str) { if(!str) return; - gchar **values = g_strsplit(str, " ", 2); + char **values = g_strsplit(str, " ", 2); if( values[0] != NULL ) { diff --git a/src/object-edit.cpp b/src/object-edit.cpp index fe22f6c1c..14a5bd3d5 100644 --- a/src/object-edit.cpp +++ b/src/object-edit.cpp @@ -96,33 +96,33 @@ KnotHolder *createKnotHolder(SPItem *item, SPDesktop *desktop) class RectKnotHolderEntityRX : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; /* handle for vertical rounding radius */ class RectKnotHolderEntityRY : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; /* handle for width/height adjustment */ class RectKnotHolderEntityWH : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); protected: - void set_internal(Geom::Point const &p, Geom::Point const &origin, guint state); + void set_internal(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; /* handle for x/y adjustment */ class RectKnotHolderEntityXY : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; Geom::Point @@ -134,7 +134,7 @@ RectKnotHolderEntityRX::knot_get() const } void -RectKnotHolderEntityRX::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +RectKnotHolderEntityRX::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPRect *rect = SP_RECT(item); @@ -159,7 +159,7 @@ RectKnotHolderEntityRX::knot_set(Geom::Point const &p, Geom::Point const &/*orig } void -RectKnotHolderEntityRX::knot_click(guint state) +RectKnotHolderEntityRX::knot_click(unsigned int state) { SPRect *rect = SP_RECT(item); @@ -183,7 +183,7 @@ RectKnotHolderEntityRY::knot_get() const } void -RectKnotHolderEntityRY::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +RectKnotHolderEntityRY::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPRect *rect = SP_RECT(item); @@ -217,7 +217,7 @@ RectKnotHolderEntityRY::knot_set(Geom::Point const &p, Geom::Point const &/*orig } void -RectKnotHolderEntityRY::knot_click(guint state) +RectKnotHolderEntityRY::knot_click(unsigned int state) { SPRect *rect = SP_RECT(item); @@ -255,7 +255,7 @@ RectKnotHolderEntityWH::knot_get() const } void -RectKnotHolderEntityWH::set_internal(Geom::Point const &p, Geom::Point const &origin, guint state) +RectKnotHolderEntityWH::set_internal(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { SPRect *rect = SP_RECT(item); @@ -327,7 +327,7 @@ RectKnotHolderEntityWH::set_internal(Geom::Point const &p, Geom::Point const &or } void -RectKnotHolderEntityWH::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +RectKnotHolderEntityWH::knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { set_internal(p, origin, state); update_knot(); @@ -342,7 +342,7 @@ RectKnotHolderEntityXY::knot_get() const } void -RectKnotHolderEntityXY::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +RectKnotHolderEntityXY::knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { SPRect *rect = SP_RECT(item); @@ -468,10 +468,10 @@ RectKnotHolder::RectKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderRel class Box3DKnotHolderEntity : public KnotHolderEntity { public: virtual Geom::Point knot_get() const = 0; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) = 0; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) = 0; Geom::Point knot_get_generic(SPItem *item, unsigned int knot_id) const; - void knot_set_generic(SPItem *item, unsigned int knot_id, Geom::Point const &p, guint state); + void knot_set_generic(SPItem *item, unsigned int knot_id, Geom::Point const &p, unsigned int state); }; Geom::Point @@ -481,7 +481,7 @@ Box3DKnotHolderEntity::knot_get_generic(SPItem *item, unsigned int knot_id) cons } void -Box3DKnotHolderEntity::knot_set_generic(SPItem *item, unsigned int knot_id, Geom::Point const &new_pos, guint state) +Box3DKnotHolderEntity::knot_set_generic(SPItem *item, unsigned int knot_id, Geom::Point const &new_pos, unsigned int state) { Geom::Point const s = snap_knot_position(new_pos, state); @@ -504,55 +504,55 @@ Box3DKnotHolderEntity::knot_set_generic(SPItem *item, unsigned int knot_id, Geom class Box3DKnotHolderEntity0 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity1 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity2 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity3 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity4 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity5 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity6 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntity7 : public Box3DKnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; class Box3DKnotHolderEntityCenter : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; Geom::Point @@ -610,55 +610,55 @@ Box3DKnotHolderEntityCenter::knot_get() const } void -Box3DKnotHolderEntity0::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity0::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 0, new_pos, state); } void -Box3DKnotHolderEntity1::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity1::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 1, new_pos, state); } void -Box3DKnotHolderEntity2::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity2::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 2, new_pos, state); } void -Box3DKnotHolderEntity3::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity3::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 3, new_pos, state); } void -Box3DKnotHolderEntity4::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity4::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 4, new_pos, state); } void -Box3DKnotHolderEntity5::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity5::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 5, new_pos, state); } void -Box3DKnotHolderEntity6::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity6::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 6, new_pos, state); } void -Box3DKnotHolderEntity7::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, guint state) +Box3DKnotHolderEntity7::knot_set(Geom::Point const &new_pos, Geom::Point const &/*origin*/, unsigned int state) { knot_set_generic(item, 7, new_pos, state); } void -Box3DKnotHolderEntityCenter::knot_set(Geom::Point const &new_pos, Geom::Point const &origin, guint state) +Box3DKnotHolderEntityCenter::knot_set(Geom::Point const &new_pos, Geom::Point const &origin, unsigned int state) { Geom::Point const s = snap_knot_position(new_pos, state); @@ -739,29 +739,29 @@ Box3DKnotHolder::Box3DKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderR class ArcKnotHolderEntityStart : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; class ArcKnotHolderEntityEnd : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; class ArcKnotHolderEntityRX : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; class ArcKnotHolderEntityRY : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; /* @@ -783,7 +783,7 @@ sp_genericellipse_side(SPGenericEllipse *ellipse, Geom::Point const &p) } void -ArcKnotHolderEntityStart::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +ArcKnotHolderEntityStart::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { int snaps = Inkscape::Preferences::get()->getInt("/options/rotationsnapsperpi/value", 12); @@ -813,7 +813,7 @@ ArcKnotHolderEntityStart::knot_get() const } void -ArcKnotHolderEntityStart::knot_click(guint state) +ArcKnotHolderEntityStart::knot_click(unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -824,7 +824,7 @@ ArcKnotHolderEntityStart::knot_click(guint state) } void -ArcKnotHolderEntityEnd::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +ArcKnotHolderEntityEnd::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { int snaps = Inkscape::Preferences::get()->getInt("/options/rotationsnapsperpi/value", 12); @@ -855,7 +855,7 @@ ArcKnotHolderEntityEnd::knot_get() const void -ArcKnotHolderEntityEnd::knot_click(guint state) +ArcKnotHolderEntityEnd::knot_click(unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -867,7 +867,7 @@ ArcKnotHolderEntityEnd::knot_click(guint state) void -ArcKnotHolderEntityRX::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +ArcKnotHolderEntityRX::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -891,7 +891,7 @@ ArcKnotHolderEntityRX::knot_get() const } void -ArcKnotHolderEntityRX::knot_click(guint state) +ArcKnotHolderEntityRX::knot_click(unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -902,7 +902,7 @@ ArcKnotHolderEntityRX::knot_click(guint state) } void -ArcKnotHolderEntityRY::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +ArcKnotHolderEntityRY::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -926,7 +926,7 @@ ArcKnotHolderEntityRY::knot_get() const } void -ArcKnotHolderEntityRY::knot_click(guint state) +ArcKnotHolderEntityRY::knot_click(unsigned int state) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -975,19 +975,19 @@ ArcKnotHolder::ArcKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderRelea class StarKnotHolderEntity1 : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; class StarKnotHolderEntity2 : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; void -StarKnotHolderEntity1::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +StarKnotHolderEntity1::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPStar *star = SP_STAR(item); @@ -1013,7 +1013,7 @@ StarKnotHolderEntity1::knot_set(Geom::Point const &p, Geom::Point const &/*origi } void -StarKnotHolderEntity2::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +StarKnotHolderEntity2::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { SPStar *star = SP_STAR(item); @@ -1063,7 +1063,7 @@ StarKnotHolderEntity2::knot_get() const } static void -sp_star_knot_click(SPItem *item, guint state) +sp_star_knot_click(SPItem *item, unsigned int state) { SPStar *star = SP_STAR(item); @@ -1080,13 +1080,13 @@ sp_star_knot_click(SPItem *item, guint state) } void -StarKnotHolderEntity1::knot_click(guint state) +StarKnotHolderEntity1::knot_click(unsigned int state) { sp_star_knot_click(item, state); } void -StarKnotHolderEntity2::knot_click(guint state) +StarKnotHolderEntity2::knot_click(unsigned int state) { sp_star_knot_click(item, state); } @@ -1119,14 +1119,14 @@ StarKnotHolder::StarKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderRel class SpiralKnotHolderEntityInner : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual void knot_click(guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); + virtual void knot_click(unsigned int state); }; class SpiralKnotHolderEntityOuter : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; @@ -1137,7 +1137,7 @@ public: * [control] constrain inner arg to round per PI/4 */ void -SpiralKnotHolderEntityInner::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +SpiralKnotHolderEntityInner::knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12); @@ -1186,7 +1186,7 @@ SpiralKnotHolderEntityInner::knot_set(Geom::Point const &p, Geom::Point const &o * [control] constrain inner arg to round per PI/4 */ void -SpiralKnotHolderEntityOuter::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state) +SpiralKnotHolderEntityOuter::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int state) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12); @@ -1276,7 +1276,7 @@ SpiralKnotHolderEntityOuter::knot_get() const } void -SpiralKnotHolderEntityInner::knot_click(guint state) +SpiralKnotHolderEntityInner::knot_click(unsigned int state) { SPSpiral *spiral = SP_SPIRAL(item); @@ -1314,11 +1314,11 @@ SpiralKnotHolder::SpiralKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolde class OffsetKnotHolderEntity : public KnotHolderEntity { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; void -OffsetKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint /*state*/) +OffsetKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, unsigned int /*state*/) { SPOffset *offset = SP_OFFSET(item); @@ -1357,7 +1357,7 @@ OffsetKnotHolder::OffsetKnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolde class FlowtextKnotHolderEntity : public RectKnotHolderEntityWH { public: virtual Geom::Point knot_get() const; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state); }; Geom::Point @@ -1369,7 +1369,7 @@ FlowtextKnotHolderEntity::knot_get() const } void -FlowtextKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +FlowtextKnotHolderEntity::knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned int state) { set_internal(p, origin, state); } diff --git a/src/object-hierarchy.cpp b/src/object-hierarchy.cpp index f2bf177dc..f241da83d 100644 --- a/src/object-hierarchy.cpp +++ b/src/object-hierarchy.cpp @@ -9,6 +9,9 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include +#include + #include "sp-object.h" #include "object-hierarchy.h" @@ -32,7 +35,7 @@ void ObjectHierarchy::clear() { } void ObjectHierarchy::setTop(SPObject *object) { - g_return_if_fail(object != NULL); + if (object == NULL) { printf("Assertion object != NULL failed\n"); return; } if ( top() == object ) { return; @@ -53,8 +56,8 @@ void ObjectHierarchy::setTop(SPObject *object) { } void ObjectHierarchy::_addTop(SPObject *senior, SPObject *junior) { - g_assert(junior != NULL); - g_assert(senior != NULL); + assert(junior != NULL); + assert(senior != NULL); SPObject *object = junior->parent; do { @@ -64,7 +67,7 @@ void ObjectHierarchy::_addTop(SPObject *senior, SPObject *junior) { } void ObjectHierarchy::_addTop(SPObject *object) { - g_assert(object != NULL); + assert(object != NULL); _hierarchy.push_back(_attach(object)); _added_signal.emit(object); } @@ -82,7 +85,7 @@ void ObjectHierarchy::_trimAbove(SPObject *limit) { } void ObjectHierarchy::setBottom(SPObject *object) { - g_return_if_fail(object != NULL); + if (object == NULL) { printf("assertion object != NULL failed\n"); return; } if ( bottom() == object ) { return; @@ -125,8 +128,8 @@ void ObjectHierarchy::_trimBelow(SPObject *limit) { } void ObjectHierarchy::_addBottom(SPObject *senior, SPObject *junior) { - g_assert(junior != NULL); - g_assert(senior != NULL); + assert(junior != NULL); + assert(senior != NULL); if ( junior != senior ) { _addBottom(senior, junior->parent); @@ -135,15 +138,15 @@ void ObjectHierarchy::_addBottom(SPObject *senior, SPObject *junior) { } void ObjectHierarchy::_addBottom(SPObject *object) { - g_assert(object != NULL); + assert(object != NULL); _hierarchy.push_front(_attach(object)); _added_signal.emit(object); } void ObjectHierarchy::_trim_for_release(SPObject *object) { this->_trimBelow(object); - g_assert(!this->_hierarchy.empty()); - g_assert(this->_hierarchy.front().object == object); + assert(!this->_hierarchy.empty()); + assert(this->_hierarchy.front().object == object); sp_object_ref(object, NULL); this->_detach(this->_hierarchy.front()); diff --git a/src/object-hierarchy.h b/src/object-hierarchy.h index 0343d850e..16004c81a 100644 --- a/src/object-hierarchy.h +++ b/src/object-hierarchy.h @@ -10,12 +10,11 @@ #ifndef SEEN_INKSCAPE_OBJECT_HIERARCHY_H #define SEEN_INKSCAPE_OBJECT_HIERARCHY_H +#include #include #include -#include #include #include -#include class SPObject; diff --git a/src/path-chemistry.h b/src/path-chemistry.h index efc687b44..a2150440c 100644 --- a/src/path-chemistry.h +++ b/src/path-chemistry.h @@ -13,8 +13,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include - class SPDesktop; class SPItem; @@ -25,6 +23,9 @@ class Node; } // namespace XML } // namespace Inkscape +typedef unsigned int guint32; +typedef struct _GSList GSList; + void sp_selected_path_combine (SPDesktop *desktop); void sp_selected_path_break_apart (SPDesktop *desktop); // interactive=true only has an effect if desktop != NULL, i.e. if a GUI is available diff --git a/src/path-prefix.h b/src/path-prefix.h index be57ae354..6ef0ccbe9 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -10,15 +10,15 @@ * define'd directories, and instead should use only the paths defined here. * */ -#ifndef _PATH_PREFIX_H_ -#define _PATH_PREFIX_H_ +#ifndef SEEN_PATH_PREFIX_H +#define SEEN_PATH_PREFIX_H #include "require-config.h" // INKSCAPE_DATADIR #include "prefix.h" -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +//#ifdef __cplusplus +//extern "C" { +//#endif /* __cplusplus */ #ifdef ENABLE_BINRELOC # define INKSCAPE_APPICONDIR BR_DATADIR( "/pixmaps" ) @@ -112,8 +112,8 @@ extern "C" { # endif #endif -#ifdef __cplusplus -} -#endif /* __cplusplus */ +//#ifdef __cplusplus +//} +//#endif /* __cplusplus */ #endif /* _PATH_PREFIX_H_ */ diff --git a/src/persp3d-reference.h b/src/persp3d-reference.h index fa9eca5c9..cce497d94 100644 --- a/src/persp3d-reference.h +++ b/src/persp3d-reference.h @@ -10,9 +10,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information. */ -#include "uri-references.h" -#include +#include #include + +#include "uri-references.h" #include "persp3d.h" class SPObject; @@ -35,7 +36,7 @@ public: SPObject *owner; // concerning the Persp3D (we only use SPBox3D) that is refered to: - gchar *persp_href; + char *persp_href; Inkscape::XML::Node *persp_repr; Persp3D *persp; diff --git a/src/persp3d.h b/src/persp3d.h index bd3777a19..be5680bcb 100644 --- a/src/persp3d.h +++ b/src/persp3d.h @@ -1,5 +1,5 @@ -#ifndef __PERSP3D_H__ -#define __PERSP3D_H__ +#ifndef SEEN_PERSP3D_H +#define SEEN_PERSP3D_H /* * Implementation of 3D perspectives as SPObjects @@ -16,8 +16,9 @@ #define SP_IS_PERSP3D(obj) (dynamic_cast((SPObject*)obj) != NULL) #include -#include #include +#include + #include "transf_mat_3x4.h" #include "document.h" #include "inkscape.h" // for SP_ACTIVE_DOCUMENT @@ -64,11 +65,11 @@ protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; @@ -100,7 +101,7 @@ void persp3d_update_z_orders (Persp3D *persp); inline unsigned int persp3d_num_boxes (Persp3D *persp) { return persp->perspective_impl->boxes.size(); } std::list persp3d_list_of_boxes(Persp3D *persp); -bool persp3d_perspectives_coincide(const Persp3D *lhs, const Persp3D *rhs); +bool persp3d_perspectives_coincide(Persp3D const *lhs, Persp3D const *rhs); void persp3d_absorb(Persp3D *persp1, Persp3D *persp2); Persp3D * persp3d_create_xml_element (SPDocument *document, Persp3DImpl *dup = NULL); @@ -112,7 +113,7 @@ void persp3d_print_debugging_info (Persp3D *persp); void persp3d_print_debugging_info_all(SPDocument *doc); void persp3d_print_all_selected(); -void print_current_persp3d(gchar *func_name, Persp3D *persp); +void print_current_persp3d(char *func_name, Persp3D *persp); #endif /* __PERSP3D_H__ */ diff --git a/src/perspective-line.h b/src/perspective-line.h index 57abaae9c..64f7d03bd 100644 --- a/src/perspective-line.h +++ b/src/perspective-line.h @@ -13,7 +13,6 @@ #define SEEN_PERSPECTIVE_LINE_H #include "line-geometry.h" -#include class SPDesktop; diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h index 734e8a582..66a3e47d4 100644 --- a/src/preferences-skeleton.h +++ b/src/preferences-skeleton.h @@ -1,8 +1,9 @@ #ifndef SEEN_PREFERENCES_SKELETON_H #define SEEN_PREFERENCES_SKELETON_H -#include +#include "inkscape-version.h" +// FIXME why is this here? #ifdef N_ #undef N_ #endif diff --git a/src/preferences.h b/src/preferences.h index d5429815e..d5ae40e56 100644 --- a/src/preferences.h +++ b/src/preferences.h @@ -13,14 +13,16 @@ #ifndef INKSCAPE_PREFSTORE_H #define INKSCAPE_PREFSTORE_H -#include -#include #include #include #include +#include +#include + #include "xml/repr.h" class SPCSSAttr; +typedef unsigned int guint32; namespace Inkscape { diff --git a/src/print.h b/src/print.h index bbf95b833..ab2bcc0a7 100644 --- a/src/print.h +++ b/src/print.h @@ -41,18 +41,18 @@ unsigned int sp_print_stroke(SPPrintContext *ctx, Geom::PathVector const &pathv, Geom::OptRect const &pbox, Geom::OptRect const &dbox, Geom::OptRect const &bbox); unsigned int sp_print_image_R8G8B8A8_N(SPPrintContext *ctx, - guchar *px, unsigned int w, unsigned int h, unsigned int rs, + unsigned char *px, unsigned int w, unsigned int h, unsigned int rs, Geom::Affine const &transform, SPStyle const *style); unsigned int sp_print_text(SPPrintContext *ctx, char const *text, Geom::Point p, SPStyle const *style); -void sp_print_get_param(SPPrintContext *ctx, gchar *name, bool *value); +void sp_print_get_param(SPPrintContext *ctx, char *name, bool *value); /* UI */ void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc); -void sp_print_document_to_file(SPDocument *doc, gchar const *filename); +void sp_print_document_to_file(SPDocument *doc, char const *filename); #endif /* !PRINT_H_INKSCAPE */ diff --git a/src/profile-manager.h b/src/profile-manager.h index be9446c17..54cd4a1da 100644 --- a/src/profile-manager.h +++ b/src/profile-manager.h @@ -9,9 +9,10 @@ #ifndef SEEN_INKSCAPE_PROFILE_MANAGER_H #define SEEN_INKSCAPE_PROFILE_MANAGER_H +#include + #include "document-subset.h" #include "gc-finalized.h" -#include class SPDocument; @@ -26,7 +27,7 @@ public: ProfileManager(SPDocument *document); ~ProfileManager(); - ColorProfile* find(gchar const* name); + ColorProfile* find(char const* name); private: ProfileManager(ProfileManager const &); // no copy diff --git a/src/proj_pt.h b/src/proj_pt.h index 28ec0aca3..1ee4b7f14 100644 --- a/src/proj_pt.h +++ b/src/proj_pt.h @@ -13,7 +13,7 @@ #define SEEN_PROJ_PT_H #include <2geom/point.h> -#include +#include namespace Proj { @@ -25,7 +25,7 @@ public: Pt2 () { pt[0] = 0; pt[1] = 0; pt[2] = 1.0; } // we default to (0 : 0 : 1) Pt2 (double x, double y, double w) { pt[0] = x; pt[1] = y; pt[2] = w; } Pt2 (Geom::Point const &point) { pt[0] = point[Geom::X]; pt[1] = point[Geom::Y]; pt[2] = 1; } - Pt2 (const gchar *coord_str); + Pt2 (const char *coord_str); inline double operator[] (unsigned int index) const { if (index > 2) { return Geom::infinity(); } @@ -81,8 +81,8 @@ public: void normalize(); Geom::Point affine(); inline bool is_finite() { return pt[2] != 0; } // FIXME: Should we allow for some tolerance? - gchar *coord_string(); - inline void print(gchar const *s) const { g_print ("%s(%8.2f : %8.2f : %8.2f)\n", s, pt[0], pt[1], pt[2]); } + char *coord_string(); + inline void print(char const *s) const { printf ("%s(%8.2f : %8.2f : %8.2f)\n", s, pt[0], pt[1], pt[2]); } private: double pt[3]; @@ -93,7 +93,7 @@ class Pt3 { public: Pt3 () { pt[0] = 0; pt[1] = 0; pt[2] = 0; pt[3] = 1.0; } // we default to (0 : 0 : 0 : 1) Pt3 (double x, double y, double z, double w) { pt[0] = x; pt[1] = y; pt[2] = z; pt[3] = w; } - Pt3 (const gchar *coord_str); + Pt3 (const char *coord_str); inline bool operator== (Pt3 &rhs) { normalize(); @@ -146,9 +146,9 @@ public: } void normalize(); inline bool is_finite() { return pt[3] != 0; } // FIXME: Should we allow for some tolerance? - gchar *coord_string(); - inline void print(gchar const *s) const { - g_print ("%s(%8.2f : %8.2f : %8.2f : %8.2f)\n", s, pt[0], pt[1], pt[2], pt[3]); + char *coord_string(); + inline void print(char const *s) const { + printf ("%s(%8.2f : %8.2f : %8.2f : %8.2f)\n", s, pt[0], pt[1], pt[2], pt[3]); } private: diff --git a/src/rdf.h b/src/rdf.h index 3dde1cb48..c3ced1583 100644 --- a/src/rdf.h +++ b/src/rdf.h @@ -11,7 +11,6 @@ #ifndef SEEN_RDF_H #define SEEN_RDF_H -#include #include #include "document.h" @@ -22,18 +21,18 @@ * \brief Holds license name/resource doubles for rdf_license_t entries */ struct rdf_double_t { - gchar const *name; - gchar const *resource; + char const *name; + char const *resource; }; /** * \brief Holds license name and RDF information */ struct rdf_license_t { - gchar const *name; /* localized name of this license */ - gchar const *uri; /* URL for the RDF/Work/license element */ + char const *name; /* localized name of this license */ + char const *uri; /* URL for the RDF/Work/license element */ struct rdf_double_t *details; /* the license details */ -// gchar const *fragment; /* XML contents for the RDF/License tag */ +// char const *fragment; /* XML contents for the RDF/License tag */ }; extern rdf_license_t rdf_licenses []; @@ -69,10 +68,10 @@ enum RDF_Editable { */ struct rdf_work_entity_t { char const *name; /* unique name of this entity for internal reference */ - gchar const *title; /* localized title of this entity for data entry */ - gchar const *tag; /* namespace tag for the RDF/Work element */ + char const *title; /* localized title of this entity for data entry */ + char const *tag; /* namespace tag for the RDF/Work element */ RDFType datatype; /* how to extract/inject the RDF information */ - gchar const *tip; /* tool tip to explain the meaning of the entity */ + char const *tip; /* tool tip to explain the meaning of the entity */ RDF_Format format; /* in what format is this data edited? */ RDF_Editable editable;/* in what way is the data editable? */ }; @@ -83,19 +82,19 @@ extern rdf_work_entity_t rdf_work_entities []; * \brief Generic collection of RDF information for the RDF debug function */ struct rdf_t { - gchar* work_title; - gchar* work_date; - gchar* work_creator; - gchar* work_owner; - gchar* work_publisher; - gchar* work_type; - gchar* work_source; - gchar* work_subject; - gchar* work_description; + char* work_title; + char* work_date; + char* work_creator; + char* work_owner; + char* work_publisher; + char* work_type; + char* work_source; + char* work_subject; + char* work_description; struct rdf_license_t* license; }; -struct rdf_work_entity_t * rdf_find_entity(gchar const * name); +struct rdf_work_entity_t * rdf_find_entity(char const * name); /** * \brief Retrieves a known RDF/Work entity's contents from the document XML by name @@ -114,7 +113,7 @@ const gchar * rdf_get_work_entity(SPDocument const * doc, */ unsigned int rdf_set_work_entity(SPDocument * doc, struct rdf_work_entity_t * entity, - const gchar * text); + const char * text); /** * \brief Attempts to match and retrieve a known RDF/License from the document XML diff --git a/src/removeoverlap.h b/src/removeoverlap.h index 1ba41572a..7109c9513 100644 --- a/src/removeoverlap.h +++ b/src/removeoverlap.h @@ -13,7 +13,7 @@ #ifndef SEEN_REMOVEOVERLAP_H #define SEEN_REMOVEOVERLAP_H -#include +typedef struct _GSList GSList; void removeoverlap(GSList const *items, double xGap, double yGap); diff --git a/src/rubberband.h b/src/rubberband.h index fbebe2b08..a7bc57145 100644 --- a/src/rubberband.h +++ b/src/rubberband.h @@ -10,17 +10,17 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include #include <2geom/point.h> #include <2geom/rect.h> +#include +#include /* fixme: do multidocument safe */ -class CtrlRect; +class CtrlRect; +class SPCurve; +class SPDesktop; struct SPCanvasItem; -class SPCurve; -class SPDesktop; enum { RUBBERBAND_MODE_RECT, diff --git a/src/selcue.h b/src/selcue.h index bcac7315f..d9b16b0f5 100644 --- a/src/selcue.h +++ b/src/selcue.h @@ -1,5 +1,5 @@ -#ifndef __SP_SELCUE_H__ -#define __SP_SELCUE_H__ +#ifndef SEEN_SP_SELCUE_H +#define SEEN_SP_SELCUE_H /* * Helper object for showing selected items @@ -13,8 +13,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include #include -#include #include class SPDesktop; @@ -52,7 +52,7 @@ private: void _updateItemBboxes(); void _updateItemBboxes(Inkscape::Preferences *prefs); - void _updateItemBboxes(gint mode, int prefs_bbox); + void _updateItemBboxes(int mode, int prefs_bbox); void _newItemBboxes(); void _newTextBaselines(); void _boundingBoxPrefsChanged(int prefs_bbox); diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index 01c35d65a..016a54b5c 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -17,21 +17,21 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include <2geom/forward.h> #include "sp-item.h" -#include "2geom/forward.h" -namespace Inkscape { class Selection; } +class SPCSSAttr; +class SPDesktop; +typedef struct _GSList GSList; namespace Inkscape { + +class Selection; + namespace LivePathEffect { class PathParam; } -} -class SPCSSAttr; -class SPDesktop; - -namespace Inkscape { class SelectionHelper { public: static void selectAll(SPDesktop *desktop); @@ -108,21 +108,21 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons void sp_selection_remove_transform (SPDesktop *desktop); void sp_selection_scale_absolute (Inkscape::Selection *selection, double x0, double x1, double y0, double y1); void sp_selection_scale_relative(Inkscape::Selection *selection, Geom::Point const &align, Geom::Scale const &scale); -void sp_selection_rotate_relative (Inkscape::Selection *selection, Geom::Point const ¢er, gdouble angle); +void sp_selection_rotate_relative (Inkscape::Selection *selection, Geom::Point const ¢er, double angle); void sp_selection_skew_relative (Inkscape::Selection *selection, Geom::Point const &align, double dx, double dy); void sp_selection_move_relative (Inkscape::Selection *selection, Geom::Point const &move, bool compensate = true); void sp_selection_move_relative (Inkscape::Selection *selection, double dx, double dy); void sp_selection_rotate_90 (SPDesktop *desktop, bool ccw); -void sp_selection_rotate (Inkscape::Selection *selection, gdouble angle); -void sp_selection_rotate_screen (Inkscape::Selection *selection, gdouble angle); +void sp_selection_rotate (Inkscape::Selection *selection, double angle); +void sp_selection_rotate_screen (Inkscape::Selection *selection, double angle); -void sp_selection_scale (Inkscape::Selection *selection, gdouble grow); -void sp_selection_scale_screen (Inkscape::Selection *selection, gdouble grow_pixels); -void sp_selection_scale_times (Inkscape::Selection *selection, gdouble times); +void sp_selection_scale (Inkscape::Selection *selection, double grow); +void sp_selection_scale_screen (Inkscape::Selection *selection, double grow_pixels); +void sp_selection_scale_times (Inkscape::Selection *selection, double times); -void sp_selection_move (Inkscape::Selection *selection, gdouble dx, gdouble dy); -void sp_selection_move_screen (Inkscape::Selection *selection, gdouble dx, gdouble dy); +void sp_selection_move (Inkscape::Selection *selection, double dx, double dy); +void sp_selection_move_screen (Inkscape::Selection *selection, double dx, double dy); void sp_selection_item_next (SPDesktop *desktop); void sp_selection_item_prev (SPDesktop *desktop); diff --git a/src/selection-describer.h b/src/selection-describer.h index b4174edd8..5514ce4b1 100644 --- a/src/selection-describer.h +++ b/src/selection-describer.h @@ -16,11 +16,10 @@ #include #include "message-context.h" -namespace Inkscape { class Selection; } - namespace Inkscape { class MessageStack; +class Selection; class SelectionDescriber : public sigc::trackable { public: @@ -29,7 +28,7 @@ public: private: void _updateMessageFromSelection(Inkscape::Selection *selection); - void _selectionModified(Inkscape::Selection *selection, guint /*flags*/); + void _selectionModified(Inkscape::Selection *selection, unsigned int /*flags*/); sigc::connection *_selection_changed_connection; sigc::connection *_selection_modified_connection; @@ -43,6 +42,7 @@ private: } #endif + /* Local Variables: mode:c++ diff --git a/src/selection.h b/src/selection.h index ba38bec08..5964b20e8 100644 --- a/src/selection.h +++ b/src/selection.h @@ -30,6 +30,7 @@ class SPDesktop; class SPItem; class SPBox3D; class Persp3D; +typedef struct _GSList GSList; namespace Inkscape { class LayerModel; @@ -256,10 +257,10 @@ public: std::list const box3DList(Persp3D *persp = NULL); /** Returns the number of layers in which there are selected objects. */ - guint numberOfLayers(); + unsigned int numberOfLayers(); /** Returns the number of parents to which the selected objects belong. */ - guint numberOfParents(); + unsigned int numberOfParents(); /** Returns the bounding rectangle of the selection. */ Geom::OptRect bounds(SPItem::BBoxType type) const; @@ -317,11 +318,11 @@ public: * @return the resulting connection * */ - sigc::connection connectModified(sigc::slot const &slot) + sigc::connection connectModified(sigc::slot const &slot) { return _modified_signal.connect(slot); } - sigc::connection connectModifiedFirst(sigc::slot const &slot) + sigc::connection connectModifiedFirst(sigc::slot const &slot) { return _modified_signal.slots().insert(_modified_signal.slots().begin(), slot); } @@ -333,12 +334,12 @@ private: void operator=(Selection const &); /** Issues modification notification signals. */ - static gboolean _emit_modified(Selection *selection); + static int _emit_modified(Selection *selection); /** Schedules an item modification signal to be sent. */ - void _schedule_modified(SPObject *obj, guint flags); + void _schedule_modified(SPObject *obj, unsigned int flags); /** Issues modified selection signal. */ - void _emitModified(guint flags); + void _emitModified(unsigned int flags); /** Issues changed selection signal. */ void _emitChanged(bool persist_selection_context = false); @@ -374,15 +375,15 @@ private: LayerModel *_layers; GC::soft_ptr _desktop; SPObject* _selection_context; - guint _flags; - guint _idle; + unsigned int _flags; + unsigned int _idle; std::map _modified_connections; std::map _release_connections; sigc::connection _context_release_connection; sigc::signal _changed_signal; - sigc::signal _modified_signal; + sigc::signal _modified_signal; }; } diff --git a/src/seltrans-handles.h b/src/seltrans-handles.h index 740729a6e..ebd5758c8 100644 --- a/src/seltrans-handles.h +++ b/src/seltrans-handles.h @@ -14,11 +14,13 @@ #include <2geom/forward.h> #include + #include "enums.h" -namespace Inkscape -{ - class SelTrans; +typedef unsigned int guint32; + +namespace Inkscape { + class SelTrans; } guint32 const DEF_COLOR[] = { 0xff, 0xff6600, 0xff6600, 0xff, 0xff, 0xff }; @@ -34,7 +36,7 @@ enum SPSelTransType { struct SPSelTransTypeInfo { guint32 const *color; - gchar const *tip; + char const *tip; }; // One per handle type in order extern SPSelTransTypeInfo const handtypes[5]; @@ -45,7 +47,7 @@ struct SPSelTransHandle { SPSelTransType type; SPAnchorType anchor; GdkCursorType cursor; - guint control; + unsigned int control; gdouble x, y; }; // These are 4 * each handle type + 1 for center @@ -64,5 +66,3 @@ extern SPSelTransHandle const hands[17]; End: */ // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : - - diff --git a/src/seltrans.h b/src/seltrans.h index 44268ed69..d5db1542d 100644 --- a/src/seltrans.h +++ b/src/seltrans.h @@ -15,32 +15,33 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include #include <2geom/point.h> #include <2geom/affine.h> #include <2geom/rect.h> +#include +#include +#include + #include "knot.h" -#include "selcue.h" #include "message-context.h" -#include -#include "sp-item.h" #include "seltrans-handles.h" +#include "selcue.h" +#include "sp-item.h" + class SPKnot; class SPDesktop; struct SPCanvasItem; struct SPCtrlLine; struct SPSelTransHandle; +typedef struct _GSList GSList; -namespace Inkscape -{ +namespace Inkscape { Geom::Scale calcScaleFactors(Geom::Point const &initial_point, Geom::Point const &new_point, Geom::Point const &origin, bool const skew = false); -namespace XML -{ - class Node; +namespace XML { + class Node; } class SelTrans @@ -56,26 +57,26 @@ public: void increaseState(); void resetState(); void setCenter(Geom::Point const &p); - void grab(Geom::Point const &p, gdouble x, gdouble y, bool show_handles, bool translating); + void grab(Geom::Point const &p, double x, double y, bool show_handles, bool translating); void transform(Geom::Affine const &rel_affine, Geom::Point const &norm); void ungrab(); void stamp(); - void moveTo(Geom::Point const &xy, guint state); - void stretch(SPSelTransHandle const &handle, Geom::Point &pt, guint state); - void scale(Geom::Point &pt, guint state); - void skew(SPSelTransHandle const &handle, Geom::Point &pt, guint state); - void rotate(Geom::Point &pt, guint state); - gboolean request(SPSelTransHandle const &handle, Geom::Point &pt, guint state); - gboolean scaleRequest(Geom::Point &pt, guint state); - gboolean stretchRequest(SPSelTransHandle const &handle, Geom::Point &pt, guint state); - gboolean skewRequest(SPSelTransHandle const &handle, Geom::Point &pt, guint state); - gboolean rotateRequest(Geom::Point &pt, guint state); - gboolean centerRequest(Geom::Point &pt, guint state); - - gboolean handleRequest(SPKnot *knot, Geom::Point *position, guint state, SPSelTransHandle const &handle); - void handleGrab(SPKnot *knot, guint state, SPSelTransHandle const &handle); - void handleClick(SPKnot *knot, guint state, SPSelTransHandle const &handle); - void handleNewEvent(SPKnot *knot, Geom::Point *position, guint state, SPSelTransHandle const &handle); + void moveTo(Geom::Point const &xy, unsigned int state); + void stretch(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state); + void scale(Geom::Point &pt, unsigned int state); + void skew(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state); + void rotate(Geom::Point &pt, unsigned int state); + int request(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state); + int scaleRequest(Geom::Point &pt, unsigned int state); + int stretchRequest(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state); + int skewRequest(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state); + int rotateRequest(Geom::Point &pt, unsigned int state); + int centerRequest(Geom::Point &pt, unsigned int state); + + int handleRequest(SPKnot *knot, Geom::Point *position, unsigned int state, SPSelTransHandle const &handle); + void handleGrab(SPKnot *knot, unsigned int state, SPSelTransHandle const &handle); + void handleClick(SPKnot *knot, unsigned int state, SPSelTransHandle const &handle); + void handleNewEvent(SPKnot *knot, Geom::Point *position, unsigned int state, SPSelTransHandle const &handle); enum Show { @@ -115,7 +116,7 @@ private: void _updateHandles(); void _updateVolatileState(); void _selChanged(Inkscape::Selection *selection); - void _selModified(Inkscape::Selection *selection, guint flags); + void _selModified(Inkscape::Selection *selection, unsigned int flags); void _boundingBoxPrefsChanged(int prefs_bbox); void _makeHandles(); void _showHandles(SPSelTransType type); @@ -156,7 +157,7 @@ private: Geom::OptRect _bbox; Geom::OptRect _visual_bbox; Geom::OptRect _geometric_bbox; - gdouble _strokewidth; + double _strokewidth; Geom::Affine _current_relative_affine; Geom::Affine _absolute_affine; @@ -173,8 +174,8 @@ private: Geom::Point _origin_for_specpoints; Geom::Point _origin_for_bboxpoints; - gdouble _handle_x; - gdouble _handle_y; + double _handle_x; + double _handle_y; boost::optional _center; bool _center_is_set; ///< we've already set _center, no need to reread it from items @@ -184,8 +185,8 @@ private: SPCanvasItem *_norm; SPCanvasItem *_grip; SPCtrlLine *_l[4]; - guint _sel_changed_id; - guint _sel_modified_id; + unsigned int _sel_changed_id; + unsigned int _sel_modified_id; GSList *_stamp_cache; Geom::Point _origin; ///< position of origin for transforms diff --git a/src/shape-editor.h b/src/shape-editor.h index df0dbfa3a..d2611b111 100644 --- a/src/shape-editor.h +++ b/src/shape-editor.h @@ -12,8 +12,6 @@ * */ -#include - namespace Inkscape { namespace XML { class Node; } } class KnotHolder; @@ -37,10 +35,10 @@ public: bool knot_mouseover() const; - static void blockSetItem(bool b) { _blockSetItem = b; } // kludge? + static void blockSetItem(bool b) { _blockSetItem = b; } // kludge - static void event_attr_changed(Inkscape::XML::Node * /*repr*/, gchar const *name, gchar const * /*old_value*/, - gchar const * /*new_value*/, bool /*is_interactive*/, void *data); + static void event_attr_changed(Inkscape::XML::Node * /*repr*/, char const *name, char const * /*old_value*/, + char const * /*new_value*/, bool /*is_interactive*/, void *data); private: bool has_knotholder(); void reset_item (bool keep_knotholder = true); diff --git a/src/shortcuts.h b/src/shortcuts.h index 406768f97..f24a82603 100644 --- a/src/shortcuts.h +++ b/src/shortcuts.h @@ -1,5 +1,5 @@ -#ifndef __SP_SHORTCUTS_H__ -#define __SP_SHORTCUTS_H__ +#ifndef SEEN_SP_SHORTCUTS_H +#define SEEN_SP_SHORTCUTS_H /* * Keyboard shortcut processing @@ -16,9 +16,6 @@ typedef struct _GtkAccelGroup GtkAccelGroup; typedef struct _GtkWidget GtkWidget; -struct _GtkAccelGroup; -struct _GtkWidget; - namespace Inkscape { class Verb; namespace UI { @@ -42,14 +39,14 @@ bool sp_shortcut_invoke (unsigned int shortcut, Inkscape::UI::View::View *view); void sp_shortcut_init(); Inkscape::Verb * sp_shortcut_get_verb (unsigned int shortcut); unsigned int sp_shortcut_get_primary (Inkscape::Verb * verb); // Returns GDK_VoidSymbol if no shortcut is found. -gchar* sp_shortcut_get_label (unsigned int shortcut); // Returns the human readable form of the shortcut (or NULL), for example Shift+Ctrl+F. Free the returned string with g_free. +char* sp_shortcut_get_label (unsigned int shortcut); // Returns the human readable form of the shortcut (or NULL), for example Shift+Ctrl+F. Free the returned string with g_free. void sp_shortcut_set(unsigned int const shortcut, Inkscape::Verb *const verb, bool const is_primary, bool const is_user_set=false); void sp_shortcut_unset(unsigned int const shortcut); void sp_shortcut_add_to_file(char const *action, unsigned int const shortcut); void sp_shortcut_delete_from_file(char const *action, unsigned int const shortcut); void sp_shortcuts_delete_all_from_file(); Glib::ustring sp_shortcut_to_label(unsigned int const shortcut); -unsigned int sp_gdkmodifier_to_shortcut(guint accel_key, Gdk::ModifierType gdkmodifier, guint hardware_keycode); +unsigned int sp_gdkmodifier_to_shortcut(unsigned int accel_key, Gdk::ModifierType gdkmodifier, unsigned int hardware_keycode); void sp_shortcut_get_file_names(std::vector *names, std::vector *paths); bool sp_shortcut_is_user_set(Inkscape::Verb *verb); void sp_shortcut_file_export(); diff --git a/src/snap-candidate.h b/src/snap-candidate.h index 8bb7cb52f..54e33e1a8 100644 --- a/src/snap-candidate.h +++ b/src/snap-candidate.h @@ -14,7 +14,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -//#include "snapped-point.h" +#include <2geom/point.h> +#include <2geom/rect.h> +#include + #include "snap-enums.h" class SPItem; // forward declaration diff --git a/src/snap-preferences.h b/src/snap-preferences.h index a7a2e2926..7bdeea52e 100644 --- a/src/snap-preferences.h +++ b/src/snap-preferences.h @@ -49,13 +49,13 @@ public: void setSnapPerp(bool enabled) {_snap_perp = enabled;} void setSnapTang(bool enabled) {_snap_tang = enabled;} - gdouble getGridTolerance() const {return _grid_tolerance;} - gdouble getGuideTolerance() const {return _guide_tolerance;} - gdouble getObjectTolerance() const {return _object_tolerance;} + double getGridTolerance() const {return _grid_tolerance;} + double getGuideTolerance() const {return _guide_tolerance;} + double getObjectTolerance() const {return _object_tolerance;} - void setGridTolerance(gdouble val) {_grid_tolerance = val;} - void setGuideTolerance(gdouble val) {_guide_tolerance = val;} - void setObjectTolerance(gdouble val) {_object_tolerance = val;} + void setGridTolerance(double val) {_grid_tolerance = val;} + void setGuideTolerance(double val) {_guide_tolerance = val;} + void setObjectTolerance(double val) {_object_tolerance = val;} private: @@ -91,9 +91,9 @@ private: bool _snap_perp; bool _snap_tang; - gdouble _grid_tolerance; - gdouble _guide_tolerance; - gdouble _object_tolerance; + double _grid_tolerance; + double _guide_tolerance; + double _object_tolerance; }; } diff --git a/src/snap.h b/src/snap.h index 67af20063..20b2b246f 100644 --- a/src/snap.h +++ b/src/snap.h @@ -32,6 +32,7 @@ enum SPGuideDragType { // used both here and in desktop-events.cpp class SPGuide; class SPNamedView; +typedef struct _GSList GSList; /** * Class to coordinate snapping operations. diff --git a/src/snapped-curve.h b/src/snapped-curve.h index 6bb8bfeca..0e3a1c747 100644 --- a/src/snapped-curve.h +++ b/src/snapped-curve.h @@ -11,14 +11,14 @@ * Released under GNU GPL, read the file 'COPYING' for more information. */ +#include <2geom/forward.h> #include #include + #include "snapped-point.h" #include "snapped-line.h" -#include <2geom/forward.h> -namespace Inkscape -{ +namespace Inkscape { /// Class describing the result of an attempt to snap to a curve. class SnappedCurve : public SnappedPoint diff --git a/src/snapped-point.h b/src/snapped-point.h index bf440c450..9d77ab162 100644 --- a/src/snapped-point.h +++ b/src/snapped-point.h @@ -12,10 +12,11 @@ * Released under GNU GPL, read the file 'COPYING' for more information. */ -#include -#include #include <2geom/geom.h> -#include +#include +#include + +#include "snap-candidate.h" namespace Inkscape { diff --git a/src/snapper.h b/src/snapper.h index c609239cf..9616d0954 100644 --- a/src/snapper.h +++ b/src/snapper.h @@ -12,15 +12,14 @@ * Released under GNU GPL, read the file 'COPYING' for more information. */ -#include -#include #include -#include // for g_assert +#include +#include +#include "snap-candidate.h" #include "snapped-point.h" #include "snapped-line.h" #include "snapped-curve.h" -#include "snap-candidate.h" struct IntermSnapResults { std::list points; @@ -86,7 +85,7 @@ public: bool hasPoint() const {return _type != DIRECTION && _type != UNDEFINED;} Geom::Point getPoint() const { - g_assert(_type != DIRECTION && _type != UNDEFINED); + assert(_type != DIRECTION && _type != UNDEFINED); return _point; } @@ -95,7 +94,7 @@ public: } Geom::Coord getRadius() const { - g_assert(_type == CIRCLE); + assert(_type == CIRCLE); return _radius; } @@ -121,7 +120,7 @@ public: Geom::Point const p2_on_cl = p1_on_cl + _direction; return Geom::projection(p, Geom::Line(p1_on_cl, p2_on_cl)); } else { - g_warning("Bug: trying to find the projection onto an undefined constraint"); + printf("WARNING: Bug: trying to find the projection onto an undefined constraint"); return Geom::Point(); } } diff --git a/src/sp-anchor.h b/src/sp-anchor.h index 778640032..d17718344 100644 --- a/src/sp-anchor.h +++ b/src/sp-anchor.h @@ -1,5 +1,5 @@ -#ifndef __SP_ANCHOR_H__ -#define __SP_ANCHOR_H__ +#ifndef SEEN_SP_ANCHOR_H +#define SEEN_SP_ANCHOR_H /* * SVG element implementation @@ -23,16 +23,16 @@ public: SPAnchor(); virtual ~SPAnchor(); - gchar *href; + char *href; virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* displayName() const; - virtual gchar* description() const; - virtual gint event(SPEvent *event); + virtual char* description() const; + virtual int event(SPEvent *event); }; #endif diff --git a/src/sp-clippath.h b/src/sp-clippath.h index ba7a90a57..eb8b14174 100644 --- a/src/sp-clippath.h +++ b/src/sp-clippath.h @@ -19,6 +19,9 @@ #define SP_IS_CLIPPATH(obj) (dynamic_cast((SPObject*)obj) != NULL) struct SPClipPathView; +typedef struct _GSList GSList; + +#include #include "sp-object-group.h" #include "uri-references.h" @@ -42,8 +45,8 @@ public: unsigned int clipPathUnits : 1; SPClipPathView *display; - static const gchar *create(GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); - static GType sp_clippath_get_type(void); + static char const *create(GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); + //static GType sp_clippath_get_type(void); Inkscape::DrawingItem *show(Inkscape::Drawing &drawing, unsigned int key); void hide(unsigned int key); @@ -57,12 +60,12 @@ protected: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; @@ -90,10 +93,10 @@ protected: Inkscape::XML::Node * const owner_repr = owner->getRepr(); //XML Tree being used directly here while it shouldn't be... Inkscape::XML::Node * const obj_repr = obj->getRepr(); - gchar const * owner_name = NULL; - gchar const * owner_clippath = NULL; - gchar const * obj_name = NULL; - gchar const * obj_id = NULL; + char const * owner_name = NULL; + char const * owner_clippath = NULL; + char const * obj_name = NULL; + char const * obj_id = NULL; if (owner_repr != NULL) { owner_name = owner_repr->name(); owner_clippath = owner_repr->attribute("clippath"); @@ -102,7 +105,7 @@ protected: obj_name = obj_repr->name(); obj_id = obj_repr->attribute("id"); } - g_warning("Ignoring recursive clippath reference " + printf("WARNING: Ignoring recursive clippath reference " "<%s clippath=\"%s\"> in <%s id=\"%s\">", owner_name, owner_clippath, obj_name, obj_id); diff --git a/src/sp-conn-end-pair.h b/src/sp-conn-end-pair.h index 9f7f5a5d2..93f54378c 100644 --- a/src/sp-conn-end-pair.h +++ b/src/sp-conn-end-pair.h @@ -11,12 +11,10 @@ * * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include -#include -#include -#include +#include +#include + #include "libavoid/connector.h" @@ -33,21 +31,21 @@ class Node; } } -extern void recreateCurve(SPCurve *curve, Avoid::ConnRef *connRef, gdouble curvature); +extern void recreateCurve(SPCurve *curve, Avoid::ConnRef *connRef, double curvature); class SPConnEndPair { public: SPConnEndPair(SPPath *); ~SPConnEndPair(); void release(); - void setAttr(unsigned const key, gchar const *const value); + void setAttr(unsigned const key, char const *const value); void writeRepr(Inkscape::XML::Node *const repr) const; void getAttachedItems(SPItem *[2]) const; void getEndpoints(Geom::Point endPts[]) const; - gdouble getCurvature(void) const; + double getCurvature(void) const; SPConnEnd** getConnEnds(void); bool isOrthogonal(void) const; - friend void recreateCurve(SPCurve *curve, Avoid::ConnRef *connRef, gdouble curvature); + friend void recreateCurve(SPCurve *curve, Avoid::ConnRef *connRef, double curvature); void tellLibavoidNewEndpoints(const bool processTransaction = false); bool reroutePathFromLibavoid(void); void makePathInvalid(void); @@ -64,7 +62,7 @@ private: Avoid::ConnRef *_connRef; int _connType; - gdouble _connCurvature; + double _connCurvature; // A sigc connection for transformed signal. sigc::connection _transformed_connection; diff --git a/src/sp-conn-end.h b/src/sp-conn-end.h index a0b1ba5df..2b89a159d 100644 --- a/src/sp-conn-end.h +++ b/src/sp-conn-end.h @@ -1,8 +1,7 @@ #ifndef SEEN_SP_CONN_END #define SEEN_SP_CONN_END -#include -#include +#include #include #include "sp-use-reference.h" @@ -15,7 +14,7 @@ public: SPConnEnd(SPObject *owner); SPUseReference ref; - gchar *href; + char *href; /** Change of href string (not a modification of the attributes of the referrent). */ sigc::connection _changed_connection; @@ -29,13 +28,13 @@ public: /** A sigc connection for owning group transformed, used to do move compensation. */ sigc::connection _group_connection; - void setAttacherHref(gchar const *, SPPath *); - void setAttacherEndpoint(gchar const *, SPPath *); + void setAttacherHref(char const * value, SPPath * unused); + //void setAttacherEndpoint(char const *, SPPath *); // not defined private: - SPConnEnd(SPConnEnd const &); - SPConnEnd &operator=(SPConnEnd const &); + SPConnEnd(SPConnEnd const &); // no copy + SPConnEnd &operator=(SPConnEnd const &); // no assign }; void sp_conn_end_href_changed(SPObject *old_ref, SPObject *ref, diff --git a/src/sp-cursor.cpp b/src/sp-cursor.cpp index ea73da00c..16659d1cf 100644 --- a/src/sp-cursor.cpp +++ b/src/sp-cursor.cpp @@ -17,13 +17,14 @@ */ #include +#include #include #include #include "color.h" #include "sp-cursor.h" -static void free_cursor_data(guchar *pixels, gpointer /*data*/) { +static void free_cursor_data(unsigned char *pixels, void* /*data*/) { delete [] reinterpret_cast(pixels); } @@ -53,7 +54,7 @@ struct RGBA { } }; -GdkPixbuf *sp_cursor_pixbuf_from_xpm(gchar const *const *xpm, GdkColor const& black, GdkColor const& white, guint32 fill, guint32 stroke) +GdkPixbuf *sp_cursor_pixbuf_from_xpm(char const *const *xpm, GdkColor const& black, GdkColor const& white, guint32 fill, guint32 stroke) { int height = 0; int width = 0; @@ -72,7 +73,7 @@ GdkPixbuf *sp_cursor_pixbuf_from_xpm(gchar const *const *xpm, GdkColor const& bl char const *p = xpm[1 + i]; g_assert(*p >=0); - guchar const ccode = (guchar) *p; + unsigned char const ccode = (guchar) *p; p++; while (isspace(*p)) { @@ -110,7 +111,7 @@ GdkPixbuf *sp_cursor_pixbuf_from_xpm(gchar const *const *xpm, GdkColor const& bl return gdk_pixbuf_new_from_data(reinterpret_cast(pixmap_buffer), GDK_COLORSPACE_RGB, TRUE, 8, width, height, width * sizeof(guint32), free_cursor_data, NULL); } -GdkCursor *sp_cursor_new_from_xpm(gchar const *const *xpm, gint hot_x, gint hot_y) +GdkCursor *sp_cursor_new_from_xpm(char const *const *xpm, int hot_x, int hot_y) { GdkCursor *cursor = 0; GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **)xpm); diff --git a/src/sp-cursor.h b/src/sp-cursor.h index f445127ad..c0b8b46a3 100644 --- a/src/sp-cursor.h +++ b/src/sp-cursor.h @@ -1,10 +1,13 @@ #ifndef SP_CURSOR_H #define SP_CURSOR_H -#include +typedef unsigned int guint32; +typedef struct _GdkPixbuf GdkPixbuf; +typedef struct _GdkCursor GdkCursor; +typedef struct _GdkColor GdkColor; -GdkPixbuf* sp_cursor_pixbuf_from_xpm(gchar const *const *xpm, GdkColor const& black, GdkColor const& white, guint32 fill, guint32 stroke); -GdkCursor *sp_cursor_new_from_xpm(gchar const *const *xpm, gint hot_x, gint hot_y); +GdkPixbuf* sp_cursor_pixbuf_from_xpm(char const *const *xpm, GdkColor const& black, GdkColor const& white, guint32 fill, guint32 stroke); +GdkCursor *sp_cursor_new_from_xpm(char const *const *xpm, int hot_x, int hot_y); #endif diff --git a/src/sp-defs.h b/src/sp-defs.h index 6efdea1f3..c122cb2a9 100644 --- a/src/sp-defs.h +++ b/src/sp-defs.h @@ -27,7 +27,7 @@ protected: virtual void release(); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif // !SEEN_SP_DEFS_H diff --git a/src/sp-desc.h b/src/sp-desc.h index 2bb42b333..40888bee4 100644 --- a/src/sp-desc.h +++ b/src/sp-desc.h @@ -1,5 +1,5 @@ -#ifndef __SP_DESC_H__ -#define __SP_DESC_H__ +#ifndef SEEN_SP_DESC_H +#define SEEN_SP_DESC_H /* * SVG implementation @@ -23,7 +23,7 @@ public: virtual ~SPDesc(); protected: - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif diff --git a/src/sp-ellipse.h b/src/sp-ellipse.h index e575b8761..09768fd6d 100644 --- a/src/sp-ellipse.h +++ b/src/sp-ellipse.h @@ -24,7 +24,7 @@ #define SP_IS_GENERICELLIPSE(obj) (dynamic_cast((obj)) != NULL) enum GenericEllipseType { - SP_GENERIC_ELLIPSE_UNDEFINED, + SP_GENERIC_ELLIPSE_UNDEFINED, // FIXME shouldn't exist SP_GENERIC_ELLIPSE_ARC, SP_GENERIC_ELLIPSE_CIRCLE, SP_GENERIC_ELLIPSE_ELLIPSE @@ -53,10 +53,10 @@ public: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual void set(unsigned int key, gchar const *value); + virtual void set(unsigned int key, char const *value); virtual void update(SPCtx *ctx, unsigned int flags); - virtual Inkscape::XML::Node *write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node *write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char *displayName() const; virtual void set_shape(); @@ -76,7 +76,7 @@ public: Geom::Point getPointAtAngle(double arg) const; bool set_elliptical_path_attribute(Inkscape::XML::Node *repr); - void position_set(gdouble x, gdouble y, gdouble rx, gdouble ry); + void position_set(double x, double y, double rx, double ry); protected: /** diff --git a/src/sp-filter-primitive.h b/src/sp-filter-primitive.h index 040e2f31f..d81adbd10 100644 --- a/src/sp-filter-primitive.h +++ b/src/sp-filter-primitive.h @@ -1,5 +1,5 @@ -#ifndef __SP_FILTER_PRIMITIVE_H__ -#define __SP_FILTER_PRIMITIVE_H__ +#ifndef SEEN_SP_FILTER_PRIMITIVE_H +#define SEEN_SP_FILTER_PRIMITIVE_H /** \file * Document level base class for all SVG filter primitives. @@ -40,11 +40,11 @@ protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); public: virtual void build_renderer(Inkscape::Filters::Filter* filter) = 0; @@ -54,8 +54,8 @@ public: void sp_filter_primitive_renderer_common(SPFilterPrimitive *sp_prim, Inkscape::Filters::FilterPrimitive *nr_prim); int sp_filter_primitive_name_previous_out(SPFilterPrimitive *prim); -int sp_filter_primitive_read_in(SPFilterPrimitive *prim, gchar const *name); -int sp_filter_primitive_read_result(SPFilterPrimitive *prim, gchar const *name); +int sp_filter_primitive_read_in(SPFilterPrimitive *prim, char const *name); +int sp_filter_primitive_read_result(SPFilterPrimitive *prim, char const *name); #endif /* diff --git a/src/sp-filter.h b/src/sp-filter.h index 0d087c5bf..e6318c569 100644 --- a/src/sp-filter.h +++ b/src/sp-filter.h @@ -12,6 +12,7 @@ #ifndef SP_FILTER_H_SEEN #define SP_FILTER_H_SEEN +#include #include #include "number-opt-number.h" @@ -19,8 +20,6 @@ #include "sp-filter-units.h" #include "svg/svg-length.h" -#include - #define SP_FILTER(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_FILTER(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -45,9 +44,9 @@ public: virtual ~SPFilter(); SPFilterUnits filterUnits; - guint filterUnits_set : 1; + unsigned int filterUnits_set : 1; SPFilterUnits primitiveUnits; - guint primitiveUnits_set : 1; + unsigned int primitiveUnits_set : 1; SVGLength x; SVGLength y; SVGLength width; @@ -68,11 +67,11 @@ protected: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; void sp_filter_set_filter_units(SPFilter *filter, SPFilterUnits filterUnits); @@ -88,14 +87,14 @@ void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr int sp_filter_primitive_count(SPFilter *filter); /// Returns a slot number for given image name, or -1 for unknown name. -int sp_filter_get_image_name(SPFilter *filter, gchar const *name); +int sp_filter_get_image_name(SPFilter *filter, char const *name); /// Returns slot number for given image name, even if it's unknown. -int sp_filter_set_image_name(SPFilter *filter, gchar const *name); +int sp_filter_set_image_name(SPFilter *filter, char const *name); /** Finds image name based on it's slot number. Returns 0 for unknown slot * numbers. */ -gchar const *sp_filter_name_for_image(SPFilter const *filter, int const image); +char const *sp_filter_name_for_image(SPFilter const *filter, int const image); /// Returns a result image name that is not in use inside this filter. Glib::ustring sp_filter_get_new_result_name(SPFilter *filter); diff --git a/src/sp-flowdiv.h b/src/sp-flowdiv.h index d00cfc51b..4a3690726 100644 --- a/src/sp-flowdiv.h +++ b/src/sp-flowdiv.h @@ -1,5 +1,5 @@ -#ifndef __SP_ITEM_FLOWDIV_H__ -#define __SP_ITEM_FLOWDIV_H__ +#ifndef SEEN_SP_ITEM_FLOWDIV_H +#define SEEN_SP_ITEM_FLOWDIV_H /* */ @@ -31,11 +31,11 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void update(SPCtx* ctx, guint flags); + virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; class SPFlowtspan : public SPItem { @@ -46,11 +46,11 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void update(SPCtx* ctx, guint flags); + virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; class SPFlowpara : public SPItem { @@ -61,11 +61,11 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void update(SPCtx* ctx, guint flags); + virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; // these do not need any style @@ -78,7 +78,7 @@ protected: virtual void release(); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; class SPFlowregionbreak : public SPObject { @@ -90,7 +90,7 @@ protected: virtual void release(); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif diff --git a/src/sp-flowregion.h b/src/sp-flowregion.h index 721eb0432..024a298b8 100644 --- a/src/sp-flowregion.h +++ b/src/sp-flowregion.h @@ -1,5 +1,5 @@ -#ifndef __SP_ITEM_FLOWREGION_H__ -#define __SP_ITEM_FLOWREGION_H__ +#ifndef SEEN_SP_ITEM_FLOWREGION_H +#define SEEN_SP_ITEM_FLOWREGION_H /* */ @@ -30,7 +30,7 @@ public: virtual void remove_child(Inkscape::XML::Node *child); virtual void update(SPCtx *ctx, unsigned int flags); virtual void modified(guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* displayName() const; }; @@ -47,7 +47,7 @@ public: virtual void remove_child(Inkscape::XML::Node *child); virtual void update(SPCtx *ctx, unsigned int flags); virtual void modified(guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* displayName() const; }; diff --git a/src/sp-flowtext.h b/src/sp-flowtext.h index a5b7db22e..743d55030 100644 --- a/src/sp-flowtext.h +++ b/src/sp-flowtext.h @@ -4,10 +4,10 @@ /* */ -#include "sp-item.h" - #include <2geom/forward.h> + #include "libnrtype/Layout-TNG.h" +#include "sp-item.h" #define SP_FLOWTEXT(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_FLOWTEXT(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -63,18 +63,18 @@ public: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual Geom::Affine set_transform(Geom::Affine const& xform); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType type) const; virtual void print(SPPrintContext *ctx); virtual const char* displayName() const; - virtual gchar* description() const; + virtual char* description() const; virtual Inkscape::DrawingItem* show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags); virtual void hide(unsigned int key); virtual void snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const; diff --git a/src/sp-font-face.h b/src/sp-font-face.h index 531dd5843..669b93197 100644 --- a/src/sp-font-face.h +++ b/src/sp-font-face.h @@ -1,9 +1,5 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifndef __SP_FONTFACE_H__ -#define __SP_FONTFACE_H__ +#ifndef SEEN_SP_FONTFACE_H +#define SEEN_SP_FONTFACE_H #include @@ -117,11 +113,11 @@ protected: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif //#ifndef __SP_FONTFACE_H__ diff --git a/src/sp-font.h b/src/sp-font.h index 6e6f4eec2..6e26a02b2 100644 --- a/src/sp-font.h +++ b/src/sp-font.h @@ -1,7 +1,3 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - #ifndef SP_FONT_H_SEEN #define SP_FONT_H_SEEN @@ -40,11 +36,11 @@ protected: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif //#ifndef SP_FONT_H_SEEN diff --git a/src/sp-glyph-kerning.h b/src/sp-glyph-kerning.h index 52413f8a7..c96c0b6e4 100644 --- a/src/sp-glyph-kerning.h +++ b/src/sp-glyph-kerning.h @@ -25,11 +25,11 @@ class GlyphNames { public: - GlyphNames(const gchar* value); + GlyphNames(char const* value); ~GlyphNames(); - bool contains(const char* name); + bool contains(char const* name); private: - gchar* names; + char* names; }; class SPGlyphKerning : public SPObject { @@ -47,9 +47,9 @@ public: protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; class SPHkern : public SPGlyphKerning { diff --git a/src/sp-glyph.h b/src/sp-glyph.h index e92357c94..297ac930e 100644 --- a/src/sp-glyph.h +++ b/src/sp-glyph.h @@ -52,9 +52,9 @@ public: protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; diff --git a/src/sp-gradient-vector.h b/src/sp-gradient-vector.h index 8e860c169..e57820b56 100644 --- a/src/sp-gradient-vector.h +++ b/src/sp-gradient-vector.h @@ -1,7 +1,6 @@ #ifndef SEEN_SP_GRADIENT_VECTOR_H #define SEEN_SP_GRADIENT_VECTOR_H -#include #include #include "color.h" @@ -14,9 +13,9 @@ * copying from SPStop to SPGradientStop. */ struct SPGradientStop { - gdouble offset; + double offset; SPColor color; - gfloat opacity; + float opacity; }; /** diff --git a/src/sp-gradient.h b/src/sp-gradient.h index a14dcc09e..fbb48df62 100644 --- a/src/sp-gradient.h +++ b/src/sp-gradient.h @@ -14,29 +14,18 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include #include <2geom/affine.h> +#include +#include +#include +#include + #include "sp-paint-server.h" #include "sp-gradient-spread.h" #include "sp-gradient-units.h" #include "sp-gradient-vector.h" #include "sp-mesh-array.h" -#include -#include - - - -//#include -//#include -//#include <2geom/forward.h> -//#include "sp-gradient-spread.h" -//#include "sp-gradient-units.h" -// -//class SPGradient; -//struct SPMeshGradient; - class SPGradientReference; class SPStop; diff --git a/src/sp-guide.h b/src/sp-guide.h index 9f5d7ba03..cd67df222 100644 --- a/src/sp-guide.h +++ b/src/sp-guide.h @@ -13,9 +13,9 @@ * */ +#include <2geom/point.h> #include -#include <2geom/point.h> #include "sp-object.h" #include "sp-guide-attachment.h" diff --git a/src/sp-image.h b/src/sp-image.h index 17262d74f..9fa33b5de 100644 --- a/src/sp-image.h +++ b/src/sp-image.h @@ -14,7 +14,6 @@ #ifndef SEEN_INKSCAPE_SP_IMAGE_H #define SEEN_INKSCAPE_SP_IMAGE_H -#include #include #include "svg/svg-length.h" #include "display/curve.h" @@ -43,24 +42,24 @@ public: SPCurve *curve; // This curve is at the image's boundary for snapping - gchar *href; + char *href; #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gchar *color_profile; + char *color_profile; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) Inkscape::Pixbuf *pixbuf; virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); - virtual void update(SPCtx *ctx, guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual void modified(unsigned int flags); virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType type) const; virtual void print(SPPrintContext *ctx); virtual const char* displayName() const; - virtual gchar* description() const; + virtual char* description() const; virtual Inkscape::DrawingItem* show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags); virtual void snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const; virtual Geom::Affine set_transform(Geom::Affine const &transform); diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 2004a72b8..4e15ee5df 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -1,5 +1,5 @@ -#ifndef __SP_ITEM_GROUP_H__ -#define __SP_ITEM_GROUP_H__ +#ifndef SEEN_SP_ITEM_GROUP_H +#define SEEN_SP_ITEM_GROUP_H /* * SVG implementation @@ -25,6 +25,7 @@ namespace Inkscape { class Drawing; class DrawingItem; +typedef struct _GSList GSList; } // namespace Inkscape @@ -54,7 +55,7 @@ public: void translateChildItems(Geom::Translate const &tr); void scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p); - gint getItemCount() const; + int getItemCount() const; virtual void _showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags); private: @@ -69,15 +70,15 @@ public: virtual void order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref); virtual void update(SPCtx *ctx, unsigned int flags); - virtual void modified(guint flags); - virtual void set(unsigned int key, gchar const* value); + virtual void modified(unsigned int flags); + virtual void set(unsigned int key, char const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType bboxtype) const; virtual void print(SPPrintContext *ctx); virtual const char* displayName() const; - virtual gchar *description() const; + virtual char *description() const; virtual Inkscape::DrawingItem *show (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags); virtual void hide (unsigned int key); @@ -90,7 +91,7 @@ void sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done = tr GSList *sp_item_group_item_list (SPGroup *group); -SPObject *sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const gchar *name); +SPObject *sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const char *name); #endif diff --git a/src/sp-item-notify-moveto.cpp b/src/sp-item-notify-moveto.cpp index 0f5117289..90fd676ee 100644 --- a/src/sp-item-notify-moveto.cpp +++ b/src/sp-item-notify-moveto.cpp @@ -9,6 +9,7 @@ #include using std::vector; +#define return_if_fail(test) if (!(test)) { printf("WARNING: assertion '%s' failed", #test); return; } /** * Called by sp_guide_moveto to indicate that the guide line corresponding to g has been moved, and @@ -19,15 +20,15 @@ using std::vector; void sp_item_notify_moveto(SPItem &item, SPGuide const &mv_g, int const snappoint_ix, double const position, bool const commit) { - g_return_if_fail(SP_IS_ITEM(&item)); - g_return_if_fail( unsigned(snappoint_ix) < 8 ); + return_if_fail(SP_IS_ITEM(&item)); + return_if_fail( unsigned(snappoint_ix) < 8 ); Geom::Point const dir( mv_g.normal_to_line ); double const dir_lensq(dot(dir, dir)); - g_return_if_fail( dir_lensq != 0 ); + return_if_fail( dir_lensq != 0 ); std::vector snappoints; item.getSnappoints(snappoints, NULL); - g_return_if_fail( snappoint_ix < int(snappoints.size()) ); + return_if_fail( snappoint_ix < int(snappoints.size()) ); double const pos0 = dot(dir, snappoints[snappoint_ix].getPoint()); /// \todo effic: skip if mv_g is already satisfied. diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index 086da56ff..86beee907 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -18,6 +18,8 @@ #include "sp-item.h" #include "sp-item-transform.h" +#include + void sp_item_rotate_rel(SPItem *item, Geom::Rotate const &rotation) { Geom::Point center = item->getCenter(); diff --git a/src/sp-item-transform.h b/src/sp-item-transform.h index 230d5a3dd..d563c9768 100644 --- a/src/sp-item-transform.h +++ b/src/sp-item-transform.h @@ -1,9 +1,8 @@ #ifndef SEEN_SP_ITEM_TRANSFORM_H #define SEEN_SP_ITEM_TRANSFORM_H -#include - #include <2geom/forward.h> + class SPItem; void sp_item_rotate_rel(SPItem *item, Geom::Rotate const &rotation); @@ -11,9 +10,9 @@ void sp_item_scale_rel (SPItem *item, Geom::Scale const &scale); void sp_item_skew_rel (SPItem *item, double skewX, double skewY); void sp_item_move_rel(SPItem *item, Geom::Translate const &tr); -Geom::Affine get_scale_transform_for_uniform_stroke (Geom::Rect const &bbox_visual, gdouble stroke_x, gdouble stroke_y, bool transform_stroke, bool preserve, gdouble x0, gdouble y0, gdouble x1, gdouble y1); -Geom::Affine get_scale_transform_for_variable_stroke (Geom::Rect const &bbox_visual, Geom::Rect const &bbox_geom, bool transform_stroke, bool preserve, gdouble x0, gdouble y0, gdouble x1, gdouble y1); -Geom::Rect get_visual_bbox (Geom::OptRect const &initial_geom_bbox, Geom::Affine const &abs_affine, gdouble const initial_strokewidth, bool const transform_stroke); +Geom::Affine get_scale_transform_for_uniform_stroke (Geom::Rect const &bbox_visual, double stroke_x, double stroke_y, bool transform_stroke, bool preserve, double x0, double y0, double x1, double y1); +Geom::Affine get_scale_transform_for_variable_stroke (Geom::Rect const &bbox_visual, Geom::Rect const &bbox_geom, bool transform_stroke, bool preserve, double x0, double y0, double x1, double y1); +Geom::Rect get_visual_bbox (Geom::OptRect const &initial_geom_bbox, Geom::Affine const &abs_affine, double const initial_strokewidth, bool const transform_stroke); #endif // SEEN_SP_ITEM_TRANSFORM_H diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 428f9555e..c79508199 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -360,7 +360,7 @@ void SPItem::lowerToBottom() { * \param target - the SPItem to move into or after * \param intoafter - move to after the target (false), move inside (sublayer) of the target (true) */ -void SPItem::moveTo(SPItem *target, gboolean intoafter) { +void SPItem::moveTo(SPItem *target, bool intoafter) { Inkscape::XML::Node *target_ref = ( target ? target->getRepr() : NULL ); Inkscape::XML::Node *our_ref = getRepr(); diff --git a/src/sp-item.h b/src/sp-item.h index 15784d041..197d33263 100644 --- a/src/sp-item.h +++ b/src/sp-item.h @@ -18,10 +18,11 @@ * * Released under GNU GPL, read the file 'COPYING' for more information */ -#include + #include <2geom/forward.h> #include <2geom/affine.h> #include <2geom/rect.h> +#include #include "sp-object.h" #include "snap-preferences.h" @@ -72,7 +73,7 @@ enum PatternTransform { class SPEvent { public: unsigned int type; - gpointer data; + void* data; }; /// SPItemView @@ -179,7 +180,7 @@ public: void lowerOne(); void raiseToTop(); void lowerToBottom(); - void moveTo(SPItem *target, gboolean intoafter); + void moveTo(SPItem *target, bool intoafter); sigc::connection connectTransformed(sigc::slot slot) { return _transformed_signal.connect(slot); @@ -198,7 +199,7 @@ public: unsigned int pos_in_parent() const; - gchar *detailedDescription() const; + char *detailedDescription() const; bool isFiltered() const; @@ -209,14 +210,14 @@ public: void getSnappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs=0) const; void adjust_pattern(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false, PatternTransform = TRANSFORM_BOTH); void adjust_gradient(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false); - void adjust_stroke(gdouble ex); - void adjust_stroke_width_recursive(gdouble ex); + void adjust_stroke(double ex); + void adjust_stroke_width_recursive(double ex); void freeze_stroke_width_recursive(bool freeze); void adjust_paint_recursive(Geom::Affine advertized_transform, Geom::Affine t_ancestors, bool is_pattern); void adjust_livepatheffect(Geom::Affine const &postmul, bool set = false); void doWriteTransform(Inkscape::XML::Node *repr, Geom::Affine const &transform, Geom::Affine const *adv = NULL, bool compensate = true); void set_item_transform(Geom::Affine const &transform_matrix); - gint emitEvent (SPEvent &event); + int emitEvent (SPEvent &event); Inkscape::DrawingItem *get_arenaitem(unsigned int key); Geom::Affine i2doc_affine() const; @@ -240,14 +241,14 @@ private: public: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); - virtual void update(SPCtx *ctx, guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType type) const; virtual void print(SPPrintContext *ctx); virtual const char* displayName() const; - virtual gchar* description() const; + virtual char* description() const; virtual Inkscape::DrawingItem* show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags); virtual void hide(unsigned int key); virtual void snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const; @@ -255,7 +256,7 @@ public: virtual void convert_to_guides() const; - virtual gint event(SPEvent *event); + virtual int event(SPEvent *event); }; diff --git a/src/sp-line.h b/src/sp-line.h index c1932d3ee..d6a075659 100644 --- a/src/sp-line.h +++ b/src/sp-line.h @@ -31,13 +31,13 @@ public: SVGLength y2; virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); - virtual void set(unsigned int key, gchar const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); + virtual void set(unsigned int key, char const* value); virtual const char* displayName() const; virtual Geom::Affine set_transform(Geom::Affine const &transform); virtual void convert_to_guides() const; - virtual void update(SPCtx* ctx, guint flags); + virtual void update(SPCtx* ctx, unsigned int flags); virtual void set_shape(); }; diff --git a/src/sp-linear-gradient.cpp b/src/sp-linear-gradient.cpp index 959e8d733..6e9f5e6dd 100644 --- a/src/sp-linear-gradient.cpp +++ b/src/sp-linear-gradient.cpp @@ -1,3 +1,5 @@ +#include + #include "sp-linear-gradient.h" #include "attributes.h" diff --git a/src/sp-linear-gradient.h b/src/sp-linear-gradient.h index ac3fdb04a..a152e7fe2 100644 --- a/src/sp-linear-gradient.h +++ b/src/sp-linear-gradient.h @@ -26,8 +26,8 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual void set(unsigned key, gchar const *value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned key, char const *value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif /* !SP_LINEAR_GRADIENT_H */ diff --git a/src/sp-lpe-item.h b/src/sp-lpe-item.h index 3e858748d..fbac467fd 100644 --- a/src/sp-lpe-item.h +++ b/src/sp-lpe-item.h @@ -14,14 +14,12 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "sp-item.h" - #include +#include "sp-item.h" #define SP_LPE_ITEM(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_LPE_ITEM(obj) (dynamic_cast((SPObject*)obj) != NULL) -class CLPEItem; class LivePathEffectObject; class SPCurve; class SPDesktop; @@ -58,7 +56,7 @@ public: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); + virtual void set(unsigned int key, char const* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); @@ -66,7 +64,7 @@ public: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual void update_patheffect(bool write); @@ -90,7 +88,7 @@ public: bool setCurrentPathEffect(Inkscape::LivePathEffect::LPEObjectReference* lperef); void removeCurrentPathEffect(bool keep_paths); void removeAllPathEffects(bool keep_paths); - void addPathEffect(gchar *value, bool reset); + void addPathEffect(char *value, bool reset); void addPathEffect(LivePathEffectObject * new_lpeobj); bool forkPathEffectsIfNecessary(unsigned int nr_of_allowed_users = 1); diff --git a/src/sp-mask.h b/src/sp-mask.h index e08d1e81e..e991fedb6 100644 --- a/src/sp-mask.h +++ b/src/sp-mask.h @@ -55,12 +55,12 @@ protected: virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; class SPMaskReference : public Inkscape::URIReference { @@ -86,10 +86,10 @@ protected: Inkscape::XML::Node * const owner_repr = owner->getRepr(); //XML Tree being used directly here while it shouldn't be... Inkscape::XML::Node * const obj_repr = obj->getRepr(); - gchar const * owner_name = NULL; - gchar const * owner_mask = NULL; - gchar const * obj_name = NULL; - gchar const * obj_id = NULL; + char const * owner_name = NULL; + char const * owner_mask = NULL; + char const * obj_name = NULL; + char const * obj_id = NULL; if (owner_repr != NULL) { owner_name = owner_repr->name(); owner_mask = owner_repr->attribute("mask"); @@ -98,7 +98,7 @@ protected: obj_name = obj_repr->name(); obj_id = obj_repr->attribute("id"); } - g_warning("Ignoring recursive mask reference " + printf("WARNING: Ignoring recursive mask reference " "<%s mask=\"%s\"> in <%s id=\"%s\">", owner_name, owner_mask, obj_name, obj_id); @@ -108,6 +108,6 @@ protected: } }; -const gchar *sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); +const char *sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); #endif // SEEN_SP_MASK_H diff --git a/src/sp-mesh-array.h b/src/sp-mesh-array.h index b10974e7e..330f6d87b 100644 --- a/src/sp-mesh-array.h +++ b/src/sp-mesh-array.h @@ -39,8 +39,6 @@ an array which simplifies things like inserting new rows or columns. */ -#include -#include #include <2geom/point.h> #include "color.h" @@ -89,13 +87,13 @@ public: opacity = 0.0; } NodeType node_type; - guint node_edge; + unsigned int node_edge; bool set; Geom::Point p; - guint draggable; // index of on-screen node - gchar path_type; + unsigned int draggable; // index of on-screen node + char path_type; SPColor color; - gdouble opacity; + double opacity; }; @@ -110,21 +108,21 @@ private: public: SPMeshPatchI( std::vector > *n, int r, int c ); - Geom::Point getPoint( guint side, guint point ); - std::vector< Geom::Point > getPointsForSide( guint i ); - void setPoint( guint side, guint point, Geom::Point p, bool set = true ); - gchar getPathType( guint i ); - void setPathType( guint, gchar t ); - Geom::Point getTensorPoint( guint i ); - void setTensorPoint( guint i, Geom::Point p ); + Geom::Point getPoint( unsigned int side, unsigned int point ); + std::vector< Geom::Point > getPointsForSide( unsigned int i ); + void setPoint( unsigned int side, unsigned int point, Geom::Point p, bool set = true ); + char getPathType( unsigned int i ); + void setPathType( unsigned int, char t ); + Geom::Point getTensorPoint( unsigned int i ); + void setTensorPoint( unsigned int i, Geom::Point p ); bool tensorIsSet(); - bool tensorIsSet( guint i ); - Geom::Point coonsTensorPoint( guint i ); + bool tensorIsSet( unsigned int i ); + Geom::Point coonsTensorPoint( unsigned int i ); void updateNodes(); - SPColor getColor( guint i ); - void setColor( guint i, SPColor c ); - gdouble getOpacity( guint i ); - void setOpacity( guint i, gdouble o ); + SPColor getColor( unsigned int i ); + void setColor( unsigned int i, SPColor c ); + double getOpacity( unsigned int i ); + void setOpacity( unsigned int i, double o ); }; class SPMeshGradient; @@ -160,26 +158,26 @@ public: void print(); // Get size of patch - guint patch_rows(); - guint patch_columns(); + unsigned int patch_rows(); + unsigned int patch_columns(); - SPMeshNode * node( guint i, guint j ) { return nodes[i][j]; } + SPMeshNode * node( unsigned int i, unsigned int j ) { return nodes[i][j]; } // Operations on corners - bool adjacent_corners( guint i, guint j, SPMeshNode* n[4] ); - guint side_toggle( std::vector< guint > ); - guint side_arc( std::vector< guint > ); - guint tensor_toggle( std::vector< guint > ); - guint color_smooth( std::vector< guint > ); - guint color_pick( std::vector< guint >, SPItem* ); + bool adjacent_corners( unsigned int i, unsigned int j, SPMeshNode* n[4] ); + unsigned int side_toggle( std::vector< unsigned int > ); + unsigned int side_arc( std::vector< unsigned int > ); + unsigned int tensor_toggle( std::vector< unsigned int > ); + unsigned int color_smooth( std::vector< unsigned int > ); + unsigned int color_pick( std::vector< unsigned int >, SPItem* ); // Update other nodes in response to a node move. - void update_handles( guint corner, std::vector< guint > selected_corners, Geom::Point old_p, MeshNodeOperation op ); + void update_handles( unsigned int corner, std::vector< unsigned int > selected_corners, Geom::Point old_p, MeshNodeOperation op ); - void split_row( guint i, guint n ); - void split_column( guint j, guint n ); - void split_row( guint i, double coord ); - void split_column( guint j, double coord ); + void split_row( unsigned int i, unsigned int n ); + void split_column( unsigned int j, unsigned int n ); + void split_row( unsigned int i, double coord ); + void split_column( unsigned int j, double coord ); }; #endif /* !SEEN_SP_MESH_ARRAY_H */ diff --git a/src/sp-mesh-gradient.h b/src/sp-mesh-gradient.h index 0b570c4dd..4df753f62 100644 --- a/src/sp-mesh-gradient.h +++ b/src/sp-mesh-gradient.h @@ -24,8 +24,8 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual void set(unsigned key, gchar const *value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned key, char const *value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif /* !SP_MESH_GRADIENT_H */ diff --git a/src/sp-mesh-patch.h b/src/sp-mesh-patch.h index ddade6503..e57ad1699 100644 --- a/src/sp-mesh-patch.h +++ b/src/sp-mesh-patch.h @@ -12,9 +12,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include -//#include "svg/svg-length.h" #include "sp-object.h" #define SP_MESHPATCH(obj) (dynamic_cast((SPObject*)obj)) @@ -34,8 +32,8 @@ public: protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void set(unsigned int key, const gchar* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual void set(unsigned int key, const char* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif /* !SEEN_SP_MESHPATCH_H */ diff --git a/src/sp-mesh-row.h b/src/sp-mesh-row.h index e39bdc631..793b5a645 100644 --- a/src/sp-mesh-row.h +++ b/src/sp-mesh-row.h @@ -11,7 +11,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include "sp-object.h" #define SP_MESHROW(obj) (dynamic_cast((SPObject*)obj)) @@ -28,8 +27,8 @@ public: protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void set(unsigned int key, const gchar* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual void set(unsigned int key, const char* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; #endif /* !SEEN_SP_MESHROW_H */ diff --git a/src/sp-metadata.h b/src/sp-metadata.h index 2a9d58e11..a89020390 100644 --- a/src/sp-metadata.h +++ b/src/sp-metadata.h @@ -1,5 +1,5 @@ -#ifndef __SP_METADATA_H__ -#define __SP_METADATA_H__ +#ifndef SEEN_SP_METADATA_H +#define SEEN_SP_METADATA_H /* * SVG implementation @@ -14,7 +14,6 @@ #include "sp-object.h" - /* Metadata base class */ #define SP_METADATA(obj) (dynamic_cast((SPObject*)obj)) @@ -29,9 +28,9 @@ protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); + virtual void set(unsigned int key, const char* value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); }; SPMetadata * sp_document_metadata (SPDocument *document); diff --git a/src/sp-missing-glyph.h b/src/sp-missing-glyph.h index a72ed0e99..06bc92231 100644 --- a/src/sp-missing-glyph.h +++ b/src/sp-missing-glyph.h @@ -1,9 +1,5 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifndef __SP_MISSING_GLYPH_H__ -#define __SP_MISSING_GLYPH_H__ +#ifndef SEEN_SP_MISSING_GLYPH_H +#define SEEN_SP_MISSING_GLYPH_H /* * SVG element implementation @@ -31,8 +27,8 @@ public: protected: virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); virtual void release(); - virtual void set(unsigned int key, const gchar* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); private: double horiz_adv_x; diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index a01ba891e..1d9fa06a3 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -935,7 +935,7 @@ void SPNamedView::hide(SPDesktop const *desktop) views = g_slist_remove(views, desktop); } -void SPNamedView::activateGuides(gpointer desktop, gboolean active) +void SPNamedView::activateGuides(void* desktop, bool active) { g_assert(desktop != NULL); g_assert(g_slist_find(views, desktop)); diff --git a/src/sp-namedview.h b/src/sp-namedview.h index 05cbcc398..37310dc76 100644 --- a/src/sp-namedview.h +++ b/src/sp-namedview.h @@ -29,6 +29,9 @@ namespace Inkscape { } } +typedef unsigned int guint32; +typedef guint32 GQuark; + enum { SP_BORDER_LAYER_BOTTOM, SP_BORDER_LAYER_TOP @@ -48,11 +51,11 @@ public: double zoom; double cx; double cy; - gint window_width; - gint window_height; - gint window_x; - gint window_y; - gint window_maximized; + int window_width; + int window_height; + int window_x; + int window_y; + int window_maximized; SnapManager snap_manager; GSList * grids; @@ -74,13 +77,13 @@ public: GSList *guides; GSList *views; - gint viewcount; + int viewcount; void show(SPDesktop *desktop); void hide(SPDesktop const *desktop); - void activateGuides(gpointer desktop, gboolean active); - gchar const *getName() const; - guint getViewCount(); + void activateGuides(void* desktop, bool active); + char const *getName() const; + unsigned int getViewCount(); GSList const *getViewList() const; Inkscape::Util::Unit const * getDefaultUnit() const; @@ -100,17 +103,17 @@ private: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); + virtual void set(unsigned int key, char const* value); virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); virtual void remove_child(Inkscape::XML::Node* child); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; -SPNamedView *sp_document_namedview(SPDocument *document, gchar const *name); -SPNamedView const *sp_document_namedview(SPDocument const *document, gchar const *name); +SPNamedView *sp_document_namedview(SPDocument *document, char const *name); +SPNamedView const *sp_document_namedview(SPDocument const *document, char const *name); void sp_namedview_window_from_document(SPDesktop *desktop); void sp_namedview_document_from_window(SPDesktop *desktop); diff --git a/src/sp-object-group.h b/src/sp-object-group.h index 4df346228..dcaa8a1d0 100644 --- a/src/sp-object-group.h +++ b/src/sp-object-group.h @@ -30,7 +30,7 @@ protected: virtual void order_changed(Inkscape::XML::Node* child, Inkscape::XML::Node* old, Inkscape::XML::Node* new_repr); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif // SEEN_SP_OBJECTGROUP_H diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 65228ec0a..fcff43aa5 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -1406,12 +1406,12 @@ bool SPObject::setDesc(gchar const *desc, bool verbatim) return setTitleOrDesc(desc, "svg:desc", verbatim); } -gchar * SPObject::getTitleOrDesc(gchar const *svg_tagname) const +char * SPObject::getTitleOrDesc(gchar const *svg_tagname) const { - gchar *result = 0; + char *result = NULL; SPObject *elem = findFirstChild(svg_tagname); if ( elem ) { - result = g_string_free(elem->textualContent(), FALSE); + result = elem->textualContent(); } return result; } @@ -1493,7 +1493,7 @@ SPObject * SPObject::findFirstChild(gchar const *tagname) const return NULL; } -GString * SPObject::textualContent() const +char* SPObject::textualContent() const { GString* text = g_string_new(""); @@ -1502,15 +1502,15 @@ GString * SPObject::textualContent() const Inkscape::XML::NodeType child_type = child->repr->type(); if (child_type == Inkscape::XML::ELEMENT_NODE) { - GString * new_text = child->textualContent(); - g_string_append(text, new_text->str); - g_string_free(new_text, TRUE); + char* new_string = child->textualContent(); + g_string_append(text, new_string); + g_free(new_string); } else if (child_type == Inkscape::XML::TEXT_NODE) { g_string_append(text, child->repr->content()); } } - return text; + return g_string_free(text, FALSE); } /* diff --git a/src/sp-object.h b/src/sp-object.h index 21926ad90..423f6ba37 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -153,7 +153,7 @@ SPObject *sp_object_unref(SPObject *object, SPObject *owner=NULL); * \pre object points to real object * @todo need to move this to be a member of SPObject. */ -SPObject *sp_object_href(SPObject *object, gpointer owner); +SPObject *sp_object_href(SPObject *object, void* owner); /** * Decrease weak refcount. @@ -165,7 +165,7 @@ SPObject *sp_object_href(SPObject *object, gpointer owner); * \pre object points to real object and hrefcount>0 * @todo need to move this to be a member of SPObject. */ -SPObject *sp_object_hunref(SPObject *object, gpointer owner); +SPObject *sp_object_hunref(SPObject *object, void* owner); /** * SPObject is an abstract base class of all of the document nodes at the @@ -795,7 +795,7 @@ private: * content except the tags). * Must not be used on anything except elements. */ - GString * textualContent() const; + char * textualContent() const; /* Real handlers of repr signals */ @@ -803,17 +803,17 @@ public: /** * Callback for attr_changed node event. */ - static void repr_attr_changed(Inkscape::XML::Node *repr, char const *key, char const *oldval, char const *newval, bool is_interactive, gpointer data); + static void repr_attr_changed(Inkscape::XML::Node *repr, char const *key, char const *oldval, char const *newval, bool is_interactive, void* data); /** * Callback for content_changed node event. */ - static void repr_content_changed(Inkscape::XML::Node *repr, char const *oldcontent, char const *newcontent, gpointer data); + static void repr_content_changed(Inkscape::XML::Node *repr, char const *oldcontent, char const *newcontent, void* data); /** * Callback for child_added node event. */ - static void repr_child_added(Inkscape::XML::Node *repr, Inkscape::XML::Node *child, Inkscape::XML::Node *ref, gpointer data); + static void repr_child_added(Inkscape::XML::Node *repr, Inkscape::XML::Node *child, Inkscape::XML::Node *ref, void* data); /** * Callback for remove_child node event. @@ -825,7 +825,7 @@ public: * * \todo fixme: */ - static void repr_order_changed(Inkscape::XML::Node *repr, Inkscape::XML::Node *child, Inkscape::XML::Node *old, Inkscape::XML::Node *newer, gpointer data); + static void repr_order_changed(Inkscape::XML::Node *repr, Inkscape::XML::Node *child, Inkscape::XML::Node *old, Inkscape::XML::Node *newer, void* data); friend class SPObjectImpl; diff --git a/src/sp-offset.h b/src/sp-offset.h index 259a69b78..eb3fe227c 100644 --- a/src/sp-offset.h +++ b/src/sp-offset.h @@ -11,11 +11,11 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "sp-shape.h" - -#include +#include #include +#include "sp-shape.h" + #define SP_OFFSET(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_OFFSET(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -54,7 +54,7 @@ public: SPOffset(); virtual ~SPOffset(); - void *originalPath; ///< will be a livarot Path, just don't declare it here to please the gcc linker + void *originalPath; ///< will be a livarot Path, just don't declare it here to please the gcc linker FIXME what? char *original; ///< SVG description of the source path float rad; ///< offset radius @@ -65,7 +65,7 @@ public: bool sourceDirty; bool isUpdating; - gchar *sourceHref; + char *sourceHref; SPUseReference *sourceRef; Inkscape::XML::Node *sourceRepr; ///< the repr associated with that id SPObject *sourceObject; @@ -76,14 +76,14 @@ public: sigc::connection _transformed_connection; virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual void set(unsigned int key, gchar const* value); - virtual void update(SPCtx *ctx, guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned flags); virtual void release(); virtual void snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const; virtual const char* displayName() const; - virtual gchar* description() const; + virtual char* description() const; virtual void set_shape(); }; diff --git a/src/sp-paint-server-reference.h b/src/sp-paint-server-reference.h index e08694c2f..bbd9c25fa 100644 --- a/src/sp-paint-server-reference.h +++ b/src/sp-paint-server-reference.h @@ -15,9 +15,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "sp-object.h" #include "uri-references.h" +class SPDocument; +class SPObject; class SPPaintServer; class SPPaintServerReference : public Inkscape::URIReference { diff --git a/src/sp-paint-server.h b/src/sp-paint-server.h index c1c8d651e..beac72af5 100644 --- a/src/sp-paint-server.h +++ b/src/sp-paint-server.h @@ -15,10 +15,12 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include <2geom/rect.h> #include "sp-object.h" +typedef struct _cairo cairo_t; +typedef struct _cairo_pattern cairo_pattern_t; + #define SP_PAINT_SERVER(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_PAINT_SERVER(obj) (dynamic_cast((SPObject*)obj) != NULL) diff --git a/src/sp-path.h b/src/sp-path.h index 5f8a91d98..572fd648d 100644 --- a/src/sp-path.h +++ b/src/sp-path.h @@ -32,7 +32,7 @@ public: SPPath(); virtual ~SPPath(); - gint nodesInPath() const; + int nodesInPath() const; // still in lowercase because the names should be clearer on whether curve, curve->copy or curve-ref is returned. void set_original_curve (SPCurve *curve, unsigned int owner, bool write); @@ -49,13 +49,13 @@ public: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void update(SPCtx* ctx, guint flags); + virtual void update(SPCtx* ctx, unsigned int flags); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* displayName() const; - virtual gchar* description() const; + virtual char* description() const; virtual Geom::Affine set_transform(Geom::Affine const &transform); virtual void convert_to_guides() const; diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 8f7dbbadd..f021101e2 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -18,6 +18,7 @@ class SPPatternReference; class SPItem; +typedef struct _GSList GSList; #include "svg/svg-length.h" #include "sp-paint-server.h" @@ -33,17 +34,17 @@ public: virtual ~SPPattern(); /* Reference (href) */ - gchar *href; + char *href; SPPatternReference *ref; /* patternUnits and patternContentUnits attribute */ - guint patternUnits : 1; - guint patternUnits_set : 1; - guint patternContentUnits : 1; - guint patternContentUnits_set : 1; + unsigned int patternUnits : 1; + unsigned int patternUnits_set : 1; + unsigned int patternContentUnits : 1; + unsigned int patternContentUnits_set : 1; /* patternTransform attribute */ Geom::Affine patternTransform; - guint patternTransform_set : 1; + unsigned int patternTransform_set : 1; /* Tile rectangle */ SVGLength x; SVGLength y; @@ -83,22 +84,22 @@ enum { SP_PATTERN_UNITS_OBJECTBOUNDINGBOX }; -guint pattern_users (SPPattern *pattern); +unsigned int pattern_users (SPPattern *pattern); SPPattern *pattern_chain (SPPattern *pattern); -SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); +SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const char *property); void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); -const gchar *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); +const char *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); SPPattern *pattern_getroot (SPPattern *pat); -guint pattern_patternUnits (SPPattern const *pat); -guint pattern_patternContentUnits (SPPattern const *pat); +unsigned int pattern_patternUnits (SPPattern const *pat); +unsigned int pattern_patternContentUnits (SPPattern const *pat); Geom::Affine const &pattern_patternTransform(SPPattern const *pat); -gdouble pattern_x (SPPattern const *pat); -gdouble pattern_y (SPPattern const *pat); -gdouble pattern_width (SPPattern const *pat); -gdouble pattern_height (SPPattern const *pat); +double pattern_x (SPPattern const *pat); +double pattern_y (SPPattern const *pat); +double pattern_width (SPPattern const *pat); +double pattern_height (SPPattern const *pat); Geom::OptRect pattern_viewBox (SPPattern const *pat); #endif // SEEN_SP_PATTERN_H diff --git a/src/sp-polygon.h b/src/sp-polygon.h index 41ab245bd..438fdf794 100644 --- a/src/sp-polygon.h +++ b/src/sp-polygon.h @@ -1,5 +1,5 @@ -#ifndef __SP_POLYGON_H__ -#define __SP_POLYGON_H__ +#ifndef SEEN_SP_POLYGON_H +#define SEEN_SP_POLYGON_H /* * SVG implementation @@ -15,7 +15,6 @@ #include "sp-shape.h" - #define SP_POLYGON(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_POLYGON(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -25,12 +24,12 @@ public: virtual ~SPPolygon(); virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); - virtual void set(unsigned int key, gchar const* value); - virtual gchar* description() const; + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); + virtual void set(unsigned int key, char const* value); + virtual char* description() const; }; // made 'public' so that SPCurve can set it as friend: -void sp_polygon_set(SPObject *object, unsigned int key, const gchar *value); +void sp_polygon_set(SPObject *object, unsigned int key, char const*value); #endif diff --git a/src/sp-polyline.h b/src/sp-polyline.h index e24ea95c7..1ca102a9e 100644 --- a/src/sp-polyline.h +++ b/src/sp-polyline.h @@ -12,10 +12,10 @@ public: virtual ~SPPolyLine(); virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void set(unsigned int key, gchar const* value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); - virtual gchar* description() const; + virtual char* description() const; }; #endif // SEEN_SP_POLYLINE_H diff --git a/src/sp-radial-gradient.cpp b/src/sp-radial-gradient.cpp index 7c481fead..2c2b17b7d 100644 --- a/src/sp-radial-gradient.cpp +++ b/src/sp-radial-gradient.cpp @@ -1,3 +1,5 @@ +#include + #include "sp-radial-gradient.h" #include "attributes.h" diff --git a/src/sp-radial-gradient.h b/src/sp-radial-gradient.h index 42ff109aa..f753623b7 100644 --- a/src/sp-radial-gradient.h +++ b/src/sp-radial-gradient.h @@ -5,10 +5,12 @@ * SPRadialGradient: SVG implementtion. */ -#include #include "sp-gradient.h" #include "svg/svg-length.h" +typedef struct _cairo cairo_t; +typedef struct _cairo_pattern cairo_pattern_t; + #define SP_RADIALGRADIENT(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_RADIALGRADIENT(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -28,8 +30,8 @@ public: protected: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); - virtual void set(unsigned key, gchar const *value); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned key, char const *value); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); }; #endif /* !SP_RADIAL_GRADIENT_H */ diff --git a/src/sp-rect.h b/src/sp-rect.h index aa3f88e42..757229724 100644 --- a/src/sp-rect.h +++ b/src/sp-rect.h @@ -14,10 +14,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "svg/svg-length.h" -#include "sp-shape.h" #include <2geom/forward.h> +#include "svg/svg-length.h" +#include "sp-shape.h" #define SP_RECT(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_RECT(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -27,34 +27,34 @@ public: SPRect(); virtual ~SPRect(); - void setPosition(gdouble x, gdouble y, gdouble width, gdouble height); + void setPosition(double x, double y, double width, double height); /* If SET if FALSE, VALUE is just ignored */ - void setRx(bool set, gdouble value); - void setRy(bool set, gdouble value); + void setRx(bool set, double value); + void setRy(bool set, double value); - gdouble getVisibleRx() const; - void setVisibleRx(gdouble rx); + double getVisibleRx() const; + void setVisibleRx(double rx); - gdouble getVisibleRy() const; - void setVisibleRy(gdouble ry); + double getVisibleRy() const; + void setVisibleRy(double ry); Geom::Rect getRect() const; - gdouble getVisibleWidth() const; - void setVisibleWidth(gdouble rx); + double getVisibleWidth() const; + void setVisibleWidth(double rx); - gdouble getVisibleHeight() const; - void setVisibleHeight(gdouble ry); + double getVisibleHeight() const; + void setVisibleHeight(double ry); void compensateRxRy(Geom::Affine xform); virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void set(unsigned key, gchar const *value); + virtual void set(unsigned key, char const *value); virtual void update(SPCtx* ctx, unsigned int flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual const char* displayName() const; virtual void set_shape(); @@ -71,7 +71,7 @@ public: SVGLength ry; private: - static gdouble vectorStretch(Geom::Point p0, Geom::Point p1, Geom::Affine xform); + static double vectorStretch(Geom::Point p0, Geom::Point p1, Geom::Affine xform); }; #endif // SEEN_SP_RECT_H diff --git a/src/sp-root.h b/src/sp-root.h index a25e8030c..2776ae887 100644 --- a/src/sp-root.h +++ b/src/sp-root.h @@ -40,7 +40,7 @@ public: SVGLength width; SVGLength height; - gchar *onload; + char *onload; /** * Primary \ element where we put new defs (patterns, gradients etc.). @@ -52,9 +52,9 @@ public: virtual void build(SPDocument *document, Inkscape::XML::Node *repr); virtual void release(); - virtual void set(unsigned int key, gchar const* value); - virtual void update(SPCtx *ctx, guint flags); - virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags); + virtual void set(unsigned int key, char const* value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags); virtual void modified(unsigned int flags); virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); diff --git a/src/sp-script.h b/src/sp-script.h index 36072a0ca..b71f86720 100644 --- a/src/sp-script.h +++ b/src/sp-script.h @@ -1,5 +1,5 @@ -#ifndef __SP_SCRIPT_H__ -#define __SP_SCRIPT_H__ +#ifndef SEEN_SP_SCRIPT_H +#define SEEN_SP_SCRIPT_H /* * SVG