From a2377f88de39790b2324a846f9e619d78d399afc Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 10 Nov 2014 22:35:13 +0100 Subject: adding blending support (bzr r13682.1.1) --- src/live_effects/effect.cpp | 2 +- src/live_effects/lpe-mirror_symmetry.cpp | 102 ++++++++++++++++++++++++++----- src/live_effects/lpe-mirror_symmetry.h | 5 +- 3 files changed, 93 insertions(+), 16 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index fbdc78f8a..9433dec7f 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -106,7 +106,6 @@ const Util::EnumData LPETypeData[] = { {EXTRUDE, N_("Extrude"), "extrude"}, {LATTICE, N_("Lattice Deformation"), "lattice"}, {LINE_SEGMENT, N_("Line Segment"), "line_segment"}, - {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, {OFFSET, N_("Offset"), "offset"}, {PARALLEL, N_("Parallel"), "parallel"}, {PATH_LENGTH, N_("Path length"), "path_length"}, @@ -153,6 +152,7 @@ const Util::EnumData LPETypeData[] = { {PERSPECTIVE_ENVELOPE, N_("Perspective/Envelope"), "perspective-envelope"}, {FILLET_CHAMFER, N_("Fillet/Chamfer"), "fillet-chamfer"}, {INTERPOLATE_POINTS, N_("Interpolate points"), "interpolate_points"}, + {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, }; const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 0bb67a4a2..8877ffd9c 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -21,6 +21,7 @@ #include #include <2geom/path.h> +#include <2geom/path-intersection.h> #include <2geom/transforms.h> #include <2geom/affine.h> @@ -30,11 +31,13 @@ namespace LivePathEffect { LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L100,100") + joinPaths(_("Join the paths"), _("Join the resulting paths"), "joinPaths", &wr, this, true), + reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0") { show_orig_path = true; registerParameter( dynamic_cast(&discard_orig_path) ); + registerParameter( dynamic_cast(&joinPaths) ); registerParameter( dynamic_cast(&reflection_line) ); } @@ -55,15 +58,10 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) { using namespace Geom; - // fixme: what happens if the bbox is empty? - // fixme: this is probably wrong - Geom::Affine t = lpeitem->i2dt_affine(); - Geom::Rect bbox = *lpeitem->desktopVisualBounds(); + original_bbox(lpeitem); - Point A(bbox.left(), bbox.bottom()); - Point B(bbox.left(), bbox.top()); - A *= t; - B *= t; + Point A(boundingbox_X.max(), boundingbox_Y.max()); + Point B(boundingbox_X.max(), boundingbox_Y.min()); Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); reflection_line.set_new_value(rline, true); } @@ -77,11 +75,12 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) } std::vector path_out; - if (!discard_orig_path) { + std::vector mline(reflection_line.get_pathvector()); + + if (!discard_orig_path && !joinPaths) { path_out = path_in; } - std::vector mline(reflection_line.get_pathvector()); Geom::Point A(mline.front().initialPoint()); Geom::Point B(mline.back().finalPoint()); @@ -97,9 +96,84 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) m = m * sca; m = m * m2.inverse(); m = m * m1; - - for (int i = 0; i < static_cast(path_in.size()); ++i) { - path_out.push_back(path_in[i] * m); + + if(joinPaths){ + for (Geom::PathVector::const_iterator path_it = path_in.begin(); + path_it != path_in.end(); ++path_it) { + if (path_it->empty()){ + continue; + } + Geom::Path original; + Geom::Path mlineExpanded; + Geom::Line lineSeparation; + lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); + mlineExpanded.start( lineSeparation.pointAt(-100000)); + mlineExpanded.appendNew( lineSeparation.pointAt(100000)); + Geom::Crossings cs = crossings(*path_it, mlineExpanded); + double timeStart = 0.0; + //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line + double pos = (lineSeparation.pointAt(100000)[Geom::X]-lineSeparation.pointAt(-100000)[Geom::X])*(path_it->initialPoint()[Geom::Y]-lineSeparation.pointAt(-100000)[Geom::Y]) - (lineSeparation.pointAt(100000)[Geom::Y]-lineSeparation.pointAt(-100000)[Geom::Y])*(path_it->initialPoint()[Geom::X]-lineSeparation.pointAt(-100000)[Geom::X]); + int position = (pos < 0) ? -1 : (pos > 0); + unsigned int counter = 0; + + for(unsigned int i = 0; i < cs.size(); i++) { + double timeEnd = cs[i].ta; + Geom::Path portion = path_it->portion(timeStart, timeEnd); + if(position == -1 && i==0){ + counter++; + } + if(counter%2!=0){ + if (!discard_orig_path){ + if(i==0){ + original = portion; + } else { + original.append(portion, (Geom::Path::Stitching)1); + } + original.append(portion.reverse() * m, (Geom::Path::Stitching)1); + if (!path_it->closed()){ + path_out.push_back(original); + original.clear(); + } + } else { + path_out.push_back(portion * m); + } + } + timeStart = timeEnd; + counter++; + } + if(cs.size()!=0 && ((cs.size()%2 == 0 && position == -1)||(cs.size()%2 != 0 && position == 1))){ + Geom::Path portion = path_it->portion(timeStart, nearest_point(path_it->finalPoint(), *path_it)); + if (!discard_orig_path){ + if(!path_it->closed()){ + original = portion; + } else { + original.append(portion, (Geom::Path::Stitching)1); + } + original.append(portion.reverse() * m, (Geom::Path::Stitching)1); + if (!path_it->closed()){ + path_out.push_back(original); + original.clear(); + } + } else { + path_out.push_back(portion * m); + } + + } + if (path_it->closed() && !original.empty() && !discard_orig_path) { + original.close(); + path_out.push_back(original); + } + if(cs.size() == 0){ + path_out.push_back(*path_it); + path_out.push_back(*path_it * m); + } + } + } + + if (!joinPaths) { + for (int i = 0; i < static_cast(path_in.size()); ++i) { + path_out.push_back(path_in[i] * m); + } } return path_out; diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index a4a2b86c0..2ea8161d4 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -20,10 +20,12 @@ #include "live_effects/parameter/point.h" #include "live_effects/parameter/path.h" +#include "live_effects/lpegroupbbox.h" + namespace Inkscape { namespace LivePathEffect { -class LPEMirrorSymmetry : public Effect { +class LPEMirrorSymmetry : public Effect, GroupBBoxEffect{ public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); virtual ~LPEMirrorSymmetry(); @@ -36,6 +38,7 @@ public: private: BoolParam discard_orig_path; + BoolParam joinPaths; PathParam reflection_line; LPEMirrorSymmetry(const LPEMirrorSymmetry&); -- cgit v1.2.3 From fc813d4f7b4adb8e681abdd429bc0d9c19312ea5 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 11 Nov 2014 00:45:06 +0100 Subject: added join mode (bzr r13682.1.3) --- src/live_effects/lpe-mirror_symmetry.cpp | 47 ++++++++++---------------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 8877ffd9c..67f4e3f16 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -97,7 +97,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) m = m * m2.inverse(); m = m * m1; - if(joinPaths){ + if(joinPaths && !discard_orig_path){ for (Geom::PathVector::const_iterator path_it = path_in.begin(); path_it != path_in.end(); ++path_it) { if (path_it->empty()){ @@ -123,47 +123,30 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) counter++; } if(counter%2!=0){ - if (!discard_orig_path){ - if(i==0){ - original = portion; - } else { - original.append(portion, (Geom::Path::Stitching)1); - } - original.append(portion.reverse() * m, (Geom::Path::Stitching)1); - if (!path_it->closed()){ - path_out.push_back(original); - original.clear(); - } - } else { - path_out.push_back(portion * m); + original = portion; + original.append(portion.reverse() * m, (Geom::Path::Stitching)1); + if(i!=0){ + original.close(); } + path_out.push_back(original); + original.clear(); } timeStart = timeEnd; counter++; } if(cs.size()!=0 && ((cs.size()%2 == 0 && position == -1)||(cs.size()%2 != 0 && position == 1))){ Geom::Path portion = path_it->portion(timeStart, nearest_point(path_it->finalPoint(), *path_it)); - if (!discard_orig_path){ - if(!path_it->closed()){ - original = portion; - } else { - original.append(portion, (Geom::Path::Stitching)1); - } - original.append(portion.reverse() * m, (Geom::Path::Stitching)1); - if (!path_it->closed()){ - path_out.push_back(original); - original.clear(); - } + original = portion.reverse(); + original.append(portion * m, (Geom::Path::Stitching)1); + if (!path_it->closed()){ + path_out.push_back(original); } else { - path_out.push_back(portion * m); + path_out[0].append(original.reverse(), (Geom::Path::Stitching)1); + path_out[0].close(); } - - } - if (path_it->closed() && !original.empty() && !discard_orig_path) { - original.close(); - path_out.push_back(original); + original.clear(); } - if(cs.size() == 0){ + if(cs.size() == 0 && position == -1){ path_out.push_back(*path_it); path_out.push_back(*path_it * m); } -- cgit v1.2.3 From ffad504bec2b31828f6fe10edfab5ec8ef6437fb Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 11 Nov 2014 19:59:49 +0100 Subject: Code cleanup (bzr r13682.1.4) --- src/live_effects/lpe-mirror_symmetry.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 67f4e3f16..fa588fe96 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -107,12 +107,14 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) Geom::Path mlineExpanded; Geom::Line lineSeparation; lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); - mlineExpanded.start( lineSeparation.pointAt(-100000)); - mlineExpanded.appendNew( lineSeparation.pointAt(100000)); + Geom::Point lineStart = lineSeparation.pointAt(-100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(100000.0); + mlineExpanded.start( lineStart); + mlineExpanded.appendNew( lineEnd); Geom::Crossings cs = crossings(*path_it, mlineExpanded); double timeStart = 0.0; //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line - double pos = (lineSeparation.pointAt(100000)[Geom::X]-lineSeparation.pointAt(-100000)[Geom::X])*(path_it->initialPoint()[Geom::Y]-lineSeparation.pointAt(-100000)[Geom::Y]) - (lineSeparation.pointAt(100000)[Geom::Y]-lineSeparation.pointAt(-100000)[Geom::Y])*(path_it->initialPoint()[Geom::X]-lineSeparation.pointAt(-100000)[Geom::X]); + double pos = (lineEnd[Geom::X]-lineStart[Geom::X])*(path_it->initialPoint()[Geom::Y]-lineStart[Geom::Y]) - (lineEnd[Geom::Y]-lineStart[Geom::Y])*(path_it->initialPoint()[Geom::X]-lineStart[Geom::X]); int position = (pos < 0) ? -1 : (pos > 0); unsigned int counter = 0; -- cgit v1.2.3 From 165025d5aa43570d3905d312632199efddd45c9a Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 13 Nov 2014 18:04:22 +0100 Subject: Fixed bugs pointed by su_v. Added inverse option to merges (bzr r13682.1.6) --- src/live_effects/lpe-mirror_symmetry.cpp | 125 +++++++++++++++++++------------ src/live_effects/lpe-mirror_symmetry.h | 6 +- src/selection-chemistry.cpp | 2 +- 3 files changed, 85 insertions(+), 48 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index fa588fe96..c21c65a3e 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -19,7 +19,7 @@ #include #include #include - +#include "helper/geom.h" #include <2geom/path.h> #include <2geom/path-intersection.h> #include <2geom/transforms.h> @@ -31,13 +31,15 @@ namespace LivePathEffect { LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - joinPaths(_("Join the paths"), _("Join the resulting paths"), "joinPaths", &wr, this, true), + fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), + reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0") { show_orig_path = true; registerParameter( dynamic_cast(&discard_orig_path) ); - registerParameter( dynamic_cast(&joinPaths) ); + registerParameter( dynamic_cast(&fusionPaths) ); + registerParameter( dynamic_cast(&reverseFusion) ); registerParameter( dynamic_cast(&reflection_line) ); } @@ -49,6 +51,8 @@ void LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) { SPLPEItem * item = const_cast(lpeitem); + std::vector mline(reflection_line.get_pathvector()); + lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); item->apply_to_clippath(item); item->apply_to_mask(item); } @@ -66,6 +70,14 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) reflection_line.set_new_value(rline, true); } +int +LPEMirrorSymmetry::pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X) +{ + //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line + double pos = (B[Geom::X]-A[Geom::X])*(X[Geom::Y]-A[Geom::Y]) - (B[Geom::Y]-A[Geom::Y])*(X[Geom::X]-A[Geom::X]); + return (pos < 0) ? -1 : (pos > 0); +} + std::vector LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) { @@ -73,16 +85,20 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) if ( reflection_line.get_pathvector().empty() ) { return path_in; } - + Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); std::vector path_out; - std::vector mline(reflection_line.get_pathvector()); + Geom::Path mlineExpanded; + Geom::Point lineStart = lineSeparation.pointAt(-100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(100000.0); + mlineExpanded.start( lineStart); + mlineExpanded.appendNew( lineEnd); - if (!discard_orig_path && !joinPaths) { + if (!discard_orig_path && !fusionPaths) { path_out = path_in; } - Geom::Point A(mline.front().initialPoint()); - Geom::Point B(mline.back().finalPoint()); + Geom::Point A(lineStart); + Geom::Point B(lineEnd); Geom::Affine m1(1.0, 0.0, 0.0, 1.0, A[0], A[1]); double hyp = Geom::distance(A, B); @@ -97,65 +113,82 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) m = m * m2.inverse(); m = m * m1; - if(joinPaths && !discard_orig_path){ - for (Geom::PathVector::const_iterator path_it = path_in.begin(); - path_it != path_in.end(); ++path_it) { + if(fusionPaths && !discard_orig_path){ + for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); + path_it != original_pathv.end(); ++path_it) { if (path_it->empty()){ continue; } - Geom::Path original; - Geom::Path mlineExpanded; - Geom::Line lineSeparation; - lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); - mlineExpanded.start( lineStart); - mlineExpanded.appendNew( lineEnd); - Geom::Crossings cs = crossings(*path_it, mlineExpanded); double timeStart = 0.0; - //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line - double pos = (lineEnd[Geom::X]-lineStart[Geom::X])*(path_it->initialPoint()[Geom::Y]-lineStart[Geom::Y]) - (lineEnd[Geom::Y]-lineStart[Geom::Y])*(path_it->initialPoint()[Geom::X]-lineStart[Geom::X]); - int position = (pos < 0) ? -1 : (pos > 0); - unsigned int counter = 0; - + int position = 0; + bool end_open = false; + if (path_it->closed()) { + const Geom::Curve &closingline = path_it->back_closed(); + if (!are_near(closingline.initialPoint(), closingline.finalPoint())) { + end_open = true; + } + } + Geom::Path original = (Geom::Path)(*path_it); + if(end_open && path_it->closed()){ + original.close(false); + original.appendNew( original.initialPoint() ); + original.close(true); + } + Geom::Crossings cs = crossings(original, mlineExpanded); for(unsigned int i = 0; i < cs.size(); i++) { double timeEnd = cs[i].ta; - Geom::Path portion = path_it->portion(timeStart, timeEnd); - if(position == -1 && i==0){ - counter++; + Geom::Path portion = original.portion(timeStart, timeEnd); + Geom::Point middle = portion.pointAt((double)portion.size()/2.0); + position = pointSideOfLine(lineStart, lineEnd, middle); + if(reverseFusion){ + position *= -1; } - if(counter%2!=0){ - original = portion; - original.append(portion.reverse() * m, (Geom::Path::Stitching)1); + if(position == -1){ + Geom::Path mirror = portion.reverse() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); if(i!=0){ - original.close(); + portion.setFinal(portion.initialPoint()); + portion.close(); } - path_out.push_back(original); - original.clear(); + path_out.push_back(portion); } + portion.clear(); timeStart = timeEnd; - counter++; } - if(cs.size()!=0 && ((cs.size()%2 == 0 && position == -1)||(cs.size()%2 != 0 && position == 1))){ - Geom::Path portion = path_it->portion(timeStart, nearest_point(path_it->finalPoint(), *path_it)); - original = portion.reverse(); - original.append(portion * m, (Geom::Path::Stitching)1); - if (!path_it->closed()){ - path_out.push_back(original); + position = pointSideOfLine(lineStart, lineEnd, original.finalPoint()); + if(reverseFusion){ + position *= -1; + } + if(cs.size()!=0 && position == -1){ + Geom::Path portion = original.portion(timeStart, original.size()); + portion = portion.reverse(); + Geom::Path mirror = portion.reverse() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); + portion = portion.reverse(); + if (!original.closed()){ + path_out.push_back(portion); } else { - path_out[0].append(original.reverse(), (Geom::Path::Stitching)1); + if(cs.size() >1 ){ + portion.setFinal(path_out[0].initialPoint()); + portion.setInitial(path_out[0].finalPoint()); + path_out[0].append(portion); + } else { + path_out.push_back(portion); + } path_out[0].close(); } - original.clear(); + portion.clear(); } if(cs.size() == 0 && position == -1){ - path_out.push_back(*path_it); - path_out.push_back(*path_it * m); + path_out.push_back(original); + path_out.push_back(original * m); } } } - if (!joinPaths) { + if (!fusionPaths || discard_orig_path) { for (int i = 0; i < static_cast(path_in.size()); ++i) { path_out.push_back(path_in[i] * m); } diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 2ea8161d4..c925f220f 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -34,12 +34,16 @@ public: virtual void doBeforeEffect (SPLPEItem const* lpeitem); + virtual int pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X); + virtual std::vector doEffect_path (std::vector const & path_in); private: BoolParam discard_orig_path; - BoolParam joinPaths; + BoolParam fusionPaths; + BoolParam reverseFusion; PathParam reflection_line; + Geom::Line lineSeparation; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index d0ef0afea..d00e8d702 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -4186,7 +4186,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for ( SPObject *child = obj->firstChild() ; child; child = child->getNext() ) { // Collect all clipped paths and masks within a single group Inkscape::XML::Node *copy = SP_OBJECT(child)->getRepr()->duplicate(xml_doc); - if(copy->attribute("inkscape:original-d")) + if(copy->attribute("inkscape:original-d") && copy->attribute("inkscape:path-effect")) { copy->setAttribute("d", copy->attribute("inkscape:original-d")); } -- cgit v1.2.3 From 2a940cb92f484630523c7d859d7048f3df6e4f6e Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 13 Nov 2014 20:32:40 +0100 Subject: Six a bug on subpaths pointed by suv (bzr r13682.1.8) --- src/live_effects/lpe-mirror_symmetry.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index c21c65a3e..6fb2bfc73 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -119,6 +119,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) if (path_it->empty()){ continue; } + std::vector temp_path; double timeStart = 0.0; int position = 0; bool end_open = false; @@ -151,7 +152,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) portion.setFinal(portion.initialPoint()); portion.close(); } - path_out.push_back(portion); + temp_path.push_back(portion); } portion.clear(); timeStart = timeEnd; @@ -168,23 +169,25 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) portion.append(mirror); portion = portion.reverse(); if (!original.closed()){ - path_out.push_back(portion); + temp_path.push_back(portion); } else { if(cs.size() >1 ){ - portion.setFinal(path_out[0].initialPoint()); - portion.setInitial(path_out[0].finalPoint()); - path_out[0].append(portion); + portion.setFinal(temp_path[0].initialPoint()); + portion.setInitial(temp_path[0].finalPoint()); + temp_path[0].append(portion); } else { - path_out.push_back(portion); + temp_path.push_back(portion); } - path_out[0].close(); + temp_path[0].close(); } portion.clear(); } if(cs.size() == 0 && position == -1){ - path_out.push_back(original); - path_out.push_back(original * m); + temp_path.push_back(original); + temp_path.push_back(original * m); } + path_out.insert(path_out.end(), temp_path.begin(), temp_path.end()); + temp_path.clear(); } } -- cgit v1.2.3 From a5333b6abc807176319c96d66cb7111e70f4896f Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 15 Nov 2014 18:29:41 +0100 Subject: ignore this commit (bzr r13682.1.9) --- src/knotholder.cpp | 6 ++ src/live_effects/effect.cpp | 8 ++- src/live_effects/effect.h | 2 + src/live_effects/lpe-bendpath.cpp | 4 +- src/live_effects/lpe-mirror_symmetry.cpp | 103 ++++++++++++++++++++++++++++++- src/live_effects/lpe-mirror_symmetry.h | 15 +++++ src/live_effects/lpegroupbbox.cpp | 12 ++++ src/ui/dialog/livepatheffect-editor.cpp | 35 ++++++++--- 8 files changed, 171 insertions(+), 14 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index f46daa09e..28f6f5748 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -69,6 +69,12 @@ KnotHolder::KnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderReleasedFun } KnotHolder::~KnotHolder() { + if(SP_IS_LPE_ITEM(item)){ + Inkscape::LivePathEffect::Effect *effect = SP_LPE_ITEM(item)->getCurrentLPE(); + if(effect){ + effect->removeHandles(); + } + } sp_object_unref(item); for (std::list::iterator i = entity.begin(); i != entity.end(); ++i) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index eb649db62..9997b1662 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -613,7 +613,7 @@ Effect::registerParameter(Parameter * param) void Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { using namespace Inkscape::LivePathEffect; - + knot_holder = knotholder; // add handles provided by the effect itself addKnotHolderEntities(knotholder, desktop, item); @@ -623,6 +623,12 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { } } +void +Effect::removeHandles(){ + if(knot_holder){ + knot_holder = NULL; + } +} /** * Return a vector of PathVectors which contain all canvas indicators for this effect. * This is the function called by external code to get all canvas indicators (effect and its parameters) diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index 7da76b267..5d715c7f2 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -101,6 +101,7 @@ public: // (but spiro lpe still needs it!) virtual LPEPathFlashType pathFlashType() const { return DEFAULT; } void addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); + void removeHandles(); std::vector getCanvasIndicators(SPLPEItem const* lpeitem); inline bool providesOwnFlashPaths() const { @@ -160,6 +161,7 @@ protected: SPLPEItem * sp_lpe_item; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. Glib::ustring const * defaultUnit; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. + KnotHolder *knot_holder; double current_zoom; std::vector selectedNodesPoints; SPCurve * sp_curve; diff --git a/src/live_effects/lpe-bendpath.cpp b/src/live_effects/lpe-bendpath.cpp index 33171b184..968e12518 100644 --- a/src/live_effects/lpe-bendpath.cpp +++ b/src/live_effects/lpe-bendpath.cpp @@ -137,7 +137,9 @@ LPEBendPath::resetDefaults(SPItem const* item) Geom::Point start(boundingbox_X.min(), (boundingbox_Y.max()+boundingbox_Y.min())/2); Geom::Point end(boundingbox_X.max(), (boundingbox_Y.max()+boundingbox_Y.min())/2); - + std::cout << start << "start\n"; + std::cout << start << "end\n"; + std::cout << boundingbox_X.min() << "boundingbox_X.min\n"; if ( Geom::are_near(start,end) ) { end += Geom::Point(1.,0.); } diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 6fb2bfc73..dc9a94b1b 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -24,23 +24,43 @@ #include <2geom/path-intersection.h> #include <2geom/transforms.h> #include <2geom/affine.h> +#include "knot-holder-entity.h" +#include "knotholder.h" namespace Inkscape { namespace LivePathEffect { +namespace MS { + +class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) {}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + +} // namespace MS + LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), - reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0") + forceX(_("Force horizontal"), _("Force horizontal"), "forceX", &wr, this, false), + forceY(_("Force vertical"), _("Force vertical"), "forceY", &wr, this, false), + reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), + center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") { show_orig_path = true; registerParameter( dynamic_cast(&discard_orig_path) ); registerParameter( dynamic_cast(&fusionPaths) ); registerParameter( dynamic_cast(&reverseFusion) ); + registerParameter( dynamic_cast(&forceX) ); + registerParameter( dynamic_cast(&forceY) ); registerParameter( dynamic_cast(&reflection_line) ); + registerParameter( dynamic_cast(¢er) ); + } LPEMirrorSymmetry::~LPEMirrorSymmetry() @@ -50,9 +70,36 @@ LPEMirrorSymmetry::~LPEMirrorSymmetry() void LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) { + using namespace Geom; + SPLPEItem * item = const_cast(lpeitem); std::vector mline(reflection_line.get_pathvector()); - lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); + double dist = distance(mline[0].initialPoint(),mline[0].finalPoint()); + if( !forceX && !forceY ){ + center.param_setValue(mline[0].pointAt(0.5)); + } + Point A(0,0); + Point B(0,0); + if(forceX){ + A = Geom::Point(center[X]+(dist/2.0),center[Y]); + B = Geom::Point(center[X]-(dist/2.0),center[Y]); + } + if(forceY){ + A = Geom::Point(center[X],center[Y]+(dist/2.0)); + B = Geom::Point(center[X],center[Y]-(dist/2.0)); + } + if( forceX || forceY ){ + lineSeparation.setPoints(A,B); + Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); + reflection_line.set_new_value(rline, true); + } else { + lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); + } + //Geom::Point const q = lineSeparation.pointAt(0.5)* lpeitem->i2dt_affine().inverse(); + if(knot_holder){ + knot_holder->update_knots(); + } + //e->knot_set(q, e->knot->drag_origin * lpeitem->i2dt_affine().inverse(), (guint)1); item->apply_to_clippath(item); item->apply_to_mask(item); } @@ -200,6 +247,58 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) return path_out; } +void +LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector &hp_vec) +{ + using namespace Geom; + + PathVector pathv; + Geom::Path mlineExpanded; + Geom::Point lineStart = lineSeparation.pointAt(-100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(100000.0); + mlineExpanded.start( lineStart); + mlineExpanded.appendNew( lineEnd); + pathv.push_back(mlineExpanded); + hp_vec.push_back(pathv); +} + +void +LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { + { + KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); + e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("Adjust the center") ); + knotholder->add(e); + } + +}; + +namespace MS { + +using namespace Geom; + +void +KnotHolderEntityCenterMirrorSymmetry::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +{ + LPEMirrorSymmetry* lpe = dynamic_cast(_effect); + + Geom::Point const s = snap_knot_position(p, state); + + lpe->center.param_setValue(s); + + // 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 +KnotHolderEntityCenterMirrorSymmetry::knot_get() const +{ + LPEMirrorSymmetry const *lpe = dynamic_cast(_effect); + return lpe->center; +} + +} // namespace CR + } //namespace LivePathEffect } /* namespace Inkscape */ diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index c925f220f..4b2c9aea0 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -25,6 +25,11 @@ namespace Inkscape { namespace LivePathEffect { +namespace MS { + // we need a separate namespace to avoid clashes with LPEPerpBisector + class KnotHolderEntityCenterMirrorSymmetry; +} + class LPEMirrorSymmetry : public Effect, GroupBBoxEffect{ public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); @@ -38,12 +43,22 @@ public: virtual std::vector doEffect_path (std::vector const & path_in); + /* the knotholder entity classes must be declared friends */ + friend class MS::KnotHolderEntityCenterMirrorSymmetry; + void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); + +protected: + virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector &hp_vec); + private: BoolParam discard_orig_path; BoolParam fusionPaths; BoolParam reverseFusion; + BoolParam forceX; + BoolParam forceY; PathParam reflection_line; Geom::Line lineSeparation; + PointParam center; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); diff --git a/src/live_effects/lpegroupbbox.cpp b/src/live_effects/lpegroupbbox.cpp index 2a1b70a6a..78545e9c5 100644 --- a/src/live_effects/lpegroupbbox.cpp +++ b/src/live_effects/lpegroupbbox.cpp @@ -8,6 +8,7 @@ #include "live_effects/lpegroupbbox.h" #include "sp-item.h" +#include "sp-item-group.h" namespace Inkscape { namespace LivePathEffect { @@ -34,9 +35,20 @@ void GroupBBoxEffect::original_bbox(SPLPEItem const* lpeitem, bool absolute) } Geom::OptRect bbox = lpeitem->geometricBounds(transform); + std::cout << bbox->hasZeroArea() << "=AREA\n"; + if(bbox->hasZeroArea() && SP_IS_GROUP(lpeitem)){ + bbox = (Geom::OptRect)SP_GROUP(lpeitem)->bbox(transform, SPLPEItem::GEOMETRIC_BBOX); + //GSList const *items = sp_item_group_item_list(SPGroup * group); + //for ( GSList const *i = items ; i != NULL ; i = i->next ) { + // bbox.unionWith(SP_ITEM(i->data)->desktopGeometricBounds()); + //} + } + std::cout << bbox->hasZeroArea() << "=AREA222\n"; if (bbox) { boundingbox_X = (*bbox)[Geom::X]; boundingbox_Y = (*bbox)[Geom::Y]; + std::cout << boundingbox_X << "=BBOXX\n"; + std::cout << boundingbox_Y << "=BBOXY\n"; } else { boundingbox_X = Geom::Interval(); boundingbox_Y = Geom::Interval(); diff --git a/src/ui/dialog/livepatheffect-editor.cpp b/src/ui/dialog/livepatheffect-editor.cpp index eb3857ee7..e9c012ff5 100644 --- a/src/ui/dialog/livepatheffect-editor.cpp +++ b/src/ui/dialog/livepatheffect-editor.cpp @@ -292,8 +292,11 @@ LivePathEffectEditor::onSelectionChanged(Inkscape::Selection *sel) effectlist_store->clear(); current_lpeitem = NULL; - if ( sel && !sel->isEmpty() ) { - SPItem *item = sel->singleItem(); + if ( sel && (sel->isEmpty() || sel->singleItem())) { + SPItem * item= SP_ITEM(current_desktop->currentRoot()); + if(!sel->isEmpty()){ + item = sel->singleItem(); + } if ( item ) { SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { @@ -422,8 +425,11 @@ void LivePathEffectEditor::onAdd() { Inkscape::Selection *sel = _getSelection(); - if ( sel && !sel->isEmpty() ) { - SPItem *item = sel->singleItem(); + if ( sel && (sel->isEmpty() || sel->singleItem())) { + SPItem * item= SP_ITEM(current_desktop->currentRoot()); + if(!sel->isEmpty()){ + item = sel->singleItem(); + } if (item) { if ( dynamic_cast(item) ) { // show effectlist dialog @@ -500,8 +506,11 @@ void LivePathEffectEditor::onRemove() { Inkscape::Selection *sel = _getSelection(); - if ( sel && !sel->isEmpty() ) { - SPItem *item = sel->singleItem(); + if ( sel && (sel->isEmpty() || sel->singleItem())) { + SPItem * item= SP_ITEM(current_desktop->currentRoot()); + if(!sel->isEmpty()){ + item = sel->singleItem(); + } SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->removeCurrentPathEffect(false); @@ -518,8 +527,11 @@ LivePathEffectEditor::onRemove() void LivePathEffectEditor::onUp() { Inkscape::Selection *sel = _getSelection(); - if ( sel && !sel->isEmpty() ) { - SPItem *item = sel->singleItem(); + if ( sel && (sel->isEmpty() || sel->singleItem())) { + SPItem * item= SP_ITEM(current_desktop->currentRoot()); + if(!sel->isEmpty()){ + item = sel->singleItem(); + } SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->upCurrentPathEffect(); @@ -535,8 +547,11 @@ void LivePathEffectEditor::onUp() void LivePathEffectEditor::onDown() { Inkscape::Selection *sel = _getSelection(); - if ( sel && !sel->isEmpty() ) { - SPItem *item = sel->singleItem(); + if ( sel && (sel->isEmpty() || sel->singleItem())) { + SPItem * item= SP_ITEM(current_desktop->currentRoot()); + if(!sel->isEmpty()){ + item = sel->singleItem(); + } SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->downCurrentPathEffect(); -- cgit v1.2.3 From 69ef82447f23d5ebd3abc6a5903b10bbdb1b12f4 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 15 Nov 2014 18:34:32 +0100 Subject: ignore this commit (bzr r13682.1.10) --- src/knotholder.cpp | 6 - src/live_effects/effect.cpp | 10 +- src/live_effects/effect.h | 2 - src/live_effects/lpe-bendpath.cpp | 4 +- src/live_effects/lpe-fillet-chamfer.cpp | 76 +++++-- src/live_effects/lpe-fillet-chamfer.h | 4 +- src/live_effects/lpe-mirror_symmetry.cpp | 230 ++------------------- src/live_effects/lpe-mirror_symmetry.h | 24 +-- src/live_effects/lpegroupbbox.cpp | 12 -- .../parameter/filletchamferpointarray.cpp | 32 ++- src/selection-chemistry.cpp | 2 +- src/sp-item-group.cpp | 9 +- src/ui/clipboard.cpp | 7 + src/ui/dialog/livepatheffect-editor.cpp | 35 +--- src/ui/dialog/lpe-fillet-chamfer-properties.cpp | 15 +- src/ui/dialog/lpe-fillet-chamfer-properties.h | 1 + 16 files changed, 146 insertions(+), 323 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 28f6f5748..f46daa09e 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -69,12 +69,6 @@ KnotHolder::KnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderReleasedFun } KnotHolder::~KnotHolder() { - if(SP_IS_LPE_ITEM(item)){ - Inkscape::LivePathEffect::Effect *effect = SP_LPE_ITEM(item)->getCurrentLPE(); - if(effect){ - effect->removeHandles(); - } - } sp_object_unref(item); for (std::list::iterator i = entity.begin(); i != entity.end(); ++i) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 9997b1662..e49a15dd0 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -106,6 +106,7 @@ const Util::EnumData LPETypeData[] = { {EXTRUDE, N_("Extrude"), "extrude"}, {LATTICE, N_("Lattice Deformation"), "lattice"}, {LINE_SEGMENT, N_("Line Segment"), "line_segment"}, + {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, {OFFSET, N_("Offset"), "offset"}, {PARALLEL, N_("Parallel"), "parallel"}, {PATH_LENGTH, N_("Path length"), "path_length"}, @@ -152,7 +153,6 @@ const Util::EnumData LPETypeData[] = { {PERSPECTIVE_ENVELOPE, N_("Perspective/Envelope"), "perspective-envelope"}, {FILLET_CHAMFER, N_("Fillet/Chamfer"), "fillet-chamfer"}, {INTERPOLATE_POINTS, N_("Interpolate points"), "interpolate_points"}, - {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, }; const Util::EnumDataConverter LPETypeConverter(LPETypeData, sizeof(LPETypeData)/sizeof(*LPETypeData)); @@ -613,7 +613,7 @@ Effect::registerParameter(Parameter * param) void Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { using namespace Inkscape::LivePathEffect; - knot_holder = knotholder; + // add handles provided by the effect itself addKnotHolderEntities(knotholder, desktop, item); @@ -623,12 +623,6 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { } } -void -Effect::removeHandles(){ - if(knot_holder){ - knot_holder = NULL; - } -} /** * Return a vector of PathVectors which contain all canvas indicators for this effect. * This is the function called by external code to get all canvas indicators (effect and its parameters) diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index 5d715c7f2..7da76b267 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -101,7 +101,6 @@ public: // (but spiro lpe still needs it!) virtual LPEPathFlashType pathFlashType() const { return DEFAULT; } void addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); - void removeHandles(); std::vector getCanvasIndicators(SPLPEItem const* lpeitem); inline bool providesOwnFlashPaths() const { @@ -161,7 +160,6 @@ protected: SPLPEItem * sp_lpe_item; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. Glib::ustring const * defaultUnit; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. - KnotHolder *knot_holder; double current_zoom; std::vector selectedNodesPoints; SPCurve * sp_curve; diff --git a/src/live_effects/lpe-bendpath.cpp b/src/live_effects/lpe-bendpath.cpp index 968e12518..33171b184 100644 --- a/src/live_effects/lpe-bendpath.cpp +++ b/src/live_effects/lpe-bendpath.cpp @@ -137,9 +137,7 @@ LPEBendPath::resetDefaults(SPItem const* item) Geom::Point start(boundingbox_X.min(), (boundingbox_Y.max()+boundingbox_Y.min())/2); Geom::Point end(boundingbox_X.max(), (boundingbox_Y.max()+boundingbox_Y.min())/2); - std::cout << start << "start\n"; - std::cout << start << "end\n"; - std::cout << boundingbox_X.min() << "boundingbox_X.min\n"; + if ( Geom::are_near(start,end) ) { end += Geom::Point(1.,0.); } diff --git a/src/live_effects/lpe-fillet-chamfer.cpp b/src/live_effects/lpe-fillet-chamfer.cpp index c89bfbd37..78e24f0b8 100644 --- a/src/live_effects/lpe-fillet-chamfer.cpp +++ b/src/live_effects/lpe-fillet-chamfer.cpp @@ -79,7 +79,7 @@ LPEFilletChamfer::LPEFilletChamfer(LivePathEffectObject *lpeobject) : radius.param_set_range(0., infinity()); radius.param_set_increments(1, 1); radius.param_set_digits(4); - chamfer_steps.param_set_range(0, infinity()); + chamfer_steps.param_set_range(0, 999); chamfer_steps.param_set_increments(1, 1); chamfer_steps.param_set_digits(0); helper_size.param_set_range(0, infinity()); @@ -116,7 +116,7 @@ Gtk::Widget *LPEFilletChamfer::newWidget() } } else if (param->param_key == "chamfer_steps") { Inkscape::UI::Widget::Scalar *widgRegistered = Gtk::manage(dynamic_cast(widg)); - widgRegistered->signal_value_changed().connect(sigc::mem_fun(*this, &LPEFilletChamfer::chamfer)); + widgRegistered->signal_value_changed().connect(sigc::mem_fun(*this, &LPEFilletChamfer::chamferSubdivisions)); widg = widgRegistered; if (widg) { Gtk::HBox *scalarParameter = dynamic_cast(widg); @@ -153,21 +153,26 @@ Gtk::Widget *LPEFilletChamfer::newWidget() ++it; } - - Gtk::VBox *buttonsContainer = Gtk::manage(new Gtk::VBox(true, 0)); + Gtk::HBox *filletContainer = Gtk::manage(new Gtk::HBox(true, 0)); Gtk::Button *fillet = Gtk::manage(new Gtk::Button(Glib::ustring(_("Fillet")))); fillet->signal_clicked().connect(sigc::mem_fun(*this, &LPEFilletChamfer::fillet)); - buttonsContainer->pack_start(*fillet, true, true, 2); - Gtk::Button *inverse = Gtk::manage(new Gtk::Button(Glib::ustring(_("Inverse fillet")))); - inverse->signal_clicked().connect(sigc::mem_fun(*this, &LPEFilletChamfer::inverse)); - buttonsContainer->pack_start(*inverse, true, true, 2); - + filletContainer->pack_start(*fillet, true, true, 2); + Gtk::Button *inverseFillet = Gtk::manage(new Gtk::Button(Glib::ustring(_("Inverse fillet")))); + inverseFillet->signal_clicked().connect(sigc::mem_fun(*this, &LPEFilletChamfer::inverseFillet)); + filletContainer->pack_start(*inverseFillet, true, true, 2); + + Gtk::HBox *chamferContainer = Gtk::manage(new Gtk::HBox(true, 0)); Gtk::Button *chamfer = Gtk::manage(new Gtk::Button(Glib::ustring(_("Chamfer")))); chamfer->signal_clicked().connect(sigc::mem_fun(*this, &LPEFilletChamfer::chamfer)); - buttonsContainer->pack_start(*chamfer, true, true, 2); - vbox->pack_start(*buttonsContainer, true, true, 2); + chamferContainer->pack_start(*chamfer, true, true, 2); + Gtk::Button *inverseChamfer = Gtk::manage(new Gtk::Button(Glib::ustring(_("Inverse chamfer")))); + inverseChamfer->signal_clicked().connect(sigc::mem_fun(*this, &LPEFilletChamfer::inverseChamfer)); + chamferContainer->pack_start(*inverseChamfer, true, true, 2); + + vbox->pack_start(*filletContainer, true, true, 2); + vbox->pack_start(*chamferContainer, true, true, 2); return vbox; } @@ -232,17 +237,31 @@ void LPEFilletChamfer::fillet() doChangeType(path_from_piecewise(pwd2, tolerance), 1); } -void LPEFilletChamfer::inverse() +void LPEFilletChamfer::inverseFillet() { Piecewise > const &pwd2 = fillet_chamfer_values.get_pwd2(); doChangeType(path_from_piecewise(pwd2, tolerance), 2); } +void LPEFilletChamfer::chamferSubdivisions() +{ + fillet_chamfer_values.set_chamfer_steps(chamfer_steps); + Piecewise > const &pwd2 = fillet_chamfer_values.get_pwd2(); + doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 5000); +} + void LPEFilletChamfer::chamfer() { - fillet_chamfer_values.set_chamfer_steps(chamfer_steps + 3); + fillet_chamfer_values.set_chamfer_steps(chamfer_steps); Piecewise > const &pwd2 = fillet_chamfer_values.get_pwd2(); - doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 3); + doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 3000); +} + +void LPEFilletChamfer::inverseChamfer() +{ + fillet_chamfer_values.set_chamfer_steps(chamfer_steps); + Piecewise > const &pwd2 = fillet_chamfer_values.get_pwd2(); + doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 4000); } void LPEFilletChamfer::refreshKnots() @@ -333,6 +352,13 @@ void LPEFilletChamfer::doChangeType(std::vector const& original_path toggle = false; } if (toggle) { + if(type >= 5000){ + if(filletChamferData[counter][Y] >= 3000 && filletChamferData[counter][Y] < 4000){ + type = type - 2000; + } else if (filletChamferData[counter][Y] >= 4000 && filletChamferData[counter][Y] < 5000){ + type = type - 1000; + } + } result.push_back(Point(filletChamferData[counter][X], type)); } else { result.push_back(filletChamferData[counter]); @@ -552,8 +578,8 @@ LPEFilletChamfer::doEffect_path(std::vector const &path_in) } else { type = std::abs(filletChamferData[counter + 1][Y]); } - if (type >= 3) { - unsigned int chamferSubs = type-2; + if (type >= 3000 && type < 4000) { + unsigned int chamferSubs = type-2999; Geom::Path path_chamfer; path_chamfer.start(path_out.finalPoint()); if((is_straight_curve(*curve_it1) && is_straight_curve(*curve_it2Fixed) && method != FM_BEZIER )|| method == FM_ARC){ @@ -567,6 +593,22 @@ LPEFilletChamfer::doEffect_path(std::vector const &path_in) path_out.appendNew(chamferStep); } path_out.appendNew(endArcPoint); + } else if (type >= 4000 && type < 5000) { + unsigned int chamferSubs = type-3999; + Geom::Path path_chamfer; + path_chamfer.start(path_out.finalPoint()); + if((is_straight_curve(*curve_it1) && is_straight_curve(*curve_it2Fixed) && method != FM_BEZIER )|| method == FM_ARC){ + ccwToggle = ccwToggle?0:1; + path_chamfer.appendNew(rx, ry, angleArc, 0, ccwToggle, endArcPoint); + }else{ + path_chamfer.appendNew(inverseHandle1, inverseHandle2, endArcPoint); + } + double chamfer_stepsTime = 1.0/chamferSubs; + for(unsigned int i = 1; i < chamferSubs; i++){ + Geom::Point chamferStep = path_chamfer.pointAt(chamfer_stepsTime * i); + path_out.appendNew(chamferStep); + } + path_out.appendNew(endArcPoint); } else if (type == 2) { if((is_straight_curve(*curve_it1) && is_straight_curve(*curve_it2Fixed) && method != FM_BEZIER )|| method == FM_ARC){ ccwToggle = ccwToggle?0:1; @@ -574,7 +616,7 @@ LPEFilletChamfer::doEffect_path(std::vector const &path_in) }else{ path_out.appendNew(inverseHandle1, inverseHandle2, endArcPoint); } - } else { + } else if (type == 1){ if((is_straight_curve(*curve_it1) && is_straight_curve(*curve_it2Fixed) && method != FM_BEZIER )|| method == FM_ARC){ path_out.appendNew(rx, ry, angleArc, 0, ccwToggle, endArcPoint); } else { diff --git a/src/live_effects/lpe-fillet-chamfer.h b/src/live_effects/lpe-fillet-chamfer.h index e3589197c..0d6a1ff17 100644 --- a/src/live_effects/lpe-fillet-chamfer.h +++ b/src/live_effects/lpe-fillet-chamfer.h @@ -56,8 +56,10 @@ public: void toggleHide(); void toggleFlexFixed(); void chamfer(); + void chamferSubdivisions(); + void inverseChamfer(); void fillet(); - void inverse(); + void inverseFillet(); void updateFillet(); void doUpdateFillet(std::vector const& original_pathv, double power); void doChangeType(std::vector const& original_pathv, int type); diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index dc9a94b1b..0bb67a4a2 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -19,48 +19,23 @@ #include #include #include -#include "helper/geom.h" + #include <2geom/path.h> -#include <2geom/path-intersection.h> #include <2geom/transforms.h> #include <2geom/affine.h> -#include "knot-holder-entity.h" -#include "knotholder.h" namespace Inkscape { namespace LivePathEffect { -namespace MS { - -class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { -public: - KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) {}; - virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); - virtual Geom::Point knot_get() const; -}; - -} // namespace MS - LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), - reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), - forceX(_("Force horizontal"), _("Force horizontal"), "forceX", &wr, this, false), - forceY(_("Force vertical"), _("Force vertical"), "forceY", &wr, this, false), - reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), - center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") + reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L100,100") { show_orig_path = true; registerParameter( dynamic_cast(&discard_orig_path) ); - registerParameter( dynamic_cast(&fusionPaths) ); - registerParameter( dynamic_cast(&reverseFusion) ); - registerParameter( dynamic_cast(&forceX) ); - registerParameter( dynamic_cast(&forceY) ); registerParameter( dynamic_cast(&reflection_line) ); - registerParameter( dynamic_cast(¢er) ); - } LPEMirrorSymmetry::~LPEMirrorSymmetry() @@ -70,36 +45,7 @@ LPEMirrorSymmetry::~LPEMirrorSymmetry() void LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) { - using namespace Geom; - SPLPEItem * item = const_cast(lpeitem); - std::vector mline(reflection_line.get_pathvector()); - double dist = distance(mline[0].initialPoint(),mline[0].finalPoint()); - if( !forceX && !forceY ){ - center.param_setValue(mline[0].pointAt(0.5)); - } - Point A(0,0); - Point B(0,0); - if(forceX){ - A = Geom::Point(center[X]+(dist/2.0),center[Y]); - B = Geom::Point(center[X]-(dist/2.0),center[Y]); - } - if(forceY){ - A = Geom::Point(center[X],center[Y]+(dist/2.0)); - B = Geom::Point(center[X],center[Y]-(dist/2.0)); - } - if( forceX || forceY ){ - lineSeparation.setPoints(A,B); - Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); - reflection_line.set_new_value(rline, true); - } else { - lineSeparation.setPoints(mline[0].initialPoint(),mline[0].finalPoint()); - } - //Geom::Point const q = lineSeparation.pointAt(0.5)* lpeitem->i2dt_affine().inverse(); - if(knot_holder){ - knot_holder->update_knots(); - } - //e->knot_set(q, e->knot->drag_origin * lpeitem->i2dt_affine().inverse(), (guint)1); item->apply_to_clippath(item); item->apply_to_mask(item); } @@ -109,22 +55,19 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) { using namespace Geom; - original_bbox(lpeitem); + // fixme: what happens if the bbox is empty? + // fixme: this is probably wrong + Geom::Affine t = lpeitem->i2dt_affine(); + Geom::Rect bbox = *lpeitem->desktopVisualBounds(); - Point A(boundingbox_X.max(), boundingbox_Y.max()); - Point B(boundingbox_X.max(), boundingbox_Y.min()); + Point A(bbox.left(), bbox.bottom()); + Point B(bbox.left(), bbox.top()); + A *= t; + B *= t; Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); reflection_line.set_new_value(rline, true); } -int -LPEMirrorSymmetry::pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X) -{ - //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line - double pos = (B[Geom::X]-A[Geom::X])*(X[Geom::Y]-A[Geom::Y]) - (B[Geom::Y]-A[Geom::Y])*(X[Geom::X]-A[Geom::X]); - return (pos < 0) ? -1 : (pos > 0); -} - std::vector LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) { @@ -132,20 +75,15 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) if ( reflection_line.get_pathvector().empty() ) { return path_in; } - Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); - std::vector path_out; - Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); - mlineExpanded.start( lineStart); - mlineExpanded.appendNew( lineEnd); - if (!discard_orig_path && !fusionPaths) { + std::vector path_out; + if (!discard_orig_path) { path_out = path_in; } - Geom::Point A(lineStart); - Geom::Point B(lineEnd); + std::vector mline(reflection_line.get_pathvector()); + Geom::Point A(mline.front().initialPoint()); + Geom::Point B(mline.back().finalPoint()); Geom::Affine m1(1.0, 0.0, 0.0, 1.0, A[0], A[1]); double hyp = Geom::distance(A, B); @@ -159,146 +97,14 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) m = m * sca; m = m * m2.inverse(); m = m * m1; - - if(fusionPaths && !discard_orig_path){ - for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); - path_it != original_pathv.end(); ++path_it) { - if (path_it->empty()){ - continue; - } - std::vector temp_path; - double timeStart = 0.0; - int position = 0; - bool end_open = false; - if (path_it->closed()) { - const Geom::Curve &closingline = path_it->back_closed(); - if (!are_near(closingline.initialPoint(), closingline.finalPoint())) { - end_open = true; - } - } - Geom::Path original = (Geom::Path)(*path_it); - if(end_open && path_it->closed()){ - original.close(false); - original.appendNew( original.initialPoint() ); - original.close(true); - } - Geom::Crossings cs = crossings(original, mlineExpanded); - for(unsigned int i = 0; i < cs.size(); i++) { - double timeEnd = cs[i].ta; - Geom::Path portion = original.portion(timeStart, timeEnd); - Geom::Point middle = portion.pointAt((double)portion.size()/2.0); - position = pointSideOfLine(lineStart, lineEnd, middle); - if(reverseFusion){ - position *= -1; - } - if(position == -1){ - Geom::Path mirror = portion.reverse() * m; - mirror.setInitial(portion.finalPoint()); - portion.append(mirror); - if(i!=0){ - portion.setFinal(portion.initialPoint()); - portion.close(); - } - temp_path.push_back(portion); - } - portion.clear(); - timeStart = timeEnd; - } - position = pointSideOfLine(lineStart, lineEnd, original.finalPoint()); - if(reverseFusion){ - position *= -1; - } - if(cs.size()!=0 && position == -1){ - Geom::Path portion = original.portion(timeStart, original.size()); - portion = portion.reverse(); - Geom::Path mirror = portion.reverse() * m; - mirror.setInitial(portion.finalPoint()); - portion.append(mirror); - portion = portion.reverse(); - if (!original.closed()){ - temp_path.push_back(portion); - } else { - if(cs.size() >1 ){ - portion.setFinal(temp_path[0].initialPoint()); - portion.setInitial(temp_path[0].finalPoint()); - temp_path[0].append(portion); - } else { - temp_path.push_back(portion); - } - temp_path[0].close(); - } - portion.clear(); - } - if(cs.size() == 0 && position == -1){ - temp_path.push_back(original); - temp_path.push_back(original * m); - } - path_out.insert(path_out.end(), temp_path.begin(), temp_path.end()); - temp_path.clear(); - } - } - - if (!fusionPaths || discard_orig_path) { - for (int i = 0; i < static_cast(path_in.size()); ++i) { - path_out.push_back(path_in[i] * m); - } - } - return path_out; -} - -void -LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector &hp_vec) -{ - using namespace Geom; - - PathVector pathv; - Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); - mlineExpanded.start( lineStart); - mlineExpanded.appendNew( lineEnd); - pathv.push_back(mlineExpanded); - hp_vec.push_back(pathv); -} - -void -LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { - { - KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); - e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Adjust the center") ); - knotholder->add(e); + for (int i = 0; i < static_cast(path_in.size()); ++i) { + path_out.push_back(path_in[i] * m); } -}; - -namespace MS { - -using namespace Geom; - -void -KnotHolderEntityCenterMirrorSymmetry::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) -{ - LPEMirrorSymmetry* lpe = dynamic_cast(_effect); - - Geom::Point const s = snap_knot_position(p, state); - - lpe->center.param_setValue(s); - - // 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 -KnotHolderEntityCenterMirrorSymmetry::knot_get() const -{ - LPEMirrorSymmetry const *lpe = dynamic_cast(_effect); - return lpe->center; + return path_out; } -} // namespace CR - } //namespace LivePathEffect } /* namespace Inkscape */ diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 4b2c9aea0..a4a2b86c0 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -20,17 +20,10 @@ #include "live_effects/parameter/point.h" #include "live_effects/parameter/path.h" -#include "live_effects/lpegroupbbox.h" - namespace Inkscape { namespace LivePathEffect { -namespace MS { - // we need a separate namespace to avoid clashes with LPEPerpBisector - class KnotHolderEntityCenterMirrorSymmetry; -} - -class LPEMirrorSymmetry : public Effect, GroupBBoxEffect{ +class LPEMirrorSymmetry : public Effect { public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); virtual ~LPEMirrorSymmetry(); @@ -39,26 +32,11 @@ public: virtual void doBeforeEffect (SPLPEItem const* lpeitem); - virtual int pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X); - virtual std::vector doEffect_path (std::vector const & path_in); - /* the knotholder entity classes must be declared friends */ - friend class MS::KnotHolderEntityCenterMirrorSymmetry; - void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); - -protected: - virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector &hp_vec); - private: BoolParam discard_orig_path; - BoolParam fusionPaths; - BoolParam reverseFusion; - BoolParam forceX; - BoolParam forceY; PathParam reflection_line; - Geom::Line lineSeparation; - PointParam center; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); diff --git a/src/live_effects/lpegroupbbox.cpp b/src/live_effects/lpegroupbbox.cpp index 78545e9c5..2a1b70a6a 100644 --- a/src/live_effects/lpegroupbbox.cpp +++ b/src/live_effects/lpegroupbbox.cpp @@ -8,7 +8,6 @@ #include "live_effects/lpegroupbbox.h" #include "sp-item.h" -#include "sp-item-group.h" namespace Inkscape { namespace LivePathEffect { @@ -35,20 +34,9 @@ void GroupBBoxEffect::original_bbox(SPLPEItem const* lpeitem, bool absolute) } Geom::OptRect bbox = lpeitem->geometricBounds(transform); - std::cout << bbox->hasZeroArea() << "=AREA\n"; - if(bbox->hasZeroArea() && SP_IS_GROUP(lpeitem)){ - bbox = (Geom::OptRect)SP_GROUP(lpeitem)->bbox(transform, SPLPEItem::GEOMETRIC_BBOX); - //GSList const *items = sp_item_group_item_list(SPGroup * group); - //for ( GSList const *i = items ; i != NULL ; i = i->next ) { - // bbox.unionWith(SP_ITEM(i->data)->desktopGeometricBounds()); - //} - } - std::cout << bbox->hasZeroArea() << "=AREA222\n"; if (bbox) { boundingbox_X = (*bbox)[Geom::X]; boundingbox_Y = (*bbox)[Geom::Y]; - std::cout << boundingbox_X << "=BBOXX\n"; - std::cout << boundingbox_Y << "=BBOXY\n"; } else { boundingbox_X = Geom::Interval(); boundingbox_Y = Geom::Interval(); diff --git a/src/live_effects/parameter/filletchamferpointarray.cpp b/src/live_effects/parameter/filletchamferpointarray.cpp index cf9ef3132..4e2be6e88 100644 --- a/src/live_effects/parameter/filletchamferpointarray.cpp +++ b/src/live_effects/parameter/filletchamferpointarray.cpp @@ -723,7 +723,7 @@ FilletChamferPointArrayParamKnotHolderEntity( void FilletChamferPointArrayParamKnotHolderEntity::knot_set(Point const &p, Point const &/*origin*/, - guint /*state*/) + guint state) { using namespace Geom; @@ -733,7 +733,7 @@ void FilletChamferPointArrayParamKnotHolderEntity::knot_set(Point const &p, /// @todo how about item transforms??? Piecewise > const &pwd2 = _pparam->get_pwd2(); //todo: add snapping - //Geom::Point const s = snap_knot_position(p, state); + Geom::Point const s = snap_knot_position(p, state); double t = nearest_point(p, pwd2[_index]); if (t == 1) { t = 0.9999; @@ -777,13 +777,21 @@ void FilletChamferPointArrayParamKnotHolderEntity::knot_click(guint state) }else{ using namespace Geom; int type = (int)_pparam->_vector.at(_index)[Y]; - + if (type >=3000 && type < 4000){ + type = 3; + } + if (type >=4000 && type < 5000){ + type = 4; + } switch(type){ case 1: type = 2; break; case 2: - type = _pparam->chamfer_steps; + type = _pparam->chamfer_steps + 3000; + break; + case 3: + type = _pparam->chamfer_steps + 4000; break; default: type = 1; @@ -793,8 +801,12 @@ void FilletChamferPointArrayParamKnotHolderEntity::knot_click(guint state) _pparam->param_set_and_write_new_value(_pparam->_vector); sp_lpe_item_update_patheffect(SP_LPE_ITEM(item), false, false); const gchar *tip; - if (type >= 3) { - tip = _("Chamfer: Ctrl+Click toogle type, " + if (type >=3000 && type < 4000){ + tip = _("Chamfer: Ctrl+Click toogle type, " + "Shift+Click open dialog, " + "Ctrl+Alt+Click reset"); + } else if (type >=4000 && type < 5000) { + tip = _("Inverse Chamfer: Ctrl+Click toogle type, " "Shift+Click open dialog, " "Ctrl+Alt+Click reset"); } else if (type == 2) { @@ -850,8 +862,12 @@ void FilletChamferPointArrayParam::addKnotHolderEntities(KnotHolder *knotholder, continue; } const gchar *tip; - if (_vector[i][Y] >= 3) { - tip = _("Chamfer: Ctrl+Click toogle type, " + if (_vector[i][Y] >=3000 && _vector[i][Y] < 4000){ + tip = _("Chamfer: Ctrl+Click toogle type, " + "Shift+Click open dialog, " + "Ctrl+Alt+Click reset"); + } else if (_vector[i][Y] >=4000 && _vector[i][Y] < 5000) { + tip = _("Inverse Chamfer: Ctrl+Click toogle type, " "Shift+Click open dialog, " "Ctrl+Alt+Click reset"); } else if (_vector[i][Y] == 2) { diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index d00e8d702..ffa149cee 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1643,7 +1643,7 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons item->doWriteTransform(item->getRepr(), move, &move, compensate); } else if (prefs_unmoved) { - //if (SP_IS_USE(sp_use_get_original(SP_USE(item)))) + //if (dynamic_cast(sp_use_get_original(dynamic_cast(item)))) // clone_move = Geom::identity(); Geom::Affine move = result * clone_move; item->doWriteTransform(item->getRepr(), move, &t, compensate); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 613ace5c1..992bca631 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -662,8 +662,13 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo { if ( hasChildren() ) { for (SPObject *o = firstChild() ; o ; o = o->getNext() ) { - SPItem *item = dynamic_cast(o); - if ( item ) { + if ( SPDefs *defs = dynamic_cast(o) ) { // select symbols from defs, ignore clips, masks, patterns + for (SPObject *defschild = defs->firstChild() ; defschild ; defschild = defschild->getNext() ) { + SPGroup *defsgroup = dynamic_cast(defschild); + if (defsgroup) + defsgroup->scaleChildItemsRec(sc, p, false); + } + } else if ( SPItem *item = dynamic_cast(o) ) { SPGroup *group = dynamic_cast(item); if (group && !dynamic_cast(item)) { /* Using recursion breaks clipping because transforms are applied diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 931a295d8..153ed9830 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -330,6 +330,13 @@ void ClipboardManagerImpl::copySymbol(Inkscape::XML::Node* symbol, gchar const* use->setAttribute("xlink:href", id.c_str() ); // Set a default style in rather than so it can be changed. use->setAttribute("style", style ); + + Inkscape::XML::Node *nv_repr = sp_desktop_namedview(inkscape_active_desktop())->getRepr(); + gdouble scale_units = Inkscape::Util::Quantity::convert(1, nv_repr->attribute("inkscape:document-units"), "px"); + gchar *transform_str = sp_svg_transform_write(Geom::Scale(scale_units, scale_units)); + use->setAttribute("transform", transform_str); + g_free(transform_str); + _root->appendChild(use); // This min and max sets offsets, we don't have any so set to zero. diff --git a/src/ui/dialog/livepatheffect-editor.cpp b/src/ui/dialog/livepatheffect-editor.cpp index e9c012ff5..eb3857ee7 100644 --- a/src/ui/dialog/livepatheffect-editor.cpp +++ b/src/ui/dialog/livepatheffect-editor.cpp @@ -292,11 +292,8 @@ LivePathEffectEditor::onSelectionChanged(Inkscape::Selection *sel) effectlist_store->clear(); current_lpeitem = NULL; - if ( sel && (sel->isEmpty() || sel->singleItem())) { - SPItem * item= SP_ITEM(current_desktop->currentRoot()); - if(!sel->isEmpty()){ - item = sel->singleItem(); - } + if ( sel && !sel->isEmpty() ) { + SPItem *item = sel->singleItem(); if ( item ) { SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { @@ -425,11 +422,8 @@ void LivePathEffectEditor::onAdd() { Inkscape::Selection *sel = _getSelection(); - if ( sel && (sel->isEmpty() || sel->singleItem())) { - SPItem * item= SP_ITEM(current_desktop->currentRoot()); - if(!sel->isEmpty()){ - item = sel->singleItem(); - } + if ( sel && !sel->isEmpty() ) { + SPItem *item = sel->singleItem(); if (item) { if ( dynamic_cast(item) ) { // show effectlist dialog @@ -506,11 +500,8 @@ void LivePathEffectEditor::onRemove() { Inkscape::Selection *sel = _getSelection(); - if ( sel && (sel->isEmpty() || sel->singleItem())) { - SPItem * item= SP_ITEM(current_desktop->currentRoot()); - if(!sel->isEmpty()){ - item = sel->singleItem(); - } + if ( sel && !sel->isEmpty() ) { + SPItem *item = sel->singleItem(); SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->removeCurrentPathEffect(false); @@ -527,11 +518,8 @@ LivePathEffectEditor::onRemove() void LivePathEffectEditor::onUp() { Inkscape::Selection *sel = _getSelection(); - if ( sel && (sel->isEmpty() || sel->singleItem())) { - SPItem * item= SP_ITEM(current_desktop->currentRoot()); - if(!sel->isEmpty()){ - item = sel->singleItem(); - } + if ( sel && !sel->isEmpty() ) { + SPItem *item = sel->singleItem(); SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->upCurrentPathEffect(); @@ -547,11 +535,8 @@ void LivePathEffectEditor::onUp() void LivePathEffectEditor::onDown() { Inkscape::Selection *sel = _getSelection(); - if ( sel && (sel->isEmpty() || sel->singleItem())) { - SPItem * item= SP_ITEM(current_desktop->currentRoot()); - if(!sel->isEmpty()){ - item = sel->singleItem(); - } + if ( sel && !sel->isEmpty() ) { + SPItem *item = sel->singleItem(); SPLPEItem *lpeitem = dynamic_cast(item); if ( lpeitem ) { lpeitem->downCurrentPathEffect(); diff --git a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp index e55c9f8df..55a19fc51 100644 --- a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp +++ b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp @@ -79,12 +79,15 @@ FilletChamferPropertiesDialog::FilletChamferPropertiesDialog() _fillet_chamfer_type_inverse_fillet.set_group(_fillet_chamfer_type_group); _fillet_chamfer_type_chamfer.set_label(_("Chamfer")); _fillet_chamfer_type_chamfer.set_group(_fillet_chamfer_type_group); + _fillet_chamfer_type_inverse_chamfer.set_label(_("Inverse chamfer")); + _fillet_chamfer_type_inverse_chamfer.set_group(_fillet_chamfer_type_group); mainVBox->pack_start(_layout_table, true, true, 4); mainVBox->pack_start(_fillet_chamfer_type_fillet, true, true, 4); mainVBox->pack_start(_fillet_chamfer_type_inverse_fillet, true, true, 4); mainVBox->pack_start(_fillet_chamfer_type_chamfer, true, true, 4); + mainVBox->pack_start(_fillet_chamfer_type_inverse_chamfer, true, true, 4); // Buttons _close_button.set_use_stock(true); @@ -158,8 +161,10 @@ void FilletChamferPropertiesDialog::_apply() d_width = 1; } else if (_fillet_chamfer_type_inverse_fillet.get_active() == true) { d_width = 2; + } else if (_fillet_chamfer_type_inverse_chamfer.get_active() == true) { + d_width = _fillet_chamfer_chamfer_subdivisions.get_value() + 4000; } else { - d_width = _fillet_chamfer_chamfer_subdivisions.get_value() + 3; + d_width = _fillet_chamfer_chamfer_subdivisions.get_value() + 3000; } if (_flexible) { if (d_pos > 99.99999 || d_pos < 0) { @@ -229,8 +234,12 @@ void FilletChamferPropertiesDialog::_set_knot_point(Geom::Point knotpoint) _fillet_chamfer_type_fillet.set_active(true); } else if (knotpoint.y() == 2) { _fillet_chamfer_type_inverse_fillet.set_active(true); - } else if (knotpoint.y() >= 3) { - _fillet_chamfer_chamfer_subdivisions.set_value(knotpoint.y() - 3); + } else if (knotpoint.y() >= 3000 && knotpoint.y() < 4000) { + _fillet_chamfer_chamfer_subdivisions.set_value(knotpoint.y() - 3000); + _fillet_chamfer_type_chamfer.set_active(true); + } else if (knotpoint.y() >= 4000 && knotpoint.y() < 5000) { + _fillet_chamfer_chamfer_subdivisions.set_value(knotpoint.y() - 4000); + _fillet_chamfer_type_inverse_chamfer.set_active(true); } } diff --git a/src/ui/dialog/lpe-fillet-chamfer-properties.h b/src/ui/dialog/lpe-fillet-chamfer-properties.h index ec87addc5..3807e98c8 100644 --- a/src/ui/dialog/lpe-fillet-chamfer-properties.h +++ b/src/ui/dialog/lpe-fillet-chamfer-properties.h @@ -47,6 +47,7 @@ protected: Gtk::RadioButton _fillet_chamfer_type_fillet; Gtk::RadioButton _fillet_chamfer_type_inverse_fillet; Gtk::RadioButton _fillet_chamfer_type_chamfer; + Gtk::RadioButton _fillet_chamfer_type_inverse_chamfer; Gtk::Label _fillet_chamfer_chamfer_subdivisions_label; Gtk::SpinButton _fillet_chamfer_chamfer_subdivisions; -- cgit v1.2.3 From e7bb1921ce0a29a94fe03c321ad409e7d407611d Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 17 Nov 2014 23:27:28 +0100 Subject: adding knot improvements pointed by su_v (bzr r13682.1.13) --- src/live_effects/lpe-mirror_symmetry.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 4024ff83e..1205476a4 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -80,10 +80,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPLPEItem * item = const_cast(lpeitem); std::vector mline(reflection_line.get_pathvector()); - Point A = mline[0].initialPoint(); - Point B = mline[0].finalPoint(); - Point C = mline[0].pointAt(0.5); + Point A(boundingbox_X.max(), boundingbox_Y.max()); + Point B(boundingbox_X.max(), boundingbox_Y.min()); double dist = distance(A,B); + Point C = mline[0].pointAt(0.5); if(mode == MT_X){ A = Geom::Point(center[X]+(dist/2.0),center[Y]); B = Geom::Point(center[X]-(dist/2.0),center[Y]); @@ -96,7 +96,19 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); reflection_line.set_new_value(rline, true); } else { - center.param_setValue(C); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); + lineSeparation.setPoints(A,B); + Geom::Rotate rot = Geom::Rotate(lineSeparation.angle()); + Geom::Translate trans = Geom::Translate(center); + A = Geom::Point(center[X],center[Y]+(dist/2.0)); + B = Geom::Point(center[X],center[Y]-(dist/2.0)); + Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); + rline *= rot; + rline *= trans; + reflection_line.set_new_value(rline, true); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); } lineSeparation.setPoints(A,B); if(knot_holder){ -- cgit v1.2.3 From b619510d9fc49fdfa636f50487acc5fea773afc9 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 18 Nov 2014 00:08:09 +0100 Subject: adding knot improvements pointed by su_v (bzr r13682.1.15) --- src/live_effects/lpe-mirror_symmetry.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 1205476a4..bc5dc747d 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -83,7 +83,6 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) Point A(boundingbox_X.max(), boundingbox_Y.max()); Point B(boundingbox_X.max(), boundingbox_Y.min()); double dist = distance(A,B); - Point C = mline[0].pointAt(0.5); if(mode == MT_X){ A = Geom::Point(center[X]+(dist/2.0),center[Y]); B = Geom::Point(center[X]-(dist/2.0),center[Y]); @@ -93,27 +92,29 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) B = Geom::Point(center[X],center[Y]-(dist/2.0)); } if( mode == MT_X || mode == MT_Y ){ - Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); - reflection_line.set_new_value(rline, true); + Geom::Path path; + path.start( A ); + path.appendNew( B ); + reflection_line.set_new_value(path.toPwSb(), true); } else { A = mline[0].initialPoint(); B = mline[0].finalPoint(); + Point C = mline[0].pointAt(0.5); lineSeparation.setPoints(A,B); Geom::Rotate rot = Geom::Rotate(lineSeparation.angle()); Geom::Translate trans = Geom::Translate(center); A = Geom::Point(center[X],center[Y]+(dist/2.0)); B = Geom::Point(center[X],center[Y]-(dist/2.0)); - Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); - rline *= rot; - rline *= trans; - reflection_line.set_new_value(rline, true); + Geom::Path path; + path.start( B ); + path.appendNew( A ); + path *= Geom::Affine(rot); + path *= Geom::Affine(trans); + reflection_line.set_new_value(path.toPwSb(), true); A = mline[0].initialPoint(); B = mline[0].finalPoint(); } lineSeparation.setPoints(A,B); - if(knot_holder){ - knot_holder->update_knots(); - } item->apply_to_clippath(item); item->apply_to_mask(item); } @@ -129,6 +130,8 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) Point B(boundingbox_X.max(), boundingbox_Y.min()); Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); reflection_line.set_new_value(rline, true); + Point C = rline[0].pointAt(0.5); + center.param_setValue(C); } int -- cgit v1.2.3 From 806baa5e2a2a7f7720e7fc32fa66e5055a66f765 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 18 Nov 2014 20:00:50 +0100 Subject: adding knot improvements pointed by su_v (bzr r13682.1.17) --- src/live_effects/lpe-mirror_symmetry.cpp | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index bc5dc747d..2e34f2f6b 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -79,7 +79,6 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) using namespace Geom; SPLPEItem * item = const_cast(lpeitem); - std::vector mline(reflection_line.get_pathvector()); Point A(boundingbox_X.max(), boundingbox_Y.max()); Point B(boundingbox_X.max(), boundingbox_Y.min()); double dist = distance(A,B); @@ -97,22 +96,23 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) path.appendNew( B ); reflection_line.set_new_value(path.toPwSb(), true); } else { + std::vector mline(reflection_line.get_pathvector()); A = mline[0].initialPoint(); B = mline[0].finalPoint(); - Point C = mline[0].pointAt(0.5); lineSeparation.setPoints(A,B); + //Point C(boundingbox_X.max(), boundingbox_Y.middle()); Geom::Rotate rot = Geom::Rotate(lineSeparation.angle()); - Geom::Translate trans = Geom::Translate(center); + //Geom::Translate trans = Geom::Translate(center - C); A = Geom::Point(center[X],center[Y]+(dist/2.0)); B = Geom::Point(center[X],center[Y]-(dist/2.0)); Geom::Path path; - path.start( B ); - path.appendNew( A ); + path.start( A ); + path.appendNew( B ); path *= Geom::Affine(rot); - path *= Geom::Affine(trans); + //path *= Geom::Affine(trans); reflection_line.set_new_value(path.toPwSb(), true); - A = mline[0].initialPoint(); - B = mline[0].finalPoint(); + A = path.initialPoint(); + B = path.finalPoint(); } lineSeparation.setPoints(A,B); item->apply_to_clippath(item); @@ -128,9 +128,11 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) Point A(boundingbox_X.max(), boundingbox_Y.max()); Point B(boundingbox_X.max(), boundingbox_Y.min()); - Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); - reflection_line.set_new_value(rline, true); - Point C = rline[0].pointAt(0.5); + Point C(boundingbox_X.max(), boundingbox_Y.middle()); + Geom::Path path; + path.start( A ); + path.appendNew( B ); + reflection_line.set_new_value(path.toPwSb(), true); center.param_setValue(C); } @@ -152,8 +154,8 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); std::vector path_out; Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); + Geom::Point lineStart = lineSeparation.pointAt(100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(-100000.0); mlineExpanded.start( lineStart); mlineExpanded.appendNew( lineEnd); @@ -271,8 +273,8 @@ LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector PathVector pathv; Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); + Geom::Point lineStart = lineSeparation.pointAt(100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(-100000.0); mlineExpanded.start( lineStart); mlineExpanded.appendNew( lineEnd); pathv.push_back(mlineExpanded); -- cgit v1.2.3 From c287e23597d25cd743b44b48388a09151b18cdfc Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 21 Nov 2014 11:49:26 +0100 Subject: added knot improvements pointed by su_v (bzr r13682.1.19) --- src/live_effects/lpe-mirror_symmetry.cpp | 81 +++++++++++++++++--------------- src/live_effects/lpe-mirror_symmetry.h | 1 + 2 files changed, 44 insertions(+), 38 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 2e34f2f6b..b0a4831f5 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -79,42 +79,48 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) using namespace Geom; SPLPEItem * item = const_cast(lpeitem); - Point A(boundingbox_X.max(), boundingbox_Y.max()); - Point B(boundingbox_X.max(), boundingbox_Y.min()); - double dist = distance(A,B); - if(mode == MT_X){ - A = Geom::Point(center[X]+(dist/2.0),center[Y]); - B = Geom::Point(center[X]-(dist/2.0),center[Y]); - } + Point A(boundingbox_X.max(), boundingbox_Y.min()); + Point B(boundingbox_X.max(), boundingbox_Y.max()); + Point C(boundingbox_X.max(), boundingbox_Y.middle()); if(mode == MT_Y){ - A = Geom::Point(center[X],center[Y]+(dist/2.0)); - B = Geom::Point(center[X],center[Y]-(dist/2.0)); + A = Geom::Point(boundingbox_X.min(),center[Y]); + B = Geom::Point(boundingbox_X.max(),center[Y]); + } + if(mode == MT_X){ + A = Geom::Point(center[X],boundingbox_Y.min()); + B = Geom::Point(center[X],boundingbox_Y.max()); } if( mode == MT_X || mode == MT_Y ){ Geom::Path path; path.start( A ); path.appendNew( B ); reflection_line.set_new_value(path.toPwSb(), true); - } else { - std::vector mline(reflection_line.get_pathvector()); - A = mline[0].initialPoint(); - B = mline[0].finalPoint(); lineSeparation.setPoints(A,B); - //Point C(boundingbox_X.max(), boundingbox_Y.middle()); - Geom::Rotate rot = Geom::Rotate(lineSeparation.angle()); - //Geom::Translate trans = Geom::Translate(center - C); - A = Geom::Point(center[X],center[Y]+(dist/2.0)); - B = Geom::Point(center[X],center[Y]-(dist/2.0)); - Geom::Path path; - path.start( A ); - path.appendNew( B ); - path *= Geom::Affine(rot); - //path *= Geom::Affine(trans); - reflection_line.set_new_value(path.toPwSb(), true); - A = path.initialPoint(); - B = path.finalPoint(); + center.param_setValue(path.pointAt(0.5)); + if(knot_holder){ + knot_holder->update_knots(); + } + } else if( mode == MT_FREE) { + std::vector mline(reflection_line.get_pathvector()); + if(!are_near(previousCenter,center, 0.01)){ + Geom::Point trans = center - mline[0].pointAt(0.5); + mline[0] *= Geom::Affine(1,0,0,1,trans[X],trans[Y]); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); + reflection_line.set_new_value(mline[0].toPwSb(), true); + lineSeparation.setPoints(A,B); + } else { + center.param_setValue(mline[0].pointAt(0.5)); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); + lineSeparation.setPoints(A,B); + if(knot_holder){ + knot_holder->update_knots(); + } + } + previousCenter = center; } - lineSeparation.setPoints(A,B); + item->apply_to_clippath(item); item->apply_to_mask(item); } @@ -126,14 +132,15 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) original_bbox(lpeitem); - Point A(boundingbox_X.max(), boundingbox_Y.max()); - Point B(boundingbox_X.max(), boundingbox_Y.min()); + Point A(boundingbox_X.max(), boundingbox_Y.min()); + Point B(boundingbox_X.max(), boundingbox_Y.max()); Point C(boundingbox_X.max(), boundingbox_Y.middle()); Geom::Path path; path.start( A ); path.appendNew( B ); reflection_line.set_new_value(path.toPwSb(), true); center.param_setValue(C); + previousCenter = center; } int @@ -154,8 +161,8 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); std::vector path_out; Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(-100000.0); + Geom::Point lineStart = lineSeparation.pointAt(-100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(100000.0); mlineExpanded.start( lineStart); mlineExpanded.appendNew( lineEnd); @@ -210,7 +217,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) if(reverseFusion){ position *= -1; } - if(position == -1){ + if(position == 1){ Geom::Path mirror = portion.reverse() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); @@ -227,7 +234,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) if(reverseFusion){ position *= -1; } - if(cs.size()!=0 && position == -1){ + if(cs.size()!=0 && position == 1){ Geom::Path portion = original.portion(timeStart, original.size()); portion = portion.reverse(); Geom::Path mirror = portion.reverse() * m; @@ -248,7 +255,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) } portion.clear(); } - if(cs.size() == 0 && position == -1){ + if(cs.size() == 0 && position == 1){ temp_path.push_back(original); temp_path.push_back(original * m); } @@ -273,8 +280,8 @@ LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector PathVector pathv; Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(-100000.0); + Geom::Point lineStart = lineSeparation.pointAt(-100000.0); + Geom::Point lineEnd = lineSeparation.pointAt(100000.0); mlineExpanded.start( lineStart); mlineExpanded.appendNew( lineEnd); pathv.push_back(mlineExpanded); @@ -300,9 +307,7 @@ void KnotHolderEntityCenterMirrorSymmetry::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) { LPEMirrorSymmetry* lpe = dynamic_cast(_effect); - Geom::Point const s = snap_knot_position(p, state); - lpe->center.param_setValue(s); // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 4a5ea4755..8c6c49c7d 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -64,6 +64,7 @@ private: BoolParam reverseFusion; PathParam reflection_line; Geom::Line lineSeparation; + Geom::Point previousCenter; PointParam center; LPEMirrorSymmetry(const LPEMirrorSymmetry&); -- cgit v1.2.3 From 6c067ce093126cf23d9b038011b2effa1390fd07 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 26 Dec 2014 23:57:43 +0100 Subject: warping into a layer (bzr r13682.1.21) --- src/live_effects/lpe-mirror_symmetry.cpp | 17 +++++++++++++++++ src/live_effects/lpe-mirror_symmetry.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index b0a4831f5..8df2eb176 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -55,6 +55,7 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), + reflectionFromPage(_("Use page as relecion base"), _("Use page as relecion base"), "reflectionFromPage", &wr, this, false), reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") { @@ -64,6 +65,7 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : registerParameter( &discard_orig_path); registerParameter( &fusionPaths); registerParameter( &reverseFusion); + registerParameter( &reflectionFromPage); registerParameter( &reflection_line); registerParameter( ¢er); @@ -73,6 +75,21 @@ LPEMirrorSymmetry::~LPEMirrorSymmetry() { } +void LPEMirrorSymmetry::doOnApply(SPLPEItem const* lpeitem) +{ + SPDocument *doc = lpeitem->document(); + Inkscape::XML::Document *xml_doc = doc->getReprDoc(); + sp_selection_group_impl(GSList *p, group, xml_doc, doc); + Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); + group->setAttribute("inkscape:groupmode", "layer"); + sp_selection_group_impl(p, group, xml_doc, doc); + gchar *href = g_strdup_printf("#%s", this->lpeobject_href); + SP_LPE_ITEM(group)->addPathEffect(href, true); + lpeitem->removeCurrentPathEffect(false) + g_free(href); + Inkscape::GC::release(group); +} + void LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) { diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 8c6c49c7d..6e9e7dd1a 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -44,6 +44,8 @@ public: virtual void doOnApply (SPLPEItem const* lpeitem); + virtual void doOnApply(SPLPEItem const* lpeitem); + virtual void doBeforeEffect (SPLPEItem const* lpeitem); virtual int pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X); @@ -62,6 +64,7 @@ private: BoolParam discard_orig_path; BoolParam fusionPaths; BoolParam reverseFusion; + BoolParam reflectionFromPage; PathParam reflection_line; Geom::Line lineSeparation; Geom::Point previousCenter; -- cgit v1.2.3 From bccbad7c2400905a823f9241294fa62e90c9a6a3 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Wed, 18 Mar 2015 21:41:04 +0100 Subject: fix to trunk (bzr r13682.1.24) --- src/knotholder.cpp | 11 ++------ src/live_effects/effect.cpp | 9 +----- src/live_effects/effect.h | 1 - src/live_effects/lpe-mirror_symmetry.cpp | 47 ++++++++++---------------------- src/live_effects/lpe-mirror_symmetry.h | 2 +- 5 files changed, 19 insertions(+), 51 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index de1b88b2c..6d39fa5fa 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -68,14 +68,9 @@ KnotHolder::KnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderReleasedFun sizeUpdatedConn = ControlManager::getManager().connectCtrlSizeChanged(sigc::mem_fun(*this, &KnotHolder::updateControlSizes)); } -KnotHolder::~KnotHolder() { - if(SP_IS_LPE_ITEM(item)){ - Inkscape::LivePathEffect::Effect *effect = SP_LPE_ITEM(item)->getCurrentLPE(); - if(effect){ - effect->removeHandles(); - } - } - sp_object_unref(item); +KnotHolder::~KnotHolder() +{ + sp_object_unref(item); for (std::list::iterator i = entity.begin(); i != entity.end(); ++i) { diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 5cff0f352..042bac523 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -373,7 +373,6 @@ Effect::Effect(LivePathEffectObject *lpeobject) registerParameter( dynamic_cast(&is_visible) ); is_visible.widget_is_visible = false; current_zoom = 0.0; - knot_holder = NULL; } Effect::~Effect() @@ -620,7 +619,7 @@ Effect::registerParameter(Parameter * param) void Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { using namespace Inkscape::LivePathEffect; - knot_holder = knotholder; + // add handles provided by the effect itself addKnotHolderEntities(knotholder, desktop, item); @@ -630,12 +629,6 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { } } -void -Effect::removeHandles(){ - if(knot_holder){ - knot_holder = NULL; - } -} /** * Return a vector of PathVectors which contain all canvas indicators for this effect. * This is the function called by external code to get all canvas indicators (effect and its parameters) diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index bfce7b7dd..ac1f0b8dc 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -101,7 +101,6 @@ public: // (but spiro lpe still needs it!) virtual LPEPathFlashType pathFlashType() const { return DEFAULT; } void addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); - void removeHandles(); std::vector getCanvasIndicators(SPLPEItem const* lpeitem); inline bool providesOwnFlashPaths() const { diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index f39b92e58..e549ad697 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -27,7 +27,6 @@ #include "knot-holder-entity.h" #include "knotholder.h" - namespace Inkscape { namespace LivePathEffect { @@ -43,9 +42,12 @@ namespace MS { class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { public: - KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) {}; + KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) {this->knoth = effect->knoth;}; + virtual ~KnotHolderEntityCenterMirrorSymmetry() { this->knoth = NULL;} virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); virtual Geom::Point knot_get() const; +private: + KnotHolder *knoth; }; } // namespace MS @@ -56,19 +58,19 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), - fixedReflectionLine(_("Fixed reflection line"), _("Fixed reflection line"), "fixedReflectionLine", &wr, this, false), reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), - center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") + center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring"), + knoth(NULL) { show_orig_path = true; + registerParameter(&mode); registerParameter( &discard_orig_path); registerParameter( &fusionPaths); registerParameter( &reverseFusion); - registerParameter( &distanceToX); - registerParameter( &distanceToY); registerParameter( &reflection_line); registerParameter( ¢er); + } LPEMirrorSymmetry::~LPEMirrorSymmetry() @@ -81,7 +83,6 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) using namespace Geom; SPLPEItem * item = const_cast(lpeitem); - SPObject *subitem = static_cast(item); Point A(boundingbox_X.max(), boundingbox_Y.min()); Point B(boundingbox_X.max(), boundingbox_Y.max()); Point C(boundingbox_X.max(), boundingbox_Y.middle()); @@ -93,15 +94,15 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) A = Geom::Point(center[X],boundingbox_Y.min()); B = Geom::Point(center[X],boundingbox_Y.max()); } - if( mode == MT_X || mode == MT_Y || mode == MT_FIXED_X || mode == MT_FIXED_Y ){ + if( mode == MT_X || mode == MT_Y ){ Geom::Path path; path.start( A ); path.appendNew( B ); reflection_line.set_new_value(path.toPwSb(), true); lineSeparation.setPoints(A,B); center.param_setValue(path.pointAt(0.5)); - if(knot_holder){ - knot_holder->update_knots(); + if(knoth){ + knoth->update_knots(); } } else if( mode == MT_FREE) { std::vector mline(reflection_line.get_pathvector()); @@ -117,8 +118,8 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) A = mline[0].initialPoint(); B = mline[0].finalPoint(); lineSeparation.setPoints(A,B); - if(knot_holder){ - knot_holder->update_knots(); + if(knoth){ + knoth->update_knots(); } } previousCenter = center; @@ -133,27 +134,6 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) { using namespace Geom; - /* - SPDocument *doc = lpeitem->document; - Inkscape::XML::Document *xml_doc = doc->getReprDoc(); - Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); - group->setAttribute("inkscape:groupmode", "layer"); - SPLPEItem* item = const_cast(lpeitem); - Inkscape::XML::Node *current = item->getRepr(); - gint topmost = current->position(); - Inkscape::XML::Node *top_current = current->parent(); - Inkscape::XML::Node *spnew = current->duplicate(xml_doc); - sp_repr_unparent(current); - group->appendChild(spnew); - Inkscape::GC::release(spnew); - top_current->appendChild(group); - group->setPosition(topmost + 1); - gchar *href = g_strdup_printf("#%s", item->getCurrentLPE()->getRepr()->attribute("id")); - SP_LPE_ITEM(group)->addPathEffect(href, true); - item->removeCurrentPathEffect(false); - g_free(href); - Inkscape::GC::release(group); - */ original_bbox(lpeitem); Point A(boundingbox_X.max(), boundingbox_Y.min()); @@ -315,6 +295,7 @@ LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector void LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { { + knoth = knotholder; KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, _("Adjust the center") ); diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index c18fb265d..97d641bcc 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -62,11 +62,11 @@ private: BoolParam discard_orig_path; BoolParam fusionPaths; BoolParam reverseFusion; - BoolParam fixedReflectionLine; PathParam reflection_line; Geom::Line lineSeparation; Geom::Point previousCenter; PointParam center; + KnotHolder *knoth; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); -- cgit v1.2.3 From a34915d4a9af00a7bf4fe7fdc20dcadbaf619edd Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 10 Apr 2015 22:11:17 +0200 Subject: Fix coding style issues in mirror symmetry code (bzr r13682.1.25) --- src/live_effects/lpe-mirror_symmetry.cpp | 179 ++++++++++++++++--------------- src/live_effects/lpe-mirror_symmetry.h | 14 +-- 2 files changed, 100 insertions(+), 93 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index e549ad697..5bae6738b 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -42,8 +42,14 @@ namespace MS { class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { public: - KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) {this->knoth = effect->knoth;}; - virtual ~KnotHolderEntityCenterMirrorSymmetry() { this->knoth = NULL;} + KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) + { + this->knoth = effect->knoth; + }; + virtual ~KnotHolderEntityCenterMirrorSymmetry() + { + this->knoth = NULL; + } virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); virtual Geom::Point knot_get() const; private: @@ -56,8 +62,8 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), mode(_("Mode"), _("Symetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - fusionPaths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusionPaths", &wr, this, true), - reverseFusion(_("Reverse fusion"), _("Reverse fusion"), "reverseFusion", &wr, this, false), + fusion_paths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusion_paths", &wr, this, true), + reverse_fusion(_("Reverse fusion"), _("Reverse fusion"), "reverse_fusion", &wr, this, false), reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring"), knoth(NULL) @@ -66,8 +72,8 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : registerParameter(&mode); registerParameter( &discard_orig_path); - registerParameter( &fusionPaths); - registerParameter( &reverseFusion); + registerParameter( &fusion_paths); + registerParameter( &reverse_fusion); registerParameter( &reflection_line); registerParameter( ¢er); @@ -83,46 +89,46 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) using namespace Geom; SPLPEItem * item = const_cast(lpeitem); - Point A(boundingbox_X.max(), boundingbox_Y.min()); - Point B(boundingbox_X.max(), boundingbox_Y.max()); - Point C(boundingbox_X.max(), boundingbox_Y.middle()); - if(mode == MT_Y){ - A = Geom::Point(boundingbox_X.min(),center[Y]); - B = Geom::Point(boundingbox_X.max(),center[Y]); + Point point_a(boundingbox_X.max(), boundingbox_Y.min()); + Point point_b(boundingbox_X.max(), boundingbox_Y.max()); + Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); + if(mode == MT_Y) { + point_a = Geom::Point(boundingbox_X.min(),center[Y]); + point_b = Geom::Point(boundingbox_X.max(),center[Y]); } - if(mode == MT_X){ - A = Geom::Point(center[X],boundingbox_Y.min()); - B = Geom::Point(center[X],boundingbox_Y.max()); + if(mode == MT_X) { + point_a = Geom::Point(center[X],boundingbox_Y.min()); + point_b = Geom::Point(center[X],boundingbox_Y.max()); } - if( mode == MT_X || mode == MT_Y ){ + if( mode == MT_X || mode == MT_Y ) { Geom::Path path; - path.start( A ); - path.appendNew( B ); + path.start( point_a ); + path.appendNew( point_b ); reflection_line.set_new_value(path.toPwSb(), true); - lineSeparation.setPoints(A,B); + line_separation.setPoints(point_a, point_b); center.param_setValue(path.pointAt(0.5)); - if(knoth){ + if(knoth) { knoth->update_knots(); } } else if( mode == MT_FREE) { - std::vector mline(reflection_line.get_pathvector()); - if(!are_near(previousCenter,center, 0.01)){ - Geom::Point trans = center - mline[0].pointAt(0.5); - mline[0] *= Geom::Affine(1,0,0,1,trans[X],trans[Y]); - A = mline[0].initialPoint(); - B = mline[0].finalPoint(); - reflection_line.set_new_value(mline[0].toPwSb(), true); - lineSeparation.setPoints(A,B); + std::vector line_m(reflection_line.get_pathvector()); + if(!are_near(previous_center,center, 0.01)) { + Geom::Point trans = center - line_m[0].pointAt(0.5); + line_m[0] *= Geom::Affine(1,0,0,1,trans[X],trans[Y]); + point_a = line_m[0].initialPoint(); + point_b = line_m[0].finalPoint(); + reflection_line.set_new_value(line_m[0].toPwSb(), true); + line_separation.setPoints(point_a, point_b); } else { - center.param_setValue(mline[0].pointAt(0.5)); - A = mline[0].initialPoint(); - B = mline[0].finalPoint(); - lineSeparation.setPoints(A,B); - if(knoth){ + center.param_setValue(line_m[0].pointAt(0.5)); + point_a = line_m[0].initialPoint(); + point_b = line_m[0].finalPoint(); + line_separation.setPoints(point_a, point_b); + if(knoth) { knoth->update_knots(); } } - previousCenter = center; + previous_center = center; } item->apply_to_clippath(item); @@ -136,22 +142,22 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) original_bbox(lpeitem); - Point A(boundingbox_X.max(), boundingbox_Y.min()); - Point B(boundingbox_X.max(), boundingbox_Y.max()); - Point C(boundingbox_X.max(), boundingbox_Y.middle()); + Point point_a(boundingbox_X.max(), boundingbox_Y.min()); + Point point_b(boundingbox_X.max(), boundingbox_Y.max()); + Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); Geom::Path path; - path.start( A ); - path.appendNew( B ); + path.start( point_a ); + path.appendNew( point_b ); reflection_line.set_new_value(path.toPwSb(), true); - center.param_setValue(C); - previousCenter = center; + center.param_setValue(point_c); + previous_center = center; } -int -LPEMirrorSymmetry::pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X) +int +LPEMirrorSymmetry::pointSideOfLine(Geom::Point point_a, Geom::Point point_b, Geom::Point point_x) { //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line - double pos = (B[Geom::X]-A[Geom::X])*(X[Geom::Y]-A[Geom::Y]) - (B[Geom::Y]-A[Geom::Y])*(X[Geom::X]-A[Geom::X]); + double pos = (point_b[Geom::X]-point_a[Geom::X])*(point_x[Geom::Y]-point_a[Geom::Y]) - (point_b[Geom::Y]-point_a[Geom::Y])*(point_x[Geom::X]-point_a[Geom::X]); return (pos < 0) ? -1 : (pos > 0); } @@ -164,23 +170,23 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) } Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); std::vector path_out; - Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); - mlineExpanded.start( lineStart); - mlineExpanded.appendNew( lineEnd); + Geom::Path line_m_expanded; + Geom::Point line_start = line_separation.pointAt(-100000.0); + Geom::Point line_end = line_separation.pointAt(100000.0); + line_m_expanded.start( line_start); + line_m_expanded.appendNew( line_end); - if (!discard_orig_path && !fusionPaths) { + if (!discard_orig_path && !fusion_paths) { path_out = path_in; } - Geom::Point A(lineStart); - Geom::Point B(lineEnd); + Geom::Point point_a(line_start); + Geom::Point point_b(line_end); - Geom::Affine m1(1.0, 0.0, 0.0, 1.0, A[0], A[1]); - double hyp = Geom::distance(A, B); - double c = (B[0] - A[0]) / hyp; // cos(alpha) - double s = (B[1] - A[1]) / hyp; // sin(alpha) + Geom::Affine m1(1.0, 0.0, 0.0, 1.0, point_a[0], point_a[1]); + double hyp = Geom::distance(point_a, point_b); + double c = (point_b[0] - point_a[0]) / hyp; // cos(alpha) + double s = (point_b[1] - point_a[1]) / hyp; // sin(alpha) Geom::Affine m2(c, -s, s, c, 0.0, 0.0); Geom::Affine sca(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); @@ -189,15 +195,15 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) m = m * sca; m = m * m2.inverse(); m = m * m1; - - if(fusionPaths && !discard_orig_path){ + + if(fusion_paths && !discard_orig_path) { for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); - path_it != original_pathv.end(); ++path_it) { - if (path_it->empty()){ + path_it != original_pathv.end(); ++path_it) { + if (path_it->empty()) { continue; } std::vector temp_path; - double timeStart = 0.0; + double time_start = 0.0; int position = 0; bool end_open = false; if (path_it->closed()) { @@ -207,48 +213,48 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) } } Geom::Path original = (Geom::Path)(*path_it); - if(end_open && path_it->closed()){ + if(end_open && path_it->closed()) { original.close(false); original.appendNew( original.initialPoint() ); original.close(true); } - Geom::Crossings cs = crossings(original, mlineExpanded); + Geom::Crossings cs = crossings(original, line_m_expanded); for(unsigned int i = 0; i < cs.size(); i++) { double timeEnd = cs[i].ta; - Geom::Path portion = original.portion(timeStart, timeEnd); + Geom::Path portion = original.portion(time_start, timeEnd); Geom::Point middle = portion.pointAt((double)portion.size()/2.0); - position = pointSideOfLine(lineStart, lineEnd, middle); - if(reverseFusion){ + position = pointSideOfLine(line_start, line_end, middle); + if(reverse_fusion) { position *= -1; } - if(position == 1){ + if(position == 1) { Geom::Path mirror = portion.reverse() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); - if(i!=0){ + if(i!=0) { portion.setFinal(portion.initialPoint()); portion.close(); } temp_path.push_back(portion); } portion.clear(); - timeStart = timeEnd; + time_start = timeEnd; } - position = pointSideOfLine(lineStart, lineEnd, original.finalPoint()); - if(reverseFusion){ + position = pointSideOfLine(line_start, line_end, original.finalPoint()); + if(reverse_fusion) { position *= -1; } - if(cs.size()!=0 && position == 1){ - Geom::Path portion = original.portion(timeStart, original.size()); + if(cs.size()!=0 && position == 1) { + Geom::Path portion = original.portion(time_start, original.size()); portion = portion.reverse(); Geom::Path mirror = portion.reverse() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); portion = portion.reverse(); - if (!original.closed()){ + if (!original.closed()) { temp_path.push_back(portion); } else { - if(cs.size() >1 ){ + if(cs.size() >1 ) { portion.setFinal(temp_path[0].initialPoint()); portion.setInitial(temp_path[0].finalPoint()); temp_path[0].append(portion); @@ -259,7 +265,7 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) } portion.clear(); } - if(cs.size() == 0 && position == 1){ + if(cs.size() == 0 && position == 1) { temp_path.push_back(original); temp_path.push_back(original * m); } @@ -267,8 +273,8 @@ LPEMirrorSymmetry::doEffect_path (std::vector const & path_in) temp_path.clear(); } } - - if (!fusionPaths || discard_orig_path) { + + if (!fusion_paths || discard_orig_path) { for (int i = 0; i < static_cast(path_in.size()); ++i) { path_out.push_back(path_in[i] * m); } @@ -283,17 +289,18 @@ LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector using namespace Geom; PathVector pathv; - Geom::Path mlineExpanded; - Geom::Point lineStart = lineSeparation.pointAt(-100000.0); - Geom::Point lineEnd = lineSeparation.pointAt(100000.0); - mlineExpanded.start( lineStart); - mlineExpanded.appendNew( lineEnd); - pathv.push_back(mlineExpanded); + Geom::Path line_m_expanded; + Geom::Point line_start = line_separation.pointAt(-100000.0); + Geom::Point line_end = line_separation.pointAt(100000.0); + line_m_expanded.start( line_start); + line_m_expanded.appendNew( line_end); + pathv.push_back(line_m_expanded); hp_vec.push_back(pathv); } -void -LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { +void +LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) +{ { knoth = knotholder; KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 97d641bcc..43535650d 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -26,8 +26,8 @@ namespace Inkscape { namespace LivePathEffect { namespace MS { - // we need a separate namespace to avoid clashes with LPEPerpBisector - class KnotHolderEntityCenterMirrorSymmetry; +// we need a separate namespace to avoid clashes with LPEPerpBisector +class KnotHolderEntityCenterMirrorSymmetry; } enum ModeType { @@ -37,7 +37,7 @@ enum ModeType { MT_END }; -class LPEMirrorSymmetry : public Effect, GroupBBoxEffect{ +class LPEMirrorSymmetry : public Effect, GroupBBoxEffect { public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); virtual ~LPEMirrorSymmetry(); @@ -60,11 +60,11 @@ protected: private: EnumParam mode; BoolParam discard_orig_path; - BoolParam fusionPaths; - BoolParam reverseFusion; + BoolParam fusion_paths; + BoolParam reverse_fusion; PathParam reflection_line; - Geom::Line lineSeparation; - Geom::Point previousCenter; + Geom::Line line_separation; + Geom::Point previous_center; PointParam center; KnotHolder *knoth; -- cgit v1.2.3 From 8c56f58ee39a66e2a25252e01c795296a958ec40 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 25 Jul 2015 04:15:13 +0200 Subject: Fix helper path (bzr r13682.1.29) --- src/live_effects/lpe-mirror_symmetry.cpp | 44 ++++++++------------------------ src/live_effects/lpe-mirror_symmetry.h | 1 - 2 files changed, 10 insertions(+), 35 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 7a9870d78..79cdf947d 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -42,18 +42,9 @@ namespace MS { class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { public: - KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect) - { - this->knoth = effect->knoth; - }; - virtual ~KnotHolderEntityCenterMirrorSymmetry() - { - this->knoth = NULL; - } + KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); virtual Geom::Point knot_get() const; -private: - KnotHolder *knoth; }; } // namespace MS @@ -65,8 +56,7 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : fusion_paths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusion_paths", &wr, this, true), reverse_fusion(_("Reverse fusion"), _("Reverse fusion"), "reverse_fusion", &wr, this, false), reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), - center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring"), - knoth(NULL) + center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") { show_orig_path = true; @@ -106,10 +96,7 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) path.appendNew( point_b ); reflection_line.set_new_value(path.toPwSb(), true); line_separation.setPoints(point_a, point_b); - center.param_setValue(path.pointAt(0.5)); - if(knoth) { - knoth->update_knots(); - } + center.param_setValue(path.pointAt(0.5), true); } else if( mode == MT_FREE) { Geom::PathVector line_m(reflection_line.get_pathvector()); if(!are_near(previous_center,center, 0.01)) { @@ -120,13 +107,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) reflection_line.set_new_value(line_m[0].toPwSb(), true); line_separation.setPoints(point_a, point_b); } else { - center.param_setValue(line_m[0].pointAt(0.5)); + center.param_setValue(line_m[0].pointAt(0.5), true); point_a = line_m[0].initialPoint(); point_b = line_m[0].finalPoint(); line_separation.setPoints(point_a, point_b); - if(knoth) { - knoth->update_knots(); - } } previous_center = center; } @@ -228,7 +212,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) position *= -1; } if(position == 1) { - Geom::Path mirror = portion.reverse() * m; + Geom::Path mirror = portion.reversed() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); if(i!=0) { @@ -246,11 +230,11 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) } if(cs.size()!=0 && position == 1) { Geom::Path portion = original.portion(time_start, original.size()); - portion = portion.reverse(); - Geom::Path mirror = portion.reverse() * m; + portion = portion.reversed(); + Geom::Path mirror = portion.reversed() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); - portion = portion.reverse(); + portion = portion.reversed(); if (!original.closed()) { temp_path.push_back(portion); } else { @@ -287,22 +271,14 @@ void LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector &hp_vec) { using namespace Geom; - - PathVector pathv; - Geom::Path line_m_expanded; - Geom::Point line_start = line_separation.pointAt(-100000.0); - Geom::Point line_end = line_separation.pointAt(100000.0); - line_m_expanded.start( line_start); - line_m_expanded.appendNew( line_end); - pathv.push_back(line_m_expanded); - hp_vec.push_back(pathv); + hp_vec.clear(); + hp_vec.push_back(reflection_line.get_pathvector()); } void LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { { - knoth = knotholder; KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, _("Adjust the center") ); diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index b30972308..12bf2e7d3 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -66,7 +66,6 @@ private: Geom::Line line_separation; Geom::Point previous_center; PointParam center; - KnotHolder *knoth; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); -- cgit v1.2.3 From e2386a9a6f485c6e1a1ea6d4ca4f7b3809fda9c6 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 25 Jul 2015 04:24:00 +0200 Subject: clean merge (bzr r13682.1.30) --- src/knotholder.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 6d39fa5fa..a2d1cf017 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -68,9 +68,8 @@ KnotHolder::KnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderReleasedFun sizeUpdatedConn = ControlManager::getManager().connectCtrlSizeChanged(sigc::mem_fun(*this, &KnotHolder::updateControlSizes)); } -KnotHolder::~KnotHolder() -{ - sp_object_unref(item); +KnotHolder::~KnotHolder() { + sp_object_unref(item); for (std::list::iterator i = entity.begin(); i != entity.end(); ++i) { -- cgit v1.2.3 From 46df96973716748cde5c889a49379fcc6bbd82b9 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 25 Jul 2015 04:30:46 +0200 Subject: update credits (bzr r13682.1.31) --- src/live_effects/lpe-mirror_symmetry.cpp | 1 + src/live_effects/lpe-mirror_symmetry.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 79cdf947d..685dc6354 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -6,6 +6,7 @@ * Maximilian Albert * Johan Engelen * Abhishek Sharma + * Jabiertxof * * Copyright (C) Johan Engelen 2007 * Copyright (C) Maximilin Albert 2008 diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 12bf2e7d3..0874f0c7e 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -8,6 +8,7 @@ * Authors: * Maximilian Albert * Johan Engelen + * Jabiertxof * * Copyright (C) Johan Engelen 2007 * Copyright (C) Maximilin Albert 2008 -- cgit v1.2.3 From d9f06856ceb526436c47237546f3e18f24d65b9f Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 19 Mar 2016 21:08:57 +0100 Subject: Start fixing Krzysztof review (bzr r13682.1.34) --- src/live_effects/lpe-mirror_symmetry.cpp | 24 ++++++++++++------------ src/live_effects/lpe-mirror_symmetry.h | 9 ++------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 9ea25dbb3..d25225797 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -52,18 +52,18 @@ public: LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), - mode(_("Mode"), _("Symetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), + mode(_("Mode"), _("Symmetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - fusion_paths(_("Fusioned symetry"), _("Fusion right side whith symm"), "fusion_paths", &wr, this, true), - reverse_fusion(_("Reverse fusion"), _("Reverse fusion"), "reverse_fusion", &wr, this, false), - reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), - center(_("Center of mirroring (X or Y)"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") + fuse_paths(_("Fuse paths"), _("Fuse original and the reflection into a single path"), "fuse_paths", &wr, this, true), + oposite_fuse(_("Oposite fuse"), _("Picks the other side of the mirror as the original"), "oposite_fuse", &wr, this, false), + reflection_line(_("Axis of reflection:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), + center(_("Center of mirroring"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") { show_orig_path = true; registerParameter(&mode); registerParameter( &discard_orig_path); - registerParameter( &fusion_paths); - registerParameter( &reverse_fusion); + registerParameter( &fuse_paths); + registerParameter( &oposite_fuse); registerParameter( &reflection_line); registerParameter( ¢er); apply_to_clippath_and_mask = true; @@ -161,7 +161,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) line_m_expanded.start( line_start); line_m_expanded.appendNew( line_end); - if (!discard_orig_path && !fusion_paths) { + if (!discard_orig_path && !fuse_paths) { path_out = path_in; } @@ -181,7 +181,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) m = m * m2.inverse(); m = m * m1; - if(fusion_paths && !discard_orig_path) { + if(fuse_paths && !discard_orig_path) { for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); path_it != original_pathv.end(); ++path_it) { if (path_it->empty()) { @@ -209,7 +209,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) Geom::Path portion = original.portion(time_start, timeEnd); Geom::Point middle = portion.pointAt((double)portion.size()/2.0); position = pointSideOfLine(line_start, line_end, middle); - if(reverse_fusion) { + if(oposite_fuse) { position *= -1; } if(position == 1) { @@ -226,7 +226,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) time_start = timeEnd; } position = pointSideOfLine(line_start, line_end, original.finalPoint()); - if(reverse_fusion) { + if(oposite_fuse) { position *= -1; } if(cs.size()!=0 && position == 1) { @@ -259,7 +259,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) } } - if (!fusion_paths || discard_orig_path) { + if (!fuse_paths || discard_orig_path) { for (int i = 0; i < static_cast(path_in.size()); ++i) { path_out.push_back(path_in[i] * m); } diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 0874f0c7e..f4e4678a7 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -42,15 +42,10 @@ class LPEMirrorSymmetry : public Effect, GroupBBoxEffect { public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); virtual ~LPEMirrorSymmetry(); - virtual void doOnApply (SPLPEItem const* lpeitem); - virtual void doBeforeEffect (SPLPEItem const* lpeitem); - virtual int pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X); - virtual Geom::PathVector doEffect_path (Geom::PathVector const & path_in); - /* the knotholder entity classes must be declared friends */ friend class MS::KnotHolderEntityCenterMirrorSymmetry; void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); @@ -61,8 +56,8 @@ protected: private: EnumParam mode; BoolParam discard_orig_path; - BoolParam fusion_paths; - BoolParam reverse_fusion; + BoolParam fuse_paths; + BoolParam oposite_fuse; PathParam reflection_line; Geom::Line line_separation; Geom::Point previous_center; -- cgit v1.2.3 From 13783613a9af3770294713af80a8e17b51089266 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 24 Mar 2016 02:27:33 +0100 Subject: Fixing Krzysztof review (bzr r13682.1.36) --- src/live_effects/lpe-mirror_symmetry.cpp | 66 +++++++++++++++----------------- src/live_effects/lpe-mirror_symmetry.h | 1 - 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index d25225797..60ad13fc8 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -83,23 +83,28 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) Point point_a(boundingbox_X.max(), boundingbox_Y.min()); Point point_b(boundingbox_X.max(), boundingbox_Y.max()); Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); - if(mode == MT_Y) { + if (mode == MT_Y) { point_a = Geom::Point(boundingbox_X.min(),center[Y]); point_b = Geom::Point(boundingbox_X.max(),center[Y]); } - if(mode == MT_X) { + if (mode == MT_X) { point_a = Geom::Point(center[X],boundingbox_Y.min()); point_b = Geom::Point(center[X],boundingbox_Y.max()); } - if( mode == MT_X || mode == MT_Y ) { + if ( mode == MT_X || mode == MT_Y ) { Geom::Path path; path.start( point_a ); path.appendNew( point_b ); reflection_line.set_new_value(path.toPwSb(), true); line_separation.setPoints(point_a, point_b); center.param_setValue(path.pointAt(0.5), true); - } else if( mode == MT_FREE) { + } else if ( mode == MT_FREE) { Geom::PathVector line_m(reflection_line.get_pathvector()); + Geom::Line line_symm; + line_symm->setPoints(line_m->initialPoint(), line_m->finalPoint()); + Geom::GenericRect bbox(boundingbox_X.min(), boundingbox_Y.min(), boundingbox_X.max(), boundingbox_Y.max()); + line_m[0].initialPoint = bbox->nearestEdgePoint(line_m->initialPoint()); + line_m[0].finalPoint = bbox->nearestEdgePoint(line_m->finalPoint()) if(!are_near(previous_center,center, 0.01)) { Geom::Point trans = center - line_m[0].pointAt(0.5); line_m[0] *= Geom::Affine(1,0,0,1,trans[X],trans[Y]); @@ -111,6 +116,7 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) center.param_setValue(line_m[0].pointAt(0.5), true); point_a = line_m[0].initialPoint(); point_b = line_m[0].finalPoint(); + reflection_line.set_new_value(line_m[0].toPwSb(), true); line_separation.setPoints(point_a, point_b); } previous_center = center; @@ -138,52 +144,42 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) previous_center = center; } -int -LPEMirrorSymmetry::pointSideOfLine(Geom::Point point_a, Geom::Point point_b, Geom::Point point_x) -{ - //http://stackoverflow.com/questions/1560492/how-to-tell-whether-a-point-is-to-the-right-or-left-side-of-a-line - double pos = (point_b[Geom::X]-point_a[Geom::X])*(point_x[Geom::Y]-point_a[Geom::Y]) - (point_b[Geom::Y]-point_a[Geom::Y])*(point_x[Geom::X]-point_a[Geom::X]); - return (pos < 0) ? -1 : (pos > 0); -} Geom::PathVector LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) { // Don't allow empty path parameter: - if ( reflection_line.get_pathvector().empty() ) { + Geom::PathVector line_m(reflection_line.get_pathvector()); + if ( line_m.empty() ) { return path_in; } Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); Geom::PathVector path_out; - Geom::Path line_m_expanded; - Geom::Point line_start = line_separation.pointAt(-100000.0); - Geom::Point line_end = line_separation.pointAt(100000.0); - line_m_expanded.start( line_start); - line_m_expanded.appendNew( line_end); - + if (!discard_orig_path && !fuse_paths) { path_out = path_in; } - Geom::Point point_a(line_start); - Geom::Point point_b(line_end); + Geom::Point point_a(line_separation.initialPoint()); + Geom::Point point_b(line_separation.finalPoint()); - Geom::Affine m1(1.0, 0.0, 0.0, 1.0, point_a[0], point_a[1]); + Geom::Translate m1(point_a[0], point_a[1]); double hyp = Geom::distance(point_a, point_b); double c = (point_b[0] - point_a[0]) / hyp; // cos(alpha) double s = (point_b[1] - point_a[1]) / hyp; // sin(alpha) Geom::Affine m2(c, -s, s, c, 0.0, 0.0); - Geom::Affine sca(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); + Geom::Scale sca(1.0, -1.0); Geom::Affine m = m1.inverse() * m2; m = m * sca; m = m * m2.inverse(); m = m * m1; - if(fuse_paths && !discard_orig_path) { + if (fuse_paths && !discard_orig_path) { for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); - path_it != original_pathv.end(); ++path_it) { + path_it != original_pathv.end(); ++path_it) + { if (path_it->empty()) { continue; } @@ -197,22 +193,22 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) end_open = true; } } - Geom::Path original = (Geom::Path)(*path_it); - if(end_open && path_it->closed()) { + Geom::Path original = path_it; + if (end_open && path_it->closed()) { original.close(false); original.appendNew( original.initialPoint() ); original.close(true); } - Geom::Crossings cs = crossings(original, line_m_expanded); - for(unsigned int i = 0; i < cs.size(); i++) { + Geom::Crossings cs = crossings(original, line_m); + for (unsigned int i = 0; i < cs.size(); i++) { double timeEnd = cs[i].ta; Geom::Path portion = original.portion(time_start, timeEnd); Geom::Point middle = portion.pointAt((double)portion.size()/2.0); - position = pointSideOfLine(line_start, line_end, middle); - if(oposite_fuse) { + position = Geom::sgn(Geom::cross(point_b - point_a, middle - point_a)); + if (oposite_fuse) { position *= -1; } - if(position == 1) { + if (position == 1) { Geom::Path mirror = portion.reversed() * m; mirror.setInitial(portion.finalPoint()); portion.append(mirror); @@ -225,11 +221,11 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) portion.clear(); time_start = timeEnd; } - position = pointSideOfLine(line_start, line_end, original.finalPoint()); - if(oposite_fuse) { + position = position = Geom::sgn(Geom::cross(point_b - point_a, original.finalPoint() - point_a )); + if (oposite_fuse) { position *= -1; } - if(cs.size()!=0 && position == 1) { + if (cs.size()!=0 && position == 1) { Geom::Path portion = original.portion(time_start, original.size()); portion = portion.reversed(); Geom::Path mirror = portion.reversed() * m; @@ -250,7 +246,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) } portion.clear(); } - if(cs.size() == 0 && position == 1) { + if (cs.size() == 0 && position == 1) { temp_path.push_back(original); temp_path.push_back(original * m); } diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index f4e4678a7..cd6f2a0ce 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -44,7 +44,6 @@ public: virtual ~LPEMirrorSymmetry(); virtual void doOnApply (SPLPEItem const* lpeitem); virtual void doBeforeEffect (SPLPEItem const* lpeitem); - virtual int pointSideOfLine(Geom::Point A, Geom::Point B, Geom::Point X); virtual Geom::PathVector doEffect_path (Geom::PathVector const & path_in); /* the knotholder entity classes must be declared friends */ friend class MS::KnotHolderEntityCenterMirrorSymmetry; -- cgit v1.2.3 From f72d5b89423864be61cf0399f6177986fc7ccd3b Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 24 Mar 2016 18:37:34 +0100 Subject: Fixes and added horizontal and vertical page mode (bzr r13682.1.38) --- src/live_effects/lpe-mirror_symmetry.cpp | 255 +++++++++++++++++++------------ src/live_effects/lpe-mirror_symmetry.h | 7 +- 2 files changed, 159 insertions(+), 103 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 60ad13fc8..9a2a54a13 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -27,11 +27,14 @@ #include <2geom/affine.h> #include "knot-holder-entity.h" #include "knotholder.h" +#include "inkscape.h" namespace Inkscape { namespace LivePathEffect { static const Util::EnumData ModeTypeData[MT_END] = { + { MT_V, N_("Vertical Page Center"), "Vertical Page Center, use select tool to move item instead line" }, + { MT_H, N_("Horizontal Page Center"), "Horizontal Page Center, use select tool to move item instead line" }, { MT_FREE, N_("Free from reflection line"), "Free from path" }, { MT_X, N_("X from middle knot"), "X from middle knot" }, { MT_Y, N_("Y from middle knot"), "Y from middle knot" } @@ -48,24 +51,38 @@ public: virtual Geom::Point knot_get() const; }; +class KnotHolderEntityStartMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityStartMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + +class KnotHolderEntityEndMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityEndMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + } // namespace MS LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), mode(_("Mode"), _("Symmetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - fuse_paths(_("Fuse paths"), _("Fuse original and the reflection into a single path"), "fuse_paths", &wr, this, true), + fuse_paths(_("Fuse paths"), _("Fuse original and the reflection into a single path"), "fuse_paths", &wr, this, false), oposite_fuse(_("Oposite fuse"), _("Picks the other side of the mirror as the original"), "oposite_fuse", &wr, this, false), - reflection_line(_("Axis of reflection:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L1,0"), - center(_("Center of mirroring"), _("Center of the mirror"), "center", &wr, this, "Adjust the center of mirroring") + start_point(_("Start mirror line"), _("Start mirror line"), "start_point", &wr, this, "Adjust the start of mirroring"), + end_point(_("End mirror line"), _("End mirror line"), "end_point", &wr, this, "Adjust end of mirroring") { show_orig_path = true; registerParameter(&mode); registerParameter( &discard_orig_path); registerParameter( &fuse_paths); registerParameter( &oposite_fuse); - registerParameter( &reflection_line); - registerParameter( ¢er); + registerParameter( &start_point); + registerParameter( &end_point); apply_to_clippath_and_mask = true; } @@ -79,51 +96,60 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) { using namespace Geom; - SPLPEItem * item = const_cast(lpeitem); Point point_a(boundingbox_X.max(), boundingbox_Y.min()); Point point_b(boundingbox_X.max(), boundingbox_Y.max()); Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); if (mode == MT_Y) { - point_a = Geom::Point(boundingbox_X.min(),center[Y]); - point_b = Geom::Point(boundingbox_X.max(),center[Y]); + point_a = Geom::Point(boundingbox_X.min(),center_point[Y]); + point_b = Geom::Point(boundingbox_X.max(),center_point[Y]); } if (mode == MT_X) { - point_a = Geom::Point(center[X],boundingbox_Y.min()); - point_b = Geom::Point(center[X],boundingbox_Y.max()); + point_a = Geom::Point(center_point[X],boundingbox_Y.min()); + point_b = Geom::Point(center_point[X],boundingbox_Y.max()); } + line_separation.setPoints(point_a, point_b); if ( mode == MT_X || mode == MT_Y ) { - Geom::Path path; - path.start( point_a ); - path.appendNew( point_b ); - reflection_line.set_new_value(path.toPwSb(), true); - line_separation.setPoints(point_a, point_b); - center.param_setValue(path.pointAt(0.5), true); + start_point.param_setValue(point_a); + end_point.param_setValue(point_b); + center_point = Geom::middle_point(point_a, point_b); } else if ( mode == MT_FREE) { - Geom::PathVector line_m(reflection_line.get_pathvector()); - Geom::Line line_symm; - line_symm->setPoints(line_m->initialPoint(), line_m->finalPoint()); - Geom::GenericRect bbox(boundingbox_X.min(), boundingbox_Y.min(), boundingbox_X.max(), boundingbox_Y.max()); - line_m[0].initialPoint = bbox->nearestEdgePoint(line_m->initialPoint()); - line_m[0].finalPoint = bbox->nearestEdgePoint(line_m->finalPoint()) - if(!are_near(previous_center,center, 0.01)) { - Geom::Point trans = center - line_m[0].pointAt(0.5); - line_m[0] *= Geom::Affine(1,0,0,1,trans[X],trans[Y]); - point_a = line_m[0].initialPoint(); - point_b = line_m[0].finalPoint(); - reflection_line.set_new_value(line_m[0].toPwSb(), true); - line_separation.setPoints(point_a, point_b); + if(!are_near(previous_center,center_point, 0.01)) { + Geom::Point trans = center_point - previous_center; + start_point.param_setValue(start_point * trans); + end_point.param_setValue(end_point * trans); + line_separation.setPoints(start_point, end_point); } else { - center.param_setValue(line_m[0].pointAt(0.5), true); - point_a = line_m[0].initialPoint(); - point_b = line_m[0].finalPoint(); - reflection_line.set_new_value(line_m[0].toPwSb(), true); - line_separation.setPoints(point_a, point_b); + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); + } + } else if ( mode == MT_V){ + if(SP_ACTIVE_DESKTOP){ + SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); + Geom::Rect view_box_rect = doc->getViewBox(); + Geom::Point sp = Geom::Point(view_box_rect.width()/2.0, 0); + sp *= lpeitem->transform.inverse(); + start_point.param_setValue(sp); + Geom::Point ep = Geom::Point(view_box_rect.width()/2.0, view_box_rect.height()); + ep *= lpeitem->transform.inverse(); + end_point.param_setValue(ep); + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); + } + } else { //horizontal page + if(SP_ACTIVE_DESKTOP){ + SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); + Geom::Rect view_box_rect = doc->getViewBox(); + Geom::Point sp = Geom::Point(0, view_box_rect.height()/2.0); + sp *= lpeitem->transform.inverse(); + start_point.param_setValue(sp); + Geom::Point ep = Geom::Point(view_box_rect.width(), view_box_rect.height()/2.0); + ep *= lpeitem->transform.inverse(); + end_point.param_setValue(ep); + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); } - previous_center = center; } - - item->apply_to_clippath(item); - item->apply_to_mask(item); + previous_center = center_point; } void @@ -136,23 +162,18 @@ LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) Point point_a(boundingbox_X.max(), boundingbox_Y.min()); Point point_b(boundingbox_X.max(), boundingbox_Y.max()); Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); - Geom::Path path; - path.start( point_a ); - path.appendNew( point_b ); - reflection_line.set_new_value(path.toPwSb(), true); - center.param_setValue(point_c); - previous_center = center; + start_point.param_setValue(point_a); + start_point.param_update_default(point_a); + end_point.param_setValue(point_b); + end_point.param_update_default(point_b); + center_point = point_c; + previous_center = center_point; } Geom::PathVector LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) { - // Don't allow empty path parameter: - Geom::PathVector line_m(reflection_line.get_pathvector()); - if ( line_m.empty() ) { - return path_in; - } Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); Geom::PathVector path_out; @@ -183,7 +204,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) if (path_it->empty()) { continue; } - Geom::PathVector temp_path; + Geom::PathVector tmp_path; double time_start = 0.0; int position = 0; bool end_open = false; @@ -193,65 +214,88 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) end_open = true; } } - Geom::Path original = path_it; + Geom::Path original = *path_it; if (end_open && path_it->closed()) { original.close(false); original.appendNew( original.initialPoint() ); original.close(true); } - Geom::Crossings cs = crossings(original, line_m); - for (unsigned int i = 0; i < cs.size(); i++) { - double timeEnd = cs[i].ta; - Geom::Path portion = original.portion(time_start, timeEnd); - Geom::Point middle = portion.pointAt((double)portion.size()/2.0); - position = Geom::sgn(Geom::cross(point_b - point_a, middle - point_a)); - if (oposite_fuse) { - position *= -1; - } - if (position == 1) { - Geom::Path mirror = portion.reversed() * m; - mirror.setInitial(portion.finalPoint()); - portion.append(mirror); - if(i!=0) { - portion.setFinal(portion.initialPoint()); - portion.close(); + Geom::Point s = start_point; + Geom::Point e = end_point; + double dir = line_separation.angle(); + double diagonal = Geom::distance(Geom::Point(boundingbox_X.min(),boundingbox_Y.min()),Geom::Point(boundingbox_X.max(),boundingbox_Y.max())); + Geom::Rect bbox(Geom::Point(boundingbox_X.min(),boundingbox_Y.min()),Geom::Point(boundingbox_X.max(),boundingbox_Y.max())); + double size_divider = Geom::distance(center_point, bbox) + diagonal; + s = Geom::Point::polar(dir,size_divider) + center_point; + e = Geom::Point::polar(dir + Geom::rad_from_deg(180),size_divider) + center_point; + Geom::Path divider = Geom::Path(s); + divider.appendNew(e); + Geom::Crossings cs = crossings(original, divider); + std::vector crossed; + for(unsigned int i = 0; i < cs.size(); i++) { + crossed.push_back(cs[i].ta); + } + std::sort(crossed.begin(), crossed.end()); + for (unsigned int i = 0; i < crossed.size(); i++) { + double time_end = crossed[i]; + if (time_start != time_end && time_end - time_start > Geom::EPSILON) { + Geom::Path portion = original.portion(time_start, time_end); + if (!portion.empty()) { + Geom::Point middle = portion.pointAt((double)portion.size()/2.0); + position = Geom::sgn(Geom::cross(e - s, middle - s)); + if (!oposite_fuse) { + position *= -1; + } + if (position == 1) { + Geom::Path mirror = portion.reversed() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); + if(i!=0) { + portion.setFinal(portion.initialPoint()); + portion.close(); + } + tmp_path.push_back(portion); + } + portion.clear(); } - temp_path.push_back(portion); } - portion.clear(); - time_start = timeEnd; + time_start = time_end; } - position = position = Geom::sgn(Geom::cross(point_b - point_a, original.finalPoint() - point_a )); - if (oposite_fuse) { + position = Geom::sgn(Geom::cross(e - s, original.finalPoint() - s)); + if (!oposite_fuse) { position *= -1; } if (cs.size()!=0 && position == 1) { - Geom::Path portion = original.portion(time_start, original.size()); - portion = portion.reversed(); - Geom::Path mirror = portion.reversed() * m; - mirror.setInitial(portion.finalPoint()); - portion.append(mirror); - portion = portion.reversed(); - if (!original.closed()) { - temp_path.push_back(portion); - } else { - if(cs.size() >1 ) { - portion.setFinal(temp_path[0].initialPoint()); - portion.setInitial(temp_path[0].finalPoint()); - temp_path[0].append(portion); - } else { - temp_path.push_back(portion); + if (time_start != original.size() && original.size() - time_start > Geom::EPSILON) { + Geom::Path portion = original.portion(time_start, original.size()); + if (!portion.empty()) { + portion = portion.reversed(); + Geom::Path mirror = portion.reversed() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); + portion = portion.reversed(); + if (!original.closed()) { + tmp_path.push_back(portion); + } else { + if (cs.size() > 1 && tmp_path.size() > 0 && tmp_path[0].size() > 0 ) { + portion.setFinal(tmp_path[0].initialPoint()); + portion.setInitial(tmp_path[0].finalPoint()); + tmp_path[0].append(portion); + } else { + tmp_path.push_back(portion); + } + tmp_path[0].close(); + } + portion.clear(); } - temp_path[0].close(); } - portion.clear(); } if (cs.size() == 0 && position == 1) { - temp_path.push_back(original); - temp_path.push_back(original * m); + tmp_path.push_back(original); + tmp_path.push_back(original * m); } - path_out.insert(path_out.end(), temp_path.begin(), temp_path.end()); - temp_path.clear(); + path_out.insert(path_out.end(), tmp_path.begin(), tmp_path.end()); + tmp_path.clear(); } } @@ -269,19 +313,28 @@ LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector { using namespace Geom; hp_vec.clear(); - hp_vec.push_back(reflection_line.get_pathvector()); + Geom::Path path; + Geom::Point s = start_point; + Geom::Point e = end_point; + path.start( s ); + path.appendNew( e ); + Geom::PathVector helper; + helper.push_back(path); + hp_vec.push_back(helper); } void LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { + SPKnotShapeType knot_shape = SP_KNOT_SHAPE_CIRCLE; + SPKnotModeType knot_mode = SP_KNOT_MODE_XOR; + guint32 knot_color = 0x0000ff00; { - KnotHolderEntity *e = new MS::KnotHolderEntityCenterMirrorSymmetry(this); - e->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, - _("Adjust the center") ); - knotholder->add(e); + KnotHolderEntity *c = new MS::KnotHolderEntityCenterMirrorSymmetry(this); + c->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("Adjust the center"), knot_shape, knot_mode, knot_color ); + knotholder->add(c); } - }; namespace MS { @@ -293,7 +346,7 @@ KnotHolderEntityCenterMirrorSymmetry::knot_set(Geom::Point const &p, Geom::Point { LPEMirrorSymmetry* lpe = dynamic_cast(_effect); Geom::Point const s = snap_knot_position(p, state); - lpe->center.param_setValue(s); + lpe->center_point = s; // 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); @@ -303,7 +356,7 @@ Geom::Point KnotHolderEntityCenterMirrorSymmetry::knot_get() const { LPEMirrorSymmetry const *lpe = dynamic_cast(_effect); - return lpe->center; + return lpe->center_point; } } // namespace CR diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index cd6f2a0ce..3a244cb7e 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -32,6 +32,8 @@ class KnotHolderEntityCenterMirrorSymmetry; } enum ModeType { + MT_V, + MT_H, MT_FREE, MT_X, MT_Y, @@ -57,10 +59,11 @@ private: BoolParam discard_orig_path; BoolParam fuse_paths; BoolParam oposite_fuse; - PathParam reflection_line; + PointParam start_point; + PointParam end_point; Geom::Line line_separation; Geom::Point previous_center; - PointParam center; + Geom::Point center_point; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); -- cgit v1.2.3 From 01a611b9d6b1884f25e3deabfa20326168985563 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sat, 7 May 2016 10:48:16 +0200 Subject: Temporarily hard code GTK3 ruler background to off white. (bzr r14872) --- src/widgets/ruler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index fe851d592..5c715b0be 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -284,9 +284,11 @@ sp_ruler_init (SPRuler *ruler) priv->font_scale = DEFAULT_RULER_FONT_SCALE; #if GTK_CHECK_VERSION(3,0,0) + // Hard code off-white for the moment. Where is @bg_color defined? const gchar *str = "SPRuler {\n" - " background-color: @bg_color;\n" +// " background-color: @bg_color;\n" + " background-color: #f8f8f8;\n" "}\n"; GtkCssProvider *css = gtk_css_provider_new (); gtk_css_provider_load_from_data (css, str, -1, NULL); -- cgit v1.2.3 From efb5cb4a7a22316994b7a89b51d3d0ca654dabd4 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sat, 7 May 2016 22:55:11 -0700 Subject: Clarify license. Most Inkscape source code does not specify GPL version, so it is essentially GPL v1+ under section 9. Authors of the few GPL v2 only files were contacted and all agreed to relicense under GPL v2 or later. We also have a few files copies from GIMP, which are GPL v3+, so the complete program is available under GPL v3 or later. (bzr r14873) --- COPYING | 340 ------------------------ COPYING.LIB | 515 ------------------------------------ GPL2.txt | 340 ++++++++++++++++++++++++ LGPL2.1.txt | 515 ++++++++++++++++++++++++++++++++++++ src/display/sp-canvas.cpp | 5 +- src/live_effects/lpe-jointype.cpp | 2 +- src/live_effects/lpe-jointype.h | 2 +- src/main-cmdlineact.cpp | 2 +- src/main-cmdlineact.h | 2 +- src/ui/dialog/object-properties.cpp | 2 +- src/ui/dialog/object-properties.h | 2 +- 11 files changed, 865 insertions(+), 862 deletions(-) delete mode 100644 COPYING delete mode 100644 COPYING.LIB create mode 100644 GPL2.txt create mode 100644 LGPL2.1.txt diff --git a/COPYING b/COPYING deleted file mode 100644 index b83f24b68..000000000 --- a/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/COPYING.LIB b/COPYING.LIB deleted file mode 100644 index 5ca31f63b..000000000 --- a/COPYING.LIB +++ /dev/null @@ -1,515 +0,0 @@ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. -^L - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. -^L - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. -^L - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - - To apply these terms, attach the following notices to the library. -It is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper -mail. - -You should also get your employer (if you work as a programmer) or -your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James -Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/GPL2.txt b/GPL2.txt new file mode 100644 index 000000000..b83f24b68 --- /dev/null +++ b/GPL2.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/LGPL2.1.txt b/LGPL2.1.txt new file mode 100644 index 000000000..5ca31f63b --- /dev/null +++ b/LGPL2.1.txt @@ -0,0 +1,515 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +^L + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +^L + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +^L + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper +mail. + +You should also get your employer (if you work as a programmer) or +your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James +Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index decb14184..7d76fa043 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -1159,8 +1159,11 @@ void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation allocation->width, allocation->height); if (canvas->_backing_store) { cairo_t *cr = cairo_create(new_backing_store); - cairo_set_source_surface(cr, canvas->_backing_store, 0, 0); + cairo_translate(cr, -canvas->_x0, -canvas->_y0); cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source(cr, canvas->_background); + cairo_paint(cr); + cairo_set_source_surface(cr, canvas->_backing_store, canvas->_x0, canvas->_y0); cairo_paint(cr); cairo_destroy(cr); cairo_surface_destroy(canvas->_backing_store); diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp index 2eef315dd..fe42932be 100644 --- a/src/live_effects/lpe-jointype.cpp +++ b/src/live_effects/lpe-jointype.cpp @@ -4,7 +4,7 @@ * * Copyright (C) 2014 Authors * -* Released under GNU GPL v2, read the file 'COPYING' for more information +* Released under GNU GPL v2+, read the file 'COPYING' for more information */ #include "live_effects/parameter/enum.h" diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h index fddaeb619..ef7abdcc7 100644 --- a/src/live_effects/lpe-jointype.h +++ b/src/live_effects/lpe-jointype.h @@ -3,7 +3,7 @@ * * Copyright (C) 2014 Authors * - * Released under GNU GPL v2, read the file COPYING for more information + * Released under GNU GPL v2+, read the file COPYING for more information */ #ifndef INKSCAPE_LPE_JOINTYPE_H diff --git a/src/main-cmdlineact.cpp b/src/main-cmdlineact.cpp index ade83dfda..496c16d5d 100644 --- a/src/main-cmdlineact.cpp +++ b/src/main-cmdlineact.cpp @@ -4,7 +4,7 @@ * * Copyright (C) 2007 Authors * - * Released under GNU GPL v2, read the file 'COPYING' for more information + * Released under GNU GPL v2+, read the file 'COPYING' for more information */ #include diff --git a/src/main-cmdlineact.h b/src/main-cmdlineact.h index c8ef64f10..b8ec4403b 100644 --- a/src/main-cmdlineact.h +++ b/src/main-cmdlineact.h @@ -12,7 +12,7 @@ * * Copyright (C) 2007 Authors * - * Released under GNU GPL v2.x, read the file 'COPYING' for more information + * Released under GNU GPL v2+, read the file 'COPYING' for more information */ namespace Inkscape { diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index 75430ed44..be46129c4 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Copyright (C) 2012 Kris De Gussem - * c++ version based on former C-version (GPL v2) with authors: + * c++ version based on former C-version (GPL v2+) with authors: * Lauris Kaplinski * bulia byak * Johan Engelen diff --git a/src/ui/dialog/object-properties.h b/src/ui/dialog/object-properties.h index 093f273f6..dc28c0bad 100644 --- a/src/ui/dialog/object-properties.h +++ b/src/ui/dialog/object-properties.h @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Copyright (C) 2012 Kris De Gussem - * c++version based on former C-version (GPL v2) with authors: + * c++version based on former C-version (GPL v2+) with authors: * Lauris Kaplinski * bulia byak * Johan Engelen -- cgit v1.2.3 From d203a9944763922eef658bb1234315d2a0e8b740 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sat, 7 May 2016 23:35:17 -0700 Subject: Change license in about box to GPLv3 - due to GIMP files (bzr r14874) --- COPYING | 12 + GPL3.txt | 674 +++++++++++++++++++++++++++++++++ Makefile.am | 3 + src/ui/dialog/aboutbox.cpp | 906 +++++++++++++++++++++++++++++++-------------- 4 files changed, 1309 insertions(+), 286 deletions(-) create mode 100644 COPYING create mode 100644 GPL3.txt diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..0223a508e --- /dev/null +++ b/COPYING @@ -0,0 +1,12 @@ +Inkscape license +================ + +Most of Inkscape source code is available under the GNU General Public License, +version 2 or later, with the exception of a few files copied from GIMP, which +are available under GNU GPL version 3 or later. As such, the complete binaries +of Inkscape are currently covered by the terms of GNU GPL version 3 or later. + +Several standalone libraries contained in Inkscape's source code repository are +available under GNU Lesser General Public License or the Mozilla Public License. + +See the files GPL2.txt and GPL3.txt for the full license text. diff --git a/GPL3.txt b/GPL3.txt new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/GPL3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile.am b/Makefile.am index a4d4b2abf..d4e416d4e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,6 +38,9 @@ man_MANS = \ EXTRA_DIST = \ acinclude.m4 \ autogen.sh \ + GPL2.txt \ + GPL3.txt \ + LGPL2.1.txt \ fix-roff-punct \ intltool-extract.in \ intltool-merge.in \ diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index b653a630d..1a87a9718 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -618,288 +618,629 @@ void AboutBox::initStrings() { * This text is copied from the COPYING file */ license_text = - " GNU GENERAL PUBLIC LICENSE\n" - " Version 2, June 1991\n" + " GNU GENERAL PUBLIC LICENSE\n" + " Version 3, 29 June 2007\n" "\n" - " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n" - " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + " Copyright (C) 2007 Free Software Foundation, Inc. \n" " Everyone is permitted to copy and distribute verbatim copies\n" " of this license document, but changing it is not allowed.\n" "\n" - " Preamble\n" + " Preamble\n" "\n" - " The licenses for most software are designed to take away your\n" - "freedom to share and change it. By contrast, the GNU General Public\n" - "License is intended to guarantee your freedom to share and change free\n" - "software--to make sure the software is free for all its users. This\n" - "General Public License applies to most of the Free Software\n" - "Foundation's software and to any other program whose authors commit to\n" - "using it. (Some other Free Software Foundation software is covered by\n" - "the GNU Library General Public License instead.) You can apply it to\n" + " The GNU General Public License is a free, copyleft license for\n" + "software and other kinds of works.\n" + "\n" + " The licenses for most software and other practical works are designed\n" + "to take away your freedom to share and change the works. By contrast,\n" + "the GNU General Public License is intended to guarantee your freedom to\n" + "share and change all versions of a program--to make sure it remains free\n" + "software for all its users. We, the Free Software Foundation, use the\n" + "GNU General Public License for most of our software; it applies also to\n" + "any other work released this way by its authors. You can apply it to\n" "your programs, too.\n" "\n" " When we speak of free software, we are referring to freedom, not\n" "price. Our General Public Licenses are designed to make sure that you\n" "have the freedom to distribute copies of free software (and charge for\n" - "this service if you wish), that you receive source code or can get it\n" - "if you want it, that you can change the software or use pieces of it\n" - "in new free programs; and that you know you can do these things.\n" + "them if you wish), that you receive source code or can get it if you\n" + "want it, that you can change the software or use pieces of it in new\n" + "free programs, and that you know you can do these things.\n" "\n" - " To protect your rights, we need to make restrictions that forbid\n" - "anyone to deny you these rights or to ask you to surrender the rights.\n" - "These restrictions translate to certain responsibilities for you if you\n" - "distribute copies of the software, or if you modify it.\n" + " To protect your rights, we need to prevent others from denying you\n" + "these rights or asking you to surrender the rights. Therefore, you have\n" + "certain responsibilities if you distribute copies of the software, or if\n" + "you modify it: responsibilities to respect the freedom of others.\n" "\n" " For example, if you distribute copies of such a program, whether\n" - "gratis or for a fee, you must give the recipients all the rights that\n" - "you have. You must make sure that they, too, receive or can get the\n" - "source code. And you must show them these terms so they know their\n" - "rights.\n" - "\n" - " We protect your rights with two steps: (1) copyright the software, and\n" - "(2) offer you this license which gives you legal permission to copy,\n" - "distribute and/or modify the software.\n" - "\n" - " Also, for each author's protection and ours, we want to make certain\n" - "that everyone understands that there is no warranty for this free\n" - "software. If the software is modified by someone else and passed on, we\n" - "want its recipients to know that what they have is not the original, so\n" - "that any problems introduced by others will not reflect on the original\n" - "authors' reputations.\n" - "\n" - " Finally, any free program is threatened constantly by software\n" - "patents. We wish to avoid the danger that redistributors of a free\n" - "program will individually obtain patent licenses, in effect making the\n" - "program proprietary. To prevent this, we have made it clear that any\n" - "patent must be licensed for everyone's free use or not licensed at all.\n" + "gratis or for a fee, you must pass on to the recipients the same\n" + "freedoms that you received. You must make sure that they, too, receive\n" + "or can get the source code. And you must show them these terms so they\n" + "know their rights.\n" + "\n" + " Developers that use the GNU GPL protect your rights with two steps:\n" + "(1) assert copyright on the software, and (2) offer you this License\n" + "giving you legal permission to copy, distribute and/or modify it.\n" + "\n" + " For the developers' and authors' protection, the GPL clearly explains\n" + "that there is no warranty for this free software. For both users' and\n" + "authors' sake, the GPL requires that modified versions be marked as\n" + "changed, so that their problems will not be attributed erroneously to\n" + "authors of previous versions.\n" + "\n" + " Some devices are designed to deny users access to install or run\n" + "modified versions of the software inside them, although the manufacturer\n" + "can do so. This is fundamentally incompatible with the aim of\n" + "protecting users' freedom to change the software. The systematic\n" + "pattern of such abuse occurs in the area of products for individuals to\n" + "use, which is precisely where it is most unacceptable. Therefore, we\n" + "have designed this version of the GPL to prohibit the practice for those\n" + "products. If such problems arise substantially in other domains, we\n" + "stand ready to extend this provision to those domains in future versions\n" + "of the GPL, as needed to protect the freedom of users.\n" + "\n" + " Finally, every program is threatened constantly by software patents.\n" + "States should not allow patents to restrict development and use of\n" + "software on general-purpose computers, but in those that do, we wish to\n" + "avoid the special danger that patents applied to a free program could\n" + "make it effectively proprietary. To prevent this, the GPL assures that\n" + "patents cannot be used to render the program non-free.\n" "\n" " The precise terms and conditions for copying, distribution and\n" "modification follow.\n" "\n" - " GNU GENERAL PUBLIC LICENSE\n" - " TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n" - "\n" - " 0. This License applies to any program or other work which contains\n" - "a notice placed by the copyright holder saying it may be distributed\n" - "under the terms of this General Public License. The \"Program\", below,\n" - "refers to any such program or work, and a \"work based on the Program\"\n" - "means either the Program or any derivative work under copyright law:\n" - "that is to say, a work containing the Program or a portion of it,\n" - "either verbatim or with modifications and/or translated into another\n" - "language. (Hereinafter, translation is included without limitation in\n" - "the term \"modification\".) Each licensee is addressed as \"you\".\n" - "\n" - "Activities other than copying, distribution and modification are not\n" - "covered by this License; they are outside its scope. The act of\n" - "running the Program is not restricted, and the output from the Program\n" - "is covered only if its contents constitute a work based on the\n" - "Program (independent of having been made by running the Program).\n" - "Whether that is true depends on what the Program does.\n" - "\n" - " 1. You may copy and distribute verbatim copies of the Program's\n" - "source code as you receive it, in any medium, provided that you\n" - "conspicuously and appropriately publish on each copy an appropriate\n" - "copyright notice and disclaimer of warranty; keep intact all the\n" - "notices that refer to this License and to the absence of any warranty;\n" - "and give any other recipients of the Program a copy of this License\n" - "along with the Program.\n" - "\n" - "You may charge a fee for the physical act of transferring a copy, and\n" - "you may at your option offer warranty protection in exchange for a fee.\n" - "\n" - " 2. You may modify your copy or copies of the Program or any portion\n" - "of it, thus forming a work based on the Program, and copy and\n" - "distribute such modifications or work under the terms of Section 1\n" - "above, provided that you also meet all of these conditions:\n" - "\n" - " a) You must cause the modified files to carry prominent notices\n" - " stating that you changed the files and the date of any change.\n" - "\n" - " b) You must cause any work that you distribute or publish, that in\n" - " whole or in part contains or is derived from the Program or any\n" - " part thereof, to be licensed as a whole at no charge to all third\n" - " parties under the terms of this License.\n" - "\n" - " c) If the modified program normally reads commands interactively\n" - " when run, you must cause it, when started running for such\n" - " interactive use in the most ordinary way, to print or display an\n" - " announcement including an appropriate copyright notice and a\n" - " notice that there is no warranty (or else, saying that you provide\n" - " a warranty) and that users may redistribute the program under\n" - " these conditions, and telling the user how to view a copy of this\n" - " License. (Exception: if the Program itself is interactive but\n" - " does not normally print such an announcement, your work based on\n" - " the Program is not required to print an announcement.)\n" - "\n" - "These requirements apply to the modified work as a whole. If\n" - "identifiable sections of that work are not derived from the Program,\n" - "and can be reasonably considered independent and separate works in\n" - "themselves, then this License, and its terms, do not apply to those\n" - "sections when you distribute them as separate works. But when you\n" - "distribute the same sections as part of a whole which is a work based\n" - "on the Program, the distribution of the whole must be on the terms of\n" - "this License, whose permissions for other licensees extend to the\n" - "entire whole, and thus to each and every part regardless of who wrote it.\n" - "\n" - "Thus, it is not the intent of this section to claim rights or contest\n" - "your rights to work written entirely by you; rather, the intent is to\n" - "exercise the right to control the distribution of derivative or\n" - "collective works based on the Program.\n" - "\n" - "In addition, mere aggregation of another work not based on the Program\n" - "with the Program (or with a work based on the Program) on a volume of\n" - "a storage or distribution medium does not bring the other work under\n" - "the scope of this License.\n" - "\n" - " 3. You may copy and distribute the Program (or a work based on it,\n" - "under Section 2) in object code or executable form under the terms of\n" - "Sections 1 and 2 above provided that you also do one of the following:\n" - "\n" - " a) Accompany it with the complete corresponding machine-readable\n" - " source code, which must be distributed under the terms of Sections\n" - " 1 and 2 above on a medium customarily used for software interchange; or,\n" - "\n" - " b) Accompany it with a written offer, valid for at least three\n" - " years, to give any third party, for a charge no more than your\n" - " cost of physically performing source distribution, a complete\n" - " machine-readable copy of the corresponding source code, to be\n" - " distributed under the terms of Sections 1 and 2 above on a medium\n" - " customarily used for software interchange; or,\n" - "\n" - " c) Accompany it with the information you received as to the offer\n" - " to distribute corresponding source code. (This alternative is\n" - " allowed only for noncommercial distribution and only if you\n" - " received the program in object code or executable form with such\n" - " an offer, in accord with Subsection b above.)\n" - "\n" - "The source code for a work means the preferred form of the work for\n" - "making modifications to it. For an executable work, complete source\n" - "code means all the source code for all modules it contains, plus any\n" - "associated interface definition files, plus the scripts used to\n" - "control compilation and installation of the executable. However, as a\n" - "special exception, the source code distributed need not include\n" - "anything that is normally distributed (in either source or binary\n" - "form) with the major components (compiler, kernel, and so on) of the\n" - "operating system on which the executable runs, unless that component\n" - "itself accompanies the executable.\n" - "\n" - "If distribution of executable or object code is made by offering\n" - "access to copy from a designated place, then offering equivalent\n" - "access to copy the source code from the same place counts as\n" - "distribution of the source code, even though third parties are not\n" - "compelled to copy the source along with the object code.\n" - "\n" - " 4. You may not copy, modify, sublicense, or distribute the Program\n" - "except as expressly provided under this License. Any attempt\n" - "otherwise to copy, modify, sublicense or distribute the Program is\n" - "void, and will automatically terminate your rights under this License.\n" - "However, parties who have received copies, or rights, from you under\n" - "this License will not have their licenses terminated so long as such\n" - "parties remain in full compliance.\n" - "\n" - " 5. You are not required to accept this License, since you have not\n" - "signed it. However, nothing else grants you permission to modify or\n" - "distribute the Program or its derivative works. These actions are\n" - "prohibited by law if you do not accept this License. Therefore, by\n" - "modifying or distributing the Program (or any work based on the\n" - "Program), you indicate your acceptance of this License to do so, and\n" - "all its terms and conditions for copying, distributing or modifying\n" - "the Program or works based on it.\n" - "\n" - " 6. Each time you redistribute the Program (or any work based on the\n" - "Program), the recipient automatically receives a license from the\n" - "original licensor to copy, distribute or modify the Program subject to\n" - "these terms and conditions. You may not impose any further\n" - "restrictions on the recipients' exercise of the rights granted herein.\n" - "You are not responsible for enforcing compliance by third parties to\n" + " TERMS AND CONDITIONS\n" + "\n" + " 0. Definitions.\n" + "\n" + " \"This License\" refers to version 3 of the GNU General Public License.\n" + "\n" + " \"Copyright\" also means copyright-like laws that apply to other kinds of\n" + "works, such as semiconductor masks.\n" + "\n" + " \"The Program\" refers to any copyrightable work licensed under this\n" + "License. Each licensee is addressed as \"you\". \"Licensees\" and\n" + "\"recipients\" may be individuals or organizations.\n" + "\n" + " To \"modify\" a work means to copy from or adapt all or part of the work\n" + "in a fashion requiring copyright permission, other than the making of an\n" + "exact copy. The resulting work is called a \"modified version\" of the\n" + "earlier work or a work \"based on\" the earlier work.\n" + "\n" + " A \"covered work\" means either the unmodified Program or a work based\n" + "on the Program.\n" + "\n" + " To \"propagate\" a work means to do anything with it that, without\n" + "permission, would make you directly or secondarily liable for\n" + "infringement under applicable copyright law, except executing it on a\n" + "computer or modifying a private copy. Propagation includes copying,\n" + "distribution (with or without modification), making available to the\n" + "public, and in some countries other activities as well.\n" + "\n" + " To \"convey\" a work means any kind of propagation that enables other\n" + "parties to make or receive copies. Mere interaction with a user through\n" + "a computer network, with no transfer of a copy, is not conveying.\n" + "\n" + " An interactive user interface displays \"Appropriate Legal Notices\"\n" + "to the extent that it includes a convenient and prominently visible\n" + "feature that (1) displays an appropriate copyright notice, and (2)\n" + "tells the user that there is no warranty for the work (except to the\n" + "extent that warranties are provided), that licensees may convey the\n" + "work under this License, and how to view a copy of this License. If\n" + "the interface presents a list of user commands or options, such as a\n" + "menu, a prominent item in the list meets this criterion.\n" + "\n" + " 1. Source Code.\n" + "\n" + " The \"source code\" for a work means the preferred form of the work\n" + "for making modifications to it. \"Object code\" means any non-source\n" + "form of a work.\n" + "\n" + " A \"Standard Interface\" means an interface that either is an official\n" + "standard defined by a recognized standards body, or, in the case of\n" + "interfaces specified for a particular programming language, one that\n" + "is widely used among developers working in that language.\n" + "\n" + " The \"System Libraries\" of an executable work include anything, other\n" + "than the work as a whole, that (a) is included in the normal form of\n" + "packaging a Major Component, but which is not part of that Major\n" + "Component, and (b) serves only to enable use of the work with that\n" + "Major Component, or to implement a Standard Interface for which an\n" + "implementation is available to the public in source code form. A\n" + "\"Major Component\", in this context, means a major essential component\n" + "(kernel, window system, and so on) of the specific operating system\n" + "(if any) on which the executable work runs, or a compiler used to\n" + "produce the work, or an object code interpreter used to run it.\n" + "\n" + " The \"Corresponding Source\" for a work in object code form means all\n" + "the source code needed to generate, install, and (for an executable\n" + "work) run the object code and to modify the work, including scripts to\n" + "control those activities. However, it does not include the work's\n" + "System Libraries, or general-purpose tools or generally available free\n" + "programs which are used unmodified in performing those activities but\n" + "which are not part of the work. For example, Corresponding Source\n" + "includes interface definition files associated with source files for\n" + "the work, and the source code for shared libraries and dynamically\n" + "linked subprograms that the work is specifically designed to require,\n" + "such as by intimate data communication or control flow between those\n" + "subprograms and other parts of the work.\n" + "\n" + " The Corresponding Source need not include anything that users\n" + "can regenerate automatically from other parts of the Corresponding\n" + "Source.\n" + "\n" + " The Corresponding Source for a work in source code form is that\n" + "same work.\n" + "\n" + " 2. Basic Permissions.\n" + "\n" + " All rights granted under this License are granted for the term of\n" + "copyright on the Program, and are irrevocable provided the stated\n" + "conditions are met. This License explicitly affirms your unlimited\n" + "permission to run the unmodified Program. The output from running a\n" + "covered work is covered by this License only if the output, given its\n" + "content, constitutes a covered work. This License acknowledges your\n" + "rights of fair use or other equivalent, as provided by copyright law.\n" + "\n" + " You may make, run and propagate covered works that you do not\n" + "convey, without conditions so long as your license otherwise remains\n" + "in force. You may convey covered works to others for the sole purpose\n" + "of having them make modifications exclusively for you, or provide you\n" + "with facilities for running those works, provided that you comply with\n" + "the terms of this License in conveying all material for which you do\n" + "not control copyright. Those thus making or running the covered works\n" + "for you must do so exclusively on your behalf, under your direction\n" + "and control, on terms that prohibit them from making any copies of\n" + "your copyrighted material outside their relationship with you.\n" + "\n" + " Conveying under any other circumstances is permitted solely under\n" + "the conditions stated below. Sublicensing is not allowed; section 10\n" + "makes it unnecessary.\n" + "\n" + " 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n" + "\n" + " No covered work shall be deemed part of an effective technological\n" + "measure under any applicable law fulfilling obligations under article\n" + "11 of the WIPO copyright treaty adopted on 20 December 1996, or\n" + "similar laws prohibiting or restricting circumvention of such\n" + "measures.\n" + "\n" + " When you convey a covered work, you waive any legal power to forbid\n" + "circumvention of technological measures to the extent such circumvention\n" + "is effected by exercising rights under this License with respect to\n" + "the covered work, and you disclaim any intention to limit operation or\n" + "modification of the work as a means of enforcing, against the work's\n" + "users, your or third parties' legal rights to forbid circumvention of\n" + "technological measures.\n" + "\n" + " 4. Conveying Verbatim Copies.\n" + "\n" + " You may convey verbatim copies of the Program's source code as you\n" + "receive it, in any medium, provided that you conspicuously and\n" + "appropriately publish on each copy an appropriate copyright notice;\n" + "keep intact all notices stating that this License and any\n" + "non-permissive terms added in accord with section 7 apply to the code;\n" + "keep intact all notices of the absence of any warranty; and give all\n" + "recipients a copy of this License along with the Program.\n" + "\n" + " You may charge any price or no price for each copy that you convey,\n" + "and you may offer support or warranty protection for a fee.\n" + "\n" + " 5. Conveying Modified Source Versions.\n" + "\n" + " You may convey a work based on the Program, or the modifications to\n" + "produce it from the Program, in the form of source code under the\n" + "terms of section 4, provided that you also meet all of these conditions:\n" + "\n" + " a) The work must carry prominent notices stating that you modified\n" + " it, and giving a relevant date.\n" + "\n" + " b) The work must carry prominent notices stating that it is\n" + " released under this License and any conditions added under section\n" + " 7. This requirement modifies the requirement in section 4 to\n" + " \"keep intact all notices\".\n" + "\n" + " c) You must license the entire work, as a whole, under this\n" + " License to anyone who comes into possession of a copy. This\n" + " License will therefore apply, along with any applicable section 7\n" + " additional terms, to the whole of the work, and all its parts,\n" + " regardless of how they are packaged. This License gives no\n" + " permission to license the work in any other way, but it does not\n" + " invalidate such permission if you have separately received it.\n" + "\n" + " d) If the work has interactive user interfaces, each must display\n" + " Appropriate Legal Notices; however, if the Program has interactive\n" + " interfaces that do not display Appropriate Legal Notices, your\n" + " work need not make them do so.\n" + "\n" + " A compilation of a covered work with other separate and independent\n" + "works, which are not by their nature extensions of the covered work,\n" + "and which are not combined with it such as to form a larger program,\n" + "in or on a volume of a storage or distribution medium, is called an\n" + "\"aggregate\" if the compilation and its resulting copyright are not\n" + "used to limit the access or legal rights of the compilation's users\n" + "beyond what the individual works permit. Inclusion of a covered work\n" + "in an aggregate does not cause this License to apply to the other\n" + "parts of the aggregate.\n" + "\n" + " 6. Conveying Non-Source Forms.\n" + "\n" + " You may convey a covered work in object code form under the terms\n" + "of sections 4 and 5, provided that you also convey the\n" + "machine-readable Corresponding Source under the terms of this License,\n" + "in one of these ways:\n" + "\n" + " a) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by the\n" + " Corresponding Source fixed on a durable physical medium\n" + " customarily used for software interchange.\n" + "\n" + " b) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by a\n" + " written offer, valid for at least three years and valid for as\n" + " long as you offer spare parts or customer support for that product\n" + " model, to give anyone who possesses the object code either (1) a\n" + " copy of the Corresponding Source for all the software in the\n" + " product that is covered by this License, on a durable physical\n" + " medium customarily used for software interchange, for a price no\n" + " more than your reasonable cost of physically performing this\n" + " conveying of source, or (2) access to copy the\n" + " Corresponding Source from a network server at no charge.\n" + "\n" + " c) Convey individual copies of the object code with a copy of the\n" + " written offer to provide the Corresponding Source. This\n" + " alternative is allowed only occasionally and noncommercially, and\n" + " only if you received the object code with such an offer, in accord\n" + " with subsection 6b.\n" + "\n" + " d) Convey the object code by offering access from a designated\n" + " place (gratis or for a charge), and offer equivalent access to the\n" + " Corresponding Source in the same way through the same place at no\n" + " further charge. You need not require recipients to copy the\n" + " Corresponding Source along with the object code. If the place to\n" + " copy the object code is a network server, the Corresponding Source\n" + " may be on a different server (operated by you or a third party)\n" + " that supports equivalent copying facilities, provided you maintain\n" + " clear directions next to the object code saying where to find the\n" + " Corresponding Source. Regardless of what server hosts the\n" + " Corresponding Source, you remain obligated to ensure that it is\n" + " available for as long as needed to satisfy these requirements.\n" + "\n" + " e) Convey the object code using peer-to-peer transmission, provided\n" + " you inform other peers where the object code and Corresponding\n" + " Source of the work are being offered to the general public at no\n" + " charge under subsection 6d.\n" + "\n" + " A separable portion of the object code, whose source code is excluded\n" + "from the Corresponding Source as a System Library, need not be\n" + "included in conveying the object code work.\n" + "\n" + " A \"User Product\" is either (1) a \"consumer product\", which means any\n" + "tangible personal property which is normally used for personal, family,\n" + "or household purposes, or (2) anything designed or sold for incorporation\n" + "into a dwelling. In determining whether a product is a consumer product,\n" + "doubtful cases shall be resolved in favor of coverage. For a particular\n" + "product received by a particular user, \"normally used\" refers to a\n" + "typical or common use of that class of product, regardless of the status\n" + "of the particular user or of the way in which the particular user\n" + "actually uses, or expects or is expected to use, the product. A product\n" + "is a consumer product regardless of whether the product has substantial\n" + "commercial, industrial or non-consumer uses, unless such uses represent\n" + "the only significant mode of use of the product.\n" + "\n" + " \"Installation Information\" for a User Product means any methods,\n" + "procedures, authorization keys, or other information required to install\n" + "and execute modified versions of a covered work in that User Product from\n" + "a modified version of its Corresponding Source. The information must\n" + "suffice to ensure that the continued functioning of the modified object\n" + "code is in no case prevented or interfered with solely because\n" + "modification has been made.\n" + "\n" + " If you convey an object code work under this section in, or with, or\n" + "specifically for use in, a User Product, and the conveying occurs as\n" + "part of a transaction in which the right of possession and use of the\n" + "User Product is transferred to the recipient in perpetuity or for a\n" + "fixed term (regardless of how the transaction is characterized), the\n" + "Corresponding Source conveyed under this section must be accompanied\n" + "by the Installation Information. But this requirement does not apply\n" + "if neither you nor any third party retains the ability to install\n" + "modified object code on the User Product (for example, the work has\n" + "been installed in ROM).\n" + "\n" + " The requirement to provide Installation Information does not include a\n" + "requirement to continue to provide support service, warranty, or updates\n" + "for a work that has been modified or installed by the recipient, or for\n" + "the User Product in which it has been modified or installed. Access to a\n" + "network may be denied when the modification itself materially and\n" + "adversely affects the operation of the network or violates the rules and\n" + "protocols for communication across the network.\n" + "\n" + " Corresponding Source conveyed, and Installation Information provided,\n" + "in accord with this section must be in a format that is publicly\n" + "documented (and with an implementation available to the public in\n" + "source code form), and must require no special password or key for\n" + "unpacking, reading or copying.\n" + "\n" + " 7. Additional Terms.\n" + "\n" + " \"Additional permissions\" are terms that supplement the terms of this\n" + "License by making exceptions from one or more of its conditions.\n" + "Additional permissions that are applicable to the entire Program shall\n" + "be treated as though they were included in this License, to the extent\n" + "that they are valid under applicable law. If additional permissions\n" + "apply only to part of the Program, that part may be used separately\n" + "under those permissions, but the entire Program remains governed by\n" + "this License without regard to the additional permissions.\n" + "\n" + " When you convey a copy of a covered work, you may at your option\n" + "remove any additional permissions from that copy, or from any part of\n" + "it. (Additional permissions may be written to require their own\n" + "removal in certain cases when you modify the work.) You may place\n" + "additional permissions on material, added by you to a covered work,\n" + "for which you have or can give appropriate copyright permission.\n" + "\n" + " Notwithstanding any other provision of this License, for material you\n" + "add to a covered work, you may (if authorized by the copyright holders of\n" + "that material) supplement the terms of this License with terms:\n" + "\n" + " a) Disclaiming warranty or limiting liability differently from the\n" + " terms of sections 15 and 16 of this License; or\n" + "\n" + " b) Requiring preservation of specified reasonable legal notices or\n" + " author attributions in that material or in the Appropriate Legal\n" + " Notices displayed by works containing it; or\n" + "\n" + " c) Prohibiting misrepresentation of the origin of that material, or\n" + " requiring that modified versions of such material be marked in\n" + " reasonable ways as different from the original version; or\n" + "\n" + " d) Limiting the use for publicity purposes of names of licensors or\n" + " authors of the material; or\n" + "\n" + " e) Declining to grant rights under trademark law for use of some\n" + " trade names, trademarks, or service marks; or\n" + "\n" + " f) Requiring indemnification of licensors and authors of that\n" + " material by anyone who conveys the material (or modified versions of\n" + " it) with contractual assumptions of liability to the recipient, for\n" + " any liability that these contractual assumptions directly impose on\n" + " those licensors and authors.\n" + "\n" + " All other non-permissive additional terms are considered \"further\n" + "restrictions\" within the meaning of section 10. If the Program as you\n" + "received it, or any part of it, contains a notice stating that it is\n" + "governed by this License along with a term that is a further\n" + "restriction, you may remove that term. If a license document contains\n" + "a further restriction but permits relicensing or conveying under this\n" + "License, you may add to a covered work material governed by the terms\n" + "of that license document, provided that the further restriction does\n" + "not survive such relicensing or conveying.\n" + "\n" + " If you add terms to a covered work in accord with this section, you\n" + "must place, in the relevant source files, a statement of the\n" + "additional terms that apply to those files, or a notice indicating\n" + "where to find the applicable terms.\n" + "\n" + " Additional terms, permissive or non-permissive, may be stated in the\n" + "form of a separately written license, or stated as exceptions;\n" + "the above requirements apply either way.\n" + "\n" + " 8. Termination.\n" + "\n" + " You may not propagate or modify a covered work except as expressly\n" + "provided under this License. Any attempt otherwise to propagate or\n" + "modify it is void, and will automatically terminate your rights under\n" + "this License (including any patent licenses granted under the third\n" + "paragraph of section 11).\n" + "\n" + " However, if you cease all violation of this License, then your\n" + "license from a particular copyright holder is reinstated (a)\n" + "provisionally, unless and until the copyright holder explicitly and\n" + "finally terminates your license, and (b) permanently, if the copyright\n" + "holder fails to notify you of the violation by some reasonable means\n" + "prior to 60 days after the cessation.\n" + "\n" + " Moreover, your license from a particular copyright holder is\n" + "reinstated permanently if the copyright holder notifies you of the\n" + "violation by some reasonable means, this is the first time you have\n" + "received notice of violation of this License (for any work) from that\n" + "copyright holder, and you cure the violation prior to 30 days after\n" + "your receipt of the notice.\n" + "\n" + " Termination of your rights under this section does not terminate the\n" + "licenses of parties who have received copies or rights from you under\n" + "this License. If your rights have been terminated and not permanently\n" + "reinstated, you do not qualify to receive new licenses for the same\n" + "material under section 10.\n" + "\n" + " 9. Acceptance Not Required for Having Copies.\n" + "\n" + " You are not required to accept this License in order to receive or\n" + "run a copy of the Program. Ancillary propagation of a covered work\n" + "occurring solely as a consequence of using peer-to-peer transmission\n" + "to receive a copy likewise does not require acceptance. However,\n" + "nothing other than this License grants you permission to propagate or\n" + "modify any covered work. These actions infringe copyright if you do\n" + "not accept this License. Therefore, by modifying or propagating a\n" + "covered work, you indicate your acceptance of this License to do so.\n" + "\n" + " 10. Automatic Licensing of Downstream Recipients.\n" + "\n" + " Each time you convey a covered work, the recipient automatically\n" + "receives a license from the original licensors, to run, modify and\n" + "propagate that work, subject to this License. You are not responsible\n" + "for enforcing compliance by third parties with this License.\n" + "\n" + " An \"entity transaction\" is a transaction transferring control of an\n" + "organization, or substantially all assets of one, or subdividing an\n" + "organization, or merging organizations. If propagation of a covered\n" + "work results from an entity transaction, each party to that\n" + "transaction who receives a copy of the work also receives whatever\n" + "licenses to the work the party's predecessor in interest had or could\n" + "give under the previous paragraph, plus a right to possession of the\n" + "Corresponding Source of the work from the predecessor in interest, if\n" + "the predecessor has it or can get it with reasonable efforts.\n" + "\n" + " You may not impose any further restrictions on the exercise of the\n" + "rights granted or affirmed under this License. For example, you may\n" + "not impose a license fee, royalty, or other charge for exercise of\n" + "rights granted under this License, and you may not initiate litigation\n" + "(including a cross-claim or counterclaim in a lawsuit) alleging that\n" + "any patent claim is infringed by making, using, selling, offering for\n" + "sale, or importing the Program or any portion of it.\n" + "\n" + " 11. Patents.\n" + "\n" + " A \"contributor\" is a copyright holder who authorizes use under this\n" + "License of the Program or a work on which the Program is based. The\n" + "work thus licensed is called the contributor's \"contributor version\".\n" + "\n" + " A contributor's \"essential patent claims\" are all patent claims\n" + "owned or controlled by the contributor, whether already acquired or\n" + "hereafter acquired, that would be infringed by some manner, permitted\n" + "by this License, of making, using, or selling its contributor version,\n" + "but do not include claims that would be infringed only as a\n" + "consequence of further modification of the contributor version. For\n" + "purposes of this definition, \"control\" includes the right to grant\n" + "patent sublicenses in a manner consistent with the requirements of\n" "this License.\n" "\n" - " 7. If, as a consequence of a court judgment or allegation of patent\n" - "infringement or for any other reason (not limited to patent issues),\n" - "conditions are imposed on you (whether by court order, agreement or\n" + " Each contributor grants you a non-exclusive, worldwide, royalty-free\n" + "patent license under the contributor's essential patent claims, to\n" + "make, use, sell, offer for sale, import and otherwise run, modify and\n" + "propagate the contents of its contributor version.\n" + "\n" + " In the following three paragraphs, a \"patent license\" is any express\n" + "agreement or commitment, however denominated, not to enforce a patent\n" + "(such as an express permission to practice a patent or covenant not to\n" + "sue for patent infringement). To \"grant\" such a patent license to a\n" + "party means to make such an agreement or commitment not to enforce a\n" + "patent against the party.\n" + "\n" + " If you convey a covered work, knowingly relying on a patent license,\n" + "and the Corresponding Source of the work is not available for anyone\n" + "to copy, free of charge and under the terms of this License, through a\n" + "publicly available network server or other readily accessible means,\n" + "then you must either (1) cause the Corresponding Source to be so\n" + "available, or (2) arrange to deprive yourself of the benefit of the\n" + "patent license for this particular work, or (3) arrange, in a manner\n" + "consistent with the requirements of this License, to extend the patent\n" + "license to downstream recipients. \"Knowingly relying\" means you have\n" + "actual knowledge that, but for the patent license, your conveying the\n" + "covered work in a country, or your recipient's use of the covered work\n" + "in a country, would infringe one or more identifiable patents in that\n" + "country that you have reason to believe are valid.\n" + "\n" + " If, pursuant to or in connection with a single transaction or\n" + "arrangement, you convey, or propagate by procuring conveyance of, a\n" + "covered work, and grant a patent license to some of the parties\n" + "receiving the covered work authorizing them to use, propagate, modify\n" + "or convey a specific copy of the covered work, then the patent license\n" + "you grant is automatically extended to all recipients of the covered\n" + "work and works based on it.\n" + "\n" + " A patent license is \"discriminatory\" if it does not include within\n" + "the scope of its coverage, prohibits the exercise of, or is\n" + "conditioned on the non-exercise of one or more of the rights that are\n" + "specifically granted under this License. You may not convey a covered\n" + "work if you are a party to an arrangement with a third party that is\n" + "in the business of distributing software, under which you make payment\n" + "to the third party based on the extent of your activity of conveying\n" + "the work, and under which the third party grants, to any of the\n" + "parties who would receive the covered work from you, a discriminatory\n" + "patent license (a) in connection with copies of the covered work\n" + "conveyed by you (or copies made from those copies), or (b) primarily\n" + "for and in connection with specific products or compilations that\n" + "contain the covered work, unless you entered into that arrangement,\n" + "or that patent license was granted, prior to 28 March 2007.\n" + "\n" + " Nothing in this License shall be construed as excluding or limiting\n" + "any implied license or other defenses to infringement that may\n" + "otherwise be available to you under applicable patent law.\n" + "\n" + " 12. No Surrender of Others' Freedom.\n" + "\n" + " If conditions are imposed on you (whether by court order, agreement or\n" "otherwise) that contradict the conditions of this License, they do not\n" - "excuse you from the conditions of this License. If you cannot\n" - "distribute so as to satisfy simultaneously your obligations under this\n" - "License and any other pertinent obligations, then as a consequence you\n" - "may not distribute the Program at all. For example, if a patent\n" - "license would not permit royalty-free redistribution of the Program by\n" - "all those who receive copies directly or indirectly through you, then\n" - "the only way you could satisfy both it and this License would be to\n" - "refrain entirely from distribution of the Program.\n" - "\n" - "If any portion of this section is held invalid or unenforceable under\n" - "any particular circumstance, the balance of the section is intended to\n" - "apply and the section as a whole is intended to apply in other\n" - "circumstances.\n" - "\n" - "It is not the purpose of this section to induce you to infringe any\n" - "patents or other property right claims or to contest validity of any\n" - "such claims; this section has the sole purpose of protecting the\n" - "integrity of the free software distribution system, which is\n" - "implemented by public license practices. Many people have made\n" - "generous contributions to the wide range of software distributed\n" - "through that system in reliance on consistent application of that\n" - "system; it is up to the author/donor to decide if he or she is willing\n" - "to distribute software through any other system and a licensee cannot\n" - "impose that choice.\n" - "\n" - "This section is intended to make thoroughly clear what is believed to\n" - "be a consequence of the rest of this License.\n" - "\n" - " 8. If the distribution and/or use of the Program is restricted in\n" - "certain countries either by patents or by copyrighted interfaces, the\n" - "original copyright holder who places the Program under this License\n" - "may add an explicit geographical distribution limitation excluding\n" - "those countries, so that distribution is permitted only in or among\n" - "countries not thus excluded. In such case, this License incorporates\n" - "the limitation as if written in the body of this License.\n" - "\n" - " 9. The Free Software Foundation may publish revised and/or new versions\n" - "of the General Public License from time to time. Such new versions will\n" + "excuse you from the conditions of this License. If you cannot convey a\n" + "covered work so as to satisfy simultaneously your obligations under this\n" + "License and any other pertinent obligations, then as a consequence you may\n" + "not convey it at all. For example, if you agree to terms that obligate you\n" + "to collect a royalty for further conveying from those to whom you convey\n" + "the Program, the only way you could satisfy both those terms and this\n" + "License would be to refrain entirely from conveying the Program.\n" + "\n" + " 13. Use with the GNU Affero General Public License.\n" + "\n" + " Notwithstanding any other provision of this License, you have\n" + "permission to link or combine any covered work with a work licensed\n" + "under version 3 of the GNU Affero General Public License into a single\n" + "combined work, and to convey the resulting work. The terms of this\n" + "License will continue to apply to the part which is the covered work,\n" + "but the special requirements of the GNU Affero General Public License,\n" + "section 13, concerning interaction through a network will apply to the\n" + "combination as such.\n" + "\n" + " 14. Revised Versions of this License.\n" + "\n" + " The Free Software Foundation may publish revised and/or new versions of\n" + "the GNU General Public License from time to time. Such new versions will\n" "be similar in spirit to the present version, but may differ in detail to\n" "address new problems or concerns.\n" "\n" - "Each version is given a distinguishing version number. If the Program\n" - "specifies a version number of this License which applies to it and \"any\n" - "later version\", you have the option of following the terms and conditions\n" - "either of that version or of any later version published by the Free\n" - "Software Foundation. If the Program does not specify a version number of\n" - "this License, you may choose any version ever published by the Free Software\n" - "Foundation.\n" - "\n" - " 10. If you wish to incorporate parts of the Program into other free\n" - "programs whose distribution conditions are different, write to the author\n" - "to ask for permission. For software which is copyrighted by the Free\n" - "Software Foundation, write to the Free Software Foundation; we sometimes\n" - "make exceptions for this. Our decision will be guided by the two goals\n" - "of preserving the free status of all derivatives of our free software and\n" - "of promoting the sharing and reuse of software generally.\n" - "\n" - " NO WARRANTY\n" - "\n" - " 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n" - "FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n" - "OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n" - "PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n" - "OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n" - "MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n" - "TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n" - "PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n" - "REPAIR OR CORRECTION.\n" - "\n" - " 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" - "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n" - "REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n" - "INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n" - "OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n" - "TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n" - "YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n" - "PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n" - "POSSIBILITY OF SUCH DAMAGES.\n" - "\n" - " END OF TERMS AND CONDITIONS\n" - "\n" - " How to Apply These Terms to Your New Programs\n" + " Each version is given a distinguishing version number. If the\n" + "Program specifies that a certain numbered version of the GNU General\n" + "Public License \"or any later version\" applies to it, you have the\n" + "option of following the terms and conditions either of that numbered\n" + "version or of any later version published by the Free Software\n" + "Foundation. If the Program does not specify a version number of the\n" + "GNU General Public License, you may choose any version ever published\n" + "by the Free Software Foundation.\n" + "\n" + " If the Program specifies that a proxy can decide which future\n" + "versions of the GNU General Public License can be used, that proxy's\n" + "public statement of acceptance of a version permanently authorizes you\n" + "to choose that version for the Program.\n" + "\n" + " Later license versions may give you additional or different\n" + "permissions. However, no additional obligations are imposed on any\n" + "author or copyright holder as a result of your choosing to follow a\n" + "later version.\n" + "\n" + " 15. Disclaimer of Warranty.\n" + "\n" + " THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n" + "APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n" + "HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n" + "OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n" + "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n" + "PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n" + "IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n" + "ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n" + "\n" + " 16. Limitation of Liability.\n" + "\n" + " IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" + "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n" + "THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n" + "GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n" + "USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n" + "DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n" + "PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n" + "EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n" + "SUCH DAMAGES.\n" + "\n" + " 17. Interpretation of Sections 15 and 16.\n" + "\n" + " If the disclaimer of warranty and limitation of liability provided\n" + "above cannot be given local legal effect according to their terms,\n" + "reviewing courts shall apply local law that most closely approximates\n" + "an absolute waiver of all civil liability in connection with the\n" + "Program, unless a warranty or assumption of liability accompanies a\n" + "copy of the Program in return for a fee.\n" + "\n" + " END OF TERMS AND CONDITIONS\n" + "\n" + " How to Apply These Terms to Your New Programs\n" "\n" " If you develop a new program, and you want it to be of the greatest\n" "possible use to the public, the best way to achieve this is to make it\n" @@ -907,15 +1248,15 @@ void AboutBox::initStrings() { "\n" " To do so, attach the following notices to the program. It is safest\n" "to attach them to the start of each source file to most effectively\n" - "convey the exclusion of warranty; and each file should have at least\n" + "state the exclusion of warranty; and each file should have at least\n" "the \"copyright\" line and a pointer to where the full notice is found.\n" "\n" " \n" " Copyright (C) \n" "\n" - " This program is free software; you can redistribute it and/or modify\n" + " This program is free software: you can redistribute it and/or modify\n" " it under the terms of the GNU General Public License as published by\n" - " the Free Software Foundation; either version 2 of the License, or\n" + " the Free Software Foundation, either version 3 of the License, or\n" " (at your option) any later version.\n" "\n" " This program is distributed in the hope that it will be useful,\n" @@ -924,40 +1265,33 @@ void AboutBox::initStrings() { " GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public License\n" - " along with this program; if not, write to the Free Software\n" - " Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - "\n" + " along with this program. If not, see .\n" "\n" "Also add information on how to contact you by electronic and paper mail.\n" "\n" - "If the program is interactive, make it output a short notice like this\n" - "when it starts in an interactive mode:\n" + " If the program does terminal interaction, make it output a short\n" + "notice like this when it starts in an interactive mode:\n" "\n" - " Gnomovision version 69, Copyright (C) year name of author\n" - " Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" + " Copyright (C) \n" + " This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" " This is free software, and you are welcome to redistribute it\n" " under certain conditions; type `show c' for details.\n" "\n" "The hypothetical commands `show w' and `show c' should show the appropriate\n" - "parts of the General Public License. Of course, the commands you use may\n" - "be called something other than `show w' and `show c'; they could even be\n" - "mouse-clicks or menu items--whatever suits your program.\n" - "\n" - "You should also get your employer (if you work as a programmer) or your\n" - "school, if any, to sign a \"copyright disclaimer\" for the program, if\n" - "necessary. Here is a sample; alter the names:\n" - "\n" - " Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n" - " `Gnomovision' (which makes passes at compilers) written by James Hacker.\n" + "parts of the General Public License. Of course, your program's commands\n" + "might be different; for a GUI interface, you would use an \"about box\".\n" "\n" - " , 1 April 1989\n" - " Ty Coon, President of Vice\n" + " You should also get your employer (if you work as a programmer) or school,\n" + "if any, to sign a \"copyright disclaimer\" for the program, if necessary.\n" + "For more information on this, and how to apply and follow the GNU GPL, see\n" + ".\n" "\n" - "This General Public License does not permit incorporating your program into\n" - "proprietary programs. If your program is a subroutine library, you may\n" - "consider it more useful to permit linking proprietary applications with the\n" - "library. If this is what you want to do, use the GNU Library General\n" - "Public License instead of this License.\n" + " The GNU General Public License does not permit incorporating your program\n" + "into proprietary programs. If your program is a subroutine library, you\n" + "may consider it more useful to permit linking proprietary applications with\n" + "the library. If this is what you want to do, use the GNU Lesser General\n" + "Public License instead of this License. But first, please read\n" + "." ; } -- cgit v1.2.3 From 626b1a569bb1a6a3fa8c03324c8066fe81332d17 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sun, 8 May 2016 09:06:24 +0200 Subject: fix-bug-734201. stroke-to-path doesn't scale stroke width used in markers Fixed bugs: - https://launchpad.net/bugs/734201 (bzr r14875) --- src/splivarot.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 461445ee0..c37df151c 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -862,7 +862,7 @@ void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Affine if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = stroke_scale * tr; } - + // total marker transform tr = marker_item->transform * marker->c2p * tr * transform; @@ -1153,7 +1153,9 @@ sp_selected_path_outline(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select stroked path(s) to convert stroke to path.")); return; } - + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool scale_stroke = prefs->getBool("/options/transform/stroke", true); + prefs->setBool("/options/transform/stroke", true); bool did = false; std::vector il(selection->itemList()); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ @@ -1503,7 +1505,7 @@ sp_selected_path_outline(SPDesktop *desktop) delete res; delete orig; } - + prefs->setBool("/options/transform/stroke", scale_stroke); if (did) { DocumentUndo::done(desktop->getDocument(), SP_VERB_SELECTION_OUTLINE, _("Convert stroke to path")); -- cgit v1.2.3 From fbb9317b912eba2ac02019869b687ec637790e9f Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 8 May 2016 09:29:51 +0200 Subject: Start of GTK3 external style sheet support. (bzr r14873.1.1) --- share/ui/CMakeLists.txt | 2 +- share/ui/Makefile.am | 1 + share/ui/style.css | 55 ++++++++++++++++++++++++++++++++++++++++++ src/main.cpp | 34 ++++++++++++++++++++++++++ src/widgets/desktop-widget.cpp | 1 + src/widgets/ruler.cpp | 15 ------------ 6 files changed, 92 insertions(+), 16 deletions(-) create mode 100644 share/ui/style.css diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt index 89b9f9b0f..5e9db74cf 100644 --- a/share/ui/CMakeLists.txt +++ b/share/ui/CMakeLists.txt @@ -1,3 +1,3 @@ -file(GLOB _FILES "*.xml" "*.rc") +file(GLOB _FILES "*.xml" "*.rc" "*.css") install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/ui) diff --git a/share/ui/Makefile.am b/share/ui/Makefile.am index 7195af0cb..1e55ea58f 100644 --- a/share/ui/Makefile.am +++ b/share/ui/Makefile.am @@ -4,6 +4,7 @@ uidir = $(datadir)/inkscape/ui ui_DATA = \ keybindings.rc \ menus-bars.xml \ + style.css \ toolbox.xml \ units.xml diff --git a/share/ui/style.css b/share/ui/style.css new file mode 100644 index 000000000..41b8ba426 --- /dev/null +++ b/share/ui/style.css @@ -0,0 +1,55 @@ + +/* GTK3 WIDGET STYLING */ + +/* + * Keep in order of: + * General -> Specific + * Order of default appearance + * Top -> Bottom (e.g. Selector Tool, Node Tool, ...) + * Left -> Right + * + * We need a standardized naming scheme. + */ + +/* Lightest to darkest based on linear rgb */ +@define-color bg_color0 #ffffff; /* White */ +@define-color bg_color05 #f8f8f8; /* Slightly off white */ +@define-color bg_color1 #f0f0f0; +@define-color bg_color2 #e0e0e0; +@define-color bg_color3 #d0d0d0; +@define-color bg_color4 #bbbbbb; /* 50% Gray */ +@define-color bg_color5 #a5a5a5; +@define-color bg_color6 #898989; +@define-color bg_color7 #636363; +@define-color bg_color8 #000000; /* Black */ + +GtkWidget { +/* font-size: 12pt; */ +} + +SPRuler { + background-color: @bg_color05; +} + +SPCanvas { + background-color: @bg_color0; +} + +combobox window.popup scrolledwindow treeview separator { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-height: 6; +} + +#font_selector_family { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-height: 6; +} + +#TextFontFamilyAction_combobox { + -GtkComboBox-appears-as-list: true; +} + +#guides_lock { + padding: 0; +} + diff --git a/src/main.cpp b/src/main.cpp index 840643a90..99e3ccfe6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,6 +52,11 @@ #include #include +#if GTK_CHECK_VERSION(3,0,0) +#include +#include +#endif + #include "inkgc/gc-core.h" #ifdef AND @@ -1051,6 +1056,35 @@ sp_main_gui(int argc, char const **argv) #endif g_free(usericondir); + +#if GTK_CHECK_VERSION(3,0,0) + // Add style sheet (GTK3) + Glib::RefPtr screen = Gdk::Screen::get_default(); + + Glib::ustring inkscape_style = INKSCAPE_UIDIR; + inkscape_style += "/style.css"; + // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl; + Glib::RefPtr provider = Gtk::CssProvider::create(); + try { + provider->load_from_path (inkscape_style); + } + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style << "\n (" << ex.what() << ")" << std::endl; + } + Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); + // std::cout << "CSS Stylesheet User: " << user_style << std::endl; + Glib::RefPtr provider2 = Gtk::CssProvider::create(); + try { + provider2->load_from_path (user_style); + } + catch (const Gtk::CssProviderError& ex) + {} + Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); +#endif + gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); Inkscape::Debug::log_display_config(); diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index fe724a964..1a4fcccf4 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -404,6 +404,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Glib::RefPtr guides_lock_style_provider = Gtk::CssProvider::create(); guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }"); Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock); + wnd->set_name("guides_lock"); Glib::RefPtr context = wnd->get_style_context(); context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index 5c715b0be..bcab535f9 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -282,21 +282,6 @@ sp_ruler_init (SPRuler *ruler) priv->pos_redraw_idle_id = 0; priv->font_scale = DEFAULT_RULER_FONT_SCALE; - -#if GTK_CHECK_VERSION(3,0,0) - // Hard code off-white for the moment. Where is @bg_color defined? - const gchar *str = - "SPRuler {\n" -// " background-color: @bg_color;\n" - " background-color: #f8f8f8;\n" - "}\n"; - GtkCssProvider *css = gtk_css_provider_new (); - gtk_css_provider_load_from_data (css, str, -1, NULL); - gtk_style_context_add_provider (gtk_widget_get_style_context (GTK_WIDGET (ruler)), - GTK_STYLE_PROVIDER (css), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - g_object_unref (css); -#endif } static void -- cgit v1.2.3 From 96731f992a6c14dd8a6b80075e1648356b3544ef Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sun, 8 May 2016 09:39:27 +0200 Subject: Fixing page transforms (bzr r13682.1.39) --- src/live_effects/lpe-mirror_symmetry.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 9a2a54a13..c4bd919f8 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -127,10 +127,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); Geom::Rect view_box_rect = doc->getViewBox(); Geom::Point sp = Geom::Point(view_box_rect.width()/2.0, 0); - sp *= lpeitem->transform.inverse(); + sp *= lpeitem->i2dt_affine().inverse(); start_point.param_setValue(sp); Geom::Point ep = Geom::Point(view_box_rect.width()/2.0, view_box_rect.height()); - ep *= lpeitem->transform.inverse(); + ep *= lpeitem->i2dt_affine().inverse(); end_point.param_setValue(ep); center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); line_separation.setPoints(start_point, end_point); @@ -140,10 +140,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); Geom::Rect view_box_rect = doc->getViewBox(); Geom::Point sp = Geom::Point(0, view_box_rect.height()/2.0); - sp *= lpeitem->transform.inverse(); + sp *= lpeitem->i2dt_affine().inverse(); start_point.param_setValue(sp); Geom::Point ep = Geom::Point(view_box_rect.width(), view_box_rect.height()/2.0); - ep *= lpeitem->transform.inverse(); + ep *= lpeitem->i2dt_affine().inverse(); end_point.param_setValue(ep); center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); line_separation.setPoints(start_point, end_point); -- cgit v1.2.3 From d756856a3abe21eba762bf7562402feb91f257b1 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sun, 8 May 2016 11:08:40 +0200 Subject: Fix transform in document based axis (bzr r13682.1.41) --- src/live_effects/lpe-mirror_symmetry.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index c4bd919f8..88fee4c47 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -127,10 +127,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); Geom::Rect view_box_rect = doc->getViewBox(); Geom::Point sp = Geom::Point(view_box_rect.width()/2.0, 0); - sp *= lpeitem->i2dt_affine().inverse(); + sp *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); start_point.param_setValue(sp); Geom::Point ep = Geom::Point(view_box_rect.width()/2.0, view_box_rect.height()); - ep *= lpeitem->i2dt_affine().inverse(); + ep *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); end_point.param_setValue(ep); center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); line_separation.setPoints(start_point, end_point); @@ -140,10 +140,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); Geom::Rect view_box_rect = doc->getViewBox(); Geom::Point sp = Geom::Point(0, view_box_rect.height()/2.0); - sp *= lpeitem->i2dt_affine().inverse(); + sp *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); start_point.param_setValue(sp); Geom::Point ep = Geom::Point(view_box_rect.width(), view_box_rect.height()/2.0); - ep *= lpeitem->i2dt_affine().inverse(); + ep *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); end_point.param_setValue(ep); center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); line_separation.setPoints(start_point, end_point); @@ -178,7 +178,7 @@ LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) Geom::PathVector path_out; if (!discard_orig_path && !fuse_paths) { - path_out = path_in; + path_out = pathv_to_linear_and_cubic_beziers(path_in); } Geom::Point point_a(line_separation.initialPoint()); -- cgit v1.2.3 From da4a2d1737f905daa90392f60746ee445ba9414c Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sun, 8 May 2016 11:41:39 +0200 Subject: add missing POTFILES.in line in mirror symmetry LPE (bzr r14878) --- po/POTFILES.in | 1 + 1 file changed, 1 insertion(+) diff --git a/po/POTFILES.in b/po/POTFILES.in index 057114bd0..1dfd26eb1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -148,6 +148,7 @@ src/live_effects/lpe-interpolate_points.cpp src/live_effects/lpe-jointype.cpp src/live_effects/lpe-knot.cpp src/live_effects/lpe-lattice2.cpp +src/live_effects/lpe-mirror_symmetry.cpp src/live_effects/lpe-patternalongpath.cpp src/live_effects/lpe-perspective-envelope.cpp src/live_effects/lpe-powerstroke.cpp -- cgit v1.2.3 From c3ef09704c74df622967eb75d22288264553a69e Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 8 May 2016 16:30:43 +0200 Subject: Attemt to fix ruler background for GTK 3.20. (bzr r14876.1.1) --- share/ui/style.css | 8 ++++++++ src/widgets/ruler.cpp | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/share/ui/style.css b/share/ui/style.css index 41b8ba426..3ee6f7450 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -9,6 +9,8 @@ * Left -> Right * * We need a standardized naming scheme. + * + * As of Gtk 3.20, you cannot use widget names. */ /* Lightest to darkest based on linear rgb */ @@ -27,10 +29,16 @@ GtkWidget { /* font-size: 12pt; */ } +/* Gtk <= 3.18 */ SPRuler { background-color: @bg_color05; } +/* Gtk > 3.18 */ +ruler-widget { + background-color: @bg_color05; +} + SPCanvas { background-color: @bg_color0; } diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index bcab535f9..deffd384a 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -168,6 +168,10 @@ sp_ruler_class_init (SPRulerClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); +#if GTK_CHECK_VERSION(3,20,0) + gtk_widget_class_set_css_name (widget_class, "ruler-widget"); +#endif + object_class->dispose = sp_ruler_dispose; object_class->set_property = sp_ruler_set_property; object_class->get_property = sp_ruler_get_property; -- cgit v1.2.3 From f406f7e1c62d59ac437111138bbfe69c66efe847 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 9 May 2016 01:33:44 +0200 Subject: Disable fillet-chamfer for 0.92 release (bzr r14880) --- src/live_effects/effect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 437aed5bd..732c67304 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -112,6 +112,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"}, + {FILLET_CHAMFER, N_("Fillet/Chamfer"), "fillet-chamfer"}, #endif /* 0.46 */ {BEND_PATH, N_("Bend"), "bend_path"}, @@ -135,7 +136,6 @@ const Util::EnumData LPETypeData[] = { {SIMPLIFY, N_("Simplify"), "simplify"}, {LATTICE2, N_("Lattice Deformation 2"), "lattice2"}, {PERSPECTIVE_ENVELOPE, N_("Perspective/Envelope"), "perspective-envelope"}, - {FILLET_CHAMFER, N_("Fillet/Chamfer"), "fillet-chamfer"}, {INTERPOLATE_POINTS, N_("Interpolate points"), "interpolate_points"}, {TRANSFORM_2PTS, N_("Transform by 2 points"), "transform_2pts"}, {SHOW_HANDLES, N_("Show handles"), "show_handles"}, -- cgit v1.2.3 From 63a311053b49afe535bba53369ee5907def13aaa Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 9 May 2016 17:35:29 +0200 Subject: Gtk3: Use theme colors for ruler. Reduce size of spin buttons. (bzr r14881) --- share/ui/style.css | 57 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/share/ui/style.css b/share/ui/style.css index 3ee6f7450..091cfc319 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -4,16 +4,32 @@ /* * Keep in order of: * General -> Specific - * Order of default appearance - * Top -> Bottom (e.g. Selector Tool, Node Tool, ...) - * Left -> Right + * Order of appearance in widget tree. + * See GtkInspector + * GTK_DEBUG=interactive ~/path_to_gtk3/bin/inkscape * * We need a standardized naming scheme. * * As of Gtk 3.20, you cannot use widget names. */ -/* Lightest to darkest based on linear rgb */ +/* Standard theme based colors. Prefer these. + * + * @theme_bg_color + * @theme_fg_color + * @theme_base_color + * @theme_text_color + * @theme_selected_bg_color + * @theme_selected_fg_color + * @theme_tooltip_bg_color + * @theme_tooltip_fg_color + * + */ + + +/* Our own custom shades... better not to use. + * Lightest to darkest based on linear rgb. + */ @define-color bg_color0 #ffffff; /* White */ @define-color bg_color05 #f8f8f8; /* Slightly off white */ @define-color bg_color1 #f0f0f0; @@ -25,22 +41,45 @@ @define-color bg_color7 #636363; @define-color bg_color8 #000000; /* Black */ +/* Gtk <= 3.18 */ GtkWidget { /* font-size: 12pt; */ } -/* Gtk <= 3.18 */ +/* Gtk >= 3.19.2 */ +widget { +/* font-size: 12pt; */ +} + +GtkSpinButton { + padding: 0; +} + +spinbutton { + padding: 0; +} + +GtkSpinButton.entry { + padding-left: 2px; +} + +spinbutton.entry { + padding-left: 2px; +} + SPRuler { - background-color: @bg_color05; + background-color: @theme_bg_color; + color: @theme_fg_color; } -/* Gtk > 3.18 */ ruler-widget { - background-color: @bg_color05; + background-color: @theme_bg_color; + color: @theme_fg_color; } +/* The actual canvas (Inkscape's drawing area). */ SPCanvas { - background-color: @bg_color0; + background-color: white; } combobox window.popup scrolledwindow treeview separator { -- cgit v1.2.3 From 7d03e020cb353dbc006a7f3020375dd7005aa760 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 10 May 2016 12:43:38 +0200 Subject: Fix a bug on Pen tool when use bend path as option and the clipboard has something diferent than shape, path or group (bzr r14882) --- src/ui/tools/freehand-base.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ui/tools/freehand-base.cpp b/src/ui/tools/freehand-base.cpp index 613857626..c98ecb686 100644 --- a/src/ui/tools/freehand-base.cpp +++ b/src/ui/tools/freehand-base.cpp @@ -43,6 +43,7 @@ #include "snap.h" #include "sp-path.h" #include "sp-use.h" +#include "sp-item-group.h" #include "sp-namedview.h" #include "live_effects/lpe-powerstroke.h" #include "style.h" @@ -432,7 +433,7 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, if(cm->paste(SP_ACTIVE_DESKTOP,true) == true){ gchar const *svgd = item->getRepr()->attribute("d"); bend_item = dc->selection->singleItem(); - if(bend_item){ + if(bend_item && (SP_IS_SHAPE(bend_item) || SP_IS_GROUP(bend_item))){ bend_item->moveTo(item,false); bend_item->transform.setTranslation(Geom::Point()); spdc_apply_bend_shape(svgd, dc, bend_item); @@ -440,9 +441,11 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, shape = BEND_CLIPBOARD; } else { + bend_item = NULL; shape = NONE; } } else { + bend_item = NULL; shape = NONE; } break; -- cgit v1.2.3 From bf29ab367c35aa31be31869a08a49f502070879b Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Fri, 13 May 2016 21:52:40 +0200 Subject: Extensions. Improving the test launcher. Now works with recent coverage versions. (bzr r14883) --- share/extensions/test/run-all-extension-tests | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/share/extensions/test/run-all-extension-tests b/share/extensions/test/run-all-extension-tests index aa20c8c7b..e7faf672a 100755 --- a/share/extensions/test/run-all-extension-tests +++ b/share/extensions/test/run-all-extension-tests @@ -35,24 +35,32 @@ has_py_coverage=false py_cover_files=$( $MKTEMP ) failed_tests=$( $MKTEMP ) -if coverage.py -e >/dev/null 2>/dev/null; then +if coverage.py erase >/dev/null 2>/dev/null; then has_py_coverage=true cover_py_cmd=coverage.py else - if coverage -e >/dev/null 2>/dev/null; then + if coverage erase >/dev/null 2>/dev/null; then has_py_coverage=true cover_py_cmd=coverage + else + if python-coverage erase >/dev/null 2>/dev/null; then + has_py_coverage=true + cover_py_cmd=python-coverage + fi fi fi +if $has_py_coverage; then + echo -e "\nRunning tests with coverage" +fi #if $has_py_coverage; then # $cover_py_cmd -e #fi function run_py_test() { - echo -e "\n>> Testing $1" + echo -e "\n>>>>>> Testing $1 <<<<<<\n" if $has_py_coverage; then - if ! $cover_py_cmd -x "$1.test.py"; then + if ! $cover_py_cmd run -a "$1.test.py"; then echo "$1" >> $failed_tests fi echo "../$1.py" >> $py_cover_files @@ -77,7 +85,7 @@ else SED_EXTENDED='sed -E' # BSD sed (e.g. on Mac OS X) fi -echo "sed regex command: $SED_EXTENDED" +echo -e "sed regex command: $SED_EXTENDED\n" # --------------------------------------------------------------------- @@ -89,7 +97,7 @@ done if $has_py_coverage; then echo -e "\n>> Coverage Report:" - cat $py_cover_files | xargs $cover_py_cmd -r + cat $py_cover_files | xargs $cover_py_cmd report fi fail=false -- cgit v1.2.3 From 6409a4a7d4bf0254f162e01bbef9a9d4ba622607 Mon Sep 17 00:00:00 2001 From: marenhachmann <> Date: Fri, 13 May 2016 22:04:14 +0200 Subject: [Bug #1579939] Ramdom color extension improvements (and new unit test file). Fixed bugs: - https://launchpad.net/bugs/1579939 Original authors: - marenhachmann - jazzynico (bzr r14884) --- share/extensions/color_randomize.inx | 7 +- share/extensions/color_randomize.py | 105 +++++++++++----------- share/extensions/coloreffect.py | 34 +++++-- share/extensions/test/Makefile.am | 1 + share/extensions/test/color_randomize.test.py | 123 ++++++++++++++++++++++++++ 5 files changed, 205 insertions(+), 65 deletions(-) mode change 100644 => 100755 share/extensions/color_randomize.py create mode 100755 share/extensions/test/color_randomize.test.py diff --git a/share/extensions/color_randomize.inx b/share/extensions/color_randomize.inx index 0c84227ae..c0c0d9ea2 100644 --- a/share/extensions/color_randomize.inx +++ b/share/extensions/color_randomize.inx @@ -7,16 +7,13 @@ simplestyle.py - true 100 - true 100 - true 100 - + 0 - <_param name="instructions" type="description" xml:space="preserve">Converts to HSL, randomizes hue and/or saturation and/or lightness and converts it back to RGB. Lower the range values to limit the distance between the original color and the randomized one. + <_param name="instructions" type="description" xml:space="preserve">Randomizes hue, saturation, lightness and/or opacity (opacity randomization only for objects and groups). Change the range values to limit the distance between the original color and the randomized one. diff --git a/share/extensions/color_randomize.py b/share/extensions/color_randomize.py old mode 100644 new mode 100755 index b8f52cb6b..93abcf174 --- a/share/extensions/color_randomize.py +++ b/share/extensions/color_randomize.py @@ -1,85 +1,84 @@ #!/usr/bin/env python -import coloreffect,random,inkex + +import random + +import coloreffect +import inkex class C(coloreffect.ColorEffect): def __init__(self): coloreffect.ColorEffect.__init__(self) - self.OptionParser.add_option("-x", "--hue", - action="store", type="inkbool", - dest="hue", default=True, - help="Randomize hue") self.OptionParser.add_option("-y", "--hue_range", action="store", type="int", dest="hue_range", default=0, help="Hue range") - self.OptionParser.add_option("-s", "--saturation", - action="store", type="inkbool", - dest="saturation", default=True, - help="Randomize saturation") self.OptionParser.add_option("-t", "--saturation_range", action="store", type="int", dest="saturation_range", default=0, help="Saturation range") - self.OptionParser.add_option("-l", "--lightness", - action="store", type="inkbool", - dest="lightness", default=True, - help="Randomize lightness") self.OptionParser.add_option("-m", "--lightness_range", action="store", type="int", dest="lightness_range", default=0, help="Lightness range") + self.OptionParser.add_option("-o", "--opacity_range", + action="store", type="int", + dest="opacity_range", default=0, + help="Opacity range") self.OptionParser.add_option("--tab", action="store", type="string", dest="tab", help="The selected UI-tab when OK was pressed") + def randomize_hsl(self, limit, current_value): + limit = 255.0 * limit / 100.0 + limit /= 2 + max = int((current_value * 255.0) + limit) + min = int((current_value * 255.0) - limit) + if max > 255: + min = min - (max - 255) + max = 255 + if min < 0: + max = max - min + min = 0 + return random.randrange(min, max) / 255.0 + def colmod(self,r,g,b): hsl = self.rgb_to_hsl(r/255.0, g/255.0, b/255.0) - - if(self.options.hue): - limit = 255.0 * (1 + self.options.hue_range) / 100.0 - limit /= 2 - max = int((hsl[0] * 255.0) + limit) - min = int((hsl[0] * 255.0) - limit) - if max > 255: - min = min - (max - 255) - max = 255 - if min < 0: - max = max - min - min = 0 - hsl[0] = random.randrange(min, max) - hsl[0] /= 255.0 - if(self.options.saturation): - limit = 255.0 * (1 + self.options.saturation_range) / 100.0 - limit /= 2 - max = int((hsl[1] * 255.0) + limit) - min = int((hsl[1] * 255.0) - limit) - if max > 255: - min = min - (max - 255) - max = 255 - if min < 0: - max = max - min - min = 0 - hsl[1] = random.randrange(min, max) - hsl[1] /= 255.0 - if(self.options.lightness): - limit = 255.0 * (1 + self.options.lightness_range) / 100.0 + if self.options.hue_range > 0: + hsl[0] = self.randomize_hsl(self.options.hue_range, hsl[0]) + if self.options.saturation_range > 0: + hsl[1] = self.randomize_hsl(self.options.saturation_range, hsl[1]) + if self.options.lightness_range > 0: + hsl[2] = self.randomize_hsl(self.options.lightness_range, hsl[2]) + rgb = self.hsl_to_rgb(hsl[0], hsl[1], hsl[2]) + return '%02x%02x%02x' % (rgb[0]*255, rgb[1]*255, rgb[2]*255) + + def opacmod(self, opacity): + if self.options.opacity_range > 0: + # maybe not necessary, but better not change things that shouldn't change + try: + opacity = float(opacity) + except ValueError: + return opacity + + limit = self.options.opacity_range limit /= 2 - max = int((hsl[2] * 255.0) + limit) - min = int((hsl[2] * 255.0) - limit) - if max > 255: - min = min - (max - 255) - max = 255 + max = opacity*100 + limit + min = opacity*100 - limit + if max > 100: + min = min - (max - 100) + max = 100 if min < 0: max = max - min min = 0 - hsl[2] = random.randrange(min, max) - hsl[2] /= 255.0 - rgb = self.hsl_to_rgb(hsl[0], hsl[1], hsl[2]) - return '%02x%02x%02x' % (rgb[0]*255, rgb[1]*255, rgb[2]*255) + ret = str(random.uniform(min,max)/100) + return ret + return opacity + -c = C() -c.affect() +if __name__ == '__main__': + c = C() + c.affect() # vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 diff --git a/share/extensions/coloreffect.py b/share/extensions/coloreffect.py index a6b5cfe41..d33ac41fe 100755 --- a/share/extensions/coloreffect.py +++ b/share/extensions/coloreffect.py @@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import sys, copy, simplestyle, inkex import random -color_props_fill = ('fill', 'stop-color', 'flood-color', 'lighting-color') +color_props_fill = ('fill', 'stop-color', 'flood-color', 'lighting-color') color_props_stroke = ('stroke',) +opacity_props = ('opacity',) #'stop-opacity', 'fill-opacity', 'stroke-opacity' don't work with clones color_props = color_props_fill + color_props_stroke @@ -63,13 +64,14 @@ class ColorEffect(inkex.Effect): # # The processing here is just something simple that should usually work, # without trying too hard to get everything right. - # (Won't work for the pathalogical case that someone escapes a property + # (Won't work for the pathological case that someone escapes a property # name, probably does the wrong thing if colon or semicolon is used inside # a comment or string value.) style = node.get('style') # fixme: this will break for presentation attributes! if style: #inkex.debug('old style:'+style) declarations = style.split(';') + opacity_in_style = False for i,decl in enumerate(declarations): parts = decl.split(':', 2) if len(parts) == 2: @@ -80,16 +82,25 @@ class ColorEffect(inkex.Effect): new_val = self.process_prop(val) if new_val != val: declarations[i] = prop + ':' + new_val + elif prop in opacity_props: + opacity_in_style = True + val = val.strip() + new_val = self.process_prop(val) + if new_val != val: + declarations[i] = prop + ':' + new_val + if not opacity_in_style: + new_val = self.process_prop("1") + declarations.append('opacity' + ':' + new_val) #inkex.debug('new style:'+';'.join(declarations)) node.set('style', ';'.join(declarations)) - def process_prop(self,col): - #debug('got:'+col) + def process_prop(self, col): + #inkex.debug('got:'+col+str(type(col))) if simplestyle.isColor(col): c=simplestyle.parseColor(col) - col='#'+self.colmod(c[0],c[1],c[2]) - #debug('made:'+col) - if col.startswith('url(#'): + col='#'+self.colmod(c[0], c[1], c[2]) + #inkex.debug('made:'+col) + elif col.startswith('url(#'): id = col[len('url(#'):col.find(')')] newid = '%s-%d' % (id, int(random.random() * 1000)) #inkex.debug('ID:' + id ) @@ -97,6 +108,11 @@ class ColorEffect(inkex.Effect): for node in self.document.xpath(path, namespaces=inkex.NSS): self.process_gradient(node, newid) col = 'url(#%s)' % newid + # what remains should be opacity + else: + col = self.opacmod(col) + + #inkex.debug('col:'+str(col)) return col def process_gradient(self, node, newid): @@ -128,6 +144,9 @@ class ColorEffect(inkex.Effect): def colmod(self,r,g,b): pass + + def opacmod(self, opacity): + return opacity def rgb_to_hsl(self,r, g, b): rgb_max = max (max (r, g), b) @@ -188,4 +207,5 @@ class ColorEffect(inkex.Effect): rgb[2] = self.hue_2_rgb (v1, v2, h*6 - 2.0) return rgb + # vi: set autoindent shiftwidth=2 tabstop=8 expandtab softtabstop=2 : diff --git a/share/extensions/test/Makefile.am b/share/extensions/test/Makefile.am index 7ff68083d..cd1929a7f 100644 --- a/share/extensions/test/Makefile.am +++ b/share/extensions/test/Makefile.am @@ -6,6 +6,7 @@ EXTRA_DIST = \ addnodes.test.py \ chardataeffect.test.py \ + color_randomize_test.py \ coloreffect.test.py \ create_test_from_template.sh \ dots.test.py \ diff --git a/share/extensions/test/color_randomize.test.py b/share/extensions/test/color_randomize.test.py new file mode 100755 index 000000000..d8549a35a --- /dev/null +++ b/share/extensions/test/color_randomize.test.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python +''' +Unit test file for ../color_randomize.py +-- +If you want to help, read the python unittest documentation: +http://docs.python.org/library/unittest.html +''' + +import os +import sys +import unittest + +sys.path.append('..') # this line allows to import the extension code +from color_randomize import * + +def extract_hsl(e,rgb): + r = int(rgb[:2], 16) + g = int(rgb[2:4], 16) + b = int(rgb[4:6], 16) + return e.rgb_to_hsl(r/255.0, g/255.0, b/255.0) + + +class ColorRandomizeBasicTest(unittest.TestCase): + def setUp(self): + self.e=C() + + def test_default_values(self): + """ The default ranges are set to 0, and thus the color and opacity should not change. """ + args = ['svg/empty-SVG.svg'] + self.e.affect(args, False) + col = self.e.colmod(128, 128, 255) + self.assertEqual("8080ff", col) + opac = self.e.opacmod(5) + self.assertEqual(5, opac) + + +class ColorRandomizeColorModificationTest(unittest.TestCase): + def setUp(self): + self.e=C() + + def test_no_change(self): + """ The user selected 0% values, and thus the color should not change. """ + args = ['-y 0', '-t 0', '-m 0', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + col = self.e.colmod(128, 128, 255) + self.assertEqual("8080ff", col) + + def test_random_hue(self): + """ Random hue only. Saturation and lightness not changed. """ + args = ['-y 50','-t 0','-m 0','svg/empty-SVG.svg'] + self.e.affect(args, False) + hsl = extract_hsl(self.e, self.e.colmod(150, 100, 200)) + self.assertEqual([0.47, 0.59], [round(hsl[1], 2), round(hsl[2], 2)]) + + @unittest.skip("Inaccurate convertion") + def test_random_lightness(self): + """ Random lightness only. Hue and saturation not changed. """ + args = ['-y 0', '-t 0', '-m 50', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + hsl = extract_hsl(self.e, self.e.colmod(150, 100, 200)) + # Lightness change also affects hue and saturation... + #self.assertEqual(0.75, round(hsl[0], 2)) + #self.assertEqual(0.48, round(hsl[1], 2)) + + def test_random_saturation(self): + """ Random saturation only. Hue and lightness not changed. """ + args = ['-y 0', '-t 50', '-m 0', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + hsl = extract_hsl(self.e, self.e.colmod(150, 100, 200)) + self.assertEqual([0.75, 0.59], [round(hsl[0], 2), round(hsl[2], 2)]) + + def test_range_limits(self): + """ The maximum hsl values should be between 0 and 100% of their maximum """ + args = ['-y 100', '-t 100', '-m 100', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + hsl = extract_hsl(self.e, self.e.colmod(156, 156, 156)) + self.assertLessEqual([hsl[0], hsl[1], hsl[2]], [1, 1, 1]) + self.assertGreaterEqual([hsl[0], hsl[1], hsl[2]], [0, 0, 0]) + + +class ColorRandomizeOpacityModificationTest(unittest.TestCase): + def setUp(self): + self.e=C() + + def test_no_change(self): + """ The user selected 0% opacity range, and thus the opacity should not change. """ + args = ['-o 0', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + opac = self.e.opacmod(0.15) + self.assertEqual(0.15, opac) + + def test_range_min_limit(self): + """ The opacity value should be greater than 0 """ + args = ['-o 100', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + opac = self.e.opacmod(0) + self.assertGreaterEqual(opac, "0") + + def test_range_max_limit(self): + """ The opacity value should be lesser than 1 """ + args = ['-o 100', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + opac = self.e.opacmod(1) + self.assertLessEqual(opac, "1") + + def test_non_float_opacity(self): + """ Non-float opacity value not changed """ + args = ['-o 100', 'svg/empty-SVG.svg'] + self.e.affect(args, False) + opac = self.e.opacmod("toto") + self.assertLessEqual(opac, "toto") + +if __name__ == '__main__': + #unittest.main() + suite = unittest.TestLoader().loadTestsFromTestCase(ColorRandomizeBasicTest) + unittest.TextTestRunner(verbosity=2).run(suite) + suite = unittest.TestLoader().loadTestsFromTestCase(ColorRandomizeColorModificationTest) + unittest.TextTestRunner(verbosity=2).run(suite) + suite = unittest.TestLoader().loadTestsFromTestCase(ColorRandomizeOpacityModificationTest) + unittest.TextTestRunner(verbosity=2).run(suite) + + +# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 -- cgit v1.2.3 From 2888ca593c06275bffc1a54b03ef60a895402ba2 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Fri, 13 May 2016 22:08:43 +0200 Subject: Translations. PO template file update. (bzr r14885) --- po/inkscape.pot | 4492 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 2387 insertions(+), 2105 deletions(-) diff --git a/po/inkscape.pot b/po/inkscape.pot index 69e849a2c..988d77c9f 100644 --- a/po/inkscape.pot +++ b/po/inkscape.pot @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-03-08 14:37+0100\n" +"POT-Creation-Date: 2016-05-13 22:07+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -684,8 +684,7 @@ msgstr "" #: ../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:32 +#: ../src/extension/internal/filter/morphology.h:203 ../src/filter-enums.cpp:32 msgid "Morphology" msgstr "" @@ -1101,7 +1100,7 @@ msgstr "" #: ../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:14 +#: ../share/extensions/color_randomize.inx.h:13 #: ../share/extensions/color_removeblue.inx.h:2 #: ../share/extensions/color_removegreen.inx.h:2 #: ../share/extensions/color_removered.inx.h:2 @@ -4445,21 +4444,21 @@ msgstr "" msgid "Move guide" msgstr "" -#: ../src/desktop-events.cpp:507 ../src/desktop-events.cpp:572 +#: ../src/desktop-events.cpp:507 ../src/desktop-events.cpp:567 #: ../src/ui/dialog/guides.cpp:147 msgid "Delete guide" msgstr "" -#: ../src/desktop-events.cpp:552 +#: ../src/desktop-events.cpp:547 #, c-format msgid "Guideline: %s" msgstr "" -#: ../src/desktop.cpp:875 +#: ../src/desktop.cpp:870 msgid "No previous zoom." msgstr "" -#: ../src/desktop.cpp:896 +#: ../src/desktop.cpp:891 msgid "No next zoom." msgstr "" @@ -4472,8 +4471,8 @@ msgid "_Origin X:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 -#: ../src/ui/dialog/inkscape-preferences.cpp:790 -#: ../src/ui/dialog/inkscape-preferences.cpp:815 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "X coordinate of grid origin" msgstr "" @@ -4482,8 +4481,8 @@ msgid "O_rigin Y:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 -#: ../src/ui/dialog/inkscape-preferences.cpp:791 -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Y coordinate of grid origin" msgstr "" @@ -4492,29 +4491,29 @@ msgid "Spacing _Y:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:365 -#: ../src/ui/dialog/inkscape-preferences.cpp:819 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Base length of z-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:368 -#: ../src/ui/dialog/inkscape-preferences.cpp:822 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:368 -#: ../src/ui/dialog/inkscape-preferences.cpp:822 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Angle of x-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:370 -#: ../src/ui/dialog/inkscape-preferences.cpp:823 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:370 -#: ../src/ui/dialog/inkscape-preferences.cpp:823 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 msgid "Angle of z-axis" msgstr "" @@ -4523,7 +4522,7 @@ msgid "Minor grid line _color:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Minor grid line color" msgstr "" @@ -4536,7 +4535,7 @@ msgid "Ma_jor grid line color:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Major grid line color" msgstr "" @@ -4599,12 +4598,12 @@ msgid "Spacing _X:" msgstr "" #: ../src/display/canvas-grid.cpp:705 -#: ../src/ui/dialog/inkscape-preferences.cpp:796 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Distance between vertical grid lines" msgstr "" #: ../src/display/canvas-grid.cpp:708 -#: ../src/ui/dialog/inkscape-preferences.cpp:797 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 msgid "Distance between horizontal grid lines" msgstr "" @@ -4822,21 +4821,21 @@ msgstr "" msgid " to " msgstr "" -#: ../src/document.cpp:530 +#: ../src/document.cpp:531 #, c-format msgid "New document %d" msgstr "" -#: ../src/document.cpp:535 +#: ../src/document.cpp:536 #, c-format msgid "Memory document %d" msgstr "" -#: ../src/document.cpp:564 +#: ../src/document.cpp:565 msgid "Memory document %1" msgstr "" -#: ../src/document.cpp:872 +#: ../src/document.cpp:873 #, c-format msgid "Unnamed document %d" msgstr "" @@ -4846,31 +4845,31 @@ msgid "[Unchanged]" msgstr "" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2461 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2460 msgid "_Undo" msgstr "" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2463 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2462 msgid "_Redo" msgstr "" -#: ../src/extension/dependency.cpp:243 +#: ../src/extension/dependency.cpp:255 msgid "Dependency:" msgstr "" -#: ../src/extension/dependency.cpp:244 +#: ../src/extension/dependency.cpp:256 msgid " type: " msgstr "" -#: ../src/extension/dependency.cpp:245 +#: ../src/extension/dependency.cpp:257 msgid " location: " msgstr "" -#: ../src/extension/dependency.cpp:246 +#: ../src/extension/dependency.cpp:258 msgid " string: " msgstr "" -#: ../src/extension/dependency.cpp:249 +#: ../src/extension/dependency.cpp:261 msgid " description: " msgstr "" @@ -4878,7 +4877,7 @@ msgstr "" msgid " (No preferences)" msgstr "" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2235 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2234 msgid "Extensions" msgstr "" @@ -4981,7 +4980,7 @@ msgid "" "this extension." msgstr "" -#: ../src/extension/implementation/script.cpp:1112 +#: ../src/extension/implementation/script.cpp:1108 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 " @@ -5014,8 +5013,7 @@ msgstr "" #: ../src/ui/widget/page-sizer.cpp:249 #: ../src/widgets/calligraphy-toolbar.cpp:430 #: ../src/widgets/eraser-toolbar.cpp:154 ../src/widgets/spray-toolbar.cpp:297 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/foldablebox.inx.h:2 +#: ../src/widgets/tweak-toolbar.cpp:128 ../share/extensions/foldablebox.inx.h:2 msgid "Width:" msgstr "" @@ -5087,8 +5085,8 @@ msgstr "" #: ../src/extension/internal/filter/color.h:1660 #: ../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:2857 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 #: ../src/ui/dialog/object-attributes.cpp:49 #: ../share/extensions/jessyInk_effects.inx.h:5 #: ../share/extensions/jessyInk_export.inx.h:3 @@ -5140,7 +5138,7 @@ msgstr "" #: ../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:2909 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Radius:" msgstr "" @@ -5233,6 +5231,7 @@ msgstr "" #: ../src/extension/internal/bitmap/contrast.cpp:40 #: ../src/extension/internal/filter/color.h:1189 +#: ../share/extensions/nicechart.inx.h:36 msgid "Contrast" msgstr "" @@ -5458,7 +5457,7 @@ msgid "Opacity" msgstr "" #: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2924 #: ../src/ui/dialog/objects.cpp:1629 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "" @@ -5621,7 +5620,7 @@ msgstr "" #: ../share/extensions/interp.inx.h:9 ../share/extensions/motion.inx.h:4 #: ../share/extensions/pathalongpath.inx.h:18 #: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 +#: ../share/extensions/voronoi2svg.inx.h:18 msgid "Generate from Path" msgstr "" @@ -5752,70 +5751,72 @@ msgstr "" msgid "Output page size:" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:116 +#. Dialog settings +#: ../src/extension/internal/cdr-input.cpp:103 +#: ../src/extension/internal/vsd-input.cpp:105 +msgid "Page Selector" +msgstr "" + +#. Labels +#: ../src/extension/internal/cdr-input.cpp:127 #: ../src/extension/internal/pdfinput/pdf-input.cpp:92 -#: ../src/extension/internal/vsd-input.cpp:116 +#: ../src/extension/internal/vsd-input.cpp:130 msgid "Select page:" msgstr "" #. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:128 +#: ../src/extension/internal/cdr-input.cpp:135 #: ../src/extension/internal/pdfinput/pdf-input.cpp:111 -#: ../src/extension/internal/vsd-input.cpp:128 +#: ../src/extension/internal/vsd-input.cpp:138 #, c-format msgid "out of %i" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:165 -#: ../src/extension/internal/vsd-input.cpp:165 -msgid "Page Selector" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:300 +#: ../src/extension/internal/cdr-input.cpp:293 msgid "Corel DRAW Input" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:305 +#: ../src/extension/internal/cdr-input.cpp:298 msgid "Corel DRAW 7-X4 files (*.cdr)" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:306 +#: ../src/extension/internal/cdr-input.cpp:299 msgid "Open files saved in Corel DRAW 7-X4" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:313 +#: ../src/extension/internal/cdr-input.cpp:306 msgid "Corel DRAW templates input" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:318 +#: ../src/extension/internal/cdr-input.cpp:311 msgid "Corel DRAW 7-13 template files (*.cdt)" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:319 +#: ../src/extension/internal/cdr-input.cpp:312 msgid "Open files saved in Corel DRAW 7-13" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:326 +#: ../src/extension/internal/cdr-input.cpp:319 msgid "Corel DRAW Compressed Exchange files input" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:331 +#: ../src/extension/internal/cdr-input.cpp:324 msgid "Corel DRAW Compressed Exchange files (*.ccx)" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:332 +#: ../src/extension/internal/cdr-input.cpp:325 msgid "Open compressed exchange files saved in Corel DRAW" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:339 +#: ../src/extension/internal/cdr-input.cpp:332 msgid "Corel DRAW Presentation Exchange files input" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:344 +#: ../src/extension/internal/cdr-input.cpp:337 msgid "Corel DRAW Presentation Exchange files (*.cmx)" msgstr "" -#: ../src/extension/internal/cdr-input.cpp:345 +#: ../src/extension/internal/cdr-input.cpp:338 msgid "Open presentation exchange files saved in Corel DRAW" msgstr "" @@ -5977,7 +5978,7 @@ msgstr "" #: ../src/extension/internal/filter/transparency.h:214 #: ../src/extension/internal/filter/transparency.h:287 #: ../src/extension/internal/filter/transparency.h:349 -#: ../src/ui/dialog/inkscape-preferences.cpp:1805 +#: ../src/ui/dialog/inkscape-preferences.cpp:1806 #, c-format msgid "Filters" msgstr "" @@ -6188,7 +6189,7 @@ msgstr "" #: ../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:52 ../src/ui/dialog/inkscape-preferences.cpp:697 +#: ../src/filter-enums.cpp:52 ../src/ui/dialog/inkscape-preferences.cpp:698 msgid "Normal" msgstr "" @@ -6227,7 +6228,7 @@ msgstr "" #: ../src/extension/internal/filter/transparency.h:132 #: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 #: ../src/ui/widget/color-icc-selector.cpp:176 -#: ../src/ui/widget/color-scales.cpp:379 ../src/ui/widget/color-scales.cpp:380 +#: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 msgid "Red" msgstr "" @@ -6239,7 +6240,7 @@ msgstr "" #: ../src/extension/internal/filter/transparency.h:133 #: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 #: ../src/ui/widget/color-icc-selector.cpp:177 -#: ../src/ui/widget/color-scales.cpp:382 ../src/ui/widget/color-scales.cpp:383 +#: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 msgid "Green" msgstr "" @@ -6251,7 +6252,8 @@ msgstr "" #: ../src/extension/internal/filter/transparency.h:134 #: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 #: ../src/ui/widget/color-icc-selector.cpp:178 -#: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 +#: ../src/ui/widget/color-scales.cpp:391 ../src/ui/widget/color-scales.cpp:392 +#: ../share/extensions/nicechart.inx.h:34 msgid "Blue" msgstr "" @@ -6289,9 +6291,8 @@ msgstr "" #: ../src/extension/internal/filter/paint.h:707 #: ../src/ui/tools/flood-tool.cpp:96 #: ../src/ui/widget/color-icc-selector.cpp:187 -#: ../src/ui/widget/color-scales.cpp:411 ../src/ui/widget/color-scales.cpp:412 +#: ../src/ui/widget/color-scales.cpp:417 ../src/ui/widget/color-scales.cpp:418 #: ../src/widgets/tweak-toolbar.cpp:318 -#: ../share/extensions/color_randomize.inx.h:9 msgid "Lightness" msgstr "" @@ -6441,15 +6442,13 @@ msgid "Transparency type:" msgstr "" #: ../src/extension/internal/filter/bumps.h:353 -#: ../src/extension/internal/filter/morphology.h:176 -#: ../src/filter-enums.cpp:91 +#: ../src/extension/internal/filter/morphology.h:176 ../src/filter-enums.cpp:91 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:89 +#: ../src/extension/internal/filter/morphology.h:174 ../src/filter-enums.cpp:89 msgid "In" msgstr "" @@ -6487,13 +6486,12 @@ msgstr "" #: ../src/extension/internal/filter/color.h:157 #: ../src/extension/internal/filter/color.h:332 #: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:996 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 #: ../src/ui/tools/flood-tool.cpp:95 #: ../src/ui/widget/color-icc-selector.cpp:183 #: ../src/ui/widget/color-icc-selector.cpp:188 -#: ../src/ui/widget/color-scales.cpp:408 ../src/ui/widget/color-scales.cpp:409 +#: ../src/ui/widget/color-scales.cpp:414 ../src/ui/widget/color-scales.cpp:415 #: ../src/widgets/tweak-toolbar.cpp:302 -#: ../share/extensions/color_randomize.inx.h:6 msgid "Saturation" msgstr "" @@ -6670,21 +6668,21 @@ msgstr "" #: ../src/extension/internal/filter/color.h:715 #: ../src/ui/widget/color-icc-selector.cpp:190 #: ../src/ui/widget/color-icc-selector.cpp:195 -#: ../src/ui/widget/color-scales.cpp:433 ../src/ui/widget/color-scales.cpp:434 +#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 msgid "Cyan" msgstr "" #: ../src/extension/internal/filter/color.h:716 #: ../src/ui/widget/color-icc-selector.cpp:191 #: ../src/ui/widget/color-icc-selector.cpp:196 -#: ../src/ui/widget/color-scales.cpp:436 ../src/ui/widget/color-scales.cpp:437 +#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:443 msgid "Magenta" msgstr "" #: ../src/extension/internal/filter/color.h:717 #: ../src/ui/widget/color-icc-selector.cpp:192 #: ../src/ui/widget/color-icc-selector.cpp:197 -#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 +#: ../src/ui/widget/color-scales.cpp:445 ../src/ui/widget/color-scales.cpp:446 msgid "Yellow" msgstr "" @@ -6710,7 +6708,7 @@ msgstr "" #: ../src/extension/internal/filter/color.h:819 #: ../src/ui/widget/color-icc-selector.cpp:193 -#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:443 +#: ../src/ui/widget/color-scales.cpp:448 ../src/ui/widget/color-scales.cpp:449 #: ../src/ui/widget/selected-style.cpp:274 msgid "Black" msgstr "" @@ -6793,7 +6791,7 @@ msgstr "" #: ../src/extension/internal/filter/color.h:1119 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 -#: ../src/live_effects/effect.cpp:108 +#: ../src/live_effects/effect.cpp:107 #: ../src/live_effects/lpe-transform_2pts.cpp:40 #: ../src/ui/dialog/filter-effects-dialog.cpp:1048 #: ../src/widgets/gradient-toolbar.cpp:1159 @@ -6962,8 +6960,7 @@ msgid "Felt Feather" msgstr "" #: ../src/extension/internal/filter/distort.h:71 -#: ../src/extension/internal/filter/morphology.h:175 -#: ../src/filter-enums.cpp:90 +#: ../src/extension/internal/filter/morphology.h:175 ../src/filter-enums.cpp:90 msgid "Out" msgstr "" @@ -7045,7 +7042,7 @@ msgid "Blur and displace edges of shapes and pictures" msgstr "" #: ../src/extension/internal/filter/distort.h:190 -#: ../src/live_effects/effect.cpp:138 +#: ../src/live_effects/effect.cpp:142 msgid "Roughen" msgstr "" @@ -7081,8 +7078,8 @@ 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 +#: ../src/ui/dialog/template-load-tab.cpp:107 +#: ../src/ui/dialog/template-load-tab.cpp:144 msgid "All" msgstr "" @@ -7157,13 +7154,11 @@ msgstr "" msgid "Composite type:" msgstr "" -#: ../src/extension/internal/filter/morphology.h:173 -#: ../src/filter-enums.cpp:88 +#: ../src/extension/internal/filter/morphology.h:173 ../src/filter-enums.cpp:88 msgid "Over" msgstr "" -#: ../src/extension/internal/filter/morphology.h:177 -#: ../src/filter-enums.cpp:92 +#: ../src/extension/internal/filter/morphology.h:177 ../src/filter-enums.cpp:92 msgid "XOR" msgstr "" @@ -7237,8 +7232,8 @@ msgstr "" #: ../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/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 @@ -7358,17 +7353,17 @@ 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:1041 -#: ../src/widgets/desktop-widget.cpp:2049 +#: ../src/ui/dialog/align-and-distribute.cpp:1090 +#: ../src/widgets/desktop-widget.cpp:2070 msgid "Drawing" msgstr "" -#. 0.91 +#. 0.92 #: ../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/live_effects/effect.cpp:149 ../src/splivarot.cpp:2204 +#: ../src/live_effects/effect.cpp:136 ../src/splivarot.cpp:2206 msgid "Simplify" msgstr "" @@ -7650,7 +7645,7 @@ msgid "Background" msgstr "" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 #: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:133 #: ../src/widgets/pencil-toolbar.cpp:141 ../src/widgets/spray-toolbar.cpp:389 #: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 @@ -7717,13 +7712,13 @@ msgid "" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:196 -#: ../src/ui/dialog/inkscape-preferences.cpp:1510 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Embed" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:197 ../src/sp-anchor.cpp:105 -#: ../src/ui/dialog/inkscape-preferences.cpp:1510 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Link" msgstr "" @@ -7763,19 +7758,19 @@ msgid "" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:206 -#: ../src/ui/dialog/inkscape-preferences.cpp:1517 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "None (auto)" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:207 -#: ../src/ui/dialog/inkscape-preferences.cpp:1517 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Smooth (optimizeQuality)" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:208 -#: ../src/ui/dialog/inkscape-preferences.cpp:1517 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Blocky (optimizeSpeed)" msgstr "" @@ -7802,7 +7797,7 @@ msgstr "" msgid "Gradients used in GIMP" msgstr "" -#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:114 +#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:116 msgid "Grid" msgstr "" @@ -7827,18 +7822,17 @@ msgid "Vertical Offset:" msgstr "" #: ../src/extension/internal/grid.cpp:214 -#: ../src/ui/dialog/inkscape-preferences.cpp:1531 +#: ../src/ui/dialog/inkscape-preferences.cpp:1532 #: ../share/extensions/draw_from_triangle.inx.h:58 -#: ../share/extensions/eqtexsvg.inx.h:4 -#: ../share/extensions/foldablebox.inx.h:9 +#: ../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/hershey.inx.h:52 ../share/extensions/layout_nup.inx.h:35 #: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/nicechart.inx.h:45 #: ../share/extensions/param_curves.inx.h:30 #: ../share/extensions/perfectboundcover.inx.h:19 #: ../share/extensions/polyhedron_3d.inx.h:56 @@ -7859,8 +7853,8 @@ msgstr "" #: ../src/extension/internal/grid.cpp:215 #: ../src/ui/dialog/document-properties.cpp:163 -#: ../src/ui/dialog/inkscape-preferences.cpp:831 -#: ../src/widgets/toolbox.cpp:1879 +#: ../src/ui/dialog/inkscape-preferences.cpp:832 +#: ../src/widgets/toolbox.cpp:1886 msgid "Grids" msgstr "" @@ -8118,48 +8112,48 @@ msgstr "" msgid "Scalable Vector Graphics format compressed with GZip" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:301 +#: ../src/extension/internal/vsd-input.cpp:296 msgid "VSD Input" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:306 +#: ../src/extension/internal/vsd-input.cpp:301 msgid "Microsoft Visio Diagram (*.vsd)" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:307 +#: ../src/extension/internal/vsd-input.cpp:302 msgid "File format used by Microsoft Visio 6 and later" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:314 +#: ../src/extension/internal/vsd-input.cpp:309 msgid "VDX Input" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:319 +#: ../src/extension/internal/vsd-input.cpp:314 msgid "Microsoft Visio XML Diagram (*.vdx)" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:320 +#: ../src/extension/internal/vsd-input.cpp:315 msgid "File format used by Microsoft Visio 2010 and later" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:327 +#: ../src/extension/internal/vsd-input.cpp:322 msgid "VSDM Input" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:332 +#: ../src/extension/internal/vsd-input.cpp:327 msgid "Microsoft Visio 2013 drawing (*.vsdm)" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:333 -#: ../src/extension/internal/vsd-input.cpp:346 +#: ../src/extension/internal/vsd-input.cpp:328 +#: ../src/extension/internal/vsd-input.cpp:341 msgid "File format used by Microsoft Visio 2013 and later" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:340 +#: ../src/extension/internal/vsd-input.cpp:335 msgid "VSDX Input" msgstr "" -#: ../src/extension/internal/vsd-input.cpp:345 +#: ../src/extension/internal/vsd-input.cpp:340 msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "" @@ -8184,8 +8178,7 @@ msgid "Map all fill patterns to standard WMF hatches" msgstr "" #: ../src/extension/internal/wmf-inout.cpp:3208 -#: ../share/extensions/wmf_input.inx.h:2 -#: ../share/extensions/wmf_output.inx.h:2 +#: ../share/extensions/wmf_input.inx.h:2 ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "" @@ -8213,7 +8206,7 @@ msgstr "" msgid "Is the effect previewed live on canvas?" msgstr "" -#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +#: ../src/extension/system.cpp:126 ../src/extension/system.cpp:128 msgid "Format autodetect failed. The file is being opened as SVG." msgstr "" @@ -8317,7 +8310,7 @@ msgstr "" msgid "Saving document..." msgstr "" -#: ../src/file.cpp:1275 ../src/ui/dialog/inkscape-preferences.cpp:1504 +#: ../src/file.cpp:1275 ../src/ui/dialog/inkscape-preferences.cpp:1505 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "" @@ -8426,9 +8419,8 @@ msgstr "" #: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 #: ../src/ui/widget/color-icc-selector.cpp:182 #: ../src/ui/widget/color-icc-selector.cpp:186 -#: ../src/ui/widget/color-scales.cpp:405 ../src/ui/widget/color-scales.cpp:406 +#: ../src/ui/widget/color-scales.cpp:411 ../src/ui/widget/color-scales.cpp:412 #: ../src/widgets/tweak-toolbar.cpp:286 -#: ../share/extensions/color_randomize.inx.h:3 msgid "Hue" msgstr "" @@ -8452,10 +8444,9 @@ msgstr "" msgid "Luminance to Alpha" msgstr "" -#: ../src/filter-enums.cpp:87 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 +#: ../src/filter-enums.cpp:87 ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 -#: ../share/extensions/measure.inx.h:20 +#: ../share/extensions/measure.inx.h:20 ../share/extensions/nicechart.inx.h:33 msgid "Default" msgstr "" @@ -8747,8 +8738,7 @@ msgstr "" msgid "Close this dock" msgstr "" -#: ../src/libgdl/gdl-dock-item-grip.c:723 -#: ../src/libgdl/gdl-dock-tablabel.c:125 +#: ../src/libgdl/gdl-dock-item-grip.c:723 ../src/libgdl/gdl-dock-tablabel.c:125 msgid "Controlling dock item" msgstr "" @@ -8756,7 +8746,7 @@ msgstr "" msgid "Dockitem which 'owns' this grip" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:197 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:201 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -8885,12 +8875,12 @@ msgid "" msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1040 +#: ../src/ui/dialog/align-and-distribute.cpp:1089 #: ../src/ui/dialog/document-properties.cpp:161 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1549 -#: ../src/widgets/desktop-widget.cpp:2045 +#: ../src/widgets/desktop-widget.cpp:2066 #: ../share/extensions/empty_page.inx.h:1 -#: ../share/extensions/voronoi2svg.inx.h:9 +#: ../share/extensions/voronoi2svg.inx.h:10 msgid "Page" msgstr "" @@ -8900,9 +8890,8 @@ msgstr "" #: ../src/libgdl/gdl-dock-object.c:125 #: ../src/live_effects/parameter/originalpatharray.cpp:82 -#: ../src/ui/dialog/inkscape-preferences.cpp:1565 -#: ../src/ui/widget/page-sizer.cpp:285 -#: ../src/widgets/gradient-selector.cpp:150 +#: ../src/ui/dialog/inkscape-preferences.cpp:1566 +#: ../src/ui/widget/page-sizer.cpp:285 ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "" @@ -8968,7 +8957,7 @@ 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:235 +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:239 msgid "Position" msgstr "" @@ -9056,8 +9045,8 @@ msgstr "" msgid "Dockitem which 'owns' this tablabel" msgstr "" -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:686 -#: ../src/ui/dialog/inkscape-preferences.cpp:729 +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Floating" msgstr "" @@ -9134,190 +9123,189 @@ msgstr "" msgid "Line Segment" msgstr "" -#: ../src/live_effects/effect.cpp:107 -msgid "Mirror symmetry" +#: ../src/live_effects/effect.cpp:108 +msgid "Parallel" msgstr "" #: ../src/live_effects/effect.cpp:109 -msgid "Parallel" +msgid "Path length" msgstr "" #: ../src/live_effects/effect.cpp:110 -msgid "Path length" +msgid "Perpendicular bisector" msgstr "" #: ../src/live_effects/effect.cpp:111 -msgid "Perpendicular bisector" +msgid "Perspective path" msgstr "" #: ../src/live_effects/effect.cpp:112 -msgid "Perspective path" +msgid "Recursive skeleton" msgstr "" #: ../src/live_effects/effect.cpp:113 -msgid "Rotate copies" +msgid "Tangent to curve" msgstr "" #: ../src/live_effects/effect.cpp:114 -msgid "Recursive skeleton" +msgid "Text label" msgstr "" #: ../src/live_effects/effect.cpp:115 -msgid "Tangent to curve" -msgstr "" - -#: ../src/live_effects/effect.cpp:116 -msgid "Text label" +msgid "Fillet/Chamfer" msgstr "" #. 0.46 -#: ../src/live_effects/effect.cpp:119 +#: ../src/live_effects/effect.cpp:118 msgid "Bend" msgstr "" -#: ../src/live_effects/effect.cpp:120 +#: ../src/live_effects/effect.cpp:119 msgid "Gears" msgstr "" -#: ../src/live_effects/effect.cpp:121 +#: ../src/live_effects/effect.cpp:120 msgid "Pattern Along Path" msgstr "" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:122 +#: ../src/live_effects/effect.cpp:121 msgid "Stitch Sub-Paths" msgstr "" #. 0.47 -#: ../src/live_effects/effect.cpp:124 +#: ../src/live_effects/effect.cpp:123 msgid "VonKoch" msgstr "" -#: ../src/live_effects/effect.cpp:125 +#: ../src/live_effects/effect.cpp:124 msgid "Knot" msgstr "" -#: ../src/live_effects/effect.cpp:126 +#: ../src/live_effects/effect.cpp:125 msgid "Construct grid" msgstr "" -#: ../src/live_effects/effect.cpp:127 +#: ../src/live_effects/effect.cpp:126 msgid "Spiro spline" msgstr "" -#: ../src/live_effects/effect.cpp:128 +#: ../src/live_effects/effect.cpp:127 msgid "Envelope Deformation" msgstr "" -#: ../src/live_effects/effect.cpp:129 +#: ../src/live_effects/effect.cpp:128 msgid "Interpolate Sub-Paths" msgstr "" -#: ../src/live_effects/effect.cpp:130 +#: ../src/live_effects/effect.cpp:129 msgid "Hatches (rough)" msgstr "" -#: ../src/live_effects/effect.cpp:131 +#: ../src/live_effects/effect.cpp:130 msgid "Sketch" msgstr "" -#: ../src/live_effects/effect.cpp:132 +#: ../src/live_effects/effect.cpp:131 msgid "Ruler" msgstr "" #. 0.91 -#: ../src/live_effects/effect.cpp:134 +#: ../src/live_effects/effect.cpp:133 msgid "Power stroke" msgstr "" -#: ../src/live_effects/effect.cpp:135 +#: ../src/live_effects/effect.cpp:134 msgid "Clone original path" msgstr "" -#. EXPERIMENTAL #: ../src/live_effects/effect.cpp:137 -#: ../src/live_effects/lpe-show_handles.cpp:26 -msgid "Show handles" +msgid "Lattice Deformation 2" msgstr "" -#: ../src/live_effects/effect.cpp:139 ../src/widgets/pencil-toolbar.cpp:118 -msgid "BSpline" +#: ../src/live_effects/effect.cpp:138 +msgid "Perspective/Envelope" +msgstr "" + +#: ../src/live_effects/effect.cpp:139 +msgid "Interpolate points" msgstr "" #: ../src/live_effects/effect.cpp:140 -msgid "Join type" +msgid "Transform by 2 points" msgstr "" #: ../src/live_effects/effect.cpp:141 -msgid "Taper stroke" +#: ../src/live_effects/lpe-show_handles.cpp:26 +msgid "Show handles" msgstr "" -#. Ponyscape -#: ../src/live_effects/effect.cpp:143 -msgid "Attach path" +#: ../src/live_effects/effect.cpp:143 ../src/widgets/pencil-toolbar.cpp:118 +msgid "BSpline" msgstr "" #: ../src/live_effects/effect.cpp:144 -msgid "Fill between strokes" +msgid "Join type" msgstr "" -#: ../src/live_effects/effect.cpp:145 ../src/selection-chemistry.cpp:2874 -msgid "Fill between many" +#: ../src/live_effects/effect.cpp:145 +msgid "Taper stroke" msgstr "" #: ../src/live_effects/effect.cpp:146 -msgid "Ellipse by 5 points" +msgid "Mirror symmetry" msgstr "" #: ../src/live_effects/effect.cpp:147 -msgid "Bounding Box" +msgid "Rotate copies" +msgstr "" + +#. Ponyscape -> Inkscape 0.92 +#: ../src/live_effects/effect.cpp:149 +msgid "Attach path" msgstr "" #: ../src/live_effects/effect.cpp:150 -msgid "Lattice Deformation 2" +msgid "Fill between strokes" msgstr "" -#: ../src/live_effects/effect.cpp:151 -msgid "Perspective/Envelope" +#: ../src/live_effects/effect.cpp:151 ../src/selection-chemistry.cpp:2906 +msgid "Fill between many" msgstr "" #: ../src/live_effects/effect.cpp:152 -msgid "Fillet/Chamfer" +msgid "Ellipse by 5 points" msgstr "" #: ../src/live_effects/effect.cpp:153 -msgid "Interpolate points" -msgstr "" - -#: ../src/live_effects/effect.cpp:154 -msgid "Transform by 2 points" +msgid "Bounding Box" msgstr "" -#: ../src/live_effects/effect.cpp:362 +#: ../src/live_effects/effect.cpp:361 msgid "Is visible?" msgstr "" -#: ../src/live_effects/effect.cpp:362 +#: ../src/live_effects/effect.cpp:361 msgid "" "If unchecked, the effect remains applied to the object but is temporarily " "disabled on canvas" msgstr "" -#: ../src/live_effects/effect.cpp:387 +#: ../src/live_effects/effect.cpp:386 msgid "No effect" msgstr "" -#: ../src/live_effects/effect.cpp:495 +#: ../src/live_effects/effect.cpp:498 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" -#: ../src/live_effects/effect.cpp:762 +#: ../src/live_effects/effect.cpp:765 #, c-format msgid "Editing parameter %s." msgstr "" -#: ../src/live_effects/effect.cpp:767 +#: ../src/live_effects/effect.cpp:770 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" @@ -9418,7 +9406,7 @@ msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "" #: ../src/live_effects/lpe-bendpath.cpp:178 -#: ../src/live_effects/lpe-patternalongpath.cpp:278 +#: ../src/live_effects/lpe-patternalongpath.cpp:285 msgid "Change the width" msgstr "" @@ -9679,7 +9667,7 @@ msgid "Reverses the second path order" msgstr "" #: ../src/live_effects/lpe-fillet-chamfer.cpp:41 -#: ../src/widgets/text-toolbar.cpp:1540 +#: ../src/widgets/text-toolbar.cpp:1788 #: ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "" @@ -10264,6 +10252,71 @@ msgstr "" msgid "Hide Points" msgstr "" +#: ../src/live_effects/lpe-mirror_symmetry.cpp:36 +msgid "Vertical Page Center" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:37 +msgid "Horizontal Page Center" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:38 +msgid "Free from reflection line" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:39 +msgid "X from middle knot" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:40 +msgid "Y from middle knot" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:72 +#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253 +msgid "Mode" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:72 +msgid "Symmetry move mode" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:73 +msgid "Discard original path?" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:73 +msgid "Check this to only keep the mirrored part of the path" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:74 +msgid "Fuse paths" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:74 +msgid "Fuse original and the reflection into a single path" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:75 +msgid "Oposite fuse" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:75 +msgid "Picks the other side of the mirror as the original" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:76 +msgid "Start mirror line" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:77 +msgid "End mirror line" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:335 +msgid "Adjust the center" +msgstr "" + #: ../src/live_effects/lpe-patternalongpath.cpp:63 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -10781,15 +10834,14 @@ msgstr "" msgid "Distance between successive ruler marks" msgstr "" -#: ../src/live_effects/lpe-ruler.cpp:42 -#: ../share/extensions/foldablebox.inx.h:7 +#: ../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-ruler.cpp:42 ../src/widgets/ruler.cpp:207 +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:211 msgid "Unit" msgstr "" @@ -10994,7 +11046,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "" #: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "" @@ -11050,7 +11102,7 @@ msgid "Extrapolated" msgstr "" #: ../src/live_effects/lpe-taperstroke.cpp:73 -#: ../share/extensions/edge3d.inx.h:5 +#: ../share/extensions/edge3d.inx.h:5 ../share/extensions/nicechart.inx.h:25 msgid "Stroke width:" msgstr "" @@ -11171,11 +11223,11 @@ msgid "Change index of knot" msgstr "" #: ../src/live_effects/lpe-transform_2pts.cpp:349 -#: ../src/ui/dialog/inkscape-preferences.cpp:1622 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 #: ../src/ui/dialog/pixelartdialog.cpp:296 #: ../src/ui/dialog/svg-fonts-dialog.cpp:699 #: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:746 +#: ../src/ui/widget/preferences-widget.cpp:742 msgid "Reset" msgstr "" @@ -11285,7 +11337,7 @@ msgstr "" #: ../src/live_effects/parameter/originalpatharray.cpp:130 #: ../src/live_effects/parameter/originalpatharray.cpp:315 -#: ../src/live_effects/parameter/path.cpp:481 +#: ../src/live_effects/parameter/path.cpp:486 msgid "Link path parameter to path" msgstr "" @@ -11331,7 +11383,7 @@ msgstr "" msgid "Link to path on clipboard" msgstr "" -#: ../src/live_effects/parameter/path.cpp:449 +#: ../src/live_effects/parameter/path.cpp:454 msgid "Paste path parameter" msgstr "" @@ -11378,272 +11430,272 @@ msgstr "" msgid "Unable to find node ID: '%s'\n" msgstr "" -#: ../src/main.cpp:295 +#: ../src/main.cpp:300 msgid "Print the Inkscape version number" msgstr "" -#: ../src/main.cpp:300 +#: ../src/main.cpp:305 msgid "Do not use X server (only process files from console)" msgstr "" -#: ../src/main.cpp:305 +#: ../src/main.cpp:310 msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "" -#: ../src/main.cpp:310 +#: ../src/main.cpp:315 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 +#: ../src/main.cpp:316 ../src/main.cpp:321 ../src/main.cpp:326 +#: ../src/main.cpp:398 ../src/main.cpp:403 ../src/main.cpp:408 +#: ../src/main.cpp:419 ../src/main.cpp:435 ../src/main.cpp:440 msgid "FILENAME" msgstr "" -#: ../src/main.cpp:315 +#: ../src/main.cpp:320 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" -#: ../src/main.cpp:320 +#: ../src/main.cpp:325 msgid "Export document to a PNG file" msgstr "" -#: ../src/main.cpp:325 +#: ../src/main.cpp:330 msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 96)" msgstr "" -#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 +#: ../src/main.cpp:331 ../src/ui/widget/rendering-options.cpp:37 msgid "DPI" msgstr "" -#: ../src/main.cpp:330 +#: ../src/main.cpp:335 msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" msgstr "" -#: ../src/main.cpp:331 +#: ../src/main.cpp:336 msgid "x0:y0:x1:y1" msgstr "" -#: ../src/main.cpp:335 +#: ../src/main.cpp:340 msgid "Exported area is the entire drawing (not page)" msgstr "" -#: ../src/main.cpp:340 +#: ../src/main.cpp:345 msgid "Exported area is the entire page" msgstr "" -#: ../src/main.cpp:345 +#: ../src/main.cpp:350 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:351 ../src/main.cpp:393 msgid "VALUE" msgstr "" -#: ../src/main.cpp:350 +#: ../src/main.cpp:355 msgid "" "Snap the bitmap export area outwards to the nearest integer values (in SVG " "user units)" msgstr "" -#: ../src/main.cpp:355 +#: ../src/main.cpp:360 msgid "The width of exported bitmap in pixels (overrides export-dpi)" msgstr "" -#: ../src/main.cpp:356 +#: ../src/main.cpp:361 msgid "WIDTH" msgstr "" -#: ../src/main.cpp:360 +#: ../src/main.cpp:365 msgid "The height of exported bitmap in pixels (overrides export-dpi)" msgstr "" -#: ../src/main.cpp:361 +#: ../src/main.cpp:366 msgid "HEIGHT" msgstr "" -#: ../src/main.cpp:365 +#: ../src/main.cpp:370 msgid "The ID of the object to export" msgstr "" -#: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1568 +#: ../src/main.cpp:371 ../src/main.cpp:484 +#: ../src/ui/dialog/inkscape-preferences.cpp:1569 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 +#: ../src/main.cpp:377 msgid "" "Export just the object with export-id, hide all others (only with export-id)" msgstr "" -#: ../src/main.cpp:377 +#: ../src/main.cpp:382 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "" -#: ../src/main.cpp:382 +#: ../src/main.cpp:387 msgid "Background color of exported bitmap (any SVG-supported color string)" msgstr "" -#: ../src/main.cpp:383 +#: ../src/main.cpp:388 msgid "COLOR" msgstr "" -#: ../src/main.cpp:387 +#: ../src/main.cpp:392 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "" -#: ../src/main.cpp:392 +#: ../src/main.cpp:397 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" -#: ../src/main.cpp:397 +#: ../src/main.cpp:402 msgid "Export document to a PS file" msgstr "" -#: ../src/main.cpp:402 +#: ../src/main.cpp:407 msgid "Export document to an EPS file" msgstr "" -#: ../src/main.cpp:407 +#: ../src/main.cpp:412 msgid "" "Choose the PostScript Level used to export. Possible choices are 2 and 3 " "(the default)" msgstr "" -#: ../src/main.cpp:409 +#: ../src/main.cpp:414 msgid "PS Level" msgstr "" -#: ../src/main.cpp:413 +#: ../src/main.cpp:418 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 +#: ../src/main.cpp:424 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:425 msgid "PDF_VERSION" msgstr "" -#: ../src/main.cpp:424 +#: ../src/main.cpp:429 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 +#: ../src/main.cpp:434 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "" -#: ../src/main.cpp:434 +#: ../src/main.cpp:439 msgid "Export document to a Windows Metafile (WMF) File" msgstr "" -#: ../src/main.cpp:439 +#: ../src/main.cpp:444 msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" msgstr "" -#: ../src/main.cpp:444 +#: ../src/main.cpp:449 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 +#: ../src/main.cpp:455 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 +#: ../src/main.cpp:461 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 +#: ../src/main.cpp:467 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 +#: ../src/main.cpp:473 msgid "" "Query the height of the drawing or, if specified, of the object with --query-" "id" msgstr "" -#: ../src/main.cpp:473 +#: ../src/main.cpp:478 msgid "List id,x,y,w,h for all objects" msgstr "" -#: ../src/main.cpp:478 +#: ../src/main.cpp:483 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 +#: ../src/main.cpp:489 msgid "Print out the extension directory and exit" msgstr "" -#: ../src/main.cpp:489 +#: ../src/main.cpp:494 msgid "Remove unused definitions from the defs section(s) of the document" msgstr "" -#: ../src/main.cpp:495 +#: ../src/main.cpp:500 msgid "Enter a listening loop for D-Bus messages in console mode" msgstr "" -#: ../src/main.cpp:500 +#: ../src/main.cpp:505 msgid "" "Specify the D-Bus bus name to listen for messages on (default is org." "inkscape)" msgstr "" -#: ../src/main.cpp:501 +#: ../src/main.cpp:506 msgid "BUS-NAME" msgstr "" -#: ../src/main.cpp:506 +#: ../src/main.cpp:511 msgid "List the IDs of all the verbs in Inkscape" msgstr "" -#: ../src/main.cpp:511 +#: ../src/main.cpp:516 msgid "Verb to call when Inkscape opens." msgstr "" -#: ../src/main.cpp:512 +#: ../src/main.cpp:517 msgid "VERB-ID" msgstr "" -#: ../src/main.cpp:516 +#: ../src/main.cpp:521 msgid "Object ID to select when Inkscape opens." msgstr "" -#: ../src/main.cpp:517 +#: ../src/main.cpp:522 msgid "OBJECT-ID" msgstr "" -#: ../src/main.cpp:521 +#: ../src/main.cpp:526 msgid "Start Inkscape in interactive shell mode." msgstr "" -#: ../src/main.cpp:871 ../src/main.cpp:1284 +#: ../src/main.cpp:876 ../src/main.cpp:1318 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -11657,11 +11709,11 @@ msgstr "" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2714 ../src/verbs.cpp:2722 +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 msgid "_Edit" msgstr "" -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2473 +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2472 msgid "Paste Si_ze" msgstr "" @@ -11673,76 +11725,76 @@ msgstr "" msgid "Select Sa_me" msgstr "" -#: ../src/menus-skeleton.h:98 +#: ../src/menus-skeleton.h:100 msgid "_View" msgstr "" -#: ../src/menus-skeleton.h:99 +#: ../src/menus-skeleton.h:101 msgid "_Zoom" msgstr "" -#: ../src/menus-skeleton.h:115 +#: ../src/menus-skeleton.h:117 msgid "_Display mode" msgstr "" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:124 +#: ../src/menus-skeleton.h:126 msgid "_Color display mode" msgstr "" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:137 +#: ../src/menus-skeleton.h:139 msgid "Sh_ow/Hide" msgstr "" #. Not quite ready to be in the menus. #. " \n" -#: ../src/menus-skeleton.h:157 +#: ../src/menus-skeleton.h:159 msgid "_Layer" msgstr "" -#: ../src/menus-skeleton.h:181 +#: ../src/menus-skeleton.h:183 msgid "_Object" msgstr "" -#: ../src/menus-skeleton.h:192 +#: ../src/menus-skeleton.h:195 msgid "Cli_p" msgstr "" -#: ../src/menus-skeleton.h:196 +#: ../src/menus-skeleton.h:199 msgid "Mas_k" msgstr "" -#: ../src/menus-skeleton.h:200 +#: ../src/menus-skeleton.h:203 msgid "Patter_n" msgstr "" -#: ../src/menus-skeleton.h:224 +#: ../src/menus-skeleton.h:227 msgid "_Path" msgstr "" -#: ../src/menus-skeleton.h:256 ../src/ui/dialog/find.cpp:78 +#: ../src/menus-skeleton.h:259 ../src/ui/dialog/find.cpp:78 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "" -#: ../src/menus-skeleton.h:274 +#: ../src/menus-skeleton.h:277 msgid "Filter_s" msgstr "" -#: ../src/menus-skeleton.h:280 +#: ../src/menus-skeleton.h:283 msgid "Exte_nsions" msgstr "" -#: ../src/menus-skeleton.h:286 +#: ../src/menus-skeleton.h:289 msgid "_Help" msgstr "" -#: ../src/menus-skeleton.h:290 +#: ../src/menus-skeleton.h:293 msgid "Tutorials" msgstr "" @@ -11770,43 +11822,43 @@ msgstr "" msgid "Breaking apart paths..." msgstr "" -#: ../src/path-chemistry.cpp:288 +#: ../src/path-chemistry.cpp:282 msgid "Break apart" msgstr "" -#: ../src/path-chemistry.cpp:291 +#: ../src/path-chemistry.cpp:285 msgid "No path(s) to break apart in the selection." msgstr "" -#: ../src/path-chemistry.cpp:301 +#: ../src/path-chemistry.cpp:295 msgid "Select object(s) to convert to path." msgstr "" -#: ../src/path-chemistry.cpp:307 +#: ../src/path-chemistry.cpp:301 msgid "Converting objects to paths..." msgstr "" -#: ../src/path-chemistry.cpp:326 +#: ../src/path-chemistry.cpp:320 msgid "Object to path" msgstr "" -#: ../src/path-chemistry.cpp:328 +#: ../src/path-chemistry.cpp:322 msgid "No objects to convert to path in the selection." msgstr "" -#: ../src/path-chemistry.cpp:615 +#: ../src/path-chemistry.cpp:609 msgid "Select path(s) to reverse." msgstr "" -#: ../src/path-chemistry.cpp:624 +#: ../src/path-chemistry.cpp:618 msgid "Reversing paths..." msgstr "" -#: ../src/path-chemistry.cpp:659 +#: ../src/path-chemistry.cpp:653 msgid "Reverse path" msgstr "" -#: ../src/path-chemistry.cpp:661 +#: ../src/path-chemistry.cpp:655 msgid "No paths to reverse in the selection." msgstr "" @@ -12004,7 +12056,7 @@ msgstr "" msgid "A related resource" msgstr "" -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1924 +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1925 msgid "Language:" msgstr "" @@ -12086,8 +12138,7 @@ msgstr "" #: ../src/widgets/eraser-toolbar.cpp:120 #: ../src/widgets/gradient-toolbar.cpp:1181 #: ../src/widgets/gradient-toolbar.cpp:1195 -#: ../src/widgets/gradient-toolbar.cpp:1209 -#: ../src/widgets/node-toolbar.cpp:401 +#: ../src/widgets/gradient-toolbar.cpp:1209 ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "" @@ -12114,373 +12165,385 @@ msgid "Group" msgstr "" #: ../src/selection-chemistry.cpp:798 +msgid "No objects selected to pop out of group." +msgstr "" + +#: ../src/selection-chemistry.cpp:808 +msgid "Selection not in a group." +msgstr "" + +#: ../src/selection-chemistry.cpp:822 +msgid "Pop selection from group" +msgstr "" + +#: ../src/selection-chemistry.cpp:830 msgid "Select a group to ungroup." msgstr "" -#: ../src/selection-chemistry.cpp:813 +#: ../src/selection-chemistry.cpp:845 msgid "No groups to ungroup in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:869 ../src/sp-item-group.cpp:550 +#: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:550 #: ../src/ui/dialog/objects.cpp:1916 msgid "Ungroup" msgstr "" -#: ../src/selection-chemistry.cpp:956 +#: ../src/selection-chemistry.cpp:988 msgid "Select object(s) to raise." msgstr "" -#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1015 -#: ../src/selection-chemistry.cpp:1041 ../src/selection-chemistry.cpp:1099 +#: ../src/selection-chemistry.cpp:994 ../src/selection-chemistry.cpp:1047 +#: ../src/selection-chemistry.cpp:1073 ../src/selection-chemistry.cpp:1131 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:999 +#: ../src/selection-chemistry.cpp:1031 msgctxt "Undo action" msgid "Raise" msgstr "" -#: ../src/selection-chemistry.cpp:1007 +#: ../src/selection-chemistry.cpp:1039 msgid "Select object(s) to raise to top." msgstr "" -#: ../src/selection-chemistry.cpp:1028 +#: ../src/selection-chemistry.cpp:1060 msgid "Raise to top" msgstr "" -#: ../src/selection-chemistry.cpp:1035 +#: ../src/selection-chemistry.cpp:1067 msgid "Select object(s) to lower." msgstr "" #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1083 +#: ../src/selection-chemistry.cpp:1115 msgctxt "Undo action" msgid "Lower" msgstr "" -#: ../src/selection-chemistry.cpp:1091 +#: ../src/selection-chemistry.cpp:1123 msgid "Select object(s) to lower to bottom." msgstr "" -#: ../src/selection-chemistry.cpp:1122 +#: ../src/selection-chemistry.cpp:1154 msgid "Lower to bottom" msgstr "" -#: ../src/selection-chemistry.cpp:1132 +#: ../src/selection-chemistry.cpp:1164 msgid "Nothing to undo." msgstr "" -#: ../src/selection-chemistry.cpp:1143 +#: ../src/selection-chemistry.cpp:1175 msgid "Nothing to redo." msgstr "" -#: ../src/selection-chemistry.cpp:1215 +#: ../src/selection-chemistry.cpp:1247 msgid "Paste" msgstr "" -#: ../src/selection-chemistry.cpp:1223 +#: ../src/selection-chemistry.cpp:1255 msgid "Paste style" msgstr "" -#: ../src/selection-chemistry.cpp:1233 +#: ../src/selection-chemistry.cpp:1265 msgid "Paste live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1255 +#: ../src/selection-chemistry.cpp:1287 msgid "Select object(s) to remove live path effects from." msgstr "" -#: ../src/selection-chemistry.cpp:1267 +#: ../src/selection-chemistry.cpp:1299 msgid "Remove live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1278 +#: ../src/selection-chemistry.cpp:1310 msgid "Select object(s) to remove filters from." msgstr "" -#: ../src/selection-chemistry.cpp:1288 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/selection-chemistry.cpp:1320 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1695 msgid "Remove filter" msgstr "" -#: ../src/selection-chemistry.cpp:1297 +#: ../src/selection-chemistry.cpp:1329 msgid "Paste size" msgstr "" -#: ../src/selection-chemistry.cpp:1306 +#: ../src/selection-chemistry.cpp:1338 msgid "Paste size separately" msgstr "" -#: ../src/selection-chemistry.cpp:1335 +#: ../src/selection-chemistry.cpp:1367 msgid "Select object(s) to move to the layer above." msgstr "" -#: ../src/selection-chemistry.cpp:1361 +#: ../src/selection-chemistry.cpp:1393 msgid "Raise to next layer" msgstr "" -#: ../src/selection-chemistry.cpp:1368 +#: ../src/selection-chemistry.cpp:1400 msgid "No more layers above." msgstr "" -#: ../src/selection-chemistry.cpp:1379 +#: ../src/selection-chemistry.cpp:1411 msgid "Select object(s) to move to the layer below." msgstr "" -#: ../src/selection-chemistry.cpp:1405 +#: ../src/selection-chemistry.cpp:1437 msgid "Lower to previous layer" msgstr "" -#: ../src/selection-chemistry.cpp:1412 +#: ../src/selection-chemistry.cpp:1444 msgid "No more layers below." msgstr "" -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1454 msgid "Select object(s) to move." msgstr "" -#: ../src/selection-chemistry.cpp:1440 ../src/verbs.cpp:2657 +#: ../src/selection-chemistry.cpp:1472 ../src/verbs.cpp:2658 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:1529 ../src/seltrans.cpp:391 +#: ../src/selection-chemistry.cpp:1561 ../src/seltrans.cpp:391 msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1699 +#: ../src/selection-chemistry.cpp:1731 msgid "Remove transform" msgstr "" -#: ../src/selection-chemistry.cpp:1806 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CCW" msgstr "" -#: ../src/selection-chemistry.cpp:1806 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CW" msgstr "" -#: ../src/selection-chemistry.cpp:1827 ../src/seltrans.cpp:484 +#: ../src/selection-chemistry.cpp:1859 ../src/seltrans.cpp:484 #: ../src/ui/dialog/transformation.cpp:890 msgid "Rotate" msgstr "" -#: ../src/selection-chemistry.cpp:2176 +#: ../src/selection-chemistry.cpp:2208 msgid "Rotate by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2206 ../src/seltrans.cpp:481 +#: ../src/selection-chemistry.cpp:2238 ../src/seltrans.cpp:481 #: ../src/ui/dialog/transformation.cpp:864 ../src/ui/widget/page-sizer.cpp:450 #: ../share/extensions/interp_att_g.inx.h:14 msgid "Scale" msgstr "" -#: ../src/selection-chemistry.cpp:2231 +#: ../src/selection-chemistry.cpp:2263 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2246 +#: ../src/selection-chemistry.cpp:2278 msgid "Move vertically" msgstr "" -#: ../src/selection-chemistry.cpp:2249 +#: ../src/selection-chemistry.cpp:2281 msgid "Move horizontally" msgstr "" -#: ../src/selection-chemistry.cpp:2252 ../src/selection-chemistry.cpp:2278 +#: ../src/selection-chemistry.cpp:2284 ../src/selection-chemistry.cpp:2310 #: ../src/seltrans.cpp:478 ../src/ui/dialog/transformation.cpp:801 msgid "Move" msgstr "" -#: ../src/selection-chemistry.cpp:2272 +#: ../src/selection-chemistry.cpp:2304 msgid "Move vertically by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2275 +#: ../src/selection-chemistry.cpp:2307 msgid "Move horizontally by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2478 +#: ../src/selection-chemistry.cpp:2510 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2570 ../src/ui/dialog/clonetiler.cpp:2230 +#: ../src/selection-chemistry.cpp:2602 ../src/ui/dialog/clonetiler.cpp:2238 msgid "Select an object to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2605 +#: ../src/selection-chemistry.cpp:2637 msgctxt "Action" msgid "Clone" msgstr "" -#: ../src/selection-chemistry.cpp:2619 +#: ../src/selection-chemistry.cpp:2651 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2626 +#: ../src/selection-chemistry.cpp:2658 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2647 +#: ../src/selection-chemistry.cpp:2679 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2650 +#: ../src/selection-chemistry.cpp:2682 msgid "Relink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2664 +#: ../src/selection-chemistry.cpp:2696 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2717 +#: ../src/selection-chemistry.cpp:2749 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2721 +#: ../src/selection-chemistry.cpp:2753 msgid "Unlink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2734 +#: ../src/selection-chemistry.cpp:2766 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:2784 +#: ../src/selection-chemistry.cpp:2816 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2790 +#: ../src/selection-chemistry.cpp:2822 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -#: ../src/selection-chemistry.cpp:2880 +#: ../src/selection-chemistry.cpp:2912 msgid "Select path(s) to fill." msgstr "" -#: ../src/selection-chemistry.cpp:2898 +#: ../src/selection-chemistry.cpp:2930 msgid "Select object(s) to convert to marker." msgstr "" -#: ../src/selection-chemistry.cpp:2972 +#: ../src/selection-chemistry.cpp:3004 msgid "Objects to marker" msgstr "" -#: ../src/selection-chemistry.cpp:2998 +#: ../src/selection-chemistry.cpp:3030 msgid "Select object(s) to convert to guides." msgstr "" -#: ../src/selection-chemistry.cpp:3019 +#: ../src/selection-chemistry.cpp:3051 msgid "Objects to guides" msgstr "" -#: ../src/selection-chemistry.cpp:3055 +#: ../src/selection-chemistry.cpp:3087 msgid "Select objects to convert to symbol." msgstr "" -#: ../src/selection-chemistry.cpp:3156 +#: ../src/selection-chemistry.cpp:3188 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3175 +#: ../src/selection-chemistry.cpp:3207 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3184 +#: ../src/selection-chemistry.cpp:3216 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3240 +#: ../src/selection-chemistry.cpp:3272 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3258 +#: ../src/selection-chemistry.cpp:3290 msgid "Select object(s) to convert to pattern." msgstr "" -#: ../src/selection-chemistry.cpp:3354 +#: ../src/selection-chemistry.cpp:3386 msgid "Objects to pattern" msgstr "" -#: ../src/selection-chemistry.cpp:3370 +#: ../src/selection-chemistry.cpp:3402 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3429 +#: ../src/selection-chemistry.cpp:3461 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3432 +#: ../src/selection-chemistry.cpp:3464 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3518 +#: ../src/selection-chemistry.cpp:3550 msgid "Select object(s) to make a bitmap copy." msgstr "" -#: ../src/selection-chemistry.cpp:3522 +#: ../src/selection-chemistry.cpp:3554 msgid "Rendering bitmap..." msgstr "" -#: ../src/selection-chemistry.cpp:3707 +#: ../src/selection-chemistry.cpp:3739 msgid "Create bitmap" msgstr "" -#: ../src/selection-chemistry.cpp:3732 ../src/selection-chemistry.cpp:3844 +#: ../src/selection-chemistry.cpp:3764 ../src/selection-chemistry.cpp:3876 msgid "Select object(s) to create clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:3818 ../src/ui/dialog/objects.cpp:1922 +#: ../src/selection-chemistry.cpp:3850 ../src/ui/dialog/objects.cpp:1922 msgid "Create Clip Group" msgstr "" -#: ../src/selection-chemistry.cpp:3847 +#: ../src/selection-chemistry.cpp:3879 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:3994 +#: ../src/selection-chemistry.cpp:4026 msgid "Set clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:3996 +#: ../src/selection-chemistry.cpp:4028 msgid "Set mask" msgstr "" -#: ../src/selection-chemistry.cpp:4011 +#: ../src/selection-chemistry.cpp:4043 msgid "Select object(s) to remove clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:4127 +#: ../src/selection-chemistry.cpp:4159 msgid "Release clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4129 +#: ../src/selection-chemistry.cpp:4161 msgid "Release mask" msgstr "" -#: ../src/selection-chemistry.cpp:4148 +#: ../src/selection-chemistry.cpp:4180 msgid "Select object(s) to fit canvas to." msgstr "" #. Fit Page -#: ../src/selection-chemistry.cpp:4168 ../src/verbs.cpp:3003 +#: ../src/selection-chemistry.cpp:4200 ../src/verbs.cpp:3004 msgid "Fit Page to Selection" msgstr "" -#: ../src/selection-chemistry.cpp:4197 ../src/verbs.cpp:3005 +#: ../src/selection-chemistry.cpp:4229 ../src/verbs.cpp:3006 msgid "Fit Page to Drawing" msgstr "" -#: ../src/selection-chemistry.cpp:4218 ../src/verbs.cpp:3007 +#: ../src/selection-chemistry.cpp:4250 msgid "Fit Page to Selection or Drawing" msgstr "" @@ -12731,7 +12794,7 @@ msgstr[1] "" msgid "Create Guides Around the Page" msgstr "" -#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2545 +#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2544 msgid "Delete All Guides" msgstr "" @@ -12789,26 +12852,26 @@ msgstr "" msgid "of %d objects" msgstr "" -#: ../src/sp-item.cpp:1030 ../src/verbs.cpp:213 +#: ../src/sp-item.cpp:1031 ../src/verbs.cpp:213 msgid "Object" msgstr "" -#: ../src/sp-item.cpp:1042 +#: ../src/sp-item.cpp:1043 #, c-format msgid "%s; clipped" msgstr "" -#: ../src/sp-item.cpp:1048 +#: ../src/sp-item.cpp:1049 #, c-format msgid "%s; masked" msgstr "" -#: ../src/sp-item.cpp:1058 +#: ../src/sp-item.cpp:1059 #, c-format msgid "%s; filtered (%s)" msgstr "" -#: ../src/sp-item.cpp:1060 +#: ../src/sp-item.cpp:1061 #, c-format msgid "%s; filtered" msgstr "" @@ -12817,29 +12880,29 @@ msgstr "" msgid "Line" msgstr "" -#: ../src/sp-lpe-item.cpp:263 ../src/sp-lpe-item.cpp:710 +#: ../src/sp-lpe-item.cpp:258 ../src/sp-lpe-item.cpp:705 msgid "An exception occurred during execution of the Path Effect." msgstr "" -#: ../src/sp-offset.cpp:329 +#: ../src/sp-offset.cpp:331 msgid "Linked Offset" msgstr "" -#: ../src/sp-offset.cpp:331 +#: ../src/sp-offset.cpp:333 msgid "Dynamic Offset" msgstr "" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:337 +#: ../src/sp-offset.cpp:339 #, c-format msgid "%s by %f pt" msgstr "" -#: ../src/sp-offset.cpp:338 +#: ../src/sp-offset.cpp:340 msgid "outset" msgstr "" -#: ../src/sp-offset.cpp:338 +#: ../src/sp-offset.cpp:340 msgid "inset" msgstr "" @@ -12917,8 +12980,8 @@ msgstr "" #: ../src/sp-text.cpp:361 ../src/verbs.cpp:347 #: ../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/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 @@ -13023,66 +13086,66 @@ msgstr "" msgid "Select stroked path(s) to convert stroke to path." msgstr "" -#: ../src/splivarot.cpp:1509 +#: ../src/splivarot.cpp:1511 msgid "Convert stroke to path" msgstr "" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1512 +#: ../src/splivarot.cpp:1514 msgid "No stroked paths in the selection." msgstr "" -#: ../src/splivarot.cpp:1583 +#: ../src/splivarot.cpp:1585 msgid "Selected object is not a path, cannot inset/outset." msgstr "" -#: ../src/splivarot.cpp:1674 ../src/splivarot.cpp:1741 +#: ../src/splivarot.cpp:1676 ../src/splivarot.cpp:1743 msgid "Create linked offset" msgstr "" -#: ../src/splivarot.cpp:1675 ../src/splivarot.cpp:1742 +#: ../src/splivarot.cpp:1677 ../src/splivarot.cpp:1744 msgid "Create dynamic offset" msgstr "" -#: ../src/splivarot.cpp:1767 +#: ../src/splivarot.cpp:1769 msgid "Select path(s) to inset/outset." msgstr "" -#: ../src/splivarot.cpp:1960 +#: ../src/splivarot.cpp:1962 msgid "Outset path" msgstr "" -#: ../src/splivarot.cpp:1960 +#: ../src/splivarot.cpp:1962 msgid "Inset path" msgstr "" -#: ../src/splivarot.cpp:1962 +#: ../src/splivarot.cpp:1964 msgid "No paths to inset/outset in the selection." msgstr "" -#: ../src/splivarot.cpp:2124 +#: ../src/splivarot.cpp:2126 msgid "Simplifying paths (separately):" msgstr "" -#: ../src/splivarot.cpp:2126 +#: ../src/splivarot.cpp:2128 msgid "Simplifying paths:" msgstr "" -#: ../src/splivarot.cpp:2163 +#: ../src/splivarot.cpp:2165 #, c-format msgid "%s %d of %d paths simplified..." msgstr "" -#: ../src/splivarot.cpp:2176 +#: ../src/splivarot.cpp:2178 #, c-format msgid "%d paths simplified." msgstr "" -#: ../src/splivarot.cpp:2190 +#: ../src/splivarot.cpp:2192 msgid "Select path(s) to simplify." msgstr "" -#: ../src/splivarot.cpp:2206 +#: ../src/splivarot.cpp:2208 msgid "No paths to simplify in the selection." msgstr "" @@ -13107,7 +13170,7 @@ msgstr "" msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "" -#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2568 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2569 msgid "Put text on path" msgstr "" @@ -13119,7 +13182,7 @@ msgstr "" msgid "No texts-on-paths in the selection." msgstr "" -#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2570 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2571 msgid "Remove text from path" msgstr "" @@ -13193,68 +13256,68 @@ msgstr "" msgid "Trace: No active desktop" msgstr "" -#: ../src/trace/trace.cpp:313 +#: ../src/trace/trace.cpp:314 msgid "Invalid SIOX result" msgstr "" -#: ../src/trace/trace.cpp:406 +#: ../src/trace/trace.cpp:407 msgid "Trace: No active document" msgstr "" -#: ../src/trace/trace.cpp:438 +#: ../src/trace/trace.cpp:439 msgid "Trace: Image has no bitmap data" msgstr "" -#: ../src/trace/trace.cpp:445 +#: ../src/trace/trace.cpp:446 msgid "Trace: Starting trace..." msgstr "" #. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 +#: ../src/trace/trace.cpp:549 msgid "Trace bitmap" msgstr "" -#: ../src/trace/trace.cpp:552 +#: ../src/trace/trace.cpp:553 #, c-format msgid "Trace: Done. %ld nodes created" msgstr "" #. check whether something is selected -#: ../src/ui/clipboard.cpp:263 +#: ../src/ui/clipboard.cpp:261 msgid "Nothing was copied." msgstr "" -#: ../src/ui/clipboard.cpp:394 ../src/ui/clipboard.cpp:608 -#: ../src/ui/clipboard.cpp:637 +#: ../src/ui/clipboard.cpp:392 ../src/ui/clipboard.cpp:606 +#: ../src/ui/clipboard.cpp:635 msgid "Nothing on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:452 +#: ../src/ui/clipboard.cpp:450 msgid "Select object(s) to paste style to." msgstr "" -#: ../src/ui/clipboard.cpp:463 ../src/ui/clipboard.cpp:480 +#: ../src/ui/clipboard.cpp:461 ../src/ui/clipboard.cpp:478 msgid "No style on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:505 +#: ../src/ui/clipboard.cpp:503 msgid "Select object(s) to paste size to." msgstr "" -#: ../src/ui/clipboard.cpp:512 +#: ../src/ui/clipboard.cpp:510 msgid "No size on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:569 +#: ../src/ui/clipboard.cpp:567 msgid "Select object(s) to paste live path effect to." msgstr "" #. no_effect: -#: ../src/ui/clipboard.cpp:595 +#: ../src/ui/clipboard.cpp:593 msgid "No effect on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:614 ../src/ui/clipboard.cpp:651 +#: ../src/ui/clipboard.cpp:612 ../src/ui/clipboard.cpp:649 msgid "Clipboard does not contain a path." msgstr "" @@ -13292,261 +13355,276 @@ msgstr "" #. 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 +#: ../src/ui/dialog/aboutbox.cpp:178 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:426 +#: ../src/ui/dialog/aboutbox.cpp:438 msgid "translator-credits" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:169 -#: ../src/ui/dialog/align-and-distribute.cpp:889 +#: ../src/ui/dialog/align-and-distribute.cpp:206 +#: ../src/ui/dialog/align-and-distribute.cpp:937 msgid "Align" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:337 -#: ../src/ui/dialog/align-and-distribute.cpp:890 +#: ../src/ui/dialog/align-and-distribute.cpp:382 +#: ../src/ui/dialog/align-and-distribute.cpp:938 msgid "Distribute" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:416 +#: ../src/ui/dialog/align-and-distribute.cpp:461 msgid "Minimum horizontal gap (in px units) between bounding boxes" msgstr "" #. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:418 +#: ../src/ui/dialog/align-and-distribute.cpp:463 msgctxt "Gap" msgid "_H:" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:426 +#: ../src/ui/dialog/align-and-distribute.cpp:471 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:428 +#: ../src/ui/dialog/align-and-distribute.cpp:473 msgctxt "Gap" msgid "_V:" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:463 -#: ../src/ui/dialog/align-and-distribute.cpp:892 +#: ../src/ui/dialog/align-and-distribute.cpp:508 +#: ../src/ui/dialog/align-and-distribute.cpp:940 #: ../src/widgets/connector-toolbar.cpp:405 msgid "Remove overlaps" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:494 +#: ../src/ui/dialog/align-and-distribute.cpp:539 #: ../src/widgets/connector-toolbar.cpp:234 msgid "Arrange connector network" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:587 +#: ../src/ui/dialog/align-and-distribute.cpp:632 msgid "Exchange Positions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:621 +#: ../src/ui/dialog/align-and-distribute.cpp:666 msgid "Unclump" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:692 +#: ../src/ui/dialog/align-and-distribute.cpp:737 msgid "Randomize positions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:793 +#: ../src/ui/dialog/align-and-distribute.cpp:838 msgid "Distribute text baselines" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:861 +#: ../src/ui/dialog/align-and-distribute.cpp:906 msgid "Align text baselines" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:891 +#: ../src/ui/dialog/align-and-distribute.cpp:939 msgid "Rearrange" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:893 -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/ui/dialog/align-and-distribute.cpp:941 +#: ../src/widgets/toolbox.cpp:1788 msgid "Nodes" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:907 +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Relative to: " msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:908 +#: ../src/ui/dialog/align-and-distribute.cpp:957 msgid "_Treat selection as group: " msgstr "" #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:914 ../src/verbs.cpp:3035 -#: ../src/verbs.cpp:3036 +#: ../src/ui/dialog/align-and-distribute.cpp:963 ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3037 msgid "Align right edges of objects to the left edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:917 ../src/verbs.cpp:3037 -#: ../src/verbs.cpp:3038 +#: ../src/ui/dialog/align-and-distribute.cpp:966 ../src/verbs.cpp:3038 +#: ../src/verbs.cpp:3039 msgid "Align left edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:920 ../src/verbs.cpp:3039 -#: ../src/verbs.cpp:3040 +#: ../src/ui/dialog/align-and-distribute.cpp:969 ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3041 msgid "Center on vertical axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:923 ../src/verbs.cpp:3041 -#: ../src/verbs.cpp:3042 +#: ../src/ui/dialog/align-and-distribute.cpp:972 ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3043 msgid "Align right sides" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:926 ../src/verbs.cpp:3043 -#: ../src/verbs.cpp:3044 +#: ../src/ui/dialog/align-and-distribute.cpp:975 ../src/verbs.cpp:3044 +#: ../src/verbs.cpp:3045 msgid "Align left edges of objects to the right edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:929 ../src/verbs.cpp:3045 -#: ../src/verbs.cpp:3046 +#: ../src/ui/dialog/align-and-distribute.cpp:978 ../src/verbs.cpp:3046 +#: ../src/verbs.cpp:3047 msgid "Align bottom edges of objects to the top edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:932 ../src/verbs.cpp:3047 -#: ../src/verbs.cpp:3048 +#: ../src/ui/dialog/align-and-distribute.cpp:981 ../src/verbs.cpp:3048 +#: ../src/verbs.cpp:3049 msgid "Align top edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:935 ../src/verbs.cpp:3049 -#: ../src/verbs.cpp:3050 +#: ../src/ui/dialog/align-and-distribute.cpp:984 ../src/verbs.cpp:3050 +#: ../src/verbs.cpp:3051 msgid "Center on horizontal axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:938 ../src/verbs.cpp:3051 -#: ../src/verbs.cpp:3052 +#: ../src/ui/dialog/align-and-distribute.cpp:987 ../src/verbs.cpp:3052 +#: ../src/verbs.cpp:3053 msgid "Align bottom edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:941 ../src/verbs.cpp:3053 -#: ../src/verbs.cpp:3054 +#: ../src/ui/dialog/align-and-distribute.cpp:990 ../src/verbs.cpp:3054 +#: ../src/verbs.cpp:3055 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:946 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "Align baseline anchors of texts horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:949 +#: ../src/ui/dialog/align-and-distribute.cpp:998 msgid "Align baselines of texts" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:954 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 msgid "Make horizontal gaps between objects equal" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:958 +#: ../src/ui/dialog/align-and-distribute.cpp:1007 msgid "Distribute left edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:961 +#: ../src/ui/dialog/align-and-distribute.cpp:1010 msgid "Distribute centers equidistantly horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:964 +#: ../src/ui/dialog/align-and-distribute.cpp:1013 msgid "Distribute right edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:968 +#: ../src/ui/dialog/align-and-distribute.cpp:1017 msgid "Make vertical gaps between objects equal" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:972 +#: ../src/ui/dialog/align-and-distribute.cpp:1021 msgid "Distribute top edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:975 +#: ../src/ui/dialog/align-and-distribute.cpp:1024 msgid "Distribute centers equidistantly vertically" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:978 +#: ../src/ui/dialog/align-and-distribute.cpp:1027 msgid "Distribute bottom edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:983 +#: ../src/ui/dialog/align-and-distribute.cpp:1032 msgid "Distribute baseline anchors of texts horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:986 +#: ../src/ui/dialog/align-and-distribute.cpp:1035 msgid "Distribute baselines of texts vertically" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:992 +#: ../src/ui/dialog/align-and-distribute.cpp:1041 #: ../src/widgets/connector-toolbar.cpp:367 msgid "Nicely arrange selected connector network" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:995 +#: ../src/ui/dialog/align-and-distribute.cpp:1044 msgid "Exchange positions of selected objects - selection order" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:998 +#: ../src/ui/dialog/align-and-distribute.cpp:1047 msgid "Exchange positions of selected objects - stacking order" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1001 +#: ../src/ui/dialog/align-and-distribute.cpp:1050 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1006 +#: ../src/ui/dialog/align-and-distribute.cpp:1055 msgid "Randomize centers in both dimensions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1009 +#: ../src/ui/dialog/align-and-distribute.cpp:1058 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1014 +#: ../src/ui/dialog/align-and-distribute.cpp:1063 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1022 +#: ../src/ui/dialog/align-and-distribute.cpp:1071 msgid "Align selected nodes to a common horizontal line" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1025 +#: ../src/ui/dialog/align-and-distribute.cpp:1074 msgid "Align selected nodes to a common vertical line" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1028 +#: ../src/ui/dialog/align-and-distribute.cpp:1077 msgid "Distribute selected nodes horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1031 +#: ../src/ui/dialog/align-and-distribute.cpp:1080 msgid "Distribute selected nodes vertically" msgstr "" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:1036 +#: ../src/ui/dialog/align-and-distribute.cpp:1085 +#: ../src/ui/dialog/align-and-distribute.cpp:1095 msgid "Last selected" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1037 +#: ../src/ui/dialog/align-and-distribute.cpp:1086 +#: ../src/ui/dialog/align-and-distribute.cpp:1096 msgid "First selected" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1038 +#: ../src/ui/dialog/align-and-distribute.cpp:1087 msgid "Biggest object" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1039 +#: ../src/ui/dialog/align-and-distribute.cpp:1088 msgid "Smallest object" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1042 +#: ../src/ui/dialog/align-and-distribute.cpp:1091 msgid "Selection Area" msgstr "" +#: ../src/ui/dialog/align-and-distribute.cpp:1097 +msgid "Middle of selection" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1098 +msgid "Min value" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1099 +msgid "Max value" +msgstr "" + #: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 msgid "Edit profile" @@ -14123,49 +14201,49 @@ msgstr "" msgid "How many rows in the tiling" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1082 +#: ../src/ui/dialog/clonetiler.cpp:1086 msgid "How many columns in the tiling" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1127 +#: ../src/ui/dialog/clonetiler.cpp:1131 msgid "Width of the rectangle to be filled" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1160 +#: ../src/ui/dialog/clonetiler.cpp:1168 msgid "Height of the rectangle to be filled" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1177 +#: ../src/ui/dialog/clonetiler.cpp:1185 msgid "Rows, columns: " msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1178 +#: ../src/ui/dialog/clonetiler.cpp:1186 msgid "Create the specified number of rows and columns" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1187 +#: ../src/ui/dialog/clonetiler.cpp:1195 msgid "Width, height: " msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1188 +#: ../src/ui/dialog/clonetiler.cpp:1196 msgid "Fill the specified width and height with the tiling" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1209 +#: ../src/ui/dialog/clonetiler.cpp:1217 msgid "Use saved size and position of the tile" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1212 +#: ../src/ui/dialog/clonetiler.cpp:1220 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:1246 +#: ../src/ui/dialog/clonetiler.cpp:1254 msgid " _Create " msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1248 +#: ../src/ui/dialog/clonetiler.cpp:1256 msgid "Create and tile the clones of the selection" msgstr "" @@ -14174,89 +14252,89 @@ msgstr "" #. 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:1268 +#: ../src/ui/dialog/clonetiler.cpp:1276 msgid " _Unclump " msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1269 +#: ../src/ui/dialog/clonetiler.cpp:1277 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1275 +#: ../src/ui/dialog/clonetiler.cpp:1283 msgid " Re_move " msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1276 +#: ../src/ui/dialog/clonetiler.cpp:1284 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1293 +#: ../src/ui/dialog/clonetiler.cpp:1301 msgid " R_eset " msgstr "" #. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1295 +#: ../src/ui/dialog/clonetiler.cpp:1303 msgid "" "Reset all shifts, scales, rotates, opacity and color changes in the dialog " "to zero" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1367 +#: ../src/ui/dialog/clonetiler.cpp:1375 msgid "Nothing selected." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1373 +#: ../src/ui/dialog/clonetiler.cpp:1381 msgid "More than one object selected." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1380 +#: ../src/ui/dialog/clonetiler.cpp:1388 #, c-format msgid "Object has %d tiled clones." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:1385 +#: ../src/ui/dialog/clonetiler.cpp:1393 msgid "Object has no tiled clones." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2109 +#: ../src/ui/dialog/clonetiler.cpp:2117 msgid "Select one object whose tiled clones to unclump." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2129 +#: ../src/ui/dialog/clonetiler.cpp:2137 msgid "Unclump tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2158 +#: ../src/ui/dialog/clonetiler.cpp:2166 msgid "Select one object whose tiled clones to remove." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2183 +#: ../src/ui/dialog/clonetiler.cpp:2191 msgid "Delete tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2236 +#: ../src/ui/dialog/clonetiler.cpp:2244 msgid "" "If you want to clone several objects, group them and clone the " "group." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2245 +#: ../src/ui/dialog/clonetiler.cpp:2253 msgid "Creating tiled clones..." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2661 +#: ../src/ui/dialog/clonetiler.cpp:2669 msgid "Create tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2894 +#: ../src/ui/dialog/clonetiler.cpp:2906 msgid "Per row:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2912 +#: ../src/ui/dialog/clonetiler.cpp:2924 msgid "Per column:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2920 +#: ../src/ui/dialog/clonetiler.cpp:2932 msgid "Randomize:" msgstr "" @@ -14561,12 +14639,11 @@ msgstr "" msgid "Remove selected grid." msgstr "" -#: ../src/ui/dialog/document-properties.cpp:162 -#: ../src/widgets/toolbox.cpp:1888 +#: ../src/ui/dialog/document-properties.cpp:162 ../src/widgets/toolbox.cpp:1895 msgid "Guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2836 +#: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2837 msgid "Snap" msgstr "" @@ -14618,7 +14695,7 @@ msgstr "" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3019 +#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3020 msgid "Link Color Profile" msgstr "" @@ -14751,15 +14828,15 @@ msgstr "" msgid "Changed default display unit" msgstr "" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2886 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2887 msgid "_Page" msgstr "" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2890 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2891 msgid "_Drawing" msgstr "" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2892 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2893 msgid "_Selection" msgstr "" @@ -14853,9 +14930,9 @@ msgid "_Height:" msgstr "" #: ../src/ui/dialog/export.cpp:304 -#: ../src/ui/dialog/inkscape-preferences.cpp:1497 -#: ../src/ui/dialog/inkscape-preferences.cpp:1501 -#: ../src/ui/dialog/inkscape-preferences.cpp:1525 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "dpi" msgstr "" @@ -14945,14 +15022,14 @@ msgstr "" msgid "Export aborted." msgstr "" -#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1389 -#: ../src/widgets/desktop-widget.cpp:1172 -#: ../src/widgets/desktop-widget.cpp:1234 +#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1401 +#: ../src/widgets/desktop-widget.cpp:1186 +#: ../src/widgets/desktop-widget.cpp:1248 msgid "_Cancel" msgstr "" #: ../src/ui/dialog/export.cpp:1309 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2433 ../src/widgets/desktop-widget.cpp:1173 +#: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1187 msgid "_Save" msgstr "" @@ -14963,7 +15040,7 @@ msgstr "" #: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 #: ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:12 +#: ../share/extensions/color_randomize.inx.h:11 #: ../share/extensions/dots.inx.h:7 #: ../share/extensions/draw_from_triangle.inx.h:35 #: ../share/extensions/dxf_input.inx.h:10 @@ -14996,12 +15073,11 @@ msgstr "" #: ../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:33 +#: ../share/extensions/lorem_ipsum.inx.h:6 ../share/extensions/measure.inx.h:33 #: ../share/extensions/pathalongpath.inx.h:16 #: ../share/extensions/pathscatter.inx.h:18 #: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/restack.inx.h:25 -#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:16 #: ../share/extensions/web-set-att.inx.h:25 #: ../share/extensions/web-transmit-att.inx.h:23 #: ../share/extensions/webslicer_create_group.inx.h:11 @@ -15123,7 +15199,7 @@ msgid "Document" msgstr "" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1553 ../src/verbs.cpp:175 -#: ../src/widgets/desktop-widget.cpp:2053 +#: ../src/widgets/desktop-widget.cpp:2074 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "" @@ -15299,99 +15375,99 @@ msgstr "" msgid "_Filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1387 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1388 msgid "R_ename" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1521 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1522 msgid "Rename filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1573 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1574 msgid "Apply filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1653 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1654 msgid "filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1660 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1661 msgid "Add filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1710 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1711 msgid "Duplicate filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1809 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1810 msgid "_Effect" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1819 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1820 msgid "Connections" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1957 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1958 msgid "Remove filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2544 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2545 msgid "Remove merge node" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2664 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2665 msgid "Reorder filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2744 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "Add Effect:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 msgid "No effect selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2747 msgid "No filter selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2791 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2814 msgid "Effect parameters" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2792 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2815 msgid "Filter General Settings" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Coordinates:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "X coordinate of the left corners of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Y coordinate of the upper corners of filter effects region" msgstr "" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Dimensions:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Width of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Height of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 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 " @@ -15399,95 +15475,95 @@ msgid "" "performed without specifying a complete matrix." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Value(s):" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2862 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "R:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 #: ../src/ui/widget/color-icc-selector.cpp:180 msgid "G:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2864 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 msgid "B:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 msgid "A:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Operator:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "K1:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 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:2870 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "K2:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "K3:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 msgid "K4:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "Size:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "width of the convolve matrix" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "height of the convolve matrix" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 #: ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 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:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 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:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Kernel:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 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 " @@ -15497,11 +15573,11 @@ msgid "" "would lead to a common blur effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "Divisor:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 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 " @@ -15509,189 +15585,189 @@ msgid "" "effect on the overall color intensity of the result." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "Bias:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 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:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "Edge Mode:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 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:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "Preserve Alpha" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2886 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 msgid "Diffuse Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2886 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Defines the color of the light source" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "Surface Scale:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "Constant:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "This constant affects the Phong lighting model." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2914 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 msgid "Kernel Unit Length:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 msgid "This defines the intensity of the displacement effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "X displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "Color component that controls the displacement in the X direction" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Y displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Color component that controls the displacement in the Y direction" msgstr "" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2898 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Flood Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2898 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "The whole filter region will be filled with this color." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2902 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "Standard Deviation:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2902 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "The standard deviation for the blur operation." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2937 msgid "Source of Image:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2915 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "Delta X:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2915 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "This is how far the input image gets shifted to the right" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "Delta Y:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "This is how far the input image gets shifted downwards" msgstr "" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Specular Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2957 msgid "Base Frequency:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2958 msgid "Octaves:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "Seed:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "The starting number for the pseudo random number generator." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2971 msgid "Add filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2963 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2986 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2967 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2990 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:2971 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2994 msgid "" "The feComponentTransfer filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -15699,7 +15775,7 @@ msgid "" "adjustment, color balance, and thresholding." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2975 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2998 msgid "" "The feComposite filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -15707,7 +15783,7 @@ msgid "" "between the corresponding pixel values of the images." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2979 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3002 msgid "" "The feConvolveMatrix lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -15716,7 +15792,7 @@ msgid "" "is faster and resolution-independent." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2983 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3006 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -15724,7 +15800,7 @@ msgid "" "opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2987 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3010 msgid "" "The feDisplacementMap filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -15732,26 +15808,26 @@ msgid "" "effects." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2991 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3014 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:2995 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3018 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:2999 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3022 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:3003 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3026 msgid "" "The feMerge filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -15759,21 +15835,21 @@ msgid "" "in 'normal' mode or several feComposite primitives in 'over' mode." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3007 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3030 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:3011 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3034 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:3015 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3038 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -15781,24 +15857,24 @@ msgid "" "lower opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3019 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3042 msgid "" "The feTile filter primitive tiles a region with an input graphic. The " "source tile is defined by the filter primitive subregion of the input." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3023 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3046 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:3042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3066 msgid "Duplicate filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3095 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3119 msgid "Set filter primitive attribute" msgstr "" @@ -15982,7 +16058,7 @@ msgstr "" msgid "Search spirals" msgstr "" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1789 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1796 msgid "Paths" msgstr "" @@ -16862,7 +16938,7 @@ msgstr "" #: ../src/ui/dialog/grid-arrange-tab.cpp:571 #: ../src/ui/dialog/object-attributes.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:694 +#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:703 #: ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "" @@ -17337,12 +17413,12 @@ msgstr "" #. Zoom #: ../src/ui/dialog/inkscape-preferences.cpp:394 -#: ../src/widgets/desktop-widget.cpp:659 +#: ../src/widgets/desktop-widget.cpp:668 msgid "Zoom" msgstr "" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:399 ../src/verbs.cpp:2762 +#: ../src/ui/dialog/inkscape-preferences.cpp:399 ../src/verbs.cpp:2763 msgctxt "ContextVerb" msgid "Measure" msgstr "" @@ -17397,7 +17473,7 @@ msgid "" msgstr "" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:458 ../src/verbs.cpp:2754 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 ../src/verbs.cpp:2755 msgctxt "ContextVerb" msgid "Text" msgstr "" @@ -17915,6 +17991,11 @@ msgstr "" msgid "Set the language for menus and number formats" msgstr "" +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +msgctxt "Icon size" +msgid "Larger" +msgstr "" + #: ../src/ui/dialog/inkscape-preferences.cpp:616 msgctxt "Icon size" msgid "Large" @@ -17930,399 +18011,399 @@ msgctxt "Icon size" msgid "Smaller" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:620 +#: ../src/ui/dialog/inkscape-preferences.cpp:621 msgid "Toolbox icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Set the size for the tool icons (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:624 +#: ../src/ui/dialog/inkscape-preferences.cpp:625 msgid "Control bar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:625 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:628 +#: ../src/ui/dialog/inkscape-preferences.cpp:629 msgid "Secondary toolbar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:632 +#: ../src/ui/dialog/inkscape-preferences.cpp:633 msgid "Work-around color sliders not drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:639 +#: ../src/ui/dialog/inkscape-preferences.cpp:640 msgid "Clear list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Maximum documents in Open _Recent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:643 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 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:646 +#: ../src/ui/dialog/inkscape-preferences.cpp:647 msgid "_Zoom correction factor (in %):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:647 +#: ../src/ui/dialog/inkscape-preferences.cpp:648 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:650 +#: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Enable dynamic relayout for incomplete sections" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 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:655 +#: ../src/ui/dialog/inkscape-preferences.cpp:656 msgid "Show filter primitives infobox (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:657 +#: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Text only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons and text" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 msgid "Dockbar style (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "" "Selects whether the vertical bars on the dockbar will show text labels, " "icons, or both" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:673 +#: ../src/ui/dialog/inkscape-preferences.cpp:674 msgid "Switcher style (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "" "Selects whether the dockbar switcher will show text labels, icons, or both" msgstr "" #. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:678 +#: ../src/ui/dialog/inkscape-preferences.cpp:679 msgid "Save and restore window geometry for each document" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Remember and use last window's geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:680 +#: ../src/ui/dialog/inkscape-preferences.cpp:681 msgid "Don't save window geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:682 +#: ../src/ui/dialog/inkscape-preferences.cpp:683 msgid "Save and restore dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:683 -#: ../src/ui/dialog/inkscape-preferences.cpp:719 +#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Don't save dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:685 -#: ../src/ui/dialog/inkscape-preferences.cpp:727 +#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 msgid "Dockable" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "Native open/save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:690 +#: ../src/ui/dialog/inkscape-preferences.cpp:691 msgid "GTK open/save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:692 +#: ../src/ui/dialog/inkscape-preferences.cpp:693 msgid "Dialogs are hidden in taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Save and restore documents viewport" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Zoom when window is resized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Show close button on dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:696 +#: ../src/ui/dialog/inkscape-preferences.cpp:697 msgctxt "Dialog on top" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Aggressive" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Small" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Large" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Maximized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Default window size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "Set the default window size" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:709 +#: ../src/ui/dialog/inkscape-preferences.cpp:710 msgid "Saving window geometry (size and position)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:711 +#: ../src/ui/dialog/inkscape-preferences.cpp:712 msgid "Let the window manager determine placement of all windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:713 +#: ../src/ui/dialog/inkscape-preferences.cpp:714 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:715 +#: ../src/ui/dialog/inkscape-preferences.cpp:716 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:717 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 msgid "Saving dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "" "Save and restore dialogs status (the last open windows dialogs are saved " "when it closes)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 msgid "Dialog behavior (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:731 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Desktop integration" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:733 +#: ../src/ui/dialog/inkscape-preferences.cpp:734 msgid "Use Windows like open and save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:735 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 msgid "Use GTK open and save dialogs " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:739 +#: ../src/ui/dialog/inkscape-preferences.cpp:740 msgid "Dialogs on top:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:742 +#: ../src/ui/dialog/inkscape-preferences.cpp:743 msgid "Dialogs are treated as regular windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:744 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 msgid "Dialogs stay on top of document windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 msgid "Same as Normal but may work better with some window managers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:750 msgid "Dialog Transparency" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "_Opacity when focused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:754 msgid "Opacity when _unfocused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "_Time of opacity change animation:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:759 msgid "Miscellaneous" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:761 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:765 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:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 msgid "" "Save documents viewport (zoom and panning position). Useful to turn off when " "sharing version controlled files." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Whether dialog windows have a close button (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:769 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 msgid "Windows" msgstr "" #. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Line color when zooming out" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:775 +#: ../src/ui/dialog/inkscape-preferences.cpp:776 msgid "The gridlines will be shown in minor grid line color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:777 +#: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "The gridlines will be shown in major grid line color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Default grid settings" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:785 -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Grid units:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:790 -#: ../src/ui/dialog/inkscape-preferences.cpp:815 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "Origin X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:791 -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Origin Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:796 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Spacing X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:797 -#: ../src/ui/dialog/inkscape-preferences.cpp:819 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Spacing Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:799 #: ../src/ui/dialog/inkscape-preferences.cpp:800 -#: ../src/ui/dialog/inkscape-preferences.cpp:824 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 #: ../src/ui/dialog/inkscape-preferences.cpp:825 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Minor grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:800 -#: ../src/ui/dialog/inkscape-preferences.cpp:825 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Color used for normal grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:801 #: ../src/ui/dialog/inkscape-preferences.cpp:802 -#: ../src/ui/dialog/inkscape-preferences.cpp:826 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 #: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Major grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:802 -#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Color used for major (highlighted) grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:804 -#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Major grid line every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:806 msgid "Show dots instead of lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:806 +#: ../src/ui/dialog/inkscape-preferences.cpp:807 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:887 +#: ../src/ui/dialog/inkscape-preferences.cpp:888 msgid "Input/Output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:890 +#: ../src/ui/dialog/inkscape-preferences.cpp:891 msgid "Use current directory for \"Save As ...\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:892 +#: ../src/ui/dialog/inkscape-preferences.cpp:893 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 " @@ -18330,176 +18411,176 @@ msgid "" "it" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:894 +#: ../src/ui/dialog/inkscape-preferences.cpp:895 msgid "Add label comments to printing output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:896 +#: ../src/ui/dialog/inkscape-preferences.cpp:897 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:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Add default metadata to new documents" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 +#: ../src/ui/dialog/inkscape-preferences.cpp:901 msgid "" "Add default metadata to new documents. Default metadata can be set from " "Document Properties->Metadata." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:904 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "_Grab sensitivity:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:904 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "pixels (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:905 +#: ../src/ui/dialog/inkscape-preferences.cpp:906 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:907 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 msgid "_Click/drag threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:907 -#: ../src/ui/dialog/inkscape-preferences.cpp:1249 -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 -#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 msgid "pixels" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:909 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:911 +#: ../src/ui/dialog/inkscape-preferences.cpp:912 msgid "_Handle size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:912 +#: ../src/ui/dialog/inkscape-preferences.cpp:913 msgid "Set the relative size of node handles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:914 +#: ../src/ui/dialog/inkscape-preferences.cpp:915 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 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:918 +#: ../src/ui/dialog/inkscape-preferences.cpp:919 msgid "Switch tool based on tablet device (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:920 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:921 +#: ../src/ui/dialog/inkscape-preferences.cpp:922 msgid "Input devices" msgstr "" #. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:924 +#: ../src/ui/dialog/inkscape-preferences.cpp:925 msgid "Use named colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 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:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "XML formatting" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:929 +#: ../src/ui/dialog/inkscape-preferences.cpp:930 msgid "Inline attributes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:930 +#: ../src/ui/dialog/inkscape-preferences.cpp:931 msgid "Put attributes on the same line as the element tag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "_Indent, spaces:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Path data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:938 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Absolute" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:938 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Relative" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:938 -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 msgid "Optimized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:942 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "Path string format:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:942 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 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:944 +#: ../src/ui/dialog/inkscape-preferences.cpp:945 msgid "Force repeat commands" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:945 +#: ../src/ui/dialog/inkscape-preferences.cpp:946 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:947 +#: ../src/ui/dialog/inkscape-preferences.cpp:948 msgid "Numbers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:950 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "_Numeric precision:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:950 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "Significant figures of the values written to the SVG file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:953 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "Minimum _exponent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:953 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" @@ -18507,56 +18588,56 @@ msgstr "" #. Code to add controls for attribute checking options #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:958 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Improper Attributes Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:960 -#: ../src/ui/dialog/inkscape-preferences.cpp:968 -#: ../src/ui/dialog/inkscape-preferences.cpp:976 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:977 msgid "Print warnings" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:962 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:962 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Remove attributes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:963 +#: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "Delete invalid or non-useful attributes from element tag" msgstr "" #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:966 +#: ../src/ui/dialog/inkscape-preferences.cpp:967 msgid "Inappropriate Style Properties Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 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:970 -#: ../src/ui/dialog/inkscape-preferences.cpp:978 +#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:979 msgid "Remove style properties" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:972 msgid "Delete inappropriate style properties" msgstr "" #. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:974 +#: ../src/ui/dialog/inkscape-preferences.cpp:975 msgid "Non-useful Style Properties Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:977 +#: ../src/ui/dialog/inkscape-preferences.cpp:978 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 " @@ -18564,207 +18645,207 @@ msgid "" "attributes." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:979 +#: ../src/ui/dialog/inkscape-preferences.cpp:980 msgid "Delete redundant style properties" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:981 +#: ../src/ui/dialog/inkscape-preferences.cpp:982 msgid "Check Attributes and Style Properties on" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/ui/dialog/inkscape-preferences.cpp:984 msgid "Reading" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:984 +#: ../src/ui/dialog/inkscape-preferences.cpp:985 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:985 +#: ../src/ui/dialog/inkscape-preferences.cpp:986 msgid "Editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:987 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:987 +#: ../src/ui/dialog/inkscape-preferences.cpp:988 msgid "Writing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:988 +#: ../src/ui/dialog/inkscape-preferences.cpp:989 msgid "Check attributes and style properties on writing out SVG files" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:990 +#: ../src/ui/dialog/inkscape-preferences.cpp:991 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:996 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Perceptual" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:996 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Relative Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:996 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Absolute Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1000 +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 msgid "(Note: Color management has been disabled in this build)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 msgid "Display adjustment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1014 +#: ../src/ui/dialog/inkscape-preferences.cpp:1015 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1015 +#: ../src/ui/dialog/inkscape-preferences.cpp:1016 msgid "Display profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1020 +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 msgid "Retrieve profile from display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1023 +#: ../src/ui/dialog/inkscape-preferences.cpp:1024 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1025 +#: ../src/ui/dialog/inkscape-preferences.cpp:1026 msgid "Retrieve profiles from those attached to displays" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1030 +#: ../src/ui/dialog/inkscape-preferences.cpp:1031 msgid "Display rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1031 +#: ../src/ui/dialog/inkscape-preferences.cpp:1032 msgid "The rendering intent to use to calibrate display output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1033 +#: ../src/ui/dialog/inkscape-preferences.cpp:1034 msgid "Proofing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "Simulate output on screen" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Simulates output of target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1039 +#: ../src/ui/dialog/inkscape-preferences.cpp:1040 msgid "Mark out of gamut colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1041 +#: ../src/ui/dialog/inkscape-preferences.cpp:1042 msgid "Highlights colors that are out of gamut for the target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1053 +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 msgid "Out of gamut warning color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 msgid "Selects the color used for out of gamut warning" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1056 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 msgid "Device profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 msgid "The ICC profile to use to simulate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "Device rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 msgid "The rendering intent to use to calibrate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1063 +#: ../src/ui/dialog/inkscape-preferences.cpp:1064 msgid "Black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1065 +#: ../src/ui/dialog/inkscape-preferences.cpp:1066 msgid "Enables black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Preserve black" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "(LittleCMS 1.15 or later required)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1090 -#: ../src/ui/widget/color-icc-selector.cpp:395 -#: ../src/ui/widget/color-icc-selector.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 +#: ../src/ui/widget/color-icc-selector.cpp:394 +#: ../src/ui/widget/color-icc-selector.cpp:685 msgid "" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1135 +#: ../src/ui/dialog/inkscape-preferences.cpp:1136 msgid "Color management" msgstr "" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1138 +#: ../src/ui/dialog/inkscape-preferences.cpp:1139 msgid "Enable autosave (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1139 +#: ../src/ui/dialog/inkscape-preferences.cpp:1140 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:1145 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 msgctxt "Filesystem" msgid "Autosave _directory:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1145 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 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:1147 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "_Interval (in minutes):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1147 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "Interval (in minutes) at which document will be autosaved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "_Maximum number of autosaves:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" @@ -18781,508 +18862,508 @@ msgstr "" #. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); #. #. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1164 +#: ../src/ui/dialog/inkscape-preferences.cpp:1165 msgid "Autosave" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1168 +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 msgid "Open Clip Art Library _Server Name:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 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:1171 +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 msgid "Open Clip Art Library _Username:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1172 +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 msgid "The username used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "Open Clip Art Library _Password:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +#: ../src/ui/dialog/inkscape-preferences.cpp:1176 msgid "The password used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1176 +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 msgid "Open Clip Art" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Behavior" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 msgid "_Simplification threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1186 +#: ../src/ui/dialog/inkscape-preferences.cpp:1187 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:1188 +#: ../src/ui/dialog/inkscape-preferences.cpp:1189 msgid "Color stock markers the same color as object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Color custom markers the same color as object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1190 -#: ../src/ui/dialog/inkscape-preferences.cpp:1410 +#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 msgid "Update marker color when object color changes" msgstr "" #. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1193 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 msgid "Select in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Select only within current layer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Select in current layer and sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1196 +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 msgid "Ignore hidden objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 msgid "Ignore locked objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Deselect upon layer change" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1204 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 msgid "Make keyboard selection commands work on objects in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +#: ../src/ui/dialog/inkscape-preferences.cpp:1210 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +#: ../src/ui/dialog/inkscape-preferences.cpp:1212 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:1213 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 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:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 msgid "Wrap when cycling objects in z-order" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 msgid "Alt+Scroll Wheel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Wrap around at start and end when cycling objects in z-order" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1221 +#: ../src/ui/dialog/inkscape-preferences.cpp:1222 msgid "Selecting" msgstr "" #. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 -#: ../src/widgets/select-toolbar.cpp:572 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 +#: ../src/widgets/select-toolbar.cpp:564 msgid "Scale stroke width" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1225 +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "Scale rounded corners in rectangles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Transform gradients" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1227 +#: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "Transform patterns" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1229 +#: ../src/ui/dialog/inkscape-preferences.cpp:1230 msgid "Preserved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1232 -#: ../src/widgets/select-toolbar.cpp:573 +#: ../src/ui/dialog/inkscape-preferences.cpp:1233 +#: ../src/widgets/select-toolbar.cpp:565 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1234 -#: ../src/widgets/select-toolbar.cpp:584 +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +#: ../src/widgets/select-toolbar.cpp:576 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1236 -#: ../src/widgets/select-toolbar.cpp:595 +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/widgets/select-toolbar.cpp:587 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1238 -#: ../src/widgets/select-toolbar.cpp:606 +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +#: ../src/widgets/select-toolbar.cpp:598 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 msgid "Store transformation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1243 +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 msgid "Always store transformation as a transform= attribute on objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1245 +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 msgid "Transforms" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 msgid "Mouse _wheel scrolls by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1251 +#: ../src/ui/dialog/inkscape-preferences.cpp:1252 msgid "Ctrl+arrows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 msgid "Sc_roll by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1255 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1256 +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 msgid "_Acceleration:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 msgid "Autoscrolling" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1261 msgid "_Speed:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1263 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 #: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 msgid "_Threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 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 "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 msgid "Mouse move pans when Space is pressed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 msgid "When on, pressing and holding Space and dragging pans canvas" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 msgid "Mouse wheel zooms by default" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1270 +#: ../src/ui/dialog/inkscape-preferences.cpp:1271 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:1271 +#: ../src/ui/dialog/inkscape-preferences.cpp:1272 msgid "Scrolling" msgstr "" #. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 msgid "Snap indicator" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1276 +#: ../src/ui/dialog/inkscape-preferences.cpp:1277 msgid "Enable snap indicator" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1283 +#: ../src/ui/dialog/inkscape-preferences.cpp:1284 msgid "Snap indicator persistence (in seconds):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1284 +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 msgid "" "Controls how long the snap indicator message will be shown, before it " "disappears" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1286 +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 msgid "What should snap" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1288 +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 msgid "Only snap the node closest to the pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1290 +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 msgid "_Weight factor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +#: ../src/ui/dialog/inkscape-preferences.cpp:1295 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:1296 +#: ../src/ui/dialog/inkscape-preferences.cpp:1297 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1298 +#: ../src/ui/dialog/inkscape-preferences.cpp:1299 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:1300 +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 msgid "Delayed snap" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1303 +#: ../src/ui/dialog/inkscape-preferences.cpp:1304 msgid "Delay (in seconds):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1304 +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 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:1306 +#: ../src/ui/dialog/inkscape-preferences.cpp:1307 msgid "Snapping" msgstr "" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +#: ../src/ui/dialog/inkscape-preferences.cpp:1312 msgid "_Arrow keys move by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 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:1315 +#: ../src/ui/dialog/inkscape-preferences.cpp:1316 msgid "> and < _scale by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Pressing > or < scales selection up or down by this increment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 msgid "_Inset/Outset by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +#: ../src/ui/dialog/inkscape-preferences.cpp:1320 msgid "Inset and Outset commands displace the path by this distance" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Compass-like display of angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +#: ../src/ui/dialog/inkscape-preferences.cpp:1323 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:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgctxt "Rotation angle" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "_Rotation snaps every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "degrees" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1330 +#: ../src/ui/dialog/inkscape-preferences.cpp:1331 msgid "Relative snapping of guideline angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1332 +#: ../src/ui/dialog/inkscape-preferences.cpp:1333 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1334 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 msgid "_Zoom in/out by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1334 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 #: ../src/ui/dialog/objects.cpp:1630 #: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "%" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1336 +#: ../src/ui/dialog/inkscape-preferences.cpp:1337 msgid "Steps" msgstr "" #. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +#: ../src/ui/dialog/inkscape-preferences.cpp:1340 msgid "Move in parallel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1341 +#: ../src/ui/dialog/inkscape-preferences.cpp:1342 msgid "Stay unmoved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1343 +#: ../src/ui/dialog/inkscape-preferences.cpp:1344 msgid "Move according to transform" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +#: ../src/ui/dialog/inkscape-preferences.cpp:1346 msgid "Are unlinked" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +#: ../src/ui/dialog/inkscape-preferences.cpp:1348 msgid "Are deleted" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +#: ../src/ui/dialog/inkscape-preferences.cpp:1351 msgid "Moving original: clones and linked offsets" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1352 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 msgid "Clones are translated by the same vector as their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Clones preserve their positions when their original is moved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 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:1357 +#: ../src/ui/dialog/inkscape-preferences.cpp:1358 msgid "Deleting original: clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1359 +#: ../src/ui/dialog/inkscape-preferences.cpp:1360 msgid "Orphaned clones are converted to regular objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1361 +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 msgid "Orphaned clones are deleted along with their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Duplicating original+clones/linked offset" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +#: ../src/ui/dialog/inkscape-preferences.cpp:1366 msgid "Relink duplicated clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "" "When duplicating a selection containing both a clone and its original " "(possibly in groups), relink the duplicated clone to the duplicated original " @@ -19290,127 +19371,127 @@ msgid "" msgstr "" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Clones" msgstr "" #. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1373 +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1375 +#: ../src/ui/dialog/inkscape-preferences.cpp:1376 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1376 +#: ../src/ui/dialog/inkscape-preferences.cpp:1377 msgid "Remove clippath/mask object after applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1380 +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 msgid "Before applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1382 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "Do not group clipped/masked objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 +#: ../src/ui/dialog/inkscape-preferences.cpp:1384 msgid "Put every clipped/masked object in its own group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1384 +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 msgid "Put all clipped/masked objects into one group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1388 msgid "Apply clippath/mask to every object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1390 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "Apply clippath/mask to groups containing single object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "Apply clippath/mask to group containing all objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1395 +#: ../src/ui/dialog/inkscape-preferences.cpp:1396 msgid "After releasing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1397 +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 msgid "Ungroup automatically created groups" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1399 +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 msgid "Ungroup groups created when setting clip/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1401 +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 msgid "Clippaths and masks" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "Stroke Style Markers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1406 -#: ../src/ui/dialog/inkscape-preferences.cpp:1408 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1412 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 #: ../share/extensions/hershey.inx.h:27 msgid "Markers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1415 +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 msgid "Document cleanup" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1416 -#: ../src/ui/dialog/inkscape-preferences.cpp:1418 +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/inkscape-preferences.cpp:1419 msgid "Remove unused swatches when doing a document cleanup" msgstr "" #. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1419 +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 msgid "Cleanup" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1427 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 msgid "Number of _Threads:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1427 -#: ../src/ui/dialog/inkscape-preferences.cpp:1963 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "(requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "Configure number of processors/threads to use when rendering filters" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgid "Rendering _cache size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgctxt "mebibyte (2^20 bytes) abbreviation" msgid "MiB" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1432 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 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" @@ -19418,365 +19499,365 @@ msgstr "" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -#: ../src/ui/dialog/inkscape-preferences.cpp:1459 +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 msgid "Best quality (slowest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1437 -#: ../src/ui/dialog/inkscape-preferences.cpp:1461 +#: ../src/ui/dialog/inkscape-preferences.cpp:1438 +#: ../src/ui/dialog/inkscape-preferences.cpp:1462 msgid "Better quality (slower)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +#: ../src/ui/dialog/inkscape-preferences.cpp:1464 msgid "Average quality" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../src/ui/dialog/inkscape-preferences.cpp:1465 +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/ui/dialog/inkscape-preferences.cpp:1466 msgid "Lower quality (faster)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1443 -#: ../src/ui/dialog/inkscape-preferences.cpp:1467 +#: ../src/ui/dialog/inkscape-preferences.cpp:1444 +#: ../src/ui/dialog/inkscape-preferences.cpp:1468 msgid "Lowest quality (fastest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1446 +#: ../src/ui/dialog/inkscape-preferences.cpp:1447 msgid "Gaussian blur quality for display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1448 -#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +#: ../src/ui/dialog/inkscape-preferences.cpp:1449 +#: ../src/ui/dialog/inkscape-preferences.cpp:1473 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:1450 -#: ../src/ui/dialog/inkscape-preferences.cpp:1474 +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 msgid "Better quality, but slower display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1452 -#: ../src/ui/dialog/inkscape-preferences.cpp:1476 +#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +#: ../src/ui/dialog/inkscape-preferences.cpp:1477 msgid "Average quality, acceptable display speed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1454 -#: ../src/ui/dialog/inkscape-preferences.cpp:1478 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/ui/dialog/inkscape-preferences.cpp:1479 msgid "Lower quality (some artifacts), but display is faster" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1456 -#: ../src/ui/dialog/inkscape-preferences.cpp:1480 +#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +#: ../src/ui/dialog/inkscape-preferences.cpp:1481 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1470 +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 msgid "Filter effects quality for display" msgstr "" #. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1482 +#: ../src/ui/dialog/inkscape-preferences.cpp:1483 #: ../src/ui/dialog/print.cpp:215 msgid "Rendering" msgstr "" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1488 ../src/verbs.cpp:156 +#: ../src/ui/dialog/inkscape-preferences.cpp:1489 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1489 +#: ../src/ui/dialog/inkscape-preferences.cpp:1490 msgid "Automatically reload bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1491 +#: ../src/ui/dialog/inkscape-preferences.cpp:1492 msgid "Automatically reload linked images when file is changed on disk" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1493 +#: ../src/ui/dialog/inkscape-preferences.cpp:1494 msgid "_Bitmap editor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1495 +#: ../src/ui/dialog/inkscape-preferences.cpp:1496 #: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:65 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1497 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 msgid "Default export _resolution:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1498 +#: ../src/ui/dialog/inkscape-preferences.cpp:1499 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1499 +#: ../src/ui/dialog/inkscape-preferences.cpp:1500 #: ../src/ui/dialog/xml-tree.cpp:920 msgid "Create" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1501 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 msgid "Resolution for Create Bitmap _Copy:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1502 +#: ../src/ui/dialog/inkscape-preferences.cpp:1503 msgid "Resolution used by the Create Bitmap Copy command" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1505 +#: ../src/ui/dialog/inkscape-preferences.cpp:1506 msgid "Ask about linking and scaling when importing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1507 +#: ../src/ui/dialog/inkscape-preferences.cpp:1508 msgid "Pop-up linking and scaling dialog when importing bitmap image." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1513 +#: ../src/ui/dialog/inkscape-preferences.cpp:1514 msgid "Bitmap link:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1520 +#: ../src/ui/dialog/inkscape-preferences.cpp:1521 msgid "Bitmap scale (image-rendering):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1525 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "Default _import resolution:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1526 +#: ../src/ui/dialog/inkscape-preferences.cpp:1527 msgid "Default bitmap resolution (in dots per inch) for bitmap import" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1527 +#: ../src/ui/dialog/inkscape-preferences.cpp:1528 msgid "Override file resolution" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1529 +#: ../src/ui/dialog/inkscape-preferences.cpp:1530 msgid "Use default bitmap resolution in favor of information from file" msgstr "" #. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1533 +#: ../src/ui/dialog/inkscape-preferences.cpp:1534 msgid "Images in Outline Mode" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1534 +#: ../src/ui/dialog/inkscape-preferences.cpp:1535 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:1536 +#: ../src/ui/dialog/inkscape-preferences.cpp:1537 msgid "Bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1548 +#: ../src/ui/dialog/inkscape-preferences.cpp:1549 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " "create will be added separately to " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1551 +#: ../src/ui/dialog/inkscape-preferences.cpp:1552 msgid "Shortcut file:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1554 -#: ../src/ui/dialog/template-load-tab.cpp:48 +#: ../src/ui/dialog/inkscape-preferences.cpp:1555 +#: ../src/ui/dialog/template-load-tab.cpp:49 msgid "Search:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1566 +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 msgid "Shortcut" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1567 +#: ../src/ui/dialog/inkscape-preferences.cpp:1568 #: ../src/ui/widget/page-sizer.cpp:287 msgid "Description" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1622 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 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:1626 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import ..." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1626 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import custom keyboard shortcuts from a file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1629 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export ..." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1629 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export custom keyboard shortcuts to a file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1639 +#: ../src/ui/dialog/inkscape-preferences.cpp:1640 msgid "Keyboard Shortcuts" msgstr "" #. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1802 +#: ../src/ui/dialog/inkscape-preferences.cpp:1803 msgid "Misc" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1904 +#: ../src/ui/dialog/inkscape-preferences.cpp:1905 msgctxt "Spellchecker language" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 msgid "Set the main spell check language" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1928 +#: ../src/ui/dialog/inkscape-preferences.cpp:1929 msgid "Second language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1929 +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 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:1932 +#: ../src/ui/dialog/inkscape-preferences.cpp:1933 msgid "Third language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 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:1935 +#: ../src/ui/dialog/inkscape-preferences.cpp:1936 msgid "Ignore words with digits" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1939 +#: ../src/ui/dialog/inkscape-preferences.cpp:1940 msgid "Ignore words in ALL CAPITALS" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 +#: ../src/ui/dialog/inkscape-preferences.cpp:1942 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1943 +#: ../src/ui/dialog/inkscape-preferences.cpp:1944 msgid "Spellcheck" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1963 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "Latency _skew:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1964 +#: ../src/ui/dialog/inkscape-preferences.cpp:1965 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:1966 +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 msgid "Pre-render named icons" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1968 +#: ../src/ui/dialog/inkscape-preferences.cpp:1969 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:1976 +#: ../src/ui/dialog/inkscape-preferences.cpp:1977 msgid "System info" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1980 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "User config: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1980 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "Location of users configuration" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1984 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "User preferences: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1984 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "Location of the users preferences file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1988 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "User extensions: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1988 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "Location of the users extensions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1992 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "User cache: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1992 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "Location of users cache" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2000 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Temporary files: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2000 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Location of the temporary files used for autosave" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2004 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Inkscape data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2004 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Location of Inkscape data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2008 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Inkscape extensions: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2008 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Location of the Inkscape extensions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2017 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "System data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2017 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "Locations of system data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2041 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Icon theme: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2041 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Locations of icon themes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2043 +#: ../src/ui/dialog/inkscape-preferences.cpp:2044 msgid "System" msgstr "" @@ -19872,8 +19953,7 @@ msgstr "" msgid "Y tilt" msgstr "" -#: ../src/ui/dialog/input.cpp:1616 -#: ../src/ui/widget/color-wheel-selector.cpp:29 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/color-wheel-selector.cpp:29 msgid "Wheel" msgstr "" @@ -19938,7 +20018,7 @@ 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:2364 +#: ../src/verbs.cpp:2363 msgid "Layer" msgstr "" @@ -19971,29 +20051,29 @@ msgstr "" msgid "Move to Layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Unhide layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Hide layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Lock layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Unlock layer" msgstr "" #: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:844 -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1423 msgid "Toggle layer solo" msgstr "" #: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:847 -#: ../src/verbs.cpp:1448 +#: ../src/verbs.cpp:1447 msgid "Lock other layers" msgstr "" @@ -20290,8 +20370,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2712 -#: ../src/verbs.cpp:2718 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2719 msgid "_Set" msgstr "" @@ -20503,7 +20583,7 @@ msgid "Lock All" msgstr "" #. LockAndHide -#: ../src/ui/dialog/objects.cpp:1906 ../src/verbs.cpp:3010 +#: ../src/ui/dialog/objects.cpp:1906 ../src/verbs.cpp:3011 msgid "Unlock All" msgstr "" @@ -20526,7 +20606,7 @@ msgid "Unset Clip" msgstr "" #. Set mask -#: ../src/ui/dialog/objects.cpp:1930 ../src/ui/interface.cpp:1736 +#: ../src/ui/dialog/objects.cpp:1930 ../src/ui/interface.cpp:1754 msgid "Set Mask" msgstr "" @@ -20664,18 +20744,15 @@ msgstr "" msgid "Output" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:297 -#: ../src/ui/dialog/tracedialog.cpp:814 +#: ../src/ui/dialog/pixelartdialog.cpp:297 ../src/ui/dialog/tracedialog.cpp:814 msgid "Reset all settings to defaults" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:302 -#: ../src/ui/dialog/tracedialog.cpp:819 +#: ../src/ui/dialog/pixelartdialog.cpp:302 ../src/ui/dialog/tracedialog.cpp:819 msgid "Abort a trace in progress" msgstr "" -#: ../src/ui/dialog/pixelartdialog.cpp:306 -#: ../src/ui/dialog/tracedialog.cpp:823 +#: ../src/ui/dialog/pixelartdialog.cpp:306 ../src/ui/dialog/tracedialog.cpp:823 msgid "Execute the trace" msgstr "" @@ -21042,8 +21119,7 @@ msgid "Preview Text:" msgstr "" #: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:360 -#: ../src/ui/tools/gradient-tool.cpp:458 -#: ../src/widgets/gradient-vector.cpp:801 +#: ../src/ui/tools/gradient-tool.cpp:458 ../src/widgets/gradient-vector.cpp:801 msgid "Add gradient stop" msgstr "" @@ -21065,7 +21141,7 @@ msgstr "" msgid "Convert" msgstr "" -#: ../src/ui/dialog/swatches.cpp:542 +#: ../src/ui/dialog/swatches.cpp:543 #, c-format msgid "Palettes directory (%s) is unavailable." msgstr "" @@ -21113,7 +21189,7 @@ msgid "Unnamed Symbols" msgstr "" #: ../src/ui/dialog/tags.cpp:270 ../src/ui/dialog/tags.cpp:569 -#: ../src/ui/dialog/tags.cpp:683 +#: ../src/ui/dialog/tags.cpp:683 ../src/ui/dialog/tags.cpp:946 msgid "Remove from selection set" msgstr "" @@ -21121,7 +21197,7 @@ msgstr "" msgid "Items" msgstr "" -#: ../src/ui/dialog/tags.cpp:666 +#: ../src/ui/dialog/tags.cpp:666 ../src/ui/dialog/tags.cpp:944 msgid "Add selection to set" msgstr "" @@ -21129,11 +21205,11 @@ msgstr "" msgid "Moved sets" msgstr "" -#: ../src/ui/dialog/tags.cpp:994 +#: ../src/ui/dialog/tags.cpp:1004 msgid "Add a new selection set" msgstr "" -#: ../src/ui/dialog/tags.cpp:1003 +#: ../src/ui/dialog/tags.cpp:1013 msgid "Remove Item/Set" msgstr "" @@ -21145,19 +21221,19 @@ msgstr "" msgid "no template selected" msgstr "" -#: ../src/ui/dialog/template-widget.cpp:123 +#: ../src/ui/dialog/template-widget.cpp:131 msgid "Path: " msgstr "" -#: ../src/ui/dialog/template-widget.cpp:126 +#: ../src/ui/dialog/template-widget.cpp:134 msgid "Description: " msgstr "" -#: ../src/ui/dialog/template-widget.cpp:128 +#: ../src/ui/dialog/template-widget.cpp:136 msgid "Keywords: " msgstr "" -#: ../src/ui/dialog/template-widget.cpp:135 +#: ../src/ui/dialog/template-widget.cpp:143 msgid "By: " msgstr "" @@ -21174,27 +21250,27 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1432 -#: ../src/widgets/text-toolbar.cpp:1433 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1680 +#: ../src/widgets/text-toolbar.cpp:1681 msgid "Align left" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1440 -#: ../src/widgets/text-toolbar.cpp:1441 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1688 +#: ../src/widgets/text-toolbar.cpp:1689 msgid "Align center" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1448 -#: ../src/widgets/text-toolbar.cpp:1449 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1696 +#: ../src/widgets/text-toolbar.cpp:1697 msgid "Align right" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1457 +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1705 msgid "Justify (only flowed text)" msgstr "" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1492 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1740 msgid "Horizontal text" msgstr "" @@ -21731,68 +21807,68 @@ msgstr "" msgid "Change attribute" msgstr "" -#: ../src/ui/interface.cpp:751 +#: ../src/ui/interface.cpp:763 msgctxt "Interface setup" msgid "Default" msgstr "" -#: ../src/ui/interface.cpp:751 +#: ../src/ui/interface.cpp:763 msgid "Default interface setup" msgstr "" -#: ../src/ui/interface.cpp:752 +#: ../src/ui/interface.cpp:764 msgctxt "Interface setup" msgid "Custom" msgstr "" -#: ../src/ui/interface.cpp:752 +#: ../src/ui/interface.cpp:764 msgid "Setup for custom task" msgstr "" -#: ../src/ui/interface.cpp:753 +#: ../src/ui/interface.cpp:765 msgctxt "Interface setup" msgid "Wide" msgstr "" -#: ../src/ui/interface.cpp:753 +#: ../src/ui/interface.cpp:765 msgid "Setup for widescreen work" msgstr "" -#: ../src/ui/interface.cpp:863 +#: ../src/ui/interface.cpp:875 #, c-format msgid "Verb \"%s\" Unknown" msgstr "" -#: ../src/ui/interface.cpp:898 +#: ../src/ui/interface.cpp:910 msgid "Open _Recent" msgstr "" -#: ../src/ui/interface.cpp:1006 ../src/ui/interface.cpp:1092 -#: ../src/ui/interface.cpp:1195 ../src/ui/widget/selected-style.cpp:544 +#: ../src/ui/interface.cpp:1018 ../src/ui/interface.cpp:1104 +#: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:542 msgid "Drop color" msgstr "" -#: ../src/ui/interface.cpp:1045 ../src/ui/interface.cpp:1155 +#: ../src/ui/interface.cpp:1057 ../src/ui/interface.cpp:1167 msgid "Drop color on gradient" msgstr "" -#: ../src/ui/interface.cpp:1208 +#: ../src/ui/interface.cpp:1220 msgid "Could not parse SVG data" msgstr "" -#: ../src/ui/interface.cpp:1247 +#: ../src/ui/interface.cpp:1259 msgid "Drop SVG" msgstr "" -#: ../src/ui/interface.cpp:1260 +#: ../src/ui/interface.cpp:1272 msgid "Drop Symbol" msgstr "" -#: ../src/ui/interface.cpp:1291 +#: ../src/ui/interface.cpp:1303 msgid "Drop bitmap image" msgstr "" -#: ../src/ui/interface.cpp:1383 +#: ../src/ui/interface.cpp:1395 #, c-format msgid "" "A file named \"%s\" already exists. Do " @@ -21801,166 +21877,171 @@ msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -#: ../src/ui/interface.cpp:1390 ../share/extensions/web-set-att.inx.h:21 +#: ../src/ui/interface.cpp:1402 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 msgid "Replace" msgstr "" -#: ../src/ui/interface.cpp:1461 +#: ../src/ui/interface.cpp:1473 msgid "Go to parent" msgstr "" #. TRANSLATORS: #%1 is the id of the group e.g. , not a number. -#: ../src/ui/interface.cpp:1502 +#: ../src/ui/interface.cpp:1514 msgid "Enter group #%1" msgstr "" +#. Pop selection out of group +#: ../src/ui/interface.cpp:1528 +msgid "_Pop selection out of group" +msgstr "" + #. Item dialog -#: ../src/ui/interface.cpp:1638 ../src/verbs.cpp:2939 +#: ../src/ui/interface.cpp:1656 ../src/verbs.cpp:2940 msgid "_Object Properties..." msgstr "" -#: ../src/ui/interface.cpp:1647 +#: ../src/ui/interface.cpp:1665 msgid "_Select This" msgstr "" -#: ../src/ui/interface.cpp:1658 +#: ../src/ui/interface.cpp:1676 msgid "Select Same" msgstr "" #. Select same fill and stroke -#: ../src/ui/interface.cpp:1668 +#: ../src/ui/interface.cpp:1686 msgid "Fill and Stroke" msgstr "" #. Select same fill color -#: ../src/ui/interface.cpp:1675 +#: ../src/ui/interface.cpp:1693 msgid "Fill Color" msgstr "" #. Select same stroke color -#: ../src/ui/interface.cpp:1682 +#: ../src/ui/interface.cpp:1700 msgid "Stroke Color" msgstr "" #. Select same stroke style -#: ../src/ui/interface.cpp:1689 +#: ../src/ui/interface.cpp:1707 msgid "Stroke Style" msgstr "" #. Select same stroke style -#: ../src/ui/interface.cpp:1696 +#: ../src/ui/interface.cpp:1714 msgid "Object type" msgstr "" #. Move to layer -#: ../src/ui/interface.cpp:1703 +#: ../src/ui/interface.cpp:1721 msgid "_Move to layer ..." msgstr "" #. Create link -#: ../src/ui/interface.cpp:1713 +#: ../src/ui/interface.cpp:1731 msgid "Create _Link" msgstr "" #. Release mask -#: ../src/ui/interface.cpp:1747 +#: ../src/ui/interface.cpp:1765 msgid "Release Mask" msgstr "" #. SSet Clip Group -#: ../src/ui/interface.cpp:1758 +#: ../src/ui/interface.cpp:1776 msgid "Create Clip G_roup" msgstr "" #. Set Clip -#: ../src/ui/interface.cpp:1765 +#: ../src/ui/interface.cpp:1783 msgid "Set Cl_ip" msgstr "" #. Release Clip -#: ../src/ui/interface.cpp:1776 +#: ../src/ui/interface.cpp:1794 msgid "Release C_lip" msgstr "" #. Group -#: ../src/ui/interface.cpp:1787 ../src/verbs.cpp:2562 +#: ../src/ui/interface.cpp:1805 ../src/verbs.cpp:2561 msgid "_Group" msgstr "" -#: ../src/ui/interface.cpp:1858 +#: ../src/ui/interface.cpp:1876 msgid "Create link" msgstr "" #. Ungroup -#: ../src/ui/interface.cpp:1893 ../src/verbs.cpp:2564 +#: ../src/ui/interface.cpp:1911 ../src/verbs.cpp:2563 msgid "_Ungroup" msgstr "" #. Link dialog -#: ../src/ui/interface.cpp:1917 +#: ../src/ui/interface.cpp:1941 msgid "Link _Properties..." msgstr "" #. Select item -#: ../src/ui/interface.cpp:1923 +#: ../src/ui/interface.cpp:1947 msgid "_Follow Link" msgstr "" #. Reset transformations -#: ../src/ui/interface.cpp:1929 +#: ../src/ui/interface.cpp:1953 msgid "_Remove Link" msgstr "" -#: ../src/ui/interface.cpp:1960 +#: ../src/ui/interface.cpp:1984 msgid "Remove link" msgstr "" #. Image properties -#: ../src/ui/interface.cpp:1970 +#: ../src/ui/interface.cpp:1994 msgid "Image _Properties..." msgstr "" #. Edit externally -#: ../src/ui/interface.cpp:1976 +#: ../src/ui/interface.cpp:2000 msgid "Edit Externally..." msgstr "" #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/ui/interface.cpp:1985 ../src/verbs.cpp:2627 +#: ../src/ui/interface.cpp:2009 ../src/verbs.cpp:2628 msgid "_Trace Bitmap..." msgstr "" #. Trace Pixel Art -#: ../src/ui/interface.cpp:1994 +#: ../src/ui/interface.cpp:2018 msgid "Trace Pixel Art" msgstr "" -#: ../src/ui/interface.cpp:2004 +#: ../src/ui/interface.cpp:2028 msgctxt "Context menu" msgid "Embed Image" msgstr "" -#: ../src/ui/interface.cpp:2015 +#: ../src/ui/interface.cpp:2039 msgctxt "Context menu" msgid "Extract Image..." msgstr "" #. Item dialog #. Fill and Stroke dialog -#: ../src/ui/interface.cpp:2159 ../src/ui/interface.cpp:2179 -#: ../src/verbs.cpp:2902 +#: ../src/ui/interface.cpp:2183 ../src/ui/interface.cpp:2203 +#: ../src/verbs.cpp:2903 msgid "_Fill and Stroke..." msgstr "" #. Edit Text dialog -#: ../src/ui/interface.cpp:2185 ../src/verbs.cpp:2921 +#: ../src/ui/interface.cpp:2209 ../src/verbs.cpp:2922 msgid "_Text and Font..." msgstr "" #. Spellcheck dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2929 +#: ../src/ui/interface.cpp:2215 ../src/verbs.cpp:2930 msgid "Check Spellin_g..." msgstr "" @@ -22378,8 +22459,7 @@ 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:1555 -#: ../src/widgets/node-toolbar.cpp:397 +#: ../src/ui/tool/path-manipulator.cpp:1555 ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" msgstr "" @@ -22836,24 +22916,24 @@ 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:674 +#: ../src/ui/tools/freehand-base.cpp:677 msgid "Path is closed." msgstr "" #. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:689 +#: ../src/ui/tools/freehand-base.cpp:692 msgid "Closing path." msgstr "" -#: ../src/ui/tools/freehand-base.cpp:828 +#: ../src/ui/tools/freehand-base.cpp:831 msgid "Draw path" msgstr "" -#: ../src/ui/tools/freehand-base.cpp:981 +#: ../src/ui/tools/freehand-base.cpp:984 msgid "Creating single dot" msgstr "" -#: ../src/ui/tools/freehand-base.cpp:982 +#: ../src/ui/tools/freehand-base.cpp:985 msgid "Create single dot" msgstr "" @@ -22976,9 +23056,9 @@ msgstr "" msgid "Add global measure line" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:1291 ../src/ui/tools/measure-tool.cpp:1293 +#: ../src/ui/tools/measure-tool.cpp:1290 ../src/ui/tools/measure-tool.cpp:1292 #, c-format -msgid "Crossing %u" +msgid "Crossing %lu" msgstr "" #. TRANSLATORS: Mind the space in front. This is part of a compound message @@ -23132,56 +23212,56 @@ msgid "" "Shift+Click make a cusp node" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1786 +#: ../src/ui/tools/pen-tool.cpp:1797 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1787 +#: ../src/ui/tools/pen-tool.cpp:1798 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1790 +#: ../src/ui/tools/pen-tool.cpp:1801 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" +"b> make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1791 +#: ../src/ui/tools/pen-tool.cpp:1802 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " -"make a cusp node, Enter to finish the path" +"make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1808 +#: ../src/ui/tools/pen-tool.cpp:1819 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1832 +#: ../src/ui/tools/pen-tool.cpp:1843 #, 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:1833 +#: ../src/ui/tools/pen-tool.cpp:1844 #, 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:1967 +#: ../src/ui/tools/pen-tool.cpp:1978 msgid "Drawing finished" msgstr "" @@ -23660,48 +23740,49 @@ msgid "Hexadecimal RGBA value of the color" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:176 -#: ../src/ui/widget/color-scales.cpp:378 +#: ../src/ui/widget/color-scales.cpp:384 msgid "_R:" msgstr "" #. TYPE_RGB_16 #: ../src/ui/widget/color-icc-selector.cpp:177 -#: ../src/ui/widget/color-scales.cpp:381 +#: ../src/ui/widget/color-scales.cpp:387 msgid "_G:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:178 -#: ../src/ui/widget/color-scales.cpp:384 +#: ../src/ui/widget/color-scales.cpp:390 msgid "_B:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:180 +#: ../share/extensions/nicechart.inx.h:35 msgid "Gray" msgstr "" #. TYPE_GRAY_16 #: ../src/ui/widget/color-icc-selector.cpp:182 #: ../src/ui/widget/color-icc-selector.cpp:186 -#: ../src/ui/widget/color-scales.cpp:404 +#: ../src/ui/widget/color-scales.cpp:410 msgid "_H:" msgstr "" #. TYPE_HSV_16 #: ../src/ui/widget/color-icc-selector.cpp:183 #: ../src/ui/widget/color-icc-selector.cpp:188 -#: ../src/ui/widget/color-scales.cpp:407 +#: ../src/ui/widget/color-scales.cpp:413 msgid "_S:" msgstr "" #. TYPE_HLS_16 #: ../src/ui/widget/color-icc-selector.cpp:187 -#: ../src/ui/widget/color-scales.cpp:410 +#: ../src/ui/widget/color-scales.cpp:416 msgid "_L:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:190 #: ../src/ui/widget/color-icc-selector.cpp:195 -#: ../src/ui/widget/color-scales.cpp:432 +#: ../src/ui/widget/color-scales.cpp:438 msgid "_C:" msgstr "" @@ -23709,18 +23790,18 @@ msgstr "" #. TYPE_CMY_16 #: ../src/ui/widget/color-icc-selector.cpp:191 #: ../src/ui/widget/color-icc-selector.cpp:196 -#: ../src/ui/widget/color-scales.cpp:435 +#: ../src/ui/widget/color-scales.cpp:441 msgid "_M:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:192 #: ../src/ui/widget/color-icc-selector.cpp:197 -#: ../src/ui/widget/color-scales.cpp:438 +#: ../src/ui/widget/color-scales.cpp:444 msgid "_Y:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:193 -#: ../src/ui/widget/color-scales.cpp:441 +#: ../src/ui/widget/color-scales.cpp:447 msgid "_K:" msgstr "" @@ -23737,18 +23818,18 @@ msgid "Fix RGB fallback to match icc-color() value." msgstr "" #. Label -#: ../src/ui/widget/color-icc-selector.cpp:491 -#: ../src/ui/widget/color-scales.cpp:387 ../src/ui/widget/color-scales.cpp:413 -#: ../src/ui/widget/color-scales.cpp:444 +#: ../src/ui/widget/color-icc-selector.cpp:496 +#: ../src/ui/widget/color-scales.cpp:393 ../src/ui/widget/color-scales.cpp:419 +#: ../src/ui/widget/color-scales.cpp:450 #: ../src/ui/widget/color-wheel-selector.cpp:83 msgid "_A:" msgstr "" -#: ../src/ui/widget/color-icc-selector.cpp:502 #: ../src/ui/widget/color-icc-selector.cpp:513 -#: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 -#: ../src/ui/widget/color-scales.cpp:414 ../src/ui/widget/color-scales.cpp:415 -#: ../src/ui/widget/color-scales.cpp:445 ../src/ui/widget/color-scales.cpp:446 +#: ../src/ui/widget/color-icc-selector.cpp:524 +#: ../src/ui/widget/color-scales.cpp:394 ../src/ui/widget/color-scales.cpp:395 +#: ../src/ui/widget/color-scales.cpp:420 ../src/ui/widget/color-scales.cpp:421 +#: ../src/ui/widget/color-scales.cpp:451 ../src/ui/widget/color-scales.cpp:452 #: ../src/ui/widget/color-wheel-selector.cpp:112 #: ../src/ui/widget/color-wheel-selector.cpp:142 msgid "Alpha (opacity)" @@ -23766,7 +23847,7 @@ msgstr "" msgid "Too much ink!" msgstr "" -#: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2765 +#: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2766 msgid "Pick colors from image" msgstr "" @@ -24063,19 +24144,19 @@ msgstr "" msgid "Feature settings in CSS form. No sanity checking is performed." msgstr "" -#: ../src/ui/widget/layer-selector.cpp:118 +#: ../src/ui/widget/layer-selector.cpp:116 msgid "Toggle current layer visibility" msgstr "" -#: ../src/ui/widget/layer-selector.cpp:139 +#: ../src/ui/widget/layer-selector.cpp:136 msgid "Lock or unlock current layer" msgstr "" -#: ../src/ui/widget/layer-selector.cpp:142 +#: ../src/ui/widget/layer-selector.cpp:139 msgid "Current layer" msgstr "" -#: ../src/ui/widget/layer-selector.cpp:583 +#: ../src/ui/widget/layer-selector.cpp:580 msgid "(root)" msgstr "" @@ -24092,8 +24173,8 @@ msgid "Document license updated" msgstr "" #: ../src/ui/widget/object-composite-settings.cpp:47 -#: ../src/ui/widget/selected-style.cpp:1119 -#: ../src/ui/widget/selected-style.cpp:1120 +#: ../src/ui/widget/selected-style.cpp:1117 +#: ../src/ui/widget/selected-style.cpp:1118 msgid "Opacity (%)" msgstr "" @@ -24102,8 +24183,8 @@ msgid "Change blur" msgstr "" #: ../src/ui/widget/object-composite-settings.cpp:200 -#: ../src/ui/widget/selected-style.cpp:943 -#: ../src/ui/widget/selected-style.cpp:1245 +#: ../src/ui/widget/selected-style.cpp:941 +#: ../src/ui/widget/selected-style.cpp:1243 msgid "Change opacity" msgstr "" @@ -24225,101 +24306,101 @@ msgstr "" msgid "Set 'viewBox'" msgstr "" -#: ../src/ui/widget/panel.cpp:113 +#: ../src/ui/widget/panel.cpp:115 msgid "List" msgstr "" -#: ../src/ui/widget/panel.cpp:136 +#: ../src/ui/widget/panel.cpp:138 msgctxt "Swatches" msgid "Size" msgstr "" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Tiny" msgstr "" -#: ../src/ui/widget/panel.cpp:141 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Small" msgstr "" -#: ../src/ui/widget/panel.cpp:142 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:143 +#: ../src/ui/widget/panel.cpp:145 msgctxt "Swatches height" msgid "Large" msgstr "" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:146 msgctxt "Swatches height" msgid "Huge" msgstr "" -#: ../src/ui/widget/panel.cpp:166 +#: ../src/ui/widget/panel.cpp:168 msgctxt "Swatches" msgid "Width" msgstr "" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Narrower" msgstr "" -#: ../src/ui/widget/panel.cpp:171 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Narrow" msgstr "" -#: ../src/ui/widget/panel.cpp:172 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:173 +#: ../src/ui/widget/panel.cpp:175 msgctxt "Swatches width" msgid "Wide" msgstr "" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:176 msgctxt "Swatches width" msgid "Wider" msgstr "" -#: ../src/ui/widget/panel.cpp:204 +#: ../src/ui/widget/panel.cpp:206 msgctxt "Swatches" msgid "Border" msgstr "" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "None" msgstr "" -#: ../src/ui/widget/panel.cpp:209 +#: ../src/ui/widget/panel.cpp:211 msgctxt "Swatches border" msgid "Solid" msgstr "" -#: ../src/ui/widget/panel.cpp:210 +#: ../src/ui/widget/panel.cpp:212 msgctxt "Swatches border" msgid "Wide" msgstr "" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:241 +#: ../src/ui/widget/panel.cpp:243 msgctxt "Swatches" msgid "Wrap" msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:799 +#: ../src/ui/widget/preferences-widget.cpp:795 msgid "_Browse..." msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:885 +#: ../src/ui/widget/preferences-widget.cpp:881 msgid "Select a bitmap editor" msgstr "" @@ -24377,8 +24458,8 @@ msgid "N/A" msgstr "" #: ../src/ui/widget/selected-style.cpp:181 -#: ../src/ui/widget/selected-style.cpp:1112 -#: ../src/ui/widget/selected-style.cpp:1113 +#: ../src/ui/widget/selected-style.cpp:1110 +#: ../src/ui/widget/selected-style.cpp:1111 #: ../src/widgets/gradient-toolbar.cpp:162 msgid "Nothing selected" msgstr "" @@ -24480,14 +24561,14 @@ msgstr "" #. TRANSLATORS COMMENT: unset is a verb here #: ../src/ui/widget/selected-style.cpp:237 #: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:575 +#: ../src/ui/widget/selected-style.cpp:573 #: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset fill" msgstr "" #: ../src/ui/widget/selected-style.cpp:237 #: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:591 +#: ../src/ui/widget/selected-style.cpp:589 #: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset stroke" msgstr "" @@ -24551,13 +24632,13 @@ msgid "Paste color" msgstr "" #: ../src/ui/widget/selected-style.cpp:286 -#: ../src/ui/widget/selected-style.cpp:868 +#: ../src/ui/widget/selected-style.cpp:866 msgid "Swap fill and stroke" msgstr "" #: ../src/ui/widget/selected-style.cpp:290 -#: ../src/ui/widget/selected-style.cpp:600 -#: ../src/ui/widget/selected-style.cpp:609 +#: ../src/ui/widget/selected-style.cpp:598 +#: ../src/ui/widget/selected-style.cpp:607 msgid "Make fill opaque" msgstr "" @@ -24566,93 +24647,93 @@ msgid "Make stroke opaque" msgstr "" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:503 +#: ../src/ui/widget/selected-style.cpp:555 ../src/widgets/fill-style.cpp:503 msgid "Remove fill" msgstr "" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:503 +#: ../src/ui/widget/selected-style.cpp:564 ../src/widgets/fill-style.cpp:503 msgid "Remove stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:621 +#: ../src/ui/widget/selected-style.cpp:619 msgid "Apply last set color to fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:633 +#: ../src/ui/widget/selected-style.cpp:631 msgid "Apply last set color to stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:644 +#: ../src/ui/widget/selected-style.cpp:642 msgid "Apply last selected color to fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:655 +#: ../src/ui/widget/selected-style.cpp:653 msgid "Apply last selected color to stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:681 +#: ../src/ui/widget/selected-style.cpp:679 msgid "Invert fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:705 +#: ../src/ui/widget/selected-style.cpp:703 msgid "Invert stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:717 +#: ../src/ui/widget/selected-style.cpp:715 msgid "White fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:729 +#: ../src/ui/widget/selected-style.cpp:727 msgid "White stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:741 +#: ../src/ui/widget/selected-style.cpp:739 msgid "Black fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:753 +#: ../src/ui/widget/selected-style.cpp:751 msgid "Black stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:796 +#: ../src/ui/widget/selected-style.cpp:794 msgid "Paste fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:814 +#: ../src/ui/widget/selected-style.cpp:812 msgid "Paste stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:970 +#: ../src/ui/widget/selected-style.cpp:968 msgid "Change stroke width" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1073 +#: ../src/ui/widget/selected-style.cpp:1071 msgid ", drag to adjust" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1158 +#: ../src/ui/widget/selected-style.cpp:1156 #, c-format msgid "Stroke width: %.5g%s%s" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1162 +#: ../src/ui/widget/selected-style.cpp:1160 msgid " (averaged)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1188 +#: ../src/ui/widget/selected-style.cpp:1186 msgid "0 (transparent)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1212 +#: ../src/ui/widget/selected-style.cpp:1210 msgid "100% (opaque)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1386 +#: ../src/ui/widget/selected-style.cpp:1384 msgid "Adjust alpha" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1388 +#: ../src/ui/widget/selected-style.cpp:1386 #, c-format msgid "" "Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrlsaturation: was %.3g, now %.3g (diff %.3g); with " @@ -24672,11 +24753,11 @@ msgid "" "modifiers to adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1398 +#: ../src/ui/widget/selected-style.cpp:1396 msgid "Adjust lightness" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1400 +#: ../src/ui/widget/selected-style.cpp:1398 #, c-format msgid "" "Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " @@ -24684,11 +24765,11 @@ msgid "" "modifiers to adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1404 +#: ../src/ui/widget/selected-style.cpp:1402 msgid "Adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1406 +#: ../src/ui/widget/selected-style.cpp:1404 #, c-format msgid "" "Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shiftstroke width: was %.3g, now %.3g (diff %.3g)" msgstr "" @@ -24804,7 +24885,7 @@ msgstr "" msgid "Context" msgstr "" -#: ../src/verbs.cpp:270 ../src/verbs.cpp:2298 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2297 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" @@ -24814,2285 +24895,2297 @@ msgstr "" msgid "Dialog" msgstr "" -#: ../src/verbs.cpp:1276 +#: ../src/verbs.cpp:1275 msgid "Switch to next layer" msgstr "" -#: ../src/verbs.cpp:1277 +#: ../src/verbs.cpp:1276 msgid "Switched to next layer." msgstr "" -#: ../src/verbs.cpp:1279 +#: ../src/verbs.cpp:1278 msgid "Cannot go past last layer." msgstr "" -#: ../src/verbs.cpp:1288 +#: ../src/verbs.cpp:1287 msgid "Switch to previous layer" msgstr "" -#: ../src/verbs.cpp:1289 +#: ../src/verbs.cpp:1288 msgid "Switched to previous layer." msgstr "" -#: ../src/verbs.cpp:1291 +#: ../src/verbs.cpp:1290 msgid "Cannot go before first layer." msgstr "" -#: ../src/verbs.cpp:1312 ../src/verbs.cpp:1379 ../src/verbs.cpp:1415 -#: ../src/verbs.cpp:1421 ../src/verbs.cpp:1445 ../src/verbs.cpp:1460 +#: ../src/verbs.cpp:1311 ../src/verbs.cpp:1378 ../src/verbs.cpp:1414 +#: ../src/verbs.cpp:1420 ../src/verbs.cpp:1444 ../src/verbs.cpp:1459 msgid "No current layer." msgstr "" -#: ../src/verbs.cpp:1341 ../src/verbs.cpp:1345 +#: ../src/verbs.cpp:1340 ../src/verbs.cpp:1344 #, c-format msgid "Raised layer %s." msgstr "" -#: ../src/verbs.cpp:1342 +#: ../src/verbs.cpp:1341 msgid "Layer to top" msgstr "" -#: ../src/verbs.cpp:1346 +#: ../src/verbs.cpp:1345 msgid "Raise layer" msgstr "" -#: ../src/verbs.cpp:1349 ../src/verbs.cpp:1353 +#: ../src/verbs.cpp:1348 ../src/verbs.cpp:1352 #, c-format msgid "Lowered layer %s." msgstr "" -#: ../src/verbs.cpp:1350 +#: ../src/verbs.cpp:1349 msgid "Layer to bottom" msgstr "" -#: ../src/verbs.cpp:1354 +#: ../src/verbs.cpp:1353 msgid "Lower layer" msgstr "" -#: ../src/verbs.cpp:1363 +#: ../src/verbs.cpp:1362 msgid "Cannot move layer any further." msgstr "" -#: ../src/verbs.cpp:1374 +#: ../src/verbs.cpp:1373 msgid "Duplicate layer" msgstr "" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1377 +#: ../src/verbs.cpp:1376 msgid "Duplicated layer." msgstr "" -#: ../src/verbs.cpp:1410 +#: ../src/verbs.cpp:1409 msgid "Delete layer" msgstr "" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1413 +#: ../src/verbs.cpp:1412 msgid "Deleted layer." msgstr "" -#: ../src/verbs.cpp:1430 +#: ../src/verbs.cpp:1429 msgid "Show all layers" msgstr "" -#: ../src/verbs.cpp:1435 +#: ../src/verbs.cpp:1434 msgid "Hide all layers" msgstr "" -#: ../src/verbs.cpp:1440 +#: ../src/verbs.cpp:1439 msgid "Lock all layers" msgstr "" -#: ../src/verbs.cpp:1454 +#: ../src/verbs.cpp:1453 msgid "Unlock all layers" msgstr "" -#: ../src/verbs.cpp:1538 +#: ../src/verbs.cpp:1537 msgid "Flip horizontally" msgstr "" -#: ../src/verbs.cpp:1543 +#: ../src/verbs.cpp:1542 msgid "Flip vertically" msgstr "" -#: ../src/verbs.cpp:1591 +#: ../src/verbs.cpp:1590 #, c-format msgid "Set %d" msgstr "" -#: ../src/verbs.cpp:1600 ../src/verbs.cpp:2728 +#: ../src/verbs.cpp:1599 ../src/verbs.cpp:2729 msgid "Create new selection set" 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:2176 +#: ../src/verbs.cpp:2175 msgid "tutorial-basic.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2180 +#: ../src/verbs.cpp:2179 msgid "tutorial-shapes.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2184 +#: ../src/verbs.cpp:2183 msgid "tutorial-advanced.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2190 +#: ../src/verbs.cpp:2189 msgid "tutorial-tracing.svg" msgstr "" -#: ../src/verbs.cpp:2195 +#: ../src/verbs.cpp:2194 msgid "tutorial-tracing-pixelart.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2199 +#: ../src/verbs.cpp:2198 msgid "tutorial-calligraphy.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2203 +#: ../src/verbs.cpp:2202 msgid "tutorial-interpolate.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2207 +#: ../src/verbs.cpp:2206 msgid "tutorial-elements.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2211 +#: ../src/verbs.cpp:2210 msgid "tutorial-tips.svg" msgstr "" -#: ../src/verbs.cpp:2397 ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:2396 ../src/verbs.cpp:3012 msgid "Unlock all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3013 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:3014 msgid "Unlock all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3015 +#: ../src/verbs.cpp:2404 ../src/verbs.cpp:3016 msgid "Unhide all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3017 +#: ../src/verbs.cpp:2408 ../src/verbs.cpp:3018 msgid "Unhide all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2424 +#: ../src/verbs.cpp:2423 msgctxt "Verb" msgid "None" msgstr "" -#: ../src/verbs.cpp:2424 +#: ../src/verbs.cpp:2423 msgid "Does nothing" msgstr "" #. File #. Tag -#: ../src/verbs.cpp:2427 ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:2426 ../src/verbs.cpp:2728 msgid "_New" msgstr "" -#: ../src/verbs.cpp:2427 +#: ../src/verbs.cpp:2426 msgid "Create new document from the default template" msgstr "" -#: ../src/verbs.cpp:2429 +#: ../src/verbs.cpp:2428 msgid "_Open..." msgstr "" -#: ../src/verbs.cpp:2430 +#: ../src/verbs.cpp:2429 msgid "Open an existing document" msgstr "" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2430 msgid "Re_vert" msgstr "" -#: ../src/verbs.cpp:2432 +#: ../src/verbs.cpp:2431 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2432 msgid "Save document" msgstr "" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2434 msgid "Save _As..." msgstr "" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2435 msgid "Save document under a new name" msgstr "" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2436 msgid "Save a Cop_y..." msgstr "" -#: ../src/verbs.cpp:2438 +#: ../src/verbs.cpp:2437 msgid "Save a copy of the document under a new name" msgstr "" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2438 msgid "_Print..." msgstr "" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2438 msgid "Print document" msgstr "" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2441 msgid "Clean _up document" msgstr "" -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2441 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" msgstr "" -#: ../src/verbs.cpp:2444 +#: ../src/verbs.cpp:2443 msgid "_Import..." msgstr "" -#: ../src/verbs.cpp:2445 +#: ../src/verbs.cpp:2444 msgid "Import a bitmap or SVG image into this document" msgstr "" #. 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:2447 +#: ../src/verbs.cpp:2446 msgid "Import Clip Art..." msgstr "" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2447 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:2450 +#: ../src/verbs.cpp:2449 msgid "N_ext Window" msgstr "" -#: ../src/verbs.cpp:2451 +#: ../src/verbs.cpp:2450 msgid "Switch to the next document window" msgstr "" -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2451 msgid "P_revious Window" msgstr "" -#: ../src/verbs.cpp:2453 +#: ../src/verbs.cpp:2452 msgid "Switch to the previous document window" msgstr "" -#: ../src/verbs.cpp:2454 +#: ../src/verbs.cpp:2453 msgid "_Close" msgstr "" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2454 msgid "Close this document window" msgstr "" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2455 msgid "_Quit" msgstr "" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2455 msgid "Quit Inkscape" msgstr "" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2456 msgid "New from _Template..." msgstr "" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2457 msgid "Create new project from template" msgstr "" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2460 msgid "Undo last action" msgstr "" -#: ../src/verbs.cpp:2464 +#: ../src/verbs.cpp:2463 msgid "Do again the last undone action" msgstr "" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2464 msgid "Cu_t" msgstr "" -#: ../src/verbs.cpp:2466 +#: ../src/verbs.cpp:2465 msgid "Cut selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2467 +#: ../src/verbs.cpp:2466 msgid "_Copy" msgstr "" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2467 msgid "Copy selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2468 msgid "_Paste" msgstr "" -#: ../src/verbs.cpp:2470 +#: ../src/verbs.cpp:2469 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2470 msgid "Paste _Style" msgstr "" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2471 msgid "Apply the style of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2473 msgid "Scale selection to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2474 msgid "Paste _Width" msgstr "" -#: ../src/verbs.cpp:2476 +#: ../src/verbs.cpp:2475 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" -#: ../src/verbs.cpp:2477 +#: ../src/verbs.cpp:2476 msgid "Paste _Height" msgstr "" -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2477 msgid "Scale selection vertically to match the height of the copied object" msgstr "" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2478 msgid "Paste Size Separately" msgstr "" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2479 msgid "Scale each selected object to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2480 msgid "Paste Width Separately" msgstr "" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2481 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2482 msgid "Paste Height Separately" msgstr "" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2483 msgid "" "Scale each selected object vertically to match the height of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2484 msgid "Paste _In Place" msgstr "" -#: ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2485 msgid "Paste objects from clipboard to the original location" msgstr "" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2486 msgid "Paste Path _Effect" msgstr "" -#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2487 msgid "Apply the path effect of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2488 msgid "Remove Path _Effect" msgstr "" -#: ../src/verbs.cpp:2490 +#: ../src/verbs.cpp:2489 msgid "Remove any path effects from selected objects" msgstr "" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2490 msgid "_Remove Filters" msgstr "" -#: ../src/verbs.cpp:2492 +#: ../src/verbs.cpp:2491 msgid "Remove any filters from selected objects" msgstr "" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2492 msgid "_Delete" msgstr "" -#: ../src/verbs.cpp:2494 +#: ../src/verbs.cpp:2493 msgid "Delete selection" msgstr "" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2494 msgid "Duplic_ate" msgstr "" -#: ../src/verbs.cpp:2496 +#: ../src/verbs.cpp:2495 msgid "Duplicate selected objects" msgstr "" -#: ../src/verbs.cpp:2497 +#: ../src/verbs.cpp:2496 msgid "Create Clo_ne" msgstr "" -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2497 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "" -#: ../src/verbs.cpp:2499 +#: ../src/verbs.cpp:2498 msgid "Unlin_k Clone" msgstr "" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2499 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" msgstr "" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2500 msgid "Relink to Copied" msgstr "" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2501 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2502 msgid "Select _Original" msgstr "" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2503 msgid "Select the object to which the selected clone is linked" msgstr "" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2504 msgid "Clone original path (LPE)" msgstr "" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2505 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" msgstr "" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2506 msgid "Objects to _Marker" msgstr "" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2507 msgid "Convert selection to a line marker" msgstr "" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2508 msgid "Objects to Gu_ides" msgstr "" -#: ../src/verbs.cpp:2510 +#: ../src/verbs.cpp:2509 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" msgstr "" -#: ../src/verbs.cpp:2511 +#: ../src/verbs.cpp:2510 msgid "Objects to Patter_n" msgstr "" -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2511 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2512 msgid "Pattern to _Objects" msgstr "" -#: ../src/verbs.cpp:2514 +#: ../src/verbs.cpp:2513 msgid "Extract objects from a tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2515 +#: ../src/verbs.cpp:2514 msgid "Group to Symbol" msgstr "" -#: ../src/verbs.cpp:2516 +#: ../src/verbs.cpp:2515 msgid "Convert group to a symbol" msgstr "" -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2516 msgid "Symbol to Group" msgstr "" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2517 msgid "Extract group from a symbol" msgstr "" -#: ../src/verbs.cpp:2519 +#: ../src/verbs.cpp:2518 msgid "Clea_r All" msgstr "" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2519 msgid "Delete all objects from document" msgstr "" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2520 msgid "Select Al_l" msgstr "" -#: ../src/verbs.cpp:2522 +#: ../src/verbs.cpp:2521 msgid "Select all objects or all nodes" msgstr "" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2522 msgid "Select All in All La_yers" msgstr "" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2523 msgid "Select all objects in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2525 +#: ../src/verbs.cpp:2524 msgid "Fill _and Stroke" msgstr "" -#: ../src/verbs.cpp:2526 +#: ../src/verbs.cpp:2525 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2527 +#: ../src/verbs.cpp:2526 msgid "_Fill Color" msgstr "" -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2527 msgid "Select all objects with the same fill as the selected objects" msgstr "" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2528 msgid "_Stroke Color" msgstr "" -#: ../src/verbs.cpp:2530 +#: ../src/verbs.cpp:2529 msgid "Select all objects with the same stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2530 msgid "Stroke St_yle" msgstr "" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2531 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" msgstr "" -#: ../src/verbs.cpp:2533 +#: ../src/verbs.cpp:2532 msgid "_Object Type" msgstr "" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2533 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" msgstr "" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2534 msgid "In_vert Selection" msgstr "" -#: ../src/verbs.cpp:2536 +#: ../src/verbs.cpp:2535 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2536 msgid "Invert in All Layers" msgstr "" -#: ../src/verbs.cpp:2538 +#: ../src/verbs.cpp:2537 msgid "Invert selection in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2538 msgid "Select Next" msgstr "" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2539 msgid "Select next object or node" msgstr "" -#: ../src/verbs.cpp:2541 +#: ../src/verbs.cpp:2540 msgid "Select Previous" msgstr "" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2541 msgid "Select previous object or node" msgstr "" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2542 msgid "D_eselect" msgstr "" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2543 msgid "Deselect any selected objects or nodes" msgstr "" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2545 msgid "Delete all the guides in the document" msgstr "" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2546 msgid "Lock All Guides" msgstr "" -#: ../src/verbs.cpp:2547 ../src/widgets/desktop-widget.cpp:402 +#: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:402 msgid "Toggle lock of all guides in the document" msgstr "" -#: ../src/verbs.cpp:2548 +#: ../src/verbs.cpp:2547 msgid "Create _Guides Around the Page" msgstr "" -#: ../src/verbs.cpp:2549 +#: ../src/verbs.cpp:2548 msgid "Create four guides aligned with the page borders" msgstr "" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2549 msgid "Next path effect parameter" msgstr "" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2550 msgid "Show next editable path effect parameter" msgstr "" #. Selection -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2553 msgid "Raise to _Top" msgstr "" -#: ../src/verbs.cpp:2555 +#: ../src/verbs.cpp:2554 msgid "Raise selection to top" msgstr "" -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2555 msgid "Lower to _Bottom" msgstr "" -#: ../src/verbs.cpp:2557 +#: ../src/verbs.cpp:2556 msgid "Lower selection to bottom" msgstr "" -#: ../src/verbs.cpp:2558 +#: ../src/verbs.cpp:2557 msgid "_Raise" msgstr "" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2558 msgid "Raise selection one step" msgstr "" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2559 msgid "_Lower" msgstr "" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2560 msgid "Lower selection one step" msgstr "" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2562 msgid "Group selected objects" msgstr "" -#: ../src/verbs.cpp:2565 +#: ../src/verbs.cpp:2564 msgid "Ungroup selected groups" msgstr "" -#: ../src/verbs.cpp:2567 +#: ../src/verbs.cpp:2565 +msgid "_Pop selected objects out of group" +msgstr "" + +#: ../src/verbs.cpp:2566 +msgid "Pop selected objects out of group" +msgstr "" + +#: ../src/verbs.cpp:2568 msgid "_Put on Path" msgstr "" -#: ../src/verbs.cpp:2569 +#: ../src/verbs.cpp:2570 msgid "_Remove from Path" msgstr "" -#: ../src/verbs.cpp:2571 +#: ../src/verbs.cpp:2572 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:2574 +#: ../src/verbs.cpp:2575 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" -#: ../src/verbs.cpp:2576 +#: ../src/verbs.cpp:2577 msgid "_Union" msgstr "" -#: ../src/verbs.cpp:2577 +#: ../src/verbs.cpp:2578 msgid "Create union of selected paths" msgstr "" -#: ../src/verbs.cpp:2578 +#: ../src/verbs.cpp:2579 msgid "_Intersection" msgstr "" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2580 msgid "Create intersection of selected paths" msgstr "" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2581 msgid "_Difference" msgstr "" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2582 msgid "Create difference of selected paths (bottom minus top)" msgstr "" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2583 msgid "E_xclusion" msgstr "" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2584 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" msgstr "" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2585 msgid "Di_vision" msgstr "" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2586 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:2588 +#: ../src/verbs.cpp:2589 msgid "Cut _Path" msgstr "" -#: ../src/verbs.cpp:2589 +#: ../src/verbs.cpp:2590 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:2593 +#: ../src/verbs.cpp:2594 msgid "Outs_et" msgstr "" -#: ../src/verbs.cpp:2594 +#: ../src/verbs.cpp:2595 msgid "Outset selected paths" msgstr "" -#: ../src/verbs.cpp:2596 +#: ../src/verbs.cpp:2597 msgid "O_utset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2598 msgid "Outset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2600 msgid "O_utset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2601 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:2604 +#: ../src/verbs.cpp:2605 msgid "I_nset" msgstr "" -#: ../src/verbs.cpp:2605 +#: ../src/verbs.cpp:2606 msgid "Inset selected paths" msgstr "" -#: ../src/verbs.cpp:2607 +#: ../src/verbs.cpp:2608 msgid "I_nset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2609 msgid "Inset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2611 msgid "I_nset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2612 msgid "Inset selected paths by 10 px" msgstr "" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2614 msgid "D_ynamic Offset" msgstr "" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2614 msgid "Create a dynamic offset object" msgstr "" -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2616 msgid "_Linked Offset" msgstr "" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2617 msgid "Create a dynamic offset object linked to the original path" msgstr "" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2619 msgid "_Stroke to Path" msgstr "" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2620 msgid "Convert selected object's stroke to paths" msgstr "" -#: ../src/verbs.cpp:2620 +#: ../src/verbs.cpp:2621 msgid "Si_mplify" msgstr "" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2622 msgid "Simplify selected paths (remove extra nodes)" msgstr "" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2623 msgid "_Reverse" msgstr "" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2624 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" -#: ../src/verbs.cpp:2628 +#: ../src/verbs.cpp:2629 msgid "Create one or more paths from a bitmap by tracing it" msgstr "" -#: ../src/verbs.cpp:2631 +#: ../src/verbs.cpp:2632 msgid "Trace Pixel Art..." msgstr "" -#: ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2633 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2634 msgid "Make a _Bitmap Copy" msgstr "" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2635 msgid "Export selection to a bitmap and insert it into document" msgstr "" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2636 msgid "_Combine" msgstr "" -#: ../src/verbs.cpp:2636 +#: ../src/verbs.cpp:2637 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:2639 +#: ../src/verbs.cpp:2640 msgid "Break _Apart" msgstr "" -#: ../src/verbs.cpp:2640 +#: ../src/verbs.cpp:2641 msgid "Break selected paths into subpaths" msgstr "" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2642 msgid "_Arrange..." msgstr "" -#: ../src/verbs.cpp:2642 +#: ../src/verbs.cpp:2643 msgid "Arrange selected objects in a table or circle" msgstr "" #. Layer -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2645 msgid "_Add Layer..." msgstr "" -#: ../src/verbs.cpp:2645 +#: ../src/verbs.cpp:2646 msgid "Create a new layer" msgstr "" -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2647 msgid "Re_name Layer..." msgstr "" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2648 msgid "Rename the current layer" msgstr "" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2649 msgid "Switch to Layer Abov_e" msgstr "" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2650 msgid "Switch to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2651 msgid "Switch to Layer Belo_w" msgstr "" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2652 msgid "Switch to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2653 msgid "Move Selection to Layer Abo_ve" msgstr "" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2654 msgid "Move selection to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2655 msgid "Move Selection to Layer Bel_ow" msgstr "" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2656 msgid "Move selection to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2656 +#: ../src/verbs.cpp:2657 msgid "Move Selection to Layer..." msgstr "" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2659 msgid "Layer to _Top" msgstr "" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2660 msgid "Raise the current layer to the top" msgstr "" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2661 msgid "Layer to _Bottom" msgstr "" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2662 msgid "Lower the current layer to the bottom" msgstr "" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2663 msgid "_Raise Layer" msgstr "" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2664 msgid "Raise the current layer" msgstr "" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2665 msgid "_Lower Layer" msgstr "" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2666 msgid "Lower the current layer" msgstr "" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2667 msgid "D_uplicate Current Layer" msgstr "" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2668 msgid "Duplicate an existing layer" msgstr "" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2669 msgid "_Delete Current Layer" msgstr "" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2670 msgid "Delete the current layer" msgstr "" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2671 msgid "_Show/hide other layers" msgstr "" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2672 msgid "Solo the current layer" msgstr "" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2673 msgid "_Show all layers" msgstr "" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2674 msgid "Show all the layers" msgstr "" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2675 msgid "_Hide all layers" msgstr "" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2676 msgid "Hide all the layers" msgstr "" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2677 msgid "_Lock all layers" msgstr "" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2678 msgid "Lock all the layers" msgstr "" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2679 msgid "Lock/Unlock _other layers" msgstr "" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2680 msgid "Lock all the other layers" msgstr "" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2681 msgid "_Unlock all layers" msgstr "" -#: ../src/verbs.cpp:2681 +#: ../src/verbs.cpp:2682 msgid "Unlock all the layers" msgstr "" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2683 msgid "_Lock/Unlock Current Layer" msgstr "" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2684 msgid "Toggle lock on current layer" msgstr "" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2685 msgid "_Show/hide Current Layer" msgstr "" -#: ../src/verbs.cpp:2685 +#: ../src/verbs.cpp:2686 msgid "Toggle visibility of current layer" msgstr "" #. Object -#: ../src/verbs.cpp:2688 +#: ../src/verbs.cpp:2689 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:2691 +#: ../src/verbs.cpp:2692 msgid "Rotate selection 90° clockwise" msgstr "" -#: ../src/verbs.cpp:2692 +#: ../src/verbs.cpp:2693 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:2695 +#: ../src/verbs.cpp:2696 msgid "Rotate selection 90° counter-clockwise" msgstr "" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2697 msgid "Remove _Transformations" msgstr "" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2698 msgid "Remove transformations from object" msgstr "" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2699 msgid "_Object to Path" msgstr "" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2700 msgid "Convert selected object to path" msgstr "" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2701 msgid "_Flow into Frame" msgstr "" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2702 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" msgstr "" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2703 msgid "_Unflow" msgstr "" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2704 msgid "Remove text from frame (creates a single-line text object)" msgstr "" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2705 msgid "_Convert to Text" msgstr "" -#: ../src/verbs.cpp:2705 +#: ../src/verbs.cpp:2706 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" -#: ../src/verbs.cpp:2707 +#: ../src/verbs.cpp:2708 msgid "Flip _Horizontal" msgstr "" -#: ../src/verbs.cpp:2707 +#: ../src/verbs.cpp:2708 msgid "Flip selected objects horizontally" msgstr "" -#: ../src/verbs.cpp:2710 +#: ../src/verbs.cpp:2711 msgid "Flip _Vertical" msgstr "" -#: ../src/verbs.cpp:2710 +#: ../src/verbs.cpp:2711 msgid "Flip selected objects vertically" msgstr "" -#: ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2714 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" -#: ../src/verbs.cpp:2715 +#: ../src/verbs.cpp:2716 msgid "Edit mask" msgstr "" -#: ../src/verbs.cpp:2716 ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2717 ../src/verbs.cpp:2725 msgid "_Release" msgstr "" -#: ../src/verbs.cpp:2717 +#: ../src/verbs.cpp:2718 msgid "Remove mask from selection" msgstr "" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2720 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2721 msgid "Create Cl_ip Group" msgstr "" -#: ../src/verbs.cpp:2721 +#: ../src/verbs.cpp:2722 msgid "Creates a clip group using the selected objects as a base" msgstr "" -#: ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2724 msgid "Edit clipping path" msgstr "" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:2726 msgid "Remove clipping path from selection" msgstr "" #. Tools -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2731 msgctxt "ContextVerb" msgid "Select" msgstr "" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2732 msgid "Select and transform objects" msgstr "" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2733 msgctxt "ContextVerb" msgid "Node Edit" msgstr "" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2734 msgid "Edit paths by nodes" msgstr "" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2735 msgctxt "ContextVerb" msgid "Tweak" msgstr "" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2736 msgid "Tweak objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2737 msgctxt "ContextVerb" msgid "Spray" msgstr "" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2738 msgid "Spray objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2739 msgctxt "ContextVerb" msgid "Rectangle" msgstr "" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2740 msgid "Create rectangles and squares" msgstr "" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2741 msgctxt "ContextVerb" msgid "3D Box" msgstr "" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2742 msgid "Create 3D boxes" msgstr "" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2743 msgctxt "ContextVerb" msgid "Ellipse" msgstr "" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2744 msgid "Create circles, ellipses, and arcs" msgstr "" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2745 msgctxt "ContextVerb" msgid "Star" msgstr "" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2746 msgid "Create stars and polygons" msgstr "" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2747 msgctxt "ContextVerb" msgid "Spiral" msgstr "" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2748 msgid "Create spirals" msgstr "" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2749 msgctxt "ContextVerb" msgid "Pencil" msgstr "" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2750 msgid "Draw freehand lines" msgstr "" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2751 msgctxt "ContextVerb" msgid "Pen" msgstr "" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2752 msgid "Draw Bezier curves and straight lines" msgstr "" -#: ../src/verbs.cpp:2752 +#: ../src/verbs.cpp:2753 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2754 msgid "Draw calligraphic or brush strokes" msgstr "" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2756 msgid "Create and edit text objects" msgstr "" -#: ../src/verbs.cpp:2756 +#: ../src/verbs.cpp:2757 msgctxt "ContextVerb" msgid "Gradient" msgstr "" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2758 msgid "Create and edit gradients" msgstr "" -#: ../src/verbs.cpp:2758 +#: ../src/verbs.cpp:2759 msgctxt "ContextVerb" msgid "Mesh" msgstr "" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2760 msgid "Create and edit meshes" msgstr "" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2761 msgctxt "ContextVerb" msgid "Zoom" msgstr "" -#: ../src/verbs.cpp:2761 +#: ../src/verbs.cpp:2762 msgid "Zoom in or out" msgstr "" -#: ../src/verbs.cpp:2763 +#: ../src/verbs.cpp:2764 msgid "Measurement tool" msgstr "" -#: ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2765 msgctxt "ContextVerb" msgid "Dropper" msgstr "" -#: ../src/verbs.cpp:2766 +#: ../src/verbs.cpp:2767 msgctxt "ContextVerb" msgid "Connector" msgstr "" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2768 msgid "Create diagram connectors" msgstr "" -#: ../src/verbs.cpp:2770 +#: ../src/verbs.cpp:2771 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2772 msgid "Fill bounded areas" msgstr "" -#: ../src/verbs.cpp:2774 +#: ../src/verbs.cpp:2775 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "" -#: ../src/verbs.cpp:2775 +#: ../src/verbs.cpp:2776 msgid "Edit Path Effect parameters" msgstr "" -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2777 msgctxt "ContextVerb" msgid "Eraser" msgstr "" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2778 msgid "Erase existing paths" msgstr "" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2779 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2780 msgid "Do geometric constructions" msgstr "" #. Tool prefs -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2782 msgid "Selector Preferences" msgstr "" -#: ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2783 msgid "Open Preferences for the Selector tool" msgstr "" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2784 msgid "Node Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2785 msgid "Open Preferences for the Node tool" msgstr "" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2786 msgid "Tweak Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2786 +#: ../src/verbs.cpp:2787 msgid "Open Preferences for the Tweak tool" msgstr "" -#: ../src/verbs.cpp:2787 +#: ../src/verbs.cpp:2788 msgid "Spray Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2789 msgid "Open Preferences for the Spray tool" msgstr "" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2790 msgid "Rectangle Preferences" msgstr "" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2791 msgid "Open Preferences for the Rectangle tool" msgstr "" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2792 msgid "3D Box Preferences" msgstr "" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2793 msgid "Open Preferences for the 3D Box tool" msgstr "" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2794 msgid "Ellipse Preferences" msgstr "" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2795 msgid "Open Preferences for the Ellipse tool" msgstr "" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2796 msgid "Star Preferences" msgstr "" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2797 msgid "Open Preferences for the Star tool" msgstr "" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2798 msgid "Spiral Preferences" msgstr "" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2799 msgid "Open Preferences for the Spiral tool" msgstr "" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2800 msgid "Pencil Preferences" msgstr "" -#: ../src/verbs.cpp:2800 +#: ../src/verbs.cpp:2801 msgid "Open Preferences for the Pencil tool" msgstr "" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2802 msgid "Pen Preferences" msgstr "" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2803 msgid "Open Preferences for the Pen tool" msgstr "" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2804 msgid "Calligraphic Preferences" msgstr "" -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2805 msgid "Open Preferences for the Calligraphy tool" msgstr "" -#: ../src/verbs.cpp:2805 +#: ../src/verbs.cpp:2806 msgid "Text Preferences" msgstr "" -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2807 msgid "Open Preferences for the Text tool" msgstr "" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2808 msgid "Gradient Preferences" msgstr "" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2809 msgid "Open Preferences for the Gradient tool" msgstr "" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2810 msgid "Mesh Preferences" msgstr "" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2811 msgid "Open Preferences for the Mesh tool" msgstr "" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2812 msgid "Zoom Preferences" msgstr "" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2813 msgid "Open Preferences for the Zoom tool" msgstr "" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2814 msgid "Measure Preferences" msgstr "" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2815 msgid "Open Preferences for the Measure tool" msgstr "" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2816 msgid "Dropper Preferences" msgstr "" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2817 msgid "Open Preferences for the Dropper tool" msgstr "" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2818 msgid "Connector Preferences" msgstr "" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2819 msgid "Open Preferences for the Connector tool" msgstr "" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2822 msgid "Paint Bucket Preferences" msgstr "" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2823 msgid "Open Preferences for the Paint Bucket tool" msgstr "" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2826 msgid "Eraser Preferences" msgstr "" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2827 msgid "Open Preferences for the Eraser tool" msgstr "" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2828 msgid "LPE Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2829 msgid "Open Preferences for the LPETool tool" msgstr "" #. Zoom/View -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2831 msgid "Zoom In" msgstr "" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2831 msgid "Zoom in" msgstr "" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2832 msgid "Zoom Out" msgstr "" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2832 msgid "Zoom out" msgstr "" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2833 msgid "_Rulers" msgstr "" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2833 msgid "Show or hide the canvas rulers" msgstr "" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2834 msgid "Scroll_bars" msgstr "" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2834 msgid "Show or hide the canvas scrollbars" msgstr "" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2835 msgid "Page _Grid" msgstr "" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2835 msgid "Show or hide the page grid" msgstr "" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2836 msgid "G_uides" msgstr "" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2836 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2837 msgid "Enable snapping" msgstr "" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2838 msgid "_Commands Bar" msgstr "" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2838 msgid "Show or hide the Commands bar (under the menu)" msgstr "" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2839 msgid "Sn_ap Controls Bar" msgstr "" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2839 msgid "Show or hide the snapping controls" msgstr "" -#: ../src/verbs.cpp:2839 +#: ../src/verbs.cpp:2840 msgid "T_ool Controls Bar" msgstr "" -#: ../src/verbs.cpp:2839 +#: ../src/verbs.cpp:2840 msgid "Show or hide the Tool Controls bar" msgstr "" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2841 msgid "_Toolbox" msgstr "" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2841 msgid "Show or hide the main toolbox (on the left)" msgstr "" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2842 msgid "_Palette" msgstr "" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2842 msgid "Show or hide the color palette" msgstr "" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2843 msgid "_Statusbar" msgstr "" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2843 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2844 msgid "Nex_t Zoom" msgstr "" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2844 msgid "Next zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2846 msgid "Pre_vious Zoom" msgstr "" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2846 msgid "Previous zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2848 msgid "Zoom 1:_1" msgstr "" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2848 msgid "Zoom to 1:1" msgstr "" -#: ../src/verbs.cpp:2849 +#: ../src/verbs.cpp:2850 msgid "Zoom 1:_2" msgstr "" -#: ../src/verbs.cpp:2849 +#: ../src/verbs.cpp:2850 msgid "Zoom to 1:2" msgstr "" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2852 msgid "_Zoom 2:1" msgstr "" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2852 msgid "Zoom to 2:1" msgstr "" -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2854 msgid "_Fullscreen" msgstr "" -#: ../src/verbs.cpp:2853 ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2854 ../src/verbs.cpp:2856 msgid "Stretch this document window to full screen" msgstr "" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2856 msgid "Fullscreen & Focus Mode" msgstr "" -#: ../src/verbs.cpp:2857 +#: ../src/verbs.cpp:2858 msgid "Toggle _Focus Mode" msgstr "" -#: ../src/verbs.cpp:2857 +#: ../src/verbs.cpp:2858 msgid "Remove excess toolbars to focus on drawing" msgstr "" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2860 msgid "Duplic_ate Window" msgstr "" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2860 msgid "Open a new window with the same document" msgstr "" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2862 msgid "_New View Preview" msgstr "" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2863 msgid "New View Preview" msgstr "" #. "view_new_preview" -#: ../src/verbs.cpp:2864 ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2865 ../src/verbs.cpp:2873 msgid "_Normal" msgstr "" -#: ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2866 msgid "Switch to normal display mode" msgstr "" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2867 msgid "No _Filters" msgstr "" -#: ../src/verbs.cpp:2867 +#: ../src/verbs.cpp:2868 msgid "Switch to normal display without filters" msgstr "" -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2869 msgid "_Outline" msgstr "" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2870 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:2870 ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2871 ../src/verbs.cpp:2879 msgid "_Toggle" msgstr "" -#: ../src/verbs.cpp:2871 +#: ../src/verbs.cpp:2872 msgid "Toggle between normal and outline display modes" msgstr "" -#: ../src/verbs.cpp:2873 +#: ../src/verbs.cpp:2874 msgid "Switch to normal color display mode" msgstr "" -#: ../src/verbs.cpp:2874 +#: ../src/verbs.cpp:2875 msgid "_Grayscale" msgstr "" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2876 msgid "Switch to grayscale display mode" msgstr "" -#: ../src/verbs.cpp:2879 +#: ../src/verbs.cpp:2880 msgid "Toggle between normal and grayscale color display modes" msgstr "" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2882 msgid "Color-managed view" msgstr "" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2883 msgid "Toggle color-managed display for this document window" msgstr "" -#: ../src/verbs.cpp:2884 +#: ../src/verbs.cpp:2885 msgid "Ico_n Preview..." msgstr "" -#: ../src/verbs.cpp:2885 +#: ../src/verbs.cpp:2886 msgid "Open a window to preview objects at different icon resolutions" msgstr "" -#: ../src/verbs.cpp:2887 +#: ../src/verbs.cpp:2888 msgid "Zoom to fit page in window" msgstr "" -#: ../src/verbs.cpp:2888 +#: ../src/verbs.cpp:2889 msgid "Page _Width" msgstr "" -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2890 msgid "Zoom to fit page width in window" msgstr "" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2892 msgid "Zoom to fit drawing in window" msgstr "" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2894 msgid "Zoom to fit selection in window" msgstr "" #. Dialogs -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2897 msgid "P_references..." msgstr "" -#: ../src/verbs.cpp:2897 +#: ../src/verbs.cpp:2898 msgid "Edit global Inkscape preferences" msgstr "" -#: ../src/verbs.cpp:2898 +#: ../src/verbs.cpp:2899 msgid "_Document Properties..." msgstr "" -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2900 msgid "Edit properties of this document (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:2900 +#: ../src/verbs.cpp:2901 msgid "Document _Metadata..." msgstr "" -#: ../src/verbs.cpp:2901 +#: ../src/verbs.cpp:2902 msgid "Edit document metadata (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2904 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:2905 +#: ../src/verbs.cpp:2906 msgid "Gl_yphs..." msgstr "" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2907 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:2909 +#: ../src/verbs.cpp:2910 msgid "S_watches..." msgstr "" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2911 msgid "Select colors from a swatches palette" msgstr "" -#: ../src/verbs.cpp:2911 +#: ../src/verbs.cpp:2912 msgid "S_ymbols..." msgstr "" -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2913 msgid "Select symbol from a symbols palette" msgstr "" -#: ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2914 msgid "Transfor_m..." msgstr "" -#: ../src/verbs.cpp:2914 +#: ../src/verbs.cpp:2915 msgid "Precisely control objects' transformations" msgstr "" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2916 msgid "_Align and Distribute..." msgstr "" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2917 msgid "Align and distribute objects" msgstr "" -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2918 msgid "_Spray options..." msgstr "" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2919 msgid "Some options for the spray" msgstr "" -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2920 msgid "Undo _History..." msgstr "" -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2921 msgid "Undo History" msgstr "" -#: ../src/verbs.cpp:2922 +#: ../src/verbs.cpp:2923 msgid "View and select font family, font size and other text properties" msgstr "" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2924 msgid "_XML Editor..." msgstr "" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2925 msgid "View and edit the XML tree of the document" msgstr "" -#: ../src/verbs.cpp:2925 +#: ../src/verbs.cpp:2926 msgid "_Find/Replace..." msgstr "" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2927 msgid "Find objects in document" msgstr "" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2928 msgid "Find and _Replace Text..." msgstr "" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2929 msgid "Find and replace text in document" msgstr "" -#: ../src/verbs.cpp:2930 +#: ../src/verbs.cpp:2931 msgid "Check spelling of text in document" msgstr "" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2932 msgid "_Messages..." msgstr "" -#: ../src/verbs.cpp:2932 +#: ../src/verbs.cpp:2933 msgid "View debug messages" msgstr "" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2934 msgid "Show/Hide D_ialogs" msgstr "" -#: ../src/verbs.cpp:2934 +#: ../src/verbs.cpp:2935 msgid "Show or hide all open dialogs" msgstr "" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2936 msgid "Create Tiled Clones..." msgstr "" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2937 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" msgstr "" -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2938 msgid "_Object attributes..." msgstr "" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2939 msgid "Edit the object attributes..." msgstr "" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2941 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2942 msgid "_Input Devices..." msgstr "" -#: ../src/verbs.cpp:2942 +#: ../src/verbs.cpp:2943 msgid "Configure extended input devices, such as a graphics tablet" msgstr "" -#: ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2944 msgid "_Extensions..." msgstr "" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2945 msgid "Query information about extensions" msgstr "" -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2946 msgid "Layer_s..." msgstr "" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2947 msgid "View Layers" msgstr "" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2948 msgid "Object_s..." msgstr "" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2949 msgid "View Objects" msgstr "" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2950 msgid "Selection se_ts..." msgstr "" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2951 msgid "View Tags" msgstr "" -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2952 msgid "Path E_ffects ..." msgstr "" -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2953 msgid "Manage, edit, and apply path effects" msgstr "" -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2954 msgid "Filter _Editor..." msgstr "" -#: ../src/verbs.cpp:2954 +#: ../src/verbs.cpp:2955 msgid "Manage, edit, and apply SVG filters" msgstr "" -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2956 msgid "SVG Font Editor..." msgstr "" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2957 msgid "Edit SVG fonts" msgstr "" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2958 msgid "Print Colors..." msgstr "" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2959 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2960 msgid "_Export PNG Image..." msgstr "" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2961 msgid "Export this document or a selection as a PNG image" msgstr "" #. Help -#: ../src/verbs.cpp:2962 +#: ../src/verbs.cpp:2963 msgid "About E_xtensions" msgstr "" -#: ../src/verbs.cpp:2963 +#: ../src/verbs.cpp:2964 msgid "Information on Inkscape extensions" msgstr "" -#: ../src/verbs.cpp:2964 +#: ../src/verbs.cpp:2965 msgid "About _Memory" msgstr "" -#: ../src/verbs.cpp:2965 +#: ../src/verbs.cpp:2966 msgid "Memory usage information" msgstr "" -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2967 msgid "_About Inkscape" msgstr "" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2968 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:2972 +#: ../src/verbs.cpp:2973 msgid "Inkscape: _Basic" msgstr "" -#: ../src/verbs.cpp:2973 +#: ../src/verbs.cpp:2974 msgid "Getting started with Inkscape" msgstr "" #. "tutorial_basic" -#: ../src/verbs.cpp:2974 +#: ../src/verbs.cpp:2975 msgid "Inkscape: _Shapes" msgstr "" -#: ../src/verbs.cpp:2975 +#: ../src/verbs.cpp:2976 msgid "Using shape tools to create and edit shapes" msgstr "" -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:2977 msgid "Inkscape: _Advanced" msgstr "" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:2978 msgid "Advanced Inkscape topics" msgstr "" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2981 +#: ../src/verbs.cpp:2982 msgid "Inkscape: T_racing" msgstr "" -#: ../src/verbs.cpp:2982 +#: ../src/verbs.cpp:2983 msgid "Using bitmap tracing" msgstr "" -#: ../src/verbs.cpp:2985 +#: ../src/verbs.cpp:2986 msgid "Inkscape: Tracing Pixel Art" msgstr "" -#: ../src/verbs.cpp:2986 +#: ../src/verbs.cpp:2987 msgid "Using Trace Pixel Art dialog" msgstr "" -#: ../src/verbs.cpp:2987 +#: ../src/verbs.cpp:2988 msgid "Inkscape: _Calligraphy" msgstr "" -#: ../src/verbs.cpp:2988 +#: ../src/verbs.cpp:2989 msgid "Using the Calligraphy pen tool" msgstr "" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:2990 msgid "Inkscape: _Interpolate" msgstr "" -#: ../src/verbs.cpp:2990 +#: ../src/verbs.cpp:2991 msgid "Using the interpolate extension" msgstr "" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2991 +#: ../src/verbs.cpp:2992 msgid "_Elements of Design" msgstr "" -#: ../src/verbs.cpp:2992 +#: ../src/verbs.cpp:2993 msgid "Principles of design in the tutorial form" msgstr "" #. "tutorial_design" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2994 msgid "_Tips and Tricks" msgstr "" -#: ../src/verbs.cpp:2994 +#: ../src/verbs.cpp:2995 msgid "Miscellaneous tips and tricks" msgstr "" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2998 msgid "Previous Exte_nsion" msgstr "" -#: ../src/verbs.cpp:2998 +#: ../src/verbs.cpp:2999 msgid "Repeat the last extension with the same settings" msgstr "" -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:3000 msgid "_Previous Extension Settings..." msgstr "" -#: ../src/verbs.cpp:3000 +#: ../src/verbs.cpp:3001 msgid "Repeat the last extension with new settings" msgstr "" -#: ../src/verbs.cpp:3004 +#: ../src/verbs.cpp:3005 msgid "Fit the page to the current selection" msgstr "" -#: ../src/verbs.cpp:3006 +#: ../src/verbs.cpp:3007 msgid "Fit the page to the drawing" msgstr "" #: ../src/verbs.cpp:3008 +msgid "_Resize Page to Selection" +msgstr "" + +#: ../src/verbs.cpp:3009 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" -#: ../src/verbs.cpp:3012 +#: ../src/verbs.cpp:3013 msgid "Unlock All in All Layers" msgstr "" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:3015 msgid "Unhide All" msgstr "" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:3017 msgid "Unhide All in All Layers" msgstr "" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:3021 msgid "Link an ICC color profile" msgstr "" -#: ../src/verbs.cpp:3021 +#: ../src/verbs.cpp:3022 msgid "Remove Color Profile" msgstr "" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:3023 msgid "Remove a linked ICC color profile" msgstr "" -#: ../src/verbs.cpp:3025 +#: ../src/verbs.cpp:3026 msgid "Add External Script" msgstr "" -#: ../src/verbs.cpp:3025 +#: ../src/verbs.cpp:3026 msgid "Add an external script" msgstr "" -#: ../src/verbs.cpp:3027 +#: ../src/verbs.cpp:3028 msgid "Add Embedded Script" msgstr "" -#: ../src/verbs.cpp:3027 +#: ../src/verbs.cpp:3028 msgid "Add an embedded script" msgstr "" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3030 msgid "Edit Embedded Script" msgstr "" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3030 msgid "Edit an embedded script" msgstr "" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3032 msgid "Remove External Script" msgstr "" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3032 msgid "Remove an external script" msgstr "" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3034 msgid "Remove Embedded Script" msgstr "" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3034 msgid "Remove an embedded script" msgstr "" -#: ../src/verbs.cpp:3055 ../src/verbs.cpp:3056 +#: ../src/verbs.cpp:3056 ../src/verbs.cpp:3057 msgid "Center on horizontal and vertical axis" msgstr "" @@ -27599,96 +27692,96 @@ msgstr "" msgid "Pattern offset" msgstr "" -#: ../src/widgets/desktop-widget.cpp:494 +#: ../src/widgets/desktop-widget.cpp:495 msgid "Zoom drawing if window size changes" msgstr "" -#: ../src/widgets/desktop-widget.cpp:693 +#: ../src/widgets/desktop-widget.cpp:702 msgid "Cursor coordinates" msgstr "" -#: ../src/widgets/desktop-widget.cpp:719 +#: ../src/widgets/desktop-widget.cpp:723 msgid "Z:" msgstr "" #. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:762 +#: ../src/widgets/desktop-widget.cpp:776 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:856 +#: ../src/widgets/desktop-widget.cpp:870 msgid "grayscale" msgstr "" -#: ../src/widgets/desktop-widget.cpp:857 +#: ../src/widgets/desktop-widget.cpp:871 msgid ", grayscale" msgstr "" -#: ../src/widgets/desktop-widget.cpp:858 +#: ../src/widgets/desktop-widget.cpp:872 msgid "print colors preview" msgstr "" -#: ../src/widgets/desktop-widget.cpp:859 +#: ../src/widgets/desktop-widget.cpp:873 msgid ", print colors preview" msgstr "" -#: ../src/widgets/desktop-widget.cpp:860 +#: ../src/widgets/desktop-widget.cpp:874 msgid "outline" msgstr "" -#: ../src/widgets/desktop-widget.cpp:861 +#: ../src/widgets/desktop-widget.cpp:875 msgid "no filters" msgstr "" -#: ../src/widgets/desktop-widget.cpp:888 +#: ../src/widgets/desktop-widget.cpp:902 #, c-format msgid "%s%s: %d (%s%s) - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:890 ../src/widgets/desktop-widget.cpp:894 +#: ../src/widgets/desktop-widget.cpp:904 ../src/widgets/desktop-widget.cpp:908 #, c-format msgid "%s%s: %d (%s) - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:896 +#: ../src/widgets/desktop-widget.cpp:910 #, c-format msgid "%s%s: %d - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:902 +#: ../src/widgets/desktop-widget.cpp:916 #, c-format msgid "%s%s (%s%s) - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:904 ../src/widgets/desktop-widget.cpp:908 +#: ../src/widgets/desktop-widget.cpp:918 ../src/widgets/desktop-widget.cpp:922 #, c-format msgid "%s%s (%s) - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:910 +#: ../src/widgets/desktop-widget.cpp:924 #, c-format msgid "%s%s - Inkscape" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1082 +#: ../src/widgets/desktop-widget.cpp:1096 msgid "Locked all guides" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1084 +#: ../src/widgets/desktop-widget.cpp:1098 msgid "Unlocked all guides" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1101 +#: ../src/widgets/desktop-widget.cpp:1115 msgid "Color-managed display is enabled in this window" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1103 +#: ../src/widgets/desktop-widget.cpp:1117 msgid "Color-managed display is disabled in this window" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1158 +#: ../src/widgets/desktop-widget.cpp:1172 #, c-format msgid "" "Save changes to document \"%s\" before " @@ -27697,12 +27790,12 @@ msgid "" "If you close without saving, your changes will be discarded." msgstr "" -#: ../src/widgets/desktop-widget.cpp:1168 -#: ../src/widgets/desktop-widget.cpp:1227 +#: ../src/widgets/desktop-widget.cpp:1182 +#: ../src/widgets/desktop-widget.cpp:1241 msgid "Close _without saving" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1217 +#: ../src/widgets/desktop-widget.cpp:1231 #, c-format msgid "" "The file \"%s\" was saved with a " @@ -27711,11 +27804,11 @@ msgid "" "Do you want to save this file as Inkscape SVG?" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1229 +#: ../src/widgets/desktop-widget.cpp:1243 msgid "_Save as Inkscape SVG" msgstr "" -#: ../src/widgets/desktop-widget.cpp:1442 +#: ../src/widgets/desktop-widget.cpp:1456 msgid "Note:" msgstr "" @@ -27815,8 +27908,8 @@ msgstr "" msgid "Set pattern on stroke" msgstr "" -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1017 -#: ../src/widgets/text-toolbar.cpp:1358 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1207 +#: ../src/widgets/text-toolbar.cpp:1606 msgid "Font size" msgstr "" @@ -27826,16 +27919,17 @@ msgid "Font family" msgstr "" #. Style frame -#: ../src/widgets/font-selector.cpp:179 +#: ../src/widgets/font-selector.cpp:194 msgctxt "Font selector" msgid "Style" msgstr "" -#: ../src/widgets/font-selector.cpp:211 +#: ../src/widgets/font-selector.cpp:226 msgid "Face" msgstr "" -#: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 +#: ../src/widgets/font-selector.cpp:255 ../share/extensions/dots.inx.h:3 +#: ../share/extensions/nicechart.inx.h:17 msgid "Font size:" msgstr "" @@ -27905,33 +27999,27 @@ msgstr "" msgid "Create radial (elliptic or circular) gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1044 -#: ../src/widgets/mesh-toolbar.cpp:387 +#: ../src/widgets/gradient-toolbar.cpp:1044 ../src/widgets/mesh-toolbar.cpp:387 msgid "New:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:410 +#: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:410 msgid "fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:410 +#: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:410 msgid "Create gradient in the fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:414 +#: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:414 msgid "stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:414 +#: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:414 msgid "Create gradient in the stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1074 -#: ../src/widgets/mesh-toolbar.cpp:417 +#: ../src/widgets/gradient-toolbar.cpp:1074 ../src/widgets/mesh-toolbar.cpp:417 msgid "on:" msgstr "" @@ -28027,8 +28115,7 @@ msgstr "" msgid "Link gradients to change all related gradients" msgstr "" -#: ../src/widgets/gradient-vector.cpp:317 -#: ../src/widgets/paint-selector.cpp:965 +#: ../src/widgets/gradient-vector.cpp:317 ../src/widgets/paint-selector.cpp:965 #: ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" msgstr "" @@ -28055,18 +28142,42 @@ msgid "Delete current control stop from gradient" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:969 +#: ../src/widgets/gradient-vector.cpp:975 msgid "Stop Color" msgstr "" -#: ../src/widgets/gradient-vector.cpp:1008 +#: ../src/widgets/gradient-vector.cpp:1014 msgid "Gradient editor" msgstr "" -#: ../src/widgets/gradient-vector.cpp:1360 +#: ../src/widgets/gradient-vector.cpp:1366 msgid "Change gradient stop color" msgstr "" +#: ../src/widgets/image-menu-item.c:151 +msgid "Image widget" +msgstr "" + +#: ../src/widgets/image-menu-item.c:152 +msgid "Child widget to appear next to the menu text" +msgstr "" + +#: ../src/widgets/image-menu-item.c:167 +msgid "Use stock" +msgstr "" + +#: ../src/widgets/image-menu-item.c:168 +msgid "Whether to use the label text to create a stock menu item" +msgstr "" + +#: ../src/widgets/image-menu-item.c:183 +msgid "Accel Group" +msgstr "" + +#: ../src/widgets/image-menu-item.c:184 +msgid "The Accel Group to use for stock accelerator keys" +msgstr "" + #: ../src/widgets/lpe-toolbar.cpp:233 msgid "Closed" msgstr "" @@ -28124,7 +28235,8 @@ msgstr "" #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 #: ../src/widgets/paintbucket-toolbar.cpp:167 -#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 +#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:530 +#: ../src/widgets/text-toolbar.cpp:1876 msgid "Units" msgstr "" @@ -28168,7 +28280,7 @@ msgstr "" msgid "Compute max length." msgstr "" -#: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1361 +#: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1609 msgid "Font Size" msgstr "" @@ -28871,39 +28983,39 @@ msgstr "" msgid "Make corners sharp" msgstr "" -#: ../src/widgets/ruler.cpp:198 +#: ../src/widgets/ruler.cpp:202 msgid "The orientation of the ruler" msgstr "" -#: ../src/widgets/ruler.cpp:208 +#: ../src/widgets/ruler.cpp:212 msgid "Unit of the ruler" msgstr "" -#: ../src/widgets/ruler.cpp:215 +#: ../src/widgets/ruler.cpp:219 msgid "Lower" msgstr "" -#: ../src/widgets/ruler.cpp:216 +#: ../src/widgets/ruler.cpp:220 msgid "Lower limit of ruler" msgstr "" -#: ../src/widgets/ruler.cpp:225 +#: ../src/widgets/ruler.cpp:229 msgid "Upper" msgstr "" -#: ../src/widgets/ruler.cpp:226 +#: ../src/widgets/ruler.cpp:230 msgid "Upper limit of ruler" msgstr "" -#: ../src/widgets/ruler.cpp:236 +#: ../src/widgets/ruler.cpp:240 msgid "Position of mark on the ruler" msgstr "" -#: ../src/widgets/ruler.cpp:245 +#: ../src/widgets/ruler.cpp:249 msgid "Max Size" msgstr "" -#: ../src/widgets/ruler.cpp:246 +#: ../src/widgets/ruler.cpp:250 msgid "Maximum size of the ruler" msgstr "" @@ -28911,124 +29023,139 @@ msgstr "" msgid "Transform by toolbar" msgstr "" -#: ../src/widgets/select-toolbar.cpp:341 +#: ../src/widgets/select-toolbar.cpp:280 msgid "Now stroke width is scaled when objects are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:343 +#: ../src/widgets/select-toolbar.cpp:282 msgid "Now stroke width is not scaled when objects are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:354 +#: ../src/widgets/select-toolbar.cpp:293 msgid "" "Now rounded rectangle corners are scaled when rectangles are " "scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:356 +#: ../src/widgets/select-toolbar.cpp:295 msgid "" "Now rounded rectangle corners are not scaled when rectangles " "are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:367 +#: ../src/widgets/select-toolbar.cpp:306 msgid "" "Now gradients are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:369 +#: ../src/widgets/select-toolbar.cpp:308 msgid "" "Now gradients remain fixed when objects are transformed " "(moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:380 +#: ../src/widgets/select-toolbar.cpp:319 msgid "" "Now patterns are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:382 +#: ../src/widgets/select-toolbar.cpp:321 msgid "" "Now patterns remain fixed when objects are transformed (moved, " "scaled, rotated, or skewed)." msgstr "" -#. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:500 +#. name +#: ../src/widgets/select-toolbar.cpp:441 msgctxt "Select toolbar" msgid "X position" msgstr "" -#: ../src/widgets/select-toolbar.cpp:500 +#. label +#: ../src/widgets/select-toolbar.cpp:442 msgctxt "Select toolbar" msgid "X:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:502 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:443 +msgctxt "Select toolbar" msgid "Horizontal coordinate of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:506 +#. name +#: ../src/widgets/select-toolbar.cpp:460 msgctxt "Select toolbar" msgid "Y position" msgstr "" -#: ../src/widgets/select-toolbar.cpp:506 +#. label +#: ../src/widgets/select-toolbar.cpp:461 msgctxt "Select toolbar" msgid "Y:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:508 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:462 +msgctxt "Select toolbar" msgid "Vertical coordinate of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:512 +#. name +#: ../src/widgets/select-toolbar.cpp:479 msgctxt "Select toolbar" msgid "Width" msgstr "" -#: ../src/widgets/select-toolbar.cpp:512 +#. label +#: ../src/widgets/select-toolbar.cpp:480 msgctxt "Select toolbar" msgid "W:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:514 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:481 +msgctxt "Select toolbar" msgid "Width of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:521 +#: ../src/widgets/select-toolbar.cpp:499 msgid "Lock width and height" msgstr "" -#: ../src/widgets/select-toolbar.cpp:522 +#: ../src/widgets/select-toolbar.cpp:500 msgid "When locked, change both width and height by the same proportion" msgstr "" -#: ../src/widgets/select-toolbar.cpp:531 +#. name +#: ../src/widgets/select-toolbar.cpp:511 msgctxt "Select toolbar" msgid "Height" msgstr "" -#: ../src/widgets/select-toolbar.cpp:531 +#. label +#: ../src/widgets/select-toolbar.cpp:512 msgctxt "Select toolbar" msgid "H:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:533 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:513 +msgctxt "Select toolbar" msgid "Height of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:583 +#: ../src/widgets/select-toolbar.cpp:575 msgid "Scale rounded corners" msgstr "" -#: ../src/widgets/select-toolbar.cpp:594 +#: ../src/widgets/select-toolbar.cpp:586 msgid "Move gradients" msgstr "" -#: ../src/widgets/select-toolbar.cpp:605 +#: ../src/widgets/select-toolbar.cpp:597 msgid "Move patterns" msgstr "" @@ -29218,10 +29345,6 @@ msgstr "" msgid "Delete sprayed items from selection" msgstr "" -#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253 -msgid "Mode" -msgstr "" - #. Population #: ../src/widgets/spray-toolbar.cpp:408 msgid "(low population)" @@ -29638,465 +29761,469 @@ msgstr "" msgid "Set marker color" msgstr "" -#: ../src/widgets/swatch-selector.cpp:127 +#: ../src/widgets/swatch-selector.cpp:89 msgid "Change swatch color" msgstr "" -#: ../src/widgets/text-toolbar.cpp:173 +#: ../src/widgets/text-toolbar.cpp:179 msgid "Text: Change font family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:239 +#: ../src/widgets/text-toolbar.cpp:245 msgid "Text: Change font size" msgstr "" -#: ../src/widgets/text-toolbar.cpp:275 +#: ../src/widgets/text-toolbar.cpp:281 msgid "Text: Change font style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:353 +#: ../src/widgets/text-toolbar.cpp:359 msgid "Text: Change superscript or subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:496 +#: ../src/widgets/text-toolbar.cpp:502 msgid "Text: Change alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:539 +#: ../src/widgets/text-toolbar.cpp:573 msgid "Text: Change line-height" msgstr "" -#: ../src/widgets/text-toolbar.cpp:587 +#: ../src/widgets/text-toolbar.cpp:728 +msgid "Text: Change line-height unit" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:777 msgid "Text: Change word-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:627 +#: ../src/widgets/text-toolbar.cpp:817 msgid "Text: Change letter-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:665 +#: ../src/widgets/text-toolbar.cpp:855 msgid "Text: Change dx (kern)" msgstr "" -#: ../src/widgets/text-toolbar.cpp:699 +#: ../src/widgets/text-toolbar.cpp:889 msgid "Text: Change dy" msgstr "" -#: ../src/widgets/text-toolbar.cpp:734 +#: ../src/widgets/text-toolbar.cpp:924 msgid "Text: Change rotate" msgstr "" -#: ../src/widgets/text-toolbar.cpp:787 +#: ../src/widgets/text-toolbar.cpp:977 msgid "Text: Change writing mode" msgstr "" -#: ../src/widgets/text-toolbar.cpp:841 +#: ../src/widgets/text-toolbar.cpp:1031 msgid "Text: Change orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1309 +#: ../src/widgets/text-toolbar.cpp:1539 msgid "Font Family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1310 +#: ../src/widgets/text-toolbar.cpp:1540 msgid "Select Font Family (Alt-X to access)" msgstr "" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1320 +#: ../src/widgets/text-toolbar.cpp:1550 msgid "Select all text with this font-family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1324 +#: ../src/widgets/text-toolbar.cpp:1554 msgid "Font not found on system" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1383 +#: ../src/widgets/text-toolbar.cpp:1631 msgid "Font Style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1384 +#: ../src/widgets/text-toolbar.cpp:1632 msgid "Font style" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1401 +#: ../src/widgets/text-toolbar.cpp:1649 msgid "Toggle Superscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1402 +#: ../src/widgets/text-toolbar.cpp:1650 msgid "Toggle superscript" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1414 +#: ../src/widgets/text-toolbar.cpp:1662 msgid "Toggle Subscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1415 +#: ../src/widgets/text-toolbar.cpp:1663 msgid "Toggle subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1456 +#: ../src/widgets/text-toolbar.cpp:1704 msgid "Justify" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1463 +#: ../src/widgets/text-toolbar.cpp:1711 msgid "Alignment" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1464 +#: ../src/widgets/text-toolbar.cpp:1712 msgid "Text alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1739 msgid "Horizontal" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1498 +#: ../src/widgets/text-toolbar.cpp:1746 msgid "Vertical — RL" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1499 +#: ../src/widgets/text-toolbar.cpp:1747 msgid "Vertical text — lines: right to left" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1505 +#: ../src/widgets/text-toolbar.cpp:1753 msgid "Vertical — LR" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1506 +#: ../src/widgets/text-toolbar.cpp:1754 msgid "Vertical text — lines: left to right" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1511 +#: ../src/widgets/text-toolbar.cpp:1759 msgid "Writing mode" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1512 +#: ../src/widgets/text-toolbar.cpp:1760 msgid "Block progression" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1541 +#: ../src/widgets/text-toolbar.cpp:1789 msgid "Auto glyph orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1548 +#: ../src/widgets/text-toolbar.cpp:1796 msgid "Upright" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1549 +#: ../src/widgets/text-toolbar.cpp:1797 msgid "Upright glyph orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1556 +#: ../src/widgets/text-toolbar.cpp:1804 msgid "Sideways" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1557 +#: ../src/widgets/text-toolbar.cpp:1805 msgid "Sideways glyph orientation" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1563 +#: ../src/widgets/text-toolbar.cpp:1811 msgid "Text orientation" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1564 +#: ../src/widgets/text-toolbar.cpp:1812 msgid "Text (glyph) orientation in vertical text." msgstr "" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1588 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Smaller spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1588 ../src/widgets/text-toolbar.cpp:1619 -#: ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1845 ../src/widgets/text-toolbar.cpp:1884 +#: ../src/widgets/text-toolbar.cpp:1915 msgctxt "Text tool" msgid "Normal" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1588 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Larger spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1593 +#: ../src/widgets/text-toolbar.cpp:1850 msgid "Line Height" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1594 +#: ../src/widgets/text-toolbar.cpp:1851 msgid "Line:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1595 +#: ../src/widgets/text-toolbar.cpp:1852 msgid "Spacing between baselines (times font size)" msgstr "" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1619 ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Negative spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1619 ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Positive spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1624 +#: ../src/widgets/text-toolbar.cpp:1889 msgid "Word spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1625 +#: ../src/widgets/text-toolbar.cpp:1890 msgid "Word:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1626 +#: ../src/widgets/text-toolbar.cpp:1891 msgid "Spacing between words (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1655 +#: ../src/widgets/text-toolbar.cpp:1920 msgid "Letter spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1656 +#: ../src/widgets/text-toolbar.cpp:1921 msgid "Letter:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1657 +#: ../src/widgets/text-toolbar.cpp:1922 msgid "Spacing between letters (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1686 +#: ../src/widgets/text-toolbar.cpp:1951 msgid "Kerning" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1687 +#: ../src/widgets/text-toolbar.cpp:1952 msgid "Kern:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1688 +#: ../src/widgets/text-toolbar.cpp:1953 msgid "Horizontal kerning (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1717 +#: ../src/widgets/text-toolbar.cpp:1982 msgid "Vertical Shift" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1718 +#: ../src/widgets/text-toolbar.cpp:1983 msgid "Vert:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1719 +#: ../src/widgets/text-toolbar.cpp:1984 msgid "Vertical shift (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1748 +#: ../src/widgets/text-toolbar.cpp:2013 msgid "Letter rotation" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1749 +#: ../src/widgets/text-toolbar.cpp:2014 msgid "Rot:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1750 +#: ../src/widgets/text-toolbar.cpp:2015 msgid "Character rotation (degrees)" msgstr "" -#: ../src/widgets/toolbox.cpp:184 +#: ../src/widgets/toolbox.cpp:186 msgid "Color/opacity used for color tweaking" msgstr "" -#: ../src/widgets/toolbox.cpp:192 +#: ../src/widgets/toolbox.cpp:194 msgid "Style of new stars" msgstr "" -#: ../src/widgets/toolbox.cpp:194 +#: ../src/widgets/toolbox.cpp:196 msgid "Style of new rectangles" msgstr "" -#: ../src/widgets/toolbox.cpp:196 +#: ../src/widgets/toolbox.cpp:198 msgid "Style of new 3D boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:198 +#: ../src/widgets/toolbox.cpp:200 msgid "Style of new ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:200 +#: ../src/widgets/toolbox.cpp:202 msgid "Style of new spirals" msgstr "" -#: ../src/widgets/toolbox.cpp:202 +#: ../src/widgets/toolbox.cpp:204 msgid "Style of new paths created by Pencil" msgstr "" -#: ../src/widgets/toolbox.cpp:204 +#: ../src/widgets/toolbox.cpp:206 msgid "Style of new paths created by Pen" msgstr "" -#: ../src/widgets/toolbox.cpp:206 +#: ../src/widgets/toolbox.cpp:208 msgid "Style of new calligraphic strokes" msgstr "" -#: ../src/widgets/toolbox.cpp:208 ../src/widgets/toolbox.cpp:210 +#: ../src/widgets/toolbox.cpp:210 ../src/widgets/toolbox.cpp:212 msgid "TBD" msgstr "" -#: ../src/widgets/toolbox.cpp:223 +#: ../src/widgets/toolbox.cpp:225 msgid "Style of Paint Bucket fill objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1735 +#: ../src/widgets/toolbox.cpp:1742 msgid "Bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1735 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1751 msgid "Bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap to edges of a bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1760 msgid "Bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1769 msgid "BBox Edge Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1779 msgid "BBox Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1779 msgid "Snapping centers of bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/widgets/toolbox.cpp:1788 msgid "Snap nodes, paths, and handles" msgstr "" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/toolbox.cpp:1796 msgid "Snap to paths" msgstr "" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1805 msgid "Path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1805 msgid "Snap to path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1814 msgid "To nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1823 msgid "Smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:1825 +#: ../src/widgets/toolbox.cpp:1832 msgid "Line Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1825 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap midpoints of line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/widgets/toolbox.cpp:1841 msgid "Others" msgstr "" -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/widgets/toolbox.cpp:1841 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../src/widgets/toolbox.cpp:1842 +#: ../src/widgets/toolbox.cpp:1849 msgid "Object Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1842 +#: ../src/widgets/toolbox.cpp:1849 msgid "Snap centers of objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1851 +#: ../src/widgets/toolbox.cpp:1858 msgid "Rotation Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1851 +#: ../src/widgets/toolbox.cpp:1858 msgid "Snap an item's rotation center" msgstr "" -#: ../src/widgets/toolbox.cpp:1860 +#: ../src/widgets/toolbox.cpp:1867 msgid "Text baseline" msgstr "" -#: ../src/widgets/toolbox.cpp:1860 +#: ../src/widgets/toolbox.cpp:1867 msgid "Snap text anchors and baselines" msgstr "" -#: ../src/widgets/toolbox.cpp:1870 +#: ../src/widgets/toolbox.cpp:1877 msgid "Page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1870 +#: ../src/widgets/toolbox.cpp:1877 msgid "Snap to the page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1879 +#: ../src/widgets/toolbox.cpp:1886 msgid "Snap to grids" msgstr "" -#: ../src/widgets/toolbox.cpp:1888 +#: ../src/widgets/toolbox.cpp:1895 msgid "Snap guides" msgstr "" @@ -30699,11 +30826,11 @@ msgid "" "No paths where found. Please convert all objects you want to save into paths." msgstr "" -#: ../share/extensions/inkex.py:116 +#: ../share/extensions/inkex.py:117 #, 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://" +"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" @@ -30711,22 +30838,22 @@ msgid "" "%s" msgstr "" -#: ../share/extensions/inkex.py:172 +#: ../share/extensions/inkex.py:185 #, python-format msgid "Unable to open specified file: %s" msgstr "" -#: ../share/extensions/inkex.py:181 +#: ../share/extensions/inkex.py:194 #, python-format msgid "Unable to open object member file: %s" msgstr "" -#: ../share/extensions/inkex.py:286 +#: ../share/extensions/inkex.py:299 #, python-format msgid "No matching node for expression: %s" msgstr "" -#: ../share/extensions/inkex.py:340 +#: ../share/extensions/inkex.py:358 msgid "SVG Width not set correctly! Assuming width = 100" msgstr "" @@ -30932,8 +31059,7 @@ msgid "Area is zero, cannot calculate Center of Mass" msgstr "" #: ../share/extensions/pathalongpath.py:208 -#: ../share/extensions/pathscatter.py:228 -#: ../share/extensions/perspective.py:52 +#: ../share/extensions/pathscatter.py:228 ../share/extensions/perspective.py:52 msgid "This extension requires two selected paths." msgstr "" @@ -30962,36 +31088,31 @@ msgid "" "numpy." msgstr "" -#: ../share/extensions/perspective.py:60 -#: ../share/extensions/summersnight.py:51 +#: ../share/extensions/perspective.py:60 ../share/extensions/summersnight.py:51 #, 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:67 -#: ../share/extensions/summersnight.py:59 +#: ../share/extensions/perspective.py:67 ../share/extensions/summersnight.py:59 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" -#: ../share/extensions/perspective.py:93 -#: ../share/extensions/summersnight.py:92 +#: ../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." msgstr "" -#: ../share/extensions/perspective.py:95 -#: ../share/extensions/summersnight.py:94 +#: ../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." msgstr "" -#: ../share/extensions/perspective.py:98 -#: ../share/extensions/summersnight.py:97 +#: ../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." @@ -31152,7 +31273,7 @@ msgid "" "and install into your Inkscape's Python location\n" msgstr "" -#: ../share/extensions/voronoi2svg.py:198 +#: ../share/extensions/voronoi2svg.py:206 msgid "Please select objects!" msgstr "" @@ -31468,25 +31589,30 @@ msgstr "" msgid "Randomize" msgstr "" -#: ../share/extensions/color_randomize.inx.h:5 +#: ../share/extensions/color_randomize.inx.h:4 #, no-c-format msgid "Hue range (%)" msgstr "" -#: ../share/extensions/color_randomize.inx.h:8 +#: ../share/extensions/color_randomize.inx.h:6 #, no-c-format msgid "Saturation range (%)" msgstr "" -#: ../share/extensions/color_randomize.inx.h:11 +#: ../share/extensions/color_randomize.inx.h:8 #, no-c-format msgid "Lightness range (%)" msgstr "" -#: ../share/extensions/color_randomize.inx.h:13 +#: ../share/extensions/color_randomize.inx.h:10 +#, no-c-format +msgid "Opacity range (%)" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:12 msgid "" -"Converts to HSL, randomizes hue and/or saturation and/or lightness and " -"converts it back to RGB. Lower the range values to limit the distance " +"Randomizes hue, saturation, lightness and/or opacity (opacity randomization " +"only for objects and groups). Change the range values to limit the distance " "between the original color and the randomized one." msgstr "" @@ -32582,6 +32708,7 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:29 #: ../share/extensions/gcodetools_lathe.inx.h:30 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +#: ../share/extensions/nicechart.inx.h:4 msgid "File:" msgstr "" @@ -33546,28 +33673,24 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 -#: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/hpgl_output.inx.h:4 ../share/extensions/plotter.inx.h:32 msgid "Resolution X (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:4 -#: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/hpgl_output.inx.h:5 ../share/extensions/plotter.inx.h:33 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:34 +#: ../share/extensions/hpgl_output.inx.h:6 ../share/extensions/plotter.inx.h:34 msgid "Resolution Y (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:6 -#: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/hpgl_output.inx.h:7 ../share/extensions/plotter.inx.h:35 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -33601,18 +33724,15 @@ msgid "" "serial connection." msgstr "" -#: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/hpgl_output.inx.h:3 ../share/extensions/plotter.inx.h:31 msgid "Plotter Settings " msgstr "" -#: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/hpgl_output.inx.h:8 ../share/extensions/plotter.inx.h:36 msgid "Pen number:" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/hpgl_output.inx.h:9 ../share/extensions/plotter.inx.h:37 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" @@ -33933,13 +34053,11 @@ msgstr "" msgid "Interpolate style" msgstr "" -#: ../share/extensions/interp.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:10 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/interp_att_g.inx.h:10 msgid "Use Z-order" msgstr "" -#: ../share/extensions/interp.inx.h:8 -#: ../share/extensions/interp_att_g.inx.h:11 +#: ../share/extensions/interp.inx.h:8 ../share/extensions/interp_att_g.inx.h:11 msgid "Workaround for reversed selection order in Live Preview cycles" msgstr "" @@ -34888,6 +35006,154 @@ msgstr "" msgid "View Next Glyph" msgstr "" +#: ../share/extensions/nicechart.inx.h:1 +msgid "NiceCharts" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:2 +msgid "Data" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:3 +msgid "Data from file" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:5 +msgid "Delimiter:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:6 +msgid "Column that contains the keys:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:7 +msgid "Column that contains the values:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:8 +msgid "File encoding (e.g. utf-8):" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:9 +msgid "First line contains headings" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:10 +msgid "Direct input" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:11 +msgid "Data:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:12 +msgid "Enter the full path to a CSV file:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:13 +msgid "Type in comma separated values:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:14 +msgid "(format like this: apples:3,bananas:5)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:15 +msgid "Labels" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:16 +msgid "Font:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:18 +msgid "Font color:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:19 +msgid "Charts" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:20 +msgid "Draw horizontally" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:21 +msgid "Bar length:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:22 +msgid "Bar width:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:23 +msgid "Pie radius:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:24 +msgid "Bar offset:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:26 +msgid "Offset between chart and labels:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:27 +msgid "Offset between chart and chart title:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:28 +msgid "Work around aliasing effects (creates overlapping segments)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:29 +msgid "Color scheme:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:30 +msgid "Custom colors:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:31 +msgid "Reverse color scheme" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:32 +msgid "Drop shadow" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:37 +msgid "SAP" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:38 +msgid "Values" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:39 +msgid "Show values" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:40 +msgid "Chart type:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:41 +msgid "Bar chart" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:42 +msgid "Pie chart" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:43 +msgid "Pie chart (percentage)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:44 +msgid "Stacked bar chart" +msgstr "" + #: ../share/extensions/param_curves.inx.h:1 msgid "Parametric Curves" msgstr "" @@ -35271,8 +35537,7 @@ msgstr "" msgid "AutoCAD Plot Input" msgstr "" -#: ../share/extensions/plt_input.inx.h:2 -#: ../share/extensions/plt_output.inx.h:2 +#: ../share/extensions/plt_input.inx.h:2 ../share/extensions/plt_output.inx.h:2 msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" msgstr "" @@ -36190,8 +36455,7 @@ msgstr "" msgid "sK1 vector graphics files input" msgstr "" -#: ../share/extensions/sk1_input.inx.h:2 -#: ../share/extensions/sk1_output.inx.h:2 +#: ../share/extensions/sk1_input.inx.h:2 ../share/extensions/sk1_output.inx.h:2 msgid "sK1 vector graphics files (*.sk1)" msgstr "" @@ -36668,22 +36932,42 @@ msgid "Show the bounding box" msgstr "" #: ../share/extensions/voronoi2svg.inx.h:6 -msgid "Delaunay Triangulation" +msgid "Triangles color" msgstr "" #: ../share/extensions/voronoi2svg.inx.h:7 -msgid "Voronoi and Delaunay" +msgid "Delaunay Triangulation" msgstr "" #: ../share/extensions/voronoi2svg.inx.h:8 +msgid "Voronoi and Delaunay" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:9 msgid "Options for Voronoi diagram" msgstr "" -#: ../share/extensions/voronoi2svg.inx.h:10 +#: ../share/extensions/voronoi2svg.inx.h:11 msgid "Automatic from selected objects" msgstr "" #: ../share/extensions/voronoi2svg.inx.h:12 +msgid "Options for Delaunay Triangulation" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Default (Stroke black and no fill)" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:14 +msgid "Triangles with item color" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:15 +msgid "Triangles with item color (random on apply)" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:17 msgid "" "Select a set of objects. Their centroids will be used as the sites of the " "Voronoi diagram. Text objects are not handled." @@ -37088,13 +37372,11 @@ msgstr "" msgid "Hide lines behind the sphere" msgstr "" -#: ../share/extensions/wmf_input.inx.h:1 -#: ../share/extensions/wmf_output.inx.h:1 +#: ../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 +#: ../share/extensions/wmf_input.inx.h:3 ../share/extensions/wmf_output.inx.h:3 msgid "A popular graphics file format for clipart" msgstr "" -- cgit v1.2.3 From add4c0a5a08febba27f376ee2649ce766a551b1c Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sat, 14 May 2016 22:31:37 +0200 Subject: Fixing build.xml file after Python update in the devlibs. (bzr r14886) --- build.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.xml b/build.xml index 2589eb103..498b2ecfc 100644 --- a/build.xml +++ b/build.xml @@ -761,12 +761,12 @@ - + - + -- cgit v1.2.3 From 424f8f6d1fd8e77e948edbe9fe9a712b75ec5385 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 15 May 2016 10:21:07 +0200 Subject: GTK3: Fix compile for GTK3 versions less than 3.16. (bzr r14887) --- src/main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 99e3ccfe6..4ce8ff145 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1068,10 +1068,12 @@ sp_main_gui(int argc, char const **argv) try { provider->load_from_path (inkscape_style); } +#if GTK_CHECK_VERSION(3,16,0) catch (const Gtk::CssProviderError& ex) { std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style << "\n (" << ex.what() << ")" << std::endl; } +#endif Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); @@ -1080,8 +1082,10 @@ sp_main_gui(int argc, char const **argv) try { provider2->load_from_path (user_style); } +#if GTK_CHECK_VERSION(3,16,0) catch (const Gtk::CssProviderError& ex) {} +#endif Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif -- cgit v1.2.3 From 3af39402688bbb3c73b5e74161a3297cb4ccbe6f Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Sun, 15 May 2016 11:07:00 -0400 Subject: modify build files for COPYING.LIB->LGPL2.1.txt, as per http://article.gmane.org/gmane.comp.graphics.inkscape.devel/48212 (bzr r14888) --- build-lx.xml | 2 +- build-x64-gtk3.xml | 2 +- build-x64.xml | 2 +- build.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build-lx.xml b/build-lx.xml index f00b4551e..c62b836b6 100644 --- a/build-lx.xml +++ b/build-lx.xml @@ -435,7 +435,7 @@ - + diff --git a/build-x64-gtk3.xml b/build-x64-gtk3.xml index ffea1a848..edc15305f 100644 --- a/build-x64-gtk3.xml +++ b/build-x64-gtk3.xml @@ -685,7 +685,7 @@ - + diff --git a/build-x64.xml b/build-x64.xml index 35373a5c9..509d5bbb5 100644 --- a/build-x64.xml +++ b/build-x64.xml @@ -671,7 +671,7 @@ - + diff --git a/build.xml b/build.xml index 498b2ecfc..186af2cde 100644 --- a/build.xml +++ b/build.xml @@ -652,7 +652,7 @@ - + -- cgit v1.2.3 From b24b02a0474d6bdaba2e5a77fe91e285217abccd Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sun, 15 May 2016 21:47:09 +0200 Subject: Added normalized path to flowtext Fixed bugs: - https://launchpad.net/bugs/1555152 (bzr r14889) --- src/sp-flowtext.h | 5 +++++ src/splivarot.cpp | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sp-flowtext.h b/src/sp-flowtext.h index 9e6046469..9ee676893 100644 --- a/src/sp-flowtext.h +++ b/src/sp-flowtext.h @@ -49,6 +49,11 @@ public: bool _optimizeScaledText; + /** Converts the text object to its component curves */ + SPCurve *getNormalizedBpath() const { + return layout.convertToCurves(); + } + /** Optimize scaled flow text on next set_transform. */ void optimizeScaledText() {_optimizeScaledText = true;} diff --git a/src/splivarot.cpp b/src/splivarot.cpp index c37df151c..1bc6da3e1 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -1776,11 +1776,14 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) SPItem *item = *l; SPCurve *curve = NULL; - if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) + if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) continue; else if (SP_IS_SHAPE(item)) { curve = SP_SHAPE(item)->getCurve(); } + else if (SP_IS_FLOWTEXT(item)) { + curve = SP_FLOWTEXT(item)->getNormalizedBpath(); + } else { // Item must be SP_TEXT curve = SP_TEXT(item)->getNormalizedBpath(); } -- cgit v1.2.3 From fa0599a0d660f2eadfb563d16750dafdbfdb584d Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 15 May 2016 22:14:30 +0200 Subject: GTK3: Give names to many widgets. Useful for debugging and for using CSS. (bzr r14890) --- src/ui/widget/dock.cpp | 1 + src/widgets/desktop-widget.cpp | 39 +++++++++++++++++++++++++++++---------- src/widgets/toolbox.cpp | 5 +++++ 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp index c5e14d4f0..fda647182 100644 --- a/src/ui/widget/dock.cpp +++ b/src/ui/widget/dock.cpp @@ -56,6 +56,7 @@ Dock::Dock(Gtk::Orientation orientation) #endif _scrolled_window (Gtk::manage(new Gtk::ScrolledWindow)) { + _scrolled_window->set_name("Dock"); #if WITH_GDL_3_6 gtk_orientable_set_orientation(GTK_ORIENTABLE(_gdl_dock_bar), static_cast(orientation)); diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 1a4fcccf4..4bd32daca 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -346,6 +346,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) /* Main table */ #if GTK_CHECK_VERSION(3,0,0) dtw->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_set_name(dtw->vbox, "DesktopMainTable"); #else dtw->vbox = gtk_vbox_new (FALSE, 0); #endif @@ -353,6 +354,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) dtw->statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_set_name(dtw->statusbar, "DesktopStatusBar"); #else dtw->statusbar = gtk_hbox_new (FALSE, 0); #endif @@ -364,7 +366,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->panels = new SwatchesPanel("/embedded/swatches" /*false*/); dtw->panels->setOrientation(SP_ANCHOR_SOUTH); - + dtw->panels->set_name("SwatchesPanel"); #if GTK_CHECK_VERSION(3,0,0) dtw->panels->set_vexpand(false); #endif @@ -374,6 +376,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) dtw->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_set_name(dtw->hbox, "DesktopHbox"); #else dtw->hbox = gtk_hbox_new(FALSE, 0); #endif @@ -404,7 +407,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Glib::RefPtr guides_lock_style_provider = Gtk::CssProvider::create(); guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }"); Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock); - wnd->set_name("guides_lock"); + wnd->set_name("LockGuides"); Glib::RefPtr context = wnd->get_style_context(); context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif @@ -412,6 +415,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) /* Horizontal ruler */ GtkWidget *eventbox = gtk_event_box_new (); dtw->hruler = sp_ruler_new(GTK_ORIENTATION_HORIZONTAL); + gtk_widget_set_name(dtw->hruler, "HorizontalRuler"); dtw->hruler_box = eventbox; Inkscape::Util::Unit const *pt = unit_table.getUnit("pt"); sp_ruler_set_unit(SP_RULER(dtw->hruler), pt); @@ -422,13 +426,15 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw); #if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tbl = gtk_grid_new(); + GtkWidget *tbl_wrapper = gtk_grid_new(); // Is this widget really needed? + gtk_widget_set_name(tbl_wrapper, "CanvasTableWrapper"); dtw->canvas_tbl = gtk_grid_new(); + gtk_widget_set_name(dtw->canvas_tbl, "CanvasTable"); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->guides_lock, 0, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 1, 0, 1, 1); #else - GtkWidget *tbl = gtk_table_new(2, 3, FALSE); + GtkWidget *tbl_wrapper = gtk_table_new(2, 3, FALSE); dtw->canvas_tbl = gtk_table_new(3, 3, FALSE); gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), @@ -443,11 +449,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) 0, 0); #endif g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw); - gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl, TRUE, TRUE, 1 ); + gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl_wrapper, TRUE, TRUE, 1 ); /* Vertical ruler */ eventbox = gtk_event_box_new (); dtw->vruler = sp_ruler_new(GTK_ORIENTATION_VERTICAL); + gtk_widget_set_name(dtw->vruler, "VerticalRuler"); /* Vertical ruler */ dtw->vruler_box = eventbox; @@ -477,6 +484,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj)); + gtk_widget_set_name(dtw->hscrollbar, "HorizontalScrollbar"); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 1, 1); dtw->vscrollbar_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); #else @@ -493,6 +501,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) NULL, INKSCAPE_ICON("zoom-original"), _("Zoom drawing if window size changes")); + gtk_widget_set_name(dtw->sticky_zoom, "StickyZoom"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dtw->sticky_zoom), prefs->getBool("/options/stickyzoom/value")); gtk_box_pack_start (GTK_BOX (dtw->vscrollbar_box), dtw->sticky_zoom, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (dtw->sticky_zoom), "toggled", G_CALLBACK (sp_dtw_sticky_zoom_toggled), dtw); @@ -502,6 +511,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) dtw->vscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT(dtw->vadj)); + gtk_widget_set_name(dtw->vscrollbar, "VerticalScrollbar"); #else dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj)); #endif @@ -529,6 +539,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) NULL, INKSCAPE_ICON("color-management"), tip ); + gtk_widget_set_name(dtw->cms_adjust, "CMS_Adjust"); + #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) { Glib::ustring current = prefs->getString("/options/displayprofile/uri"); @@ -608,9 +620,9 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) if (create_dock) { dtw->dock = new Inkscape::UI::Widget::Dock(); - #if WITH_GTKMM_3_0 Gtk::Paned *paned = new Gtk::Paned(); + paned->set_name("Canvas_and_Dock"); #else Gtk::HPaned *paned = new Gtk::HPaned(); #endif @@ -627,9 +639,9 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(GTK_WIDGET(paned->gobj()), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(paned->gobj()), TRUE); - gtk_grid_attach(GTK_GRID(tbl), GTK_WIDGET (paned->gobj()), 1, 1, 1, 1); + gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 1, 1, 1); #else - gtk_table_attach (GTK_TABLE (tbl), GTK_WIDGET (paned->gobj()), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), + gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); #endif @@ -637,9 +649,9 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE); - gtk_grid_attach(GTK_GRID(tbl), GTK_WIDGET (dtw->canvas_tbl), 1, 1, 1, 1); + gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 1, 1, 1); #else - gtk_table_attach (GTK_TABLE (tbl), GTK_WIDGET (dtw->canvas_tbl), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), + gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); #endif } @@ -661,10 +673,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) g_signal_connect (G_OBJECT (dtw->vadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); GtkWidget *statusbar_tail=gtk_statusbar_new(); + gtk_widget_set_name(statusbar_tail, "StatusBarTail"); gtk_box_pack_end (GTK_BOX (dtw->statusbar), statusbar_tail, FALSE, FALSE, 0); // zoom status spinbutton dtw->zoom_status = gtk_spin_button_new_with_range (log(SP_DESKTOP_ZOOM_MIN)/log(2), log(SP_DESKTOP_ZOOM_MAX)/log(2), 0.1); + gtk_widget_set_name(dtw->zoom_status, "ZoomStatus"); gtk_widget_set_tooltip_text (dtw->zoom_status, _("Zoom")); gtk_widget_set_size_request (dtw->zoom_status, STATUS_ZOOM_WIDTH, -1); gtk_entry_set_width_chars (GTK_ENTRY (dtw->zoom_status), 6); @@ -681,6 +695,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // cursor coordinates #if GTK_CHECK_VERSION(3,0,0) dtw->coord_status = gtk_grid_new(); + gtk_widget_set_name(dtw->coord_status, "CoordinateStatus"); gtk_grid_set_row_spacing(GTK_GRID(dtw->coord_status), 0); gtk_grid_set_column_spacing(GTK_GRID(dtw->coord_status), 2); GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL); @@ -721,6 +736,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_label_set_markup( GTK_LABEL(dtw->coord_status_y), " 0.00 " ); GtkWidget* label_z = gtk_label_new(_("Z:")); + gtk_widget_set_name(label_z, "ZLabel"); #if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(dtw->coord_status_x, GTK_ALIGN_END); @@ -762,6 +778,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) g_signal_connect( G_OBJECT(dtw->_tracker), "changed", G_CALLBACK(sp_dtw_color_profile_event), dtw ); dtw->select_status_eventbox = gtk_event_box_new (); + gtk_widget_set_name(dtw->select_status_eventbox, "SelectStatusEventBox"); dtw->select_status = gtk_label_new (NULL); gtk_label_set_ellipsize (GTK_LABEL(dtw->select_status), PANGO_ELLIPSIZE_END); @@ -1453,6 +1470,7 @@ bool SPDesktopWidget::showInfoDialog( Glib::ustring const &message ) GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", message.c_str()); + gtk_widget_set_name(dialog, "InfoDialog"); gtk_window_set_title( GTK_WINDOW(dialog), _("Note:")); // probably want to take this as a parameter. gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -1765,6 +1783,7 @@ SPDesktopWidget* SPDesktopWidget::createInstance(SPNamedView *namedview) dtw->layer_selector->setDesktop(dtw->desktop); dtw->menubar = sp_ui_main_menubar (dtw->desktop); + gtk_widget_set_name(dtw->menubar, "MenuBar"); gtk_widget_show_all (dtw->menubar); gtk_box_pack_start (GTK_BOX (dtw->vbox), dtw->menubar, FALSE, FALSE, 0); diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 0697ff0fb..6c3997657 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -999,6 +999,7 @@ static GtkWidget* toolboxNewCommon( GtkWidget* tb, BarId id, GtkPositionType /*h gtk_widget_set_sensitive(tb, FALSE); GtkWidget *hb = gtk_event_box_new(); // A simple, neutral container. + gtk_widget_set_name(hb, "ToolboxCommon"); gtk_container_add(GTK_CONTAINER(hb), tb); gtk_widget_show(GTK_WIDGET(tb)); @@ -1016,6 +1017,7 @@ GtkWidget *ToolboxFactory::createToolToolbox() { #if GTK_CHECK_VERSION(3,0,0) GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_set_name(tb, "ToolToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); #else GtkWidget *tb = gtk_vbox_new(FALSE, 0); @@ -1028,6 +1030,7 @@ GtkWidget *ToolboxFactory::createAuxToolbox() { #if GTK_CHECK_VERSION(3,0,0) GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_set_name(tb, "AuxToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); #else GtkWidget *tb = gtk_vbox_new(FALSE, 0); @@ -1044,6 +1047,7 @@ GtkWidget *ToolboxFactory::createCommandsToolbox() { #if GTK_CHECK_VERSION(3,0,0) GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_set_name(tb, "CommandsToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); #else GtkWidget *tb = gtk_vbox_new(FALSE, 0); @@ -1056,6 +1060,7 @@ GtkWidget *ToolboxFactory::createSnapToolbox() { #if GTK_CHECK_VERSION(3,0,0) GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_set_name(tb, "SnapToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); #else GtkWidget *tb = gtk_vbox_new(FALSE, 0); -- cgit v1.2.3 From 1984f31c4efcc8be0cdd90a9eb7cc4882890f3cd Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 16 May 2016 12:35:28 +0200 Subject: GTK3: Fix compile for GTK3 versions less than 3.16. Try 2. (bzr r14891) --- src/main.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4ce8ff145..07d970d59 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1065,28 +1065,39 @@ sp_main_gui(int argc, char const **argv) inkscape_style += "/style.css"; // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl; Glib::RefPtr provider = Gtk::CssProvider::create(); + + // From 3.16, throws an error which we must catch. try { provider->load_from_path (inkscape_style); } #if GTK_CHECK_VERSION(3,16,0) + // Gtk::CssProviderError not defined until 3.16. catch (const Gtk::CssProviderError& ex) { std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style << "\n (" << ex.what() << ")" << std::endl; } +#else + catch (...) + {} #endif + provider->load_from_path (inkscape_style); + Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); // std::cout << "CSS Stylesheet User: " << user_style << std::endl; Glib::RefPtr provider2 = Gtk::CssProvider::create(); + + // From 3.16, throws an error which we must catch. try { provider2->load_from_path (user_style); } -#if GTK_CHECK_VERSION(3,16,0) - catch (const Gtk::CssProviderError& ex) + catch (...) {} -#endif + provider2->load_from_path (user_style); + Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + #endif gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); -- cgit v1.2.3 From af7395f396e12ad136af68dee514bbe362cdf101 Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Mon, 16 May 2016 07:02:58 -0400 Subject: copy files GPL2.txt and GPL3.txt (bzr r14892) --- build-lx.xml | 2 ++ build-x64-gtk3.xml | 2 ++ build-x64.xml | 2 ++ build.xml | 2 ++ 4 files changed, 8 insertions(+) diff --git a/build-lx.xml b/build-lx.xml index c62b836b6..5bc10da39 100644 --- a/build-lx.xml +++ b/build-lx.xml @@ -435,6 +435,8 @@ + + diff --git a/build-x64-gtk3.xml b/build-x64-gtk3.xml index edc15305f..c9f6db905 100644 --- a/build-x64-gtk3.xml +++ b/build-x64-gtk3.xml @@ -685,6 +685,8 @@ + + diff --git a/build-x64.xml b/build-x64.xml index 509d5bbb5..b83e5137e 100644 --- a/build-x64.xml +++ b/build-x64.xml @@ -671,6 +671,8 @@ + + diff --git a/build.xml b/build.xml index 186af2cde..0485365d3 100644 --- a/build.xml +++ b/build.xml @@ -652,6 +652,8 @@ + + -- cgit v1.2.3 From 13368e189e2189c9dff0b5cc11fff4acdf90ba54 Mon Sep 17 00:00:00 2001 From: TimeWaster Date: Mon, 16 May 2016 16:26:25 +0200 Subject: Extensions: Corrected pySerial download information in plotting extension (bzr r14893) --- share/extensions/plotter.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/share/extensions/plotter.py b/share/extensions/plotter.py index 60858cc6c..1c4a683c1 100755 --- a/share/extensions/plotter.py +++ b/share/extensions/plotter.py @@ -144,10 +144,12 @@ class Plot(inkex.Effect): try: import serial except ImportError, e: - inkex.errormsg(_("pySerial is not installed." - + "\n\n1. Download pySerial here (not the \".exe\"!): http://pypi.python.org/pypi/pyserial" - + "\n2. Extract the \"serial\" subfolder from the zip to the following folder: C:\\[Program files]\\inkscape\\python\\Lib\\" - + "\n3. Restart Inkscape.")) + inkex.errormsg(_("pySerial is not installed. Please follow these steps:") + + "\n\n" + _("1. Download and extract (unzip) this file to your local harddisk:") + + "\n" + " https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz" + + "\n" + _("2. Copy the \"serial\" folder (Can be found inside the just extracted folder)") + + "\n" + _(" into the following Inkscape folder: C:\\\\inkscape\\python\\Lib\\") + + "\n" + _("3. Close and restart Inkscape.")) return # init serial framework mySerial = serial.Serial() -- cgit v1.2.3 From f93510e1fdca73da2e7755a5c2a40341e9355830 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 16 May 2016 16:40:00 +0200 Subject: UI. Fixing typos in original strings. Translations. PO template update. (bzr r14894) --- po/inkscape.pot | 18 +++++++----------- src/live_effects/lpe-mirror_symmetry.cpp | 2 +- src/ui/dialog/inkscape-preferences.cpp | 4 ++-- src/widgets/eraser-toolbar.cpp | 4 ++-- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/po/inkscape.pot b/po/inkscape.pot index 988d77c9f..76ce4fa0b 100644 --- a/po/inkscape.pot +++ b/po/inkscape.pot @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-05-13 22:07+0200\n" +"POT-Creation-Date: 2016-05-16 16:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -10298,7 +10298,7 @@ msgid "Fuse original and the reflection into a single path" msgstr "" #: ../src/live_effects/lpe-mirror_symmetry.cpp:75 -msgid "Oposite fuse" +msgid "Opposite fuse" msgstr "" #: ../src/live_effects/lpe-mirror_symmetry.cpp:75 @@ -11695,7 +11695,7 @@ msgstr "" msgid "Start Inkscape in interactive shell mode." msgstr "" -#: ../src/main.cpp:876 ../src/main.cpp:1318 +#: ../src/main.cpp:876 ../src/main.cpp:1322 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -17128,11 +17128,11 @@ msgid "Base simplify:" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:213 -msgid "on dinamic LPE simplify" +msgid "on dynamic LPE simplify" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:214 -msgid "Base simplify of dinamic LPE based simplify" +msgid "Base simplify of dynamic LPE based simplify" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:229 @@ -27872,12 +27872,8 @@ msgstr "" msgid "Increase to make the eraser drag behind, as if slowed by inertia" msgstr "" -#: ../src/widgets/eraser-toolbar.cpp:186 -msgid "Break appart cutted items" -msgstr "" - -#: ../src/widgets/eraser-toolbar.cpp:187 -msgid "Break appart cutted itemss" +#: ../src/widgets/eraser-toolbar.cpp:186 ../src/widgets/eraser-toolbar.cpp:187 +msgid "Break apart cut items" msgstr "" #: ../src/widgets/fill-style.cpp:356 diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 88fee4c47..9f3070ff4 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -72,7 +72,7 @@ LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : mode(_("Mode"), _("Symmetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), fuse_paths(_("Fuse paths"), _("Fuse original and the reflection into a single path"), "fuse_paths", &wr, this, false), - oposite_fuse(_("Oposite fuse"), _("Picks the other side of the mirror as the original"), "oposite_fuse", &wr, this, false), + oposite_fuse(_("Opposite fuse"), _("Picks the other side of the mirror as the original"), "oposite_fuse", &wr, this, false), start_point(_("Start mirror line"), _("Start mirror line"), "start_point", &wr, this, "Adjust the start of mirroring"), end_point(_("End mirror line"), _("End mirror line"), "end_point", &wr, this, "Adjust end of mirroring") { diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index c7a168dee..30bbd95c9 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -210,8 +210,8 @@ void InkscapePreferences::AddBaseSimplifySpinbutton(DialogPage &p, Glib::ustring { PrefSpinButton* sb = Gtk::manage( new PrefSpinButton); sb->init ( prefs_path + "/base-simplify", 0.0, 100.0, 1.0, 10.0, def_value, false, false); - p.add_line( false, _("Base simplify:"), *sb, _("on dinamic LPE simplify"), - _("Base simplify of dinamic LPE based simplify"), + p.add_line( false, _("Base simplify:"), *sb, _("on dynamic LPE simplify"), + _("Base simplify of dynamic LPE based simplify"), false ); } diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 45989936f..bb553f4e6 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -183,8 +183,8 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb /* Overlap */ { InkToggleAction* act = ink_toggle_action_new( "EraserBreakAppart", - _("Break appart cutted items"), - _("Break appart cutted itemss"), + _("Break apart cut items"), + _("Break apart cut items"), INKSCAPE_ICON("distribute-randomize"), secondarySize ); gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/eraser/break_apart", false) ); -- cgit v1.2.3 From 157c71ad98aa683fed72e9a82e6fc7d2df04df39 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Mon, 16 May 2016 16:42:23 +0200 Subject: Translations. Ukrainian translation update. Fixed bugs: - https://launchpad.net/bugs/1407331 (bzr r14895) --- po/uk.po | 6486 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 3614 insertions(+), 2872 deletions(-) diff --git a/po/uk.po b/po/uk.po index 9ab3fbdc5..4f7751c08 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,13 +7,13 @@ # Yuri Syrota , 2000. # Maxim Dziumanenko , 2004-2007. # Alex , 2005. -# Yuri Chornoivan , 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015. +# Yuri Chornoivan , 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: uk\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-12-26 15:46+0200\n" -"PO-Revision-Date: 2015-12-26 19:16+0200\n" +"POT-Creation-Date: 2016-05-14 17:02+0300\n" +"PO-Revision-Date: 2016-05-14 22:34+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -24,14 +24,46 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.5\n" -#: ../inkscape.desktop.in.h:1 +#: ../inkscape.appdata.xml.in.h:1 ../inkscape.desktop.in.h:1 msgid "Inkscape" msgstr "Inkscape" -#: ../inkscape.desktop.in.h:2 +#: ../inkscape.appdata.xml.in.h:2 ../inkscape.desktop.in.h:2 msgid "Vector Graphics Editor" msgstr "Редактор векторної графіки" +#: ../inkscape.appdata.xml.in.h:3 +msgid "" +"An Open Source vector graphics editor, with capabilities similar to " +"Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector " +"Graphics (SVG) file format." +msgstr "" +"Засіб для редагування векторної графіки із відкритим кодом. Можливості " +"програми подібні до можливостей Illustrator, CorelDraw або Xara X. Для " +"зберігання даних у програмі використано стандарт W3C для формату файлів " +"масштабованої векторної графіки (SVG)." + +#: ../inkscape.appdata.xml.in.h:4 +msgid "" +"Inkscape supports many advanced SVG features (markers, clones, alpha " +"blending, etc.) and great care is taken in designing a streamlined " +"interface. It is very easy to edit nodes, perform complex path operations, " +"trace bitmaps and much more. We also aim to maintain a thriving user and " +"developer community by using open, community-oriented development." +msgstr "" +"У Inkscape передбачено підтримку багатьох складних можливостей SVG (маркерів, " +"клонів, накладань із прозорістю тощо) та приділено значну увагу створенню " +"якомога простішого інтерфейсу. За допомогою цієї програми дуже просто " +"редагувати розташування вузлів контуру, виконувати складні дії з контуром, " +"перетворювати растрові зображення на векторні (трасувати зображення) тощо. " +"Супровід програми здійснюється зацікавленою у цьому спільнотою користувачів " +"та розробників на основі принципів відкритої розробки із орієнтацією на " +"потреби спільноти." + +#: ../inkscape.appdata.xml.in.h:5 +msgid "Main application window" +msgstr "Основне вікно програми" + #: ../inkscape.desktop.in.h:3 msgid "Inkscape Vector Graphics Editor" msgstr "Редактор векторної графіки Inkscape" @@ -305,7 +337,7 @@ msgstr "Імітувати малювання олійною фарбою" #. Pencil #: ../share/filters/filters.svg.h:78 -#: ../src/ui/dialog/inkscape-preferences.cpp:424 +#: ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Pencil" msgstr "Олівець" @@ -1111,7 +1143,7 @@ msgstr "Чорне світло" #: ../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_randomize.inx.h:13 #: ../share/extensions/color_removeblue.inx.h:2 #: ../share/extensions/color_removegreen.inx.h:2 #: ../share/extensions/color_removered.inx.h:2 @@ -4465,7 +4497,7 @@ msgstr "типографічне полотно з напрямними" #. 3D box #: ../src/box3d.cpp:255 ../src/box3d.cpp:1309 -#: ../src/ui/dialog/inkscape-preferences.cpp:407 +#: ../src/ui/dialog/inkscape-preferences.cpp:416 msgid "3D Box" msgstr "Просторовий об'єкт" @@ -4503,21 +4535,21 @@ msgstr "Створити напрямну" msgid "Move guide" msgstr "Пересунути напрямну" -#: ../src/desktop-events.cpp:507 ../src/desktop-events.cpp:572 +#: ../src/desktop-events.cpp:507 ../src/desktop-events.cpp:567 #: ../src/ui/dialog/guides.cpp:147 msgid "Delete guide" msgstr "Вилучити напрямну" -#: ../src/desktop-events.cpp:552 +#: ../src/desktop-events.cpp:547 #, c-format msgid "Guideline: %s" msgstr "Напрямна: %s" -#: ../src/desktop.cpp:875 +#: ../src/desktop.cpp:870 msgid "No previous zoom." msgstr "Немає попереднього масштабу." -#: ../src/desktop.cpp:896 +#: ../src/desktop.cpp:891 msgid "No next zoom." msgstr "Немає наступного масштабу." @@ -4530,8 +4562,8 @@ msgid "_Origin X:" msgstr "_Початок за X:" #: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 -#: ../src/ui/dialog/inkscape-preferences.cpp:780 -#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "X coordinate of grid origin" msgstr "Координата X початку сітки" @@ -4540,8 +4572,8 @@ msgid "O_rigin Y:" msgstr "П_очаток по Y:" #: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 -#: ../src/ui/dialog/inkscape-preferences.cpp:806 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Y coordinate of grid origin" msgstr "Координата Y початку сітки" @@ -4550,29 +4582,29 @@ msgid "Spacing _Y:" msgstr "Інтервал за _Y:" #: ../src/display/canvas-axonomgrid.cpp:365 -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Base length of z-axis" msgstr "Базова довжина вісі z" #: ../src/display/canvas-axonomgrid.cpp:368 -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Кут X:" #: ../src/display/canvas-axonomgrid.cpp:368 -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Angle of x-axis" msgstr "Кут вісі x" #: ../src/display/canvas-axonomgrid.cpp:370 -#: ../src/ui/dialog/inkscape-preferences.cpp:813 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Кут Z:" #: ../src/display/canvas-axonomgrid.cpp:370 -#: ../src/ui/dialog/inkscape-preferences.cpp:813 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 msgid "Angle of z-axis" msgstr "Кут вісі z" @@ -4581,7 +4613,7 @@ msgid "Minor grid line _color:" msgstr "Колір _другорядної лінії сітки:" #: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 -#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Minor grid line color" msgstr "Колір другорядних ліній сітки" @@ -4594,7 +4626,7 @@ msgid "Ma_jor grid line color:" msgstr "Колір о_сновної лінії сітки:" #: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Major grid line color" msgstr "Колір основних ліній сітки" @@ -4663,12 +4695,12 @@ msgid "Spacing _X:" msgstr "Інтервал за _X:" #: ../src/display/canvas-grid.cpp:705 -#: ../src/ui/dialog/inkscape-preferences.cpp:786 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Distance between vertical grid lines" msgstr "Відстань між вертикальними лініями сітки" #: ../src/display/canvas-grid.cpp:708 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 msgid "Distance between horizontal grid lines" msgstr "Відстань між горизонтальними лініями сітки" @@ -4886,21 +4918,21 @@ msgstr "Кратність проміжку між лініями сітки" msgid " to " msgstr " у " -#: ../src/document.cpp:528 +#: ../src/document.cpp:531 #, c-format msgid "New document %d" msgstr "Новий документ %d" -#: ../src/document.cpp:533 +#: ../src/document.cpp:536 #, c-format msgid "Memory document %d" msgstr "Документ у пам'яті %d" -#: ../src/document.cpp:562 +#: ../src/document.cpp:565 msgid "Memory document %1" msgstr "Документ у пам'яті %1" -#: ../src/document.cpp:870 +#: ../src/document.cpp:873 #, c-format msgid "Unnamed document %d" msgstr "Документ без назви %d" @@ -4910,31 +4942,31 @@ msgid "[Unchanged]" msgstr "(Не змінено)" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2463 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2460 msgid "_Undo" msgstr "В_ернути" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2465 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2462 msgid "_Redo" msgstr "Повт_орити" -#: ../src/extension/dependency.cpp:243 +#: ../src/extension/dependency.cpp:255 msgid "Dependency:" msgstr "Залежність:" -#: ../src/extension/dependency.cpp:244 +#: ../src/extension/dependency.cpp:256 msgid " type: " msgstr " тип: " -#: ../src/extension/dependency.cpp:245 +#: ../src/extension/dependency.cpp:257 msgid " location: " msgstr " розташування: " -#: ../src/extension/dependency.cpp:246 +#: ../src/extension/dependency.cpp:258 msgid " string: " msgstr " рядок: " -#: ../src/extension/dependency.cpp:249 +#: ../src/extension/dependency.cpp:261 msgid " description: " msgstr " опис: " @@ -4942,7 +4974,7 @@ msgstr " опис: " msgid " (No preferences)" msgstr " (Немає уподобань)" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2237 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2234 msgid "Extensions" msgstr "Додатки" @@ -5056,7 +5088,7 @@ msgstr "" "відвідайте сайт Inkscape або запитайте у списках листування, якщо у вас " "виникли питання, що стосуються цього додатка." -#: ../src/extension/implementation/script.cpp:1062 +#: ../src/extension/implementation/script.cpp:1108 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 " @@ -5095,7 +5127,7 @@ msgstr "Адаптивна постеризація" #: ../src/ui/dialog/object-attributes.cpp:77 #: ../src/ui/widget/page-sizer.cpp:249 #: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:287 +#: ../src/widgets/eraser-toolbar.cpp:154 ../src/widgets/spray-toolbar.cpp:297 #: ../src/widgets/tweak-toolbar.cpp:128 #: ../share/extensions/foldablebox.inx.h:2 msgid "Width:" @@ -5111,7 +5143,7 @@ msgid "Height:" msgstr "Висота:" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 -#: ../src/widgets/measure-toolbar.cpp:320 +#: ../src/widgets/measure-toolbar.cpp:328 #: ../share/extensions/printing_marks.inx.h:12 msgid "Offset:" msgstr "Зсув:" @@ -5169,8 +5201,8 @@ msgstr "Додати шум" #: ../src/extension/internal/filter/color.h:1660 #: ../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:2857 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 #: ../src/ui/dialog/object-attributes.cpp:49 #: ../share/extensions/jessyInk_effects.inx.h:5 #: ../share/extensions/jessyInk_export.inx.h:3 @@ -5222,7 +5254,7 @@ msgstr "Розмиття" #: ../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:2909 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Radius:" msgstr "Радіус:" @@ -5317,6 +5349,7 @@ msgstr "" #: ../src/extension/internal/bitmap/contrast.cpp:40 #: ../src/extension/internal/filter/color.h:1189 +#: ../share/extensions/nicechart.inx.h:36 msgid "Contrast" msgstr "Контраст" @@ -5361,7 +5394,7 @@ 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:401 +#: ../src/widgets/spray-toolbar.cpp:411 msgid "Amount:" msgstr "Кількість:" @@ -5558,8 +5591,8 @@ msgid "Opacity" msgstr "Непрозорість" #: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 -#: ../src/ui/dialog/objects.cpp:1625 ../src/widgets/dropper-toolbar.cpp:83 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2924 +#: ../src/ui/dialog/objects.cpp:1629 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "Непрозорість:" @@ -5586,7 +5619,10 @@ msgstr "" msgid "Reduce Noise" msgstr "Зменшити шум" +#. Paint order +#. TRANSLATORS: Paint order determines the order the 'fill', 'stroke', and 'markers are painted. #: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../src/widgets/stroke-style.cpp:384 #: ../share/extensions/jessyInk_effects.inx.h:3 #: ../share/extensions/jessyInk_view.inx.h:3 #: ../share/extensions/lindenmayer.inx.h:5 @@ -5731,7 +5767,7 @@ msgstr "Кількість копій втягування/розтягуван #: ../share/extensions/interp.inx.h:9 ../share/extensions/motion.inx.h:4 #: ../share/extensions/pathalongpath.inx.h:18 #: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 +#: ../share/extensions/voronoi2svg.inx.h:18 msgid "Generate from Path" msgstr "Використання контуру" @@ -5862,147 +5898,149 @@ msgstr "PDF 1.4" msgid "Output page size:" msgstr "Розмір сторінки-результату:" -#: ../src/extension/internal/cdr-input.cpp:116 +#. Dialog settings +#: ../src/extension/internal/cdr-input.cpp:103 +#: ../src/extension/internal/vsd-input.cpp:105 +msgid "Page Selector" +msgstr "Вибір сторінок" + +#. Labels +#: ../src/extension/internal/cdr-input.cpp:127 #: ../src/extension/internal/pdfinput/pdf-input.cpp:92 -#: ../src/extension/internal/vsd-input.cpp:116 +#: ../src/extension/internal/vsd-input.cpp:130 msgid "Select page:" msgstr "Обрати сторінку:" #. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:128 +#: ../src/extension/internal/cdr-input.cpp:135 #: ../src/extension/internal/pdfinput/pdf-input.cpp:111 -#: ../src/extension/internal/vsd-input.cpp:128 +#: ../src/extension/internal/vsd-input.cpp:138 #, c-format msgid "out of %i" msgstr "з %i" -#: ../src/extension/internal/cdr-input.cpp:165 -#: ../src/extension/internal/vsd-input.cpp:165 -msgid "Page Selector" -msgstr "Вибір сторінок" - -#: ../src/extension/internal/cdr-input.cpp:300 +#: ../src/extension/internal/cdr-input.cpp:293 msgid "Corel DRAW Input" msgstr "Імпорт Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:305 +#: ../src/extension/internal/cdr-input.cpp:298 msgid "Corel DRAW 7-X4 files (*.cdr)" msgstr "Файли Corel DRAW 7-X4 (*.cdr)" -#: ../src/extension/internal/cdr-input.cpp:306 +#: ../src/extension/internal/cdr-input.cpp:299 msgid "Open files saved in Corel DRAW 7-X4" msgstr "Відкрити файли, збережені за допомогою Corel DRAW 7-X4" -#: ../src/extension/internal/cdr-input.cpp:313 +#: ../src/extension/internal/cdr-input.cpp:306 msgid "Corel DRAW templates input" msgstr "Імпорт шаблонів Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:318 +#: ../src/extension/internal/cdr-input.cpp:311 msgid "Corel DRAW 7-13 template files (*.cdt)" msgstr "Файли шаблонів Corel DRAW 7-13 (*.cdt)" -#: ../src/extension/internal/cdr-input.cpp:319 +#: ../src/extension/internal/cdr-input.cpp:312 msgid "Open files saved in Corel DRAW 7-13" msgstr "Відкрити файли, збережені за допомогою Corel DRAW 7-13" -#: ../src/extension/internal/cdr-input.cpp:326 +#: ../src/extension/internal/cdr-input.cpp:319 msgid "Corel DRAW Compressed Exchange files input" msgstr "Імпорт файлів Compressed Exchange Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:331 +#: ../src/extension/internal/cdr-input.cpp:324 msgid "Corel DRAW Compressed Exchange files (*.ccx)" msgstr "Файли Compressed Exchange Corel DRAW (*.ccx)" -#: ../src/extension/internal/cdr-input.cpp:332 +#: ../src/extension/internal/cdr-input.cpp:325 msgid "Open compressed exchange files saved in Corel DRAW" msgstr "Відкриті файли compressed exchange, збережені за допомогою Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:339 +#: ../src/extension/internal/cdr-input.cpp:332 msgid "Corel DRAW Presentation Exchange files input" msgstr "Імпорт файлів обміну презентаціями Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:344 +#: ../src/extension/internal/cdr-input.cpp:337 msgid "Corel DRAW Presentation Exchange files (*.cmx)" msgstr "Файли обміну презентаціями Corel DRAW (*.cmx)" -#: ../src/extension/internal/cdr-input.cpp:345 +#: ../src/extension/internal/cdr-input.cpp:338 msgid "Open presentation exchange files saved in Corel DRAW" msgstr "Відкрити файли обміну презентаціями, збережені за допомогою Corel DRAW" -#: ../src/extension/internal/emf-inout.cpp:3581 +#: ../src/extension/internal/emf-inout.cpp:3601 msgid "EMF Input" msgstr "Імпорт EMF" -#: ../src/extension/internal/emf-inout.cpp:3586 +#: ../src/extension/internal/emf-inout.cpp:3606 msgid "Enhanced Metafiles (*.emf)" msgstr "Розширений метафайл (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3587 +#: ../src/extension/internal/emf-inout.cpp:3607 msgid "Enhanced Metafiles" msgstr "Розширені метафайли" -#: ../src/extension/internal/emf-inout.cpp:3595 +#: ../src/extension/internal/emf-inout.cpp:3615 msgid "EMF Output" msgstr "Експорт до EMF" -#: ../src/extension/internal/emf-inout.cpp:3597 -#: ../src/extension/internal/wmf-inout.cpp:3176 +#: ../src/extension/internal/emf-inout.cpp:3617 +#: ../src/extension/internal/wmf-inout.cpp:3196 msgid "Convert texts to paths" msgstr "Перетворити текст на контури" -#: ../src/extension/internal/emf-inout.cpp:3598 -#: ../src/extension/internal/wmf-inout.cpp:3177 +#: ../src/extension/internal/emf-inout.cpp:3618 +#: ../src/extension/internal/wmf-inout.cpp:3197 msgid "Map Unicode to Symbol font" msgstr "Пов’язати Unicode зі шрифтом Symbol" -#: ../src/extension/internal/emf-inout.cpp:3599 -#: ../src/extension/internal/wmf-inout.cpp:3178 +#: ../src/extension/internal/emf-inout.cpp:3619 +#: ../src/extension/internal/wmf-inout.cpp:3198 msgid "Map Unicode to Wingdings" msgstr "Пов’язати Unicode з Wingdings" -#: ../src/extension/internal/emf-inout.cpp:3600 -#: ../src/extension/internal/wmf-inout.cpp:3179 +#: ../src/extension/internal/emf-inout.cpp:3620 +#: ../src/extension/internal/wmf-inout.cpp:3199 msgid "Map Unicode to Zapf Dingbats" msgstr "Пов’язати Unicode з Zapf Dingbats" -#: ../src/extension/internal/emf-inout.cpp:3601 -#: ../src/extension/internal/wmf-inout.cpp:3180 +#: ../src/extension/internal/emf-inout.cpp:3621 +#: ../src/extension/internal/wmf-inout.cpp:3200 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "" "Використовувати для перетворених символів MS Unicode PUA (0xF020-0xF0FF)" -#: ../src/extension/internal/emf-inout.cpp:3602 -#: ../src/extension/internal/wmf-inout.cpp:3181 +#: ../src/extension/internal/emf-inout.cpp:3622 +#: ../src/extension/internal/wmf-inout.cpp:3201 msgid "Compensate for PPT font bug" msgstr "Компенсувати ваду щодо шрифтів у PPT" -#: ../src/extension/internal/emf-inout.cpp:3603 -#: ../src/extension/internal/wmf-inout.cpp:3182 +#: ../src/extension/internal/emf-inout.cpp:3623 +#: ../src/extension/internal/wmf-inout.cpp:3202 msgid "Convert dashed/dotted lines to single lines" msgstr "Перетворювати штрихову та пунктир у одну лінію" -#: ../src/extension/internal/emf-inout.cpp:3604 -#: ../src/extension/internal/wmf-inout.cpp:3183 +#: ../src/extension/internal/emf-inout.cpp:3624 +#: ../src/extension/internal/wmf-inout.cpp:3203 msgid "Convert gradients to colored polygon series" msgstr "Перетворити градієнти на послідовність кольорових багатокутників" -#: ../src/extension/internal/emf-inout.cpp:3605 +#: ../src/extension/internal/emf-inout.cpp:3625 msgid "Use native rectangular linear gradients" msgstr "Використовувати природні прямокутні лінійні градієнти" -#: ../src/extension/internal/emf-inout.cpp:3606 +#: ../src/extension/internal/emf-inout.cpp:3626 msgid "Map all fill patterns to standard EMF hatches" msgstr "Пов’язати усі заповнення візерунками зі стандартними шаблонами EMF" -#: ../src/extension/internal/emf-inout.cpp:3607 +#: ../src/extension/internal/emf-inout.cpp:3627 msgid "Ignore image rotations" msgstr "Ігнорувати обертання зображення" -#: ../src/extension/internal/emf-inout.cpp:3611 +#: ../src/extension/internal/emf-inout.cpp:3631 msgid "Enhanced Metafile (*.emf)" msgstr "Розширений метафайл (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3612 +#: ../src/extension/internal/emf-inout.cpp:3632 msgid "Enhanced Metafile" msgstr "Розширений метафайл" @@ -6088,7 +6126,7 @@ msgstr "Колір підсвічення" #: ../src/extension/internal/filter/transparency.h:214 #: ../src/extension/internal/filter/transparency.h:287 #: ../src/extension/internal/filter/transparency.h:349 -#: ../src/ui/dialog/inkscape-preferences.cpp:1795 +#: ../src/ui/dialog/inkscape-preferences.cpp:1806 #, c-format msgid "Filters" msgstr "Фільтри" @@ -6243,7 +6281,7 @@ msgstr "Поєднати вертикальне і горизонтальне р #: ../src/extension/internal/filter/blurs.h:260 msgid "Feather" -msgstr "Перо" +msgstr "Розтушування" #: ../src/extension/internal/filter/blurs.h:270 msgid "Blurred mask on the edge without altering the contents" @@ -6301,7 +6339,7 @@ msgstr "Тип змішування:" #: ../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:52 ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/filter-enums.cpp:52 ../src/ui/dialog/inkscape-preferences.cpp:698 msgid "Normal" msgstr "Звичайний" @@ -6340,7 +6378,7 @@ msgstr "Витискання джерела" #: ../src/extension/internal/filter/transparency.h:132 #: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 #: ../src/ui/widget/color-icc-selector.cpp:176 -#: ../src/ui/widget/color-scales.cpp:379 ../src/ui/widget/color-scales.cpp:380 +#: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 msgid "Red" msgstr "Червоний" @@ -6352,7 +6390,7 @@ msgstr "Червоний" #: ../src/extension/internal/filter/transparency.h:133 #: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 #: ../src/ui/widget/color-icc-selector.cpp:177 -#: ../src/ui/widget/color-scales.cpp:382 ../src/ui/widget/color-scales.cpp:383 +#: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 msgid "Green" msgstr "Зелений" @@ -6364,7 +6402,8 @@ msgstr "Зелений" #: ../src/extension/internal/filter/transparency.h:134 #: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 #: ../src/ui/widget/color-icc-selector.cpp:178 -#: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 +#: ../src/ui/widget/color-scales.cpp:391 ../src/ui/widget/color-scales.cpp:392 +#: ../share/extensions/nicechart.inx.h:34 msgid "Blue" msgstr "Синій" @@ -6402,15 +6441,14 @@ msgstr "Висота" #: ../src/extension/internal/filter/paint.h:707 #: ../src/ui/tools/flood-tool.cpp:96 #: ../src/ui/widget/color-icc-selector.cpp:187 -#: ../src/ui/widget/color-scales.cpp:411 ../src/ui/widget/color-scales.cpp:412 +#: ../src/ui/widget/color-scales.cpp:417 ../src/ui/widget/color-scales.cpp:418 #: ../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 -#: ../src/widgets/measure-toolbar.cpp:294 +#: ../src/widgets/measure-toolbar.cpp:302 msgid "Precision" msgstr "Точність" @@ -6427,7 +6465,7 @@ msgid "Distant" msgstr "Віддалене" #: ../src/extension/internal/filter/bumps.h:106 -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Point" msgstr "Точка" @@ -6600,13 +6638,12 @@ msgstr "Малювання за каналами" #: ../src/extension/internal/filter/color.h:157 #: ../src/extension/internal/filter/color.h:332 #: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 #: ../src/ui/tools/flood-tool.cpp:95 #: ../src/ui/widget/color-icc-selector.cpp:183 #: ../src/ui/widget/color-icc-selector.cpp:188 -#: ../src/ui/widget/color-scales.cpp:408 ../src/ui/widget/color-scales.cpp:409 +#: ../src/ui/widget/color-scales.cpp:414 ../src/ui/widget/color-scales.cpp:415 #: ../src/widgets/tweak-toolbar.cpp:302 -#: ../share/extensions/color_randomize.inx.h:4 msgid "Saturation" msgstr "Насиченість" @@ -6783,21 +6820,21 @@ msgstr "Видобування каналу" #: ../src/extension/internal/filter/color.h:715 #: ../src/ui/widget/color-icc-selector.cpp:190 #: ../src/ui/widget/color-icc-selector.cpp:195 -#: ../src/ui/widget/color-scales.cpp:433 ../src/ui/widget/color-scales.cpp:434 +#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 msgid "Cyan" msgstr "Блакитний" #: ../src/extension/internal/filter/color.h:716 #: ../src/ui/widget/color-icc-selector.cpp:191 #: ../src/ui/widget/color-icc-selector.cpp:196 -#: ../src/ui/widget/color-scales.cpp:436 ../src/ui/widget/color-scales.cpp:437 +#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:443 msgid "Magenta" msgstr "Бузковий" #: ../src/extension/internal/filter/color.h:717 #: ../src/ui/widget/color-icc-selector.cpp:192 #: ../src/ui/widget/color-icc-selector.cpp:197 -#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 +#: ../src/ui/widget/color-scales.cpp:445 ../src/ui/widget/color-scales.cpp:446 msgid "Yellow" msgstr "Жовтий" @@ -6823,7 +6860,7 @@ msgstr "Перетворення на:" #: ../src/extension/internal/filter/color.h:819 #: ../src/ui/widget/color-icc-selector.cpp:193 -#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:443 +#: ../src/ui/widget/color-scales.cpp:448 ../src/ui/widget/color-scales.cpp:449 #: ../src/ui/widget/selected-style.cpp:274 msgid "Black" msgstr "Чорний" @@ -6906,11 +6943,11 @@ msgstr "Тіні" #: ../src/extension/internal/filter/color.h:1119 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 -#: ../src/live_effects/effect.cpp:108 +#: ../src/live_effects/effect.cpp:107 #: ../src/live_effects/lpe-transform_2pts.cpp:40 #: ../src/ui/dialog/filter-effects-dialog.cpp:1048 #: ../src/widgets/gradient-toolbar.cpp:1159 -#: ../src/widgets/measure-toolbar.cpp:320 +#: ../src/widgets/measure-toolbar.cpp:328 msgid "Offset" msgstr "Зміщення" @@ -7074,7 +7111,7 @@ msgstr "" #: ../src/extension/internal/filter/distort.h:67 msgid "Felt Feather" -msgstr "Фетр" +msgstr "Фетрове розтушування" #: ../src/extension/internal/filter/distort.h:71 #: ../src/extension/internal/filter/morphology.h:175 @@ -7160,7 +7197,7 @@ msgid "Blur and displace edges of shapes and pictures" msgstr "Розмити і змінити розташування форм і зображень" #: ../src/extension/internal/filter/distort.h:190 -#: ../src/live_effects/effect.cpp:138 +#: ../src/live_effects/effect.cpp:142 msgid "Roughen" msgstr "Грубішання" @@ -7198,8 +7235,8 @@ 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 +#: ../src/ui/dialog/template-load-tab.cpp:107 +#: ../src/ui/dialog/template-load-tab.cpp:144 msgid "All" msgstr "Всі" @@ -7240,7 +7277,7 @@ msgstr "Відкрите" #: ../src/extension/internal/filter/morphology.h:65 #: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 #: ../src/ui/widget/page-sizer.cpp:249 ../src/widgets/rect-toolbar.cpp:317 -#: ../src/widgets/spray-toolbar.cpp:287 ../src/widgets/tweak-toolbar.cpp:128 +#: ../src/widgets/spray-toolbar.cpp:297 ../src/widgets/tweak-toolbar.cpp:128 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Width" msgstr "Ширина" @@ -7478,17 +7515,17 @@ msgstr "" "горизонтальних ліній" #: ../src/extension/internal/filter/paint.h:331 -#: ../src/ui/dialog/align-and-distribute.cpp:998 -#: ../src/widgets/desktop-widget.cpp:2051 +#: ../src/ui/dialog/align-and-distribute.cpp:1090 +#: ../src/widgets/desktop-widget.cpp:2070 msgid "Drawing" msgstr "Малюнок" -#. 0.91 +#. 0.92 #: ../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/live_effects/effect.cpp:149 ../src/splivarot.cpp:2204 +#: ../src/live_effects/effect.cpp:136 ../src/splivarot.cpp:2206 msgid "Simplify" msgstr "Спростити" @@ -7559,7 +7596,7 @@ msgid "Contrasted" msgstr "Контрастний" #: ../src/extension/internal/filter/paint.h:591 -#: ../src/live_effects/lpe-jointype.cpp:51 +#: ../src/live_effects/lpe-jointype.cpp:54 msgid "Line width" msgstr "Товщина ліній" @@ -7771,9 +7808,9 @@ msgid "Background" msgstr "Тло" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 -#: ../src/widgets/pencil-toolbar.cpp:141 ../src/widgets/spray-toolbar.cpp:379 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:133 +#: ../src/widgets/pencil-toolbar.cpp:141 ../src/widgets/spray-toolbar.cpp:389 #: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 #: ../share/extensions/triangle.inx.h:8 msgid "Mode:" @@ -7840,13 +7877,13 @@ msgstr "" "документом SVG і всі файли буде об'єднано у єдиному документі." #: ../src/extension/internal/gdkpixbuf-input.cpp:196 -#: ../src/ui/dialog/inkscape-preferences.cpp:1500 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Embed" msgstr "Вбудувати" #: ../src/extension/internal/gdkpixbuf-input.cpp:197 ../src/sp-anchor.cpp:105 -#: ../src/ui/dialog/inkscape-preferences.cpp:1500 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Link" msgstr "Пов'язати" @@ -7891,19 +7928,19 @@ msgstr "" "(Працює не в усіх засобах перегляду.)" #: ../src/extension/internal/gdkpixbuf-input.cpp:206 -#: ../src/ui/dialog/inkscape-preferences.cpp:1507 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "None (auto)" msgstr "Немає (автоматично)" #: ../src/extension/internal/gdkpixbuf-input.cpp:207 -#: ../src/ui/dialog/inkscape-preferences.cpp:1507 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Smooth (optimizeQuality)" msgstr "Згладжування (оптимальна якість)" #: ../src/extension/internal/gdkpixbuf-input.cpp:208 -#: ../src/ui/dialog/inkscape-preferences.cpp:1507 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Blocky (optimizeSpeed)" msgstr "Блоками (оптимальна швидкість)" @@ -7931,7 +7968,7 @@ msgstr "Градієнт GIMP (*.ggr)" msgid "Gradients used in GIMP" msgstr "Градієнти, що використовуються у GIMP" -#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:114 +#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:116 msgid "Grid" msgstr "Сітка" @@ -7956,7 +7993,7 @@ msgid "Vertical Offset:" msgstr "Вертикальний зсув:" #: ../src/extension/internal/grid.cpp:214 -#: ../src/ui/dialog/inkscape-preferences.cpp:1521 +#: ../src/ui/dialog/inkscape-preferences.cpp:1532 #: ../share/extensions/draw_from_triangle.inx.h:58 #: ../share/extensions/eqtexsvg.inx.h:4 #: ../share/extensions/foldablebox.inx.h:9 @@ -7968,6 +8005,7 @@ msgstr "Вертикальний зсув:" #: ../share/extensions/hershey.inx.h:52 #: ../share/extensions/layout_nup.inx.h:35 #: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/nicechart.inx.h:45 #: ../share/extensions/param_curves.inx.h:30 #: ../share/extensions/perfectboundcover.inx.h:19 #: ../share/extensions/polyhedron_3d.inx.h:56 @@ -7988,8 +8026,8 @@ msgstr "Відтворення" #: ../src/extension/internal/grid.cpp:215 #: ../src/ui/dialog/document-properties.cpp:163 -#: ../src/ui/dialog/inkscape-preferences.cpp:821 -#: ../src/widgets/toolbox.cpp:1872 +#: ../src/ui/dialog/inkscape-preferences.cpp:832 +#: ../src/widgets/toolbox.cpp:1886 msgid "Grids" msgstr "Сітки" @@ -8216,7 +8254,7 @@ msgstr "Файл Inkscape SVG (*.svg)" msgid "SVG format with Inkscape extensions" msgstr "Формат SVG з додатками Inkscape" -#: ../src/extension/internal/svg.cpp:128 +#: ../src/extension/internal/svg.cpp:128 ../share/extensions/scour.inx.h:19 msgid "SVG Output" msgstr "Експорт до SVG" @@ -8256,81 +8294,81 @@ msgstr "Стиснений звичайний SVG (*.svgz)" msgid "Scalable Vector Graphics format compressed with GZip" msgstr "Формат масштабованої векторної графіки стиснений за допомогою GZip" -#: ../src/extension/internal/vsd-input.cpp:301 +#: ../src/extension/internal/vsd-input.cpp:296 msgid "VSD Input" msgstr "Імпорт з VSD" -#: ../src/extension/internal/vsd-input.cpp:306 +#: ../src/extension/internal/vsd-input.cpp:301 msgid "Microsoft Visio Diagram (*.vsd)" msgstr "Діаграма Microsoft Visio (*.vsd)" -#: ../src/extension/internal/vsd-input.cpp:307 +#: ../src/extension/internal/vsd-input.cpp:302 msgid "File format used by Microsoft Visio 6 and later" msgstr "" "Формат файлів, що використовується у Microsoft Visio 6 і новіших версіях" -#: ../src/extension/internal/vsd-input.cpp:314 +#: ../src/extension/internal/vsd-input.cpp:309 msgid "VDX Input" msgstr "Імпорт з VDX" -#: ../src/extension/internal/vsd-input.cpp:319 +#: ../src/extension/internal/vsd-input.cpp:314 msgid "Microsoft Visio XML Diagram (*.vdx)" msgstr "Діаграма Microsoft Visio у форматі XML (*.vdx)" -#: ../src/extension/internal/vsd-input.cpp:320 +#: ../src/extension/internal/vsd-input.cpp:315 msgid "File format used by Microsoft Visio 2010 and later" msgstr "" "Формат файлів, що використовується у Microsoft Visio 2010 і новіших версіях" -#: ../src/extension/internal/vsd-input.cpp:327 +#: ../src/extension/internal/vsd-input.cpp:322 msgid "VSDM Input" msgstr "Імпорт з VSDM" -#: ../src/extension/internal/vsd-input.cpp:332 +#: ../src/extension/internal/vsd-input.cpp:327 msgid "Microsoft Visio 2013 drawing (*.vsdm)" msgstr "Малюнок Microsoft Visio 2013 (*.vsdm)" -#: ../src/extension/internal/vsd-input.cpp:333 -#: ../src/extension/internal/vsd-input.cpp:346 +#: ../src/extension/internal/vsd-input.cpp:328 +#: ../src/extension/internal/vsd-input.cpp:341 msgid "File format used by Microsoft Visio 2013 and later" msgstr "" "Формат файлів, що використовується у Microsoft Visio 2013 і новіших версіях" -#: ../src/extension/internal/vsd-input.cpp:340 +#: ../src/extension/internal/vsd-input.cpp:335 msgid "VSDX Input" msgstr "Імпорт з VSDX" -#: ../src/extension/internal/vsd-input.cpp:345 +#: ../src/extension/internal/vsd-input.cpp:340 msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "Малюнок Microsoft Visio 2013 (*.vsdx)" -#: ../src/extension/internal/wmf-inout.cpp:3160 +#: ../src/extension/internal/wmf-inout.cpp:3180 msgid "WMF Input" msgstr "Імпорт WMF" -#: ../src/extension/internal/wmf-inout.cpp:3165 +#: ../src/extension/internal/wmf-inout.cpp:3185 msgid "Windows Metafiles (*.wmf)" msgstr "Метафайл Windows (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3166 +#: ../src/extension/internal/wmf-inout.cpp:3186 msgid "Windows Metafiles" msgstr "Метафайл Windows" -#: ../src/extension/internal/wmf-inout.cpp:3174 +#: ../src/extension/internal/wmf-inout.cpp:3194 msgid "WMF Output" msgstr "Експорт до WMF" -#: ../src/extension/internal/wmf-inout.cpp:3184 +#: ../src/extension/internal/wmf-inout.cpp:3204 msgid "Map all fill patterns to standard WMF hatches" msgstr "Пов’язати усі заповнення візерунками зі стандартними шаблонами WMF" -#: ../src/extension/internal/wmf-inout.cpp:3188 +#: ../src/extension/internal/wmf-inout.cpp:3208 #: ../share/extensions/wmf_input.inx.h:2 #: ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "Метафайл Windows (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3189 +#: ../src/extension/internal/wmf-inout.cpp:3209 msgid "Windows Metafile" msgstr "Метафайл Windows (WMF)" @@ -8354,50 +8392,50 @@ msgstr "Перегляд у дії" msgid "Is the effect previewed live on canvas?" msgstr "Контролює, чи буде показано параметри ефекту вживу на полотні" -#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +#: ../src/extension/system.cpp:126 ../src/extension/system.cpp:128 msgid "Format autodetect failed. The file is being opened as SVG." msgstr "Не вдається визначити формат файла. Файл відкривається як SVG." -#: ../src/file.cpp:183 +#: ../src/file.cpp:185 msgid "default.svg" msgstr "типовий.svg" -#: ../src/file.cpp:328 +#: ../src/file.cpp:332 msgid "Broken links have been changed to point to existing files." msgstr "Помилкові посилання змінено так, щоб вони вказували на поточні файли." -#: ../src/file.cpp:339 ../src/file.cpp:1274 +#: ../src/file.cpp:343 ../src/file.cpp:1278 #, c-format msgid "Failed to load the requested file %s" msgstr "Не вдається завантажити потрібний файл %s" -#: ../src/file.cpp:365 +#: ../src/file.cpp:369 msgid "Document not saved yet. Cannot revert." msgstr "" "Документ ще не був збережений. Неможливо повернутись до попереднього стану." -#: ../src/file.cpp:371 +#: ../src/file.cpp:375 msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" "Зміни буде втрачено! Ви впевнені, що бажаєте перезавантажити документ %1?" -#: ../src/file.cpp:397 +#: ../src/file.cpp:401 msgid "Document reverted." msgstr "Документ повернутий до попереднього стану." -#: ../src/file.cpp:399 +#: ../src/file.cpp:403 msgid "Document not reverted." msgstr "Документ не повернутий до попереднього стану." -#: ../src/file.cpp:549 +#: ../src/file.cpp:553 msgid "Select file to open" msgstr "Виберіть файл" -#: ../src/file.cpp:631 +#: ../src/file.cpp:635 msgid "Clean up document" msgstr "Очистити документ" -#: ../src/file.cpp:638 +#: ../src/file.cpp:642 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." @@ -8405,11 +8443,11 @@ msgstr[0] "Вилучено %i непотрібний елемент у & msgstr[1] "Вилучено %i непотрібні елементи у <defs>." msgstr[2] "Вилучено %i непотрібних елементів у <defs>." -#: ../src/file.cpp:643 +#: ../src/file.cpp:647 msgid "No unused definitions in <defs>." msgstr "Немає непотрібних елементів у <defs>." -#: ../src/file.cpp:675 +#: ../src/file.cpp:679 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " @@ -8418,12 +8456,12 @@ msgstr "" "Не знайдено модуль збереження документа (%s). Можливо, невідомий суфікс " "назви файла." -#: ../src/file.cpp:676 ../src/file.cpp:684 ../src/file.cpp:692 -#: ../src/file.cpp:698 ../src/file.cpp:703 +#: ../src/file.cpp:680 ../src/file.cpp:688 ../src/file.cpp:696 +#: ../src/file.cpp:702 ../src/file.cpp:707 msgid "Document not saved." msgstr "Документ не збережено." -#: ../src/file.cpp:683 +#: ../src/file.cpp:687 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." @@ -8431,54 +8469,54 @@ msgstr "" "Файл %s захищено від запису. Будь ласка, зніміть захист від запису і " "повторіть спробу." -#: ../src/file.cpp:691 +#: ../src/file.cpp:695 #, c-format msgid "File %s could not be saved." msgstr "Файл %s неможливо зберегти." -#: ../src/file.cpp:721 ../src/file.cpp:723 +#: ../src/file.cpp:725 ../src/file.cpp:727 msgid "Document saved." msgstr "Документ збережено." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:866 ../src/file.cpp:1433 +#: ../src/file.cpp:870 ../src/file.cpp:1437 msgid "drawing" msgstr "рисунок" -#: ../src/file.cpp:871 +#: ../src/file.cpp:875 msgid "drawing-%1" msgstr "рисунок-%1" -#: ../src/file.cpp:888 +#: ../src/file.cpp:892 msgid "Select file to save a copy to" msgstr "Оберіть файл для збереження копії" -#: ../src/file.cpp:890 +#: ../src/file.cpp:894 msgid "Select file to save to" msgstr "Виберіть файл для збереження" -#: ../src/file.cpp:995 ../src/file.cpp:997 +#: ../src/file.cpp:999 ../src/file.cpp:1001 msgid "No changes need to be saved." msgstr "Файл не було змінено. Збереження непотрібне." -#: ../src/file.cpp:1016 +#: ../src/file.cpp:1020 msgid "Saving document..." msgstr "Збереження документа…" -#: ../src/file.cpp:1271 ../src/ui/dialog/inkscape-preferences.cpp:1494 +#: ../src/file.cpp:1275 ../src/ui/dialog/inkscape-preferences.cpp:1505 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Імпорт" -#: ../src/file.cpp:1321 +#: ../src/file.cpp:1325 msgid "Select file to import" msgstr "Виберіть файл для імпорту" -#: ../src/file.cpp:1454 +#: ../src/file.cpp:1458 msgid "Select file to export to" msgstr "Оберіть файл для експорту" -#: ../src/file.cpp:1707 +#: ../src/file.cpp:1711 msgid "Import Clip Art" msgstr "Імпортування шаблонів" @@ -8574,9 +8612,8 @@ msgstr "Виключення" #: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 #: ../src/ui/widget/color-icc-selector.cpp:182 #: ../src/ui/widget/color-icc-selector.cpp:186 -#: ../src/ui/widget/color-scales.cpp:405 ../src/ui/widget/color-scales.cpp:406 +#: ../src/ui/widget/color-scales.cpp:411 ../src/ui/widget/color-scales.cpp:412 #: ../src/widgets/tweak-toolbar.cpp:286 -#: ../share/extensions/color_randomize.inx.h:3 msgid "Hue" msgstr "Відтінок" @@ -8603,7 +8640,7 @@ msgstr "Освітленість до прозорості" #: ../src/filter-enums.cpp:87 #: ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 -#: ../share/extensions/measure.inx.h:20 +#: ../share/extensions/measure.inx.h:20 ../share/extensions/nicechart.inx.h:33 msgid "Default" msgstr "Типовий" @@ -8645,7 +8682,7 @@ msgid "Arithmetic" msgstr "Арифметичний" #: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 -#: ../src/ui/dialog/objects.cpp:1889 +#: ../src/ui/dialog/objects.cpp:1893 msgid "Duplicate" msgstr "Дублювати" @@ -8690,7 +8727,7 @@ msgstr "Інвертувати кольори градієнта" msgid "Reverse gradient" msgstr "Обернути градієнт" -#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:226 +#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "Вилучити зразок" @@ -8766,7 +8803,7 @@ msgstr "" #: ../src/gradient-drag.cpp:1427 ../src/gradient-drag.cpp:1434 msgid " (stroke)" -msgstr " (штрих)" +msgstr " (штрих)" #: ../src/gradient-drag.cpp:1431 #, c-format @@ -8927,7 +8964,7 @@ msgstr "Контролюючий елемент панелі" msgid "Dockitem which 'owns' this grip" msgstr "Елемент, що є «володарем» цього" -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:201 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -9073,12 +9110,12 @@ msgstr "" "панелей можна називати контролерами." #: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:997 +#: ../src/ui/dialog/align-and-distribute.cpp:1089 #: ../src/ui/dialog/document-properties.cpp:161 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1549 -#: ../src/widgets/desktop-widget.cpp:2047 +#: ../src/widgets/desktop-widget.cpp:2066 #: ../share/extensions/empty_page.inx.h:1 -#: ../share/extensions/voronoi2svg.inx.h:9 +#: ../share/extensions/voronoi2svg.inx.h:10 msgid "Page" msgstr "Сторінка" @@ -9088,9 +9125,9 @@ msgstr "Індекс поточної сторінки" #: ../src/libgdl/gdl-dock-object.c:125 #: ../src/live_effects/parameter/originalpatharray.cpp:82 -#: ../src/ui/dialog/inkscape-preferences.cpp:1555 +#: ../src/ui/dialog/inkscape-preferences.cpp:1566 #: ../src/ui/widget/page-sizer.cpp:285 -#: ../src/widgets/gradient-selector.cpp:154 +#: ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "Назва" @@ -9163,7 +9200,7 @@ msgstr "" "Спроба прив'язування до %p вже прив'язаного об'єкта %p (поточний господар: " "%p)" -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:230 +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:239 msgid "Position" msgstr "Розташування" @@ -9259,8 +9296,8 @@ msgstr "" msgid "Dockitem which 'owns' this tablabel" msgstr "Елемент панелі, що «володіє» цією міткою вкладки" -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:676 -#: ../src/ui/dialog/inkscape-preferences.cpp:719 +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Floating" msgstr "Вільно переміщуються екраном" @@ -9337,165 +9374,164 @@ msgstr "Деформація за сіткою" msgid "Line Segment" msgstr "Сегмент лінії" -#: ../src/live_effects/effect.cpp:107 -msgid "Mirror symmetry" -msgstr "Дзеркальна симетрія" - -#: ../src/live_effects/effect.cpp:109 +#: ../src/live_effects/effect.cpp:108 msgid "Parallel" msgstr "Паралельна" -#: ../src/live_effects/effect.cpp:110 +#: ../src/live_effects/effect.cpp:109 msgid "Path length" msgstr "Довжина контуру" -#: ../src/live_effects/effect.cpp:111 +#: ../src/live_effects/effect.cpp:110 msgid "Perpendicular bisector" msgstr "Серединний перпендикуляр" -#: ../src/live_effects/effect.cpp:112 +#: ../src/live_effects/effect.cpp:111 msgid "Perspective path" msgstr "Контур з перспективою" -#: ../src/live_effects/effect.cpp:113 -msgid "Rotate copies" -msgstr "Обертання копій" - -#: ../src/live_effects/effect.cpp:114 +#: ../src/live_effects/effect.cpp:112 msgid "Recursive skeleton" msgstr "Рекурсивний каркас" -#: ../src/live_effects/effect.cpp:115 +#: ../src/live_effects/effect.cpp:113 msgid "Tangent to curve" msgstr "Дотична до кривої" -#: ../src/live_effects/effect.cpp:116 +#: ../src/live_effects/effect.cpp:114 msgid "Text label" msgstr "Текстова мітка" +#: ../src/live_effects/effect.cpp:115 +msgid "Fillet/Chamfer" +msgstr "Кромка/Фаска" + #. 0.46 -#: ../src/live_effects/effect.cpp:119 +#: ../src/live_effects/effect.cpp:118 msgid "Bend" msgstr "Вигнути" -#: ../src/live_effects/effect.cpp:120 +#: ../src/live_effects/effect.cpp:119 msgid "Gears" msgstr "Зубчасте колесо" -#: ../src/live_effects/effect.cpp:121 +#: ../src/live_effects/effect.cpp:120 msgid "Pattern Along Path" msgstr "Візерунок вздовж контуру" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:122 +#: ../src/live_effects/effect.cpp:121 msgid "Stitch Sub-Paths" msgstr "Зшити підконтури" #. 0.47 -#: ../src/live_effects/effect.cpp:124 +#: ../src/live_effects/effect.cpp:123 msgid "VonKoch" msgstr "фон Кох" -#: ../src/live_effects/effect.cpp:125 +#: ../src/live_effects/effect.cpp:124 msgid "Knot" msgstr "Вузол" -#: ../src/live_effects/effect.cpp:126 +#: ../src/live_effects/effect.cpp:125 msgid "Construct grid" msgstr "Побудувати сітку" -#: ../src/live_effects/effect.cpp:127 +#: ../src/live_effects/effect.cpp:126 msgid "Spiro spline" msgstr "Крива Спіро" -#: ../src/live_effects/effect.cpp:128 +#: ../src/live_effects/effect.cpp:127 msgid "Envelope Deformation" msgstr "Викривлення обгортки" -#: ../src/live_effects/effect.cpp:129 +#: ../src/live_effects/effect.cpp:128 msgid "Interpolate Sub-Paths" msgstr "Інтерполяція підконтурами" -#: ../src/live_effects/effect.cpp:130 +#: ../src/live_effects/effect.cpp:129 msgid "Hatches (rough)" msgstr "Штрихування (грубо)" -#: ../src/live_effects/effect.cpp:131 +#: ../src/live_effects/effect.cpp:130 msgid "Sketch" msgstr "Ескіз" -#: ../src/live_effects/effect.cpp:132 +#: ../src/live_effects/effect.cpp:131 msgid "Ruler" msgstr "Лінійка" #. 0.91 -#: ../src/live_effects/effect.cpp:134 +#: ../src/live_effects/effect.cpp:133 msgid "Power stroke" msgstr "Потужний штрих" -#: ../src/live_effects/effect.cpp:135 +#: ../src/live_effects/effect.cpp:134 msgid "Clone original path" msgstr "Клонувати початковий контур" -#. EXPERIMENTAL #: ../src/live_effects/effect.cpp:137 +msgid "Lattice Deformation 2" +msgstr "Деформація за сіткою 2" + +#: ../src/live_effects/effect.cpp:138 +msgid "Perspective/Envelope" +msgstr "Перспектива/Обгортання" + +#: ../src/live_effects/effect.cpp:139 +msgid "Interpolate points" +msgstr "Точки інтерполяції" + +#: ../src/live_effects/effect.cpp:140 +msgid "Transform by 2 points" +msgstr "Перетворення за 2 точками" + +#: ../src/live_effects/effect.cpp:141 #: ../src/live_effects/lpe-show_handles.cpp:26 msgid "Show handles" msgstr "Показувати елементи керування" -#: ../src/live_effects/effect.cpp:139 ../src/widgets/pencil-toolbar.cpp:118 +#: ../src/live_effects/effect.cpp:143 ../src/widgets/pencil-toolbar.cpp:118 msgid "BSpline" msgstr "B-сплайн" -#: ../src/live_effects/effect.cpp:140 +#: ../src/live_effects/effect.cpp:144 msgid "Join type" msgstr "Тип з’єднання" -#: ../src/live_effects/effect.cpp:141 +#: ../src/live_effects/effect.cpp:145 msgid "Taper stroke" msgstr "Звужений штрих" -#. Ponyscape -#: ../src/live_effects/effect.cpp:143 +#: ../src/live_effects/effect.cpp:146 +msgid "Mirror symmetry" +msgstr "Дзеркальна симетрія" + +#: ../src/live_effects/effect.cpp:147 +msgid "Rotate copies" +msgstr "Обертання копій" + +#. Ponyscape -> Inkscape 0.92 +#: ../src/live_effects/effect.cpp:149 msgid "Attach path" msgstr "Долучити до контуру" -#: ../src/live_effects/effect.cpp:144 +#: ../src/live_effects/effect.cpp:150 msgid "Fill between strokes" msgstr "Заповнення між штрихами" -#: ../src/live_effects/effect.cpp:145 ../src/selection-chemistry.cpp:2874 +#: ../src/live_effects/effect.cpp:151 ../src/selection-chemistry.cpp:2906 msgid "Fill between many" msgstr "Заповнення між багатьма" -#: ../src/live_effects/effect.cpp:146 +#: ../src/live_effects/effect.cpp:152 msgid "Ellipse by 5 points" msgstr "Еліпс за 5 точками" -#: ../src/live_effects/effect.cpp:147 +#: ../src/live_effects/effect.cpp:153 msgid "Bounding Box" msgstr "Обмежувальна рамка" -#: ../src/live_effects/effect.cpp:150 -msgid "Lattice Deformation 2" -msgstr "Деформація за сіткою 2" - -#: ../src/live_effects/effect.cpp:151 -msgid "Perspective/Envelope" -msgstr "Перспектива/Обгортання" - -#: ../src/live_effects/effect.cpp:152 -msgid "Fillet/Chamfer" -msgstr "Кромка/Фаска" - -#: ../src/live_effects/effect.cpp:153 -msgid "Interpolate points" -msgstr "Точки інтерполяції" - -#: ../src/live_effects/effect.cpp:154 -msgid "Transform by 2 points" -msgstr "Перетворення за 2 точками" - #: ../src/live_effects/effect.cpp:361 msgid "Is visible?" msgstr "Видиме?" @@ -9512,19 +9548,19 @@ msgstr "" msgid "No effect" msgstr "Без ефекту" -#: ../src/live_effects/effect.cpp:494 +#: ../src/live_effects/effect.cpp:498 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" "Будь ласка, вкажіть параметр контуру для геометричних побудов «%s» за " "допомогою %d клацань мишею" -#: ../src/live_effects/effect.cpp:761 +#: ../src/live_effects/effect.cpp:765 #, c-format msgid "Editing parameter %s." msgstr "Редагування параметра %s." -#: ../src/live_effects/effect.cpp:766 +#: ../src/live_effects/effect.cpp:770 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" "Жоден із застосованих параметрів ефекту контуру не можна редагувати на " @@ -9626,8 +9662,8 @@ msgstr "По_чатковий контур вертикальний" msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "Повернути початковий контур на 90°, перш ніж вигинати його за контуром" -#: ../src/live_effects/lpe-bendpath.cpp:181 -#: ../src/live_effects/lpe-patternalongpath.cpp:278 +#: ../src/live_effects/lpe-bendpath.cpp:178 +#: ../src/live_effects/lpe-patternalongpath.cpp:285 msgid "Change the width" msgstr "Змінити товщину" @@ -9709,8 +9745,8 @@ msgid "Change to 0 weight" msgstr "Змінити до потужності 0" #: ../src/live_effects/lpe-bspline.cpp:160 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:232 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:254 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:240 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:262 #: ../src/live_effects/parameter/parameter.cpp:170 msgid "Change scalar parameter" msgstr "Змінити скалярний параметр" @@ -9898,7 +9934,7 @@ msgid "Reverses the second path order" msgstr "Обернути напрямок другого контуру" #: ../src/live_effects/lpe-fillet-chamfer.cpp:41 -#: ../src/widgets/text-toolbar.cpp:1540 +#: ../src/widgets/text-toolbar.cpp:1788 #: ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "Авто" @@ -9963,40 +9999,48 @@ msgstr "Допоміжний розмір із напрямком:" msgid "Helper size with direction" msgstr "Допоміжний розмір із напрямком" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:103 +msgid "IMPORTANT! New version soon..." +msgstr "ВАЖЛИВО! Скоро нова версія…" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:107 +msgid "Not compatible. Convert to path after." +msgstr "Не є сумісним. Наступне перетворення на контур." + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:165 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:72 msgid "Fillet" msgstr "Кромка" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:169 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:74 msgid "Inverse fillet" msgstr "Зворотня кромка" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:174 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 msgid "Chamfer" msgstr "Фаска" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:178 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 msgid "Inverse chamfer" msgstr "Зворотня фаска" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:239 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:247 msgid "Convert to fillet" msgstr "Перетворити на кромку" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:246 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:270 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:254 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:278 msgid "Convert to inverse fillet" msgstr "Перетворити на зворотну кромку" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:262 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:270 msgid "Convert to chamfer" msgstr "Перетворити на фаску" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:282 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:290 msgid "Knots and helper paths refreshed" msgstr "Оновлено вузли і допоміжні контури" @@ -10020,27 +10064,27 @@ msgstr "" "Кут контакту зубців (зазвичай, 20-25°). Характеризує кількість зубців, що не " "контактують." -#: ../src/live_effects/lpe-interpolate.cpp:31 +#: ../src/live_effects/lpe-interpolate.cpp:30 msgid "Trajectory:" msgstr "Траєкторія:" -#: ../src/live_effects/lpe-interpolate.cpp:31 +#: ../src/live_effects/lpe-interpolate.cpp:30 msgid "Path along which intermediate steps are created." msgstr "Контур, за яким буде створено проміжні кроки." -#: ../src/live_effects/lpe-interpolate.cpp:32 +#: ../src/live_effects/lpe-interpolate.cpp:31 msgid "Steps_:" msgstr "_Кроків:" -#: ../src/live_effects/lpe-interpolate.cpp:32 +#: ../src/live_effects/lpe-interpolate.cpp:31 msgid "Determines the number of steps from start to end path." msgstr "Визначає кількість кроків від початкового до кінцевого контурів." -#: ../src/live_effects/lpe-interpolate.cpp:33 +#: ../src/live_effects/lpe-interpolate.cpp:32 msgid "E_quidistant spacing" msgstr "Одн_акові проміжки" -#: ../src/live_effects/lpe-interpolate.cpp:33 +#: ../src/live_effects/lpe-interpolate.cpp:32 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 " @@ -10091,7 +10135,7 @@ msgid "Beveled" msgstr "З фаскою" #: ../src/live_effects/lpe-jointype.cpp:32 -#: ../src/live_effects/lpe-jointype.cpp:40 +#: ../src/live_effects/lpe-jointype.cpp:43 #: ../src/live_effects/lpe-powerstroke.cpp:167 #: ../src/live_effects/lpe-taperstroke.cpp:64 #: ../src/widgets/star-toolbar.cpp:534 @@ -10114,122 +10158,134 @@ msgstr "Обмеження фацета" msgid "Extrapolated arc" msgstr "Екстрапольована дуга" -#: ../src/live_effects/lpe-jointype.cpp:39 +#: ../src/live_effects/lpe-jointype.cpp:36 +msgid "Extrapolated arc Alt1" +msgstr "Екстрапольована дуга Alt1" + +#: ../src/live_effects/lpe-jointype.cpp:37 +msgid "Extrapolated arc Alt2" +msgstr "Екстрапольована дуга Alt2" + +#: ../src/live_effects/lpe-jointype.cpp:38 +msgid "Extrapolated arc Alt3" +msgstr "Екстрапольована дуга Alt3" + +#: ../src/live_effects/lpe-jointype.cpp:42 #: ../src/live_effects/lpe-powerstroke.cpp:149 msgid "Butt" msgstr "Обрізок" -#: ../src/live_effects/lpe-jointype.cpp:41 +#: ../src/live_effects/lpe-jointype.cpp:44 #: ../src/live_effects/lpe-powerstroke.cpp:150 msgid "Square" msgstr "Квадрат" -#: ../src/live_effects/lpe-jointype.cpp:42 +#: ../src/live_effects/lpe-jointype.cpp:45 #: ../src/live_effects/lpe-powerstroke.cpp:152 msgid "Peak" msgstr "Пік" -#: ../src/live_effects/lpe-jointype.cpp:51 +#: ../src/live_effects/lpe-jointype.cpp:54 msgid "Thickness of the stroke" msgstr "Товщина штриха" -#: ../src/live_effects/lpe-jointype.cpp:52 +#: ../src/live_effects/lpe-jointype.cpp:55 msgid "Line cap" msgstr "Кінчик лінії" -#: ../src/live_effects/lpe-jointype.cpp:52 +#: ../src/live_effects/lpe-jointype.cpp:55 msgid "The end shape of the stroke" 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-jointype.cpp:53 +#: ../src/live_effects/lpe-jointype.cpp:56 #: ../src/live_effects/lpe-powerstroke.cpp:182 -#: ../src/widgets/stroke-style.cpp:227 +#: ../src/widgets/stroke-style.cpp:288 msgid "Join:" msgstr "З'єднання:" -#: ../src/live_effects/lpe-jointype.cpp:53 +#: ../src/live_effects/lpe-jointype.cpp:56 #: ../src/live_effects/lpe-powerstroke.cpp:182 msgid "Determines the shape of the path's corners" msgstr "Визначає форму кутів контуру" #. 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.), -#: ../src/live_effects/lpe-jointype.cpp:56 +#: ../src/live_effects/lpe-jointype.cpp:59 #: ../src/live_effects/lpe-powerstroke.cpp:183 #: ../src/live_effects/lpe-taperstroke.cpp:78 msgid "Miter limit:" msgstr "Межа вістря:" -#: ../src/live_effects/lpe-jointype.cpp:56 +#: ../src/live_effects/lpe-jointype.cpp:59 msgid "Maximum length of the miter join (in units of stroke width)" msgstr "Найбільша довжина з’єднання з вістрям (у одиницях товщини штриха)" -#: ../src/live_effects/lpe-jointype.cpp:57 +#: ../src/live_effects/lpe-jointype.cpp:60 msgid "Force miter" msgstr "Примусове вістря" -#: ../src/live_effects/lpe-jointype.cpp:57 +#: ../src/live_effects/lpe-jointype.cpp:60 msgid "Overrides the miter limit and forces a join." msgstr "Перевизначає обмеження вістря і примусово встановлює з’єднання." #. initialise your parameters here: -#: ../src/live_effects/lpe-knot.cpp:351 +#: ../src/live_effects/lpe-knot.cpp:350 msgid "Fi_xed width:" msgstr "_Фіксована ширина:" -#: ../src/live_effects/lpe-knot.cpp:351 +#: ../src/live_effects/lpe-knot.cpp:350 msgid "Size of hidden region of lower string" msgstr "Розмір схованого фрагмента нижнього рядка" -#: ../src/live_effects/lpe-knot.cpp:352 +#: ../src/live_effects/lpe-knot.cpp:351 msgid "_In units of stroke width" msgstr "_У одиницях товщини штриха" -#: ../src/live_effects/lpe-knot.cpp:352 +#: ../src/live_effects/lpe-knot.cpp:351 msgid "Consider 'Interruption width' as a ratio of stroke width" msgstr "Обчислювати «ширину проміжку» відносно товщини штриха" -#: ../src/live_effects/lpe-knot.cpp:353 +#: ../src/live_effects/lpe-knot.cpp:352 msgid "St_roke width" msgstr "Тов_щина штриха" -#: ../src/live_effects/lpe-knot.cpp:353 +#: ../src/live_effects/lpe-knot.cpp:352 msgid "Add the stroke width to the interruption size" msgstr "Додати ширину штриха до розміру проміжку" -#: ../src/live_effects/lpe-knot.cpp:354 +#: ../src/live_effects/lpe-knot.cpp:353 msgid "_Crossing path stroke width" msgstr "Товщина штриха _контуру перетинання" -#: ../src/live_effects/lpe-knot.cpp:354 +#: ../src/live_effects/lpe-knot.cpp:353 msgid "Add crossed stroke width to the interruption size" msgstr "Додати ширину перпендикулярного штриха до розміру проміжку" -#: ../src/live_effects/lpe-knot.cpp:355 +#: ../src/live_effects/lpe-knot.cpp:354 msgid "S_witcher size:" msgstr "Розм_ір перемикача:" -#: ../src/live_effects/lpe-knot.cpp:355 +#: ../src/live_effects/lpe-knot.cpp:354 msgid "Orientation indicator/switcher size" msgstr "Розмір індикатора/перемикача орієнтації" -#: ../src/live_effects/lpe-knot.cpp:356 +#: ../src/live_effects/lpe-knot.cpp:355 msgid "Crossing Signs" msgstr "Знаки перехресть" -#: ../src/live_effects/lpe-knot.cpp:356 +#: ../src/live_effects/lpe-knot.cpp:355 msgid "Crossings signs" msgstr "Знаки перехресть" -#: ../src/live_effects/lpe-knot.cpp:627 +#: ../src/live_effects/lpe-knot.cpp:626 msgid "Drag to select a crossing, click to flip it" msgstr "Перетягніть, щоб вибрати перехрестя, клацніть, щоб віддзеркалити його" #. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:665 +#: ../src/live_effects/lpe-knot.cpp:664 msgid "Change knot crossing" msgstr "Змінити перехрестя у вузлі" @@ -10244,258 +10300,262 @@ msgid "Mirror movements in vertical" msgstr "Дзеркальні пересування вертикально" #: ../src/live_effects/lpe-lattice2.cpp:49 +msgid "Update while moving knots (maybe slow)" +msgstr "Оновлювати під час пересування вузлів (уповільнює роботу)" + +#: ../src/live_effects/lpe-lattice2.cpp:50 msgid "Control 0:" msgstr "Керування 0:" -#: ../src/live_effects/lpe-lattice2.cpp:49 +#: ../src/live_effects/lpe-lattice2.cpp:50 msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 0 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:50 +#: ../src/live_effects/lpe-lattice2.cpp:51 msgid "Control 1:" msgstr "Керування 1:" -#: ../src/live_effects/lpe-lattice2.cpp:50 +#: ../src/live_effects/lpe-lattice2.cpp:51 msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 1 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:51 +#: ../src/live_effects/lpe-lattice2.cpp:52 msgid "Control 2:" msgstr "Керування 2:" -#: ../src/live_effects/lpe-lattice2.cpp:51 +#: ../src/live_effects/lpe-lattice2.cpp:52 msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 2 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:52 +#: ../src/live_effects/lpe-lattice2.cpp:53 msgid "Control 3:" msgstr "Керування 3:" -#: ../src/live_effects/lpe-lattice2.cpp:52 +#: ../src/live_effects/lpe-lattice2.cpp:53 msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 3 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:53 +#: ../src/live_effects/lpe-lattice2.cpp:54 msgid "Control 4:" msgstr "Керування 4:" -#: ../src/live_effects/lpe-lattice2.cpp:53 +#: ../src/live_effects/lpe-lattice2.cpp:54 msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 4 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:54 +#: ../src/live_effects/lpe-lattice2.cpp:55 msgid "Control 5:" msgstr "Керування 5:" -#: ../src/live_effects/lpe-lattice2.cpp:54 +#: ../src/live_effects/lpe-lattice2.cpp:55 msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 5 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:55 +#: ../src/live_effects/lpe-lattice2.cpp:56 msgid "Control 6:" msgstr "Керування 6:" -#: ../src/live_effects/lpe-lattice2.cpp:55 +#: ../src/live_effects/lpe-lattice2.cpp:56 msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 6 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:56 +#: ../src/live_effects/lpe-lattice2.cpp:57 msgid "Control 7:" msgstr "Керування 7:" -#: ../src/live_effects/lpe-lattice2.cpp:56 +#: ../src/live_effects/lpe-lattice2.cpp:57 msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 7 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:57 +#: ../src/live_effects/lpe-lattice2.cpp:58 msgid "Control 8x9:" msgstr "Керування 8⨯9:" -#: ../src/live_effects/lpe-lattice2.cpp:57 +#: ../src/live_effects/lpe-lattice2.cpp:58 msgid "" "Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 8⨯9 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:58 +#: ../src/live_effects/lpe-lattice2.cpp:59 msgid "Control 10x11:" msgstr "Керування 10⨯11:" -#: ../src/live_effects/lpe-lattice2.cpp:58 +#: ../src/live_effects/lpe-lattice2.cpp:59 msgid "" "Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 10⨯11 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:59 +#: ../src/live_effects/lpe-lattice2.cpp:60 msgid "Control 12:" msgstr "Керування 12:" -#: ../src/live_effects/lpe-lattice2.cpp:59 +#: ../src/live_effects/lpe-lattice2.cpp:60 msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 12 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:60 +#: ../src/live_effects/lpe-lattice2.cpp:61 msgid "Control 13:" msgstr "Керування 13:" -#: ../src/live_effects/lpe-lattice2.cpp:60 +#: ../src/live_effects/lpe-lattice2.cpp:61 msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 13 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:61 +#: ../src/live_effects/lpe-lattice2.cpp:62 msgid "Control 14:" msgstr "Керування 14:" -#: ../src/live_effects/lpe-lattice2.cpp:61 +#: ../src/live_effects/lpe-lattice2.cpp:62 msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 14 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:62 +#: ../src/live_effects/lpe-lattice2.cpp:63 msgid "Control 15:" msgstr "Керування 15:" -#: ../src/live_effects/lpe-lattice2.cpp:62 +#: ../src/live_effects/lpe-lattice2.cpp:63 msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 15 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:63 +#: ../src/live_effects/lpe-lattice2.cpp:64 msgid "Control 16:" msgstr "Керування 16:" -#: ../src/live_effects/lpe-lattice2.cpp:63 +#: ../src/live_effects/lpe-lattice2.cpp:64 msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 16 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:64 +#: ../src/live_effects/lpe-lattice2.cpp:65 msgid "Control 17:" msgstr "Керування 17:" -#: ../src/live_effects/lpe-lattice2.cpp:64 +#: ../src/live_effects/lpe-lattice2.cpp:65 msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 17 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:65 +#: ../src/live_effects/lpe-lattice2.cpp:66 msgid "Control 18:" msgstr "Керування 18:" -#: ../src/live_effects/lpe-lattice2.cpp:65 +#: ../src/live_effects/lpe-lattice2.cpp:66 msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 18 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:66 +#: ../src/live_effects/lpe-lattice2.cpp:67 msgid "Control 19:" msgstr "Керування 19:" -#: ../src/live_effects/lpe-lattice2.cpp:66 +#: ../src/live_effects/lpe-lattice2.cpp:67 msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 19 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:67 +#: ../src/live_effects/lpe-lattice2.cpp:68 msgid "Control 20x21:" msgstr "Керування 20⨯21:" -#: ../src/live_effects/lpe-lattice2.cpp:67 +#: ../src/live_effects/lpe-lattice2.cpp:68 msgid "" "Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 20⨯21 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:68 +#: ../src/live_effects/lpe-lattice2.cpp:69 msgid "Control 22x23:" msgstr "Керування 22⨯23:" -#: ../src/live_effects/lpe-lattice2.cpp:68 +#: ../src/live_effects/lpe-lattice2.cpp:69 msgid "" "Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 22⨯23 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:69 +#: ../src/live_effects/lpe-lattice2.cpp:70 msgid "Control 24x26:" msgstr "Керування 24⨯26:" -#: ../src/live_effects/lpe-lattice2.cpp:69 +#: ../src/live_effects/lpe-lattice2.cpp:70 msgid "" "Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 24⨯26 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:70 +#: ../src/live_effects/lpe-lattice2.cpp:71 msgid "Control 25x27:" msgstr "Керування 25⨯27:" -#: ../src/live_effects/lpe-lattice2.cpp:70 +#: ../src/live_effects/lpe-lattice2.cpp:71 msgid "" "Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 25⨯27 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:71 +#: ../src/live_effects/lpe-lattice2.cpp:72 msgid "Control 28x30:" msgstr "Керування 28⨯30:" -#: ../src/live_effects/lpe-lattice2.cpp:71 +#: ../src/live_effects/lpe-lattice2.cpp:72 msgid "" "Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 28⨯30 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:72 +#: ../src/live_effects/lpe-lattice2.cpp:73 msgid "Control 29x31:" msgstr "Керування 29⨯31:" -#: ../src/live_effects/lpe-lattice2.cpp:72 +#: ../src/live_effects/lpe-lattice2.cpp:73 msgid "" "Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Керування 29⨯31 — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:73 +#: ../src/live_effects/lpe-lattice2.cpp:74 msgid "Control 32x33x34x35:" msgstr "Керування 32⨯33⨯34⨯35:" -#: ../src/live_effects/lpe-lattice2.cpp:73 +#: ../src/live_effects/lpe-lattice2.cpp:74 msgid "" "Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along " "axes" @@ -10503,19 +10563,85 @@ msgstr "" "Керування 32⨯33⨯34⨯35 — Ctrl+Alt+клацання, щоб скинути, Ctrl, " "щоб рухатися вздовж осей" -#: ../src/live_effects/lpe-lattice2.cpp:236 +#: ../src/live_effects/lpe-lattice2.cpp:239 msgid "Reset grid" msgstr "Скинути сітку" -#: ../src/live_effects/lpe-lattice2.cpp:268 -#: ../src/live_effects/lpe-lattice2.cpp:283 +#: ../src/live_effects/lpe-lattice2.cpp:271 +#: ../src/live_effects/lpe-lattice2.cpp:286 msgid "Show Points" msgstr "Показати точки" -#: ../src/live_effects/lpe-lattice2.cpp:281 +#: ../src/live_effects/lpe-lattice2.cpp:284 msgid "Hide Points" msgstr "Приховати точки" +#: ../src/live_effects/lpe-mirror_symmetry.cpp:36 +msgid "Vertical Page Center" +msgstr "Центр сторінки за вертикаллю" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:37 +msgid "Horizontal Page Center" +msgstr "Центр сторінки за горизонталлю" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:38 +msgid "Free from reflection line" +msgstr "Довільно від лінії відбиття" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:39 +msgid "X from middle knot" +msgstr "За X від середнього вузла" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:40 +msgid "Y from middle knot" +msgstr "За Y від середнього вузла" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:72 +#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253 +msgid "Mode" +msgstr "Режим" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:72 +msgid "Symmetry move mode" +msgstr "Режим симетричного пересування" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:73 +msgid "Discard original path?" +msgstr "Відкинути початковий контур?" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:73 +msgid "Check this to only keep the mirrored part of the path" +msgstr "" +"Позначте цей пункт, щоб програма зберегла лише віддзеркалену частину контуру" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:74 +msgid "Fuse paths" +msgstr "Об’єднати контури" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:74 +msgid "Fuse original and the reflection into a single path" +msgstr "Об’єднати оригінал і відбиток у єдиний контур" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:75 +msgid "Oposite fuse" +msgstr "" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:75 +msgid "Picks the other side of the mirror as the original" +msgstr "Визначає зображення по той бік дзеркала як оригінал" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:76 +msgid "Start mirror line" +msgstr "Початок лінії віддзеркалення" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:77 +msgid "End mirror line" +msgstr "Кінець лінії віддзеркалення" + +#: ../src/live_effects/lpe-mirror_symmetry.cpp:335 +msgid "Adjust the center" +msgstr "Скоригувати центр" + #: ../src/live_effects/lpe-patternalongpath.cpp:63 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -10671,7 +10797,7 @@ msgstr "" "Нижній правий — Ctrl+Alt+клацання, щоб скинути, Ctrl, щоб " "рухатися вздовж осей" -#: ../src/live_effects/lpe-perspective-envelope.cpp:268 +#: ../src/live_effects/lpe-perspective-envelope.cpp:269 msgid "Handles:" msgstr "Елементи керування:" @@ -10729,7 +10855,7 @@ msgid "Determines the shape of the path's start" msgstr "Визначає форму початку контуру" #: ../src/live_effects/lpe-powerstroke.cpp:183 -#: ../src/widgets/stroke-style.cpp:278 +#: ../src/widgets/stroke-style.cpp:335 msgid "Maximum length of the miter (in units of stroke width)" msgstr "Найбільша довжина вістря (у одиницях товщини штриха)" @@ -11006,20 +11132,20 @@ msgstr "Сумісне із інструментом «Розкидання»" msgid "For use with spray tool in copy mode" msgstr "Для використання із інструментом розкидання у режимі копіювання" -#: ../src/live_effects/lpe-roughen.cpp:123 +#: ../src/live_effects/lpe-roughen.cpp:121 msgid "Add nodes Subdivide each segment" msgstr "Додати вузли — поділити кожен із сегментів" -#: ../src/live_effects/lpe-roughen.cpp:132 +#: ../src/live_effects/lpe-roughen.cpp:130 msgid "Jitter nodes Move nodes/handles" msgstr "" "Тремтіння вузлів — пересунути вузли або елементи керування (вуса)" -#: ../src/live_effects/lpe-roughen.cpp:141 +#: ../src/live_effects/lpe-roughen.cpp:139 msgid "Extra roughen Add a extra layer of rough" msgstr "Додаткове згрубішання — додати додатковий шар згрубішання" -#: ../src/live_effects/lpe-roughen.cpp:150 +#: ../src/live_effects/lpe-roughen.cpp:148 msgid "Options Modify options to rough" msgstr "Параметри змінити параметри грубішання" @@ -11048,13 +11174,13 @@ msgstr "Немає" #: ../src/live_effects/lpe-ruler.cpp:33 #: ../src/live_effects/lpe-transform_2pts.cpp:37 -#: ../src/ui/tools/measure-tool.cpp:728 ../src/widgets/arc-toolbar.cpp:319 +#: ../src/ui/tools/measure-tool.cpp:756 ../src/widgets/arc-toolbar.cpp:319 msgid "Start" msgstr "Початок" #: ../src/live_effects/lpe-ruler.cpp:34 #: ../src/live_effects/lpe-transform_2pts.cpp:38 -#: ../src/ui/tools/measure-tool.cpp:729 ../src/widgets/arc-toolbar.cpp:332 +#: ../src/ui/tools/measure-tool.cpp:757 ../src/widgets/arc-toolbar.cpp:332 msgid "End" msgstr "Кінець" @@ -11074,7 +11200,7 @@ msgstr "Відстань між послідовними позначками н msgid "Unit:" msgstr "Одиниця:" -#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:202 +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:211 msgid "Unit" msgstr "Одиниця" @@ -11288,7 +11414,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "Кількість ліній побудови (дотичних) для малювання" #: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "Масштаб:" @@ -11347,7 +11473,7 @@ msgid "Extrapolated" msgstr "Екстраполяція" #: ../src/live_effects/lpe-taperstroke.cpp:73 -#: ../share/extensions/edge3d.inx.h:5 +#: ../share/extensions/edge3d.inx.h:5 ../share/extensions/nicechart.inx.h:25 msgid "Stroke width:" msgstr "Товщина штриха:" @@ -11463,16 +11589,16 @@ msgstr "Останній вузол" msgid "Rotation helper size" msgstr "Розмір допоміжного елемента обертання" -#: ../src/live_effects/lpe-transform_2pts.cpp:197 +#: ../src/live_effects/lpe-transform_2pts.cpp:196 msgid "Change index of knot" msgstr "Змінити індекс вузла" -#: ../src/live_effects/lpe-transform_2pts.cpp:350 -#: ../src/ui/dialog/inkscape-preferences.cpp:1612 +#: ../src/live_effects/lpe-transform_2pts.cpp:349 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 #: ../src/ui/dialog/pixelartdialog.cpp:296 #: ../src/ui/dialog/svg-fonts-dialog.cpp:699 #: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:746 +#: ../src/ui/widget/preferences-widget.cpp:742 msgid "Reset" msgstr "Скинути" @@ -11592,7 +11718,7 @@ msgstr "Обернути" #: ../src/live_effects/parameter/originalpatharray.cpp:130 #: ../src/live_effects/parameter/originalpatharray.cpp:315 -#: ../src/live_effects/parameter/path.cpp:481 +#: ../src/live_effects/parameter/path.cpp:486 msgid "Link path parameter to path" msgstr "Пов'язати параметр контуру з контуром" @@ -11601,12 +11727,12 @@ msgid "Remove Path" msgstr "Вилучити контур" #: ../src/live_effects/parameter/originalpatharray.cpp:179 -#: ../src/ui/dialog/objects.cpp:1850 +#: ../src/ui/dialog/objects.cpp:1854 msgid "Move Down" msgstr "Пересунути нижче" #: ../src/live_effects/parameter/originalpatharray.cpp:191 -#: ../src/ui/dialog/objects.cpp:1858 +#: ../src/ui/dialog/objects.cpp:1862 msgid "Move Up" msgstr "Пересунути вище" @@ -11638,11 +11764,11 @@ msgstr "Вставити контур" msgid "Link to path on clipboard" msgstr "Пов’язати з контуром у буфері обміну" -#: ../src/live_effects/parameter/path.cpp:449 +#: ../src/live_effects/parameter/path.cpp:454 msgid "Paste path parameter" msgstr "Вставити параметр контуру" -#: ../src/live_effects/parameter/point.cpp:124 +#: ../src/live_effects/parameter/point.cpp:132 msgid "Change point parameter" msgstr "Змінити параметр точки" @@ -11690,41 +11816,41 @@ msgstr "" msgid "Unable to find node ID: '%s'\n" msgstr "Не вдається знайти ідентифікатор вузла: '%s'\n" -#: ../src/main.cpp:295 +#: ../src/main.cpp:300 msgid "Print the Inkscape version number" msgstr "Вивести версію Inkscape" -#: ../src/main.cpp:300 +#: ../src/main.cpp:305 msgid "Do not use X server (only process files from console)" msgstr "Не використовувати X сервер (лише консольні операції)" -#: ../src/main.cpp:305 +#: ../src/main.cpp:310 msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "" "Намагатися використовувати X сервер, навіть якщо змінну $DISPLAY не " "встановлено" -#: ../src/main.cpp:310 +#: ../src/main.cpp:315 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 +#: ../src/main.cpp:316 ../src/main.cpp:321 ../src/main.cpp:326 +#: ../src/main.cpp:398 ../src/main.cpp:403 ../src/main.cpp:408 +#: ../src/main.cpp:419 ../src/main.cpp:435 ../src/main.cpp:440 msgid "FILENAME" msgstr "НАЗВА_ФАЙЛА" -#: ../src/main.cpp:315 +#: ../src/main.cpp:320 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" "Друкувати документ(и) у вказаний файл (для передавання програмі " "використовуйте '| program')" -#: ../src/main.cpp:320 +#: ../src/main.cpp:325 msgid "Export document to a PNG file" msgstr "Експортувати документ у файл формату PNG" -#: ../src/main.cpp:325 +#: ../src/main.cpp:330 msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 96)" @@ -11732,11 +11858,11 @@ msgstr "" "Роздільна здатність для експортування у растр і для растеризації фільтрів у " "PS/EPS/PDF (типове значення 96)" -#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 +#: ../src/main.cpp:331 ../src/ui/widget/rendering-options.cpp:37 msgid "DPI" msgstr "Роздільність" -#: ../src/main.cpp:330 +#: ../src/main.cpp:335 msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" @@ -11744,29 +11870,29 @@ msgstr "" "Область експорту у одиницях SVG (типово — вся сторінка; 0,0 — лівий нижній " "кут)" -#: ../src/main.cpp:331 +#: ../src/main.cpp:336 msgid "x0:y0:x1:y1" msgstr "x0:y0:x1:y1" -#: ../src/main.cpp:335 +#: ../src/main.cpp:340 msgid "Exported area is the entire drawing (not page)" msgstr "Область експорту є суцільним малюнком (не сторінкою)" -#: ../src/main.cpp:340 +#: ../src/main.cpp:345 msgid "Exported area is the entire page" msgstr "Ділянкою експорту є вся сторінка" -#: ../src/main.cpp:345 +#: ../src/main.cpp:350 msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" msgstr "" "Лише для PS/EPS/PDF, встановлює ширину полів навколо експортованої ділянки у " "міліметрах (типово 0)" -#: ../src/main.cpp:346 ../src/main.cpp:388 +#: ../src/main.cpp:351 ../src/main.cpp:393 msgid "VALUE" msgstr "ЗНАЧЕННЯ" -#: ../src/main.cpp:350 +#: ../src/main.cpp:355 msgid "" "Snap the bitmap export area outwards to the nearest integer values (in SVG " "user units)" @@ -11774,75 +11900,75 @@ msgstr "" "Округлити область експорту растру назовні до найближчого цілого значення (у " "одиницях SVG)" -#: ../src/main.cpp:355 +#: ../src/main.cpp:360 msgid "The width of exported bitmap in pixels (overrides export-dpi)" msgstr "Ширина зображення для експорту у точках (перевизначає export-dpi)" -#: ../src/main.cpp:356 +#: ../src/main.cpp:361 msgid "WIDTH" msgstr "ШИРИНА" -#: ../src/main.cpp:360 +#: ../src/main.cpp:365 msgid "The height of exported bitmap in pixels (overrides export-dpi)" msgstr "Висота зображення для експорту у точках (перевизначає export-dpi)" -#: ../src/main.cpp:361 +#: ../src/main.cpp:366 msgid "HEIGHT" msgstr "ВИСОТА" -#: ../src/main.cpp:365 +#: ../src/main.cpp:370 msgid "The ID of the object to export" msgstr "Ідентифікатор об'єкта, що експортується" -#: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1558 +#: ../src/main.cpp:371 ../src/main.cpp:484 +#: ../src/ui/dialog/inkscape-preferences.cpp:1569 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 +#: ../src/main.cpp:377 msgid "" "Export just the object with export-id, hide all others (only with export-id)" msgstr "" "Експортувати лише об'єкт з заданим ідентифікатором, усі інші приховати (лише " "з export-id)" -#: ../src/main.cpp:377 +#: ../src/main.cpp:382 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "" "При експорті використовувати збережену назву файла та розширення (лише з " "export-id)" -#: ../src/main.cpp:382 +#: ../src/main.cpp:387 msgid "Background color of exported bitmap (any SVG-supported color string)" msgstr "" "Колір тла для експорту растрового зображення (будь-яка підтримувана SVG-" "кольорова гама)" -#: ../src/main.cpp:383 +#: ../src/main.cpp:388 msgid "COLOR" msgstr "КОЛІР" -#: ../src/main.cpp:387 +#: ../src/main.cpp:392 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "Прозорість тла для експорту растру (від 0.0 до 1.0, або від 1 до 255)" -#: ../src/main.cpp:392 +#: ../src/main.cpp:397 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" "Експортувати документ у формат «звичайний SVG» (без елементів sodipodi: або " "inkscape:)" -#: ../src/main.cpp:397 +#: ../src/main.cpp:402 msgid "Export document to a PS file" msgstr "Експортувати документ у файл формату PS" -#: ../src/main.cpp:402 +#: ../src/main.cpp:407 msgid "Export document to an EPS file" msgstr "Експортувати документ у файл формату EPS" -#: ../src/main.cpp:407 +#: ../src/main.cpp:412 msgid "" "Choose the PostScript Level used to export. Possible choices are 2 and 3 " "(the default)" @@ -11850,16 +11976,16 @@ msgstr "" "Виберіть рівень мови PostScript для експортованих даних. Можливі варіанти: 2 " "і 3 (типовий)" -#: ../src/main.cpp:409 +#: ../src/main.cpp:414 msgid "PS Level" msgstr "Рівень PS" -#: ../src/main.cpp:413 +#: ../src/main.cpp:418 msgid "Export document to a PDF file" msgstr "Експортувати документ у файл формату PDF" #. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:419 +#: ../src/main.cpp:424 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)" @@ -11868,11 +11994,11 @@ msgstr "" "з діалогового вікна експортування PDF точно (приклад: \"PDF 1.4\"), щоб " "зберегти сумісність зі стандартом PDF-a)" -#: ../src/main.cpp:420 +#: ../src/main.cpp:425 msgid "PDF_VERSION" msgstr "ВЕРСІЯ_PDF" -#: ../src/main.cpp:424 +#: ../src/main.cpp:429 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 " @@ -11883,21 +12009,21 @@ msgstr "" "накласти на дані з файла PDF/PS/EPS. Вставити результат до вашого файла " "LaTeX можна буде командою: \\input{файл_latex.tex}" -#: ../src/main.cpp:429 +#: ../src/main.cpp:434 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "Експортувати документ у файл формату EMF" -#: ../src/main.cpp:434 +#: ../src/main.cpp:439 msgid "Export document to a Windows Metafile (WMF) File" msgstr "Експортувати документ до метафайла Windows (WMF)" -#: ../src/main.cpp:439 +#: ../src/main.cpp:444 msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" msgstr "" "Перетворити тестовий об'єкт на контури під час експортування (PS, EPS, PDF? " "SVG)" -#: ../src/main.cpp:444 +#: ../src/main.cpp:449 msgid "" "Render filtered objects without filters, instead of rasterizing (PS, EPS, " "PDF)" @@ -11906,56 +12032,56 @@ msgstr "" "PDF)" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:450 +#: ../src/main.cpp:455 msgid "" "Query the X coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "Запитати X-координату рисунка чи, якщо вказано, об'єкта з --query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:456 +#: ../src/main.cpp:461 msgid "" "Query the Y coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "Запитати Y-координату рисунка чи, якщо вказано, об'єкта з --query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:462 +#: ../src/main.cpp:467 msgid "" "Query the width of the drawing or, if specified, of the object with --query-" "id" msgstr "Запитати ширину рисунка чи, якщо вказано, об'єкта з --query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:468 +#: ../src/main.cpp:473 msgid "" "Query the height of the drawing or, if specified, of the object with --query-" "id" msgstr "Запитати висоту рисунка чи, якщо вказано, об'єкта з --query-id" -#: ../src/main.cpp:473 +#: ../src/main.cpp:478 msgid "List id,x,y,w,h for all objects" msgstr "Список ід,x,y,ш,в всіх об'єктів" -#: ../src/main.cpp:478 +#: ../src/main.cpp:483 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 +#: ../src/main.cpp:489 msgid "Print out the extension directory and exit" msgstr "Вивести на екран каталог додатка і вийти" -#: ../src/main.cpp:489 +#: ../src/main.cpp:494 msgid "Remove unused definitions from the defs section(s) of the document" msgstr "Вилучити з розділу defs документа визначення, що не використовуються" -#: ../src/main.cpp:495 +#: ../src/main.cpp:500 msgid "Enter a listening loop for D-Bus messages in console mode" msgstr "" "Увійти у цикл очікування повідомлень D-Bus, працюючи у консольному режимі" -#: ../src/main.cpp:500 +#: ../src/main.cpp:505 msgid "" "Specify the D-Bus bus name to listen for messages on (default is org." "inkscape)" @@ -11963,35 +12089,35 @@ msgstr "" "Вкажіть назву каналу D-Bus, на якому слід очікувати на повідомлення (типовою " "є org.inkscape)" -#: ../src/main.cpp:501 +#: ../src/main.cpp:506 msgid "BUS-NAME" msgstr "НАЗВА-КАНАЛУ" -#: ../src/main.cpp:506 +#: ../src/main.cpp:511 msgid "List the IDs of all the verbs in Inkscape" msgstr "Список ідентифікаторів усіх дієслів у Inkscape" -#: ../src/main.cpp:511 +#: ../src/main.cpp:516 msgid "Verb to call when Inkscape opens." msgstr "Дієслово, що викликається при відкриванні Inkscape." -#: ../src/main.cpp:512 +#: ../src/main.cpp:517 msgid "VERB-ID" msgstr "ІД-ДІЄСЛОВА" -#: ../src/main.cpp:516 +#: ../src/main.cpp:521 msgid "Object ID to select when Inkscape opens." msgstr "Ідентифікатор об'єкта, який визначається при відкриванні Inkscape." -#: ../src/main.cpp:517 +#: ../src/main.cpp:522 msgid "OBJECT-ID" msgstr "ІД-ОБ'ЄКТА" -#: ../src/main.cpp:521 +#: ../src/main.cpp:526 msgid "Start Inkscape in interactive shell mode." msgstr "Запустити Inkscape у режимі інтерактивної оболонки." -#: ../src/main.cpp:871 ../src/main.cpp:1284 +#: ../src/main.cpp:876 ../src/main.cpp:1318 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -12008,11 +12134,11 @@ msgstr "_Файл" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2716 ../src/verbs.cpp:2724 +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 msgid "_Edit" msgstr "_Зміни" -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2475 +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2472 msgid "Paste Si_ze" msgstr "Вставити за р_озміром" @@ -12024,76 +12150,76 @@ msgstr "Клон_увати" msgid "Select Sa_me" msgstr "Позначи_ти те саме" -#: ../src/menus-skeleton.h:98 +#: ../src/menus-skeleton.h:100 msgid "_View" msgstr "П_ерегляд" -#: ../src/menus-skeleton.h:99 +#: ../src/menus-skeleton.h:101 msgid "_Zoom" msgstr "_Масштаб" -#: ../src/menus-skeleton.h:115 +#: ../src/menus-skeleton.h:117 msgid "_Display mode" msgstr "Режим відобра_ження" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:124 +#: ../src/menus-skeleton.h:126 msgid "_Color display mode" msgstr "Режим показу _кольорів" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:137 +#: ../src/menus-skeleton.h:139 msgid "Sh_ow/Hide" msgstr "По_казати/Сховати" #. Not quite ready to be in the menus. #. " \n" -#: ../src/menus-skeleton.h:157 +#: ../src/menus-skeleton.h:159 msgid "_Layer" msgstr "_Шар" -#: ../src/menus-skeleton.h:181 +#: ../src/menus-skeleton.h:183 msgid "_Object" msgstr "_Об'єкт" -#: ../src/menus-skeleton.h:192 +#: ../src/menus-skeleton.h:195 msgid "Cli_p" msgstr "Відсі_кання" -#: ../src/menus-skeleton.h:196 +#: ../src/menus-skeleton.h:199 msgid "Mas_k" msgstr "Ма_ска" -#: ../src/menus-skeleton.h:200 +#: ../src/menus-skeleton.h:203 msgid "Patter_n" msgstr "В_ізерунок" -#: ../src/menus-skeleton.h:224 +#: ../src/menus-skeleton.h:227 msgid "_Path" msgstr "_Контур" -#: ../src/menus-skeleton.h:256 ../src/ui/dialog/find.cpp:78 +#: ../src/menus-skeleton.h:259 ../src/ui/dialog/find.cpp:78 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "_Текст" -#: ../src/menus-skeleton.h:274 +#: ../src/menus-skeleton.h:277 msgid "Filter_s" msgstr "Філ_ьтри" -#: ../src/menus-skeleton.h:280 +#: ../src/menus-skeleton.h:283 msgid "Exte_nsions" msgstr "Дод_атки" -#: ../src/menus-skeleton.h:286 +#: ../src/menus-skeleton.h:289 msgid "_Help" msgstr "_Довідка" -#: ../src/menus-skeleton.h:290 +#: ../src/menus-skeleton.h:293 msgid "Tutorials" msgstr "Підручники" @@ -12121,43 +12247,43 @@ msgstr "Виберіть контур(и) для розділення." msgid "Breaking apart paths..." msgstr "Поділ контурів на частини…" -#: ../src/path-chemistry.cpp:287 +#: ../src/path-chemistry.cpp:282 msgid "Break apart" msgstr "Розділення" -#: ../src/path-chemistry.cpp:289 +#: ../src/path-chemistry.cpp:285 msgid "No path(s) to break apart in the selection." msgstr "У позначеному немає контурів, що можуть розділитись." -#: ../src/path-chemistry.cpp:299 +#: ../src/path-chemistry.cpp:295 msgid "Select object(s) to convert to path." msgstr "Позначте об'єкти для перетворення у контур." -#: ../src/path-chemistry.cpp:305 +#: ../src/path-chemistry.cpp:301 msgid "Converting objects to paths..." msgstr "Перетворення об'єктів на контури…" -#: ../src/path-chemistry.cpp:324 +#: ../src/path-chemistry.cpp:320 msgid "Object to path" msgstr "Об'єкт у контур" -#: ../src/path-chemistry.cpp:326 +#: ../src/path-chemistry.cpp:322 msgid "No objects to convert to path in the selection." msgstr "У позначеному немає об'єктів, що перетворюються у контур." -#: ../src/path-chemistry.cpp:613 +#: ../src/path-chemistry.cpp:609 msgid "Select path(s) to reverse." msgstr "Виберіть контур(и) для зміни напряму." -#: ../src/path-chemistry.cpp:622 +#: ../src/path-chemistry.cpp:618 msgid "Reversing paths..." msgstr "Розвертання контурів…" -#: ../src/path-chemistry.cpp:657 +#: ../src/path-chemistry.cpp:653 msgid "Reverse path" msgstr "Розвернути контур" -#: ../src/path-chemistry.cpp:659 +#: ../src/path-chemistry.cpp:655 msgid "No paths to reverse in the selection." msgstr "У позначеному немає контурів для зміни напряму." @@ -12358,7 +12484,7 @@ msgstr "Зв'язок:" msgid "A related resource" msgstr "Пов’язаний ресурс" -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1914 +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1925 msgid "Language:" msgstr "Мова:" @@ -12440,7 +12566,7 @@ msgstr "Нічого не було вилучено." #: ../src/selection-chemistry.cpp:426 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 #: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 -#: ../src/widgets/eraser-toolbar.cpp:93 +#: ../src/widgets/eraser-toolbar.cpp:120 #: ../src/widgets/gradient-toolbar.cpp:1181 #: ../src/widgets/gradient-toolbar.cpp:1195 #: ../src/widgets/gradient-toolbar.cpp:1209 @@ -12471,239 +12597,251 @@ msgid "Group" msgstr "Згрупувати" #: ../src/selection-chemistry.cpp:798 +msgid "No objects selected to pop out of group." +msgstr "Немає позначених об'єктів для виключення з групи." + +#: ../src/selection-chemistry.cpp:808 +msgid "Selection not in a group." +msgstr "Позначене не є частиною групи." + +#: ../src/selection-chemistry.cpp:822 +msgid "Pop selection from group" +msgstr "Виключити позначене з групи" + +#: ../src/selection-chemistry.cpp:830 msgid "Select a group to ungroup." msgstr "Позначте групу для розгрупування." -#: ../src/selection-chemistry.cpp:813 +#: ../src/selection-chemistry.cpp:845 msgid "No groups to ungroup in the selection." msgstr "У позначеному немає груп." -#: ../src/selection-chemistry.cpp:869 ../src/sp-item-group.cpp:550 -#: ../src/ui/dialog/objects.cpp:1912 +#: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:550 +#: ../src/ui/dialog/objects.cpp:1916 msgid "Ungroup" msgstr "Розгрупувати" -#: ../src/selection-chemistry.cpp:956 +#: ../src/selection-chemistry.cpp:988 msgid "Select object(s) to raise." msgstr "Оберіть об'єкт(и) для підняття." -#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1015 -#: ../src/selection-chemistry.cpp:1041 ../src/selection-chemistry.cpp:1099 +#: ../src/selection-chemistry.cpp:994 ../src/selection-chemistry.cpp:1047 +#: ../src/selection-chemistry.cpp:1073 ../src/selection-chemistry.cpp:1131 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:999 +#: ../src/selection-chemistry.cpp:1031 msgctxt "Undo action" msgid "Raise" msgstr "підняття" -#: ../src/selection-chemistry.cpp:1007 +#: ../src/selection-chemistry.cpp:1039 msgid "Select object(s) to raise to top." msgstr "Позначте об'єкт(и) для піднімання нагору." -#: ../src/selection-chemistry.cpp:1028 +#: ../src/selection-chemistry.cpp:1060 msgid "Raise to top" msgstr "Підняти на передній план" -#: ../src/selection-chemistry.cpp:1035 +#: ../src/selection-chemistry.cpp:1067 msgid "Select object(s) to lower." msgstr "Позначте об'єкт(и) для опускання." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1083 +#: ../src/selection-chemistry.cpp:1115 msgctxt "Undo action" msgid "Lower" msgstr "опускання" -#: ../src/selection-chemistry.cpp:1091 +#: ../src/selection-chemistry.cpp:1123 msgid "Select object(s) to lower to bottom." msgstr "Позначте об'єкт(и) для опускання на низ." -#: ../src/selection-chemistry.cpp:1122 +#: ../src/selection-chemistry.cpp:1154 msgid "Lower to bottom" msgstr "Опустити на задній план" -#: ../src/selection-chemistry.cpp:1132 +#: ../src/selection-chemistry.cpp:1164 msgid "Nothing to undo." msgstr "Немає операцій, що можна скасувати." -#: ../src/selection-chemistry.cpp:1143 +#: ../src/selection-chemistry.cpp:1175 msgid "Nothing to redo." msgstr "Немає операцій, що можна вернути." -#: ../src/selection-chemistry.cpp:1215 +#: ../src/selection-chemistry.cpp:1247 msgid "Paste" msgstr "Вставити" -#: ../src/selection-chemistry.cpp:1223 +#: ../src/selection-chemistry.cpp:1255 msgid "Paste style" msgstr "Вставити стиль" -#: ../src/selection-chemistry.cpp:1233 +#: ../src/selection-chemistry.cpp:1265 msgid "Paste live path effect" msgstr "Вставити ефект динамічного контуру" -#: ../src/selection-chemistry.cpp:1255 +#: ../src/selection-chemistry.cpp:1287 msgid "Select object(s) to remove live path effects from." msgstr "Оберіть об'єкт(и) для вилучення анімованих ефектів контурів." -#: ../src/selection-chemistry.cpp:1267 +#: ../src/selection-chemistry.cpp:1299 msgid "Remove live path effect" msgstr "Вилучити анімований ефект контуру" -#: ../src/selection-chemistry.cpp:1278 +#: ../src/selection-chemistry.cpp:1310 msgid "Select object(s) to remove filters from." msgstr "Виберіть об'єкт(и), з яких слід вилучити фільтри." -#: ../src/selection-chemistry.cpp:1288 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/selection-chemistry.cpp:1320 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1695 msgid "Remove filter" msgstr "Вилучити фільтр" -#: ../src/selection-chemistry.cpp:1297 +#: ../src/selection-chemistry.cpp:1329 msgid "Paste size" msgstr "Вставити розмір" -#: ../src/selection-chemistry.cpp:1306 +#: ../src/selection-chemistry.cpp:1338 msgid "Paste size separately" msgstr "Вставити розмір окремо" -#: ../src/selection-chemistry.cpp:1335 +#: ../src/selection-chemistry.cpp:1367 msgid "Select object(s) to move to the layer above." msgstr "Позначте об'єкти для переміщення на шар вище." -#: ../src/selection-chemistry.cpp:1361 +#: ../src/selection-chemistry.cpp:1393 msgid "Raise to next layer" msgstr "Піднятися на наступний шар" -#: ../src/selection-chemistry.cpp:1368 +#: ../src/selection-chemistry.cpp:1400 msgid "No more layers above." msgstr "Більше немає вищих шарів." -#: ../src/selection-chemistry.cpp:1379 +#: ../src/selection-chemistry.cpp:1411 msgid "Select object(s) to move to the layer below." msgstr "Позначте об'єкти для переміщення на шар нижче." -#: ../src/selection-chemistry.cpp:1405 +#: ../src/selection-chemistry.cpp:1437 msgid "Lower to previous layer" msgstr "Опуститися на попередній шар" -#: ../src/selection-chemistry.cpp:1412 +#: ../src/selection-chemistry.cpp:1444 msgid "No more layers below." msgstr "Немає нижчого шару." -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1454 msgid "Select object(s) to move." msgstr "Позначте об'єкти для пересування." -#: ../src/selection-chemistry.cpp:1440 ../src/verbs.cpp:2659 +#: ../src/selection-chemistry.cpp:1472 ../src/verbs.cpp:2658 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:1529 ../src/seltrans.cpp:391 +#: ../src/selection-chemistry.cpp:1561 ../src/seltrans.cpp:391 msgid "Cannot transform an embedded SVG." msgstr "Перетворення вбудованого SVG неможливе." -#: ../src/selection-chemistry.cpp:1699 +#: ../src/selection-chemistry.cpp:1731 msgid "Remove transform" msgstr "Прибрати трансформацію" -#: ../src/selection-chemistry.cpp:1806 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CCW" msgstr "Обернути на 90° проти годинникової стрілки" -#: ../src/selection-chemistry.cpp:1806 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CW" msgstr "Обернути на 90° за годинниковою стрілкою" -#: ../src/selection-chemistry.cpp:1827 ../src/seltrans.cpp:484 +#: ../src/selection-chemistry.cpp:1859 ../src/seltrans.cpp:484 #: ../src/ui/dialog/transformation.cpp:890 msgid "Rotate" msgstr "Обертати" -#: ../src/selection-chemistry.cpp:2176 +#: ../src/selection-chemistry.cpp:2208 msgid "Rotate by pixels" msgstr "Обертати поточково" -#: ../src/selection-chemistry.cpp:2206 ../src/seltrans.cpp:481 +#: ../src/selection-chemistry.cpp:2238 ../src/seltrans.cpp:481 #: ../src/ui/dialog/transformation.cpp:864 ../src/ui/widget/page-sizer.cpp:450 #: ../share/extensions/interp_att_g.inx.h:14 msgid "Scale" msgstr "Масштабувати" -#: ../src/selection-chemistry.cpp:2231 +#: ../src/selection-chemistry.cpp:2263 msgid "Scale by whole factor" msgstr "Масштабувати за повним коефіцієнтом" -#: ../src/selection-chemistry.cpp:2246 +#: ../src/selection-chemistry.cpp:2278 msgid "Move vertically" msgstr "Перемістити вертикально" -#: ../src/selection-chemistry.cpp:2249 +#: ../src/selection-chemistry.cpp:2281 msgid "Move horizontally" msgstr "Перемістити горизонтально" -#: ../src/selection-chemistry.cpp:2252 ../src/selection-chemistry.cpp:2278 +#: ../src/selection-chemistry.cpp:2284 ../src/selection-chemistry.cpp:2310 #: ../src/seltrans.cpp:478 ../src/ui/dialog/transformation.cpp:801 msgid "Move" msgstr "Перемістити" -#: ../src/selection-chemistry.cpp:2272 +#: ../src/selection-chemistry.cpp:2304 msgid "Move vertically by pixels" msgstr "Перемістити вертикально поточково" -#: ../src/selection-chemistry.cpp:2275 +#: ../src/selection-chemistry.cpp:2307 msgid "Move horizontally by pixels" msgstr "Перемістити горизонтально поточково" -#: ../src/selection-chemistry.cpp:2478 +#: ../src/selection-chemistry.cpp:2510 msgid "The selection has no applied path effect." msgstr "Обране не має застосованого ефекту контуру." -#: ../src/selection-chemistry.cpp:2570 ../src/ui/dialog/clonetiler.cpp:2230 +#: ../src/selection-chemistry.cpp:2602 ../src/ui/dialog/clonetiler.cpp:2238 msgid "Select an object to clone." msgstr "Позначте об'єкт для клонування." -#: ../src/selection-chemistry.cpp:2605 +#: ../src/selection-chemistry.cpp:2637 msgctxt "Action" msgid "Clone" msgstr "Клонувати" -#: ../src/selection-chemistry.cpp:2619 +#: ../src/selection-chemistry.cpp:2651 msgid "Select clones to relink." msgstr "Позначте клон для перез'єднання." -#: ../src/selection-chemistry.cpp:2626 +#: ../src/selection-chemistry.cpp:2658 msgid "Copy an object to clipboard to relink clones to." msgstr "" "Копіювати об'єкт до буфера обміну інформації для перез'єднання клонів." -#: ../src/selection-chemistry.cpp:2647 +#: ../src/selection-chemistry.cpp:2679 msgid "No clones to relink in the selection." msgstr "У позначеному немає клонів для перез'єднання." -#: ../src/selection-chemistry.cpp:2650 +#: ../src/selection-chemistry.cpp:2682 msgid "Relink clone" msgstr "Перез'єднати клон" -#: ../src/selection-chemistry.cpp:2664 +#: ../src/selection-chemistry.cpp:2696 msgid "Select clones to unlink." msgstr "Позначте клон для від'єднання." -#: ../src/selection-chemistry.cpp:2717 +#: ../src/selection-chemistry.cpp:2749 msgid "No clones to unlink in the selection." msgstr "У позначеному немає клонів." -#: ../src/selection-chemistry.cpp:2721 +#: ../src/selection-chemistry.cpp:2753 msgid "Unlink clone" msgstr "Від'єднати клон" -#: ../src/selection-chemistry.cpp:2734 +#: ../src/selection-chemistry.cpp:2766 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 " @@ -12713,7 +12851,7 @@ msgstr "" "перейти до її контуру; текст вздовж контуру, щоб перейти до його " "контуру. Позначте текст у рамці, щоб перейти до рамки." -#: ../src/selection-chemistry.cpp:2784 +#: ../src/selection-chemistry.cpp:2816 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" @@ -12721,7 +12859,7 @@ msgstr "" "Не вдається знайти об'єкт, що позначається (осиротілий клон, втяжка, " "текст вздовж контуру чи текст у рамці?)" -#: ../src/selection-chemistry.cpp:2790 +#: ../src/selection-chemistry.cpp:2822 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" @@ -12729,132 +12867,132 @@ msgstr "" "Об'єкт, який ви намагаєтесь позначити, є невидимим (знаходиться у <" "defs>)" -#: ../src/selection-chemistry.cpp:2880 +#: ../src/selection-chemistry.cpp:2912 msgid "Select path(s) to fill." msgstr "Позначте контури для заповнення." -#: ../src/selection-chemistry.cpp:2898 +#: ../src/selection-chemistry.cpp:2930 msgid "Select object(s) to convert to marker." msgstr "Позначте об'єкт(и) для перетворення у маркер." -#: ../src/selection-chemistry.cpp:2972 +#: ../src/selection-chemistry.cpp:3004 msgid "Objects to marker" msgstr "Об'єкти у маркер" -#: ../src/selection-chemistry.cpp:2998 +#: ../src/selection-chemistry.cpp:3030 msgid "Select object(s) to convert to guides." msgstr "Позначте об'єкт(и) для перетворення у напрямні." -#: ../src/selection-chemistry.cpp:3019 +#: ../src/selection-chemistry.cpp:3051 msgid "Objects to guides" msgstr "Об'єкти у напрямні" -#: ../src/selection-chemistry.cpp:3055 +#: ../src/selection-chemistry.cpp:3087 msgid "Select objects to convert to symbol." msgstr "Позначте об’єкти для перетворення на символ." -#: ../src/selection-chemistry.cpp:3156 +#: ../src/selection-chemistry.cpp:3188 msgid "Group to symbol" msgstr "Групу у символ" -#: ../src/selection-chemistry.cpp:3175 +#: ../src/selection-chemistry.cpp:3207 msgid "Select a symbol to extract objects from." msgstr "Позначте символ для видобування з нього об’єктів." -#: ../src/selection-chemistry.cpp:3184 +#: ../src/selection-chemistry.cpp:3216 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" "Позначте лише один символ у діалоговому вікні символів для " "перетворення на групу." -#: ../src/selection-chemistry.cpp:3240 +#: ../src/selection-chemistry.cpp:3272 msgid "Group from symbol" msgstr "Група з символу" -#: ../src/selection-chemistry.cpp:3258 +#: ../src/selection-chemistry.cpp:3290 msgid "Select object(s) to convert to pattern." msgstr "Позначте об'єкт(и) для перетворення у візерунок." -#: ../src/selection-chemistry.cpp:3354 +#: ../src/selection-chemistry.cpp:3386 msgid "Objects to pattern" msgstr "Об'єкти у візерунок" -#: ../src/selection-chemistry.cpp:3370 +#: ../src/selection-chemistry.cpp:3402 msgid "Select an object with pattern fill to extract objects from." msgstr "" "Позначте об'єкт із заповненням візерунком для витягування об'єктів з " "нього." -#: ../src/selection-chemistry.cpp:3429 +#: ../src/selection-chemistry.cpp:3461 msgid "No pattern fills in the selection." msgstr "У позначеному немає заповнення візерунком." -#: ../src/selection-chemistry.cpp:3432 +#: ../src/selection-chemistry.cpp:3464 msgid "Pattern to objects" msgstr "Візерунок у об'єкти" -#: ../src/selection-chemistry.cpp:3518 +#: ../src/selection-chemistry.cpp:3550 msgid "Select object(s) to make a bitmap copy." msgstr "Позначте об'єкти для створення їхньої растрової копії." -#: ../src/selection-chemistry.cpp:3522 +#: ../src/selection-chemistry.cpp:3554 msgid "Rendering bitmap..." msgstr "Показ растрового зображення…" -#: ../src/selection-chemistry.cpp:3707 +#: ../src/selection-chemistry.cpp:3739 msgid "Create bitmap" msgstr "Створення растрового зображення" -#: ../src/selection-chemistry.cpp:3732 ../src/selection-chemistry.cpp:3844 +#: ../src/selection-chemistry.cpp:3764 ../src/selection-chemistry.cpp:3876 msgid "Select object(s) to create clippath or mask from." msgstr "" "Оберіть об'єкт(и) для створення з них контуру вирізання або маски." -#: ../src/selection-chemistry.cpp:3818 ../src/ui/dialog/objects.cpp:1918 +#: ../src/selection-chemistry.cpp:3850 ../src/ui/dialog/objects.cpp:1922 msgid "Create Clip Group" msgstr "Створити групу-обгортку" -#: ../src/selection-chemistry.cpp:3847 +#: ../src/selection-chemistry.cpp:3879 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" "Оберіть об'єкт-маску та об'єкт(и) для застосування вирізання або " "маскування." -#: ../src/selection-chemistry.cpp:3994 +#: ../src/selection-chemistry.cpp:4026 msgid "Set clipping path" msgstr "Задати контур вирізання" -#: ../src/selection-chemistry.cpp:3996 +#: ../src/selection-chemistry.cpp:4028 msgid "Set mask" msgstr "Задати маску" -#: ../src/selection-chemistry.cpp:4011 +#: ../src/selection-chemistry.cpp:4043 msgid "Select object(s) to remove clippath or mask from." msgstr "" "Оберіть об'єкт(и) для вилучення контуру вирізання або маскування." -#: ../src/selection-chemistry.cpp:4127 +#: ../src/selection-chemistry.cpp:4159 msgid "Release clipping path" msgstr "Від'єднати закріплений контур" -#: ../src/selection-chemistry.cpp:4129 +#: ../src/selection-chemistry.cpp:4161 msgid "Release mask" msgstr "Маску знято" -#: ../src/selection-chemistry.cpp:4148 +#: ../src/selection-chemistry.cpp:4180 msgid "Select object(s) to fit canvas to." msgstr "Оберіть об'єкт(и) для підбирання їхніх розмірів під полотно." #. Fit Page -#: ../src/selection-chemistry.cpp:4168 ../src/verbs.cpp:3007 +#: ../src/selection-chemistry.cpp:4200 ../src/verbs.cpp:3004 msgid "Fit Page to Selection" msgstr "Підігнати полотно до позначеної області" -#: ../src/selection-chemistry.cpp:4197 ../src/verbs.cpp:3009 +#: ../src/selection-chemistry.cpp:4229 ../src/verbs.cpp:3006 msgid "Fit Page to Drawing" msgstr "Підігнати полотно під намальоване" -#: ../src/selection-chemistry.cpp:4218 ../src/verbs.cpp:3011 +#: ../src/selection-chemistry.cpp:4250 msgid "Fit Page to Selection or Drawing" msgstr "Підігнати полотно під позначену область чи область креслення" @@ -13076,8 +13214,8 @@ msgstr "Дуга" #. Ellipse #: ../src/sp-ellipse.cpp:367 ../src/sp-ellipse.cpp:374 -#: ../src/ui/dialog/inkscape-preferences.cpp:412 -#: ../src/widgets/pencil-toolbar.cpp:178 +#: ../src/ui/dialog/inkscape-preferences.cpp:421 +#: ../src/widgets/pencil-toolbar.cpp:179 msgid "Ellipse" msgstr "Еліпс" @@ -13106,7 +13244,7 @@ msgstr "Контурний текст" msgid "Linked Flowed Text" msgstr "Пов’язаний контурний текст" -#: ../src/sp-flowtext.cpp:290 ../src/sp-text.cpp:377 +#: ../src/sp-flowtext.cpp:290 ../src/sp-text.cpp:380 #: ../src/ui/tools/text-tool.cpp:1556 msgid " [truncated]" msgstr " (обрізано)" @@ -13123,7 +13261,7 @@ msgstr[2] "(%d символів%s)" msgid "Create Guides Around the Page" msgstr "Створити напрямні навколо сторінки" -#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2547 +#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2544 msgid "Delete All Guides" msgstr "Вилучити всі напрямні" @@ -13169,7 +13307,7 @@ msgstr "[помилкове посилання]: %s" msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:307 ../src/ui/dialog/objects.cpp:1911 +#: ../src/sp-item-group.cpp:307 ../src/ui/dialog/objects.cpp:1915 msgid "Group" msgstr "Згрупувати" @@ -13183,26 +13321,26 @@ msgstr "з %d об'єкта" msgid "of %d objects" msgstr "з %d об'єкта" -#: ../src/sp-item.cpp:1030 ../src/verbs.cpp:213 +#: ../src/sp-item.cpp:1031 ../src/verbs.cpp:213 msgid "Object" msgstr "Об'єкт" -#: ../src/sp-item.cpp:1042 +#: ../src/sp-item.cpp:1043 #, c-format msgid "%s; clipped" msgstr "%s; закріплено" -#: ../src/sp-item.cpp:1048 +#: ../src/sp-item.cpp:1049 #, c-format msgid "%s; masked" msgstr "%s; масковано" -#: ../src/sp-item.cpp:1058 +#: ../src/sp-item.cpp:1059 #, c-format msgid "%s; filtered (%s)" msgstr "%s; відфільтровано (%s)" -#: ../src/sp-item.cpp:1060 +#: ../src/sp-item.cpp:1061 #, c-format msgid "%s; filtered" msgstr "%s; відфільтровано" @@ -13211,29 +13349,29 @@ msgstr "%s; відфільтровано" msgid "Line" msgstr "Лінія" -#: ../src/sp-lpe-item.cpp:260 +#: ../src/sp-lpe-item.cpp:258 ../src/sp-lpe-item.cpp:705 msgid "An exception occurred during execution of the Path Effect." msgstr "Під час застосування ефекту контуру сталася помилка типу виключення." -#: ../src/sp-offset.cpp:329 +#: ../src/sp-offset.cpp:331 msgid "Linked Offset" msgstr "Пов’язаний відступ" -#: ../src/sp-offset.cpp:331 +#: ../src/sp-offset.cpp:333 msgid "Dynamic Offset" msgstr "Динамічний відступ" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:337 +#: ../src/sp-offset.cpp:339 #, c-format msgid "%s by %f pt" msgstr "%s на %f пт" -#: ../src/sp-offset.cpp:338 +#: ../src/sp-offset.cpp:340 msgid "outset" msgstr "розтягнута" -#: ../src/sp-offset.cpp:338 +#: ../src/sp-offset.cpp:340 msgid "inset" msgstr "втягнена" @@ -13265,12 +13403,12 @@ msgid "Polyline" msgstr "Полілінія" #. Rectangle -#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:411 msgid "Rectangle" msgstr "Прямокутник" #. Spiral -#: ../src/sp-spiral.cpp:220 ../src/ui/dialog/inkscape-preferences.cpp:420 +#: ../src/sp-spiral.cpp:220 ../src/ui/dialog/inkscape-preferences.cpp:429 #: ../share/extensions/gcodetools_area.inx.h:11 msgid "Spiral" msgstr "Спіраль" @@ -13283,7 +13421,7 @@ msgid "with %3f turns" msgstr "з %3f обертами" #. Star -#: ../src/sp-star.cpp:247 ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/sp-star.cpp:247 ../src/ui/dialog/inkscape-preferences.cpp:425 #: ../src/widgets/star-toolbar.cpp:469 msgid "Star" msgstr "Зірка" @@ -13324,12 +13462,12 @@ msgstr "Умовна група" msgid "Text" msgstr "Текст" -#: ../src/sp-text.cpp:381 +#: ../src/sp-text.cpp:384 #, c-format msgid "on path%s (%s, %s)" msgstr "за контуром%s (%s, %s)" -#: ../src/sp-text.cpp:382 +#: ../src/sp-text.cpp:385 #, c-format msgid "%s (%s, %s)" msgstr "%s (%s, %s)" @@ -13386,29 +13524,22 @@ msgstr "Об'єднання" msgid "Intersection" msgstr "Перетин" -#: ../src/splivarot.cpp:106 +#: ../src/splivarot.cpp:106 ../src/splivarot.cpp:112 msgid "Division" msgstr "Ділення" -#: ../src/splivarot.cpp:111 +#: ../src/splivarot.cpp:118 msgid "Cut path" msgstr "Обрізати контур" -#: ../src/splivarot.cpp:335 +#: ../src/splivarot.cpp:342 msgid "Select at least 2 paths to perform a boolean operation." msgstr "Для логічної операції треба позначити не менше двох контурів." -#: ../src/splivarot.cpp:339 +#: ../src/splivarot.cpp:346 msgid "Select at least 1 path to perform a boolean union." msgstr "Оберіть хоча б 1 контур для виконання об'єднання." -#: ../src/splivarot.cpp:347 -msgid "" -"Select exactly 2 paths to perform difference, division, or path cut." -msgstr "" -"Для операції виключного АБО, ділення та розрізання контуру виберіть точно " -"2 контури." - #: ../src/splivarot.cpp:363 ../src/splivarot.cpp:378 msgid "" "Unable to determine the z-order of the objects selected for " @@ -13427,67 +13558,67 @@ msgstr "Один з об'єктів не є контуром, логіч msgid "Select stroked path(s) to convert stroke to path." msgstr "Оберіть контур(и) з штрихів для перетворення на контур." -#: ../src/splivarot.cpp:1509 +#: ../src/splivarot.cpp:1511 msgid "Convert stroke to path" msgstr "Перетворити штрих на контур" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1512 +#: ../src/splivarot.cpp:1514 msgid "No stroked paths in the selection." msgstr "У позначеному немає контурів зі штрихів." -#: ../src/splivarot.cpp:1583 +#: ../src/splivarot.cpp:1585 msgid "Selected object is not a path, cannot inset/outset." msgstr "" "позначений об'єкт не є контуром, втягування/розтягування неможливі." -#: ../src/splivarot.cpp:1674 ../src/splivarot.cpp:1741 +#: ../src/splivarot.cpp:1676 ../src/splivarot.cpp:1743 msgid "Create linked offset" msgstr "Створити зв'язану втяжку" -#: ../src/splivarot.cpp:1675 ../src/splivarot.cpp:1742 +#: ../src/splivarot.cpp:1677 ../src/splivarot.cpp:1744 msgid "Create dynamic offset" msgstr "Створити динамічний відступ" -#: ../src/splivarot.cpp:1767 +#: ../src/splivarot.cpp:1769 msgid "Select path(s) to inset/outset." msgstr "Позначте контур(и) для втягування/розтягування." -#: ../src/splivarot.cpp:1960 +#: ../src/splivarot.cpp:1962 msgid "Outset path" msgstr "Розтягнений контур" -#: ../src/splivarot.cpp:1960 +#: ../src/splivarot.cpp:1962 msgid "Inset path" msgstr "Втягнутий контур" -#: ../src/splivarot.cpp:1962 +#: ../src/splivarot.cpp:1964 msgid "No paths to inset/outset in the selection." msgstr "У позначеному немає контурів для втягування/розтягування." -#: ../src/splivarot.cpp:2124 +#: ../src/splivarot.cpp:2126 msgid "Simplifying paths (separately):" msgstr "Спрощення контурів (окремо):" -#: ../src/splivarot.cpp:2126 +#: ../src/splivarot.cpp:2128 msgid "Simplifying paths:" msgstr "Спрощення контурів:" -#: ../src/splivarot.cpp:2163 +#: ../src/splivarot.cpp:2165 #, c-format msgid "%s %d of %d paths simplified..." msgstr "%s %d з %d контурів спрощено…" -#: ../src/splivarot.cpp:2176 +#: ../src/splivarot.cpp:2178 #, c-format msgid "%d paths simplified." msgstr "%d контурів спрощено." -#: ../src/splivarot.cpp:2190 +#: ../src/splivarot.cpp:2192 msgid "Select path(s) to simplify." msgstr "Позначте контур(и) для спрощення." -#: ../src/splivarot.cpp:2206 +#: ../src/splivarot.cpp:2208 msgid "No paths to simplify in the selection." msgstr "У позначеному немає контурів для спрощення." @@ -13518,7 +13649,7 @@ msgstr "" "Щоб розташувати текст за контуром, контурний текст слід зробити видимим." -#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2570 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2569 msgid "Put text on path" msgstr "Розмістити текст вздовж контуру" @@ -13530,7 +13661,7 @@ msgstr "Позначте текст вздовж контуру, щоб msgid "No texts-on-paths in the selection." msgstr "У позначеному немає тексту на контурі." -#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2572 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2571 msgid "Remove text from path" msgstr "Зняти текст з контуру" @@ -13606,68 +13737,68 @@ msgstr "Оберіть одну картинку та одну або декіл msgid "Trace: No active desktop" msgstr "Векторизація: відсутній робочий стіл" -#: ../src/trace/trace.cpp:313 +#: ../src/trace/trace.cpp:314 msgid "Invalid SIOX result" msgstr "Некоректний результат SIOX" -#: ../src/trace/trace.cpp:406 +#: ../src/trace/trace.cpp:407 msgid "Trace: No active document" msgstr "Векторизація: немає активного документа" -#: ../src/trace/trace.cpp:438 +#: ../src/trace/trace.cpp:439 msgid "Trace: Image has no bitmap data" msgstr "Векторизація: у зображенні немає растрових даних" -#: ../src/trace/trace.cpp:445 +#: ../src/trace/trace.cpp:446 msgid "Trace: Starting trace..." msgstr "Векторизація: Початок векторизації…" #. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 +#: ../src/trace/trace.cpp:549 msgid "Trace bitmap" msgstr "Векторизація растрового зображення" -#: ../src/trace/trace.cpp:552 +#: ../src/trace/trace.cpp:553 #, c-format msgid "Trace: Done. %ld nodes created" msgstr "Векторизація: Завершено. Створено %ld вузлів." #. check whether something is selected -#: ../src/ui/clipboard.cpp:263 +#: ../src/ui/clipboard.cpp:261 msgid "Nothing was copied." msgstr "Нічого не було скопійовано." -#: ../src/ui/clipboard.cpp:394 ../src/ui/clipboard.cpp:608 -#: ../src/ui/clipboard.cpp:637 +#: ../src/ui/clipboard.cpp:392 ../src/ui/clipboard.cpp:606 +#: ../src/ui/clipboard.cpp:635 msgid "Nothing on the clipboard." msgstr "У буфері обміну нічого немає." -#: ../src/ui/clipboard.cpp:452 +#: ../src/ui/clipboard.cpp:450 msgid "Select object(s) to paste style to." msgstr "Позначте об'єкти(и) для застосування стилю." -#: ../src/ui/clipboard.cpp:463 ../src/ui/clipboard.cpp:480 +#: ../src/ui/clipboard.cpp:461 ../src/ui/clipboard.cpp:478 msgid "No style on the clipboard." msgstr "У буфері обміну немає стилів." -#: ../src/ui/clipboard.cpp:505 +#: ../src/ui/clipboard.cpp:503 msgid "Select object(s) to paste size to." msgstr "Оберіть об'єкт(и) для застосування розміру." -#: ../src/ui/clipboard.cpp:512 +#: ../src/ui/clipboard.cpp:510 msgid "No size on the clipboard." msgstr "У буфері обміну немає розмірів." -#: ../src/ui/clipboard.cpp:569 +#: ../src/ui/clipboard.cpp:567 msgid "Select object(s) to paste live path effect to." msgstr "Оберіть об'єкти для застосування ефекту динамічного контуру." #. no_effect: -#: ../src/ui/clipboard.cpp:595 +#: ../src/ui/clipboard.cpp:593 msgid "No effect on the clipboard." msgstr "У буфері обміну немає ефектів." -#: ../src/ui/clipboard.cpp:614 ../src/ui/clipboard.cpp:651 +#: ../src/ui/clipboard.cpp:612 ../src/ui/clipboard.cpp:649 msgid "Clipboard does not contain a path." msgstr "У буфері обміну відсутній контур." @@ -13705,13 +13836,13 @@ msgstr "_Ліцензія" #. 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 +#: ../src/ui/dialog/aboutbox.cpp:178 msgid "about.svg" msgstr "about.svg" #. 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:426 +#: ../src/ui/dialog/aboutbox.cpp:438 msgid "translator-credits" msgstr "" "Yuri Syrota (rasta@renome.rovno.ua)\n" @@ -13719,255 +13850,270 @@ msgstr "" "Максим Дзюманенко (dziumanenko@gmail.com)\n" "Юрій Чорноіван (yurchor@ukr.net)" -#: ../src/ui/dialog/align-and-distribute.cpp:169 -#: ../src/ui/dialog/align-and-distribute.cpp:846 +#: ../src/ui/dialog/align-and-distribute.cpp:206 +#: ../src/ui/dialog/align-and-distribute.cpp:937 msgid "Align" msgstr "Вирівнювання" -#: ../src/ui/dialog/align-and-distribute.cpp:337 -#: ../src/ui/dialog/align-and-distribute.cpp:847 +#: ../src/ui/dialog/align-and-distribute.cpp:382 +#: ../src/ui/dialog/align-and-distribute.cpp:938 msgid "Distribute" msgstr "Розставити" -#: ../src/ui/dialog/align-and-distribute.cpp:416 +#: ../src/ui/dialog/align-and-distribute.cpp:461 msgid "Minimum horizontal gap (in px units) between bounding boxes" msgstr "Мінімальна горизонтальна відстань (у точках) між рамками" #. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:418 +#: ../src/ui/dialog/align-and-distribute.cpp:463 msgctxt "Gap" msgid "_H:" msgstr "_Г:" -#: ../src/ui/dialog/align-and-distribute.cpp:426 +#: ../src/ui/dialog/align-and-distribute.cpp:471 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "Мінімальна вертикальна відстань (у точках) між рамками" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:428 +#: ../src/ui/dialog/align-and-distribute.cpp:473 msgctxt "Gap" msgid "_V:" msgstr "_В:" -#: ../src/ui/dialog/align-and-distribute.cpp:463 -#: ../src/ui/dialog/align-and-distribute.cpp:849 +#: ../src/ui/dialog/align-and-distribute.cpp:508 +#: ../src/ui/dialog/align-and-distribute.cpp:940 #: ../src/widgets/connector-toolbar.cpp:405 msgid "Remove overlaps" msgstr "Вилучити перекриття" -#: ../src/ui/dialog/align-and-distribute.cpp:494 +#: ../src/ui/dialog/align-and-distribute.cpp:539 #: ../src/widgets/connector-toolbar.cpp:234 msgid "Arrange connector network" msgstr "Впорядкувати сітку з'єднувальних ліній" -#: ../src/ui/dialog/align-and-distribute.cpp:587 +#: ../src/ui/dialog/align-and-distribute.cpp:632 msgid "Exchange Positions" msgstr "Обміняти позиціями" -#: ../src/ui/dialog/align-and-distribute.cpp:621 +#: ../src/ui/dialog/align-and-distribute.cpp:666 msgid "Unclump" msgstr "Розгрупувати" -#: ../src/ui/dialog/align-and-distribute.cpp:692 +#: ../src/ui/dialog/align-and-distribute.cpp:737 msgid "Randomize positions" msgstr "Зробити позиції випадковими" -#: ../src/ui/dialog/align-and-distribute.cpp:794 +#: ../src/ui/dialog/align-and-distribute.cpp:838 msgid "Distribute text baselines" msgstr "Розставити базові рядки тексту" -#: ../src/ui/dialog/align-and-distribute.cpp:818 +#: ../src/ui/dialog/align-and-distribute.cpp:906 msgid "Align text baselines" msgstr "Вирівняти базові лінії тексту" -#: ../src/ui/dialog/align-and-distribute.cpp:848 +#: ../src/ui/dialog/align-and-distribute.cpp:939 msgid "Rearrange" msgstr "Перевпорядкувати" -#: ../src/ui/dialog/align-and-distribute.cpp:850 -#: ../src/widgets/toolbox.cpp:1774 +#: ../src/ui/dialog/align-and-distribute.cpp:941 +#: ../src/widgets/toolbox.cpp:1788 msgid "Nodes" msgstr "Вузли" -#: ../src/ui/dialog/align-and-distribute.cpp:864 +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Relative to: " msgstr "Відносно: " -#: ../src/ui/dialog/align-and-distribute.cpp:865 +#: ../src/ui/dialog/align-and-distribute.cpp:957 msgid "_Treat selection as group: " msgstr "Вва_жати вибране групою: " #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:871 ../src/verbs.cpp:3039 -#: ../src/verbs.cpp:3040 +#: ../src/ui/dialog/align-and-distribute.cpp:963 ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3037 msgid "Align right edges of objects to the left edge of the anchor" msgstr "Вирівняти праві краї об'єктів до лівого краю якоря" -#: ../src/ui/dialog/align-and-distribute.cpp:874 ../src/verbs.cpp:3041 -#: ../src/verbs.cpp:3042 +#: ../src/ui/dialog/align-and-distribute.cpp:966 ../src/verbs.cpp:3038 +#: ../src/verbs.cpp:3039 msgid "Align left edges" msgstr "Вирівняти ліві сторони" -#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:3043 -#: ../src/verbs.cpp:3044 +#: ../src/ui/dialog/align-and-distribute.cpp:969 ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3041 msgid "Center on vertical axis" msgstr "Центрувати за вертикальною віссю" -#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:3045 -#: ../src/verbs.cpp:3046 +#: ../src/ui/dialog/align-and-distribute.cpp:972 ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3043 msgid "Align right sides" msgstr "Вирівняти праві сторони" -#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:3047 -#: ../src/verbs.cpp:3048 +#: ../src/ui/dialog/align-and-distribute.cpp:975 ../src/verbs.cpp:3044 +#: ../src/verbs.cpp:3045 msgid "Align left edges of objects to the right edge of the anchor" msgstr "Вирівняти ліві краї об'єктів до правого краю якоря" -#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:3049 -#: ../src/verbs.cpp:3050 +#: ../src/ui/dialog/align-and-distribute.cpp:978 ../src/verbs.cpp:3046 +#: ../src/verbs.cpp:3047 msgid "Align bottom edges of objects to the top edge of the anchor" msgstr "Вирівняти нижні краї об'єктів до верхнього краю якоря" -#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:3051 -#: ../src/verbs.cpp:3052 +#: ../src/ui/dialog/align-and-distribute.cpp:981 ../src/verbs.cpp:3048 +#: ../src/verbs.cpp:3049 msgid "Align top edges" msgstr "Вирівняти верхні сторони" -#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:3053 -#: ../src/verbs.cpp:3054 +#: ../src/ui/dialog/align-and-distribute.cpp:984 ../src/verbs.cpp:3050 +#: ../src/verbs.cpp:3051 msgid "Center on horizontal axis" msgstr "Центрувати на горизонтальній осі" -#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:3055 -#: ../src/verbs.cpp:3056 +#: ../src/ui/dialog/align-and-distribute.cpp:987 ../src/verbs.cpp:3052 +#: ../src/verbs.cpp:3053 msgid "Align bottom edges" msgstr "Вирівняти нижні сторони" -#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:3057 -#: ../src/verbs.cpp:3058 +#: ../src/ui/dialog/align-and-distribute.cpp:990 ../src/verbs.cpp:3054 +#: ../src/verbs.cpp:3055 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "Вирівняти верхні краї об'єктів до нижнього краю якоря" -#: ../src/ui/dialog/align-and-distribute.cpp:903 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "Align baseline anchors of texts horizontally" msgstr "Розташувати базову лінію тексту горизонтально" -#: ../src/ui/dialog/align-and-distribute.cpp:906 +#: ../src/ui/dialog/align-and-distribute.cpp:998 msgid "Align baselines of texts" msgstr "Вирівняти базові лінії тексту" -#: ../src/ui/dialog/align-and-distribute.cpp:911 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 msgid "Make horizontal gaps between objects equal" msgstr "Зробити однаковими інтервали між об'єктами по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:915 +#: ../src/ui/dialog/align-and-distribute.cpp:1007 msgid "Distribute left edges equidistantly" msgstr "Рівномірно розподілити ліві краї" -#: ../src/ui/dialog/align-and-distribute.cpp:918 +#: ../src/ui/dialog/align-and-distribute.cpp:1010 msgid "Distribute centers equidistantly horizontally" msgstr "Розставити центри об'єктів на однаковій відстані по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:921 +#: ../src/ui/dialog/align-and-distribute.cpp:1013 msgid "Distribute right edges equidistantly" msgstr "Рівномірно розподілити праві краї" -#: ../src/ui/dialog/align-and-distribute.cpp:925 +#: ../src/ui/dialog/align-and-distribute.cpp:1017 msgid "Make vertical gaps between objects equal" msgstr "Вирівняти інтервали між об'єктами по вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:929 +#: ../src/ui/dialog/align-and-distribute.cpp:1021 msgid "Distribute top edges equidistantly" msgstr "Рівномірно розподілити верхні краї" -#: ../src/ui/dialog/align-and-distribute.cpp:932 +#: ../src/ui/dialog/align-and-distribute.cpp:1024 msgid "Distribute centers equidistantly vertically" msgstr "Розставити центри об'єктів на однаковій відстані по вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:935 +#: ../src/ui/dialog/align-and-distribute.cpp:1027 msgid "Distribute bottom edges equidistantly" msgstr "Рівномірно розподілити нижні краї" -#: ../src/ui/dialog/align-and-distribute.cpp:940 +#: ../src/ui/dialog/align-and-distribute.cpp:1032 msgid "Distribute baseline anchors of texts horizontally" msgstr "Розподілити базові якорі символів рівномірно по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:943 +#: ../src/ui/dialog/align-and-distribute.cpp:1035 msgid "Distribute baselines of texts vertically" msgstr "Розподілити базові лінії тексту вертикально" -#: ../src/ui/dialog/align-and-distribute.cpp:949 +#: ../src/ui/dialog/align-and-distribute.cpp:1041 #: ../src/widgets/connector-toolbar.cpp:367 msgid "Nicely arrange selected connector network" msgstr "Гармонійно розташувати вибране з'єднання об'єктів" -#: ../src/ui/dialog/align-and-distribute.cpp:952 +#: ../src/ui/dialog/align-and-distribute.cpp:1044 msgid "Exchange positions of selected objects - selection order" msgstr "Обмін позиціями позначених об'єктів — порядок позначення" -#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/ui/dialog/align-and-distribute.cpp:1047 msgid "Exchange positions of selected objects - stacking order" msgstr "Обмін позиціями позначених об'єктів — порядок стосування" -#: ../src/ui/dialog/align-and-distribute.cpp:958 +#: ../src/ui/dialog/align-and-distribute.cpp:1050 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "" "Обмін позиціями позначених об'єктів — циклічний перехід за годинниковою " "стрілкою" -#: ../src/ui/dialog/align-and-distribute.cpp:963 +#: ../src/ui/dialog/align-and-distribute.cpp:1055 msgid "Randomize centers in both dimensions" msgstr "Випадково розташувати центри у обох напрямках" -#: ../src/ui/dialog/align-and-distribute.cpp:966 +#: ../src/ui/dialog/align-and-distribute.cpp:1058 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "" "Розгрупувати об'єкт: спробувати встановити рівну відстань між межами об'єктів" -#: ../src/ui/dialog/align-and-distribute.cpp:971 +#: ../src/ui/dialog/align-and-distribute.cpp:1063 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" "Переміщувати об'єкти якомога менше, так щоб їхні рамки не перекривалися" -#: ../src/ui/dialog/align-and-distribute.cpp:979 +#: ../src/ui/dialog/align-and-distribute.cpp:1071 msgid "Align selected nodes to a common horizontal line" msgstr "Вирівняти вибрані вузли до спільної горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:982 +#: ../src/ui/dialog/align-and-distribute.cpp:1074 msgid "Align selected nodes to a common vertical line" msgstr "Вирівняти вибрані вузли до спільної вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:985 +#: ../src/ui/dialog/align-and-distribute.cpp:1077 msgid "Distribute selected nodes horizontally" msgstr "Розподілити вибрані вузли по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:988 +#: ../src/ui/dialog/align-and-distribute.cpp:1080 msgid "Distribute selected nodes vertically" msgstr "Розподілити вибрані вузли по вертикалі" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:993 +#: ../src/ui/dialog/align-and-distribute.cpp:1085 +#: ../src/ui/dialog/align-and-distribute.cpp:1095 msgid "Last selected" msgstr "Останній позначений" -#: ../src/ui/dialog/align-and-distribute.cpp:994 +#: ../src/ui/dialog/align-and-distribute.cpp:1086 +#: ../src/ui/dialog/align-and-distribute.cpp:1096 msgid "First selected" msgstr "Перший позначений" -#: ../src/ui/dialog/align-and-distribute.cpp:995 +#: ../src/ui/dialog/align-and-distribute.cpp:1087 msgid "Biggest object" msgstr "Найбільший об'єкт" -#: ../src/ui/dialog/align-and-distribute.cpp:996 +#: ../src/ui/dialog/align-and-distribute.cpp:1088 msgid "Smallest object" msgstr "Найменший об'єкт" -#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/ui/dialog/align-and-distribute.cpp:1091 msgid "Selection Area" msgstr "Позначена область" +#: ../src/ui/dialog/align-and-distribute.cpp:1097 +msgid "Middle of selection" +msgstr "Середина позначеного" + +#: ../src/ui/dialog/align-and-distribute.cpp:1098 +msgid "Min value" +msgstr "Мін. значення" + +#: ../src/ui/dialog/align-and-distribute.cpp:1099 +msgid "Max value" +msgstr "Макс. значення" + #: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 msgid "Edit profile" @@ -14563,39 +14709,39 @@ msgstr "Застосувати до мозаїки клонів:" msgid "How many rows in the tiling" msgstr "Кількість рядків у мозаїці" -#: ../src/ui/dialog/clonetiler.cpp:1082 +#: ../src/ui/dialog/clonetiler.cpp:1086 msgid "How many columns in the tiling" msgstr "Кількість стовпчиків у мозаїці" -#: ../src/ui/dialog/clonetiler.cpp:1127 +#: ../src/ui/dialog/clonetiler.cpp:1131 msgid "Width of the rectangle to be filled" msgstr "Ширина області, що заповнюється" -#: ../src/ui/dialog/clonetiler.cpp:1160 +#: ../src/ui/dialog/clonetiler.cpp:1168 msgid "Height of the rectangle to be filled" msgstr "Висота області, що заповнюється" -#: ../src/ui/dialog/clonetiler.cpp:1177 +#: ../src/ui/dialog/clonetiler.cpp:1185 msgid "Rows, columns: " msgstr "Рядків, стовпчиків: " -#: ../src/ui/dialog/clonetiler.cpp:1178 +#: ../src/ui/dialog/clonetiler.cpp:1186 msgid "Create the specified number of rows and columns" msgstr "Створити вказану кількість рядків та стовпчиків" -#: ../src/ui/dialog/clonetiler.cpp:1187 +#: ../src/ui/dialog/clonetiler.cpp:1195 msgid "Width, height: " msgstr "Ширина, висота: " -#: ../src/ui/dialog/clonetiler.cpp:1188 +#: ../src/ui/dialog/clonetiler.cpp:1196 msgid "Fill the specified width and height with the tiling" msgstr "Заповнити мозаїкою вказану область" -#: ../src/ui/dialog/clonetiler.cpp:1209 +#: ../src/ui/dialog/clonetiler.cpp:1217 msgid "Use saved size and position of the tile" msgstr "Використовувати збережені розмір та позицію плитки" -#: ../src/ui/dialog/clonetiler.cpp:1212 +#: ../src/ui/dialog/clonetiler.cpp:1220 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" @@ -14603,11 +14749,11 @@ msgstr "" "Сприяти, щоб розмір та позиція плиток були такі самі, як і останнього разу, " "коли ви їх розбивали на мозаїку, замість використання поточного розміру" -#: ../src/ui/dialog/clonetiler.cpp:1246 +#: ../src/ui/dialog/clonetiler.cpp:1254 msgid " _Create " msgstr "_Створити " -#: ../src/ui/dialog/clonetiler.cpp:1248 +#: ../src/ui/dialog/clonetiler.cpp:1256 msgid "Create and tile the clones of the selection" msgstr "Створити мозаїку з клонів позначеної ділянки" @@ -14616,31 +14762,31 @@ msgstr "Створити мозаїку з клонів позначеної д #. 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:1268 +#: ../src/ui/dialog/clonetiler.cpp:1276 msgid " _Unclump " msgstr "_Розгрупувати " -#: ../src/ui/dialog/clonetiler.cpp:1269 +#: ../src/ui/dialog/clonetiler.cpp:1277 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" "Розповсюдити клони для послаблення групування; може бути застосовано повторно" -#: ../src/ui/dialog/clonetiler.cpp:1275 +#: ../src/ui/dialog/clonetiler.cpp:1283 msgid " Re_move " msgstr " В_илучити " -#: ../src/ui/dialog/clonetiler.cpp:1276 +#: ../src/ui/dialog/clonetiler.cpp:1284 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "" "Вилучити існуючі мозаїчні клони позначеного об'єкта (лише нащадків одного " "об'єкта)" -#: ../src/ui/dialog/clonetiler.cpp:1293 +#: ../src/ui/dialog/clonetiler.cpp:1301 msgid " R_eset " msgstr "С_кинути " #. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1295 +#: ../src/ui/dialog/clonetiler.cpp:1303 msgid "" "Reset all shifts, scales, rotates, opacity and color changes in the dialog " "to zero" @@ -14648,40 +14794,40 @@ msgstr "" "Скинути усі зсуви, масштабування, обертання та зміни прозорості й кольору на " "нуль" -#: ../src/ui/dialog/clonetiler.cpp:1367 +#: ../src/ui/dialog/clonetiler.cpp:1375 msgid "Nothing selected." msgstr "Нічого не позначено." -#: ../src/ui/dialog/clonetiler.cpp:1373 +#: ../src/ui/dialog/clonetiler.cpp:1381 msgid "More than one object selected." msgstr "позначено більше ніж один об'єкт." -#: ../src/ui/dialog/clonetiler.cpp:1380 +#: ../src/ui/dialog/clonetiler.cpp:1388 #, c-format msgid "Object has %d tiled clones." msgstr "Об'єкт має%d мозаїчних клонів." -#: ../src/ui/dialog/clonetiler.cpp:1385 +#: ../src/ui/dialog/clonetiler.cpp:1393 msgid "Object has no tiled clones." msgstr "Об'єкт не має мозаїчних клонів." -#: ../src/ui/dialog/clonetiler.cpp:2109 +#: ../src/ui/dialog/clonetiler.cpp:2117 msgid "Select one object whose tiled clones to unclump." msgstr "Позначте один об'єкт, клони якого слід розгрупувати." -#: ../src/ui/dialog/clonetiler.cpp:2129 +#: ../src/ui/dialog/clonetiler.cpp:2137 msgid "Unclump tiled clones" msgstr "Розгрупувати мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2158 +#: ../src/ui/dialog/clonetiler.cpp:2166 msgid "Select one object whose tiled clones to remove." msgstr "Позначте один об'єкт, клони якого слід вилучити." -#: ../src/ui/dialog/clonetiler.cpp:2183 +#: ../src/ui/dialog/clonetiler.cpp:2191 msgid "Delete tiled clones" msgstr "Вилучити мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2236 +#: ../src/ui/dialog/clonetiler.cpp:2244 msgid "" "If you want to clone several objects, group them and clone the " "group." @@ -14689,23 +14835,23 @@ msgstr "" "Для клонування кількох об'єктів, згрупуйте їх та клонуйте групу." -#: ../src/ui/dialog/clonetiler.cpp:2245 +#: ../src/ui/dialog/clonetiler.cpp:2253 msgid "Creating tiled clones..." msgstr "Створення мозаїчних клонів…" -#: ../src/ui/dialog/clonetiler.cpp:2661 +#: ../src/ui/dialog/clonetiler.cpp:2669 msgid "Create tiled clones" msgstr "Створити мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2894 +#: ../src/ui/dialog/clonetiler.cpp:2906 msgid "Per row:" msgstr "На рядок:" -#: ../src/ui/dialog/clonetiler.cpp:2912 +#: ../src/ui/dialog/clonetiler.cpp:2924 msgid "Per column:" msgstr "На стовпчик:" -#: ../src/ui/dialog/clonetiler.cpp:2920 +#: ../src/ui/dialog/clonetiler.cpp:2932 msgid "Randomize:" msgstr "Випадковість:" @@ -14837,10 +14983,12 @@ msgstr "Ко_лір тла:" #: ../src/ui/dialog/document-properties.cpp:123 msgid "" "Color of the page background. Note: transparency setting ignored while " -"editing if 'Checkerboard background' set (but used when exporting to bitmap)." +"editing if 'Checkerboard background' unset (but used when exporting to " +"bitmap)." msgstr "" "Колір тла сторінки. Зауваження: параметр прозорості буде проігноровано під " -"час редагування, якщо позначено пункт «Тло-шахівниця» (але враховано під час " +"час редагування, якщо не позначено пункт «Тло-шахівниця» (але враховано під " +"час " "експортування до растра)." #: ../src/ui/dialog/document-properties.cpp:124 @@ -15030,11 +15178,11 @@ msgid "Remove selected grid." msgstr "Вилучити вибрану сітку." #: ../src/ui/dialog/document-properties.cpp:162 -#: ../src/widgets/toolbox.cpp:1881 +#: ../src/widgets/toolbox.cpp:1895 msgid "Guides" msgstr "Напрямні" -#: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2838 +#: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2837 msgid "Snap" msgstr "Прилипання" @@ -15086,7 +15234,7 @@ msgstr "Інше" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3023 +#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3020 msgid "Link Color Profile" msgstr "Пов'язати профіль кольорів" @@ -15145,7 +15293,7 @@ msgid "Embedded script files:" msgstr "Файли вбудованих скриптів:" #: ../src/ui/dialog/document-properties.cpp:842 -#: ../src/ui/dialog/objects.cpp:1890 +#: ../src/ui/dialog/objects.cpp:1894 msgid "New" msgstr "Створити" @@ -15219,15 +15367,15 @@ msgstr "Вилучити сітку" msgid "Changed default display unit" msgstr "Змінено типову одиницю виміру" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2890 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2887 msgid "_Page" msgstr "_Сторінка" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2894 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2891 msgid "_Drawing" msgstr "_Малюнок" -#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2896 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2893 msgid "_Selection" msgstr "Поз_начене" @@ -15235,8 +15383,8 @@ msgstr "Поз_начене" msgid "_Custom" msgstr "_Інше" -#: ../src/ui/dialog/export.cpp:165 ../src/widgets/measure-toolbar.cpp:278 -#: ../src/widgets/measure-toolbar.cpp:286 +#: ../src/ui/dialog/export.cpp:165 ../src/widgets/measure-toolbar.cpp:286 +#: ../src/widgets/measure-toolbar.cpp:294 #: ../share/extensions/render_gears.inx.h:6 msgid "Units:" msgstr "Одиниці:" @@ -15325,9 +15473,9 @@ msgid "_Height:" msgstr "_Висота:" #: ../src/ui/dialog/export.cpp:304 -#: ../src/ui/dialog/inkscape-preferences.cpp:1487 -#: ../src/ui/dialog/inkscape-preferences.cpp:1491 -#: ../src/ui/dialog/inkscape-preferences.cpp:1515 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "dpi" msgstr "т/д" @@ -15418,14 +15566,14 @@ msgstr "Малюнок експортовано до %s." msgid "Export aborted." msgstr "Експорт перервано." -#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1389 -#: ../src/widgets/desktop-widget.cpp:1172 -#: ../src/widgets/desktop-widget.cpp:1234 +#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1401 +#: ../src/widgets/desktop-widget.cpp:1186 +#: ../src/widgets/desktop-widget.cpp:1248 msgid "_Cancel" msgstr "_Скасувати" #: ../src/ui/dialog/export.cpp:1309 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2435 ../src/widgets/desktop-widget.cpp:1173 +#: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1187 msgid "_Save" msgstr "З_берегти" @@ -15436,7 +15584,7 @@ msgstr "Інформація" #: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 #: ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/color_randomize.inx.h:11 #: ../share/extensions/dots.inx.h:7 #: ../share/extensions/draw_from_triangle.inx.h:35 #: ../share/extensions/dxf_input.inx.h:10 @@ -15474,7 +15622,7 @@ msgstr "Інформація" #: ../share/extensions/pathalongpath.inx.h:16 #: ../share/extensions/pathscatter.inx.h:18 #: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/restack.inx.h:25 -#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:16 #: ../share/extensions/web-set-att.inx.h:25 #: ../share/extensions/web-transmit-att.inx.h:23 #: ../share/extensions/webslicer_create_group.inx.h:11 @@ -15596,7 +15744,7 @@ msgid "Document" msgstr "Документ" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1553 ../src/verbs.cpp:175 -#: ../src/widgets/desktop-widget.cpp:2055 +#: ../src/widgets/desktop-widget.cpp:2074 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "позначене" @@ -15784,99 +15932,99 @@ msgstr "_Дублювати" msgid "_Filter" msgstr "_Фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1387 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1388 msgid "R_ename" msgstr "Пере_йменувати" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1521 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1522 msgid "Rename filter" msgstr "Перейменувати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1573 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1574 msgid "Apply filter" msgstr "Застосувати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1653 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1654 msgid "filter" msgstr "фільтрувати" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1660 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1661 msgid "Add filter" msgstr "Додати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1710 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1711 msgid "Duplicate filter" msgstr "Дублювати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1809 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1810 msgid "_Effect" msgstr "_Ефект" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1819 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1820 msgid "Connections" msgstr "З'єднання" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1957 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1958 msgid "Remove filter primitive" msgstr "Вилучити примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2544 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2545 msgid "Remove merge node" msgstr "Вилучити вузол об'єднання" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2664 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2665 msgid "Reorder filter primitive" msgstr "Зміна порядку примітивів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2744 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "Add Effect:" msgstr "Додати ефект:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 msgid "No effect selected" msgstr "Не вибрано жодного ефекту" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2747 msgid "No filter selected" msgstr "Не вибрано жодного фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2791 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2814 msgid "Effect parameters" msgstr "Параметри ефекту" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2792 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2815 msgid "Filter General Settings" msgstr "Загальні параметри фільтра" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Coordinates:" msgstr "Координати:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "X coordinate of the left corners of filter effects region" msgstr "Координата X лівих кутів області дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Y coordinate of the upper corners of filter effects region" msgstr "Координата X верхніх кутів області дії ефектів фільтра" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Dimensions:" msgstr "Розміри:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Width of filter effects region" msgstr "Ширина області дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Height of filter effects region" msgstr "Висота області дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 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 " @@ -15887,40 +16035,40 @@ msgstr "" "матрицю значень розміром 5×4. Інші варіанти — це простий спосіб виконати " "найпростіші операції без визначення всієї матриці вручну." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Value(s):" msgstr "Значення:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2862 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "R:" msgstr "Ч:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 #: ../src/ui/widget/color-icc-selector.cpp:180 msgid "G:" msgstr "З:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2864 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 msgid "B:" msgstr "С:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 msgid "A:" msgstr "П:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Operator:" msgstr "Оператор:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "K1:" msgstr "K1:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 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 " @@ -15930,38 +16078,38 @@ msgstr "" "за формулою k1*i1*i2 + k2*i1 + k3*i2 + k4, де i1 і i2 — значення пікселів " "першого і другого вхідних значень відповідно." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "K2:" msgstr "K2:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "K3:" msgstr "K3:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 msgid "K4:" msgstr "K4:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "Size:" msgstr "Розмір:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "width of the convolve matrix" msgstr "ширина матриці згортки" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "height of the convolve matrix" msgstr "висота матриці згортки" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 #: ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "Target:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 msgid "" "X coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15969,7 +16117,7 @@ msgstr "" "Координата X кінцевої точки матриці згортки. Згортка застосовується до " "пікселів навколо цієї точки." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 msgid "" "Y coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15978,11 +16126,11 @@ msgstr "" "пікселів навколо цієї точки." #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Kernel:" msgstr "Ядро:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 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 " @@ -15997,11 +16145,11 @@ msgstr "" "у той час, як матриця, заповнена сталим ненульовим значенням дасть звичайний " "ефект розмивання." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "Divisor:" msgstr "Дільник:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 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 " @@ -16013,11 +16161,11 @@ msgstr "" "кольору. Дільник, що є сумою всіх значень матриці, приглушує загальну " "інтенсивність кольорів остаточного зображення." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "Bias:" msgstr "Зміщення:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "" "This value is added to each component. This is useful to define a constant " "value as the zero response of the filter." @@ -16025,11 +16173,11 @@ msgstr "" "Це значення додається до кожного компонента. Корисно для задання сталої, як " "нульового відгуку фільтра." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "Edge Mode:" msgstr "Режим країв:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 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 " @@ -16039,31 +16187,31 @@ msgstr "" "щоб матричні операції могли працювати з ядром, розташованим на краю " "зображення або поблизу нього." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "Preserve Alpha" msgstr "Зберігати α-канал" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "Якщо встановлено, α-канал не буде змінено цим примітивом фільтра." #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2886 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 msgid "Diffuse Color:" msgstr "Колір дифузії:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2886 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Defines the color of the light source" msgstr "Визначає колір джерела світла" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "Surface Scale:" msgstr "Масштаб поверхні:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" @@ -16071,59 +16219,59 @@ msgstr "" "Це значення визначає множник висоти карти рельєфу, що задається вхідним α-" "каналом" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "Constant:" msgstr "Константа:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "This constant affects the Phong lighting model." msgstr "Ця стала стосується моделі освітлення Фонга" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2914 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 msgid "Kernel Unit Length:" msgstr "Одиниця довжини у ядрі:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 msgid "This defines the intensity of the displacement effect." msgstr "Ця величина визначає інтенсивність ефекту зміщення." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "X displacement:" msgstr "Зміщення за X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "Color component that controls the displacement in the X direction" msgstr "Компонент кольору, що керує зміщенням у напрямку осі X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Y displacement:" msgstr "Зміщення за Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Color component that controls the displacement in the Y direction" msgstr "Компонент кольору, що керує зміщенням у напрямку осі Y" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2898 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Flood Color:" msgstr "Колір заливки:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2898 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "The whole filter region will be filled with this color." msgstr "Всю область дії фільтра буде залито цим кольором." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2902 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "Standard Deviation:" msgstr "Стандартне відхилення:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2902 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "The standard deviation for the blur operation." msgstr "Стандартне відхилення під час виконання операції розмивання" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." @@ -16131,41 +16279,41 @@ msgstr "" "Ерозія: виконує «витончення» вхідного зображення\n" "Розтягування: «потовщує» вхідне зображення" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2937 msgid "Source of Image:" msgstr "Джерело зображення:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2915 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "Delta X:" msgstr "Крок за X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2915 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "This is how far the input image gets shifted to the right" msgstr "Визначає як далеко вхідне зображення зміщується праворуч" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "Delta Y:" msgstr "Крок за Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "This is how far the input image gets shifted downwards" msgstr "Визначає як далеко вхідне зображення зміщується донизу" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Specular Color:" msgstr "Колір відбиття:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "Експонента:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "Степінь відбиття: більше значення дає «яскравіше»." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." @@ -16173,27 +16321,27 @@ msgstr "" "Позначає чи повинен примітив виконувати функцію створення турбулентності або " "шуму." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2957 msgid "Base Frequency:" msgstr "Опорна частота:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2958 msgid "Octaves:" msgstr "Октави:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "Seed:" msgstr "Випадкове значення:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "The starting number for the pseudo random number generator." msgstr "Початкове число для генератора псевдовипадкових чисел." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2971 msgid "Add filter primitive" msgstr "Додати примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2963 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2986 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." @@ -16201,7 +16349,7 @@ msgstr "" "Примітив фільтра feBlend надає можливість використовувати 4 режими " "змішування: просвічування, множення, темнішання та світлішання." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2967 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2990 msgid "" "The feColorMatrix filter primitive applies a matrix transformation to " "color of each rendered pixel. This allows for effects like turning object to " @@ -16211,7 +16359,7 @@ msgstr "" "кольору до кожної відображеної точки. Все це включає до себе перетворення " "об'єкта до півтонів сірого, зміну насиченості кольору і зміну відтінку." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2971 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2994 msgid "" "The feComponentTransfer filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -16223,7 +16371,7 @@ msgstr "" "з окремими функціями переходу, роблячи можливим операції на зразок " "регулювання яскравості і контрасту, баланс кольорів та постеризацію." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2975 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2998 msgid "" "The feComposite filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -16235,7 +16383,7 @@ msgstr "" "описаного у стандарті SVG. Режими змішування Портера-Даффа по суті є " "булівськими операціями між значеннями кольорів відповідних точок зображень." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2979 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3002 msgid "" "The feConvolveMatrix lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -16250,7 +16398,7 @@ msgstr "" "за допомогою цього примітиву фільтра, особливий примітив фільтра для " "Гаусового розмивання є швидшим та незалежним від роздільної здатності." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2983 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3006 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -16262,7 +16410,7 @@ msgstr "" "використовується для відтворення глибини: непрозоріші області наближаються " "до глядача, а прозоріші — віддаляються." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2987 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3010 msgid "" "The feDisplacementMap filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -16274,7 +16422,7 @@ msgstr "" "у якому напрямку і на яку відстань слід змістити точку. Класичними " "прикладами фільтра є ефекти «вихор» і «затискання»." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2991 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3014 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 " @@ -16284,7 +16432,7 @@ msgstr "" "непрозорістю. Зазвичай, його використовують як початковий для інших " "фільтрів, з метою надати графіці кольору." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2995 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3018 msgid "" "The feGaussianBlur filter primitive uniformly blurs its input. It is " "commonly used together with feOffset to create a drop shadow effect." @@ -16293,7 +16441,7 @@ msgstr "" "його застосовано. Зазвичай, він використовується разом з feOffset для " "створення ефекту відкидання тіні." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2999 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3022 msgid "" "The feImage filter primitive fills the region with an external image " "or another part of the document." @@ -16301,7 +16449,7 @@ msgstr "" "Примітив фільтра feImage заливає область зовнішнім зображенням або " "іншою частиною документа." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3003 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3026 msgid "" "The feMerge filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -16314,7 +16462,7 @@ msgstr "" "кратне застосування примітивів feBlend у 'звичайному' режимі або кратне " "застосування примітивів feComposite у 'над'-режимі." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3007 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3030 msgid "" "The feMorphology filter primitive provides erode and dilate effects. " "For single-color objects erode makes the object thinner and dilate makes it " @@ -16324,7 +16472,7 @@ msgstr "" "ерозії та розширення. Для однокольорових об'єктів ерозія робить об'єкт " "меншим, а розширення — більшим." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3011 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3034 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 " @@ -16334,7 +16482,7 @@ msgstr "" "відстань. Це, наприклад, корисно для відображення тіней, коли тінь " "розташовано з невеликим зсувом відносно об'єкта, що її відкидає." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3015 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3038 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -16346,7 +16494,7 @@ msgstr "" "матеріалу, використовується для відтворення глибини: непрозоріші області " "наближаються до глядача, а прозоріші — віддаляються." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3019 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3042 msgid "" "The feTile filter primitive tiles a region with an input graphic. The " "source tile is defined by the filter primitive subregion of the input." @@ -16355,7 +16503,7 @@ msgstr "" "графічного зображення. Початковий фрагмент мозаїки визначається підобластю " "примітива фільтра на вході." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3023 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3046 msgid "" "The feTurbulence filter primitive renders Perlin noise. This kind of " "noise is useful in simulating several nature phenomena like clouds, fire and " @@ -16365,11 +16513,11 @@ msgstr "" "шумів корисний для імітації деяких природних явищ на зразок хмар, полум'я та " "диму, та під час створення складних текстур на зразок мармуру та граніту." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3066 msgid "Duplicate filter primitive" msgstr "Дублювати примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3095 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3119 msgid "Set filter primitive attribute" msgstr "Встановити атрибут примітива фільтра" @@ -16555,7 +16703,7 @@ msgstr "Спіралі" msgid "Search spirals" msgstr "Шукати спіралі" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1782 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1796 msgid "Paths" msgstr "Контури" @@ -17440,7 +17588,7 @@ msgstr "Розташування на сітці" #: ../src/ui/dialog/grid-arrange-tab.cpp:571 #: ../src/ui/dialog/object-attributes.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:694 +#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:703 #: ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "X:" @@ -17633,11 +17781,23 @@ msgstr "" "Розмір точок, створених за допомогою Ctrl+клацання (у порівнянні з поточною " "товщиною штриха)" -#: ../src/ui/dialog/inkscape-preferences.cpp:220 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 +msgid "Base simplify:" +msgstr "Базове спрощення:" + +#: ../src/ui/dialog/inkscape-preferences.cpp:213 +msgid "on dinamic LPE simplify" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:214 +msgid "Base simplify of dinamic LPE based simplify" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:229 msgid "No objects selected to take the style from." msgstr "Немає вибраних об'єктів, звідки б можна було б узяти стиль." -#: ../src/ui/dialog/inkscape-preferences.cpp:229 +#: ../src/ui/dialog/inkscape-preferences.cpp:238 msgid "" "More than one object selected. Cannot take style from multiple " "objects." @@ -17645,23 +17805,23 @@ msgstr "" "позначено більше ніж один об'єкт. Не вдається взяти стиль від " "кількох об'єктів." -#: ../src/ui/dialog/inkscape-preferences.cpp:265 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "Style of new objects" msgstr "Стиль нових об'єктів" -#: ../src/ui/dialog/inkscape-preferences.cpp:267 +#: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "Last used style" msgstr "Останній використаний стиль" -#: ../src/ui/dialog/inkscape-preferences.cpp:269 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Apply the style you last set on an object" msgstr "Застосувати стиль, який ви застосовували останнім" -#: ../src/ui/dialog/inkscape-preferences.cpp:274 +#: ../src/ui/dialog/inkscape-preferences.cpp:283 msgid "This tool's own style:" msgstr "Власний стиль інструмента:" -#: ../src/ui/dialog/inkscape-preferences.cpp:278 +#: ../src/ui/dialog/inkscape-preferences.cpp:287 msgid "" "Each tool may store its own style to apply to the newly created objects. Use " "the button below to set it." @@ -17670,62 +17830,62 @@ msgstr "" "об'єктів. Скористайтеся кнопкою внизу для встановлення цього стилю." #. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:282 +#: ../src/ui/dialog/inkscape-preferences.cpp:291 msgid "Take from selection" msgstr "Взяти з позначеного" -#: ../src/ui/dialog/inkscape-preferences.cpp:291 +#: ../src/ui/dialog/inkscape-preferences.cpp:300 msgid "This tool's style of new objects" msgstr "Стиль цього інструмента нових об'єктів" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 +#: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" "Запам'ятати стиль (першого) позначеного об'єкта як стиль даного інструмента" -#: ../src/ui/dialog/inkscape-preferences.cpp:303 +#: ../src/ui/dialog/inkscape-preferences.cpp:312 msgid "Tools" msgstr "Інструменти" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 +#: ../src/ui/dialog/inkscape-preferences.cpp:315 msgid "Bounding box to use" msgstr "Рамка, що використовується" -#: ../src/ui/dialog/inkscape-preferences.cpp:307 +#: ../src/ui/dialog/inkscape-preferences.cpp:316 msgid "Visual bounding box" msgstr "Видима рамка" -#: ../src/ui/dialog/inkscape-preferences.cpp:309 +#: ../src/ui/dialog/inkscape-preferences.cpp:318 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "Ця рамка включає ширину пунктиру, маркери, поля фільтрування тощо." -#: ../src/ui/dialog/inkscape-preferences.cpp:310 +#: ../src/ui/dialog/inkscape-preferences.cpp:319 msgid "Geometric bounding box" msgstr "Геометрична рамка" -#: ../src/ui/dialog/inkscape-preferences.cpp:312 +#: ../src/ui/dialog/inkscape-preferences.cpp:321 msgid "This bounding box includes only the bare path" msgstr "Ця рамка включає лише простий контур" -#: ../src/ui/dialog/inkscape-preferences.cpp:314 +#: ../src/ui/dialog/inkscape-preferences.cpp:323 msgid "Conversion to guides" msgstr "Перетворення у напрямні" -#: ../src/ui/dialog/inkscape-preferences.cpp:315 +#: ../src/ui/dialog/inkscape-preferences.cpp:324 msgid "Keep objects after conversion to guides" msgstr "Зберегти об'єкти після перетворення у напрямні" -#: ../src/ui/dialog/inkscape-preferences.cpp:317 +#: ../src/ui/dialog/inkscape-preferences.cpp:326 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" msgstr "Після перетворення об'єкта на напрямні не вилучати сам об'єкт." -#: ../src/ui/dialog/inkscape-preferences.cpp:318 +#: ../src/ui/dialog/inkscape-preferences.cpp:327 msgid "Treat groups as a single object" msgstr "Поводитися з групами як з окремим об'єктом" -#: ../src/ui/dialog/inkscape-preferences.cpp:320 +#: ../src/ui/dialog/inkscape-preferences.cpp:329 msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" @@ -17733,108 +17893,108 @@ msgstr "" "Вважати групи окремими об'єктів під час перетворення на напрямні, а не " "перетворювати кожен з елементів окремо." -#: ../src/ui/dialog/inkscape-preferences.cpp:322 +#: ../src/ui/dialog/inkscape-preferences.cpp:331 msgid "Average all sketches" msgstr "Осереднення всіх ескізів" -#: ../src/ui/dialog/inkscape-preferences.cpp:323 +#: ../src/ui/dialog/inkscape-preferences.cpp:332 msgid "Width is in absolute units" msgstr "Ширина у абсолютних одиницях" -#: ../src/ui/dialog/inkscape-preferences.cpp:324 +#: ../src/ui/dialog/inkscape-preferences.cpp:333 msgid "Select new path" msgstr "Обрати новий контур" -#: ../src/ui/dialog/inkscape-preferences.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:334 msgid "Don't attach connectors to text objects" msgstr "Не приєднувати лінії з'єднання до тексту" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:328 +#: ../src/ui/dialog/inkscape-preferences.cpp:337 msgid "Selector" msgstr "Селектор" -#: ../src/ui/dialog/inkscape-preferences.cpp:333 +#: ../src/ui/dialog/inkscape-preferences.cpp:342 msgid "When transforming, show" msgstr "При трансформації показувати" -#: ../src/ui/dialog/inkscape-preferences.cpp:334 +#: ../src/ui/dialog/inkscape-preferences.cpp:343 msgid "Objects" msgstr "Об'єкти" -#: ../src/ui/dialog/inkscape-preferences.cpp:336 +#: ../src/ui/dialog/inkscape-preferences.cpp:345 msgid "Show the actual objects when moving or transforming" msgstr "Показувати об'єкти повністю при переміщенні чи трансформації" -#: ../src/ui/dialog/inkscape-preferences.cpp:337 +#: ../src/ui/dialog/inkscape-preferences.cpp:346 msgid "Box outline" msgstr "Рамку" -#: ../src/ui/dialog/inkscape-preferences.cpp:339 +#: ../src/ui/dialog/inkscape-preferences.cpp:348 msgid "Show only a box outline of the objects when moving or transforming" msgstr "" "Показувати лише прямокутну рамку об'єктів при переміщенні чи трансформації" -#: ../src/ui/dialog/inkscape-preferences.cpp:340 +#: ../src/ui/dialog/inkscape-preferences.cpp:349 msgid "Per-object selection cue" msgstr "Ознака позначення окремого об’єкта" -#: ../src/ui/dialog/inkscape-preferences.cpp:341 +#: ../src/ui/dialog/inkscape-preferences.cpp:350 msgctxt "Selection cue" msgid "None" msgstr "Немає" -#: ../src/ui/dialog/inkscape-preferences.cpp:343 +#: ../src/ui/dialog/inkscape-preferences.cpp:352 msgid "No per-object selection indication" msgstr "позначені об'єкти ніяк не позначені" -#: ../src/ui/dialog/inkscape-preferences.cpp:344 +#: ../src/ui/dialog/inkscape-preferences.cpp:353 msgid "Mark" msgstr "Позначка" -#: ../src/ui/dialog/inkscape-preferences.cpp:346 +#: ../src/ui/dialog/inkscape-preferences.cpp:355 msgid "Each selected object has a diamond mark in the top left corner" msgstr "" "Кожен позначений об'єкт має позначку у формі ромба у лівому верхньому куті" -#: ../src/ui/dialog/inkscape-preferences.cpp:347 +#: ../src/ui/dialog/inkscape-preferences.cpp:356 msgid "Box" msgstr "Рамка" -#: ../src/ui/dialog/inkscape-preferences.cpp:349 +#: ../src/ui/dialog/inkscape-preferences.cpp:358 msgid "Each selected object displays its bounding box" msgstr "Кожен позначений об'єкт позначений пунктирною рамкою" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:352 +#: ../src/ui/dialog/inkscape-preferences.cpp:361 msgid "Node" msgstr "Вузол" -#: ../src/ui/dialog/inkscape-preferences.cpp:355 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Path outline" msgstr "Обрис контуру" -#: ../src/ui/dialog/inkscape-preferences.cpp:356 +#: ../src/ui/dialog/inkscape-preferences.cpp:365 msgid "Path outline color" msgstr "Колір обрису контуру" -#: ../src/ui/dialog/inkscape-preferences.cpp:357 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Selects the color used for showing the path outline" msgstr "Обирає колір, що використовуватиметься для обрису контуру." -#: ../src/ui/dialog/inkscape-preferences.cpp:358 +#: ../src/ui/dialog/inkscape-preferences.cpp:367 msgid "Always show outline" msgstr "Завжди показувати обрис" -#: ../src/ui/dialog/inkscape-preferences.cpp:359 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Show outlines for all paths, not only invisible paths" msgstr "Показувати обриси для всіх ліній, а не лише для невидимих" -#: ../src/ui/dialog/inkscape-preferences.cpp:360 +#: ../src/ui/dialog/inkscape-preferences.cpp:369 msgid "Update outline when dragging nodes" msgstr "Оновлювати обриси під час перетягування вузлів" -#: ../src/ui/dialog/inkscape-preferences.cpp:361 +#: ../src/ui/dialog/inkscape-preferences.cpp:370 msgid "" "Update the outline when dragging or transforming nodes; if this is off, the " "outline will only update when completing a drag" @@ -17843,11 +18003,11 @@ msgstr "" "цей пункт не буде позначено, вигляд обрису буде оновлено лише після " "завершення дії." -#: ../src/ui/dialog/inkscape-preferences.cpp:362 +#: ../src/ui/dialog/inkscape-preferences.cpp:371 msgid "Update paths when dragging nodes" msgstr "Оновлювати контури під час перетягування вузлів" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:372 msgid "" "Update paths when dragging or transforming nodes; if this is off, paths will " "only be updated when completing a drag" @@ -17856,11 +18016,11 @@ msgstr "" "цей пункт не буде позначено, вигляд контуру буде оновлено лише після " "завершення дії." -#: ../src/ui/dialog/inkscape-preferences.cpp:364 +#: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "Show path direction on outlines" msgstr "Показувати напрям контуру на обрисах" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:374 msgid "" "Visualize the direction of selected paths by drawing small arrows in the " "middle of each outline segment" @@ -17868,28 +18028,28 @@ msgstr "" "Показувати напрям позначених контурів малюванням невеличких стрілочок " "всередині кожного з сегментів обрису" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:375 msgid "Show temporary path outline" msgstr "Показувати обрис тимчасового контуру" -#: ../src/ui/dialog/inkscape-preferences.cpp:367 +#: ../src/ui/dialog/inkscape-preferences.cpp:376 msgid "When hovering over a path, briefly flash its outline" msgstr "Після наведення вказівника на контур блимати його рамкою" -#: ../src/ui/dialog/inkscape-preferences.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "Show temporary outline for selected paths" msgstr "Показувати тимчасовий обрис для позначених контурів" -#: ../src/ui/dialog/inkscape-preferences.cpp:369 +#: ../src/ui/dialog/inkscape-preferences.cpp:378 msgid "Show temporary outline even when a path is selected for editing" msgstr "" "Показувати тимчасовий обрис, навіть якщо контур позначено для редагування" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 +#: ../src/ui/dialog/inkscape-preferences.cpp:380 msgid "_Flash time:" msgstr "Час _блимання:" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 +#: ../src/ui/dialog/inkscape-preferences.cpp:380 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 " @@ -17899,25 +18059,25 @@ msgstr "" "мілісекундах). Вкажіть 0, щоб рамку контуру було показано до того часу, доки " "вказівник не буде відведено від рамки." -#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:381 msgid "Editing preferences" msgstr "Параметри редагування" -#: ../src/ui/dialog/inkscape-preferences.cpp:373 +#: ../src/ui/dialog/inkscape-preferences.cpp:382 msgid "Show transform handles for single nodes" msgstr "Показувати елементи керування перетворенням для окремих вузлів" -#: ../src/ui/dialog/inkscape-preferences.cpp:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:383 msgid "Show transform handles even when only a single node is selected" msgstr "" "Показувати елементи керування перетворенням, навіть якщо позначено лише один " "вузол" -#: ../src/ui/dialog/inkscape-preferences.cpp:375 +#: ../src/ui/dialog/inkscape-preferences.cpp:384 msgid "Deleting nodes preserves shape" msgstr "Вилучення вузлів зберігає форму" -#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/ui/dialog/inkscape-preferences.cpp:385 msgid "" "Move handles next to deleted nodes to resemble original shape; hold Ctrl to " "get the other behavior" @@ -17926,31 +18086,31 @@ msgstr "" "Натисніть Ctrl, щоб скасувати таку поведінку" #. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:379 +#: ../src/ui/dialog/inkscape-preferences.cpp:388 msgid "Tweak" msgstr "Корекція" -#: ../src/ui/dialog/inkscape-preferences.cpp:380 +#: ../src/ui/dialog/inkscape-preferences.cpp:389 msgid "Object paint style" msgstr "Стиль малювання об'єктів" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:385 -#: ../src/widgets/desktop-widget.cpp:659 +#: ../src/ui/dialog/inkscape-preferences.cpp:394 +#: ../src/widgets/desktop-widget.cpp:668 msgid "Zoom" msgstr "Масштаб" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2764 +#: ../src/ui/dialog/inkscape-preferences.cpp:399 ../src/verbs.cpp:2763 msgctxt "ContextVerb" msgid "Measure" msgstr "Міра" -#: ../src/ui/dialog/inkscape-preferences.cpp:392 +#: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Ignore first and last points" msgstr "Ігнорувати першу і останню точки" -#: ../src/ui/dialog/inkscape-preferences.cpp:393 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "" "The start and end of the measurement tool's control line will not be " "considered for calculating lengths. Only lengths between actual curve " @@ -17961,15 +18121,15 @@ msgstr "" "кривих." #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:396 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Shapes" msgstr "Фігури" -#: ../src/ui/dialog/inkscape-preferences.cpp:428 +#: ../src/ui/dialog/inkscape-preferences.cpp:438 msgid "Sketch mode" msgstr "Режим ескіза" -#: ../src/ui/dialog/inkscape-preferences.cpp:430 +#: ../src/ui/dialog/inkscape-preferences.cpp:440 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" @@ -17978,17 +18138,17 @@ msgstr "" "ескізів, замість осереднення старого результату з новим ескізом." #. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:433 +#: ../src/ui/dialog/inkscape-preferences.cpp:443 #: ../src/ui/dialog/input.cpp:1485 msgid "Pen" msgstr "Перо" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:439 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "Calligraphy" msgstr "Каліграфія" -#: ../src/ui/dialog/inkscape-preferences.cpp:443 +#: ../src/ui/dialog/inkscape-preferences.cpp:453 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" @@ -17997,7 +18157,7 @@ msgstr "" "від масштабу; інакше товщина лінії підбиратиметься так, щоб бути візуально " "однаковою за будь-якого масштабу" -#: ../src/ui/dialog/inkscape-preferences.cpp:445 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "" "If on, each newly created object will be selected (deselecting previous " "selection)" @@ -18006,27 +18166,27 @@ msgstr "" "знімається попереднє позначення)" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2756 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 ../src/verbs.cpp:2755 msgctxt "ContextVerb" msgid "Text" msgstr "Текст" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:463 msgid "Show font samples in the drop-down list" msgstr "Показувати зразки шрифтів у спадному списку" -#: ../src/ui/dialog/inkscape-preferences.cpp:454 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "" "Show font samples alongside font names in the drop-down list in Text bar" msgstr "" "Показувати зразки шрифтів поряд з назвами шрифтів у спадному списку панелі " "тексту." -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Show font substitution warning dialog" msgstr "Показувати діалогове вікно попередження щодо заміни шрифтів" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "" "Show font substitution warning dialog when requested fonts are not available " "on the system" @@ -18034,77 +18194,77 @@ msgstr "" "Показувати діалогове вікно попередження щодо заміни шрифтів, якщо у системі " "не буде виявлено потрібних шрифтів." -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pixel" msgstr "Точка" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pica" msgstr "Піка" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Millimeter" msgstr "Міліметр" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Centimeter" msgstr "Сантиметр" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Inch" msgstr "Дюйм" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Em square" msgstr "Em квадрат" #. , _("Ex square"), _("Percent") #. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:473 msgid "Text units" msgstr "Одиниці тексту" -#: ../src/ui/dialog/inkscape-preferences.cpp:465 +#: ../src/ui/dialog/inkscape-preferences.cpp:475 msgid "Text size unit type:" msgstr "Тип одиниць розміру символів:" -#: ../src/ui/dialog/inkscape-preferences.cpp:466 +#: ../src/ui/dialog/inkscape-preferences.cpp:476 msgid "Set the type of unit used in the text toolbar and text dialogs" msgstr "" "Встановити тип одиниці на панелі інструментів тексту та у діалогових вікна " "параметрів тексту" -#: ../src/ui/dialog/inkscape-preferences.cpp:467 +#: ../src/ui/dialog/inkscape-preferences.cpp:477 msgid "Always output text size in pixels (px)" msgstr "Завжди виводити розмір символів у пікселях (пк)" #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:473 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 msgid "Spray" msgstr "Розкидання" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:478 +#: ../src/ui/dialog/inkscape-preferences.cpp:488 msgid "Eraser" msgstr "Гумка" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:483 +#: ../src/ui/dialog/inkscape-preferences.cpp:493 msgid "Paint Bucket" msgstr "Відро з фарбою" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:489 -#: ../src/widgets/gradient-selector.cpp:148 -#: ../src/widgets/gradient-selector.cpp:299 +#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/widgets/gradient-selector.cpp:144 +#: ../src/widgets/gradient-selector.cpp:295 msgid "Gradient" msgstr "Градієнт" -#: ../src/ui/dialog/inkscape-preferences.cpp:491 +#: ../src/ui/dialog/inkscape-preferences.cpp:501 msgid "Prevent sharing of gradient definitions" msgstr "Не поділяти визначення градієнтів між об'єктами" -#: ../src/ui/dialog/inkscape-preferences.cpp:493 +#: ../src/ui/dialog/inkscape-preferences.cpp:503 msgid "" "When on, shared gradient definitions are automatically forked on change; " "uncheck to allow sharing of gradient definitions so that editing one object " @@ -18115,11 +18275,11 @@ msgstr "" "об'єктами так, що зміна градієнта для одного об'єкта може вплинути на інші " "об'єкти, що використовують той самий градієнт" -#: ../src/ui/dialog/inkscape-preferences.cpp:494 +#: ../src/ui/dialog/inkscape-preferences.cpp:504 msgid "Use legacy Gradient Editor" msgstr "Використовувати застарілий редактор градієнтів" -#: ../src/ui/dialog/inkscape-preferences.cpp:496 +#: ../src/ui/dialog/inkscape-preferences.cpp:506 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" @@ -18129,11 +18289,11 @@ msgstr "" "градієнтів. Якщо не буде позначено, використовуватиметься інструмент " "градієнтів нового зразка." -#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/ui/dialog/inkscape-preferences.cpp:509 msgid "Linear gradient _angle:" msgstr "_Кут лінійного градієнта:" -#: ../src/ui/dialog/inkscape-preferences.cpp:500 +#: ../src/ui/dialog/inkscape-preferences.cpp:510 msgid "" "Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" @@ -18141,452 +18301,457 @@ msgstr "" "від горизонталі)" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:504 +#: ../src/ui/dialog/inkscape-preferences.cpp:514 msgid "Dropper" msgstr "Піпетка" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:509 +#: ../src/ui/dialog/inkscape-preferences.cpp:519 msgid "Connector" msgstr "Лінія з'єднання" -#: ../src/ui/dialog/inkscape-preferences.cpp:512 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 msgid "If on, connector attachment points will not be shown for text objects" msgstr "" "У разі вибрання кінці лінії з'єднання не буде показано для текстових об'єктів" #. LPETool #. disabled, because the LPETool is not finished yet. -#: ../src/ui/dialog/inkscape-preferences.cpp:517 +#: ../src/ui/dialog/inkscape-preferences.cpp:527 msgid "LPE Tool" msgstr "Інструмент геометричної побудови" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:534 msgid "Interface" msgstr "Інтерфейс" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:537 msgid "System default" msgstr "Типова системна" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Albanian (sq)" msgstr "Албанська (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Amharic (am)" msgstr "Амхарська (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Arabic (ar)" msgstr "Арабська (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Armenian (hy)" msgstr "Вірменська (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Assamese (as)" msgstr "Ассамська (as)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Azerbaijani (az)" msgstr "Азербайджанська (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Basque (eu)" msgstr "Баскська (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Belarusian (be)" msgstr "Білоруська (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bulgarian (bg)" msgstr "Болгарська (bg)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali (bn)" msgstr "Бенгальська (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali/Bangladesh (bn_BD)" msgstr "Бенгальська, Бангладеш (bn_BD)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bodo (brx)" msgstr "Бодо (brx)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Breton (br)" msgstr "Бретонська (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Catalan (ca)" msgstr "Каталанська (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Valencian Catalan (ca@valencia)" msgstr "Валенсійска каталанська (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/China (zh_CN)" msgstr "Китайська/Китай (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/Taiwan (zh_TW)" msgstr "Китайська/Тайвань (zh_TW)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Croatian (hr)" msgstr "Хорватська (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Czech (cs)" msgstr "Чеська (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Danish (da)" msgstr "Данська (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dogri (doi)" msgstr "Догрі (doi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dutch (nl)" msgstr "Голландська (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dzongkha (dz)" msgstr "Джонка (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:542 msgid "German (de)" msgstr "Німецька (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:542 msgid "Greek (el)" msgstr "Грецька (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English (en)" msgstr "Англійська (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Australia (en_AU)" msgstr "Англійська/Австралія (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Canada (en_CA)" msgstr "Англійська/Канада (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Great Britain (en_GB)" msgstr "Англійська/Великобританія (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Pig Latin (en_US@piglatin)" msgstr "Свиняча латина (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Esperanto (eo)" msgstr "Есперанто (eo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Estonian (et)" msgstr "Естонська (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:534 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Farsi (fa)" msgstr "Фарсі (fa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:534 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Finnish (fi)" msgstr "Фінська (fi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:534 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "French (fr)" msgstr "Французька (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 msgid "Galician (gl)" msgstr "Галісійська (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 msgid "Gujarati (gu)" msgstr "Гуджараті (gu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hebrew (he)" msgstr "Єврейська (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hindi (hi)" msgstr "Хінді (hi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hungarian (hu)" msgstr "Угорська (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Icelandic (is)" msgstr "ісландська (is)" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Indonesian (id)" msgstr "Індонезійська (id)" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Irish (ga)" msgstr "Ірландська (ga)" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Italian (it)" msgstr "Італійська (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:538 +#: ../src/ui/dialog/inkscape-preferences.cpp:548 msgid "Japanese (ja)" msgstr "Японська (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kannada (kn)" msgstr "Каннада (kn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kashmiri in Peso-Arabic script (ks@aran)" msgstr "Кашмірська, записана арабською писемністю (ks@aran)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kashmiri in Devanagari script (ks@deva)" msgstr "Кашмірська, записана писемністю деванагарі (ks@deva)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Khmer (km)" msgstr "Кхмерська (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kinyarwanda (rw)" msgstr "Руандійська (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Konkani (kok)" msgstr "Конканська (kok)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Konkani in Latin script (kok@latin)" msgstr "Конканська (латиниця) (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Korean (ko)" msgstr "Корейська (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 msgid "Latvian (lv)" msgstr "Латвійська (lv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 msgid "Lithuanian (lt)" msgstr "Литовська (lt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Macedonian (mk)" msgstr "Македонська (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Maithili (mai)" msgstr "Майтілі (mai)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Malayalam (ml)" msgstr "Малаялам (ml)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Manipuri (mni)" msgstr "Маніпурі (mni)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Manipuri in Bengali script (mni@beng)" msgstr "Маніпурі, записана бенгальською писемністю (mni@beng)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Marathi (mr)" msgstr "Маратійська (gu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Mongolian (mn)" msgstr "Монгольська (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Nepali (ne)" msgstr "Непальська (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian Bokmål (nb)" msgstr "Норвезька (букмол) (nb)" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian Nynorsk (nn)" msgstr "Норвезька (нюноршк) (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:553 msgid "Odia (or)" msgstr "Орія (or)" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Panjabi (pa)" msgstr "Пенджабі (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Polish (pl)" msgstr "Польська (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese (pt)" msgstr "Португальська (pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese/Brazil (pt_BR)" msgstr "Португальська бразильська (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:545 +#: ../src/ui/dialog/inkscape-preferences.cpp:555 msgid "Romanian (ro)" msgstr "Румунська (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:545 +#: ../src/ui/dialog/inkscape-preferences.cpp:555 msgid "Russian (ru)" msgstr "Російська (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Sanskrit (sa)" msgstr "Санскрит (sa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Santali (sat)" msgstr "Санталі (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Santali in Devanagari script (sat@deva)" msgstr "Санталі, записана писемністю деванагарі (sat@deva)" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian (sr)" msgstr "Сербська (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian in Latin script (sr@latin)" msgstr "Сербська (латиниця) (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Sindhi (sd)" msgstr "Сіндхська (sd)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Sindhi in Devanagari script (sd@deva)" msgstr "Сіндхська, записана писемністю деванагарі (sd@deva)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovak (sk)" msgstr "Словацька (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovenian (sl)" msgstr "Словенська (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish (es)" msgstr "Іспанська (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish/Mexico (es_MX)" msgstr "Іспанська (Мексика) (es_MX)" -#: ../src/ui/dialog/inkscape-preferences.cpp:547 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Swedish (sv)" msgstr "Шведська (sv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:548 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Tamil (ta)" msgstr "Тамільська (ta)" -#: ../src/ui/dialog/inkscape-preferences.cpp:548 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Telugu (te)" msgstr "Телугу (te)" -#: ../src/ui/dialog/inkscape-preferences.cpp:548 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Thai (th)" msgstr "Тайська (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:548 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Turkish (tr)" msgstr "Турецька (tr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "Ukrainian (uk)" msgstr "Українська (uk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "Urdu (ur)" msgstr "Урду (ur)" -#: ../src/ui/dialog/inkscape-preferences.cpp:550 +#: ../src/ui/dialog/inkscape-preferences.cpp:560 msgid "Vietnamese (vi)" msgstr "В'єтнамська (vi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/inkscape-preferences.cpp:612 msgid "Language (requires restart):" msgstr "Мова (потребує перезапуску):" -#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 msgid "Set the language for menus and number formats" msgstr "Встановити мову для пунктів меню і формату чисел" -#: ../src/ui/dialog/inkscape-preferences.cpp:606 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +msgctxt "Icon size" +msgid "Larger" +msgstr "Більший" + +#: ../src/ui/dialog/inkscape-preferences.cpp:616 msgctxt "Icon size" msgid "Large" msgstr "Великий" -#: ../src/ui/dialog/inkscape-preferences.cpp:606 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 msgctxt "Icon size" msgid "Small" msgstr "Малий" -#: ../src/ui/dialog/inkscape-preferences.cpp:606 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 msgctxt "Icon size" msgid "Smaller" msgstr "Менший" -#: ../src/ui/dialog/inkscape-preferences.cpp:610 +#: ../src/ui/dialog/inkscape-preferences.cpp:621 msgid "Toolbox icon size:" msgstr "Розмір піктограм інструментів:" -#: ../src/ui/dialog/inkscape-preferences.cpp:611 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Set the size for the tool icons (requires restart)" msgstr "Встановити розмір основних інструментів (потрібен перезапуск)" -#: ../src/ui/dialog/inkscape-preferences.cpp:614 +#: ../src/ui/dialog/inkscape-preferences.cpp:625 msgid "Control bar icon size:" msgstr "Розмір піктограм панелі керування:" -#: ../src/ui/dialog/inkscape-preferences.cpp:615 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "Вказати розмір піктограм панелі керування (потрібен перезапуск)" -#: ../src/ui/dialog/inkscape-preferences.cpp:618 +#: ../src/ui/dialog/inkscape-preferences.cpp:629 msgid "Secondary toolbar icon size:" msgstr "Розмір піктограм вторинної панелі інструментів:" -#: ../src/ui/dialog/inkscape-preferences.cpp:619 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "Вказати розмір вторинної панелі інструментів (потрібен перезапуск)" -#: ../src/ui/dialog/inkscape-preferences.cpp:622 +#: ../src/ui/dialog/inkscape-preferences.cpp:633 msgid "Work-around color sliders not drawing" msgstr "Вирішення для випадків, коли програма не малює кольорові повзунки" -#: ../src/ui/dialog/inkscape-preferences.cpp:624 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" @@ -18594,15 +18759,15 @@ msgstr "" "Якщо позначити, програма намагатиметься уникнути вад у певних темах GTK, " "пов'язаних з малюванням кольорових повзунків." -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:640 msgid "Clear list" msgstr "Спорожнити список" -#: ../src/ui/dialog/inkscape-preferences.cpp:632 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Maximum documents in Open _Recent:" msgstr "Максимальна кількість _недавніх документів:" -#: ../src/ui/dialog/inkscape-preferences.cpp:633 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 msgid "" "Set the maximum length of the Open Recent list in the File menu, or clear " "the list" @@ -18610,11 +18775,11 @@ msgstr "" "Максимальна довжина підменю недавніх документів у меню «Файл», за допомогою " "цього пункту можна спорожнити список" -#: ../src/ui/dialog/inkscape-preferences.cpp:636 +#: ../src/ui/dialog/inkscape-preferences.cpp:647 msgid "_Zoom correction factor (in %):" msgstr "Кое_фіцієнт виправлення масштабу (у %):" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:648 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 " @@ -18624,11 +18789,11 @@ msgstr "" "збігатиметься з її дійсною довжиною. Ці відомості буде використано під час " "масштабування 1:1, 1:2 тощо, щоб показувати об'єкти з істинними розмірами" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Enable dynamic relayout for incomplete sections" msgstr "Увімкнути динамічне перекомпонування для незавершених частин" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgid "" "When on, will allow dynamic layout of components that are not completely " "finished being refactored" @@ -18637,11 +18802,11 @@ msgstr "" "які не було повністю завершено до зміни масштабів." #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:645 +#: ../src/ui/dialog/inkscape-preferences.cpp:656 msgid "Show filter primitives infobox (requires restart)" msgstr "Показувати довідку з примітивів фільтра (потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:647 +#: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" @@ -18649,26 +18814,26 @@ msgstr "" "Показувати піктограми і описи для всіх примітивів фільтрів у діалозі ефектів " "фільтра" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 -#: ../src/ui/dialog/inkscape-preferences.cpp:658 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons only" msgstr "Лише піктограми" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 -#: ../src/ui/dialog/inkscape-preferences.cpp:658 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Text only" msgstr "Лише текст" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 -#: ../src/ui/dialog/inkscape-preferences.cpp:658 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons and text" msgstr "Піктограми і текст" -#: ../src/ui/dialog/inkscape-preferences.cpp:655 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 msgid "Dockbar style (requires restart):" msgstr "Стиль бічної панелі (потребує перезапуску):" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "" "Selects whether the vertical bars on the dockbar will show text labels, " "icons, or both" @@ -18676,11 +18841,11 @@ msgstr "" "Надає змогу визначити, що буде показано на вертикальних смугах бічної " "панелі: текстові мітки, піктограми чи текстові мітки і піктограми одразу." -#: ../src/ui/dialog/inkscape-preferences.cpp:663 +#: ../src/ui/dialog/inkscape-preferences.cpp:674 msgid "Switcher style (requires restart):" msgstr "Стиль перемикача (потребує перезапуску):" -#: ../src/ui/dialog/inkscape-preferences.cpp:664 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "" "Selects whether the dockbar switcher will show text labels, icons, or both" msgstr "" @@ -18688,98 +18853,98 @@ msgstr "" "текстові мітки, піктограми чи текстові мітки і піктограми одразу." #. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:679 msgid "Save and restore window geometry for each document" msgstr "" "Запам'ятовувати і використовувати геометрію вікна для кожного документа" -#: ../src/ui/dialog/inkscape-preferences.cpp:669 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Remember and use last window's geometry" msgstr "Запам'ятати і використовувати останню геометрію вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:670 +#: ../src/ui/dialog/inkscape-preferences.cpp:681 msgid "Don't save window geometry" msgstr "Не зберігати геометрію вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 +#: ../src/ui/dialog/inkscape-preferences.cpp:683 msgid "Save and restore dialogs status" msgstr "Зберігати і відновлювати параметри діалогових вікон" -#: ../src/ui/dialog/inkscape-preferences.cpp:673 -#: ../src/ui/dialog/inkscape-preferences.cpp:709 +#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Don't save dialogs status" msgstr "Не зберігати параметри діалогових вікон" -#: ../src/ui/dialog/inkscape-preferences.cpp:675 -#: ../src/ui/dialog/inkscape-preferences.cpp:717 +#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 msgid "Dockable" msgstr "Закріплюються до правого краю вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "Native open/save dialogs" msgstr "Стандартні вікна відкриття і збереження" -#: ../src/ui/dialog/inkscape-preferences.cpp:680 +#: ../src/ui/dialog/inkscape-preferences.cpp:691 msgid "GTK open/save dialogs" msgstr "Вікна відкриття і збереження GTK" -#: ../src/ui/dialog/inkscape-preferences.cpp:682 +#: ../src/ui/dialog/inkscape-preferences.cpp:693 msgid "Dialogs are hidden in taskbar" msgstr "Не показувати діалоги на панелі задач" -#: ../src/ui/dialog/inkscape-preferences.cpp:683 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Save and restore documents viewport" msgstr "Зберігати і відновлювати поле зору у документах" -#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Zoom when window is resized" msgstr "Масштабувати при зміні розмірів вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:685 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Show close button on dialogs" msgstr "Показувати кнопку закриття у діалогах" -#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:697 msgctxt "Dialog on top" msgid "None" msgstr "Жодного" -#: ../src/ui/dialog/inkscape-preferences.cpp:688 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Aggressive" msgstr "Примусово" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Small" msgstr "Малий" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Large" msgstr "Великий" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgctxt "Window size" msgid "Maximized" msgstr "Максимізований" -#: ../src/ui/dialog/inkscape-preferences.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Default window size:" msgstr "Типовий розмір вікна:" -#: ../src/ui/dialog/inkscape-preferences.cpp:696 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "Set the default window size" msgstr "Встановити типовий розмір вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:710 msgid "Saving window geometry (size and position)" msgstr "Зберігати геометрію вікон (розмір і розташування)" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:712 msgid "Let the window manager determine placement of all windows" msgstr "Дозволити менеджеру вікон розташовувати всі вікна самостійно" -#: ../src/ui/dialog/inkscape-preferences.cpp:703 +#: ../src/ui/dialog/inkscape-preferences.cpp:714 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" @@ -18787,7 +18952,7 @@ msgstr "" "Запам'ятовувати і використовувати геометрію останнього вікна (геометрія " "зберігається у налаштуваннях користувача)" -#: ../src/ui/dialog/inkscape-preferences.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:716 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" @@ -18795,11 +18960,11 @@ msgstr "" "Запам'ятовувати і відновлювати геометрію вікна для кожного документа " "(геометрія зберігається у документі)" -#: ../src/ui/dialog/inkscape-preferences.cpp:707 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 msgid "Saving dialogs status" msgstr "Збереження параметрів діалогових вікон" -#: ../src/ui/dialog/inkscape-preferences.cpp:711 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "" "Save and restore dialogs status (the last open windows dialogs are saved " "when it closes)" @@ -18807,66 +18972,66 @@ msgstr "" "Зберігати і відновлювати параметри діалогових вікон (параметри останніх " "відкритих діалогових вікон зберігатимуться під час їхнього закриття)" -#: ../src/ui/dialog/inkscape-preferences.cpp:715 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 msgid "Dialog behavior (requires restart)" msgstr "Поведінка діалогів (потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Desktop integration" msgstr "Інтеграція до стільниці" -#: ../src/ui/dialog/inkscape-preferences.cpp:723 +#: ../src/ui/dialog/inkscape-preferences.cpp:734 msgid "Use Windows like open and save dialogs" msgstr "" "Використовувати вікна подібні до вікон Windows для відкриття та збереження" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 msgid "Use GTK open and save dialogs " msgstr "Використовувати вікна GTK для відкриття та збереження " -#: ../src/ui/dialog/inkscape-preferences.cpp:729 +#: ../src/ui/dialog/inkscape-preferences.cpp:740 msgid "Dialogs on top:" msgstr "Діалоги над вікном:" -#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/ui/dialog/inkscape-preferences.cpp:743 msgid "Dialogs are treated as regular windows" msgstr "Діалоги вважаються звичайними вікнами" -#: ../src/ui/dialog/inkscape-preferences.cpp:734 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 msgid "Dialogs stay on top of document windows" msgstr "Діалоги залишаються над вікнами документів" -#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 msgid "Same as Normal but may work better with some window managers" msgstr "" "Те саме що і Звичайне, але може працювати краще з деякими віконними " "середовищами" -#: ../src/ui/dialog/inkscape-preferences.cpp:739 +#: ../src/ui/dialog/inkscape-preferences.cpp:750 msgid "Dialog Transparency" msgstr "Прозорість вікон" -#: ../src/ui/dialog/inkscape-preferences.cpp:741 +#: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "_Opacity when focused:" msgstr "Неп_розорість при фокусуванні:" -#: ../src/ui/dialog/inkscape-preferences.cpp:743 +#: ../src/ui/dialog/inkscape-preferences.cpp:754 msgid "Opacity when _unfocused:" msgstr "Непро_зорість без фокусування:" -#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "_Time of opacity change animation:" msgstr "_Час зміни непрозорості у анімації:" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 +#: ../src/ui/dialog/inkscape-preferences.cpp:759 msgid "Miscellaneous" msgstr "Інше" -#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "Чи прибирати діалогові вікна з панелі завдань віконного менеджера" -#: ../src/ui/dialog/inkscape-preferences.cpp:754 +#: ../src/ui/dialog/inkscape-preferences.cpp:765 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 " @@ -18875,7 +19040,7 @@ msgstr "" "Масштабувати малюнок при зміні розмірів вікна, щоб зберегти видиму область " "(можна змінювати кнопкою над правою смугою гортання)" -#: ../src/ui/dialog/inkscape-preferences.cpp:756 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 msgid "" "Save documents viewport (zoom and panning position). Useful to turn off when " "sharing version controlled files." @@ -18884,101 +19049,101 @@ msgstr "" "панорамування). Варто вимкнути, якщо файл зберігається у системі керування " "версіями." -#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Whether dialog windows have a close button (requires restart)" msgstr "Чи матиме вікно діалогу кнопку закриття (потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:759 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 msgid "Windows" msgstr "Вікна" #. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:762 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Line color when zooming out" msgstr "Колір ліній у разі зменшення масштабу" -#: ../src/ui/dialog/inkscape-preferences.cpp:765 +#: ../src/ui/dialog/inkscape-preferences.cpp:776 msgid "The gridlines will be shown in minor grid line color" msgstr "Лінії сітки буде показано кольором другорядних ліній сітки" -#: ../src/ui/dialog/inkscape-preferences.cpp:767 +#: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "The gridlines will be shown in major grid line color" msgstr "Лінії сітки буде показано кольором основних ліній сітки" -#: ../src/ui/dialog/inkscape-preferences.cpp:769 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Default grid settings" msgstr "Типові налаштування сітки" -#: ../src/ui/dialog/inkscape-preferences.cpp:775 -#: ../src/ui/dialog/inkscape-preferences.cpp:800 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Grid units:" msgstr "Одиниці сітки:" -#: ../src/ui/dialog/inkscape-preferences.cpp:780 -#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "Origin X:" msgstr "Початок за X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:781 -#: ../src/ui/dialog/inkscape-preferences.cpp:806 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Origin Y:" msgstr "Початок за Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:786 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Spacing X:" msgstr "Інтервал за X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Spacing Y:" msgstr "Інтервал за Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:789 -#: ../src/ui/dialog/inkscape-preferences.cpp:790 -#: ../src/ui/dialog/inkscape-preferences.cpp:814 -#: ../src/ui/dialog/inkscape-preferences.cpp:815 +#: ../src/ui/dialog/inkscape-preferences.cpp:800 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:825 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Minor grid line color:" msgstr "Колір другорядних ліній сітки:" -#: ../src/ui/dialog/inkscape-preferences.cpp:790 -#: ../src/ui/dialog/inkscape-preferences.cpp:815 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Color used for normal grid lines" msgstr "Колір, що використовуватиметься для звичайних ліній сітки." -#: ../src/ui/dialog/inkscape-preferences.cpp:791 -#: ../src/ui/dialog/inkscape-preferences.cpp:792 -#: ../src/ui/dialog/inkscape-preferences.cpp:816 -#: ../src/ui/dialog/inkscape-preferences.cpp:817 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Major grid line color:" msgstr "Колір основної лінії сітки:" -#: ../src/ui/dialog/inkscape-preferences.cpp:792 -#: ../src/ui/dialog/inkscape-preferences.cpp:817 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Color used for major (highlighted) grid lines" msgstr "Колір основних (підсвічених) ліній сітки" -#: ../src/ui/dialog/inkscape-preferences.cpp:794 -#: ../src/ui/dialog/inkscape-preferences.cpp:819 +#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Major grid line every:" msgstr "Основна лінія через кожні:" -#: ../src/ui/dialog/inkscape-preferences.cpp:795 +#: ../src/ui/dialog/inkscape-preferences.cpp:806 msgid "Show dots instead of lines" msgstr "Показувати точки замість ліній" -#: ../src/ui/dialog/inkscape-preferences.cpp:796 +#: ../src/ui/dialog/inkscape-preferences.cpp:807 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "Якщо позначено, замість ліній сітки показуються точки сітки" -#: ../src/ui/dialog/inkscape-preferences.cpp:877 +#: ../src/ui/dialog/inkscape-preferences.cpp:888 msgid "Input/Output" msgstr "Вхідні/Вихідні дані" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 +#: ../src/ui/dialog/inkscape-preferences.cpp:891 msgid "Use current directory for \"Save As ...\"" msgstr "Використовувати для «Зберегти як…» поточний каталог" -#: ../src/ui/dialog/inkscape-preferences.cpp:882 +#: ../src/ui/dialog/inkscape-preferences.cpp:893 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 " @@ -18991,11 +19156,11 @@ msgstr "" "відкрито у каталозі, куди було збережено файл під час попереднього " "використання цього діалогового вікна." -#: ../src/ui/dialog/inkscape-preferences.cpp:884 +#: ../src/ui/dialog/inkscape-preferences.cpp:895 msgid "Add label comments to printing output" msgstr "Додати коментар до виводу друку" -#: ../src/ui/dialog/inkscape-preferences.cpp:886 +#: ../src/ui/dialog/inkscape-preferences.cpp:897 msgid "" "When on, a comment will be added to the raw print output, marking the " "rendered output for an object with its label" @@ -19003,11 +19168,11 @@ msgstr "" "Якщо увімкнено, до необробленого виводу друку буде додано коментар, що " "позначає вивід об'єкта з його позначкою" -#: ../src/ui/dialog/inkscape-preferences.cpp:888 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Add default metadata to new documents" msgstr "Додавати до нових документів типові метадані" -#: ../src/ui/dialog/inkscape-preferences.cpp:890 +#: ../src/ui/dialog/inkscape-preferences.cpp:901 msgid "" "Add default metadata to new documents. Default metadata can be set from " "Document Properties->Metadata." @@ -19015,15 +19180,15 @@ msgstr "" "Додавати до нових документів типові метадані. Змінити типові метадані можна " "за допомогою пункту меню «Властивості документа -> Mетадані»." -#: ../src/ui/dialog/inkscape-preferences.cpp:894 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "_Grab sensitivity:" msgstr "Раді_ус захоплення:" -#: ../src/ui/dialog/inkscape-preferences.cpp:894 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "pixels (requires restart)" msgstr "пікселів (потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:895 +#: ../src/ui/dialog/inkscape-preferences.cpp:906 msgid "" "How close on the screen you need to be to an object to be able to grab it " "with mouse (in screen pixels)" @@ -19031,39 +19196,39 @@ msgstr "" "Як близько (у точках) потрібно підвести курсор миші до об'єкта, щоб захопити " "його" -#: ../src/ui/dialog/inkscape-preferences.cpp:897 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 msgid "_Click/drag threshold:" msgstr "Вва_жати клацанням перетягування на:" -#: ../src/ui/dialog/inkscape-preferences.cpp:897 -#: ../src/ui/dialog/inkscape-preferences.cpp:1239 -#: ../src/ui/dialog/inkscape-preferences.cpp:1243 -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 msgid "pixels" msgstr "точок" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:909 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" "Максимальна кількість точок, перетягування на яку сприймається як клацання, " "а не перетягування" -#: ../src/ui/dialog/inkscape-preferences.cpp:901 +#: ../src/ui/dialog/inkscape-preferences.cpp:912 msgid "_Handle size:" msgstr "Розмір в_уса:" -#: ../src/ui/dialog/inkscape-preferences.cpp:902 +#: ../src/ui/dialog/inkscape-preferences.cpp:913 msgid "Set the relative size of node handles" msgstr "Встановити відносний розмір вусів вузла" -#: ../src/ui/dialog/inkscape-preferences.cpp:904 +#: ../src/ui/dialog/inkscape-preferences.cpp:915 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "" "Використовувати графічний планшет чи інший пристрій (потребує " "перезавантаження)" -#: ../src/ui/dialog/inkscape-preferences.cpp:906 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 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 " @@ -19073,26 +19238,26 @@ msgstr "" "пристрою. Вимикайте це, лише якщо виникають проблеми з графічним планшетом " "(залишається можливість використовувати мишу) ." -#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:919 msgid "Switch tool based on tablet device (requires restart)" msgstr "Перемикати інструмент за пристроєм планшета (потребує перезапуску):" -#: ../src/ui/dialog/inkscape-preferences.cpp:910 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" "Змінювати інструмент зі зміною пристроїв на планшеті (перо, гумка, мишка)" -#: ../src/ui/dialog/inkscape-preferences.cpp:911 +#: ../src/ui/dialog/inkscape-preferences.cpp:922 msgid "Input devices" msgstr "Пристрої введення" #. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:914 +#: ../src/ui/dialog/inkscape-preferences.cpp:925 msgid "Use named colors" msgstr "Використовувати кольори з назвами" -#: ../src/ui/dialog/inkscape-preferences.cpp:915 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "" "If set, write the CSS name of the color when available (e.g. 'red' or " "'magenta') instead of the numeric value" @@ -19100,23 +19265,23 @@ msgstr "" "Якщо позначено, записувати CSS-назву кольору, якщо вона доступна (наприклад, " "«red» або «magenta») замість числового значення" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "XML formatting" msgstr "XML-форматування" -#: ../src/ui/dialog/inkscape-preferences.cpp:919 +#: ../src/ui/dialog/inkscape-preferences.cpp:930 msgid "Inline attributes" msgstr "Вбудовані атрибути" -#: ../src/ui/dialog/inkscape-preferences.cpp:920 +#: ../src/ui/dialog/inkscape-preferences.cpp:931 msgid "Put attributes on the same line as the element tag" msgstr "Вказувати атрибути у тому ж рядку, що і теґ елемента" -#: ../src/ui/dialog/inkscape-preferences.cpp:923 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "_Indent, spaces:" msgstr "Ві_дступ, у пробілах:" -#: ../src/ui/dialog/inkscape-preferences.cpp:923 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" @@ -19124,28 +19289,28 @@ msgstr "" "Кількість пробілів, які буде використано для створення відступів елементів, " "встановіть значення 0, щоб усунути відступи" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Path data" msgstr "Дані контуру" -#: ../src/ui/dialog/inkscape-preferences.cpp:928 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Absolute" msgstr "Абсолютний" -#: ../src/ui/dialog/inkscape-preferences.cpp:928 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Relative" msgstr "Відносний" -#: ../src/ui/dialog/inkscape-preferences.cpp:928 -#: ../src/ui/dialog/inkscape-preferences.cpp:1218 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 msgid "Optimized" msgstr "З оптимізацією" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "Path string format:" msgstr "Формат рядка контуру:" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "" "Path data should be written: only with absolute coordinates, only with " "relative coordinates, or optimized for string length (mixed absolute and " @@ -19155,11 +19320,11 @@ msgstr "" "відносних координатах або оптимізовано за довжиною рядка (використовуючи як " "абсолютні, так і відносні координати)" -#: ../src/ui/dialog/inkscape-preferences.cpp:934 +#: ../src/ui/dialog/inkscape-preferences.cpp:945 msgid "Force repeat commands" msgstr "Примусове повторення команд" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:946 msgid "" "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " "of 'L 1,2 3,4')" @@ -19167,23 +19332,23 @@ msgstr "" "Примусове повторення тої самої команди контуру (наприклад, 'L 1,2 L 3,4' " "замість 'L 1,2 3,4')" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 +#: ../src/ui/dialog/inkscape-preferences.cpp:948 msgid "Numbers" msgstr "Числа" -#: ../src/ui/dialog/inkscape-preferences.cpp:940 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "_Numeric precision:" msgstr "_Числова точність:" -#: ../src/ui/dialog/inkscape-preferences.cpp:940 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "Significant figures of the values written to the SVG file" msgstr "Значущі частини значень, які буде записано до файла SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "Minimum _exponent:" msgstr "Мінімальний по_казник:" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" @@ -19193,17 +19358,17 @@ msgstr "" #. Code to add controls for attribute checking options #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:948 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Improper Attributes Actions" msgstr "Дії з неналежними атрибутами" -#: ../src/ui/dialog/inkscape-preferences.cpp:950 -#: ../src/ui/dialog/inkscape-preferences.cpp:958 -#: ../src/ui/dialog/inkscape-preferences.cpp:966 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:977 msgid "Print warnings" msgstr "Повідомляти про помилки" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 +#: ../src/ui/dialog/inkscape-preferences.cpp:962 msgid "" "Print warning if invalid or non-useful attributes found. Database files " "located in inkscape_data_dir/attributes." @@ -19212,20 +19377,20 @@ msgstr "" "атрибут. Файли бази даних зберігаються у теці каталог_даних_inkscape/" "attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Remove attributes" msgstr "Вилучати атрибути" -#: ../src/ui/dialog/inkscape-preferences.cpp:953 +#: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "Delete invalid or non-useful attributes from element tag" msgstr "Вилучати некоректні та непотрібні атрибути з теґів елемента" #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:956 +#: ../src/ui/dialog/inkscape-preferences.cpp:967 msgid "Inappropriate Style Properties Actions" msgstr "Дії з неналежними властивостями стилю" -#: ../src/ui/dialog/inkscape-preferences.cpp:959 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "" "Print warning if inappropriate style properties found (i.e. 'font-family' " "set on a ). Database files located in inkscape_data_dir/attributes." @@ -19234,21 +19399,21 @@ msgstr "" "(наприклад, «font-family» у ). Файли бази даних зберігаються у теці " "каталог_даних_inkscape/attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:960 -#: ../src/ui/dialog/inkscape-preferences.cpp:968 +#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:979 msgid "Remove style properties" msgstr "Вилучати властивості стилю" -#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:972 msgid "Delete inappropriate style properties" msgstr "Вилучати невідповідні властивості стилю" #. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:964 +#: ../src/ui/dialog/inkscape-preferences.cpp:975 msgid "Non-useful Style Properties Actions" msgstr "Дії з непотрібними властивостями стилю" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 +#: ../src/ui/dialog/inkscape-preferences.cpp:978 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 " @@ -19260,19 +19425,19 @@ msgstr "" "самим, яке було успадковано). Файли бази даних зберігаються у теці " "каталог_даних_inkscape/attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:980 msgid "Delete redundant style properties" msgstr "Вилучати зайві властивості стилю" -#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:982 msgid "Check Attributes and Style Properties on" msgstr "Перевіряти атрибути і властивості стилів під час" -#: ../src/ui/dialog/inkscape-preferences.cpp:973 +#: ../src/ui/dialog/inkscape-preferences.cpp:984 msgid "Reading" msgstr "читання" -#: ../src/ui/dialog/inkscape-preferences.cpp:974 +#: ../src/ui/dialog/inkscape-preferences.cpp:985 msgid "" "Check attributes and style properties on reading in SVG files (including " "those internal to Inkscape which will slow down startup)" @@ -19280,11 +19445,11 @@ msgstr "" "Перевіряти атрибути і властивості стилів під час читання файлів SVG (зокрема " "перевіряти вбудовані файли Inkscape, що може уповільнити запуск програми)" -#: ../src/ui/dialog/inkscape-preferences.cpp:975 +#: ../src/ui/dialog/inkscape-preferences.cpp:986 msgid "Editing" msgstr "редагування" -#: ../src/ui/dialog/inkscape-preferences.cpp:976 +#: ../src/ui/dialog/inkscape-preferences.cpp:987 msgid "" "Check attributes and style properties while editing SVG files (may slow down " "Inkscape, mostly useful for debugging)" @@ -19292,42 +19457,42 @@ msgstr "" "Перевіряти атрибути і властивості стилів під час редагування файлів SVG " "(може уповільнити Inkscape, корисне для діагностики негараздів)" -#: ../src/ui/dialog/inkscape-preferences.cpp:977 +#: ../src/ui/dialog/inkscape-preferences.cpp:988 msgid "Writing" msgstr "запису" -#: ../src/ui/dialog/inkscape-preferences.cpp:978 +#: ../src/ui/dialog/inkscape-preferences.cpp:989 msgid "Check attributes and style properties on writing out SVG files" msgstr "" "Перевіряти атрибути і властивості стилів під час запису даних до файлів SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:980 +#: ../src/ui/dialog/inkscape-preferences.cpp:991 msgid "SVG output" msgstr "Експорт до SVG" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Perceptual" msgstr "Придатна для сприйняття" -#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Relative Colorimetric" msgstr "Відносна колориметрична" -#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Absolute Colorimetric" msgstr "Абсолютна колориметрична" -#: ../src/ui/dialog/inkscape-preferences.cpp:990 +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 msgid "(Note: Color management has been disabled in this build)" msgstr "" "(Зауваження: під час збирання цієї програми керування кольором було вимкнено)" -#: ../src/ui/dialog/inkscape-preferences.cpp:994 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 msgid "Display adjustment" msgstr "Налаштування показу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +#: ../src/ui/dialog/inkscape-preferences.cpp:1015 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" @@ -19336,116 +19501,116 @@ msgstr "" "Профіль ICC, який буде використано для калібрування показу на екрані.\n" "Каталоги для пошуку:%s" -#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +#: ../src/ui/dialog/inkscape-preferences.cpp:1016 msgid "Display profile:" msgstr "Профіль дисплея:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 msgid "Retrieve profile from display" msgstr "Отримати профіль з дисплея" -#: ../src/ui/dialog/inkscape-preferences.cpp:1013 +#: ../src/ui/dialog/inkscape-preferences.cpp:1024 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "Отримати профілі з тих, що прив'язані до дисплеїв через XICC" -#: ../src/ui/dialog/inkscape-preferences.cpp:1015 +#: ../src/ui/dialog/inkscape-preferences.cpp:1026 msgid "Retrieve profiles from those attached to displays" msgstr "Отримати профілі з тих, що прив'язано до дисплеїв" -#: ../src/ui/dialog/inkscape-preferences.cpp:1020 +#: ../src/ui/dialog/inkscape-preferences.cpp:1031 msgid "Display rendering intent:" msgstr "Ціль відтворення кольорів на дисплеї:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1021 +#: ../src/ui/dialog/inkscape-preferences.cpp:1032 msgid "The rendering intent to use to calibrate display output" msgstr "" "Режим відтворення кольорів, що використовуватиметься для калібрування виводу " "на дисплей" -#: ../src/ui/dialog/inkscape-preferences.cpp:1023 +#: ../src/ui/dialog/inkscape-preferences.cpp:1034 msgid "Proofing" msgstr "Проба кольорів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1025 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "Simulate output on screen" msgstr "Імітувати пристрій виводу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1027 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Simulates output of target device" msgstr "Імітувати вивід на цільовий пристрій" -#: ../src/ui/dialog/inkscape-preferences.cpp:1029 +#: ../src/ui/dialog/inkscape-preferences.cpp:1040 msgid "Mark out of gamut colors" msgstr "Позначати кольори поза гамою" -#: ../src/ui/dialog/inkscape-preferences.cpp:1031 +#: ../src/ui/dialog/inkscape-preferences.cpp:1042 msgid "Highlights colors that are out of gamut for the target device" msgstr "Підсвічує кольори, що лежать поза гамою цільового пристрою" -#: ../src/ui/dialog/inkscape-preferences.cpp:1043 +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 msgid "Out of gamut warning color:" msgstr "Колір для попередження про гаму:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 msgid "Selects the color used for out of gamut warning" msgstr "" "Обирає колір, що використовуватиметься для попередження про відсутність у " "гамі" -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 msgid "Device profile:" msgstr "Профіль пристрою виводу:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 msgid "The ICC profile to use to simulate device output" msgstr "Профіль ICC, що використовуватиметься для імітації пристрою виведення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "Device rendering intent:" msgstr "Ціль відтворення кольорів:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 msgid "The rendering intent to use to calibrate device output" msgstr "" "Ціль відтворення кольорів, що використовуватиметься для калібрування " "виведення на пристрій" -#: ../src/ui/dialog/inkscape-preferences.cpp:1053 +#: ../src/ui/dialog/inkscape-preferences.cpp:1064 msgid "Black point compensation" msgstr "Компенсація чорної точки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +#: ../src/ui/dialog/inkscape-preferences.cpp:1066 msgid "Enables black point compensation" msgstr "Вмикає компенсацію чорної точки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Preserve black" msgstr "Зберігати чорний" -#: ../src/ui/dialog/inkscape-preferences.cpp:1064 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "(LittleCMS 1.15 or later required)" msgstr "(потрібна бібліотека LittleCMS версії 1.15 або новіша)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1066 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "Зберігати канал K під час перетворень CMYK → CMYK" -#: ../src/ui/dialog/inkscape-preferences.cpp:1080 -#: ../src/ui/widget/color-icc-selector.cpp:395 -#: ../src/ui/widget/color-icc-selector.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 +#: ../src/ui/widget/color-icc-selector.cpp:394 +#: ../src/ui/widget/color-icc-selector.cpp:685 msgid "" msgstr "<немає>" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1136 msgid "Color management" msgstr "Керування кольором" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1139 msgid "Enable autosave (requires restart)" msgstr "Увімкнути автозбереження (потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1140 msgid "" "Automatically save the current document(s) at a given interval, thus " "minimizing loss in case of a crash" @@ -19453,12 +19618,12 @@ msgstr "" "Автоматично зберігати поточні документи через вказані проміжки часу, таким " "чином зменшуючи втрати у випадку аварійного завершення програми" -#: ../src/ui/dialog/inkscape-preferences.cpp:1135 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 msgctxt "Filesystem" msgid "Autosave _directory:" msgstr "Каталог _автозбереження:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1135 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 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). " @@ -19467,19 +19632,19 @@ msgstr "" "вказати абсолютну адресу (адресу, що починається з / у UNIX або літери " "диска, наприклад C:, у Windows). " -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "_Interval (in minutes):" msgstr "_Інтервал (у хвилинах):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "Interval (in minutes) at which document will be autosaved" msgstr "Інтервал (у хвилинах) між автоматичними зберіганнями копій" -#: ../src/ui/dialog/inkscape-preferences.cpp:1139 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "_Maximum number of autosaves:" msgstr "Макс_имальна кількість копій автозбереження:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1139 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" @@ -19498,15 +19663,15 @@ msgstr "" #. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); #. #. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1154 +#: ../src/ui/dialog/inkscape-preferences.cpp:1165 msgid "Autosave" msgstr "Автозбереження" -#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 msgid "Open Clip Art Library _Server Name:" msgstr "_Назва сервера бібліотеки Open Clip Art:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1159 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "" "The server name of the Open Clip Art Library webdav server; it's used by the " "Import and Export to OCAL function" @@ -19514,35 +19679,35 @@ msgstr "" "Назва сервера webdav бібліотеки Open Clip Art. Його буде використано " "функціями імпорту з та експорту до OCAL." -#: ../src/ui/dialog/inkscape-preferences.cpp:1161 +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 msgid "Open Clip Art Library _Username:" msgstr "Ім'_я користувача бібліотеки Open Clip Art:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 msgid "The username used to log into Open Clip Art Library" msgstr "Ім'я користувача для авторизації у системі бібліотеки Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1164 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "Open Clip Art Library _Password:" msgstr "Паро_ль до бібліотеки Open Clip Art:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1176 msgid "The password used to log into Open Clip Art Library" msgstr "Пароль для авторизації у системі бібліотеки Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1166 +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 msgid "Open Clip Art" msgstr "Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1171 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Behavior" msgstr "Поведінка" -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 msgid "_Simplification threshold:" msgstr "Поріг спро_щення:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1176 +#: ../src/ui/dialog/inkscape-preferences.cpp:1187 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 " @@ -19553,45 +19718,45 @@ msgstr "" "більш агресивно; щоб повернутися до типового значення, зробіть паузу перед " "черговим викликом команди." -#: ../src/ui/dialog/inkscape-preferences.cpp:1178 +#: ../src/ui/dialog/inkscape-preferences.cpp:1189 msgid "Color stock markers the same color as object" msgstr "Колір опорних маркерів збігається з кольором об’єкта" -#: ../src/ui/dialog/inkscape-preferences.cpp:1179 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Color custom markers the same color as object" msgstr "Колір нетипових маркерів збігається з кольором об’єкта" -#: ../src/ui/dialog/inkscape-preferences.cpp:1180 -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 msgid "Update marker color when object color changes" msgstr "Оновлювати колір маркера у разі зміни кольора об’єкта" #. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 msgid "Select in all layers" msgstr "Позначити все в усіх шарах" -#: ../src/ui/dialog/inkscape-preferences.cpp:1184 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Select only within current layer" msgstr "Позначити лише у поточному шарі" -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Select in current layer and sublayers" msgstr "Позначити у поточному шарі та підшарах" -#: ../src/ui/dialog/inkscape-preferences.cpp:1186 +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 msgid "Ignore hidden objects and layers" msgstr "Ігнорувати приховані об'єкти і шари" -#: ../src/ui/dialog/inkscape-preferences.cpp:1187 +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 msgid "Ignore locked objects and layers" msgstr "Ігнорувати заблоковані об'єкти і шари" -#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Deselect upon layer change" msgstr "Зняти позначення після зміни шару" -#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" @@ -19599,25 +19764,25 @@ msgstr "" "Вимкніть це параметр, якщо бажаєте зберегти позначення після зміни поточного " "шару" -#: ../src/ui/dialog/inkscape-preferences.cpp:1193 +#: ../src/ui/dialog/inkscape-preferences.cpp:1204 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "Ctrl+A, Tab, Shift+Tab" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 msgid "Make keyboard selection commands work on objects in all layers" msgstr "Позначати з клавіатури об'єкти в усіх шарах одночасно" -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "Позначати з клавіатури об'єкти тільки у поточному шарі" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1210 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "Позначати з клавіатури об'єкти в поточному шарі та усіх його підшарах" -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1212 msgid "" "Uncheck this to be able to select objects that are hidden (either by " "themselves or by being in a hidden layer)" @@ -19625,7 +19790,7 @@ msgstr "" "Вимкніть цей параметр, якщо бажаєте позначити приховані (невидимі) об'єкти " "(окремо або у прихованому шарі)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "" "Uncheck this to be able to select objects that are locked (either by " "themselves or by being in a locked layer)" @@ -19633,72 +19798,72 @@ msgstr "" "Вимкніть це параметр, якщо бажаєте позначити заблоковані об'єкти (окремо або " "у заблокованому шарі)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 msgid "Wrap when cycling objects in z-order" msgstr "Циклічний перехід між об'єктами у напрямку z" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 msgid "Alt+Scroll Wheel" msgstr "Alt+Коліщатко гортання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Wrap around at start and end when cycling objects in z-order" msgstr "Замкнути циклічний перехід між об'єктами у напрямку вісі z." -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +#: ../src/ui/dialog/inkscape-preferences.cpp:1222 msgid "Selecting" msgstr "Позначення" #. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1214 -#: ../src/widgets/select-toolbar.cpp:572 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 +#: ../src/widgets/select-toolbar.cpp:564 msgid "Scale stroke width" msgstr "Змінювати ширину штриха" -#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "Scale rounded corners in rectangles" msgstr "Змінювати радіус округлених кутів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1216 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Transform gradients" msgstr "Перетворювати градієнти" -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +#: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "Transform patterns" msgstr "Перетворювати візерунки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1230 msgid "Preserved" msgstr "Без оптимізації" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 -#: ../src/widgets/select-toolbar.cpp:573 +#: ../src/ui/dialog/inkscape-preferences.cpp:1233 +#: ../src/widgets/select-toolbar.cpp:565 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "" "При зміні розміру об'єктів змінювати ширину штриха у відповідній пропорції" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 -#: ../src/widgets/select-toolbar.cpp:584 +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +#: ../src/widgets/select-toolbar.cpp:576 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "" "При зміні розміру прямокутників міняти радіус округлених кутів у тій самій " "пропорції" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 -#: ../src/widgets/select-toolbar.cpp:595 +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/widgets/select-toolbar.cpp:587 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "Перетворювати градієнти (у заповненні чи штрихах) разом з об'єктом" -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 -#: ../src/widgets/select-toolbar.cpp:606 +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +#: ../src/widgets/select-toolbar.cpp:598 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "Перетворювати візерунки (у заповненнях чи штрихах) разом з об'єктом" -#: ../src/ui/dialog/inkscape-preferences.cpp:1229 +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 msgid "Store transformation" msgstr "Збереження трансформації" -#: ../src/ui/dialog/inkscape-preferences.cpp:1231 +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" @@ -19706,19 +19871,19 @@ msgstr "" "При можливості застосовувати до об'єктів трансформацію без додавання " "атрибута transform=" -#: ../src/ui/dialog/inkscape-preferences.cpp:1233 +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 msgid "Always store transformation as a transform= attribute on objects" msgstr "Завжди зберігати трансформацію у вигляді атрибута transform=" -#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 msgid "Transforms" msgstr "Трансформації" -#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 msgid "Mouse _wheel scrolls by:" msgstr "Ко_лесо миші гортає на:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1240 +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" @@ -19726,24 +19891,24 @@ msgstr "" "На цю відстань у точках зсувається зображення одним клацанням колеса миші (з " "натиснутою клавішею Shift — по горизонталі)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +#: ../src/ui/dialog/inkscape-preferences.cpp:1252 msgid "Ctrl+arrows" msgstr "Ctrl+стрілки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1243 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 msgid "Sc_roll by:" msgstr "К_рок гортання:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1244 +#: ../src/ui/dialog/inkscape-preferences.cpp:1255 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" "На цю відстань у точках зсувається зображення при натисканні Ctrl+стрілки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1246 +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 msgid "_Acceleration:" msgstr "_Прискорення:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1247 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" @@ -19751,15 +19916,15 @@ msgstr "" "Якщо утримувати натиснутими Ctrl+стрілку, швидкість гортання буде зростати " "(0 скасовує прискорення)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 msgid "Autoscrolling" msgstr "Автогортання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1261 msgid "_Speed:" msgstr "_Швидкість:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1251 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" @@ -19767,12 +19932,12 @@ msgstr "" "Як швидко буде відбуватись гортання при перетягуванні об'єкта за межі вікна " "(0 скасовує автогортання)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 #: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 msgid "_Threshold:" msgstr "_Поріг:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 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" @@ -19780,21 +19945,21 @@ msgstr "" "Як далеко (у точках) від краю вікна потрібно бути, щоб увімкнулась " "автогортання; додатні значення — за межами вікна, від'ємні — всередині вікна" -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 msgid "Mouse move pans when Space is pressed" msgstr "Ліва кнопка миші переміщує область видимості, коли натиснуто пробіл" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 msgid "When on, pressing and holding Space and dragging pans canvas" msgstr "" "Якщо позначено, затискання клавіші Пробіл із перетягуванням надає змогу " "пересувати полотно" -#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 msgid "Mouse wheel zooms by default" msgstr "Колесо миші типово змінює масштаб" -#: ../src/ui/dialog/inkscape-preferences.cpp:1260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1271 msgid "" "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " "off, it zooms with Ctrl and scrolls without Ctrl" @@ -19803,28 +19968,28 @@ msgstr "" "гортання з Ctrl; якщо зняти позначку, воно змінюватиме масштаб з Ctrl і " "гортатиме без Ctrl." -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:1272 msgid "Scrolling" msgstr "Гортання" #. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 msgid "Snap indicator" msgstr "Індикатор прилипання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#: ../src/ui/dialog/inkscape-preferences.cpp:1277 msgid "Enable snap indicator" msgstr "Увімкнути індикатор прилипання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "Після прилипання у точні прилипання буде намальовано цей символ" -#: ../src/ui/dialog/inkscape-preferences.cpp:1273 +#: ../src/ui/dialog/inkscape-preferences.cpp:1284 msgid "Snap indicator persistence (in seconds):" msgstr "Тривалість показу індикатора прилипання (у с):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 msgid "" "Controls how long the snap indicator message will be shown, before it " "disappears" @@ -19832,24 +19997,24 @@ msgstr "" "Керує тим, наскільки довго буде показано повідомлення індикатора прилипання " "до його зникнення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1276 +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 msgid "What should snap" msgstr "Місце прилипання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 msgid "Only snap the node closest to the pointer" msgstr "Прилипання лише до вузла, найближчого до вказівника" -#: ../src/ui/dialog/inkscape-preferences.cpp:1280 +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "Виконувати прилипання лише до вузла, найближчого до вказівника миші" -#: ../src/ui/dialog/inkscape-preferences.cpp:1283 +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 msgid "_Weight factor:" msgstr "_Ваговий коефіцієнт:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1284 +#: ../src/ui/dialog/inkscape-preferences.cpp:1295 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 " @@ -19859,11 +20024,11 @@ msgstr "" "найближче перетворення (якщо встановлено 0), або вибрати вузол, який " "спочатку був найближчим до вказівника миші (якщо встановлено 1)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1286 +#: ../src/ui/dialog/inkscape-preferences.cpp:1297 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "Прилипання до вказівника миші під час перетягування обмеженого вузла" -#: ../src/ui/dialog/inkscape-preferences.cpp:1288 +#: ../src/ui/dialog/inkscape-preferences.cpp:1299 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 " @@ -19872,15 +20037,15 @@ msgstr "" "Під час перетягування вузла вздовж лінії обмеження виконувати прилипання до " "позиції вказівника миші, а не до проекції вузла на лінію обмеження" -#: ../src/ui/dialog/inkscape-preferences.cpp:1290 +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 msgid "Delayed snap" msgstr "Затримане прилипання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +#: ../src/ui/dialog/inkscape-preferences.cpp:1304 msgid "Delay (in seconds):" msgstr "Затримка у секундах:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 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. " @@ -19891,16 +20056,16 @@ msgstr "" "встановити нульове або близьке до нульового значення, прилипання буде " "миттєвим." -#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +#: ../src/ui/dialog/inkscape-preferences.cpp:1307 msgid "Snapping" msgstr "Прилипання" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1301 +#: ../src/ui/dialog/inkscape-preferences.cpp:1312 msgid "_Arrow keys move by:" msgstr "С_трілки переміщують на:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 msgid "" "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "" @@ -19908,28 +20073,28 @@ msgstr "" "клавіші зі стрілкою" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +#: ../src/ui/dialog/inkscape-preferences.cpp:1316 msgid "> and < _scale by:" msgstr "Кр_ок зміни масштабу при > та <:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1306 +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Pressing > or < scales selection up or down by this increment" msgstr "" "На цю величину змінюється розмір позначеного при натисканні клавіш > чи <" -#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 msgid "_Inset/Outset by:" msgstr "В_тягнути/розтягнути на:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1309 +#: ../src/ui/dialog/inkscape-preferences.cpp:1320 msgid "Inset and Outset commands displace the path by this distance" msgstr "На цю відстань переміщують контур команди втягування та розтягування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1310 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Compass-like display of angles" msgstr "Подібне до компасу відображення кутів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +#: ../src/ui/dialog/inkscape-preferences.cpp:1323 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 " @@ -19940,20 +20105,20 @@ msgstr "" "випадку 0 вказує на схід, діапазон значень знаходиться між -180 та 180, " "приріст кута відбувається проти годинникової стрілки." -#: ../src/ui/dialog/inkscape-preferences.cpp:1314 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgctxt "Rotation angle" msgid "None" msgstr "Нульовий" -#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "_Rotation snaps every:" msgstr "О_бмеження обертання:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "degrees" msgstr "градусів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" @@ -19961,11 +20126,11 @@ msgstr "" "Обертання з натиснутою Ctrl обмежує кут значеннями, кратними вибраному; " "натискання «[» чи «]» повертає на вибраний кут" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1331 msgid "Relative snapping of guideline angles" msgstr "Відносне прилипання кутів нахилу напрямних" -#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +#: ../src/ui/dialog/inkscape-preferences.cpp:1333 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" @@ -19973,17 +20138,17 @@ msgstr "" "Якщо позначено, кути прилипання під час обертання напрямної будуть " "обчислюватися відносно початкового кута" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 msgid "_Zoom in/out by:" msgstr "Крок _масштабування:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 -#: ../src/ui/dialog/objects.cpp:1626 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/objects.cpp:1630 #: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "%" msgstr "%" -#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" @@ -19991,44 +20156,44 @@ msgstr "" "Крок при клацанні інструментом масштабу, натисканні клавіш +/- та клацанні " "середньою кнопкою миші" -#: ../src/ui/dialog/inkscape-preferences.cpp:1326 +#: ../src/ui/dialog/inkscape-preferences.cpp:1337 msgid "Steps" msgstr "Кроки" #. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1340 msgid "Move in parallel" msgstr "Переміщуються паралельно" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1342 msgid "Stay unmoved" msgstr "Залишаються нерухомими" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1344 msgid "Move according to transform" msgstr "Рухаються у відповідності до перетворення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1346 msgid "Are unlinked" msgstr "Від'єднуються" -#: ../src/ui/dialog/inkscape-preferences.cpp:1337 +#: ../src/ui/dialog/inkscape-preferences.cpp:1348 msgid "Are deleted" msgstr "Вилучаються" -#: ../src/ui/dialog/inkscape-preferences.cpp:1340 +#: ../src/ui/dialog/inkscape-preferences.cpp:1351 msgid "Moving original: clones and linked offsets" msgstr "Пересування оригіналу: клони та прив'язані розтяжки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1342 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 msgid "Clones are translated by the same vector as their original" msgstr "Кожен клон зсувається на той самий вектор, що й оригінал" -#: ../src/ui/dialog/inkscape-preferences.cpp:1344 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Clones preserve their positions when their original is moved" msgstr "Клони залишаються на місці, коли рухаються їхні оригінали" -#: ../src/ui/dialog/inkscape-preferences.cpp:1346 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 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" @@ -20037,27 +20202,27 @@ msgstr "" "Наприклад, повернутий клон буде переміщуватись у іншому напрямку, ніж його " "оригінал." -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +#: ../src/ui/dialog/inkscape-preferences.cpp:1358 msgid "Deleting original: clones" msgstr "Вилучення оригіналу: клони" -#: ../src/ui/dialog/inkscape-preferences.cpp:1349 +#: ../src/ui/dialog/inkscape-preferences.cpp:1360 msgid "Orphaned clones are converted to regular objects" msgstr "Осиротілі клони перетворюються у звичайні об'єкти" -#: ../src/ui/dialog/inkscape-preferences.cpp:1351 +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 msgid "Orphaned clones are deleted along with their original" msgstr "Осиротілі клони вилучаються разом з оригіналом" -#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Duplicating original+clones/linked offset" msgstr "Дублювання оригінал+клони/прив'язані розтяжки" -#: ../src/ui/dialog/inkscape-preferences.cpp:1355 +#: ../src/ui/dialog/inkscape-preferences.cpp:1366 msgid "Relink duplicated clones" msgstr "Повторно пов'язувати дубльовані клони" -#: ../src/ui/dialog/inkscape-preferences.cpp:1357 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "" "When duplicating a selection containing both a clone and its original " "(possibly in groups), relink the duplicated clone to the duplicated original " @@ -20068,28 +20233,28 @@ msgstr "" "старим оригіналом" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1360 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Clones" msgstr "Клони" #. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" "При застосуванні найвищий позначений об'єкт є контуром вирізання або маскою" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +#: ../src/ui/dialog/inkscape-preferences.cpp:1376 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" "Зніміть позначку щоб використовувати нижній позначений об'єкт як контур " "вирізання або маску" -#: ../src/ui/dialog/inkscape-preferences.cpp:1366 +#: ../src/ui/dialog/inkscape-preferences.cpp:1377 msgid "Remove clippath/mask object after applying" msgstr "Вилучати контур вирізання або маску після застосування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1368 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" @@ -20097,57 +20262,57 @@ msgstr "" "Після застосування вилучається об'єкт, що використовувався як контур " "вирізання чи маска з малюнку" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 msgid "Before applying" msgstr "До застосування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "Do not group clipped/masked objects" msgstr "Не групувати обрізані/замасковані об'єкти" -#: ../src/ui/dialog/inkscape-preferences.cpp:1373 +#: ../src/ui/dialog/inkscape-preferences.cpp:1384 msgid "Put every clipped/masked object in its own group" msgstr "Додавати для кожного обрізаного/замаскованого об'єкта власну групу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1374 +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 msgid "Put all clipped/masked objects into one group" msgstr "Зібрати всі обрізані/замасковані об'єкти у одну групу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1377 +#: ../src/ui/dialog/inkscape-preferences.cpp:1388 msgid "Apply clippath/mask to every object" msgstr "Застосувати контур обрізання/маскування до всіх об'єктів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1380 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "Apply clippath/mask to groups containing single object" msgstr "" "Застосувати контур обрізання/маскування до груп, що містять окремі об'єкти" -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "Apply clippath/mask to group containing all objects" msgstr "Застосувати контур обрізання/маскування до групи всіх об'єктів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1385 +#: ../src/ui/dialog/inkscape-preferences.cpp:1396 msgid "After releasing" msgstr "Після відпускання" -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 msgid "Ungroup automatically created groups" msgstr "Розгрупувати автоматично створені групи" -#: ../src/ui/dialog/inkscape-preferences.cpp:1389 +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 msgid "Ungroup groups created when setting clip/mask" msgstr "Розгрупувати групи, створені застосування обрізання/маскування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1391 +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 msgid "Clippaths and masks" msgstr "Вирізання та маскування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1394 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "Stroke Style Markers" msgstr "Маркери стилю штриха" -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 -#: ../src/ui/dialog/inkscape-preferences.cpp:1398 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" @@ -20155,50 +20320,50 @@ msgstr "" "Колір штриха збігається з кольором об’єкта, колір заповнення є або кольором " "об’єкта або кольором заповнення маркера" -#: ../src/ui/dialog/inkscape-preferences.cpp:1402 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 #: ../share/extensions/hershey.inx.h:27 msgid "Markers" msgstr "Маркери" -#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 msgid "Document cleanup" msgstr "Очищення документа" -#: ../src/ui/dialog/inkscape-preferences.cpp:1406 -#: ../src/ui/dialog/inkscape-preferences.cpp:1408 +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/inkscape-preferences.cpp:1419 msgid "Remove unused swatches when doing a document cleanup" msgstr "Вилучати невикористані елементи під час очищення документа" #. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 msgid "Cleanup" msgstr "Очищення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 msgid "Number of _Threads:" msgstr "Кількість _потоків:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1417 -#: ../src/ui/dialog/inkscape-preferences.cpp:1953 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "(requires restart)" msgstr "(потребує перезапуску)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1418 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "Configure number of processors/threads to use when rendering filters" msgstr "" "Налаштувати кількість процесорів/потоків, які слід використовувати для " "обробки фільтрування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1422 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgid "Rendering _cache size:" msgstr "Розмір _кешу обробки:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1422 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgctxt "mebibyte (2^20 bytes) abbreviation" msgid "MiB" msgstr "МіБ" -#: ../src/ui/dialog/inkscape-preferences.cpp:1422 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 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" @@ -20209,37 +20374,37 @@ msgstr "" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1425 -#: ../src/ui/dialog/inkscape-preferences.cpp:1449 +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 msgid "Best quality (slowest)" msgstr "Найвища якість (найповільніше)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1427 -#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1438 +#: ../src/ui/dialog/inkscape-preferences.cpp:1462 msgid "Better quality (slower)" msgstr "Добра якість (повільно)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1429 -#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +#: ../src/ui/dialog/inkscape-preferences.cpp:1464 msgid "Average quality" msgstr "Посередня якість" -#: ../src/ui/dialog/inkscape-preferences.cpp:1431 -#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/ui/dialog/inkscape-preferences.cpp:1466 msgid "Lower quality (faster)" msgstr "Низька якість (швидко)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1433 -#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +#: ../src/ui/dialog/inkscape-preferences.cpp:1444 +#: ../src/ui/dialog/inkscape-preferences.cpp:1468 msgid "Lowest quality (fastest)" msgstr "Найнижча якість (найшвидше)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1447 msgid "Gaussian blur quality for display" msgstr "Якість гаусового розмивання для показу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1438 -#: ../src/ui/dialog/inkscape-preferences.cpp:1462 +#: ../src/ui/dialog/inkscape-preferences.cpp:1449 +#: ../src/ui/dialog/inkscape-preferences.cpp:1473 msgid "" "Best quality, but display may be very slow at high zooms (bitmap export " "always uses best quality)" @@ -20247,125 +20412,125 @@ msgstr "" "Найкраща якість, але відображення може бути дуже повільним за великого " "збільшення (експорт растрових зображень завжди використовує найвищу якість)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1440 -#: ../src/ui/dialog/inkscape-preferences.cpp:1464 +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 msgid "Better quality, but slower display" msgstr "Краща якість, але повільніше відображення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1442 -#: ../src/ui/dialog/inkscape-preferences.cpp:1466 +#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +#: ../src/ui/dialog/inkscape-preferences.cpp:1477 msgid "Average quality, acceptable display speed" msgstr "Посередня якість, прийнятна швидкість відображення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1444 -#: ../src/ui/dialog/inkscape-preferences.cpp:1468 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/ui/dialog/inkscape-preferences.cpp:1479 msgid "Lower quality (some artifacts), but display is faster" msgstr "Нижча якість (певні похибки), але відображення швидше" -#: ../src/ui/dialog/inkscape-preferences.cpp:1446 -#: ../src/ui/dialog/inkscape-preferences.cpp:1470 +#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +#: ../src/ui/dialog/inkscape-preferences.cpp:1481 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "Найнижча якість (значні похибки), але відображення найшвидше" -#: ../src/ui/dialog/inkscape-preferences.cpp:1460 +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 msgid "Filter effects quality for display" msgstr "Якість ефектів фільтрування для показу" #. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +#: ../src/ui/dialog/inkscape-preferences.cpp:1483 #: ../src/ui/dialog/print.cpp:215 msgid "Rendering" msgstr "Обробка" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1478 ../src/verbs.cpp:156 +#: ../src/ui/dialog/inkscape-preferences.cpp:1489 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "Змінити" -#: ../src/ui/dialog/inkscape-preferences.cpp:1479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1490 msgid "Automatically reload bitmaps" msgstr "Автоматично перезавантажувати растр" -#: ../src/ui/dialog/inkscape-preferences.cpp:1481 +#: ../src/ui/dialog/inkscape-preferences.cpp:1492 msgid "Automatically reload linked images when file is changed on disk" msgstr "" "Автоматично перезавантажувати пов'язані зображення після зміни файла на диску" -#: ../src/ui/dialog/inkscape-preferences.cpp:1483 +#: ../src/ui/dialog/inkscape-preferences.cpp:1494 msgid "_Bitmap editor:" msgstr "_Растровий редактор:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1485 +#: ../src/ui/dialog/inkscape-preferences.cpp:1496 #: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:65 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "Експорт" -#: ../src/ui/dialog/inkscape-preferences.cpp:1487 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 msgid "Default export _resolution:" msgstr "Типова роз_дільна здатність для експорту:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1488 +#: ../src/ui/dialog/inkscape-preferences.cpp:1499 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "Типова роздільна здатність (у точках на дюйм) у вікні експорту" -#: ../src/ui/dialog/inkscape-preferences.cpp:1489 +#: ../src/ui/dialog/inkscape-preferences.cpp:1500 #: ../src/ui/dialog/xml-tree.cpp:920 msgid "Create" msgstr "Створити" -#: ../src/ui/dialog/inkscape-preferences.cpp:1491 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 msgid "Resolution for Create Bitmap _Copy:" msgstr "Роздільна здатність для створення растрової копі_ї:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1492 +#: ../src/ui/dialog/inkscape-preferences.cpp:1503 msgid "Resolution used by the Create Bitmap Copy command" msgstr "" "Роздільна здатність, яку буде використано у команді створення растрової копії" -#: ../src/ui/dialog/inkscape-preferences.cpp:1495 +#: ../src/ui/dialog/inkscape-preferences.cpp:1506 msgid "Ask about linking and scaling when importing" msgstr "Запитувати щодо пов’язування і масштабування під час імпортування" -#: ../src/ui/dialog/inkscape-preferences.cpp:1497 +#: ../src/ui/dialog/inkscape-preferences.cpp:1508 msgid "Pop-up linking and scaling dialog when importing bitmap image." msgstr "" "Показувати діалогове вікно пов’язування і масштабування під час імпортування " "растрових зображень." -#: ../src/ui/dialog/inkscape-preferences.cpp:1503 +#: ../src/ui/dialog/inkscape-preferences.cpp:1514 msgid "Bitmap link:" msgstr "Пов’язування растра:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1510 +#: ../src/ui/dialog/inkscape-preferences.cpp:1521 msgid "Bitmap scale (image-rendering):" msgstr "Масштаб растра (обробка зображення):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1515 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "Default _import resolution:" msgstr "Типова роздільна здатність для _імпортування:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1516 +#: ../src/ui/dialog/inkscape-preferences.cpp:1527 msgid "Default bitmap resolution (in dots per inch) for bitmap import" msgstr "" "Типова роздільна здатність (у точках на дюйм) для імпортованих растрових " "зображень" -#: ../src/ui/dialog/inkscape-preferences.cpp:1517 +#: ../src/ui/dialog/inkscape-preferences.cpp:1528 msgid "Override file resolution" msgstr "Перевизначити роздільну здатність з файла" -#: ../src/ui/dialog/inkscape-preferences.cpp:1519 +#: ../src/ui/dialog/inkscape-preferences.cpp:1530 msgid "Use default bitmap resolution in favor of information from file" msgstr "Надавати перевагу типові роздільній здатності перед даними з файла" #. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1523 +#: ../src/ui/dialog/inkscape-preferences.cpp:1534 msgid "Images in Outline Mode" msgstr "Зображення у режимі ескіза" -#: ../src/ui/dialog/inkscape-preferences.cpp:1524 +#: ../src/ui/dialog/inkscape-preferences.cpp:1535 msgid "" "When active will render images while in outline mode instead of a red box " "with an x. This is useful for manual tracing." @@ -20373,11 +20538,11 @@ msgstr "" "Якщо позначено, у режимі ескіза замість червоного прямокутника з x " "показувати зображення. Корисно для трасування вручну." -#: ../src/ui/dialog/inkscape-preferences.cpp:1526 +#: ../src/ui/dialog/inkscape-preferences.cpp:1537 msgid "Bitmaps" msgstr "Растрові зображення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1538 +#: ../src/ui/dialog/inkscape-preferences.cpp:1549 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " "create will be added separately to " @@ -20385,25 +20550,25 @@ msgstr "" "Виберіть файл попередньо визначених скорочень, яким слід скористатися. Всі " "створені вами нетипові скорочення буде окремо додано до " -#: ../src/ui/dialog/inkscape-preferences.cpp:1541 +#: ../src/ui/dialog/inkscape-preferences.cpp:1552 msgid "Shortcut file:" msgstr "Файл скорочень:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1544 -#: ../src/ui/dialog/template-load-tab.cpp:48 +#: ../src/ui/dialog/inkscape-preferences.cpp:1555 +#: ../src/ui/dialog/template-load-tab.cpp:49 msgid "Search:" msgstr "Шукати:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1556 +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 msgid "Shortcut" msgstr "Скорочення" -#: ../src/ui/dialog/inkscape-preferences.cpp:1557 +#: ../src/ui/dialog/inkscape-preferences.cpp:1568 #: ../src/ui/widget/page-sizer.cpp:287 msgid "Description" msgstr "Опис" -#: ../src/ui/dialog/inkscape-preferences.cpp:1612 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 msgid "" "Remove all your customized keyboard shortcuts, and revert to the shortcuts " "in the shortcut file listed above" @@ -20411,45 +20576,45 @@ msgstr "" "Вилучити всі нетипові клавіатурні скорочення і повернутися до скорочень, " "визначених у файлів, вказаному вище." -#: ../src/ui/dialog/inkscape-preferences.cpp:1616 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import ..." msgstr "Імпорт…" -#: ../src/ui/dialog/inkscape-preferences.cpp:1616 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import custom keyboard shortcuts from a file" msgstr "Імпортувати нетипові клавіатурні скорочення з файла" -#: ../src/ui/dialog/inkscape-preferences.cpp:1619 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export ..." msgstr "Експортувати…" -#: ../src/ui/dialog/inkscape-preferences.cpp:1619 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export custom keyboard shortcuts to a file" msgstr "Експортувати нетипові клавіатурні скорочення до файла" -#: ../src/ui/dialog/inkscape-preferences.cpp:1629 +#: ../src/ui/dialog/inkscape-preferences.cpp:1640 msgid "Keyboard Shortcuts" msgstr "Клавіатурні скорочення" #. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1792 +#: ../src/ui/dialog/inkscape-preferences.cpp:1803 msgid "Misc" msgstr "Інше" -#: ../src/ui/dialog/inkscape-preferences.cpp:1894 +#: ../src/ui/dialog/inkscape-preferences.cpp:1905 msgctxt "Spellchecker language" msgid "None" msgstr "Жодної" -#: ../src/ui/dialog/inkscape-preferences.cpp:1915 +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 msgid "Set the main spell check language" msgstr "Встановити основну мову перевірки правопису" -#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +#: ../src/ui/dialog/inkscape-preferences.cpp:1929 msgid "Second language:" msgstr "Друга мова:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1919 +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 msgid "" "Set the second spell check language; checking will only stop on words " "unknown in ALL chosen languages" @@ -20457,11 +20622,11 @@ msgstr "" "Встановіть другу мову для перевірки правопису: перевірка зупинятиметься лише " "на словах, яких немає у ВСІХ вказаних мовах" -#: ../src/ui/dialog/inkscape-preferences.cpp:1922 +#: ../src/ui/dialog/inkscape-preferences.cpp:1933 msgid "Third language:" msgstr "Третя мова:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1923 +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgid "" "Set the third spell check language; checking will only stop on words unknown " "in ALL chosen languages" @@ -20469,31 +20634,31 @@ msgstr "" "Встановіть третю мову для перевірки правопису: перевірка зупинятиметься лише " "на словах, яких немає у ВСІХ вказаних мовах" -#: ../src/ui/dialog/inkscape-preferences.cpp:1925 +#: ../src/ui/dialog/inkscape-preferences.cpp:1936 msgid "Ignore words with digits" msgstr "Ігнорувати слова з цифрами" -#: ../src/ui/dialog/inkscape-preferences.cpp:1927 +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "Ігнорувати слова, що містять цифри, наприклад, «R2D2»" -#: ../src/ui/dialog/inkscape-preferences.cpp:1929 +#: ../src/ui/dialog/inkscape-preferences.cpp:1940 msgid "Ignore words in ALL CAPITALS" msgstr "Ігнорувати слова ПРОПИСНИМИ" -#: ../src/ui/dialog/inkscape-preferences.cpp:1931 +#: ../src/ui/dialog/inkscape-preferences.cpp:1942 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "Ігнорувати слова, написані прописними літерами, наприклад, «IUPAC»" -#: ../src/ui/dialog/inkscape-preferences.cpp:1933 +#: ../src/ui/dialog/inkscape-preferences.cpp:1944 msgid "Spellcheck" msgstr "Перевірка правопису" -#: ../src/ui/dialog/inkscape-preferences.cpp:1953 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "Latency _skew:" msgstr "Від_хилення латентності:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1954 +#: ../src/ui/dialog/inkscape-preferences.cpp:1965 msgid "" "Factor by which the event clock is skewed from the actual time (0.9766 on " "some systems)" @@ -20501,11 +20666,11 @@ msgstr "" "Коефіцієнт, на який годинник подій відхилятиметься від справжнього часу " "(0,9766 на деяких системах)." -#: ../src/ui/dialog/inkscape-preferences.cpp:1956 +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 msgid "Pre-render named icons" msgstr "Іменовані піктограми, що залежать від показу" -#: ../src/ui/dialog/inkscape-preferences.cpp:1958 +#: ../src/ui/dialog/inkscape-preferences.cpp:1969 msgid "" "When on, named icons will be rendered before displaying the ui. This is for " "working around bugs in GTK+ named icon notification" @@ -20514,85 +20679,85 @@ msgstr "" "користувача. Це зроблено для обходу вад у сповіщенні іменованою піктограмою " "у GTK+" -#: ../src/ui/dialog/inkscape-preferences.cpp:1966 +#: ../src/ui/dialog/inkscape-preferences.cpp:1977 msgid "System info" msgstr "Відомості щодо системи" -#: ../src/ui/dialog/inkscape-preferences.cpp:1970 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "User config: " msgstr "Налаштування користувача: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1970 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "Location of users configuration" msgstr "Розташування налаштувань користувача" -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "User preferences: " msgstr "Параметри користувача: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1974 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "Location of the users preferences file" msgstr "Розташування файлів з параметрами користувачів" -#: ../src/ui/dialog/inkscape-preferences.cpp:1978 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "User extensions: " msgstr "Додатки користувача: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1978 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "Location of the users extensions" msgstr "Розташування додатків користувача" -#: ../src/ui/dialog/inkscape-preferences.cpp:1982 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "User cache: " msgstr "Кеш користувача: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1982 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "Location of users cache" msgstr "Розташування кешу даних користувача" -#: ../src/ui/dialog/inkscape-preferences.cpp:1990 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Temporary files: " msgstr "Тимчасові файли: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1990 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Location of the temporary files used for autosave" msgstr "" "Розташування тимчасових файлів, які використовуватимуться для створення " "автоматичних копій" -#: ../src/ui/dialog/inkscape-preferences.cpp:1994 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Inkscape data: " msgstr "Дані Inkscape: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1994 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Location of Inkscape data" msgstr "Розташування даних Inkscape" -#: ../src/ui/dialog/inkscape-preferences.cpp:1998 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Inkscape extensions: " msgstr "Додатки Inkscape: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1998 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Location of the Inkscape extensions" msgstr "Розташування додатків Inkscape" -#: ../src/ui/dialog/inkscape-preferences.cpp:2007 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "System data: " msgstr "Системна дата: " -#: ../src/ui/dialog/inkscape-preferences.cpp:2007 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "Locations of system data" msgstr "Розташування загальносистемних даних" -#: ../src/ui/dialog/inkscape-preferences.cpp:2031 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Icon theme: " msgstr "Тема піктограм: " -#: ../src/ui/dialog/inkscape-preferences.cpp:2031 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Locations of icon themes" msgstr "Розташування тем піктограм" -#: ../src/ui/dialog/inkscape-preferences.cpp:2033 +#: ../src/ui/dialog/inkscape-preferences.cpp:2044 msgid "System" msgstr "Система" @@ -20679,8 +20844,8 @@ msgstr "" "або на окреме (зазвичай те, яке перебуває у фокусі) «Вікно»" #: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 -#: ../src/widgets/spray-toolbar.cpp:301 ../src/widgets/spray-toolbar.cpp:417 -#: ../src/widgets/spray-toolbar.cpp:466 ../src/widgets/tweak-toolbar.cpp:372 +#: ../src/widgets/spray-toolbar.cpp:311 ../src/widgets/spray-toolbar.cpp:427 +#: ../src/widgets/spray-toolbar.cpp:476 ../src/widgets/tweak-toolbar.cpp:372 msgid "Pressure" msgstr "Тиск" @@ -20702,6 +20867,35 @@ msgctxt "Input device axe" msgid "None" msgstr "Немає" +#: ../src/ui/dialog/knot-properties.cpp:59 +msgid "Position X:" +msgstr "X координата:" + +#: ../src/ui/dialog/knot-properties.cpp:66 +msgid "Position Y:" +msgstr "Y координата:" + +#: ../src/ui/dialog/knot-properties.cpp:120 +msgid "Modify Knot Position" +msgstr "Змінити позицію вузла" + +#: ../src/ui/dialog/knot-properties.cpp:121 +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:123 +#: ../src/ui/dialog/transformation.cpp:107 +msgid "_Move" +msgstr "_Переміщення" + +#: ../src/ui/dialog/knot-properties.cpp:180 +#, c-format +msgid "Position X (%s):" +msgstr "Розташування за X (%s):" + +#: ../src/ui/dialog/knot-properties.cpp:181 +#, c-format +msgid "Position Y (%s):" +msgstr "Розташування за Y (%s):" + #: ../src/ui/dialog/layer-properties.cpp:55 msgid "Layer name:" msgstr "Назва шару:" @@ -20729,7 +20923,7 @@ 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:2366 +#: ../src/verbs.cpp:2363 msgid "Layer" msgstr "Шар" @@ -20762,35 +20956,29 @@ msgstr "Новий шар створено." msgid "Move to Layer" msgstr "Пересунути до шару" -#: ../src/ui/dialog/layer-properties.cpp:411 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:123 -#: ../src/ui/dialog/transformation.cpp:107 -msgid "_Move" -msgstr "_Переміщення" - -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Unhide layer" msgstr "Показати шар" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Hide layer" msgstr "Сховати шар" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Lock layer" msgstr "Заблокувати шар" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Unlock layer" msgstr "Розблокувати шар" #: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:844 -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1423 msgid "Toggle layer solo" msgstr "Увімкнути або вимкнути соло шару" #: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:847 -#: ../src/verbs.cpp:1448 +#: ../src/verbs.cpp:1447 msgid "Lock other layers" msgstr "Заблокувати інші шари" @@ -21095,8 +21283,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "Зробити цей об'єкт нечутливим до позначення" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2714 -#: ../src/verbs.cpp:2720 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2719 msgid "_Set" msgstr "_Встановити" @@ -21182,8 +21370,8 @@ msgstr "Групу на шар" msgid "Moved objects" msgstr "Пересунуті об’єкти" -#: ../src/ui/dialog/objects.cpp:1353 ../src/ui/dialog/tags.cpp:857 -#: ../src/ui/dialog/tags.cpp:864 +#: ../src/ui/dialog/objects.cpp:1353 ../src/ui/dialog/tags.cpp:853 +#: ../src/ui/dialog/tags.cpp:860 msgid "Rename object" msgstr "Перейменувати об'єкт" @@ -21203,45 +21391,45 @@ msgstr "Встановити режим змішування об’єкта" msgid "Set object blur" msgstr "Встановити розмиття об’єкта" -#: ../src/ui/dialog/objects.cpp:1617 +#: ../src/ui/dialog/objects.cpp:1621 msgctxt "Visibility" msgid "V" msgstr "В" -#: ../src/ui/dialog/objects.cpp:1618 +#: ../src/ui/dialog/objects.cpp:1622 msgctxt "Lock" msgid "L" msgstr "Б" -#: ../src/ui/dialog/objects.cpp:1619 +#: ../src/ui/dialog/objects.cpp:1623 msgctxt "Type" msgid "T" msgstr "Т" -#: ../src/ui/dialog/objects.cpp:1620 +#: ../src/ui/dialog/objects.cpp:1624 msgctxt "Clip and mask" msgid "CM" msgstr "МО" -#: ../src/ui/dialog/objects.cpp:1621 +#: ../src/ui/dialog/objects.cpp:1625 msgctxt "Highlight" msgid "HL" msgstr "П" -#: ../src/ui/dialog/objects.cpp:1622 +#: ../src/ui/dialog/objects.cpp:1626 msgid "Label" msgstr "Мітка" #. In order to get tooltips on header, we must create our own label. -#: ../src/ui/dialog/objects.cpp:1664 +#: ../src/ui/dialog/objects.cpp:1668 msgid "Toggle visibility of Layer, Group, or Object." msgstr "Увімкнути або вимкнути видимість шару, групи або об’єкта." -#: ../src/ui/dialog/objects.cpp:1677 +#: ../src/ui/dialog/objects.cpp:1681 msgid "Toggle lock of Layer, Group, or Object." msgstr "Увімкнути або вимкнути блокування шару, групи або об’єкта." -#: ../src/ui/dialog/objects.cpp:1689 +#: ../src/ui/dialog/objects.cpp:1693 msgid "" "Type: Layer, Group, or Object. Clicking on Layer or Group icon, toggles " "between the two types." @@ -21249,11 +21437,11 @@ msgstr "" "Тип: шар, група чи об’єкт. Клацання на піктограмі шару або групи перемикає " "між цими двома типами." -#: ../src/ui/dialog/objects.cpp:1708 +#: ../src/ui/dialog/objects.cpp:1712 msgid "Is object clipped and/or masked?" msgstr "Чи є об’єкт обрізаним або замаскованим?" -#: ../src/ui/dialog/objects.cpp:1719 +#: ../src/ui/dialog/objects.cpp:1723 msgid "" "Highlight color of outline in Node tool. Click to set. If alpha is zero, use " "inherited color." @@ -21261,7 +21449,7 @@ msgstr "" "Колір підсвічування контурів інструмента «Вузол». Клацніть для встановлення. " "Якщо рівень прозорості є нульовим, використовується успадкований колір." -#: ../src/ui/dialog/objects.cpp:1730 +#: ../src/ui/dialog/objects.cpp:1734 msgid "" "Layer/Group/Object label (inkscape:label). Double-click to set. Default " "value is object 'id'." @@ -21269,83 +21457,83 @@ msgstr "" "Мітка шару, групи або об’єкта (inkscape:label). Двічі клацніть для " "встановлення. Типовою міткою є рядок «id» об’єкта." -#: ../src/ui/dialog/objects.cpp:1827 +#: ../src/ui/dialog/objects.cpp:1831 msgid "Add layer..." msgstr "Додати шар…" -#: ../src/ui/dialog/objects.cpp:1834 +#: ../src/ui/dialog/objects.cpp:1838 msgid "Remove object" msgstr "Вилучити об’єкт" -#: ../src/ui/dialog/objects.cpp:1842 +#: ../src/ui/dialog/objects.cpp:1846 msgid "Move To Bottom" msgstr "Пересунути вниз" -#: ../src/ui/dialog/objects.cpp:1866 +#: ../src/ui/dialog/objects.cpp:1870 msgid "Move To Top" msgstr "Пересунути нагору" -#: ../src/ui/dialog/objects.cpp:1874 +#: ../src/ui/dialog/objects.cpp:1878 msgid "Collapse All" msgstr "Згорнути все" -#: ../src/ui/dialog/objects.cpp:1888 +#: ../src/ui/dialog/objects.cpp:1892 msgid "Rename" msgstr "Перейменувати" -#: ../src/ui/dialog/objects.cpp:1894 +#: ../src/ui/dialog/objects.cpp:1898 msgid "Solo" msgstr "Соло" -#: ../src/ui/dialog/objects.cpp:1895 +#: ../src/ui/dialog/objects.cpp:1899 msgid "Show All" msgstr "Показати все" -#: ../src/ui/dialog/objects.cpp:1896 +#: ../src/ui/dialog/objects.cpp:1900 msgid "Hide All" msgstr "Сховати все" -#: ../src/ui/dialog/objects.cpp:1900 +#: ../src/ui/dialog/objects.cpp:1904 msgid "Lock Others" msgstr "Заблокувати інше" -#: ../src/ui/dialog/objects.cpp:1901 +#: ../src/ui/dialog/objects.cpp:1905 msgid "Lock All" msgstr "Заблокувати все" #. LockAndHide -#: ../src/ui/dialog/objects.cpp:1902 ../src/verbs.cpp:3014 +#: ../src/ui/dialog/objects.cpp:1906 ../src/verbs.cpp:3011 msgid "Unlock All" msgstr "Розблокувати все" -#: ../src/ui/dialog/objects.cpp:1906 +#: ../src/ui/dialog/objects.cpp:1910 msgid "Up" msgstr "Вище" -#: ../src/ui/dialog/objects.cpp:1907 +#: ../src/ui/dialog/objects.cpp:1911 msgid "Down" msgstr "Нижче" -#: ../src/ui/dialog/objects.cpp:1916 +#: ../src/ui/dialog/objects.cpp:1920 msgid "Set Clip" msgstr "Встановити обрізання" #. will never be implemented #. _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); -#: ../src/ui/dialog/objects.cpp:1922 +#: ../src/ui/dialog/objects.cpp:1926 msgid "Unset Clip" msgstr "Скасувати обрізання" #. Set mask -#: ../src/ui/dialog/objects.cpp:1926 ../src/ui/interface.cpp:1736 +#: ../src/ui/dialog/objects.cpp:1930 ../src/ui/interface.cpp:1754 msgid "Set Mask" msgstr "Встановити маскування" -#: ../src/ui/dialog/objects.cpp:1927 +#: ../src/ui/dialog/objects.cpp:1931 msgid "Unset Mask" msgstr "Скасувати маскування" -#: ../src/ui/dialog/objects.cpp:1949 +#: ../src/ui/dialog/objects.cpp:1953 msgid "Select Highlight Color" msgstr "Виберіть колір підсвічування" @@ -21882,7 +22070,7 @@ msgstr "Редагування…" msgid "Convert" msgstr "Перетворити" -#: ../src/ui/dialog/swatches.cpp:542 +#: ../src/ui/dialog/swatches.cpp:543 #, c-format msgid "Palettes directory (%s) is unavailable." msgstr "Каталог з палітрами (%s) недоступний." @@ -21929,28 +22117,28 @@ msgstr "Робити позначки більшими збільшенням м msgid "Unnamed Symbols" msgstr "Символи без назв" -#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:573 -#: ../src/ui/dialog/tags.cpp:687 +#: ../src/ui/dialog/tags.cpp:270 ../src/ui/dialog/tags.cpp:569 +#: ../src/ui/dialog/tags.cpp:683 ../src/ui/dialog/tags.cpp:946 msgid "Remove from selection set" msgstr "Вилучити із набору позначеного" -#: ../src/ui/dialog/tags.cpp:431 +#: ../src/ui/dialog/tags.cpp:427 msgid "Items" msgstr "Елементи" -#: ../src/ui/dialog/tags.cpp:670 +#: ../src/ui/dialog/tags.cpp:666 ../src/ui/dialog/tags.cpp:944 msgid "Add selection to set" msgstr "Додати позначене до набору" -#: ../src/ui/dialog/tags.cpp:828 +#: ../src/ui/dialog/tags.cpp:824 msgid "Moved sets" msgstr "Пересунуті набори" -#: ../src/ui/dialog/tags.cpp:998 +#: ../src/ui/dialog/tags.cpp:1004 msgid "Add a new selection set" msgstr "Додати новий набір позначеного" -#: ../src/ui/dialog/tags.cpp:1007 +#: ../src/ui/dialog/tags.cpp:1013 msgid "Remove Item/Set" msgstr "Вилучити елемент або набір" @@ -21962,19 +22150,19 @@ msgstr "Додаткова інформація" msgid "no template selected" msgstr "не вибрано шаблону" -#: ../src/ui/dialog/template-widget.cpp:123 +#: ../src/ui/dialog/template-widget.cpp:131 msgid "Path: " msgstr "Шлях: " -#: ../src/ui/dialog/template-widget.cpp:126 +#: ../src/ui/dialog/template-widget.cpp:134 msgid "Description: " msgstr "Опис: " -#: ../src/ui/dialog/template-widget.cpp:128 +#: ../src/ui/dialog/template-widget.cpp:136 msgid "Keywords: " msgstr "Ключові слова: " -#: ../src/ui/dialog/template-widget.cpp:135 +#: ../src/ui/dialog/template-widget.cpp:143 msgid "By: " msgstr "Автор: " @@ -21991,27 +22179,27 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "АаБбВвЇїЄєҐґIiPpQq12369$€¢?.;/()" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1432 -#: ../src/widgets/text-toolbar.cpp:1433 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1680 +#: ../src/widgets/text-toolbar.cpp:1681 msgid "Align left" msgstr "Вирівнювання ліворуч" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1440 -#: ../src/widgets/text-toolbar.cpp:1441 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1688 +#: ../src/widgets/text-toolbar.cpp:1689 msgid "Align center" msgstr "Посередині" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1448 -#: ../src/widgets/text-toolbar.cpp:1449 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1696 +#: ../src/widgets/text-toolbar.cpp:1697 msgid "Align right" msgstr "Вирівнювання праворуч" -#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1457 +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1705 msgid "Justify (only flowed text)" msgstr "Вирівняти раз шириною (лише неконтурний текст)" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1492 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1740 msgid "Horizontal text" msgstr "Горизонтальний текст" @@ -22020,8 +22208,8 @@ 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 "Інтервал між рядками (у відсотках щодо розміру шрифту)" +msgid "Spacing between baselines (percent of font size)" +msgstr "Інтервал між базовими лініями (у відсотках щодо розміру шрифту)" #: ../src/ui/dialog/text-edit.cpp:147 msgid "Text path offset" @@ -22576,68 +22764,68 @@ msgstr "Вилучити вузол" msgid "Change attribute" msgstr "Змінити атрибут" -#: ../src/ui/interface.cpp:751 +#: ../src/ui/interface.cpp:763 msgctxt "Interface setup" msgid "Default" msgstr "Типовий" -#: ../src/ui/interface.cpp:751 +#: ../src/ui/interface.cpp:763 msgid "Default interface setup" msgstr "Типові налаштування інтерфейсу" -#: ../src/ui/interface.cpp:752 +#: ../src/ui/interface.cpp:764 msgctxt "Interface setup" msgid "Custom" msgstr "Нетиповий" -#: ../src/ui/interface.cpp:752 +#: ../src/ui/interface.cpp:764 msgid "Setup for custom task" msgstr "Налаштування для виконання певного завдання" -#: ../src/ui/interface.cpp:753 +#: ../src/ui/interface.cpp:765 msgctxt "Interface setup" msgid "Wide" msgstr "Широкий" -#: ../src/ui/interface.cpp:753 +#: ../src/ui/interface.cpp:765 msgid "Setup for widescreen work" msgstr "Налаштування для широкоекранних моніторів" -#: ../src/ui/interface.cpp:863 +#: ../src/ui/interface.cpp:875 #, c-format msgid "Verb \"%s\" Unknown" msgstr "Невідоме дієслово «%s»" -#: ../src/ui/interface.cpp:898 +#: ../src/ui/interface.cpp:910 msgid "Open _Recent" msgstr "Відкрити не_давній" -#: ../src/ui/interface.cpp:1006 ../src/ui/interface.cpp:1092 -#: ../src/ui/interface.cpp:1195 ../src/ui/widget/selected-style.cpp:544 +#: ../src/ui/interface.cpp:1018 ../src/ui/interface.cpp:1104 +#: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:542 msgid "Drop color" msgstr "Скинути колір" -#: ../src/ui/interface.cpp:1045 ../src/ui/interface.cpp:1155 +#: ../src/ui/interface.cpp:1057 ../src/ui/interface.cpp:1167 msgid "Drop color on gradient" msgstr "Перенесення кольору на градієнт" -#: ../src/ui/interface.cpp:1208 +#: ../src/ui/interface.cpp:1220 msgid "Could not parse SVG data" msgstr "Не вдається прочитати SVG-дані" -#: ../src/ui/interface.cpp:1247 +#: ../src/ui/interface.cpp:1259 msgid "Drop SVG" msgstr "Скинути SVG" -#: ../src/ui/interface.cpp:1260 +#: ../src/ui/interface.cpp:1272 msgid "Drop Symbol" msgstr "Скинути символ" -#: ../src/ui/interface.cpp:1291 +#: ../src/ui/interface.cpp:1303 msgid "Drop bitmap image" msgstr "Скинути растрову картинку" -#: ../src/ui/interface.cpp:1383 +#: ../src/ui/interface.cpp:1395 #, c-format msgid "" "A file named \"%s\" already exists. Do " @@ -22650,166 +22838,171 @@ msgstr "" "\n" "Файл вже існує у «%s». Заміна призведе до перезапису його вмісту." -#: ../src/ui/interface.cpp:1390 ../share/extensions/web-set-att.inx.h:21 +#: ../src/ui/interface.cpp:1402 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 msgid "Replace" msgstr "Замінити" -#: ../src/ui/interface.cpp:1461 +#: ../src/ui/interface.cpp:1473 msgid "Go to parent" msgstr "На рівень вище" #. TRANSLATORS: #%1 is the id of the group e.g. , not a number. -#: ../src/ui/interface.cpp:1502 +#: ../src/ui/interface.cpp:1514 msgid "Enter group #%1" msgstr "Увійти до групи №%1" +#. Pop selection out of group +#: ../src/ui/interface.cpp:1528 +msgid "_Pop selection out of group" +msgstr "Ви_ключити позначене з групи" + #. Item dialog -#: ../src/ui/interface.cpp:1638 ../src/verbs.cpp:2943 +#: ../src/ui/interface.cpp:1656 ../src/verbs.cpp:2940 msgid "_Object Properties..." msgstr "В_ластивості об'єкта…" -#: ../src/ui/interface.cpp:1647 +#: ../src/ui/interface.cpp:1665 msgid "_Select This" msgstr "_Позначити це" -#: ../src/ui/interface.cpp:1658 +#: ../src/ui/interface.cpp:1676 msgid "Select Same" msgstr "Позначити те саме" #. Select same fill and stroke -#: ../src/ui/interface.cpp:1668 +#: ../src/ui/interface.cpp:1686 msgid "Fill and Stroke" msgstr "Заповнення та штрих" #. Select same fill color -#: ../src/ui/interface.cpp:1675 +#: ../src/ui/interface.cpp:1693 msgid "Fill Color" msgstr "Колір заповнення" #. Select same stroke color -#: ../src/ui/interface.cpp:1682 +#: ../src/ui/interface.cpp:1700 msgid "Stroke Color" msgstr "Колір штриха" #. Select same stroke style -#: ../src/ui/interface.cpp:1689 +#: ../src/ui/interface.cpp:1707 msgid "Stroke Style" msgstr "Стиль штриха" #. Select same stroke style -#: ../src/ui/interface.cpp:1696 +#: ../src/ui/interface.cpp:1714 msgid "Object type" msgstr "Тип об'єкта" #. Move to layer -#: ../src/ui/interface.cpp:1703 +#: ../src/ui/interface.cpp:1721 msgid "_Move to layer ..." msgstr "П_ересунути до шару…" #. Create link -#: ../src/ui/interface.cpp:1713 +#: ../src/ui/interface.cpp:1731 msgid "Create _Link" msgstr "С_творити посилання" #. Release mask -#: ../src/ui/interface.cpp:1747 +#: ../src/ui/interface.cpp:1765 msgid "Release Mask" msgstr "Зняти маску" #. SSet Clip Group -#: ../src/ui/interface.cpp:1758 +#: ../src/ui/interface.cpp:1776 msgid "Create Clip G_roup" msgstr "Створити пришпилену гр_упу" #. Set Clip -#: ../src/ui/interface.cpp:1765 +#: ../src/ui/interface.cpp:1783 msgid "Set Cl_ip" msgstr "Встановити _обрізання" #. Release Clip -#: ../src/ui/interface.cpp:1776 +#: ../src/ui/interface.cpp:1794 msgid "Release C_lip" msgstr "Зн_яти обрізання" #. Group -#: ../src/ui/interface.cpp:1787 ../src/verbs.cpp:2564 +#: ../src/ui/interface.cpp:1805 ../src/verbs.cpp:2561 msgid "_Group" msgstr "З_групувати" -#: ../src/ui/interface.cpp:1858 +#: ../src/ui/interface.cpp:1876 msgid "Create link" msgstr "Створити посилання" #. Ungroup -#: ../src/ui/interface.cpp:1893 ../src/verbs.cpp:2566 +#: ../src/ui/interface.cpp:1911 ../src/verbs.cpp:2563 msgid "_Ungroup" msgstr "Розгр_упувати" #. Link dialog -#: ../src/ui/interface.cpp:1917 +#: ../src/ui/interface.cpp:1941 msgid "Link _Properties..." msgstr "В_ластивості посилання…" #. Select item -#: ../src/ui/interface.cpp:1923 +#: ../src/ui/interface.cpp:1947 msgid "_Follow Link" msgstr "_Перейти за посиланням" #. Reset transformations -#: ../src/ui/interface.cpp:1929 +#: ../src/ui/interface.cpp:1953 msgid "_Remove Link" msgstr "Ви_лучити посилання" -#: ../src/ui/interface.cpp:1960 +#: ../src/ui/interface.cpp:1984 msgid "Remove link" msgstr "Вилучити прив'язку" #. Image properties -#: ../src/ui/interface.cpp:1970 +#: ../src/ui/interface.cpp:1994 msgid "Image _Properties..." msgstr "В_ластивості зображення…" #. Edit externally -#: ../src/ui/interface.cpp:1976 +#: ../src/ui/interface.cpp:2000 msgid "Edit Externally..." msgstr "Редагувати у зовнішній програмі…" #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/ui/interface.cpp:1985 ../src/verbs.cpp:2629 +#: ../src/ui/interface.cpp:2009 ../src/verbs.cpp:2628 msgid "_Trace Bitmap..." msgstr "_Векторизувати растр" #. Trace Pixel Art -#: ../src/ui/interface.cpp:1994 +#: ../src/ui/interface.cpp:2018 msgid "Trace Pixel Art" msgstr "Трасування растрової графіки" -#: ../src/ui/interface.cpp:2004 +#: ../src/ui/interface.cpp:2028 msgctxt "Context menu" msgid "Embed Image" msgstr "Вбудувати зображення" -#: ../src/ui/interface.cpp:2015 +#: ../src/ui/interface.cpp:2039 msgctxt "Context menu" msgid "Extract Image..." msgstr "Видобути зображення…" #. Item dialog #. Fill and Stroke dialog -#: ../src/ui/interface.cpp:2159 ../src/ui/interface.cpp:2179 -#: ../src/verbs.cpp:2906 +#: ../src/ui/interface.cpp:2183 ../src/ui/interface.cpp:2203 +#: ../src/verbs.cpp:2903 msgid "_Fill and Stroke..." msgstr "_Заповнення та штрих" #. Edit Text dialog -#: ../src/ui/interface.cpp:2185 ../src/verbs.cpp:2925 +#: ../src/ui/interface.cpp:2209 ../src/verbs.cpp:2922 msgid "_Text and Font..." msgstr "_Текст та шрифт…" #. Spellcheck dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2933 +#: ../src/ui/interface.cpp:2215 ../src/verbs.cpp:2930 msgid "Check Spellin_g..." msgstr "Перевірити п_равопис…" @@ -23428,7 +23621,7 @@ msgstr "" "Центр обертання: перетягніть, щоб змінити розташування центра " "перетворень" -#: ../src/ui/tools-switch.cpp:95 +#: ../src/ui/tools-switch.cpp:101 msgid "" "Click to Select and Transform objects, Drag to select many " "objects." @@ -23436,15 +23629,15 @@ msgstr "" "Клацніть, щоб позначити і перетворити об’єкти, перетягуванням " "можна позначити декілька об’єктів." -#: ../src/ui/tools-switch.cpp:96 +#: ../src/ui/tools-switch.cpp:102 msgid "Modify selected path points (nodes) directly." msgstr "Змінити позначені точки контуру (вузли) безпосередньо." -#: ../src/ui/tools-switch.cpp:97 +#: ../src/ui/tools-switch.cpp:103 msgid "To tweak a path by pushing, select it and drag over it." msgstr "Щоб коригувати контур штовханням, позначте його і перетягніть його." -#: ../src/ui/tools-switch.cpp:98 +#: ../src/ui/tools-switch.cpp:104 msgid "" "Drag, click or click and scroll to spray the selected " "objects." @@ -23452,7 +23645,7 @@ msgstr "" "Перетягніть, клацніть або клацніть і покрутіть коліщатко, щоб розкидати позначені об'єкти." -#: ../src/ui/tools-switch.cpp:99 +#: ../src/ui/tools-switch.cpp:105 msgid "" "Drag to create a rectangle. Drag controls to round corners and " "resize. Click to select." @@ -23460,7 +23653,7 @@ msgstr "" "Перетягування малює прямокутник. Перетягування ручок змінює " "розмір та округляє кути. Клацання позначає об'єкт." -#: ../src/ui/tools-switch.cpp:100 +#: ../src/ui/tools-switch.cpp:106 msgid "" "Drag to create a 3D box. Drag controls to resize in " "perspective. Click to select (with Ctrl+Alt for single faces)." @@ -23469,7 +23662,7 @@ msgstr "" "змінює його перспективу. Клацання позначає об'єкт (з Ctrl+Alt " "окремі поверхні)." -#: ../src/ui/tools-switch.cpp:101 +#: ../src/ui/tools-switch.cpp:107 msgid "" "Drag to create an ellipse. Drag controls to make an arc or " "segment. Click to select." @@ -23477,7 +23670,7 @@ msgstr "" "Перетягування малює еліпс. Перетягування ручок створює дугу " "або сегмент. Клацання позначає об'єкт." -#: ../src/ui/tools-switch.cpp:102 +#: ../src/ui/tools-switch.cpp:108 msgid "" "Drag to create a star. Drag controls to edit the star shape. " "Click to select." @@ -23485,7 +23678,7 @@ msgstr "" "Перетягування малює зірку. Перетягування ручок змінює її " "форму. Клацання позначає об'єкт." -#: ../src/ui/tools-switch.cpp:103 +#: ../src/ui/tools-switch.cpp:109 msgid "" "Drag to create a spiral. Drag controls to edit the spiral " "shape. Click to select." @@ -23493,7 +23686,7 @@ msgstr "" "Перетягування малює спіраль. Перетягування ручок змінює її " "форму. Клацання позначає об'єкт." -#: ../src/ui/tools-switch.cpp:104 +#: ../src/ui/tools-switch.cpp:110 msgid "" "Drag to create a freehand line. Shift appends to selected " "path, Alt activates sketch mode." @@ -23501,7 +23694,7 @@ msgstr "" "Перетягування малює довільну лінію. Щоб додати до позначеної лінії, " "натисніть спочатку Shift. Alt вмикає режим ескіза." -#: ../src/ui/tools-switch.cpp:105 +#: ../src/ui/tools-switch.cpp:111 msgid "" "Click or click and drag to start a path; with Shift to " "append to selected path. Ctrl+click to create single dots (straight " @@ -23511,7 +23704,7 @@ msgstr "" "додати до позначеного контуру, натисніть спочатку Shift. Ctrl" "+клацання створює одиничні точки (лише для прямих ліній)." -#: ../src/ui/tools-switch.cpp:106 +#: ../src/ui/tools-switch.cpp:112 msgid "" "Drag to draw a calligraphic stroke; with Ctrl to track a guide " "path. Arrow keys adjust width (left/right) and angle (up/down)." @@ -23520,7 +23713,7 @@ msgstr "" "напрямної, Клавіші-стрілки — налаштування товщини (ліворуч/праворуч) " "і кута (вгору/вниз)." -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1583 +#: ../src/ui/tools-switch.cpp:113 ../src/ui/tools/text-tool.cpp:1583 msgid "" "Click to select or create text, drag to create flowed text; " "then type." @@ -23528,7 +23721,7 @@ msgstr "" "Клацання позначає чи створює текстовий об'єкт; перетягніть щоб " "створити плаваючу тестову область; після чого можна набирати текст." -#: ../src/ui/tools-switch.cpp:108 +#: ../src/ui/tools-switch.cpp:114 msgid "" "Drag or double click to create a gradient on selected objects, " "drag handles to adjust gradients." @@ -23536,7 +23729,7 @@ msgstr "" "Перетягніть або двічі клацніть, щоб створити градієнт на " "позначеному об'єкті, перетягніть вуса для коригування градієнта." -#: ../src/ui/tools-switch.cpp:109 +#: ../src/ui/tools-switch.cpp:115 msgid "" "Drag or double click to create a mesh on selected objects, " "drag handles to adjust meshes." @@ -23544,7 +23737,7 @@ msgstr "" "Перетягніть або двічі клацніть, щоб створити сітку на " "позначеному об'єкті, перетягніть вуса для коригування сітки." -#: ../src/ui/tools-switch.cpp:110 +#: ../src/ui/tools-switch.cpp:116 msgid "" "Click or drag around an area to zoom in, Shift+click to " "zoom out." @@ -23552,11 +23745,11 @@ msgstr "" "Клацання чи обведення рамкою наближають, Shift+клацання " "віддаляють полотно." -#: ../src/ui/tools-switch.cpp:111 +#: ../src/ui/tools-switch.cpp:117 msgid "Drag to measure the dimensions of objects." msgstr "Перетягніть вказівник, щоб виміряти об'єкти." -#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:274 +#: ../src/ui/tools-switch.cpp:118 ../src/ui/tools/dropper-tool.cpp:274 msgid "" "Click to set fill, Shift+click to set stroke; drag to " "average color in area; with Alt to pick inverse color; Ctrl+C " @@ -23567,12 +23760,12 @@ msgstr "" "разом з Alt береться інверсний колір; Ctrl+C копіює у буфер " "колір під курсором." -#: ../src/ui/tools-switch.cpp:113 +#: ../src/ui/tools-switch.cpp:119 msgid "Click and drag between shapes to create a connector." msgstr "" "Клацання + перетягування між фігурами створюють лінію з'єднання." -#: ../src/ui/tools-switch.cpp:114 +#: ../src/ui/tools-switch.cpp:121 msgid "" "Click to paint a bounded area, Shift+click to union the new " "fill with the current selection, Ctrl+click to change the clicked " @@ -23582,11 +23775,11 @@ msgstr "" "поєднання нового заповнення з поточною позначеною областю, Ctrl+click " "- змінити на поточне значення заповнення та штрих об'єкта, на якому клацнули." -#: ../src/ui/tools-switch.cpp:115 +#: ../src/ui/tools-switch.cpp:123 msgid "Drag to erase." msgstr "Перетягніть, щоб витерти." -#: ../src/ui/tools-switch.cpp:116 +#: ../src/ui/tools-switch.cpp:124 msgid "Choose a subtool from the toolbar" msgstr "Оберіть підінструмент на панелі інструментів" @@ -23733,11 +23926,11 @@ msgstr "Відпустіть кнопку для встановлення msgid "Set picked color" msgstr "Встановити знятий піпеткою колір" -#: ../src/ui/tools/eraser-tool.cpp:427 +#: ../src/ui/tools/eraser-tool.cpp:436 msgid "Drawing an eraser stroke" msgstr "Малювання штриха гумки" -#: ../src/ui/tools/eraser-tool.cpp:753 +#: ../src/ui/tools/eraser-tool.cpp:797 msgid "Draw eraser stroke" msgstr "Намалювати штрих гумкою" @@ -23821,24 +24014,24 @@ msgstr "" "b> — для заповнення дотиком" #. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:669 +#: ../src/ui/tools/freehand-base.cpp:677 msgid "Path is closed." msgstr "Контур замкнено." #. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:684 +#: ../src/ui/tools/freehand-base.cpp:692 msgid "Closing path." msgstr "Закривається контур." -#: ../src/ui/tools/freehand-base.cpp:823 +#: ../src/ui/tools/freehand-base.cpp:831 msgid "Draw path" msgstr "Малювання контуру" -#: ../src/ui/tools/freehand-base.cpp:976 +#: ../src/ui/tools/freehand-base.cpp:984 msgid "Creating single dot" msgstr "Створення одиночної точки" -#: ../src/ui/tools/freehand-base.cpp:977 +#: ../src/ui/tools/freehand-base.cpp:985 msgid "Create single dot" msgstr "Створити одиночну точку" @@ -23941,38 +24134,42 @@ msgid "Choose a construction tool from the toolbar." msgstr "Вибрати інструмент побудови з панелі інструментів." #. create the knots -#: ../src/ui/tools/measure-tool.cpp:338 -msgid "Measure start" -msgstr "Початок вимірювання" +#: ../src/ui/tools/measure-tool.cpp:349 +msgid "Measure start, Shift+Click for position dialog" +msgstr "Початкова точка вимірювання, Shift+клацання — вікно позиції" -#: ../src/ui/tools/measure-tool.cpp:344 -msgid "Measure end" -msgstr "Кінець вимірювання" +#: ../src/ui/tools/measure-tool.cpp:355 +msgid "Measure end, Shift+Click for position dialog" +msgstr "Кінцева точка вимірювання, Shift+клацання — вікно позиції" -#: ../src/ui/tools/measure-tool.cpp:719 ../share/extensions/measure.inx.h:2 +#: ../src/ui/tools/measure-tool.cpp:747 ../share/extensions/measure.inx.h:2 msgid "Measure" msgstr "Міра" -#: ../src/ui/tools/measure-tool.cpp:724 +#: ../src/ui/tools/measure-tool.cpp:752 msgid "Base" msgstr "Основа" -#: ../src/ui/tools/measure-tool.cpp:733 +#: ../src/ui/tools/measure-tool.cpp:761 msgid "Add guides from measure tool" msgstr "Додати напрямні з інструмента вимірювання" -#: ../src/ui/tools/measure-tool.cpp:753 +#: ../src/ui/tools/measure-tool.cpp:781 +msgid "Add Stored to measure tool" +msgstr "Додати збережене до інструмента вимірювання" + +#: ../src/ui/tools/measure-tool.cpp:801 msgid "Convert measure to items" msgstr "Перетворити вимірювання на об’єкти" -#: ../src/ui/tools/measure-tool.cpp:791 +#: ../src/ui/tools/measure-tool.cpp:839 msgid "Add global measure line" msgstr "Додати загальну лінію вимірювання" -#: ../src/ui/tools/measure-tool.cpp:1221 ../src/ui/tools/measure-tool.cpp:1223 +#: ../src/ui/tools/measure-tool.cpp:1290 ../src/ui/tools/measure-tool.cpp:1292 #, c-format -msgid "Crossing %d" -msgstr "Перетин %d" +msgid "Crossing %lu" +msgstr "Перетин %lu" #. TRANSLATORS: Mind the space in front. This is part of a compound message #: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 @@ -24146,43 +24343,45 @@ msgstr "" "Клацання або перетягування продовжує контур з цієї точки, " "Shift+клацання — створити гострий вузол." -#: ../src/ui/tools/pen-tool.cpp:1786 +#: ../src/ui/tools/pen-tool.cpp:1797 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" "Сегмент кривої: кут %3.2f°, відстань %s; з Ctrl — кут " -"прилипання, Enter — завершити контур" +"прилипання, Enter або Shift+Enter — завершити контур" -#: ../src/ui/tools/pen-tool.cpp:1787 +#: ../src/ui/tools/pen-tool.cpp:1798 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" "Сегмент лінії: кут %3.2f°, відстань %s; з Ctrl — кут " -"прилипання, Enter — завершити контур" +"прилипання, Enter або Shift+Enter — завершити контур" -#: ../src/ui/tools/pen-tool.cpp:1790 +#: ../src/ui/tools/pen-tool.cpp:1801 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" +"b> make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -"Сегмент кривої: кут %3.2f°, відстань %s; з , Shift+клацанням — створити гострий вузол, Enter — завершити контур" +"Сегмент кривої: кут %3.2f°, відстань %s; з Shift+клацанням — створити гострий вузол, Enter або Shift+Enter — завершити " +"контур" -#: ../src/ui/tools/pen-tool.cpp:1791 +#: ../src/ui/tools/pen-tool.cpp:1802 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " -"make a cusp node, Enter to finish the path" +"make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -"Сегмент прямої: кут %3.2f°, відстань %s; з , Shift+клацанням — створити гострий вузол, Enter — завершити контур" +"Сегмент прямої: кут %3.2f°, відстань %s; з Shift+клацанням — створити гострий вузол, Enter або Shift+Enter — завершити " +"контур" -#: ../src/ui/tools/pen-tool.cpp:1808 +#: ../src/ui/tools/pen-tool.cpp:1819 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " @@ -24190,7 +24389,7 @@ msgid "" msgstr "" "Вус вузла кривої: кут %3.2f°, довжина %s; Ctrl обмежує кут" -#: ../src/ui/tools/pen-tool.cpp:1832 +#: ../src/ui/tools/pen-tool.cpp:1843 #, c-format msgid "" "Curve handle, symmetric: angle %3.2f°, length %s; with CtrlВус кривої, симетричний: кут %3.2f°, довжина %s; з Ctrl — " "кут прилипання, з Shift — лише пересунути вус" -#: ../src/ui/tools/pen-tool.cpp:1833 +#: ../src/ui/tools/pen-tool.cpp:1844 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " @@ -24208,7 +24407,7 @@ msgstr "" "Вус кривої: кут %3.2f°, довжина %s; з Ctrl — кут " "прилипання, Shift — лише пересування вуса" -#: ../src/ui/tools/pen-tool.cpp:1967 +#: ../src/ui/tools/pen-tool.cpp:1978 msgid "Drawing finished" msgstr "Малювання завершено" @@ -24310,7 +24509,7 @@ msgstr "Переміщення скасовано." msgid "Selection canceled." msgstr "Позначення скасовано." -#: ../src/ui/tools/select-tool.cpp:636 +#: ../src/ui/tools/select-tool.cpp:638 msgid "" "Draw over objects to select them; release Alt to switch to " "rubberband selection" @@ -24318,7 +24517,7 @@ msgstr "" "Малювати по об'єктах для їхнього позначення; відпустіть Alt " "для переходу до позначення гумовою ниткою" -#: ../src/ui/tools/select-tool.cpp:638 +#: ../src/ui/tools/select-tool.cpp:640 msgid "" "Drag around objects to select them; press Alt to switch to " "touch selection" @@ -24326,19 +24525,19 @@ msgstr "" "Малювати навколо об'єктів для їхнього позначення; відпустіть Alt для переходу до позначення дотиком" -#: ../src/ui/tools/select-tool.cpp:919 +#: ../src/ui/tools/select-tool.cpp:921 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" "Ctrl: позначення у групі; перетягування — переміщення по горизонталі/" "вертикалі" -#: ../src/ui/tools/select-tool.cpp:920 +#: ../src/ui/tools/select-tool.cpp:922 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" "Shift: позначити/зняти позначення; перетягування — позначення гумовою " "ниткою" -#: ../src/ui/tools/select-tool.cpp:921 +#: ../src/ui/tools/select-tool.cpp:923 msgid "" "Alt: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" @@ -24346,7 +24545,7 @@ msgstr "" "Alt: клацніть для позначення; прокручування коліщатка — циклічний " "вибір; перетягування — переміщення позначеної області чи вибір торканням" -#: ../src/ui/tools/select-tool.cpp:1129 +#: ../src/ui/tools/select-tool.cpp:1131 msgid "Selected object is not a group. Cannot enter." msgstr "позначений об'єкт не є групою. Неможливо увійти." @@ -24411,11 +24610,11 @@ msgstr "" msgid "Nothing selected! Select objects to spray." msgstr "Нічого не позначено! Позначте об'єкти, які слід розкидати." -#: ../src/ui/tools/spray-tool.cpp:1380 ../src/widgets/spray-toolbar.cpp:350 +#: ../src/ui/tools/spray-tool.cpp:1380 ../src/widgets/spray-toolbar.cpp:360 msgid "Spray with copies" msgstr "Розкидання копій" -#: ../src/ui/tools/spray-tool.cpp:1384 ../src/widgets/spray-toolbar.cpp:357 +#: ../src/ui/tools/spray-tool.cpp:1384 ../src/widgets/spray-toolbar.cpp:367 msgid "Spray with clones" msgstr "Розкидання клонів" @@ -24752,48 +24951,49 @@ msgid "Hexadecimal RGBA value of the color" msgstr "Шістнадцяткове значення кольору RGBA" #: ../src/ui/widget/color-icc-selector.cpp:176 -#: ../src/ui/widget/color-scales.cpp:378 +#: ../src/ui/widget/color-scales.cpp:384 msgid "_R:" msgstr "_R:" #. TYPE_RGB_16 #: ../src/ui/widget/color-icc-selector.cpp:177 -#: ../src/ui/widget/color-scales.cpp:381 +#: ../src/ui/widget/color-scales.cpp:387 msgid "_G:" msgstr "_G:" #: ../src/ui/widget/color-icc-selector.cpp:178 -#: ../src/ui/widget/color-scales.cpp:384 +#: ../src/ui/widget/color-scales.cpp:390 msgid "_B:" msgstr "_B:" #: ../src/ui/widget/color-icc-selector.cpp:180 +#: ../share/extensions/nicechart.inx.h:35 msgid "Gray" msgstr "Сірий" #. TYPE_GRAY_16 #: ../src/ui/widget/color-icc-selector.cpp:182 #: ../src/ui/widget/color-icc-selector.cpp:186 -#: ../src/ui/widget/color-scales.cpp:404 +#: ../src/ui/widget/color-scales.cpp:410 msgid "_H:" msgstr "_H:" #. TYPE_HSV_16 #: ../src/ui/widget/color-icc-selector.cpp:183 #: ../src/ui/widget/color-icc-selector.cpp:188 -#: ../src/ui/widget/color-scales.cpp:407 +#: ../src/ui/widget/color-scales.cpp:413 msgid "_S:" msgstr "_S:" #. TYPE_HLS_16 #: ../src/ui/widget/color-icc-selector.cpp:187 -#: ../src/ui/widget/color-scales.cpp:410 +#: ../src/ui/widget/color-scales.cpp:416 msgid "_L:" msgstr "_L:" #: ../src/ui/widget/color-icc-selector.cpp:190 #: ../src/ui/widget/color-icc-selector.cpp:195 -#: ../src/ui/widget/color-scales.cpp:432 +#: ../src/ui/widget/color-scales.cpp:438 msgid "_C:" msgstr "_C:" @@ -24801,18 +25001,18 @@ msgstr "_C:" #. TYPE_CMY_16 #: ../src/ui/widget/color-icc-selector.cpp:191 #: ../src/ui/widget/color-icc-selector.cpp:196 -#: ../src/ui/widget/color-scales.cpp:435 +#: ../src/ui/widget/color-scales.cpp:441 msgid "_M:" msgstr "_M:" #: ../src/ui/widget/color-icc-selector.cpp:192 #: ../src/ui/widget/color-icc-selector.cpp:197 -#: ../src/ui/widget/color-scales.cpp:438 +#: ../src/ui/widget/color-scales.cpp:444 msgid "_Y:" msgstr "_Y:" #: ../src/ui/widget/color-icc-selector.cpp:193 -#: ../src/ui/widget/color-scales.cpp:441 +#: ../src/ui/widget/color-scales.cpp:447 msgid "_K:" msgstr "_K:" @@ -24829,18 +25029,18 @@ msgid "Fix RGB fallback to match icc-color() value." msgstr "Виправити колір до RGB на основі значення icc-color()" #. Label -#: ../src/ui/widget/color-icc-selector.cpp:491 -#: ../src/ui/widget/color-scales.cpp:387 ../src/ui/widget/color-scales.cpp:413 -#: ../src/ui/widget/color-scales.cpp:444 +#: ../src/ui/widget/color-icc-selector.cpp:496 +#: ../src/ui/widget/color-scales.cpp:393 ../src/ui/widget/color-scales.cpp:419 +#: ../src/ui/widget/color-scales.cpp:450 #: ../src/ui/widget/color-wheel-selector.cpp:83 msgid "_A:" msgstr "_A:" -#: ../src/ui/widget/color-icc-selector.cpp:502 #: ../src/ui/widget/color-icc-selector.cpp:513 -#: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 -#: ../src/ui/widget/color-scales.cpp:414 ../src/ui/widget/color-scales.cpp:415 -#: ../src/ui/widget/color-scales.cpp:445 ../src/ui/widget/color-scales.cpp:446 +#: ../src/ui/widget/color-icc-selector.cpp:524 +#: ../src/ui/widget/color-scales.cpp:394 ../src/ui/widget/color-scales.cpp:395 +#: ../src/ui/widget/color-scales.cpp:420 ../src/ui/widget/color-scales.cpp:421 +#: ../src/ui/widget/color-scales.cpp:451 ../src/ui/widget/color-scales.cpp:452 #: ../src/ui/widget/color-wheel-selector.cpp:112 #: ../src/ui/widget/color-wheel-selector.cpp:142 msgid "Alpha (opacity)" @@ -24858,7 +25058,7 @@ msgstr "Поза гамою!" msgid "Too much ink!" msgstr "Забагато чорнила!" -#: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2767 +#: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2766 msgid "Pick colors from image" msgstr "Взяти кольори з зображення" @@ -25165,19 +25365,19 @@ msgid "Feature settings in CSS form. No sanity checking is performed." msgstr "" "Параметри модифікацій у формі CSS. Перевірки щодо коректності не виконується." -#: ../src/ui/widget/layer-selector.cpp:118 +#: ../src/ui/widget/layer-selector.cpp:116 msgid "Toggle current layer visibility" msgstr "Сховати чи відкрити поточний шар" -#: ../src/ui/widget/layer-selector.cpp:139 +#: ../src/ui/widget/layer-selector.cpp:136 msgid "Lock or unlock current layer" msgstr "Заблокувати чи розблокувати поточний шар" -#: ../src/ui/widget/layer-selector.cpp:142 +#: ../src/ui/widget/layer-selector.cpp:139 msgid "Current layer" msgstr "Поточний шар" -#: ../src/ui/widget/layer-selector.cpp:583 +#: ../src/ui/widget/layer-selector.cpp:580 msgid "(root)" msgstr "(основа)" @@ -25194,8 +25394,8 @@ msgid "Document license updated" msgstr "Оновлено умови ліцензування документа" #: ../src/ui/widget/object-composite-settings.cpp:47 -#: ../src/ui/widget/selected-style.cpp:1119 -#: ../src/ui/widget/selected-style.cpp:1120 +#: ../src/ui/widget/selected-style.cpp:1117 +#: ../src/ui/widget/selected-style.cpp:1118 msgid "Opacity (%)" msgstr "Непрозорість (у %)" @@ -25204,8 +25404,8 @@ msgid "Change blur" msgstr "Зміна розмивання" #: ../src/ui/widget/object-composite-settings.cpp:200 -#: ../src/ui/widget/selected-style.cpp:943 -#: ../src/ui/widget/selected-style.cpp:1245 +#: ../src/ui/widget/selected-style.cpp:941 +#: ../src/ui/widget/selected-style.cpp:1243 msgid "Change opacity" msgstr "Зміна непрозорості" @@ -25332,101 +25532,101 @@ msgstr "Встановити масштаб сторінки" msgid "Set 'viewBox'" msgstr "Встановити «viewBox»" -#: ../src/ui/widget/panel.cpp:113 +#: ../src/ui/widget/panel.cpp:115 msgid "List" msgstr "Список" -#: ../src/ui/widget/panel.cpp:136 +#: ../src/ui/widget/panel.cpp:138 msgctxt "Swatches" msgid "Size" msgstr "Розмір" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Tiny" msgstr "Крихітна" -#: ../src/ui/widget/panel.cpp:141 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Small" msgstr "Мала" -#: ../src/ui/widget/panel.cpp:142 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Medium" msgstr "Середня" -#: ../src/ui/widget/panel.cpp:143 +#: ../src/ui/widget/panel.cpp:145 msgctxt "Swatches height" msgid "Large" msgstr "Велика" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:146 msgctxt "Swatches height" msgid "Huge" msgstr "Величезна" -#: ../src/ui/widget/panel.cpp:166 +#: ../src/ui/widget/panel.cpp:168 msgctxt "Swatches" msgid "Width" msgstr "Ширина" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Narrower" msgstr "Вужча" -#: ../src/ui/widget/panel.cpp:171 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Narrow" msgstr "Вузька" -#: ../src/ui/widget/panel.cpp:172 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Medium" msgstr "Середня" -#: ../src/ui/widget/panel.cpp:173 +#: ../src/ui/widget/panel.cpp:175 msgctxt "Swatches width" msgid "Wide" msgstr "Широка" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:176 msgctxt "Swatches width" msgid "Wider" msgstr "Ширша" -#: ../src/ui/widget/panel.cpp:204 +#: ../src/ui/widget/panel.cpp:206 msgctxt "Swatches" msgid "Border" msgstr "Рамка" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "None" msgstr "Немає" -#: ../src/ui/widget/panel.cpp:209 +#: ../src/ui/widget/panel.cpp:211 msgctxt "Swatches border" msgid "Solid" msgstr "Суцільна" -#: ../src/ui/widget/panel.cpp:210 +#: ../src/ui/widget/panel.cpp:212 msgctxt "Swatches border" msgid "Wide" msgstr "Широка" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:241 +#: ../src/ui/widget/panel.cpp:243 msgctxt "Swatches" msgid "Wrap" msgstr "З перенесенням" -#: ../src/ui/widget/preferences-widget.cpp:799 +#: ../src/ui/widget/preferences-widget.cpp:795 msgid "_Browse..." msgstr "Ви_брати…" -#: ../src/ui/widget/preferences-widget.cpp:885 +#: ../src/ui/widget/preferences-widget.cpp:881 msgid "Select a bitmap editor" msgstr "Виберіть редактор растрової графіки" @@ -25492,8 +25692,8 @@ msgid "N/A" msgstr "Н/Д" #: ../src/ui/widget/selected-style.cpp:181 -#: ../src/ui/widget/selected-style.cpp:1112 -#: ../src/ui/widget/selected-style.cpp:1113 +#: ../src/ui/widget/selected-style.cpp:1110 +#: ../src/ui/widget/selected-style.cpp:1111 #: ../src/widgets/gradient-toolbar.cpp:162 msgid "Nothing selected" msgstr "Нічого не позначено" @@ -25595,14 +25795,14 @@ msgstr "Не встановлено" #. TRANSLATORS COMMENT: unset is a verb here #: ../src/ui/widget/selected-style.cpp:237 #: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:575 +#: ../src/ui/widget/selected-style.cpp:573 #: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset fill" msgstr "Не заливати" #: ../src/ui/widget/selected-style.cpp:237 #: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:591 +#: ../src/ui/widget/selected-style.cpp:589 #: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset stroke" msgstr "Зняття штриха" @@ -25666,13 +25866,13 @@ msgid "Paste color" msgstr "Вставити колір" #: ../src/ui/widget/selected-style.cpp:286 -#: ../src/ui/widget/selected-style.cpp:868 +#: ../src/ui/widget/selected-style.cpp:866 msgid "Swap fill and stroke" msgstr "Поміняти місцями кольори заповнення та штриха" #: ../src/ui/widget/selected-style.cpp:290 -#: ../src/ui/widget/selected-style.cpp:600 -#: ../src/ui/widget/selected-style.cpp:609 +#: ../src/ui/widget/selected-style.cpp:598 +#: ../src/ui/widget/selected-style.cpp:607 msgid "Make fill opaque" msgstr "Зробити заповнення непрозорим" @@ -25681,93 +25881,93 @@ msgid "Make stroke opaque" msgstr "Зробити штрихи непрозорими" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:503 +#: ../src/ui/widget/selected-style.cpp:555 ../src/widgets/fill-style.cpp:503 msgid "Remove fill" msgstr "Вилучити заповнення" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:503 +#: ../src/ui/widget/selected-style.cpp:564 ../src/widgets/fill-style.cpp:503 msgid "Remove stroke" msgstr "Вилучити штрих" -#: ../src/ui/widget/selected-style.cpp:621 +#: ../src/ui/widget/selected-style.cpp:619 msgid "Apply last set color to fill" msgstr "Застосувати останній використаний колір для заповнення" -#: ../src/ui/widget/selected-style.cpp:633 +#: ../src/ui/widget/selected-style.cpp:631 msgid "Apply last set color to stroke" msgstr "Застосувати останній використаний колір для штриха" -#: ../src/ui/widget/selected-style.cpp:644 +#: ../src/ui/widget/selected-style.cpp:642 msgid "Apply last selected color to fill" msgstr "Застосувати останній вибраний колір для заповнення" -#: ../src/ui/widget/selected-style.cpp:655 +#: ../src/ui/widget/selected-style.cpp:653 msgid "Apply last selected color to stroke" msgstr "Застосувати останній вибраний колір для штриха" -#: ../src/ui/widget/selected-style.cpp:681 +#: ../src/ui/widget/selected-style.cpp:679 msgid "Invert fill" msgstr "Інвертувати заповнення" -#: ../src/ui/widget/selected-style.cpp:705 +#: ../src/ui/widget/selected-style.cpp:703 msgid "Invert stroke" msgstr "Інвертувати штрих" -#: ../src/ui/widget/selected-style.cpp:717 +#: ../src/ui/widget/selected-style.cpp:715 msgid "White fill" msgstr "Заповнення білим" -#: ../src/ui/widget/selected-style.cpp:729 +#: ../src/ui/widget/selected-style.cpp:727 msgid "White stroke" msgstr "Білий штрих" -#: ../src/ui/widget/selected-style.cpp:741 +#: ../src/ui/widget/selected-style.cpp:739 msgid "Black fill" msgstr "Заповнення чорним" -#: ../src/ui/widget/selected-style.cpp:753 +#: ../src/ui/widget/selected-style.cpp:751 msgid "Black stroke" msgstr "Чорний штрих" -#: ../src/ui/widget/selected-style.cpp:796 +#: ../src/ui/widget/selected-style.cpp:794 msgid "Paste fill" msgstr "Вставити заповнення" -#: ../src/ui/widget/selected-style.cpp:814 +#: ../src/ui/widget/selected-style.cpp:812 msgid "Paste stroke" msgstr "Вставити штрих" -#: ../src/ui/widget/selected-style.cpp:970 +#: ../src/ui/widget/selected-style.cpp:968 msgid "Change stroke width" msgstr "Змінити товщину штриха" -#: ../src/ui/widget/selected-style.cpp:1073 +#: ../src/ui/widget/selected-style.cpp:1071 msgid ", drag to adjust" msgstr ", налаштуйте шляхом перетягування" -#: ../src/ui/widget/selected-style.cpp:1158 +#: ../src/ui/widget/selected-style.cpp:1156 #, c-format msgid "Stroke width: %.5g%s%s" msgstr "Товщина штриха: %.5g%s%s" -#: ../src/ui/widget/selected-style.cpp:1162 +#: ../src/ui/widget/selected-style.cpp:1160 msgid " (averaged)" msgstr " (осереднений)" -#: ../src/ui/widget/selected-style.cpp:1188 +#: ../src/ui/widget/selected-style.cpp:1186 msgid "0 (transparent)" msgstr "0 (прозорий)" -#: ../src/ui/widget/selected-style.cpp:1212 +#: ../src/ui/widget/selected-style.cpp:1210 msgid "100% (opaque)" msgstr "100% (непрозорий)" -#: ../src/ui/widget/selected-style.cpp:1386 +#: ../src/ui/widget/selected-style.cpp:1384 msgid "Adjust alpha" msgstr "Скоригувати канал прозорості" -#: ../src/ui/widget/selected-style.cpp:1388 +#: ../src/ui/widget/selected-style.cpp:1386 #, c-format msgid "" "Adjusting alpha: was %.3g, now %.3g (diff %.3g); with CtrlCtrl для зміни освітленості;Shift — для " "зміни насиченості, без модифікаторів — виправлення відтінку" -#: ../src/ui/widget/selected-style.cpp:1392 +#: ../src/ui/widget/selected-style.cpp:1390 msgid "Adjust saturation" msgstr "Корекція насиченості" -#: ../src/ui/widget/selected-style.cpp:1394 +#: ../src/ui/widget/selected-style.cpp:1392 #, c-format msgid "" "Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " @@ -25793,11 +25993,11 @@ msgstr "" "скористайтеся Ctrl для корекції освітленості, Alt — для зміни " "прозорості, без модифікаторів – корекція відтінку" -#: ../src/ui/widget/selected-style.cpp:1398 +#: ../src/ui/widget/selected-style.cpp:1396 msgid "Adjust lightness" msgstr "Корекція освітленості" -#: ../src/ui/widget/selected-style.cpp:1400 +#: ../src/ui/widget/selected-style.cpp:1398 #, c-format msgid "" "Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " @@ -25808,11 +26008,11 @@ msgstr "" "скористайтеся Shift для зміни насиченості, Alt — для зміни " "прозорості, без модифікаторів — виправлення відтінку" -#: ../src/ui/widget/selected-style.cpp:1404 +#: ../src/ui/widget/selected-style.cpp:1402 msgid "Adjust hue" msgstr "Корекція відтінку" -#: ../src/ui/widget/selected-style.cpp:1406 +#: ../src/ui/widget/selected-style.cpp:1404 #, c-format msgid "" "Adjusting hue: was %.3g, now %.3g (diff %.3g); with ShiftShift для зміни насиченості, Alt — для зміни " "прозорості, а Ctrl для зміни освітленості" -#: ../src/ui/widget/selected-style.cpp:1524 -#: ../src/ui/widget/selected-style.cpp:1538 +#: ../src/ui/widget/selected-style.cpp:1522 +#: ../src/ui/widget/selected-style.cpp:1536 msgid "Adjust stroke width" msgstr "Скоригувати товщину штриха" -#: ../src/ui/widget/selected-style.cpp:1525 +#: ../src/ui/widget/selected-style.cpp:1523 #, c-format msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" msgstr "" @@ -25890,7 +26090,7 @@ msgstr "Об'єднати точки сходу" msgid "3D box: Move vanishing point" msgstr "Просторовий об'єкт: Пересування точки сходу" -#: ../src/vanishing-point.cpp:330 +#: ../src/vanishing-point.cpp:329 #, c-format msgid "Finite vanishing point shared by %d box" msgid_plural "" @@ -25902,7 +26102,7 @@ msgstr[2] "Скінченна точка сходу, спільна дл #. 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:337 +#: ../src/vanishing-point.cpp:336 #, c-format msgid "Infinite vanishing point shared by %d box" msgid_plural "" @@ -25912,7 +26112,7 @@ msgstr[0] "Нескінченна точка сходу для %d msgstr[1] "Нескінченна точка сходу, спільна для %d об'єктів" msgstr[2] "Нескінченна точка сходу, спільна для %d об'єктів" -#: ../src/vanishing-point.cpp:345 +#: ../src/vanishing-point.cpp:344 #, c-format msgid "" "shared by %d box; drag with Shift to separate selected box(es)" @@ -25941,7 +26141,7 @@ msgstr "Мітка" msgid "Context" msgstr "Контекст" -#: ../src/verbs.cpp:270 ../src/verbs.cpp:2300 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2297 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" @@ -25951,242 +26151,247 @@ msgstr "Перегляд" msgid "Dialog" msgstr "Діалогове вікно" -#: ../src/verbs.cpp:1276 +#: ../src/verbs.cpp:1275 msgid "Switch to next layer" msgstr "Перемкнутися на наступний шар" -#: ../src/verbs.cpp:1277 +#: ../src/verbs.cpp:1276 msgid "Switched to next layer." msgstr "Перемикання на наступний шар." -#: ../src/verbs.cpp:1279 +#: ../src/verbs.cpp:1278 msgid "Cannot go past last layer." msgstr "Неможливо переміститися вище за останній шар." -#: ../src/verbs.cpp:1288 +#: ../src/verbs.cpp:1287 msgid "Switch to previous layer" msgstr "Перемкнутися на попередній шар" -#: ../src/verbs.cpp:1289 +#: ../src/verbs.cpp:1288 msgid "Switched to previous layer." msgstr "Перемикання на попередній шар." -#: ../src/verbs.cpp:1291 +#: ../src/verbs.cpp:1290 msgid "Cannot go before first layer." msgstr "Неможливо переміститися нижче за перший шар." -#: ../src/verbs.cpp:1312 ../src/verbs.cpp:1379 ../src/verbs.cpp:1415 -#: ../src/verbs.cpp:1421 ../src/verbs.cpp:1445 ../src/verbs.cpp:1460 +#: ../src/verbs.cpp:1311 ../src/verbs.cpp:1378 ../src/verbs.cpp:1414 +#: ../src/verbs.cpp:1420 ../src/verbs.cpp:1444 ../src/verbs.cpp:1459 msgid "No current layer." msgstr "Немає поточного шару." -#: ../src/verbs.cpp:1341 ../src/verbs.cpp:1345 +#: ../src/verbs.cpp:1340 ../src/verbs.cpp:1344 #, c-format msgid "Raised layer %s." msgstr "Шар %s піднято." -#: ../src/verbs.cpp:1342 +#: ../src/verbs.cpp:1341 msgid "Layer to top" msgstr "Підняти шар нагору" -#: ../src/verbs.cpp:1346 +#: ../src/verbs.cpp:1345 msgid "Raise layer" msgstr "Підняти шар" -#: ../src/verbs.cpp:1349 ../src/verbs.cpp:1353 +#: ../src/verbs.cpp:1348 ../src/verbs.cpp:1352 #, c-format msgid "Lowered layer %s." msgstr "Шар %s опущено." -#: ../src/verbs.cpp:1350 +#: ../src/verbs.cpp:1349 msgid "Layer to bottom" msgstr "Опустити шар додолу" -#: ../src/verbs.cpp:1354 +#: ../src/verbs.cpp:1353 msgid "Lower layer" msgstr "Опустити шар" -#: ../src/verbs.cpp:1363 +#: ../src/verbs.cpp:1362 msgid "Cannot move layer any further." msgstr "Неможливо перемістити шар далі." -#: ../src/verbs.cpp:1374 +#: ../src/verbs.cpp:1373 msgid "Duplicate layer" msgstr "Дублювати шар" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1377 +#: ../src/verbs.cpp:1376 msgid "Duplicated layer." msgstr "Дубльований шар." -#: ../src/verbs.cpp:1410 +#: ../src/verbs.cpp:1409 msgid "Delete layer" msgstr "Вилучити шар" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1413 +#: ../src/verbs.cpp:1412 msgid "Deleted layer." msgstr "Шар вилучено." -#: ../src/verbs.cpp:1430 +#: ../src/verbs.cpp:1429 msgid "Show all layers" msgstr "Показати всі шари" -#: ../src/verbs.cpp:1435 +#: ../src/verbs.cpp:1434 msgid "Hide all layers" msgstr "Приховати всі шари" -#: ../src/verbs.cpp:1440 +#: ../src/verbs.cpp:1439 msgid "Lock all layers" msgstr "Заблокувати всі шари" -#: ../src/verbs.cpp:1454 +#: ../src/verbs.cpp:1453 msgid "Unlock all layers" msgstr "Розблокувати всі шари" -#: ../src/verbs.cpp:1538 +#: ../src/verbs.cpp:1537 msgid "Flip horizontally" msgstr "Віддзеркалити горизонтально" -#: ../src/verbs.cpp:1543 +#: ../src/verbs.cpp:1542 msgid "Flip vertically" msgstr "Віддзеркалити вертикально" -#: ../src/verbs.cpp:1600 ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:1590 +#, c-format +msgid "Set %d" +msgstr "Набір %d" + +#: ../src/verbs.cpp:1599 ../src/verbs.cpp:2729 msgid "Create new selection set" 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:2178 +#: ../src/verbs.cpp:2175 msgid "tutorial-basic.svg" msgstr "tutorial-basic.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2182 +#: ../src/verbs.cpp:2179 msgid "tutorial-shapes.svg" msgstr "tutorial-shapes.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2186 +#: ../src/verbs.cpp:2183 msgid "tutorial-advanced.svg" msgstr "tutorial-advanced.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2192 +#: ../src/verbs.cpp:2189 msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.svg" -#: ../src/verbs.cpp:2197 +#: ../src/verbs.cpp:2194 msgid "tutorial-tracing-pixelart.svg" msgstr "tutorial-tracing-pixelart.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2201 +#: ../src/verbs.cpp:2198 msgid "tutorial-calligraphy.svg" msgstr "tutorial-calligraphy.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2205 +#: ../src/verbs.cpp:2202 msgid "tutorial-interpolate.svg" msgstr "tutorial-interpolate.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2209 +#: ../src/verbs.cpp:2206 msgid "tutorial-elements.svg" msgstr "tutorial-elements.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2213 +#: ../src/verbs.cpp:2210 msgid "tutorial-tips.svg" msgstr "tutorial-tips.svg" -#: ../src/verbs.cpp:2399 ../src/verbs.cpp:3015 +#: ../src/verbs.cpp:2396 ../src/verbs.cpp:3012 msgid "Unlock all objects in the current layer" msgstr "Розблокувати усі об'єкти у поточному шарі" -#: ../src/verbs.cpp:2403 ../src/verbs.cpp:3017 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:3014 msgid "Unlock all objects in all layers" msgstr "Розблокувати усі об'єкти в усіх шарах" -#: ../src/verbs.cpp:2407 ../src/verbs.cpp:3019 +#: ../src/verbs.cpp:2404 ../src/verbs.cpp:3016 msgid "Unhide all objects in the current layer" msgstr "Розблокувати усі об'єкти у поточному шарі" -#: ../src/verbs.cpp:2411 ../src/verbs.cpp:3021 +#: ../src/verbs.cpp:2408 ../src/verbs.cpp:3018 msgid "Unhide all objects in all layers" msgstr "Показати усі об'єкти в усіх шарах" -#: ../src/verbs.cpp:2426 +#: ../src/verbs.cpp:2423 msgctxt "Verb" msgid "None" msgstr "Немає" -#: ../src/verbs.cpp:2426 +#: ../src/verbs.cpp:2423 msgid "Does nothing" msgstr "Немає дій" #. File #. Tag -#: ../src/verbs.cpp:2429 ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2426 ../src/verbs.cpp:2728 msgid "_New" msgstr "_Створити" -#: ../src/verbs.cpp:2429 +#: ../src/verbs.cpp:2426 msgid "Create new document from the default template" msgstr "Створити новий документ зі стандартного шаблону" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2428 msgid "_Open..." msgstr "_Відкрити…" -#: ../src/verbs.cpp:2432 +#: ../src/verbs.cpp:2429 msgid "Open an existing document" msgstr "Відкрити існуючий документ" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2430 msgid "Re_vert" msgstr "Від_новити" -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2431 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "Відновити останню збережену версію документа (зміни будуть втрачені)" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2432 msgid "Save document" msgstr "Зберегти документ" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2434 msgid "Save _As..." msgstr "Зберегти _як…" -#: ../src/verbs.cpp:2438 +#: ../src/verbs.cpp:2435 msgid "Save document under a new name" msgstr "Зберегти документ під іншою назвою" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2436 msgid "Save a Cop_y..." msgstr "Зберегти _копію…" -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2437 msgid "Save a copy of the document under a new name" msgstr "Зберегти копію документа під іншою назвою" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2438 msgid "_Print..." msgstr "Над_рукувати…" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2438 msgid "Print document" msgstr "Надрукувати документ" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2444 +#: ../src/verbs.cpp:2441 msgid "Clean _up document" msgstr "О_чистити документ" -#: ../src/verbs.cpp:2444 +#: ../src/verbs.cpp:2441 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" @@ -26194,145 +26399,145 @@ msgstr "" "Прибрати непотрібні визначення (наприклад, градієнти чи вирізання) з <" "defs> документа" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2443 msgid "_Import..." msgstr "_Імпортувати…" -#: ../src/verbs.cpp:2447 +#: ../src/verbs.cpp:2444 msgid "Import a bitmap or SVG image into this document" msgstr "Імпортувати зображення (растрове чи SVG) до документа" #. 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:2449 +#: ../src/verbs.cpp:2446 msgid "Import Clip Art..." msgstr "_Імпортувати шаблон…" -#: ../src/verbs.cpp:2450 +#: ../src/verbs.cpp:2447 msgid "Import clipart from Open Clip Art Library" msgstr "Імпортувати шаблон з бібліотеки Open Clip Art" #. 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:2452 +#: ../src/verbs.cpp:2449 msgid "N_ext Window" msgstr "_Наступне вікно" -#: ../src/verbs.cpp:2453 +#: ../src/verbs.cpp:2450 msgid "Switch to the next document window" msgstr "Перейти до наступного вікна документа" -#: ../src/verbs.cpp:2454 +#: ../src/verbs.cpp:2451 msgid "P_revious Window" msgstr "_Попереднє вікно" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2452 msgid "Switch to the previous document window" msgstr "Перейти до попереднього вікна документа" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2453 msgid "_Close" msgstr "_Закрити" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2454 msgid "Close this document window" msgstr "Закрити це вікно документа" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2455 msgid "_Quit" msgstr "Ви_йти" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2455 msgid "Quit Inkscape" msgstr "Вийти з Inkscape" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2456 msgid "New from _Template..." msgstr "Створити з _шаблона…" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2457 msgid "Create new project from template" msgstr "Створити новий проект на основі шаблону" -#: ../src/verbs.cpp:2463 +#: ../src/verbs.cpp:2460 msgid "Undo last action" msgstr "Скасувати останню операцію" -#: ../src/verbs.cpp:2466 +#: ../src/verbs.cpp:2463 msgid "Do again the last undone action" msgstr "Повторити останню скасовану дію" -#: ../src/verbs.cpp:2467 +#: ../src/verbs.cpp:2464 msgid "Cu_t" msgstr "_Вирізати" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2465 msgid "Cut selection to clipboard" msgstr "Вирізати позначені об'єкти у буфер обміну" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2466 msgid "_Copy" msgstr "_Копіювати" -#: ../src/verbs.cpp:2470 +#: ../src/verbs.cpp:2467 msgid "Copy selection to clipboard" msgstr "Скопіювати позначені об'єкти у буфер обміну" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2468 msgid "_Paste" msgstr "Вст_авити" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2469 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "Вставити об'єкти з буферу обміну або текст у позицію курсора миші" -#: ../src/verbs.cpp:2473 +#: ../src/verbs.cpp:2470 msgid "Paste _Style" msgstr "Вставити _стиль" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2471 msgid "Apply the style of the copied object to selection" msgstr "Застосувати стиль скопійованого об'єкта до позначених об'єктів" -#: ../src/verbs.cpp:2476 +#: ../src/verbs.cpp:2473 msgid "Scale selection to match the size of the copied object" msgstr "" "Зміна масштабу позначених об'єктів з метою задовольнити розміру копійованого " "об'єкта" -#: ../src/verbs.cpp:2477 +#: ../src/verbs.cpp:2474 msgid "Paste _Width" msgstr "Вставити _ширину" -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2475 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" "Змінити масштаб позначених об'єктів за горизонтальним розміром з метою " "відповідності ширині копійованого об'єкта" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2476 msgid "Paste _Height" msgstr "Вставити _висоту" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2477 msgid "Scale selection vertically to match the height of the copied object" msgstr "" "Змінити масштаб позначених об'єктів за вертикальним розміром з метою " "відповідності висоті копійованого об'єкта" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2478 msgid "Paste Size Separately" msgstr "Вставити розмір окремо" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2479 msgid "Scale each selected object to match the size of the copied object" msgstr "" "Змінити кожного позначеного об'єкта з метою відповідності розміру " "копійованого об'єкта" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2480 msgid "Paste Width Separately" msgstr "Вставити ширину окремо" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2481 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" @@ -26340,11 +26545,11 @@ msgstr "" "Змінити масштаб кожного позначеного об'єкта за горизонтальним розміром з " "метою відповідності ширині копійованого об'єкта" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2482 msgid "Paste Height Separately" msgstr "Вставити висоту окремо" -#: ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2483 msgid "" "Scale each selected object vertically to match the height of the copied " "object" @@ -26352,67 +26557,67 @@ msgstr "" "Змінити масштаб кожного позначеного об'єкта за вертикальним розміром з метою " "відповідності висоті копійованого об'єкта" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2484 msgid "Paste _In Place" msgstr "Вставити на _місце" -#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2485 msgid "Paste objects from clipboard to the original location" msgstr "Вставити об'єкти з буфера у місце, де вони були раніше" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2486 msgid "Paste Path _Effect" msgstr "Вставити _ефект контуру" -#: ../src/verbs.cpp:2490 +#: ../src/verbs.cpp:2487 msgid "Apply the path effect of the copied object to selection" msgstr "Застосувати ефект контуру скопійованого об'єкта до позначених об'єктів" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2488 msgid "Remove Path _Effect" msgstr "Вилучити _ефект контуру" -#: ../src/verbs.cpp:2492 +#: ../src/verbs.cpp:2489 msgid "Remove any path effects from selected objects" msgstr "Вилучити всі ефекти контурів з позначених об'єктів" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2490 msgid "_Remove Filters" msgstr "В_илучити фільтри" -#: ../src/verbs.cpp:2494 +#: ../src/verbs.cpp:2491 msgid "Remove any filters from selected objects" msgstr "Вилучити всі наслідки застосування фільтрів з позначених об'єктів" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2492 msgid "_Delete" msgstr "В_илучити" -#: ../src/verbs.cpp:2496 +#: ../src/verbs.cpp:2493 msgid "Delete selection" msgstr "Вилучити позначені об'єкти" -#: ../src/verbs.cpp:2497 +#: ../src/verbs.cpp:2494 msgid "Duplic_ate" msgstr "_Дублювати" -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2495 msgid "Duplicate selected objects" msgstr "Дублювати позначені об'єкти" -#: ../src/verbs.cpp:2499 +#: ../src/verbs.cpp:2496 msgid "Create Clo_ne" msgstr "Створити к_лон" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2497 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "Створити клон (копію, пов'язану з оригіналом) позначеного об'єкта" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2498 msgid "Unlin_k Clone" msgstr "В_ід'єднати клон" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2499 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" @@ -26420,29 +26625,29 @@ msgstr "" "Вирізати вибрані посилання клонів на оригінали з перетворенням їх на окремі " "об'єкти" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2500 msgid "Relink to Copied" msgstr "Перез'єднати з копійованим" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2501 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" "Перез'єднати вибрані клони з об'єктом, який зараз перебуває у буфері обміну " "даними" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2502 msgid "Select _Original" msgstr "Позначити о_ригінал" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2503 msgid "Select the object to which the selected clone is linked" msgstr "Позначити об'єкт, з яким пов'язаний вибраний клон" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2504 msgid "Clone original path (LPE)" msgstr "Клонувати початковий контур (геометрично)" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2505 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" @@ -26450,19 +26655,19 @@ msgstr "" "Створює новий контур, застосовує геометричне перетворення клонування " "початкового контуру і пов'язує його з вибраним контуром" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2506 msgid "Objects to _Marker" msgstr "Об'єкти у _маркер" -#: ../src/verbs.cpp:2510 +#: ../src/verbs.cpp:2507 msgid "Convert selection to a line marker" msgstr "Перетворити вибране на маркер лінії" -#: ../src/verbs.cpp:2511 +#: ../src/verbs.cpp:2508 msgid "Objects to Gu_ides" msgstr "Об'єкти у на_прямні" -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2509 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" @@ -26470,92 +26675,92 @@ msgstr "" "Перетворити вибрані об'єкти на декілька напрямних, вирівняних за краями " "об'єктів" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2510 msgid "Objects to Patter_n" msgstr "О_б'єкти у візерунок" -#: ../src/verbs.cpp:2514 +#: ../src/verbs.cpp:2511 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "Перетворити позначені об'єкти у прямокутник, заповнений візерунком" -#: ../src/verbs.cpp:2515 +#: ../src/verbs.cpp:2512 msgid "Pattern to _Objects" msgstr "_Візерунок у об'єкти" -#: ../src/verbs.cpp:2516 +#: ../src/verbs.cpp:2513 msgid "Extract objects from a tiled pattern fill" msgstr "Витягнути об'єкти з текстурного заповнення" -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2514 msgid "Group to Symbol" msgstr "Групу на символ" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2515 msgid "Convert group to a symbol" msgstr "Перетворити групу на символ" -#: ../src/verbs.cpp:2519 +#: ../src/verbs.cpp:2516 msgid "Symbol to Group" msgstr "Символ у групу" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2517 msgid "Extract group from a symbol" msgstr "Видобути групу з символу" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2518 msgid "Clea_r All" msgstr "О_чистити все" -#: ../src/verbs.cpp:2522 +#: ../src/verbs.cpp:2519 msgid "Delete all objects from document" msgstr "Вилучити усі об'єкти з документа" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2520 msgid "Select Al_l" msgstr "Поз_начити все" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2521 msgid "Select all objects or all nodes" msgstr "Позначити всі об'єкти чи всі вузли" -#: ../src/verbs.cpp:2525 +#: ../src/verbs.cpp:2522 msgid "Select All in All La_yers" msgstr "Позначити все в усіх _шарах" -#: ../src/verbs.cpp:2526 +#: ../src/verbs.cpp:2523 msgid "Select all objects in all visible and unlocked layers" msgstr "Позначити усі об'єкти в усіх видимих та розблокованих шарах" -#: ../src/verbs.cpp:2527 +#: ../src/verbs.cpp:2524 msgid "Fill _and Stroke" msgstr "Заповнення _та штрих" -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2525 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "Позначити всі об'єкти з тим самим заповненням та штрихом" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2526 msgid "_Fill Color" msgstr "За_повнити кольором" -#: ../src/verbs.cpp:2530 +#: ../src/verbs.cpp:2527 msgid "Select all objects with the same fill as the selected objects" msgstr "Позначити всі об'єкти з тим самим заповненням" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2528 msgid "_Stroke Color" msgstr "Колір _штриха" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2529 msgid "Select all objects with the same stroke as the selected objects" msgstr "Позначити всі об'єкти з тим самим штрихом" -#: ../src/verbs.cpp:2533 +#: ../src/verbs.cpp:2530 msgid "Stroke St_yle" msgstr "С_тиль штриха" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2531 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" @@ -26563,11 +26768,11 @@ msgstr "" "Позначити всі об'єкти з тим самим типом штриха (товщиною, рисками, " "позначками)" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2532 msgid "_Object Type" msgstr "Тип _об'єкта" -#: ../src/verbs.cpp:2536 +#: ../src/verbs.cpp:2533 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" @@ -26575,164 +26780,172 @@ msgstr "" "Позначити всі об'єкти з тим самим типом об'єкта (прямокутник, дуга, текст, " "контур, растрове зображення тощо), що і позначені об'єкти" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2534 msgid "In_vert Selection" msgstr "_Інвертувати позначення" -#: ../src/verbs.cpp:2538 +#: ../src/verbs.cpp:2535 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" "Інвертувати позначення (зняти позначення з позначеного та позначити решту)" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2536 msgid "Invert in All Layers" msgstr "Інвертувати в усіх шарах" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2537 msgid "Invert selection in all visible and unlocked layers" msgstr "Інвертувати позначення в усіх видимих та незаблокованих шарах" -#: ../src/verbs.cpp:2541 +#: ../src/verbs.cpp:2538 msgid "Select Next" msgstr "Обрати наступний" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2539 msgid "Select next object or node" msgstr "Обрати наступний об'єкт або вузол" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2540 msgid "Select Previous" msgstr "Обрати попереднє" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2541 msgid "Select previous object or node" msgstr "Обрати попередній об'єкт чи вузол" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2542 msgid "D_eselect" msgstr "Зн_яти позначення" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2543 msgid "Deselect any selected objects or nodes" msgstr "Зняти позначення з усіх об'єктів чи вузлів" -#: ../src/verbs.cpp:2548 +#: ../src/verbs.cpp:2545 msgid "Delete all the guides in the document" msgstr "Вилучити усі напрямні у документі" -#: ../src/verbs.cpp:2549 +#: ../src/verbs.cpp:2546 msgid "Lock All Guides" msgstr "Заблокувати усі напрямні" -#: ../src/verbs.cpp:2549 ../src/widgets/desktop-widget.cpp:402 +#: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:402 msgid "Toggle lock of all guides in the document" msgstr "Увімкнути або вимкнути блокування усіх напрямних у документі" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2547 msgid "Create _Guides Around the Page" msgstr "Створити _напрямні навколо сторінки" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2548 msgid "Create four guides aligned with the page borders" msgstr "Створити чотири напрямні за краями сторінки" -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2549 msgid "Next path effect parameter" msgstr "Наступний параметр ефекту контуру" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2550 msgid "Show next editable path effect parameter" msgstr "Показати наступний придатний до редагування параметр ефекту контуру" #. Selection -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2553 msgid "Raise to _Top" msgstr "Підняти на п_ередній план" -#: ../src/verbs.cpp:2557 +#: ../src/verbs.cpp:2554 msgid "Raise selection to top" msgstr "Підняти позначені об'єкти на передній план" -#: ../src/verbs.cpp:2558 +#: ../src/verbs.cpp:2555 msgid "Lower to _Bottom" msgstr "Опустити на з_адній план" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2556 msgid "Lower selection to bottom" msgstr "Опустити позначені об'єкти на задній план" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2557 msgid "_Raise" msgstr "_Підняти" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2558 msgid "Raise selection one step" msgstr "Підняти позначені об'єкти на один рівень" -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2559 msgid "_Lower" msgstr "_Опустити" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2560 msgid "Lower selection one step" msgstr "Опустити позначені об'єкти на один рівень" -#: ../src/verbs.cpp:2565 +#: ../src/verbs.cpp:2562 msgid "Group selected objects" msgstr "Згрупувати позначені об'єкти" -#: ../src/verbs.cpp:2567 +#: ../src/verbs.cpp:2564 msgid "Ungroup selected groups" msgstr "Розгрупувати позначені групи" -#: ../src/verbs.cpp:2569 +#: ../src/verbs.cpp:2565 +msgid "_Pop selected objects out of group" +msgstr "Ви_ключити позначені об’єкти з групи" + +#: ../src/verbs.cpp:2566 +msgid "Pop selected objects out of group" +msgstr "Виключити позначені об’єкти з групи" + +#: ../src/verbs.cpp:2568 msgid "_Put on Path" msgstr "_Розмістити по контуру" -#: ../src/verbs.cpp:2571 +#: ../src/verbs.cpp:2570 msgid "_Remove from Path" msgstr "Відокрем_ити від контуру" -#: ../src/verbs.cpp:2573 +#: ../src/verbs.cpp:2572 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:2576 +#: ../src/verbs.cpp:2575 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" "Вилучити з текстового об'єкта усі додані вручну повороти кернів та гліфів" -#: ../src/verbs.cpp:2578 +#: ../src/verbs.cpp:2577 msgid "_Union" msgstr "С_ума" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2578 msgid "Create union of selected paths" msgstr "Створення об'єднання позначених контурів" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2579 msgid "_Intersection" msgstr "_Перетин" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2580 msgid "Create intersection of selected paths" msgstr "Створення перетину позначених контурів" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2581 msgid "_Difference" msgstr "Р_ізниця" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2582 msgid "Create difference of selected paths (bottom minus top)" msgstr "Створення різниці позначених контурів (низ мінус верх)" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2583 msgid "E_xclusion" msgstr "Виключне _АБО" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2584 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" @@ -26740,21 +26953,21 @@ msgstr "" "Створити контур шляхом виключного АБО з позначених контурів (ті частини, що " "належать тільки одному з контурів)" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2585 msgid "Di_vision" msgstr "_Ділення" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2586 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:2590 +#: ../src/verbs.cpp:2589 msgid "Cut _Path" msgstr "Розрізати _контур" -#: ../src/verbs.cpp:2591 +#: ../src/verbs.cpp:2590 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" "Розрізати штрих нижнього контуру верхнім на частини, з вилученням заповнення" @@ -26762,357 +26975,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:2595 +#: ../src/verbs.cpp:2594 msgid "Outs_et" msgstr "Ро_зтягнути" -#: ../src/verbs.cpp:2596 +#: ../src/verbs.cpp:2595 msgid "Outset selected paths" msgstr "Розтягнути позначені контури" -#: ../src/verbs.cpp:2598 +#: ../src/verbs.cpp:2597 msgid "O_utset Path by 1 px" msgstr "Р_озтягнути на 1 точку" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2598 msgid "Outset selected paths by 1 px" msgstr "Розтягнути позначені контури на 1 точку" -#: ../src/verbs.cpp:2601 +#: ../src/verbs.cpp:2600 msgid "O_utset Path by 10 px" msgstr "Р_озтягнути на 10 точок" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2601 msgid "Outset selected paths by 10 px" msgstr "Розтягнути позначені контури на 10 точок" #. 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:2606 +#: ../src/verbs.cpp:2605 msgid "I_nset" msgstr "В_тягнути" -#: ../src/verbs.cpp:2607 +#: ../src/verbs.cpp:2606 msgid "Inset selected paths" msgstr "Втягнути позначені контури" -#: ../src/verbs.cpp:2609 +#: ../src/verbs.cpp:2608 msgid "I_nset Path by 1 px" msgstr "Вт_ягнути контур на 1 точку" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2609 msgid "Inset selected paths by 1 px" msgstr "Втягнути позначені контури на 1 точку" -#: ../src/verbs.cpp:2612 +#: ../src/verbs.cpp:2611 msgid "I_nset Path by 10 px" msgstr "Вт_ягнути контур на 10 точок" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2612 msgid "Inset selected paths by 10 px" msgstr "Втягнути позначені контури на 10 точок" -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2614 msgid "D_ynamic Offset" msgstr "Д_инамічний відступ" -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2614 msgid "Create a dynamic offset object" msgstr "" "Створити об'єкт, втягування/розтягування якого можна змінювати динамічно" -#: ../src/verbs.cpp:2617 +#: ../src/verbs.cpp:2616 msgid "_Linked Offset" msgstr "Зв'_язане втягування" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2617 msgid "Create a dynamic offset object linked to the original path" msgstr "" "Створити втягування/розтягування, динамічно пов'язане з початковим контуром" -#: ../src/verbs.cpp:2620 +#: ../src/verbs.cpp:2619 msgid "_Stroke to Path" msgstr "_Штрих у контур" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2620 msgid "Convert selected object's stroke to paths" msgstr "Перетворити штрих позначеного об'єкта на контури" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2621 msgid "Si_mplify" msgstr "_Спростити" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2622 msgid "Simplify selected paths (remove extra nodes)" msgstr "Спростити позначені контури вилученням зайвих вузлів" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2623 msgid "_Reverse" msgstr "Роз_вернути" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2624 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" "Змінити напрямок позначених контурів на протилежний (корисно для " "віддзеркалення маркерів)" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2629 msgid "Create one or more paths from a bitmap by tracing it" msgstr "" "Створення одного або більше контурів з растрового файла шляхом трасування" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2632 msgid "Trace Pixel Art..." msgstr "Трасування растрової графіки…" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2633 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" "Створити контури за алгоритмом Копфа-Ліщинського для векторизації растрової " "графіки" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2634 msgid "Make a _Bitmap Copy" msgstr "З_робити растрову копію" -#: ../src/verbs.cpp:2636 +#: ../src/verbs.cpp:2635 msgid "Export selection to a bitmap and insert it into document" msgstr "Експортувати позначені об'єкти у растр та вставити його у документ" -#: ../src/verbs.cpp:2637 +#: ../src/verbs.cpp:2636 msgid "_Combine" msgstr "Об'_єднати" -#: ../src/verbs.cpp:2638 +#: ../src/verbs.cpp:2637 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:2641 +#: ../src/verbs.cpp:2640 msgid "Break _Apart" msgstr "_Розділити" -#: ../src/verbs.cpp:2642 +#: ../src/verbs.cpp:2641 msgid "Break selected paths into subpaths" msgstr "Розділити позначені контури на частини" -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2642 msgid "_Arrange..." msgstr "_Компонувати…" -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2643 msgid "Arrange selected objects in a table or circle" msgstr "Компонувати позначені об'єкти у формі таблиці або за колом" #. Layer -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2645 msgid "_Add Layer..." msgstr "_Додати шар…" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2646 msgid "Create a new layer" msgstr "Створити новий шар" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2647 msgid "Re_name Layer..." msgstr "Пере_йменувати шар…" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2648 msgid "Rename the current layer" msgstr "Перейменувати поточний шар" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2649 msgid "Switch to Layer Abov_e" msgstr "Перейти на шар _вище" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2650 msgid "Switch to the layer above the current" msgstr "Перейти на шар, що знаходиться вище від поточного" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2651 msgid "Switch to Layer Belo_w" msgstr "Перейти на шар _нижче" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2652 msgid "Switch to the layer below the current" msgstr "Перейти на шар, що знаходиться нижче від поточного" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2653 msgid "Move Selection to Layer Abo_ve" msgstr "Перемістити позначені об'єкти на шар ви_ще" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2654 msgid "Move selection to the layer above the current" msgstr "Перемістити на шар, що знаходиться над поточним" -#: ../src/verbs.cpp:2656 +#: ../src/verbs.cpp:2655 msgid "Move Selection to Layer Bel_ow" msgstr "Перемістити на шар ни_жче" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2656 msgid "Move selection to the layer below the current" msgstr "Перемістити на шар, що знаходиться під поточним" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2657 msgid "Move Selection to Layer..." msgstr "Пересунути позначене до шару…" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2659 msgid "Layer to _Top" msgstr "Підняти шар до_гори" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2660 msgid "Raise the current layer to the top" msgstr "Підняти поточний шар догори" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2661 msgid "Layer to _Bottom" msgstr "Опустити шар в _основу" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2662 msgid "Lower the current layer to the bottom" msgstr "Опустити поточний шар на найнижчий рівень" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2663 msgid "_Raise Layer" msgstr "_Підняти шар" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2664 msgid "Raise the current layer" msgstr "Підняти поточний шар" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2665 msgid "_Lower Layer" msgstr "_Опустити шар" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2666 msgid "Lower the current layer" msgstr "Опустити поточний шар" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2667 msgid "D_uplicate Current Layer" msgstr "Д_ублювати поточний шар" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2668 msgid "Duplicate an existing layer" msgstr "Дублювати поточний шар" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2669 msgid "_Delete Current Layer" msgstr "В_илучити поточний шар" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2670 msgid "Delete the current layer" msgstr "Вилучити поточний шар" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2671 msgid "_Show/hide other layers" msgstr "_Показати або сховати інші шари" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2672 msgid "Solo the current layer" msgstr "Виокремити поточний шар" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2673 msgid "_Show all layers" msgstr "По_казати всі шари" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2674 msgid "Show all the layers" msgstr "Показати всі шари" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2675 msgid "_Hide all layers" msgstr "При_ховати всі шари" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2676 msgid "Hide all the layers" msgstr "Приховати всі шари" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2677 msgid "_Lock all layers" msgstr "За_блокувати всі шари" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2678 msgid "Lock all the layers" msgstr "Заблокувати всі шари" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2679 msgid "Lock/Unlock _other layers" msgstr "Заблокувати чи розблокувати ін_ші шари" -#: ../src/verbs.cpp:2681 +#: ../src/verbs.cpp:2680 msgid "Lock all the other layers" msgstr "Заблокувати всі інші шари" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2681 msgid "_Unlock all layers" msgstr "_Розблокувати всі шари" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2682 msgid "Unlock all the layers" msgstr "Розблокувати всі шари" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2683 msgid "_Lock/Unlock Current Layer" msgstr "За_блокувати чи розблокувати поточний шар" -#: ../src/verbs.cpp:2685 +#: ../src/verbs.cpp:2684 msgid "Toggle lock on current layer" msgstr "Заблокувати або розблокувати поточний шар" -#: ../src/verbs.cpp:2686 +#: ../src/verbs.cpp:2685 msgid "_Show/hide Current Layer" msgstr "_Показати або сховати поточний шар" -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2686 msgid "Toggle visibility of current layer" msgstr "Увімкнути/Вимкнути видимість поточного шару" #. Object -#: ../src/verbs.cpp:2690 +#: ../src/verbs.cpp:2689 msgid "Rotate _90° CW" msgstr "Обернути на _90° за годинниковою стрілкою" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2693 +#: ../src/verbs.cpp:2692 msgid "Rotate selection 90° clockwise" msgstr "Обернути позначені об'єкти на 90° за годинниковою стрілкою" -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2693 msgid "Rotate 9_0° CCW" msgstr "Обернути на 9_0° проти годинникової стрілки" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2696 msgid "Rotate selection 90° counter-clockwise" msgstr "Обернути позначені об'єкти на 90° проти годинникової стрілки" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2697 msgid "Remove _Transformations" msgstr "Прибрати _трансформацію" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2698 msgid "Remove transformations from object" msgstr "Прибрати трансформації з об'єкта" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2699 msgid "_Object to Path" msgstr "_Об'єкт у контур" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2700 msgid "Convert selected object to path" msgstr "Перетворити позначений об'єкт на контур" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2701 msgid "_Flow into Frame" msgstr "_Огорнути в рамку" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2702 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" @@ -27120,746 +27333,746 @@ msgstr "" "Вкласти текст у рамку (контур чи форму), створивши контурний текст " "прив'язаний до об'єкта рамки" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2703 msgid "_Unflow" msgstr "_Вийняти з рамки" -#: ../src/verbs.cpp:2705 +#: ../src/verbs.cpp:2704 msgid "Remove text from frame (creates a single-line text object)" msgstr "Вийняти тест з рамки, створивши звичайний тестовий об'єкт в один рядок" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2705 msgid "_Convert to Text" msgstr "_Перетворити у текст" -#: ../src/verbs.cpp:2707 +#: ../src/verbs.cpp:2706 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "Перетворити контурний текст у звичайний текст (із збереженням вигляду)" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2708 msgid "Flip _Horizontal" msgstr "Віддзеркалити гор_изонтально" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2708 msgid "Flip selected objects horizontally" msgstr "Віддзеркалити позначені об'єкти горизонтально" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2711 msgid "Flip _Vertical" msgstr "Віддзеркалити _вертикально" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2711 msgid "Flip selected objects vertically" msgstr "Віддзеркалити позначені об'єкти вертикально" -#: ../src/verbs.cpp:2715 +#: ../src/verbs.cpp:2714 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" "Застосувати маску до позначених об'єктів (використовуючи найвищий об'єкт як " "маску)" -#: ../src/verbs.cpp:2717 +#: ../src/verbs.cpp:2716 msgid "Edit mask" msgstr "Змінити маску" -#: ../src/verbs.cpp:2718 ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2717 ../src/verbs.cpp:2725 msgid "_Release" msgstr "_Скинути" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2718 msgid "Remove mask from selection" msgstr "Вилучити маску з позначеного" -#: ../src/verbs.cpp:2721 +#: ../src/verbs.cpp:2720 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" "Застосувати контур-обгортку до позначених об'єктів (використовуючи найвищий " "об'єкт як контур-обгортку)" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2721 msgid "Create Cl_ip Group" msgstr "Створити групу-обгор_тку" -#: ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2722 msgid "Creates a clip group using the selected objects as a base" msgstr "Створити групу-обгортку на основі позначених об’єктів" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:2724 msgid "Edit clipping path" msgstr "Змінити контур-обгортку" -#: ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:2726 msgid "Remove clipping path from selection" msgstr "Вилучити контур-обгортку з позначених об'єктів'" #. Tools -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2731 msgctxt "ContextVerb" msgid "Select" msgstr "Позначення" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2732 msgid "Select and transform objects" msgstr "Позначення та трансформація об'єктів" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2733 msgctxt "ContextVerb" msgid "Node Edit" msgstr "Редактор вузлів" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2734 msgid "Edit paths by nodes" msgstr "Редагування контурів за вузлами" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2735 msgctxt "ContextVerb" msgid "Tweak" msgstr "Корекція" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2736 msgid "Tweak objects by sculpting or painting" msgstr "Коригувати об'єкти за допомогою профілювання або розфарбовування" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2737 msgctxt "ContextVerb" msgid "Spray" msgstr "Розкидання" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2738 msgid "Spray objects by sculpting or painting" msgstr "Розкидати об'єкти за допомогою профілювання або розфарбовування" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2739 msgctxt "ContextVerb" msgid "Rectangle" msgstr "Прямокутник" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2740 msgid "Create rectangles and squares" msgstr "Створення прямокутників та квадратів" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2741 msgctxt "ContextVerb" msgid "3D Box" msgstr "Просторовий об'єкт" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2742 msgid "Create 3D boxes" msgstr "Створити тривимірні об'єкти" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2743 msgctxt "ContextVerb" msgid "Ellipse" msgstr "Еліпс" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2744 msgid "Create circles, ellipses, and arcs" msgstr "Створення кіл, еліпсів та дуг" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2745 msgctxt "ContextVerb" msgid "Star" msgstr "Зірка" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2746 msgid "Create stars and polygons" msgstr "Створення зірок та багатокутників" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2747 msgctxt "ContextVerb" msgid "Spiral" msgstr "Спіраль" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2748 msgid "Create spirals" msgstr "Створення спіралей" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2749 msgctxt "ContextVerb" msgid "Pencil" msgstr "Олівець" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2750 msgid "Draw freehand lines" msgstr "Малювання довільних контурів" -#: ../src/verbs.cpp:2752 +#: ../src/verbs.cpp:2751 msgctxt "ContextVerb" msgid "Pen" msgstr "Перо" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2752 msgid "Draw Bezier curves and straight lines" msgstr "Малювання кривих Безьє чи прямих ліній" -#: ../src/verbs.cpp:2754 +#: ../src/verbs.cpp:2753 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "Каліграфія" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2754 msgid "Draw calligraphic or brush strokes" msgstr "Малювати каліграфічним пером або пензлем" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2756 msgid "Create and edit text objects" msgstr "Створення та зміна текстових об'єктів" -#: ../src/verbs.cpp:2758 +#: ../src/verbs.cpp:2757 msgctxt "ContextVerb" msgid "Gradient" msgstr "Градієнт" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2758 msgid "Create and edit gradients" msgstr "Створення та зміна градієнтів" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2759 msgctxt "ContextVerb" msgid "Mesh" msgstr "Сітка" -#: ../src/verbs.cpp:2761 +#: ../src/verbs.cpp:2760 msgid "Create and edit meshes" msgstr "Створення та зміна сіток" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2761 msgctxt "ContextVerb" msgid "Zoom" msgstr "Масштаб" -#: ../src/verbs.cpp:2763 +#: ../src/verbs.cpp:2762 msgid "Zoom in or out" msgstr "Змінити масштаб" -#: ../src/verbs.cpp:2765 +#: ../src/verbs.cpp:2764 msgid "Measurement tool" msgstr "Інструмент вимірювання" -#: ../src/verbs.cpp:2766 +#: ../src/verbs.cpp:2765 msgctxt "ContextVerb" msgid "Dropper" msgstr "Піпетка" -#: ../src/verbs.cpp:2768 +#: ../src/verbs.cpp:2767 msgctxt "ContextVerb" msgid "Connector" msgstr "Лінія з'єднання" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2768 msgid "Create diagram connectors" msgstr "Створити лінії з'єднання на діаграмі" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2771 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "Відро з фарбою" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2772 msgid "Fill bounded areas" msgstr "Заповнити замкнені області" -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2775 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "Редагування геометричних побудов" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2776 msgid "Edit Path Effect parameters" msgstr "Змінити параметри ефекту контуру" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2777 msgctxt "ContextVerb" msgid "Eraser" msgstr "Гумка" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2778 msgid "Erase existing paths" msgstr "Витерти існуючі контури" -#: ../src/verbs.cpp:2780 +#: ../src/verbs.cpp:2779 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "Інструмент геометричної побудови" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2780 msgid "Do geometric constructions" msgstr "Виконати геометричну побудову" #. Tool prefs -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2782 msgid "Selector Preferences" msgstr "Параметри селектора" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2783 msgid "Open Preferences for the Selector tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента позначення" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2784 msgid "Node Tool Preferences" msgstr "Параметри редактора вузлів" -#: ../src/verbs.cpp:2786 +#: ../src/verbs.cpp:2785 msgid "Open Preferences for the Node tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Редактор вузлів»" -#: ../src/verbs.cpp:2787 +#: ../src/verbs.cpp:2786 msgid "Tweak Tool Preferences" msgstr "Параметри інструмента «Корекція»" -#: ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2787 msgid "Open Preferences for the Tweak tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Корекція»" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2788 msgid "Spray Tool Preferences" msgstr "Параметри інструмента «Розкидання»" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2789 msgid "Open Preferences for the Spray tool" msgstr "Відкрити вікно параметрів для інструмента «Розкидання»" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2790 msgid "Rectangle Preferences" msgstr "Параметри прямокутника" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2791 msgid "Open Preferences for the Rectangle tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Прямокутник»" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2792 msgid "3D Box Preferences" msgstr "Параметри просторового об'єкта" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2793 msgid "Open Preferences for the 3D Box tool" msgstr "" "Відкрити вікно параметрів Inkscape для інструмента «Просторовий об'єкт»" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2794 msgid "Ellipse Preferences" msgstr "Параметри еліпса" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2795 msgid "Open Preferences for the Ellipse tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Еліпс»" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2796 msgid "Star Preferences" msgstr "Властивості зірки" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2797 msgid "Open Preferences for the Star tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Зірка»" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2798 msgid "Spiral Preferences" msgstr "Властивості спіралі" -#: ../src/verbs.cpp:2800 +#: ../src/verbs.cpp:2799 msgid "Open Preferences for the Spiral tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Спіраль»" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2800 msgid "Pencil Preferences" msgstr "Параметри олівця" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2801 msgid "Open Preferences for the Pencil tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Олівець»" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2802 msgid "Pen Preferences" msgstr "Параметри пера" -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2803 msgid "Open Preferences for the Pen tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Перо»" -#: ../src/verbs.cpp:2805 +#: ../src/verbs.cpp:2804 msgid "Calligraphic Preferences" msgstr "Параметри каліграфічного пера" -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2805 msgid "Open Preferences for the Calligraphy tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Каліграфічне перо»" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2806 msgid "Text Preferences" msgstr "Параметри тексту" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2807 msgid "Open Preferences for the Text tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Текст»" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2808 msgid "Gradient Preferences" msgstr "Параметри градієнта" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2809 msgid "Open Preferences for the Gradient tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Градієнт»" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2810 msgid "Mesh Preferences" msgstr "Параметри сітки" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2811 msgid "Open Preferences for the Mesh tool" msgstr "Відкрити вікно параметрів для інструмента «Сітка»" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2812 msgid "Zoom Preferences" msgstr "Параметри масштабу" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2813 msgid "Open Preferences for the Zoom tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Масштаб»" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2814 msgid "Measure Preferences" msgstr "Властивості вимірювання" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2815 msgid "Open Preferences for the Measure tool" msgstr "Відкрити вікно параметрів для інструмента «Вимірювання»" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2816 msgid "Dropper Preferences" msgstr "Параметри піпетки" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2817 msgid "Open Preferences for the Dropper tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Піпетка»" -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2818 msgid "Connector Preferences" msgstr "Параметри лінії з'єднання" -#: ../src/verbs.cpp:2820 +#: ../src/verbs.cpp:2819 msgid "Open Preferences for the Connector tool" msgstr "Відкрити вікно параметрів Inkscape для інструмента «Лінії з'єднання»" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2822 msgid "Paint Bucket Preferences" msgstr "Параметри відра з фарбою" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2823 msgid "Open Preferences for the Paint Bucket tool" msgstr "Відкрити параметри для інструмента «Відро з фарбою»" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2826 msgid "Eraser Preferences" msgstr "Властивості гумки" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2827 msgid "Open Preferences for the Eraser tool" msgstr "Відкрити вікно параметрів для інструмента «Гумка»" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2828 msgid "LPE Tool Preferences" msgstr "Параметри інструмента «Геометричні побудови»" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2829 msgid "Open Preferences for the LPETool tool" msgstr "Відкрити вікно параметрів для інструмента «Геометричні побудови»" #. Zoom/View -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2831 msgid "Zoom In" msgstr "Збільшити" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2831 msgid "Zoom in" msgstr "Збільшити" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2832 msgid "Zoom Out" msgstr "Зменшити" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2832 msgid "Zoom out" msgstr "Зменшити" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2833 msgid "_Rulers" msgstr "_Лінійки" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2833 msgid "Show or hide the canvas rulers" msgstr "Показати або сховати лінійки полотна" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2834 msgid "Scroll_bars" msgstr "_Смуги гортання" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2834 msgid "Show or hide the canvas scrollbars" msgstr "Показати/Сховати смуги гортання полотна" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2835 msgid "Page _Grid" msgstr "С_ітка сторінки" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2835 msgid "Show or hide the page grid" msgstr "Показати або сховати сітку сторінки" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2836 msgid "G_uides" msgstr "Нап_рямні" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2836 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" "Показати чи сховати напрямні (потягніть від лінійки для створення напрямної)" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2837 msgid "Enable snapping" msgstr "Дозволити прилипання" -#: ../src/verbs.cpp:2839 +#: ../src/verbs.cpp:2838 msgid "_Commands Bar" msgstr "Панель ко_манд" -#: ../src/verbs.cpp:2839 +#: ../src/verbs.cpp:2838 msgid "Show or hide the Commands bar (under the menu)" msgstr "Показати/сховати панель команд (під меню)" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2839 msgid "Sn_ap Controls Bar" msgstr "Панель керування при_липанням" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2839 msgid "Show or hide the snapping controls" msgstr "Показати або сховати інструменти керування прилипанням" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2840 msgid "T_ool Controls Bar" msgstr "Па_нель параметрів інструментів" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2840 msgid "Show or hide the Tool Controls bar" msgstr "Показати або сховати панель з параметрами інструментів" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2841 msgid "_Toolbox" msgstr "Панель _інструментів" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2841 msgid "Show or hide the main toolbox (on the left)" msgstr "Показати або сховати головну панель інструментів (зліва)" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2842 msgid "_Palette" msgstr "_Палітру" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2842 msgid "Show or hide the color palette" msgstr "Показати або сховати панель з палітрою кольорів" -#: ../src/verbs.cpp:2844 +#: ../src/verbs.cpp:2843 msgid "_Statusbar" msgstr "_Рядок стану" -#: ../src/verbs.cpp:2844 +#: ../src/verbs.cpp:2843 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Показати або сховати рядок стану (внизу вікна)" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2844 msgid "Nex_t Zoom" msgstr "Н_аступний масштаб" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2844 msgid "Next zoom (from the history of zooms)" msgstr "Наступний масштаб (з історії зміни масштабу)" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2846 msgid "Pre_vious Zoom" msgstr "П_опередній масштаб" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2846 msgid "Previous zoom (from the history of zooms)" msgstr "Попередній масштаб (з історії зміни масштабу)" -#: ../src/verbs.cpp:2849 +#: ../src/verbs.cpp:2848 msgid "Zoom 1:_1" msgstr "Масштаб 1:_1" -#: ../src/verbs.cpp:2849 +#: ../src/verbs.cpp:2848 msgid "Zoom to 1:1" msgstr "Масштаб 1:1" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2850 msgid "Zoom 1:_2" msgstr "Масштаб 1:_2" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2850 msgid "Zoom to 1:2" msgstr "Масштаб 1:2" -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2852 msgid "_Zoom 2:1" msgstr "Мас_штаб 2:1" -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2852 msgid "Zoom to 2:1" msgstr "Масштаб 2:1" -#: ../src/verbs.cpp:2856 +#: ../src/verbs.cpp:2854 msgid "_Fullscreen" msgstr "На весь _екран" -#: ../src/verbs.cpp:2856 ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2854 ../src/verbs.cpp:2856 msgid "Stretch this document window to full screen" msgstr "Розтягнути вікно документа на весь екран" -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2856 msgid "Fullscreen & Focus Mode" msgstr "Повноекранний режим та режим фокусування" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2858 msgid "Toggle _Focus Mode" msgstr "Перемкнути режим _фокусування" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2858 msgid "Remove excess toolbars to focus on drawing" msgstr "Вилучити зайві панелі інструментів для фокусування на малюванні" -#: ../src/verbs.cpp:2863 +#: ../src/verbs.cpp:2860 msgid "Duplic_ate Window" msgstr "_Дублювати вікно" -#: ../src/verbs.cpp:2863 +#: ../src/verbs.cpp:2860 msgid "Open a new window with the same document" msgstr "Відкрити нове вікно з цим самим документом" -#: ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2862 msgid "_New View Preview" msgstr "_Створити попередній перегляд" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2863 msgid "New View Preview" msgstr "Створити нове вікно попереднього перегляду" #. "view_new_preview" -#: ../src/verbs.cpp:2868 ../src/verbs.cpp:2876 +#: ../src/verbs.cpp:2865 ../src/verbs.cpp:2873 msgid "_Normal" msgstr "_Звичайний" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2866 msgid "Switch to normal display mode" msgstr "Перемикання на звичайний режим відображення" -#: ../src/verbs.cpp:2870 +#: ../src/verbs.cpp:2867 msgid "No _Filters" msgstr "Без _фільтрів" -#: ../src/verbs.cpp:2871 +#: ../src/verbs.cpp:2868 msgid "Switch to normal display without filters" msgstr "Перемикання на звичайний режим без фільтрів" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2869 msgid "_Outline" msgstr "_Обрис" -#: ../src/verbs.cpp:2873 +#: ../src/verbs.cpp:2870 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:2874 ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2871 ../src/verbs.cpp:2879 msgid "_Toggle" msgstr "_Перемкнутися" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2872 msgid "Toggle between normal and outline display modes" msgstr "Перемикач між нормальним та каркасним режимами відображення" -#: ../src/verbs.cpp:2877 +#: ../src/verbs.cpp:2874 msgid "Switch to normal color display mode" msgstr "Перемикання на звичайний режим показу кольорів" -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2875 msgid "_Grayscale" msgstr "Сі_рі півтони" -#: ../src/verbs.cpp:2879 +#: ../src/verbs.cpp:2876 msgid "Switch to grayscale display mode" msgstr "Перемикання на режим показу тонів сірого" -#: ../src/verbs.cpp:2883 +#: ../src/verbs.cpp:2880 msgid "Toggle between normal and grayscale color display modes" msgstr "" "Перемикач між нормальним режимом показу та режимом показу у відтінках сірого" -#: ../src/verbs.cpp:2885 +#: ../src/verbs.cpp:2882 msgid "Color-managed view" msgstr "Перегляд керування кольором" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2883 msgid "Toggle color-managed display for this document window" msgstr "" "Перемикач узгодження відображення кольорів дисплеєм для цього вікна документа" -#: ../src/verbs.cpp:2888 +#: ../src/verbs.cpp:2885 msgid "Ico_n Preview..." msgstr "Переглянути як п_іктограму…" -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2886 msgid "Open a window to preview objects at different icon resolutions" msgstr "Переглянути позначений елемент у формі піктограми різних розмірів" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2888 msgid "Zoom to fit page in window" msgstr "Змінити масштаб, щоб розмістити сторінку цілком" -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2889 msgid "Page _Width" msgstr "Ш_ирина сторінки" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2890 msgid "Zoom to fit page width in window" msgstr "Змінити масштаб, щоб розмістити сторінку по ширині" -#: ../src/verbs.cpp:2895 +#: ../src/verbs.cpp:2892 msgid "Zoom to fit drawing in window" msgstr "Змінити масштаб, щоб розмістити малюнок цілком" -#: ../src/verbs.cpp:2897 +#: ../src/verbs.cpp:2894 msgid "Zoom to fit selection in window" msgstr "Змінити масштаб, щоб розмістити позначену область" #. Dialogs -#: ../src/verbs.cpp:2900 +#: ../src/verbs.cpp:2897 msgid "P_references..." msgstr "На_лаштування…" -#: ../src/verbs.cpp:2901 +#: ../src/verbs.cpp:2898 msgid "Edit global Inkscape preferences" msgstr "Редагування загальних параметрів Inkscape" -#: ../src/verbs.cpp:2902 +#: ../src/verbs.cpp:2899 msgid "_Document Properties..." msgstr "Параметри д_окумента…" -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2900 msgid "Edit properties of this document (to be saved with the document)" msgstr "" "Редагування властивостей поточного документа (вони будуть збережені разом з " "ним)" -#: ../src/verbs.cpp:2904 +#: ../src/verbs.cpp:2901 msgid "Document _Metadata..." msgstr "_Метадані документа" -#: ../src/verbs.cpp:2905 +#: ../src/verbs.cpp:2902 msgid "Edit document metadata (to be saved with the document)" msgstr "Редагування метаданих документа (вони будуть збережені разом з ним)" -#: ../src/verbs.cpp:2907 +#: ../src/verbs.cpp:2904 msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." @@ -27868,118 +28081,118 @@ msgstr "" "заповнення та штриха…" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2909 +#: ../src/verbs.cpp:2906 msgid "Gl_yphs..." msgstr "Г_ліфи…" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2907 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:2913 +#: ../src/verbs.cpp:2910 msgid "S_watches..." msgstr "Зразки _кольорів…" -#: ../src/verbs.cpp:2914 +#: ../src/verbs.cpp:2911 msgid "Select colors from a swatches palette" msgstr "Виберіть колір з палітри зразків" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2912 msgid "S_ymbols..." msgstr "С_имволи…" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2913 msgid "Select symbol from a symbols palette" msgstr "Виберіть символ з палітри символів" -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2914 msgid "Transfor_m..." msgstr "_Перетворити…" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2915 msgid "Precisely control objects' transformations" msgstr "Контролювати точність перетворень об'єктів" -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2916 msgid "_Align and Distribute..." msgstr "Вирів_няти та розподілити…" -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2917 msgid "Align and distribute objects" msgstr "Вирівняти та розподілити об'єкти" -#: ../src/verbs.cpp:2921 +#: ../src/verbs.cpp:2918 msgid "_Spray options..." msgstr "Параметри _розкидання…" -#: ../src/verbs.cpp:2922 +#: ../src/verbs.cpp:2919 msgid "Some options for the spray" msgstr "Параметри розкидання" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2920 msgid "Undo _History..." msgstr "Істо_рія змін…" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2921 msgid "Undo History" msgstr "Історія для скасування змін" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2923 msgid "View and select font family, font size and other text properties" msgstr "" "Перегляд та вибір назви шрифту, його розміру та інших властивостей тексту" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2924 msgid "_XML Editor..." msgstr "Редактор _XML…" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2925 msgid "View and edit the XML tree of the document" msgstr "Перегляд та редагування дерева XML поточного документа" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2926 msgid "_Find/Replace..." msgstr "Знайти і з_амінити…" -#: ../src/verbs.cpp:2930 +#: ../src/verbs.cpp:2927 msgid "Find objects in document" msgstr "Знайти об'єкти у документі" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2928 msgid "Find and _Replace Text..." msgstr "Знайти і з_амінити текст…" -#: ../src/verbs.cpp:2932 +#: ../src/verbs.cpp:2929 msgid "Find and replace text in document" msgstr "Знайти і замінити текст у документі" -#: ../src/verbs.cpp:2934 +#: ../src/verbs.cpp:2931 msgid "Check spelling of text in document" msgstr "Перевірити правопис тексту у документі" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2932 msgid "_Messages..." msgstr "По_відомлення…" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2933 msgid "View debug messages" msgstr "Переглянути діагностичні повідомлення" -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2934 msgid "Show/Hide D_ialogs" msgstr "Показати/сховати діало_ги" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2935 msgid "Show or hide all open dialogs" msgstr "Показати чи сховати всі активні діалогові вікна" -#: ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2936 msgid "Create Tiled Clones..." msgstr "Створити мозаїку з клонів…" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2937 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" @@ -27987,306 +28200,310 @@ msgstr "" "Створити множину клонів позначеного об'єкта, з розташуванням їх у формі " "візерунку або покриття" -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2938 msgid "_Object attributes..." msgstr "_Атрибути об'єкта…" -#: ../src/verbs.cpp:2942 +#: ../src/verbs.cpp:2939 msgid "Edit the object attributes..." msgstr "Змінити атрибути об'єкта…" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2941 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" "Редагування ідентифікатора, стану заблокованості та видимості та інших " "властивостей об'єкта" -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2942 msgid "_Input Devices..." msgstr "_Пристрої введення…" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2943 msgid "Configure extended input devices, such as a graphics tablet" msgstr "Налаштовування розширених пристроїв введення" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2944 msgid "_Extensions..." msgstr "_Про додатки…" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2945 msgid "Query information about extensions" msgstr "Зібрати інформацію про додатки" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2946 msgid "Layer_s..." msgstr "_Шари…" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2947 msgid "View Layers" msgstr "Переглянути шари" -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2948 msgid "Object_s..." msgstr "Об'_єкти…" -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2949 msgid "View Objects" msgstr "Переглянути об'єкти" -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2950 msgid "Selection se_ts..." msgstr "На_бори позначеного…" -#: ../src/verbs.cpp:2954 +#: ../src/verbs.cpp:2951 msgid "View Tags" msgstr "Переглянути теґи" -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2952 msgid "Path E_ffects ..." msgstr "Е_фекти контурів…" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2953 msgid "Manage, edit, and apply path effects" msgstr "Керування, редагування і застосування ефектів контурів" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2954 msgid "Filter _Editor..." msgstr "Р_едактор фільтрів…" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2955 msgid "Manage, edit, and apply SVG filters" msgstr "Керування, редагування і застосування фільтрів SVG" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2956 msgid "SVG Font Editor..." msgstr "Редактор шрифтів SVG…" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2957 msgid "Edit SVG fonts" msgstr "Редагувати шрифти SVG" -#: ../src/verbs.cpp:2961 +#: ../src/verbs.cpp:2958 msgid "Print Colors..." msgstr "Друкувати кольори…" -#: ../src/verbs.cpp:2962 +#: ../src/verbs.cpp:2959 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" "Вкажіть ділянки кольорів, які слід обробляти у режимі обробки попереднього " "перегляду кольорів друку." -#: ../src/verbs.cpp:2963 +#: ../src/verbs.cpp:2960 msgid "_Export PNG Image..." msgstr "_Експортувати як зображення PNG…" -#: ../src/verbs.cpp:2964 +#: ../src/verbs.cpp:2961 msgid "Export this document or a selection as a PNG image" msgstr "Експортувати документ чи позначену частину як зображення PNG" #. Help -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2963 msgid "About E_xtensions" msgstr "Про _додатки" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2964 msgid "Information on Inkscape extensions" msgstr "Інформація про додатки Inkscape" -#: ../src/verbs.cpp:2968 +#: ../src/verbs.cpp:2965 msgid "About _Memory" msgstr "Про п_ам'ять" -#: ../src/verbs.cpp:2969 +#: ../src/verbs.cpp:2966 msgid "Memory usage information" msgstr "Інформація про використання пам'яті" -#: ../src/verbs.cpp:2970 +#: ../src/verbs.cpp:2967 msgid "_About Inkscape" msgstr "_Про програму Inkscape" -#: ../src/verbs.cpp:2971 +#: ../src/verbs.cpp:2968 msgid "Inkscape version, authors, license" msgstr "Версія, автори та ліцензія Inkscape" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:2973 msgid "Inkscape: _Basic" msgstr "Inkscape: _Початковий рівень" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:2974 msgid "Getting started with Inkscape" msgstr "Починаємо роботу з Inkscape" #. "tutorial_basic" -#: ../src/verbs.cpp:2978 +#: ../src/verbs.cpp:2975 msgid "Inkscape: _Shapes" msgstr "Inkscape: _Фігури" -#: ../src/verbs.cpp:2979 +#: ../src/verbs.cpp:2976 msgid "Using shape tools to create and edit shapes" msgstr "Використання інструментів малювання та редагування фігур" -#: ../src/verbs.cpp:2980 +#: ../src/verbs.cpp:2977 msgid "Inkscape: _Advanced" msgstr "Inkscape: _Другий рівень" -#: ../src/verbs.cpp:2981 +#: ../src/verbs.cpp:2978 msgid "Advanced Inkscape topics" msgstr "Додаткові теми з Inkscape" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2985 +#: ../src/verbs.cpp:2982 msgid "Inkscape: T_racing" msgstr "Inkscape: _Векторизація" -#: ../src/verbs.cpp:2986 +#: ../src/verbs.cpp:2983 msgid "Using bitmap tracing" msgstr "Використання векторизації растру" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:2986 msgid "Inkscape: Tracing Pixel Art" msgstr "Inkscape: Трасування растрової графіки" -#: ../src/verbs.cpp:2990 +#: ../src/verbs.cpp:2987 msgid "Using Trace Pixel Art dialog" msgstr "Користування діалоговим вікном трасування растрової графіки" -#: ../src/verbs.cpp:2991 +#: ../src/verbs.cpp:2988 msgid "Inkscape: _Calligraphy" msgstr "Inkscape: _Каліграфія" -#: ../src/verbs.cpp:2992 +#: ../src/verbs.cpp:2989 msgid "Using the Calligraphy pen tool" msgstr "Використання каліграфічного пера" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2990 msgid "Inkscape: _Interpolate" msgstr "Inkscape: _Інтерполяція" -#: ../src/verbs.cpp:2994 +#: ../src/verbs.cpp:2991 msgid "Using the interpolate extension" msgstr "Використання додатка інтерполяції" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2992 msgid "_Elements of Design" msgstr "_Елементи дизайну" -#: ../src/verbs.cpp:2996 +#: ../src/verbs.cpp:2993 msgid "Principles of design in the tutorial form" msgstr "Підручник з принципів дизайну" #. "tutorial_design" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2994 msgid "_Tips and Tricks" msgstr "_Поради та прийоми" -#: ../src/verbs.cpp:2998 +#: ../src/verbs.cpp:2995 msgid "Miscellaneous tips and tricks" msgstr "Різноманітні поради та прийоми" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:2998 msgid "Previous Exte_nsion" msgstr "Попередній _додаток" -#: ../src/verbs.cpp:3002 +#: ../src/verbs.cpp:2999 msgid "Repeat the last extension with the same settings" msgstr "" "Повторити ефекти використання попереднього додатка з тими самими параметрами" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:3000 msgid "_Previous Extension Settings..." msgstr "П_араметри попереднього додатка…" -#: ../src/verbs.cpp:3004 +#: ../src/verbs.cpp:3001 msgid "Repeat the last extension with new settings" msgstr "Повторити останній ефект з новими параметрами" -#: ../src/verbs.cpp:3008 +#: ../src/verbs.cpp:3005 msgid "Fit the page to the current selection" msgstr "Підігнати полотно до поточного позначеної області" -#: ../src/verbs.cpp:3010 +#: ../src/verbs.cpp:3007 msgid "Fit the page to the drawing" msgstr "Підганяє полотно під вже намальоване" -#: ../src/verbs.cpp:3012 +#: ../src/verbs.cpp:3008 +msgid "_Resize Page to Selection" +msgstr "_Підігнати розмір сторінки за позначеним" + +#: ../src/verbs.cpp:3009 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" "Підігнати область видимості під поточну позначену область або під область " "креслення, якщо нічого не позначено" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:3013 msgid "Unlock All in All Layers" msgstr "Розблокувати все в усіх шарах" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:3015 msgid "Unhide All" msgstr "Показати все" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:3017 msgid "Unhide All in All Layers" msgstr "Показати все в усіх шарах" -#: ../src/verbs.cpp:3024 +#: ../src/verbs.cpp:3021 msgid "Link an ICC color profile" msgstr "Посилання на профіль кольорів ICC" -#: ../src/verbs.cpp:3025 +#: ../src/verbs.cpp:3022 msgid "Remove Color Profile" msgstr "Вилучити профіль кольорів" -#: ../src/verbs.cpp:3026 +#: ../src/verbs.cpp:3023 msgid "Remove a linked ICC color profile" msgstr "Вилучити пов'язаний профіль кольорів ICC" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3026 msgid "Add External Script" msgstr "Додати зовнішній скрипт" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3026 msgid "Add an external script" msgstr "Додати зовнішній скрипт" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3028 msgid "Add Embedded Script" msgstr "Додати вбудований скрипт" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3028 msgid "Add an embedded script" msgstr "Додати вбудований скрипт" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3030 msgid "Edit Embedded Script" msgstr "Редагувати вбудований скрипт" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3030 msgid "Edit an embedded script" msgstr "Редагувати вбудований скрипт" -#: ../src/verbs.cpp:3035 +#: ../src/verbs.cpp:3032 msgid "Remove External Script" msgstr "Вилучити зовнішній скрипт" -#: ../src/verbs.cpp:3035 +#: ../src/verbs.cpp:3032 msgid "Remove an external script" msgstr "Вилучити зовнішній скрипт" -#: ../src/verbs.cpp:3037 +#: ../src/verbs.cpp:3034 msgid "Remove Embedded Script" msgstr "Вилучити вбудований скрипт" -#: ../src/verbs.cpp:3037 +#: ../src/verbs.cpp:3034 msgid "Remove an embedded script" msgstr "Вилучити вбудований скрипт" -#: ../src/verbs.cpp:3059 ../src/verbs.cpp:3060 +#: ../src/verbs.cpp:3056 ../src/verbs.cpp:3057 msgid "Center on horizontal and vertical axis" msgstr "Центрувати на горизонтальній і вертикальній осі" @@ -28433,7 +28650,7 @@ msgstr "Без шаблону" #. Width #: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 +#: ../src/widgets/eraser-toolbar.cpp:151 msgid "(hairline)" msgstr "(мотузка)" @@ -28442,22 +28659,22 @@ msgstr "(мотузка)" #. Scale #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:371 -#: ../src/widgets/spray-toolbar.cpp:284 ../src/widgets/spray-toolbar.cpp:313 -#: ../src/widgets/spray-toolbar.cpp:329 ../src/widgets/spray-toolbar.cpp:398 -#: ../src/widgets/spray-toolbar.cpp:428 ../src/widgets/spray-toolbar.cpp:446 -#: ../src/widgets/spray-toolbar.cpp:595 ../src/widgets/tweak-toolbar.cpp:125 +#: ../src/widgets/eraser-toolbar.cpp:151 ../src/widgets/pencil-toolbar.cpp:372 +#: ../src/widgets/spray-toolbar.cpp:294 ../src/widgets/spray-toolbar.cpp:323 +#: ../src/widgets/spray-toolbar.cpp:339 ../src/widgets/spray-toolbar.cpp:408 +#: ../src/widgets/spray-toolbar.cpp:438 ../src/widgets/spray-toolbar.cpp:456 +#: ../src/widgets/spray-toolbar.cpp:605 ../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 +#: ../src/widgets/eraser-toolbar.cpp:151 msgid "(broad stroke)" msgstr "(широкий штрих)" #: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 +#: ../src/widgets/eraser-toolbar.cpp:154 msgid "Pen Width" msgstr "Ширина пера" @@ -28650,18 +28867,22 @@ msgstr "Збільшення параметру збільшує хвилепо #. Mass #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(no inertia)" msgstr "(без інерції)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(slight smoothing, default)" msgstr "(невелике згладжування, типово)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(noticeable lagging)" msgstr "(помітне запізнення)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(maximum inertia)" msgstr "(максимальна інерція)" @@ -28670,6 +28891,7 @@ msgid "Pen Mass" msgstr "Маса пера" #: ../src/widgets/calligraphy-toolbar.cpp:549 +#: ../src/widgets/eraser-toolbar.cpp:171 msgid "Mass:" msgstr "Маса:" @@ -28807,20 +29029,20 @@ msgstr "Пунктир" msgid "Pattern offset" msgstr "Зміщення пунктиру" -#: ../src/widgets/desktop-widget.cpp:494 +#: ../src/widgets/desktop-widget.cpp:495 msgid "Zoom drawing if window size changes" msgstr "Змінювати масштаб при зміні розмірів вікна" -#: ../src/widgets/desktop-widget.cpp:693 +#: ../src/widgets/desktop-widget.cpp:702 msgid "Cursor coordinates" msgstr "Координати курсора" -#: ../src/widgets/desktop-widget.cpp:719 +#: ../src/widgets/desktop-widget.cpp:723 msgid "Z:" msgstr "Z:" #. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:762 +#: ../src/widgets/desktop-widget.cpp:776 msgid "" "Welcome to Inkscape! Use shape or freehand tools to create objects; " "use selector (arrow) to move or transform them." @@ -28829,77 +29051,77 @@ msgstr "" "малювання для створення об'єктів; для їх переміщення чи трансформації " "використовуйте селектор (стрілку)." -#: ../src/widgets/desktop-widget.cpp:856 +#: ../src/widgets/desktop-widget.cpp:870 msgid "grayscale" msgstr "сірі півтони" -#: ../src/widgets/desktop-widget.cpp:857 +#: ../src/widgets/desktop-widget.cpp:871 msgid ", grayscale" msgstr ", сірі півтони" -#: ../src/widgets/desktop-widget.cpp:858 +#: ../src/widgets/desktop-widget.cpp:872 msgid "print colors preview" msgstr "друк попереднього перегляду кольорів" -#: ../src/widgets/desktop-widget.cpp:859 +#: ../src/widgets/desktop-widget.cpp:873 msgid ", print colors preview" msgstr ", друк попереднього перегляду кольорів" -#: ../src/widgets/desktop-widget.cpp:860 +#: ../src/widgets/desktop-widget.cpp:874 msgid "outline" msgstr "обрис" -#: ../src/widgets/desktop-widget.cpp:861 +#: ../src/widgets/desktop-widget.cpp:875 msgid "no filters" msgstr "без фільтрування" -#: ../src/widgets/desktop-widget.cpp:888 +#: ../src/widgets/desktop-widget.cpp:902 #, c-format msgid "%s%s: %d (%s%s) - Inkscape" msgstr "%s%s: %d (%s%s) – Inkscape" -#: ../src/widgets/desktop-widget.cpp:890 ../src/widgets/desktop-widget.cpp:894 +#: ../src/widgets/desktop-widget.cpp:904 ../src/widgets/desktop-widget.cpp:908 #, c-format msgid "%s%s: %d (%s) - Inkscape" msgstr "%s%s: %d (%s) — Inkscape" -#: ../src/widgets/desktop-widget.cpp:896 +#: ../src/widgets/desktop-widget.cpp:910 #, c-format msgid "%s%s: %d - Inkscape" msgstr "%s%s: %d — Inkscape" -#: ../src/widgets/desktop-widget.cpp:902 +#: ../src/widgets/desktop-widget.cpp:916 #, c-format msgid "%s%s (%s%s) - Inkscape" msgstr "%s%s (%s%s) — Inkscape" -#: ../src/widgets/desktop-widget.cpp:904 ../src/widgets/desktop-widget.cpp:908 +#: ../src/widgets/desktop-widget.cpp:918 ../src/widgets/desktop-widget.cpp:922 #, c-format msgid "%s%s (%s) - Inkscape" msgstr "%s%s (%s) — Inkscape" -#: ../src/widgets/desktop-widget.cpp:910 +#: ../src/widgets/desktop-widget.cpp:924 #, c-format msgid "%s%s - Inkscape" msgstr "%s%s — Inkscape" -#: ../src/widgets/desktop-widget.cpp:1082 +#: ../src/widgets/desktop-widget.cpp:1096 msgid "Locked all guides" msgstr "Заблоковано усі напрямні" -#: ../src/widgets/desktop-widget.cpp:1084 +#: ../src/widgets/desktop-widget.cpp:1098 msgid "Unlocked all guides" msgstr "Розблоковано усі напрямні" -#: ../src/widgets/desktop-widget.cpp:1101 +#: ../src/widgets/desktop-widget.cpp:1115 msgid "Color-managed display is enabled in this window" msgstr "Показ з керуванням кольорами у цьому вікні увімкнено" -#: ../src/widgets/desktop-widget.cpp:1103 +#: ../src/widgets/desktop-widget.cpp:1117 msgid "Color-managed display is disabled in this window" msgstr "Показ з керуванням кольорами у цьому вікні вимкнено" -#: ../src/widgets/desktop-widget.cpp:1158 +#: ../src/widgets/desktop-widget.cpp:1172 #, c-format msgid "" "Save changes to document \"%s\" before " @@ -28912,12 +29134,12 @@ msgstr "" "\n" "Якщо ви закриєте документ без збереження, усі зміни будуть втрачені." -#: ../src/widgets/desktop-widget.cpp:1168 -#: ../src/widgets/desktop-widget.cpp:1227 +#: ../src/widgets/desktop-widget.cpp:1182 +#: ../src/widgets/desktop-widget.cpp:1241 msgid "Close _without saving" msgstr "_Не зберігати" -#: ../src/widgets/desktop-widget.cpp:1217 +#: ../src/widgets/desktop-widget.cpp:1231 #, c-format msgid "" "The file \"%s\" was saved with a " @@ -28930,11 +29152,11 @@ msgstr "" "\n" "Зберегти документ у форматі SVG Inkscape?" -#: ../src/widgets/desktop-widget.cpp:1229 +#: ../src/widgets/desktop-widget.cpp:1243 msgid "_Save as Inkscape SVG" msgstr "_Зберегти як SVG Inkscape" -#: ../src/widgets/desktop-widget.cpp:1442 +#: ../src/widgets/desktop-widget.cpp:1456 msgid "Note:" msgstr "Примітка:" @@ -28972,22 +29194,45 @@ msgstr "Призначити" msgid "remove" msgstr "вилучити" -#: ../src/widgets/eraser-toolbar.cpp:94 +#: ../src/widgets/eraser-toolbar.cpp:121 msgid "Delete objects touched by the eraser" msgstr "Вилучати об'єкти, яких торкнулася гумка" -#: ../src/widgets/eraser-toolbar.cpp:100 +#: ../src/widgets/eraser-toolbar.cpp:127 msgid "Cut" msgstr "Вирізати" -#: ../src/widgets/eraser-toolbar.cpp:101 +#: ../src/widgets/eraser-toolbar.cpp:128 msgid "Cut out from objects" msgstr "Вирізати з об'єктів" -#: ../src/widgets/eraser-toolbar.cpp:129 +#. Width +#: ../src/widgets/eraser-toolbar.cpp:151 +msgid "(no width)" +msgstr "(без ширини)" + +#: ../src/widgets/eraser-toolbar.cpp:155 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "Ширина гумки (відносно видимої області полотна)" +#: ../src/widgets/eraser-toolbar.cpp:171 +msgid "Eraser Mass" +msgstr "Маса гумки" + +#: ../src/widgets/eraser-toolbar.cpp:172 +msgid "Increase to make the eraser drag behind, as if slowed by inertia" +msgstr "Збільшення веде до відставання гумки так, неначе її сповільнює інерція" + +#: ../src/widgets/eraser-toolbar.cpp:186 +#, fuzzy +msgid "Break appart cutted items" +msgstr "Розірвати контур у позначеному вузлі" + +#: ../src/widgets/eraser-toolbar.cpp:187 +#, fuzzy +msgid "Break appart cutted itemss" +msgstr "Розірвати контур у позначеному вузлі" + #: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" msgstr "Зміна правила заповнення" @@ -29016,8 +29261,8 @@ msgstr "Встановлення візерунку для заповнення" msgid "Set pattern on stroke" msgstr "Додати візерунок до штриха" -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1017 -#: ../src/widgets/text-toolbar.cpp:1358 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1207 +#: ../src/widgets/text-toolbar.cpp:1606 msgid "Font size" msgstr "Розмір шрифту" @@ -29027,33 +29272,34 @@ msgid "Font family" msgstr "Гарнітура шрифту" #. Style frame -#: ../src/widgets/font-selector.cpp:179 +#: ../src/widgets/font-selector.cpp:194 msgctxt "Font selector" msgid "Style" msgstr "Стиль" -#: ../src/widgets/font-selector.cpp:211 +#: ../src/widgets/font-selector.cpp:226 msgid "Face" msgstr "Гарнітура" -#: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 +#: ../src/widgets/font-selector.cpp:255 ../share/extensions/dots.inx.h:3 +#: ../share/extensions/nicechart.inx.h:17 msgid "Font size:" msgstr "Розмір шрифту:" -#: ../src/widgets/gradient-selector.cpp:205 +#: ../src/widgets/gradient-selector.cpp:201 msgid "Create a duplicate gradient" msgstr "Створення дублікат градієнта" -#: ../src/widgets/gradient-selector.cpp:216 +#: ../src/widgets/gradient-selector.cpp:212 msgid "Edit gradient" msgstr "Змінити градієнт" -#: ../src/widgets/gradient-selector.cpp:285 +#: ../src/widgets/gradient-selector.cpp:281 #: ../src/widgets/paint-selector.cpp:233 msgid "Swatch" msgstr "Зразок" -#: ../src/widgets/gradient-selector.cpp:335 +#: ../src/widgets/gradient-selector.cpp:331 msgid "Rename gradient" msgstr "Перейменувати градієнт" @@ -29259,18 +29505,43 @@ msgid "Delete current control stop from gradient" msgstr "Вилучити опорну точку градієнта" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:969 +#: ../src/widgets/gradient-vector.cpp:975 msgid "Stop Color" msgstr "Колір опорної точки" -#: ../src/widgets/gradient-vector.cpp:1008 +#: ../src/widgets/gradient-vector.cpp:1014 msgid "Gradient editor" msgstr "Редактор градієнтів" -#: ../src/widgets/gradient-vector.cpp:1360 +#: ../src/widgets/gradient-vector.cpp:1366 msgid "Change gradient stop color" msgstr "Змінити колір опорної точки градієнта" +#: ../src/widgets/image-menu-item.c:151 +msgid "Image widget" +msgstr "Віджет зображення" + +#: ../src/widgets/image-menu-item.c:152 +msgid "Child widget to appear next to the menu text" +msgstr "Дочірній віджет, який буде показано поряд із текстом меню" + +#: ../src/widgets/image-menu-item.c:167 +msgid "Use stock" +msgstr "Використовувати стос" + +#: ../src/widgets/image-menu-item.c:168 +msgid "Whether to use the label text to create a stock menu item" +msgstr "" +"Визначає, чи слід використовувати текст мітки для створення пункту меню стосу" + +#: ../src/widgets/image-menu-item.c:183 +msgid "Accel Group" +msgstr "Група доступу" + +#: ../src/widgets/image-menu-item.c:184 +msgid "The Accel Group to use for stock accelerator keys" +msgstr "Група доступу для клавіш керування стосом" + #: ../src/widgets/lpe-toolbar.cpp:233 msgid "Closed" msgstr "Заблокований" @@ -29331,7 +29602,8 @@ msgstr "Показувати відомості щодо виміру для в #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 #: ../src/widgets/paintbucket-toolbar.cpp:167 -#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 +#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:530 +#: ../src/widgets/text-toolbar.cpp:1876 msgid "Units" msgstr "Одиниці" @@ -29354,13 +29626,13 @@ msgid "Start and end measures active." msgstr "Початок і кінець вимірювання увімкнено." #: ../src/widgets/measure-toolbar.cpp:175 -msgid "Show only visible crossings." -msgstr "Показувати лише видимі перетини." - -#: ../src/widgets/measure-toolbar.cpp:177 msgid "Show all crossings." msgstr "Показувати усі перетини." +#: ../src/widgets/measure-toolbar.cpp:177 +msgid "Show visible crossings." +msgstr "Показувати видимі перетини." + #: ../src/widgets/measure-toolbar.cpp:193 msgid "Use all layers in the measure." msgstr "Використовувати для вимірювання усі шари." @@ -29377,84 +29649,89 @@ msgstr "Обчислювати усі елементи." msgid "Compute max length." msgstr "Обчислити максимальну довжину." -#: ../src/widgets/measure-toolbar.cpp:266 ../src/widgets/text-toolbar.cpp:1361 +#: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1609 msgid "Font Size" msgstr "Розмір шрифту" -#: ../src/widgets/measure-toolbar.cpp:266 +#: ../src/widgets/measure-toolbar.cpp:274 msgid "Font Size:" msgstr "Розмір шрифту:" -#: ../src/widgets/measure-toolbar.cpp:267 +#: ../src/widgets/measure-toolbar.cpp:275 msgid "The font size to be used in the measurement labels" msgstr "Розмір шрифту, який буде використано для міток вимірювання" -#: ../src/widgets/measure-toolbar.cpp:278 #: ../src/widgets/measure-toolbar.cpp:286 +#: ../src/widgets/measure-toolbar.cpp:294 msgid "The units to be used for the measurements" msgstr "Одиниці, які буде використано для вимірювання" -#: ../src/widgets/measure-toolbar.cpp:294 ../share/extensions/measure.inx.h:14 +#: ../src/widgets/measure-toolbar.cpp:302 ../share/extensions/measure.inx.h:14 msgid "Precision:" msgstr "Точність:" -#: ../src/widgets/measure-toolbar.cpp:295 +#: ../src/widgets/measure-toolbar.cpp:303 msgid "Decimal precision of measure" msgstr "Десяткова точність вимірювання" -#: ../src/widgets/measure-toolbar.cpp:307 +#: ../src/widgets/measure-toolbar.cpp:315 msgid "Scale %" msgstr "Масштаб у %" -#: ../src/widgets/measure-toolbar.cpp:307 +#: ../src/widgets/measure-toolbar.cpp:315 msgid "Scale %:" msgstr "Масштаб у %:" -#: ../src/widgets/measure-toolbar.cpp:308 +#: ../src/widgets/measure-toolbar.cpp:316 msgid "Scale the results" msgstr "Масштабувати результати" -#: ../src/widgets/measure-toolbar.cpp:321 +#: ../src/widgets/measure-toolbar.cpp:329 msgid "The offset size" msgstr "Розмір зміщення" -#: ../src/widgets/measure-toolbar.cpp:333 -#: ../src/widgets/measure-toolbar.cpp:334 +#: ../src/widgets/measure-toolbar.cpp:341 +#: ../src/widgets/measure-toolbar.cpp:342 msgid "Ignore first and last" msgstr "Ігнорувати першу і останню" -#: ../src/widgets/measure-toolbar.cpp:344 -#: ../src/widgets/measure-toolbar.cpp:345 -msgid "Only visible intersections" -msgstr "Лише видимі перетини" +#: ../src/widgets/measure-toolbar.cpp:352 +#: ../src/widgets/measure-toolbar.cpp:353 +msgid "Show hidden intersections" +msgstr "Показати приховані перетини" -#: ../src/widgets/measure-toolbar.cpp:355 -#: ../src/widgets/measure-toolbar.cpp:356 +#: ../src/widgets/measure-toolbar.cpp:363 +#: ../src/widgets/measure-toolbar.cpp:364 msgid "Show measures between items" msgstr "Показувати відстані між об’єктами" -#: ../src/widgets/measure-toolbar.cpp:366 -#: ../src/widgets/measure-toolbar.cpp:367 +#: ../src/widgets/measure-toolbar.cpp:374 +#: ../src/widgets/measure-toolbar.cpp:375 msgid "Measure all layers" msgstr "Виміряти усі шари" -#: ../src/widgets/measure-toolbar.cpp:377 -#: ../src/widgets/measure-toolbar.cpp:378 +#: ../src/widgets/measure-toolbar.cpp:385 +#: ../src/widgets/measure-toolbar.cpp:386 msgid "Reverse measure" msgstr "Обернути вимірювання" -#: ../src/widgets/measure-toolbar.cpp:387 -#: ../src/widgets/measure-toolbar.cpp:388 +#: ../src/widgets/measure-toolbar.cpp:395 +#: ../src/widgets/measure-toolbar.cpp:396 +msgid "Phantom measure" +msgstr "Фантомне вимірювання" + +#: ../src/widgets/measure-toolbar.cpp:405 +#: ../src/widgets/measure-toolbar.cpp:406 msgid "To guides" msgstr "До напрямних" -#: ../src/widgets/measure-toolbar.cpp:397 -#: ../src/widgets/measure-toolbar.cpp:398 +#: ../src/widgets/measure-toolbar.cpp:415 +#: ../src/widgets/measure-toolbar.cpp:416 msgid "Mark Dimension" msgstr "Позначити розмірність" -#: ../src/widgets/measure-toolbar.cpp:407 -#: ../src/widgets/measure-toolbar.cpp:408 +#: ../src/widgets/measure-toolbar.cpp:425 +#: ../src/widgets/measure-toolbar.cpp:426 msgid "Convert to item" msgstr "Перетворити на об’єкт" @@ -29551,7 +29828,7 @@ msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" "Коонса: без згладжування. Бікубічний: згладжування упоперек до меж фрагмента." -#: ../src/widgets/mesh-toolbar.cpp:527 ../src/widgets/pencil-toolbar.cpp:374 +#: ../src/widgets/mesh-toolbar.cpp:527 ../src/widgets/pencil-toolbar.cpp:375 msgid "Smoothing:" msgstr "Згладжування:" @@ -29934,7 +30211,7 @@ msgid "Close gaps:" msgstr "Закриті проміжки:" #: ../src/widgets/paintbucket-toolbar.cpp:211 -#: ../src/widgets/pencil-toolbar.cpp:395 ../src/widgets/spiral-toolbar.cpp:285 +#: ../src/widgets/pencil-toolbar.cpp:396 ../src/widgets/spiral-toolbar.cpp:285 #: ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "Типово" @@ -29983,56 +30260,56 @@ msgstr "Створити послідовність парааксіальних msgid "Mode of new lines drawn by this tool" msgstr "Режим малювання нових ліній за допомогою цього інструмента" -#: ../src/widgets/pencil-toolbar.cpp:175 +#: ../src/widgets/pencil-toolbar.cpp:176 msgctxt "Freehand shape" msgid "None" msgstr "Немає" -#: ../src/widgets/pencil-toolbar.cpp:176 +#: ../src/widgets/pencil-toolbar.cpp:177 msgid "Triangle in" msgstr "Послаблення" -#: ../src/widgets/pencil-toolbar.cpp:177 +#: ../src/widgets/pencil-toolbar.cpp:178 msgid "Triangle out" msgstr "Посилення" -#: ../src/widgets/pencil-toolbar.cpp:179 +#: ../src/widgets/pencil-toolbar.cpp:180 msgid "From clipboard" msgstr "З буфера обміну даними" -#: ../src/widgets/pencil-toolbar.cpp:180 +#: ../src/widgets/pencil-toolbar.cpp:181 msgid "Bend from clipboard" msgstr "Вигин з буфера обміну даними" -#: ../src/widgets/pencil-toolbar.cpp:181 +#: ../src/widgets/pencil-toolbar.cpp:182 msgid "Last applied" msgstr "Останнє застосоване" -#: ../src/widgets/pencil-toolbar.cpp:206 ../src/widgets/pencil-toolbar.cpp:207 +#: ../src/widgets/pencil-toolbar.cpp:207 ../src/widgets/pencil-toolbar.cpp:208 msgid "Shape:" msgstr "Форма:" -#: ../src/widgets/pencil-toolbar.cpp:206 +#: ../src/widgets/pencil-toolbar.cpp:207 msgid "Shape of new paths drawn by this tool" msgstr "Форма нових контурів, створений за допомогою цього інструмента" -#: ../src/widgets/pencil-toolbar.cpp:371 +#: ../src/widgets/pencil-toolbar.cpp:372 msgid "(many nodes, rough)" msgstr "(багато вузлів, груба)" -#: ../src/widgets/pencil-toolbar.cpp:371 +#: ../src/widgets/pencil-toolbar.cpp:372 msgid "(few nodes, smooth)" msgstr "(мало вузлів, гладка)" -#: ../src/widgets/pencil-toolbar.cpp:374 +#: ../src/widgets/pencil-toolbar.cpp:375 msgid "Smoothing: " msgstr "Згладжування: " -#: ../src/widgets/pencil-toolbar.cpp:375 +#: ../src/widgets/pencil-toolbar.cpp:376 msgid "How much smoothing (simplifying) is applied to the line" msgstr "Міра згладжування (спрощення), яку буде застосовано до лінії" -#: ../src/widgets/pencil-toolbar.cpp:396 +#: ../src/widgets/pencil-toolbar.cpp:397 msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -30040,11 +30317,11 @@ msgstr "" "Відновити типові параметри пера (типові параметри можна змінити у вікні " "Параметри Inkscape->Інструменти)" -#: ../src/widgets/pencil-toolbar.cpp:406 ../src/widgets/pencil-toolbar.cpp:407 +#: ../src/widgets/pencil-toolbar.cpp:407 ../src/widgets/pencil-toolbar.cpp:408 msgid "LPE based interactive simplify" msgstr "Інтерактивне спрощення на основі LPE" -#: ../src/widgets/pencil-toolbar.cpp:417 ../src/widgets/pencil-toolbar.cpp:418 +#: ../src/widgets/pencil-toolbar.cpp:418 ../src/widgets/pencil-toolbar.cpp:419 msgid "LPE simplify flatten" msgstr "Спрощення на основі LPE" @@ -30104,39 +30381,39 @@ msgstr "Не округлений" msgid "Make corners sharp" msgstr "Прибрати округлення кутів" -#: ../src/widgets/ruler.cpp:193 +#: ../src/widgets/ruler.cpp:202 msgid "The orientation of the ruler" msgstr "Орієнтація лінійки" -#: ../src/widgets/ruler.cpp:203 +#: ../src/widgets/ruler.cpp:212 msgid "Unit of the ruler" msgstr "Одиниця виміру на лінійці" -#: ../src/widgets/ruler.cpp:210 +#: ../src/widgets/ruler.cpp:219 msgid "Lower" msgstr "Нижня" -#: ../src/widgets/ruler.cpp:211 +#: ../src/widgets/ruler.cpp:220 msgid "Lower limit of ruler" msgstr "Нижня межа на лінійці" -#: ../src/widgets/ruler.cpp:220 +#: ../src/widgets/ruler.cpp:229 msgid "Upper" msgstr "Верхня" -#: ../src/widgets/ruler.cpp:221 +#: ../src/widgets/ruler.cpp:230 msgid "Upper limit of ruler" msgstr "Верхня межа на лінійці" -#: ../src/widgets/ruler.cpp:231 +#: ../src/widgets/ruler.cpp:240 msgid "Position of mark on the ruler" msgstr "Розташування позначки на лінійці" -#: ../src/widgets/ruler.cpp:240 +#: ../src/widgets/ruler.cpp:249 msgid "Max Size" msgstr "Макс. розмір" -#: ../src/widgets/ruler.cpp:241 +#: ../src/widgets/ruler.cpp:250 msgid "Maximum size of the ruler" msgstr "Максимальний розмір лінійки" @@ -30144,19 +30421,19 @@ msgstr "Максимальний розмір лінійки" msgid "Transform by toolbar" msgstr "Перетворення за панеллю інструментів" -#: ../src/widgets/select-toolbar.cpp:341 +#: ../src/widgets/select-toolbar.cpp:280 msgid "Now stroke width is scaled when objects are scaled." msgstr "" "Тепер товщина штриха масштабується під час зміни масштабу " "об'єктів." -#: ../src/widgets/select-toolbar.cpp:343 +#: ../src/widgets/select-toolbar.cpp:282 msgid "Now stroke width is not scaled when objects are scaled." msgstr "" "Тепер товщина штриха не масштабується під час зміни масштабу " "об'єктів." -#: ../src/widgets/select-toolbar.cpp:354 +#: ../src/widgets/select-toolbar.cpp:293 msgid "" "Now rounded rectangle corners are scaled when rectangles are " "scaled." @@ -30164,7 +30441,7 @@ msgstr "" "Тепер закруглені кути прямокутника змінюватимуть масштаб під " "час зміни масштабу прямокутника." -#: ../src/widgets/select-toolbar.cpp:356 +#: ../src/widgets/select-toolbar.cpp:295 msgid "" "Now rounded rectangle corners are not scaled when rectangles " "are scaled." @@ -30172,7 +30449,7 @@ msgstr "" "Тепер закруглені кути прямокутника не змінюватимуть масштаб " "під час зміни масштабу прямокутника." -#: ../src/widgets/select-toolbar.cpp:367 +#: ../src/widgets/select-toolbar.cpp:306 msgid "" "Now gradients are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -30181,7 +30458,7 @@ msgstr "" "коли вони перетворюватимуться (переміщуватимуться, змінюватимуть масштаб, " "повертатимуться або нахилятимуться)." -#: ../src/widgets/select-toolbar.cpp:369 +#: ../src/widgets/select-toolbar.cpp:308 msgid "" "Now gradients remain fixed when objects are transformed " "(moved, scaled, rotated, or skewed)." @@ -30189,7 +30466,7 @@ msgstr "" "Тепер закруглені кути прямокутника не змінюватимуться під час " "зміни масштабу прямокутника." -#: ../src/widgets/select-toolbar.cpp:380 +#: ../src/widgets/select-toolbar.cpp:319 msgid "" "Now patterns are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -30198,7 +30475,7 @@ msgstr "" "коли вони перетворюватимуться (переміщуватимуться, змінюватимуть масштаб, " "повертатимуться або нахилятимуться)." -#: ../src/widgets/select-toolbar.cpp:382 +#: ../src/widgets/select-toolbar.cpp:321 msgid "" "Now patterns remain fixed when objects are transformed (moved, " "scaled, rotated, or skewed)." @@ -30207,80 +30484,95 @@ msgstr "" "коли вони перетворюватимуться (переміщуватимуться, змінюватимуть масштаб, " "повертатимуться або нахилятимуться)." -#. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:500 +#. name +#: ../src/widgets/select-toolbar.cpp:441 msgctxt "Select toolbar" msgid "X position" msgstr "Розташування за X" -#: ../src/widgets/select-toolbar.cpp:500 +#. label +#: ../src/widgets/select-toolbar.cpp:442 msgctxt "Select toolbar" msgid "X:" msgstr "X:" -#: ../src/widgets/select-toolbar.cpp:502 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:443 +msgctxt "Select toolbar" msgid "Horizontal coordinate of selection" msgstr "Горизонтальна координата позначення" -#: ../src/widgets/select-toolbar.cpp:506 +#. name +#: ../src/widgets/select-toolbar.cpp:460 msgctxt "Select toolbar" msgid "Y position" msgstr "Розташування за Y" -#: ../src/widgets/select-toolbar.cpp:506 +#. label +#: ../src/widgets/select-toolbar.cpp:461 msgctxt "Select toolbar" msgid "Y:" msgstr "Y:" -#: ../src/widgets/select-toolbar.cpp:508 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:462 +msgctxt "Select toolbar" msgid "Vertical coordinate of selection" msgstr "Вертикальна координата позначення" -#: ../src/widgets/select-toolbar.cpp:512 +#. name +#: ../src/widgets/select-toolbar.cpp:479 msgctxt "Select toolbar" msgid "Width" msgstr "Ширина" -#: ../src/widgets/select-toolbar.cpp:512 +#. label +#: ../src/widgets/select-toolbar.cpp:480 msgctxt "Select toolbar" msgid "W:" msgstr "Ш:" -#: ../src/widgets/select-toolbar.cpp:514 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:481 +msgctxt "Select toolbar" msgid "Width of selection" msgstr "Ширина позначення" -#: ../src/widgets/select-toolbar.cpp:521 +#: ../src/widgets/select-toolbar.cpp:499 msgid "Lock width and height" msgstr "Заблокувати ширину і висоту" -#: ../src/widgets/select-toolbar.cpp:522 +#: ../src/widgets/select-toolbar.cpp:500 msgid "When locked, change both width and height by the same proportion" msgstr "Коли заблоковано, пропорційно змінювати ширину та висоту" -#: ../src/widgets/select-toolbar.cpp:531 +#. name +#: ../src/widgets/select-toolbar.cpp:511 msgctxt "Select toolbar" msgid "Height" msgstr "Висота" -#: ../src/widgets/select-toolbar.cpp:531 +#. label +#: ../src/widgets/select-toolbar.cpp:512 msgctxt "Select toolbar" msgid "H:" msgstr "В:" -#: ../src/widgets/select-toolbar.cpp:533 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:513 +msgctxt "Select toolbar" msgid "Height of selection" msgstr "Висота позначення" -#: ../src/widgets/select-toolbar.cpp:583 +#: ../src/widgets/select-toolbar.cpp:575 msgid "Scale rounded corners" msgstr "Змінити розмір округлених кутів" -#: ../src/widgets/select-toolbar.cpp:594 +#: ../src/widgets/select-toolbar.cpp:586 msgid "Move gradients" msgstr "Перемістити градієнти" -#: ../src/widgets/select-toolbar.cpp:605 +#: ../src/widgets/select-toolbar.cpp:597 msgid "Move patterns" msgstr "Перемістити текстури" @@ -30288,7 +30580,7 @@ msgstr "Перемістити текстури" msgid "Set attribute" msgstr "Встановити атрибут" -#: ../src/widgets/sp-color-selector.cpp:47 +#: ../src/widgets/sp-color-selector.cpp:43 msgid "Unnamed" msgstr "Без назви" @@ -30393,130 +30685,126 @@ msgstr "" "Параметри Inkscape->Інструменти)" #. Width -#: ../src/widgets/spray-toolbar.cpp:284 +#: ../src/widgets/spray-toolbar.cpp:294 msgid "(narrow spray)" msgstr "(вузьке розкидання)" -#: ../src/widgets/spray-toolbar.cpp:284 +#: ../src/widgets/spray-toolbar.cpp:294 msgid "(broad spray)" msgstr "(широке розкидання)" -#: ../src/widgets/spray-toolbar.cpp:287 +#: ../src/widgets/spray-toolbar.cpp:297 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "Ширина області розкидання (відносно видимої області полотна)" -#: ../src/widgets/spray-toolbar.cpp:302 +#: ../src/widgets/spray-toolbar.cpp:312 msgid "Use the pressure of the input device to alter the width of spray area" msgstr "" "Використовувати силу натиску пристроєм введення для зміни ширини області " "розкидання" -#: ../src/widgets/spray-toolbar.cpp:313 +#: ../src/widgets/spray-toolbar.cpp:323 msgid "(maximum mean)" msgstr "(максимальне середнє)" -#: ../src/widgets/spray-toolbar.cpp:316 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "Focus" msgstr "Фокусування" -#: ../src/widgets/spray-toolbar.cpp:316 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "Focus:" msgstr "Фокусування:" -#: ../src/widgets/spray-toolbar.cpp:316 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "" "0 призведе до малювання п'ятна. Збільшення значення збільшить радіус кільця." #. Standard_deviation -#: ../src/widgets/spray-toolbar.cpp:329 +#: ../src/widgets/spray-toolbar.cpp:339 msgid "(minimum scatter)" msgstr "(мінімальне розсіювання)" -#: ../src/widgets/spray-toolbar.cpp:329 +#: ../src/widgets/spray-toolbar.cpp:339 msgid "(maximum scatter)" msgstr "(максимальне розсіювання)" -#: ../src/widgets/spray-toolbar.cpp:332 +#: ../src/widgets/spray-toolbar.cpp:342 msgctxt "Spray tool" msgid "Scatter" msgstr "Розсіювання" -#: ../src/widgets/spray-toolbar.cpp:332 +#: ../src/widgets/spray-toolbar.cpp:342 msgctxt "Spray tool" msgid "Scatter:" msgstr "Розсіювання:" -#: ../src/widgets/spray-toolbar.cpp:332 +#: ../src/widgets/spray-toolbar.cpp:342 msgid "Increase to scatter sprayed objects" msgstr "Збільшити розсіювання розкиданих об'єктів" -#: ../src/widgets/spray-toolbar.cpp:351 +#: ../src/widgets/spray-toolbar.cpp:361 msgid "Spray copies of the initial selection" msgstr "Розкидати копії початкової позначеної області" -#: ../src/widgets/spray-toolbar.cpp:358 +#: ../src/widgets/spray-toolbar.cpp:368 msgid "Spray clones of the initial selection" msgstr "Розкидати клони початкової позначеної області" -#: ../src/widgets/spray-toolbar.cpp:365 +#: ../src/widgets/spray-toolbar.cpp:375 msgid "Spray single path" msgstr "Розкидати окремий контур" -#: ../src/widgets/spray-toolbar.cpp:366 +#: ../src/widgets/spray-toolbar.cpp:376 msgid "Spray objects in a single path" msgstr "Розкидати об'єкти за окремим контуром" -#: ../src/widgets/spray-toolbar.cpp:373 +#: ../src/widgets/spray-toolbar.cpp:383 msgid "Delete sprayed items" msgstr "Вилучити розкидані об’єкти" -#: ../src/widgets/spray-toolbar.cpp:374 +#: ../src/widgets/spray-toolbar.cpp:384 msgid "Delete sprayed items from selection" msgstr "Вилучити розкидані об’єкти з позначеного" -#: ../src/widgets/spray-toolbar.cpp:378 ../src/widgets/tweak-toolbar.cpp:253 -msgid "Mode" -msgstr "Режим" - #. Population -#: ../src/widgets/spray-toolbar.cpp:398 +#: ../src/widgets/spray-toolbar.cpp:408 msgid "(low population)" msgstr "(низька щільність)" -#: ../src/widgets/spray-toolbar.cpp:398 +#: ../src/widgets/spray-toolbar.cpp:408 msgid "(high population)" msgstr "(висока щільність)" -#: ../src/widgets/spray-toolbar.cpp:401 +#: ../src/widgets/spray-toolbar.cpp:411 msgid "Amount" msgstr "Величина" -#: ../src/widgets/spray-toolbar.cpp:402 +#: ../src/widgets/spray-toolbar.cpp:412 msgid "Adjusts the number of items sprayed per click" msgstr "" "За допомогою цього параметра можна вказати кількість об'єктів, які буде " "розкидано за одне клацання" -#: ../src/widgets/spray-toolbar.cpp:418 +#: ../src/widgets/spray-toolbar.cpp:428 msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" "Використовувати силу натиску пристрою введення для зміни кількості об'єктів" -#: ../src/widgets/spray-toolbar.cpp:428 +#: ../src/widgets/spray-toolbar.cpp:438 msgid "(high rotation variation)" msgstr "(значне відхилення обертання)" -#: ../src/widgets/spray-toolbar.cpp:431 +#: ../src/widgets/spray-toolbar.cpp:441 msgid "Rotation" msgstr "Обертання" -#: ../src/widgets/spray-toolbar.cpp:431 +#: ../src/widgets/spray-toolbar.cpp:441 msgid "Rotation:" msgstr "Обертання:" -#: ../src/widgets/spray-toolbar.cpp:433 +#: ../src/widgets/spray-toolbar.cpp:443 #, no-c-format msgid "" "Variation of the rotation of the sprayed objects; 0% for the same rotation " @@ -30525,21 +30813,21 @@ msgstr "" "Припустиме відхилення у куті повороту розкиданих об'єктів. Значення 0% " "призведе до рівності цього кута куту повороту початкового об'єкта." -#: ../src/widgets/spray-toolbar.cpp:446 +#: ../src/widgets/spray-toolbar.cpp:456 msgid "(high scale variation)" msgstr "(значне відхилення масштабу)" -#: ../src/widgets/spray-toolbar.cpp:449 +#: ../src/widgets/spray-toolbar.cpp:459 msgctxt "Spray tool" msgid "Scale" msgstr "Масштабувати" -#: ../src/widgets/spray-toolbar.cpp:449 +#: ../src/widgets/spray-toolbar.cpp:459 msgctxt "Spray tool" msgid "Scale:" msgstr "Масштаб:" -#: ../src/widgets/spray-toolbar.cpp:451 +#: ../src/widgets/spray-toolbar.cpp:461 #, no-c-format msgid "" "Variation in the scale of the sprayed objects; 0% for the same scale than " @@ -30548,73 +30836,73 @@ msgstr "" "Припустиме відхилення у масштабі розкиданих об'єктів. Значення 0% призведе " "до рівності цього масштабу масштабу початкового об'єкта." -#: ../src/widgets/spray-toolbar.cpp:467 +#: ../src/widgets/spray-toolbar.cpp:477 msgid "Use the pressure of the input device to alter the scale of new items" msgstr "" "Використовувати силу натиску пристроєм введення для зміни масштабу нових " "об’єктів" -#: ../src/widgets/spray-toolbar.cpp:479 ../src/widgets/spray-toolbar.cpp:480 +#: ../src/widgets/spray-toolbar.cpp:489 ../src/widgets/spray-toolbar.cpp:490 msgid "" -"Pick color from the drawing. You can use clonetiler trace dialog for advanced " -"effects. In clone mode original fill or stroke colors must be unset." +"Pick color from the drawing. You can use clonetiler trace dialog for " +"advanced effects. In clone mode original fill or stroke colors must be unset." msgstr "" "Вибрати колір із зображення. Ви можете скористатися діалоговим вікном " "трасування мозаїчних клонів для створення додаткових ефектів. У режимі " "клонування має бути вимкнено врахування початкових кольорів заповнення або " "штриха." -#: ../src/widgets/spray-toolbar.cpp:492 ../src/widgets/spray-toolbar.cpp:493 +#: ../src/widgets/spray-toolbar.cpp:502 ../src/widgets/spray-toolbar.cpp:503 msgid "Pick from center instead average area." msgstr "Вибрати з центра, а не середній за областю." -#: ../src/widgets/spray-toolbar.cpp:505 ../src/widgets/spray-toolbar.cpp:506 +#: ../src/widgets/spray-toolbar.cpp:515 ../src/widgets/spray-toolbar.cpp:516 msgid "Inverted pick value, retaining color in advanced trace mode" msgstr "" "Інвертоване вибране значення зі збереженням кольору у режимі розширеної " "векторизації" -#: ../src/widgets/spray-toolbar.cpp:518 ../src/widgets/spray-toolbar.cpp:519 +#: ../src/widgets/spray-toolbar.cpp:528 ../src/widgets/spray-toolbar.cpp:529 msgid "Apply picked color to fill" msgstr "Застосувати вибраний колір для заповнення" -#: ../src/widgets/spray-toolbar.cpp:531 ../src/widgets/spray-toolbar.cpp:532 +#: ../src/widgets/spray-toolbar.cpp:541 ../src/widgets/spray-toolbar.cpp:542 msgid "Apply picked color to stroke" msgstr "Застосувати вибраний колір до штриха" -#: ../src/widgets/spray-toolbar.cpp:544 ../src/widgets/spray-toolbar.cpp:545 +#: ../src/widgets/spray-toolbar.cpp:554 ../src/widgets/spray-toolbar.cpp:555 msgid "No overlap between colors" msgstr "Без перекриття між кольорами" -#: ../src/widgets/spray-toolbar.cpp:557 ../src/widgets/spray-toolbar.cpp:558 +#: ../src/widgets/spray-toolbar.cpp:567 ../src/widgets/spray-toolbar.cpp:568 msgid "Apply over transparent areas" msgstr "Застосувати до прозорих областей" -#: ../src/widgets/spray-toolbar.cpp:570 ../src/widgets/spray-toolbar.cpp:571 +#: ../src/widgets/spray-toolbar.cpp:580 ../src/widgets/spray-toolbar.cpp:581 msgid "Apply over no transparent areas" msgstr "Застосувати до непрозорих областей" -#: ../src/widgets/spray-toolbar.cpp:583 ../src/widgets/spray-toolbar.cpp:584 +#: ../src/widgets/spray-toolbar.cpp:593 ../src/widgets/spray-toolbar.cpp:594 msgid "Prevent overlapping objects" msgstr "Запобігати перекриттю об’єктів" -#: ../src/widgets/spray-toolbar.cpp:595 +#: ../src/widgets/spray-toolbar.cpp:605 msgid "(minimum offset)" msgstr "(мінімальний відступ)" -#: ../src/widgets/spray-toolbar.cpp:595 +#: ../src/widgets/spray-toolbar.cpp:605 msgid "(maximum offset)" msgstr "(максимальний відступ)" -#: ../src/widgets/spray-toolbar.cpp:598 +#: ../src/widgets/spray-toolbar.cpp:608 msgid "Offset %" msgstr "Відступ у %" -#: ../src/widgets/spray-toolbar.cpp:598 +#: ../src/widgets/spray-toolbar.cpp:608 msgid "Offset %:" msgstr "Відступ у %:" -#: ../src/widgets/spray-toolbar.cpp:599 +#: ../src/widgets/spray-toolbar.cpp:609 msgid "Increase to segregate objects more (value in percent)" msgstr "Збільшити окремі об’єкти (значення у відсотках)" @@ -30802,557 +31090,581 @@ 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:239 -msgid "Miter join" -msgstr "Гостре" +#. Dash +#: ../src/widgets/stroke-style.cpp:225 +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:251 +msgid "Markers:" +msgstr "Маркери:" + +#: ../src/widgets/stroke-style.cpp:257 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "Початкові маркери малюються на першому вузлі контуру або форми" + +#: ../src/widgets/stroke-style.cpp:266 +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:275 +msgid "End Markers are drawn on the last node of a path or shape" +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:247 +#: ../src/widgets/stroke-style.cpp:300 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:255 +#: ../src/widgets/stroke-style.cpp:308 msgid "Bevel join" msgstr "Фасочне" -#: ../src/widgets/stroke-style.cpp:280 -msgid "Miter _limit:" -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:316 +msgid "Miter join" +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:296 +#: ../src/widgets/stroke-style.cpp:353 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:307 +#: ../src/widgets/stroke-style.cpp:364 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:314 +#: ../src/widgets/stroke-style.cpp:371 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:321 +#: ../src/widgets/stroke-style.cpp:378 msgid "Square cap" msgstr "Квадратні" -#. Dash -#: ../src/widgets/stroke-style.cpp:326 -msgid "Dashes:" -msgstr "Пунктир:" +#: ../src/widgets/stroke-style.cpp:392 +msgid "Fill, Stroke, Markers" +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 "Маркери:" +#: ../src/widgets/stroke-style.cpp:396 +msgid "Stroke, Fill, Markers" +msgstr "Штрих, заповнення, маркери" -#: ../src/widgets/stroke-style.cpp:358 -msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "Початкові маркери малюються на першому вузлі контуру або форми" +#: ../src/widgets/stroke-style.cpp:400 +msgid "Fill, Markers, Stroke" +msgstr "Заповнення, маркери, штрих" -#: ../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 "" -"Серединні маркери малюються на кожному вузлі контуру або форми окрім першого " -"і останнього вузлів" +#: ../src/widgets/stroke-style.cpp:408 +msgid "Markers, Fill, Stroke" +msgstr "Маркери, заповнення, штрих" -#: ../src/widgets/stroke-style.cpp:376 -msgid "End Markers are drawn on the last node of a path or shape" -msgstr "Кінцеві маркери малюються на останньому вузлі контуру або форми" +#: ../src/widgets/stroke-style.cpp:412 +msgid "Stroke, Markers, Fill" +msgstr "Штрих, маркери, заповнення" + +#: ../src/widgets/stroke-style.cpp:416 +msgid "Markers, Stroke, Fill" +msgstr "Маркери, штрих, заповнення" -#: ../src/widgets/stroke-style.cpp:498 +#: ../src/widgets/stroke-style.cpp:534 msgid "Set markers" msgstr "Встановити маркери" -#: ../src/widgets/stroke-style.cpp:1033 ../src/widgets/stroke-style.cpp:1117 +#: ../src/widgets/stroke-style.cpp:1116 ../src/widgets/stroke-style.cpp:1205 msgid "Set stroke style" msgstr "Встановлення стилю штриха" -#: ../src/widgets/stroke-style.cpp:1206 +#: ../src/widgets/stroke-style.cpp:1309 msgid "Set marker color" msgstr "Встановити колір маркера" -#: ../src/widgets/swatch-selector.cpp:127 +#: ../src/widgets/swatch-selector.cpp:89 msgid "Change swatch color" msgstr "Змінити колір зразка" -#: ../src/widgets/text-toolbar.cpp:173 +#: ../src/widgets/text-toolbar.cpp:179 msgid "Text: Change font family" msgstr "Текст: Зміна сімейства шрифту" -#: ../src/widgets/text-toolbar.cpp:239 +#: ../src/widgets/text-toolbar.cpp:245 msgid "Text: Change font size" msgstr "Текст: Зміна розміру шрифту" -#: ../src/widgets/text-toolbar.cpp:275 +#: ../src/widgets/text-toolbar.cpp:281 msgid "Text: Change font style" msgstr "Текст: Зміна нарису шрифту" -#: ../src/widgets/text-toolbar.cpp:353 +#: ../src/widgets/text-toolbar.cpp:359 msgid "Text: Change superscript or subscript" msgstr "Текст: змінити на верхній або нижній індекс" -#: ../src/widgets/text-toolbar.cpp:496 +#: ../src/widgets/text-toolbar.cpp:502 msgid "Text: Change alignment" msgstr "Текст: Зміна вирівнювання" -#: ../src/widgets/text-toolbar.cpp:539 +#: ../src/widgets/text-toolbar.cpp:573 msgid "Text: Change line-height" msgstr "Текст: Зміна висоти рядків" -#: ../src/widgets/text-toolbar.cpp:587 +#: ../src/widgets/text-toolbar.cpp:728 +msgid "Text: Change line-height unit" +msgstr "Текст: Зміна одиниці висоти рядків" + +#: ../src/widgets/text-toolbar.cpp:777 msgid "Text: Change word-spacing" msgstr "Текст: Зміна інтервалів між словами" -#: ../src/widgets/text-toolbar.cpp:627 +#: ../src/widgets/text-toolbar.cpp:817 msgid "Text: Change letter-spacing" msgstr "Текст: Зміна інтервалів між літерами" -#: ../src/widgets/text-toolbar.cpp:665 +#: ../src/widgets/text-toolbar.cpp:855 msgid "Text: Change dx (kern)" msgstr "Текст: Зміна приросту за x (керна)" -#: ../src/widgets/text-toolbar.cpp:699 +#: ../src/widgets/text-toolbar.cpp:889 msgid "Text: Change dy" msgstr "Текст: Зміна приросту за y" -#: ../src/widgets/text-toolbar.cpp:734 +#: ../src/widgets/text-toolbar.cpp:924 msgid "Text: Change rotate" msgstr "Текст: Зміна кута обертання" -#: ../src/widgets/text-toolbar.cpp:787 +#: ../src/widgets/text-toolbar.cpp:977 msgid "Text: Change writing mode" msgstr "Текст: Зміна режиму написання" -#: ../src/widgets/text-toolbar.cpp:841 +#: ../src/widgets/text-toolbar.cpp:1031 msgid "Text: Change orientation" msgstr "Текст: Зміна орієнтації" -#: ../src/widgets/text-toolbar.cpp:1309 +#: ../src/widgets/text-toolbar.cpp:1539 msgid "Font Family" msgstr "Гарнітура шрифту" -#: ../src/widgets/text-toolbar.cpp:1310 +#: ../src/widgets/text-toolbar.cpp:1540 msgid "Select Font Family (Alt-X to access)" msgstr "Виберіть гарнітуру шрифту (Alt-X для доступу)" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1320 +#: ../src/widgets/text-toolbar.cpp:1550 msgid "Select all text with this font-family" msgstr "Позначити всі фрагменти тексту з цією гарнітурою шрифту" -#: ../src/widgets/text-toolbar.cpp:1324 +#: ../src/widgets/text-toolbar.cpp:1554 msgid "Font not found on system" msgstr "Шрифту у системі не виявлено" -#: ../src/widgets/text-toolbar.cpp:1383 +#: ../src/widgets/text-toolbar.cpp:1631 msgid "Font Style" msgstr "Стиль шрифту" -#: ../src/widgets/text-toolbar.cpp:1384 +#: ../src/widgets/text-toolbar.cpp:1632 msgid "Font style" msgstr "Стиль шрифту" #. Name -#: ../src/widgets/text-toolbar.cpp:1401 +#: ../src/widgets/text-toolbar.cpp:1649 msgid "Toggle Superscript" msgstr "Увімкнути/Вимкнути режим верхнього індексу" #. Label -#: ../src/widgets/text-toolbar.cpp:1402 +#: ../src/widgets/text-toolbar.cpp:1650 msgid "Toggle superscript" msgstr "Увімкнути/Вимкнути режим верхнього індексу" #. Name -#: ../src/widgets/text-toolbar.cpp:1414 +#: ../src/widgets/text-toolbar.cpp:1662 msgid "Toggle Subscript" msgstr "Увімкнути/Вимкнути режим нижнього індексу" #. Label -#: ../src/widgets/text-toolbar.cpp:1415 +#: ../src/widgets/text-toolbar.cpp:1663 msgid "Toggle subscript" msgstr "Увімкнути/Вимкнути режим нижнього індексу" -#: ../src/widgets/text-toolbar.cpp:1456 +#: ../src/widgets/text-toolbar.cpp:1704 msgid "Justify" msgstr "Вирівняти з заповненням" #. Name -#: ../src/widgets/text-toolbar.cpp:1463 +#: ../src/widgets/text-toolbar.cpp:1711 msgid "Alignment" msgstr "Вирівнювання" #. Label -#: ../src/widgets/text-toolbar.cpp:1464 +#: ../src/widgets/text-toolbar.cpp:1712 msgid "Text alignment" msgstr "Вирівнювання тексту" -#: ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1739 msgid "Horizontal" msgstr "Горизонтально" -#: ../src/widgets/text-toolbar.cpp:1498 +#: ../src/widgets/text-toolbar.cpp:1746 msgid "Vertical — RL" msgstr "Вертикально — лівопис" -#: ../src/widgets/text-toolbar.cpp:1499 +#: ../src/widgets/text-toolbar.cpp:1747 msgid "Vertical text — lines: right to left" msgstr "Вертикальний текст — рядки: справа ліворуч" -#: ../src/widgets/text-toolbar.cpp:1505 +#: ../src/widgets/text-toolbar.cpp:1753 msgid "Vertical — LR" msgstr "Вертикально — правопис" -#: ../src/widgets/text-toolbar.cpp:1506 +#: ../src/widgets/text-toolbar.cpp:1754 msgid "Vertical text — lines: left to right" msgstr "Вертикальний текст — рядки: зліва праворуч" #. Name -#: ../src/widgets/text-toolbar.cpp:1511 +#: ../src/widgets/text-toolbar.cpp:1759 msgid "Writing mode" msgstr "Режим написання" #. Label -#: ../src/widgets/text-toolbar.cpp:1512 +#: ../src/widgets/text-toolbar.cpp:1760 msgid "Block progression" msgstr "Поступ блоку" -#: ../src/widgets/text-toolbar.cpp:1541 +#: ../src/widgets/text-toolbar.cpp:1789 msgid "Auto glyph orientation" msgstr "Автоматична орієнтації гліфів" -#: ../src/widgets/text-toolbar.cpp:1548 +#: ../src/widgets/text-toolbar.cpp:1796 msgid "Upright" msgstr "Вертикальна" -#: ../src/widgets/text-toolbar.cpp:1549 +#: ../src/widgets/text-toolbar.cpp:1797 msgid "Upright glyph orientation" msgstr "Вертикальна орієнтація гліфів" -#: ../src/widgets/text-toolbar.cpp:1556 +#: ../src/widgets/text-toolbar.cpp:1804 msgid "Sideways" msgstr "Бічна" -#: ../src/widgets/text-toolbar.cpp:1557 +#: ../src/widgets/text-toolbar.cpp:1805 msgid "Sideways glyph orientation" msgstr "Бічна орієнтація гліфів" #. Name -#: ../src/widgets/text-toolbar.cpp:1563 +#: ../src/widgets/text-toolbar.cpp:1811 msgid "Text orientation" msgstr "Орієнтація тексту" #. Label -#: ../src/widgets/text-toolbar.cpp:1564 +#: ../src/widgets/text-toolbar.cpp:1812 msgid "Text (glyph) orientation in vertical text." msgstr "Орієнтація тексту (гліфів) у вертикальному тексті." #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1588 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Smaller spacing" msgstr "Менший інтервал" -#: ../src/widgets/text-toolbar.cpp:1588 ../src/widgets/text-toolbar.cpp:1619 -#: ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1845 ../src/widgets/text-toolbar.cpp:1884 +#: ../src/widgets/text-toolbar.cpp:1915 msgctxt "Text tool" msgid "Normal" msgstr "Звичайний" -#: ../src/widgets/text-toolbar.cpp:1588 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Larger spacing" msgstr "Більший інтервал" #. name -#: ../src/widgets/text-toolbar.cpp:1593 +#: ../src/widgets/text-toolbar.cpp:1850 msgid "Line Height" msgstr "Висота рядка" #. label -#: ../src/widgets/text-toolbar.cpp:1594 +#: ../src/widgets/text-toolbar.cpp:1851 msgid "Line:" msgstr "Рядок:" #. short label -#: ../src/widgets/text-toolbar.cpp:1595 -msgid "Spacing between lines (times font size)" -msgstr "Інтервал між рядками (у одиницях розміру шрифту)" +#: ../src/widgets/text-toolbar.cpp:1852 +msgid "Spacing between baselines (times font size)" +msgstr "Інтервал між базовими лініями (у одиницях розміру шрифту)" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1619 ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Negative spacing" msgstr "Від'ємний інтервал" -#: ../src/widgets/text-toolbar.cpp:1619 ../src/widgets/text-toolbar.cpp:1650 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Positive spacing" msgstr "Додатний інтервал" #. name -#: ../src/widgets/text-toolbar.cpp:1624 +#: ../src/widgets/text-toolbar.cpp:1889 msgid "Word spacing" msgstr "Інтервал між словами" #. label -#: ../src/widgets/text-toolbar.cpp:1625 +#: ../src/widgets/text-toolbar.cpp:1890 msgid "Word:" msgstr "Слово:" #. short label -#: ../src/widgets/text-toolbar.cpp:1626 +#: ../src/widgets/text-toolbar.cpp:1891 msgid "Spacing between words (px)" msgstr "Інтервал між словами (у пікселях)" #. name -#: ../src/widgets/text-toolbar.cpp:1655 +#: ../src/widgets/text-toolbar.cpp:1920 msgid "Letter spacing" msgstr "Інтервал між літерами" #. label -#: ../src/widgets/text-toolbar.cpp:1656 +#: ../src/widgets/text-toolbar.cpp:1921 msgid "Letter:" msgstr "Літера:" #. short label -#: ../src/widgets/text-toolbar.cpp:1657 +#: ../src/widgets/text-toolbar.cpp:1922 msgid "Spacing between letters (px)" msgstr "Інтервал між літерами (у пікселях)" #. name -#: ../src/widgets/text-toolbar.cpp:1686 +#: ../src/widgets/text-toolbar.cpp:1951 msgid "Kerning" msgstr "Кернінґ" #. label -#: ../src/widgets/text-toolbar.cpp:1687 +#: ../src/widgets/text-toolbar.cpp:1952 msgid "Kern:" msgstr "Керн:" #. short label -#: ../src/widgets/text-toolbar.cpp:1688 +#: ../src/widgets/text-toolbar.cpp:1953 msgid "Horizontal kerning (px)" msgstr "Горизонтальний кернінґ (у пікселях)" #. name -#: ../src/widgets/text-toolbar.cpp:1717 +#: ../src/widgets/text-toolbar.cpp:1982 msgid "Vertical Shift" msgstr "Вертикальний зсув" #. label -#: ../src/widgets/text-toolbar.cpp:1718 +#: ../src/widgets/text-toolbar.cpp:1983 msgid "Vert:" msgstr "Верт.:" #. short label -#: ../src/widgets/text-toolbar.cpp:1719 +#: ../src/widgets/text-toolbar.cpp:1984 msgid "Vertical shift (px)" msgstr "Вертикальний зсув (у пікселях)" #. name -#: ../src/widgets/text-toolbar.cpp:1748 +#: ../src/widgets/text-toolbar.cpp:2013 msgid "Letter rotation" msgstr "Обертання літер" #. label -#: ../src/widgets/text-toolbar.cpp:1749 +#: ../src/widgets/text-toolbar.cpp:2014 msgid "Rot:" msgstr "Обер.:" #. short label -#: ../src/widgets/text-toolbar.cpp:1750 +#: ../src/widgets/text-toolbar.cpp:2015 msgid "Character rotation (degrees)" msgstr "Обертання символів (у градусах)" -#: ../src/widgets/toolbox.cpp:184 +#: ../src/widgets/toolbox.cpp:186 msgid "Color/opacity used for color tweaking" msgstr "Колір/непрозорість, що використовуватимуться для корекції кольору" -#: ../src/widgets/toolbox.cpp:192 +#: ../src/widgets/toolbox.cpp:194 msgid "Style of new stars" msgstr "Стиль нових зірок" -#: ../src/widgets/toolbox.cpp:194 +#: ../src/widgets/toolbox.cpp:196 msgid "Style of new rectangles" msgstr "Стиль нових прямокутників" -#: ../src/widgets/toolbox.cpp:196 +#: ../src/widgets/toolbox.cpp:198 msgid "Style of new 3D boxes" msgstr "Стиль нових просторових об'єктів" -#: ../src/widgets/toolbox.cpp:198 +#: ../src/widgets/toolbox.cpp:200 msgid "Style of new ellipses" msgstr "Стиль нових еліпсів" -#: ../src/widgets/toolbox.cpp:200 +#: ../src/widgets/toolbox.cpp:202 msgid "Style of new spirals" msgstr "Стиль нових спіралей" -#: ../src/widgets/toolbox.cpp:202 +#: ../src/widgets/toolbox.cpp:204 msgid "Style of new paths created by Pencil" msgstr "Стиль нових контурів, що створені Олівцем" -#: ../src/widgets/toolbox.cpp:204 +#: ../src/widgets/toolbox.cpp:206 msgid "Style of new paths created by Pen" msgstr "Стиль нових контурів, що створені Пером" -#: ../src/widgets/toolbox.cpp:206 +#: ../src/widgets/toolbox.cpp:208 msgid "Style of new calligraphic strokes" msgstr "Стиль нових каліграфічних штрихів" -#: ../src/widgets/toolbox.cpp:208 ../src/widgets/toolbox.cpp:210 +#: ../src/widgets/toolbox.cpp:210 ../src/widgets/toolbox.cpp:212 msgid "TBD" msgstr "Ще не визначено" -#: ../src/widgets/toolbox.cpp:223 +#: ../src/widgets/toolbox.cpp:225 msgid "Style of Paint Bucket fill objects" msgstr "Стиль нових об'єктів, що створені інструментом заповнення" -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/widgets/toolbox.cpp:1742 msgid "Bounding box" msgstr "Рамка-обгортка" -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap bounding boxes" msgstr "Прилипання до рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1751 msgid "Bounding box edges" msgstr "Краї рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap to edges of a bounding box" msgstr "Прилипання до країв рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1760 msgid "Bounding box corners" msgstr "Кути рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap bounding box corners" msgstr "Прилипання до кутів рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1769 msgid "BBox Edge Midpoints" msgstr "Середні точки країв рамки-обгортки" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of bounding box edges" msgstr "Прилипання до середніх точок країв рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1765 +#: ../src/widgets/toolbox.cpp:1779 msgid "BBox Centers" msgstr "Центри рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1765 +#: ../src/widgets/toolbox.cpp:1779 msgid "Snapping centers of bounding boxes" msgstr "Прилипання до центрів рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1774 +#: ../src/widgets/toolbox.cpp:1788 msgid "Snap nodes, paths, and handles" msgstr "Прилипання до вузлів, контурів та вусів" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1796 msgid "Snap to paths" msgstr "Прилипання до контурів" -#: ../src/widgets/toolbox.cpp:1791 +#: ../src/widgets/toolbox.cpp:1805 msgid "Path intersections" msgstr "Перетин контурів" -#: ../src/widgets/toolbox.cpp:1791 +#: ../src/widgets/toolbox.cpp:1805 msgid "Snap to path intersections" msgstr "Прилипання до перетинів контурів" -#: ../src/widgets/toolbox.cpp:1800 +#: ../src/widgets/toolbox.cpp:1814 msgid "To nodes" msgstr "До вузлів" -#: ../src/widgets/toolbox.cpp:1800 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "Прилипання до вузлів-вершин, зокрема кутів прямокутників" -#: ../src/widgets/toolbox.cpp:1809 +#: ../src/widgets/toolbox.cpp:1823 msgid "Smooth nodes" msgstr "Гладкі вузли" -#: ../src/widgets/toolbox.cpp:1809 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "Прилипання до гладких вузлів, зокрема вершин еліпсів" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1832 msgid "Line Midpoints" msgstr "Середні точки лінії" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap midpoints of line segments" msgstr "Прилипання до середніх точок сегментів лінії" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1841 msgid "Others" msgstr "Інші" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1841 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" "Прилипання до інших точок (центрів, початків напрямних, опорних точок " "градієнтів тощо)" -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/widgets/toolbox.cpp:1849 msgid "Object Centers" msgstr "Центри об'єктів" -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/widgets/toolbox.cpp:1849 msgid "Snap centers of objects" msgstr "Прилипання до центрів об'єктів" -#: ../src/widgets/toolbox.cpp:1844 +#: ../src/widgets/toolbox.cpp:1858 msgid "Rotation Centers" msgstr "Центри обертання" -#: ../src/widgets/toolbox.cpp:1844 +#: ../src/widgets/toolbox.cpp:1858 msgid "Snap an item's rotation center" msgstr "Прилипання до центру обертання елемента" -#: ../src/widgets/toolbox.cpp:1853 +#: ../src/widgets/toolbox.cpp:1867 msgid "Text baseline" msgstr "Базова лінія тексту" -#: ../src/widgets/toolbox.cpp:1853 +#: ../src/widgets/toolbox.cpp:1867 msgid "Snap text anchors and baselines" msgstr "Прилипання до прив'язок тексту та центрів об'єктів" -#: ../src/widgets/toolbox.cpp:1863 +#: ../src/widgets/toolbox.cpp:1877 msgid "Page border" msgstr "Межа сторінки" -#: ../src/widgets/toolbox.cpp:1863 +#: ../src/widgets/toolbox.cpp:1877 msgid "Snap to the page border" msgstr "Прилипання до межі сторінки" -#: ../src/widgets/toolbox.cpp:1872 +#: ../src/widgets/toolbox.cpp:1886 msgid "Snap to grids" msgstr "Прилипання до сітки" -#: ../src/widgets/toolbox.cpp:1881 +#: ../src/widgets/toolbox.cpp:1895 msgid "Snap guides" msgstr "Прилипання до напрямних" @@ -31676,7 +31988,7 @@ msgid "" "The export_gpl.py module requires PyXML. Please download the latest version " "from http://pyxml.sourceforge.net/." msgstr "" -"Для роботи export_gpl.py потрібен PyXML. Будь ласка, звантажте останню " +"Для роботи export_gpl.py потрібен PyXML. Будь ласка, отримайте останню " "версію з сайта http://pyxml.sourceforge.net/." #: ../share/extensions/extractimage.py:68 @@ -32043,11 +32355,11 @@ msgstr "" "Контурів не знайдено. Будь ласка, перетворіть усі потрібні вам об’єкти для " "збереження на контури." -#: ../share/extensions/inkex.py:116 +#: ../share/extensions/inkex.py:117 #, 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://" +"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" @@ -32055,29 +32367,29 @@ msgid "" "%s" msgstr "" "Для inkex.py, а отже і для цього додатка, потрібна чудова оболонка lxml для " -"libxml2. Будь ласка звантажте і встановіть найостаннішу версію з http://" +"libxml2. Будь ласка, отримайте і встановіть найостаннішу версію з http://" "cheeseshop.python.org/pypi/lxml/ або встановіть його за допомогою вашого " "інструмента керування пакунками командою на зразок: sudo apt-get install " "python-lxml\n" "Технічна інформація:\n" "%s" -#: ../share/extensions/inkex.py:169 +#: ../share/extensions/inkex.py:185 #, python-format msgid "Unable to open specified file: %s" msgstr "Не вдалося відкрити вказаний файл: %s" -#: ../share/extensions/inkex.py:178 +#: ../share/extensions/inkex.py:194 #, python-format msgid "Unable to open object member file: %s" msgstr "Не вдалося відкрити файл-частину об’єкта: %s" -#: ../share/extensions/inkex.py:283 +#: ../share/extensions/inkex.py:299 #, python-format msgid "No matching node for expression: %s" msgstr "Не знайдено відповідного вузла для виразу: %s" -#: ../share/extensions/inkex.py:313 +#: ../share/extensions/inkex.py:358 msgid "SVG Width not set correctly! Assuming width = 100" msgstr "Ширину SVG вказано некоректно! Припускаємо ширину, що дорівнює 100" @@ -32585,7 +32897,7 @@ msgstr "" "http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" "і встановіть його до теки Python Inkscape.\n" -#: ../share/extensions/voronoi2svg.py:198 +#: ../share/extensions/voronoi2svg.py:206 msgid "Please select objects!" msgstr "Будь ласка, позначте об'єкт." @@ -32925,13 +33237,36 @@ msgstr "Негатив" msgid "Randomize" msgstr "Випадково" -#: ../share/extensions/color_randomize.inx.h:7 +#: ../share/extensions/color_randomize.inx.h:4 +#, no-c-format +msgid "Hue range (%)" +msgstr "Діапазон відтінку (у %)" + +#: ../share/extensions/color_randomize.inx.h:6 +#, no-c-format +msgid "Saturation range (%)" +msgstr "Діапазон насиченості (у %)" + +#: ../share/extensions/color_randomize.inx.h:8 +#, no-c-format +msgid "Lightness range (%)" +msgstr "Діапазон освітленості (у %)" + +#: ../share/extensions/color_randomize.inx.h:10 +#, no-c-format +msgid "Opacity range (%)" +msgstr "Діапазон непрозорості (у %)" + +#: ../share/extensions/color_randomize.inx.h:12 msgid "" -"Converts to HSL, randomizes hue and/or saturation and/or lightness and " -"converts it back to RGB." +"Randomizes hue, saturation, lightness and/or opacity (opacity randomization " +"only for objects and groups). Change the range values to limit the distance " +"between the original color and the randomized one." msgstr "" -"Перетворює у ВНО, випадково змінює відтінок, і/або насиченість, і/або " -"освітленість, а потім перетворює зображення назад у простір RGB." +"Змінює значення відтінку, насиченості, освітленості і/або непрозорості на " +"випадкове (випадкове значення непрозорості можна використовувати лише для " +"об’єктів і груп). Змініть значення діапазонів, щоб обмежити відхилення " +"випадкового кольору від початкового." #: ../share/extensions/color_removeblue.inx.h:1 msgid "Remove Blue" @@ -33004,7 +33339,7 @@ msgid "" "at http://live.gnome.org/Dia" msgstr "" "З метою уможливити імпорт файлів Dia, має бути встановлено саму Dia. Ви " -"можете звантажити Dia за адресою http://live.gnome.org/Dia" +"можете отримати Dia за адресою http://live.gnome.org/Dia" #: ../share/extensions/dia.inx.h:4 msgid "Dia Diagram (*.dia)" @@ -34159,6 +34494,7 @@ msgstr "Налаштування" #: ../share/extensions/gcodetools_graffiti.inx.h:29 #: ../share/extensions/gcodetools_lathe.inx.h:30 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +#: ../share/extensions/nicechart.inx.h:4 msgid "File:" msgstr "Файл:" @@ -36686,6 +37022,155 @@ msgstr "Символ Unicode:" msgid "View Next Glyph" msgstr "Переглянути наступний гліф" +#: ../share/extensions/nicechart.inx.h:1 +msgid "NiceCharts" +msgstr "Красиві діаграми" + +#: ../share/extensions/nicechart.inx.h:2 +msgid "Data" +msgstr "Дані" + +#: ../share/extensions/nicechart.inx.h:3 +msgid "Data from file" +msgstr "Дані з файла" + +#: ../share/extensions/nicechart.inx.h:5 +msgid "Delimiter:" +msgstr "Роздільник:" + +#: ../share/extensions/nicechart.inx.h:6 +msgid "Column that contains the keys:" +msgstr "Стовпчик, що містить ключі:" + +#: ../share/extensions/nicechart.inx.h:7 +msgid "Column that contains the values:" +msgstr "Стовпчик, що містить значення:" + +#: ../share/extensions/nicechart.inx.h:8 +msgid "File encoding (e.g. utf-8):" +msgstr "Кодування файла (наприклад utf-8):" + +#: ../share/extensions/nicechart.inx.h:9 +msgid "First line contains headings" +msgstr "У першому рядку містяться заголовки" + +#: ../share/extensions/nicechart.inx.h:10 +msgid "Direct input" +msgstr "Безпосереднє введення" + +#: ../share/extensions/nicechart.inx.h:11 +msgid "Data:" +msgstr "Дані:" + +#: ../share/extensions/nicechart.inx.h:12 +msgid "Enter the full path to a CSV file:" +msgstr "Шлях до файла CSV повністю:" + +#: ../share/extensions/nicechart.inx.h:13 +msgid "Type in comma separated values:" +msgstr "Тип відокремлених комами значень:" + +#: ../share/extensions/nicechart.inx.h:14 +msgid "(format like this: apples:3,bananas:5)" +msgstr "(формат: яблука:3,банани:5)" + +#: ../share/extensions/nicechart.inx.h:15 +msgid "Labels" +msgstr "Мітки" + +#: ../share/extensions/nicechart.inx.h:16 +msgid "Font:" +msgstr "Шрифт:" + +#: ../share/extensions/nicechart.inx.h:18 +msgid "Font color:" +msgstr "Колір шрифту:" + +#: ../share/extensions/nicechart.inx.h:19 +msgid "Charts" +msgstr "Діаграми" + +#: ../share/extensions/nicechart.inx.h:20 +msgid "Draw horizontally" +msgstr "Малювати горизонтально" + +#: ../share/extensions/nicechart.inx.h:21 +msgid "Bar length:" +msgstr "Довжина стовпчика:" + +#: ../share/extensions/nicechart.inx.h:22 +msgid "Bar width:" +msgstr "Ширина стовпчика:" + +#: ../share/extensions/nicechart.inx.h:23 +msgid "Pie radius:" +msgstr "Радіус круга:" + +#: ../share/extensions/nicechart.inx.h:24 +msgid "Bar offset:" +msgstr "Відступ стовпчика:" + +#: ../share/extensions/nicechart.inx.h:26 +msgid "Offset between chart and labels:" +msgstr "Відступ міток від діаграми:" + +#: ../share/extensions/nicechart.inx.h:27 +msgid "Offset between chart and chart title:" +msgstr "Відступ заголовка діаграми від самої діаграми:" + +#: ../share/extensions/nicechart.inx.h:28 +msgid "Work around aliasing effects (creates overlapping segments)" +msgstr "" +"Обходити ефекти згладжування (зі створенням сегментів, що перекриваються)" + +#: ../share/extensions/nicechart.inx.h:29 +msgid "Color scheme:" +msgstr "Схема кольорів:" + +#: ../share/extensions/nicechart.inx.h:30 +msgid "Custom colors:" +msgstr "Нетипові кольори:" + +#: ../share/extensions/nicechart.inx.h:31 +msgid "Reverse color scheme" +msgstr "Обернена схема кольорів" + +#: ../share/extensions/nicechart.inx.h:32 +msgid "Drop shadow" +msgstr "Тінь" + +#: ../share/extensions/nicechart.inx.h:37 +msgid "SAP" +msgstr "SAP" + +#: ../share/extensions/nicechart.inx.h:38 +msgid "Values" +msgstr "Значення" + +#: ../share/extensions/nicechart.inx.h:39 +msgid "Show values" +msgstr "Показати значення" + +#: ../share/extensions/nicechart.inx.h:40 +msgid "Chart type:" +msgstr "Тип діаграми:" + +#: ../share/extensions/nicechart.inx.h:41 +msgid "Bar chart" +msgstr "Стовпчикова діаграма" + +#: ../share/extensions/nicechart.inx.h:42 +msgid "Pie chart" +msgstr "Кругова діаграма" + +#: ../share/extensions/nicechart.inx.h:43 +msgid "Pie chart (percentage)" +msgstr "Кругова діаграма (у відсотках)" + +#: ../share/extensions/nicechart.inx.h:44 +msgid "Stacked bar chart" +msgstr "Стосова стовпчикова діаграма" + #: ../share/extensions/param_curves.inx.h:1 msgid "Parametric Curves" msgstr "Параметричні криві" @@ -37720,211 +38205,329 @@ msgid "Optimized SVG Output" msgstr "Оптимізований експорт до SVG" #: ../share/extensions/scour.inx.h:3 -msgid "Shorten color values" -msgstr "Скорочувати назви кольорів" +msgid "Number of significant digits for coordinates:" +msgstr "Кількість значимих цифр у координатах:" #: ../share/extensions/scour.inx.h:4 -msgid "Convert CSS attributes to XML attributes" -msgstr "Перетворити атрибути CSS на атрибути XML" +msgid "" +"Specifies the number of significant digits that should be output for " +"coordinates. Note that significant digits are *not* the number of decimals " +"but the overall number of digits in the output. For example if a value of " +"\"3\" is specified, the coordinate 3.14159 is output as 3.14 while the " +"coordinate 123.675 is output as 124." +msgstr "" +"Визначає кількість значущих цифр у записі координат остаточного файла. " +"Зауважте, що ця кількість — це *не* кількість цифр у дробовій частині числа, " +"а загальна кількість цифр. Наприклад, якщо вказано значення «3», запис " +"координат 3.14159 у файлі-результаті виглядатиме так: 3.14, — а якщо маємо " +"координату 123.675, то так: 124." #: ../share/extensions/scour.inx.h:5 -msgid "Group collapsing" -msgstr "Згортання груп" +msgid "Shorten color values" +msgstr "Скорочувати назви кольорів" #: ../share/extensions/scour.inx.h:6 -msgid "Create groups for similar attributes" -msgstr "Створити групи для подібних атрибутів" +msgid "" +"Convert all color specifications to #RRGGBB (or #RGB where applicable) " +"format." +msgstr "" +"Перетворити усі специфікації кольору на запис у форматі #RRGGBB (або #RGB, " +"якщо це можливо)." #: ../share/extensions/scour.inx.h:7 -msgid "Embed rasters" -msgstr "Вбудувати растр" +msgid "Convert CSS attributes to XML attributes" +msgstr "Перетворити атрибути CSS на атрибути XML" #: ../share/extensions/scour.inx.h:8 -msgid "Keep editor data" -msgstr "Зберегти дані редактора" +msgid "" +"Convert styles from style tags and inline style=\"\" declarations into XML " +"attributes." +msgstr "" +"Перетворити записи стилів із теґів на вбудовані до атрибутів XML оголошення " +"style=\"\"." #: ../share/extensions/scour.inx.h:9 -msgid "Remove metadata" -msgstr "Вилучати метадані" +msgid "Collapse groups" +msgstr "Згорнути групи" #: ../share/extensions/scour.inx.h:10 -msgid "Remove comments" -msgstr "Вилучати коментарі" +msgid "" +"Remove useless groups, promoting their contents up one level. Requires " +"\"Remove unused IDs\" to be set." +msgstr "" +"Вилучити непотрібні групи, перенісши їхній вміст на рівень вище. Потребує " +"позначення пункту «Вилучати невикористані ідентифікатори»." #: ../share/extensions/scour.inx.h:11 -msgid "Work around renderer bugs" -msgstr "Виправити вади показу" +msgid "Create groups for similar attributes" +msgstr "Створити групи для подібних атрибутів" #: ../share/extensions/scour.inx.h:12 -msgid "Enable viewboxing" -msgstr "Увімкнути поле перегляду" +msgid "" +"Create groups for runs of elements having at least one attribute in common " +"(e.g. fill-color, stroke-opacity, ...)." +msgstr "" +"Створити групи для записів елементів, які мають принаймні один спільний " +"атрибут (наприклад колір заповнення, непрозорість штриха тощо)." #: ../share/extensions/scour.inx.h:13 -msgid "Remove the xml declaration" -msgstr "Вилучати оголошення XML" +msgid "Keep editor data" +msgstr "Зберегти дані редактора" #: ../share/extensions/scour.inx.h:14 -msgid "Number of significant digits for coords:" -msgstr "Кількість значимих цифр у координатах:" +msgid "" +"Don't remove editor-specific elements and attributes. Currently supported: " +"Inkscape, Sodipodi and Adobe Illustrator." +msgstr "" +"Не вилучати специфічні для засобу редагування елементи та атрибути. У " +"поточній версії передбачено підтримку таких редакторів: Inkscape, Sodipodi та " +"Adobe Illustrator." #: ../share/extensions/scour.inx.h:15 -msgid "XML indentation (pretty-printing):" -msgstr "Відступи у XML (для полегшення перегляду):" +msgid "Keep unreferenced definitions" +msgstr "Зберегти визначення без посилань" #: ../share/extensions/scour.inx.h:16 -msgid "Space" -msgstr "Пробіли" +msgid "Keep element definitions that are not currently used in the SVG" +msgstr "" +"Зберегти визначення елементів, які у поточному форматі не використовуються у " +"SVG." #: ../share/extensions/scour.inx.h:17 -msgid "Tab" -msgstr "Табуляція" +msgid "Work around renderer bugs" +msgstr "Виправити вади показу" #: ../share/extensions/scour.inx.h:18 -msgctxt "Indent" -msgid "None" -msgstr "Немає" - -#: ../share/extensions/scour.inx.h:19 -msgid "Ids" -msgstr "Ідентифікатори" +msgid "" +"Works around some common renderer bugs (mainly libRSVG) at the cost of a " +"slightly larger SVG file." +msgstr "" +"Обійти деякі загальні вади обробника зображення (в основному libRSVG) за " +"рахунок незначного збільшення файла SVG." #: ../share/extensions/scour.inx.h:20 -msgid "Remove unused ID names for elements" -msgstr "Вилучати ідентифікатори з невикористаними назвами для елементів" +msgid "Remove the XML declaration" +msgstr "Вилучати оголошення XML" #: ../share/extensions/scour.inx.h:21 -msgid "Shorten IDs" -msgstr "Скорочувати ідентифікатори" +msgid "" +"Removes the XML declaration (which is optional but should be provided, " +"especially if special characters are used in the document) from the file " +"header." +msgstr "" +"Вилучити оголошення XML (воно є необов’язковим, але має надаватися, особливо " +"якщо у документі використано спеціальні символи) із заголовка файла." #: ../share/extensions/scour.inx.h:22 -msgid "Preserve manually created ID names not ending with digits" -msgstr "" -"Зберігати створені вручну ідентифікатори з назвами, які не завершуються " -"цифрами" +msgid "Remove metadata" +msgstr "Вилучати метадані" #: ../share/extensions/scour.inx.h:23 -msgid "Preserve these ID names, comma-separated:" -msgstr "Зберігати ідентифікатори з такими назвами, відокремленими комами:" +msgid "" +"Remove metadata tags along with all the contained information, which may " +"include license and author information, alternate versions for non-SVG-" +"enabled browsers, etc." +msgstr "" +"Вилучити теґи метаданих, разом із даними, що у них містяться, зокрема даними " +"щодо ліцензування та авторства, альтернативними версіями для засобів " +"перегляду інтернету без можливостей показу SVG тощо." #: ../share/extensions/scour.inx.h:24 -msgid "Preserve ID names starting with:" -msgstr "Зберігати ідентифікатори з назвами на:" +msgid "Remove comments" +msgstr "Вилучати коментарі" #: ../share/extensions/scour.inx.h:25 -msgid "Help (Options)" -msgstr "Довідка (параметри)" +msgid "Remove all XML comments from output." +msgstr "Вилучити із результатів усі коментарі до XML." + +#: ../share/extensions/scour.inx.h:26 +msgid "Embed raster images" +msgstr "Вбудувати растрові зображення" #: ../share/extensions/scour.inx.h:27 +msgid "" +"Resolve external references to raster images and embed them as Base64-" +"encoded data URLs." +msgstr "" +"Визначити джерела посилань на растрові зображення і вбудувати ці зображення у " +"кодуванні даних Base64." + +#: ../share/extensions/scour.inx.h:28 +msgid "Enable viewboxing" +msgstr "Увімкнути поле перегляду" + +#: ../share/extensions/scour.inx.h:30 #, 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 "" -"За допомогою цього додатка можна оптимізувати файл SVG відповідно до значень " -"таких пунктів:\n" -" * Скорочувати назви кольорів: перетворити всі кольори у формат #RRGGBB " -"або #RGB.\n" -" * Перетворити атрибути CSS на атрибути XML: перетворити стилі з теґів " -"<style> та вбудованих оголошень style=\"\" на атрибути XML.\n" -" * Згортання груп: вилучити непотрібні елементи <g>, піднімаючи " -"рівень таких елементів на один рівень. Потребує позначення пункту «Вилучати " -"ідентифікатори з невикористаними назвами для елементів».\n" -" * Створити групи для подібних атрибутів: створити елементи <g> для " -"груп елементів, які мають принаймні один спільний атрибут (наприклад, колір " -"заповнення, рівень прозорості ліній...).\n" -" * Вбудувати растр: вбудувати растрові зображення у форматі даних у " -"кодуванні base64.\n" -" * Зберегти дані редактора: не вилучати елементи Inkscape, Sodipodi або " -"Adobe Illustrator та атрибути.\n" -" * Вилучати метадані: вилучати теґи <metadata> разом з усіма " -"даними, що у них зберігаються, зокрема метаданими ліцензії, даними версій " -"для переглядачів без підтримки SVG тощо.\n" -" * Вилучати коментарі: вилучати теґи <!-- -->.\n" -" * Виправлити вади показу: трохи збільшити об'єм даних SVG з метою " -"уникнення вади у системі показу librsvg, яка використовується у GNOME та " -"інших програмах.\n" -" * Увімкнути поле перегляду: обрізати зображення до формату 100%/100% і " -"додати viewBox.\n" -" * Кількість значимих цифр у координатах: скоротити всі координати до " -"вказаної кількості значущих цифр. Наприклад, якщо вказано обрізання до 3 " -"цифр, координату 3.5153 буде обрізано до 3.51, а координату 471.55 — до " -"472.\n" -" * Відступи у XML (для полегшення перегляду): можливі значення: «Немає», " -"якщо відступи не потрібні, «Пробіли», якщо слід використовувати додатковий " -"пробіл для позначення рівнів, або «Табуляція», якщо слід використовувати " -"позначення рівнів табуляцію." +"Set page size to 100%/100% (full width and height of the display area) and " +"introduce a viewBox specifying the drawings dimensions." +msgstr "" +"Встановити розміри сторінки 100%/100% (повна ширина і висота області показу) " +"і впровадити viewBox із визначенням розмірностей креслень." + +#: ../share/extensions/scour.inx.h:31 +msgid "Format output with line-breaks and indentation" +msgstr "Форматувати виведені дані розбиттям на рядки і відступами" + +#: ../share/extensions/scour.inx.h:32 +msgid "" +"Produce nicely formatted output including line-breaks. If you do not intend " +"to hand-edit the SVG file you can disable this option to bring down the file " +"size even more at the cost of clarity." +msgstr "" +"Створити код із красивим форматуванням і розбиттям на рядки. Якщо у вас немає " +"намірів редагувати файл SVG вручну, ви можете зняти позначення з цього пункту " +"і зменшити розмір файла незначно погіршивши придатність коду до читання " +"людиною." + +#: ../share/extensions/scour.inx.h:33 +msgid "Indentation characters:" +msgstr "Символ відступів:" + +#: ../share/extensions/scour.inx.h:34 +msgid "" +"The type of indentation used for each level of nesting in the output. " +"Specify \"None\" to disable indentation. This option has no effect if " +"\"Format output with line-breaks and indentation\" is disabled." +msgstr "" +"Тип відступів, який використовуватиметься на кожному рівні вкладеності " +"оброблених даних. Виберіть пункт «Немає», щоб вимкнути відступи. Цей пункт ні " +"на що не вплине, якщо не позначено пункт «Форматувати виведені дані розбиттям " +"на рядки і відступами»." + +#: ../share/extensions/scour.inx.h:35 +msgid "Depth of indentation:" +msgstr "Ширина відступу:" + +#: ../share/extensions/scour.inx.h:36 +msgid "" +"The depth of the chosen type of indentation. E.g. if you choose \"2\" every " +"nesting level in the output will be indented by two additional spaces/tabs." +msgstr "" +"Ширина вибраного типу відступів. Наприклад, якщо ви виберете «2», кожен " +"рівень вкладеності у виведених даних матиме додатковий відступ у два пробіли " +"або символи табуляції." + +#: ../share/extensions/scour.inx.h:37 +msgid "Strip the \"xml:space\" attribute from the root SVG element" +msgstr "Вилучити атрибут «xml:space» і кореневого елемента SVG" + +#: ../share/extensions/scour.inx.h:38 +msgid "" +"This is useful if the input file specifies \"xml:space='preserve'\" in the " +"root SVG element which instructs the SVG editor not to change whitespace in " +"the document at all (and therefore overrides the options above)." +msgstr "" +"Цей пункт буде корисним, якщо у вхідному файлі визначено " +"«xml:space='preserve'» у кореневому елементі SVG. Таке визначення наказує " +"редактору SVG не змінювати розташування пробілів у коді (тобто скасувати дію " +"пунктів, розташованих вище)." + +#: ../share/extensions/scour.inx.h:39 +msgid "Document options" +msgstr "Параметри документа" #: ../share/extensions/scour.inx.h:40 -msgid "Help (Ids)" -msgstr "Довідка (ідентифікатори)" +msgid "Pretty-printing" +msgstr "Структурний друк" #: ../share/extensions/scour.inx.h:41 +msgid "Space" +msgstr "Пробіли" + +#: ../share/extensions/scour.inx.h:42 +msgid "Tab" +msgstr "Табуляція" + +#: ../share/extensions/scour.inx.h:43 +msgctxt "Indent" +msgid "None" +msgstr "Немає" + +#: ../share/extensions/scour.inx.h:44 +msgid "IDs" +msgstr "Ідентифікатори" + +#: ../share/extensions/scour.inx.h:45 +msgid "Remove unused IDs" +msgstr "Вилучати невикористані ідентифікатори" + +#: ../share/extensions/scour.inx.h:46 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 "" -"Специфічні для ідентифікаторів параметри:\n" -" * Вилучати ідентифікатори з невикористаними назвами для елементів: " -"вилучити всі атрибути ідентифікаторів без посилань.\n" -" * Скорочувати ідентифікатори: зменшити довжину всіх атрибутів " -"ідентифікаторів з призначенням найкоротших записів до найвживаніших " -"посилань. Наприклад, якщо #linearGradient5621 має посилань, його буде " -"замінено на #a.\n" -" * Зберігати створені вручну ідентифікатори з назвами, які не " -"завершуються цифрами: зазвичай, у оптимізованому SVG такі записи " -"вилучаються, але якщо ці записи потрібні (наприклад, #middledot), ви можете " -"скористатися цим пунктом.\n" -" * Зберігати ідентифікатори з такими назвами, відокремленими комами: ви " -"можете скористатися цим пунктом разом з іншими пунктами зберігання деяких " -"інших специфічних назв ідентифікаторів.\n" -" * Зберігати ідентифікатори з назвами на: зазвичай, у оптимізованому SVG " -"вилучаються всі ідентифікатори з невикористаними назвами, але якщо всі " -"потрібні вам назви ідентифікаторів починаються з одного префікса (наприклад, " -"#flag-mx, #flag-pt), ви можете скористатися цим пунктом." +"Remove all unreferenced IDs from elements. Those are not needed for " +"rendering." +msgstr "" +"Вилучити із елементів усі ідентифікатори, на які немає посилань. Такі " +"ідентифікатори не потрібні для показу зображення." #: ../share/extensions/scour.inx.h:47 +msgid "Shorten IDs" +msgstr "Скорочувати ідентифікатори" + +#: ../share/extensions/scour.inx.h:48 +msgid "" +"Minimize the length of IDs using only lowercase letters, assigning the " +"shortest values to the most-referenced elements. For instance, " +"\"linearGradient5621\" will become \"a\" if it is the most used element." +msgstr "" +"Мінімізувати довжину ідентифікаторів, використовуючи літери нижнього регістру " +"і призначаючи найкоротші значення елементам, на які найбільше посилань. " +"Наприклад, «linearGradient5621» буде перетворено «a», якщо цей елемент є " +"найвживанішим." + +#: ../share/extensions/scour.inx.h:49 +msgid "Prefix shortened IDs with:" +msgstr "Додавати до скорочених ід. такий префікс:" + +#: ../share/extensions/scour.inx.h:50 +msgid "Prepend shortened IDs with the specified prefix." +msgstr "Додавати перед скороченими ідентифікаторами вказаний префікс." + +#: ../share/extensions/scour.inx.h:51 +msgid "Preserve manually created IDs not ending with digits" +msgstr "" +"Зберігати створені вручну ідентифікатори з назвами, які не завершуються " +"цифрами" + +#: ../share/extensions/scour.inx.h:52 +msgid "" +"Descriptive IDs which were manually created to reference or label specific " +"elements or groups (e.g. #arrowStart, #arrowEnd or #textLabels) will be " +"preserved while numbered IDs (as they are generated by most SVG editors " +"including Inkscape) will be removed/shortened." +msgstr "" +"Описові ідентифікатори, які було створено вручну для посилання або позначення " +"певних елементів або груп (наприклад, #pochatokStrilky, #kinecStrilky або " +"#tekstoviMitky) буде збережено, а нумеровані ідентифікатори (які створюються " +"більшістю програм для редагування SVG, зокрема Inkscape) буде вилучено або " +"скорочено." + +#: ../share/extensions/scour.inx.h:53 +msgid "Preserve the following IDs:" +msgstr "Зберегти такі ідентифікатори:" + +#: ../share/extensions/scour.inx.h:54 +msgid "A comma-separated list of IDs that are to be preserved." +msgstr "Список відокремлених комами ідентифікаторів, які слід зберегти." + +#: ../share/extensions/scour.inx.h:55 +msgid "Preserve IDs starting with:" +msgstr "Зберегти ідентифікатори з назвами на:" + +#: ../share/extensions/scour.inx.h:56 +msgid "" +"Preserve all IDs that start with the specified prefix (e.g. specify \"flag\" " +"to preserve \"flag-mx\", \"flag-pt\", etc.)." +msgstr "" +"Зберегти усі ідентифікатори, які починаються із вказаного префікса " +"(наприклад, якщо вказано «flag», буде збережено ідентифікатори «flag-mx», " +"«flag-pt» тощо)." + +#: ../share/extensions/scour.inx.h:57 msgid "Optimized SVG (*.svg)" msgstr "Оптимізований SVG (*.svg)" -#: ../share/extensions/scour.inx.h:48 +#: ../share/extensions/scour.inx.h:58 msgid "Scalable Vector Graphics" msgstr "Масштабована векторна графіка" @@ -38468,22 +39071,42 @@ msgid "Show the bounding box" msgstr "Показати контур-обгортку" #: ../share/extensions/voronoi2svg.inx.h:6 -msgid "Delaunay Triangulation" -msgstr "Тріангуляція Делоне" +msgid "Triangles color" +msgstr "Колір трикутників" #: ../share/extensions/voronoi2svg.inx.h:7 +msgid "Delaunay Triangulation" +msgstr "Триангуляція Делоне" + +#: ../share/extensions/voronoi2svg.inx.h:8 msgid "Voronoi and Delaunay" msgstr "Вороного і Делоне" -#: ../share/extensions/voronoi2svg.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:9 msgid "Options for Voronoi diagram" msgstr "Параметри діаграми Вороного" -#: ../share/extensions/voronoi2svg.inx.h:10 +#: ../share/extensions/voronoi2svg.inx.h:11 msgid "Automatic from selected objects" msgstr "Автоматично за позначеними об'єктами" #: ../share/extensions/voronoi2svg.inx.h:12 +msgid "Options for Delaunay Triangulation" +msgstr "Параметри триангуляції Делоне" + +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Default (Stroke black and no fill)" +msgstr "Типовий (чорний штрих без заповнення)" + +#: ../share/extensions/voronoi2svg.inx.h:14 +msgid "Triangles with item color" +msgstr "Трикутники із кольором елемента" + +#: ../share/extensions/voronoi2svg.inx.h:15 +msgid "Triangles with item color (random on apply)" +msgstr "Трикутники із кольором елемента (випадкові при застосуванні)" + +#: ../share/extensions/voronoi2svg.inx.h:17 msgid "" "Select a set of objects. Their centroids will be used as the sites of the " "Voronoi diagram. Text objects are not handled." @@ -38925,6 +39548,155 @@ msgstr "Популярний графічний формат для кліпар msgid "XAML Input" msgstr "Імпорт з XAML" +#~ msgid "" +#~ "Select exactly 2 paths to perform difference, division, or path " +#~ "cut." +#~ msgstr "" +#~ "Для операції виключного АБО, ділення та розрізання контуру виберіть " +#~ "точно 2 контури." + +#~ msgid "Measure start" +#~ msgstr "Початок вимірювання" + +#~ msgid "Measure end" +#~ msgstr "Кінець вимірювання" + +#~ msgid "Only visible intersections" +#~ msgstr "Лише видимі перетини" + +#~ msgid "Miter _limit:" +#~ msgstr "Ме_жа вістря:" + +#~ msgid "" +#~ "Converts to HSL, randomizes hue and/or saturation and/or lightness and " +#~ "converts it back to RGB." +#~ msgstr "" +#~ "Перетворює у ВНО, випадково змінює відтінок, і/або насиченість, і/або " +#~ "освітленість, а потім перетворює зображення назад у простір RGB." + +#~ msgid "Group collapsing" +#~ msgstr "Згортання груп" + +#~ msgid "XML indentation (pretty-printing):" +#~ msgstr "Відступи у XML (для полегшення перегляду):" + +#~ msgid "Ids" +#~ msgstr "Ідентифікатори" + +#~ msgid "Remove unused ID names for elements" +#~ msgstr "Вилучати ідентифікатори з невикористаними назвами для елементів" + +#~ msgid "Preserve these ID names, comma-separated:" +#~ msgstr "Зберігати ідентифікатори з такими назвами, відокремленими комами:" + +#~ msgid "Help (Options)" +#~ msgstr "Довідка (параметри)" + +#~ 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 "" +#~ "За допомогою цього додатка можна оптимізувати файл SVG відповідно до " +#~ "значень таких пунктів:\n" +#~ " * Скорочувати назви кольорів: перетворити всі кольори у формат " +#~ "#RRGGBB або #RGB.\n" +#~ " * Перетворити атрибути CSS на атрибути XML: перетворити стилі з теґів " +#~ "<style> та вбудованих оголошень style=\"\" на атрибути XML.\n" +#~ " * Згортання груп: вилучити непотрібні елементи <g>, піднімаючи " +#~ "рівень таких елементів на один рівень. Потребує позначення пункту " +#~ "«Вилучати ідентифікатори з невикористаними назвами для елементів».\n" +#~ " * Створити групи для подібних атрибутів: створити елементи <g> " +#~ "для груп елементів, які мають принаймні один спільний атрибут (наприклад, " +#~ "колір заповнення, рівень прозорості ліній...).\n" +#~ " * Вбудувати растр: вбудувати растрові зображення у форматі даних у " +#~ "кодуванні base64.\n" +#~ " * Зберегти дані редактора: не вилучати елементи Inkscape, Sodipodi " +#~ "або Adobe Illustrator та атрибути.\n" +#~ " * Вилучати метадані: вилучати теґи <metadata> разом з усіма " +#~ "даними, що у них зберігаються, зокрема метаданими ліцензії, даними версій " +#~ "для переглядачів без підтримки SVG тощо.\n" +#~ " * Вилучати коментарі: вилучати теґи <!-- -->.\n" +#~ " * Виправлити вади показу: трохи збільшити об'єм даних SVG з метою " +#~ "уникнення вади у системі показу librsvg, яка використовується у GNOME та " +#~ "інших програмах.\n" +#~ " * Увімкнути поле перегляду: обрізати зображення до формату 100%/100% " +#~ "і додати viewBox.\n" +#~ " * Кількість значимих цифр у координатах: скоротити всі координати до " +#~ "вказаної кількості значущих цифр. Наприклад, якщо вказано обрізання до 3 " +#~ "цифр, координату 3.5153 буде обрізано до 3.51, а координату 471.55 — до " +#~ "472.\n" +#~ " * Відступи у XML (для полегшення перегляду): можливі значення: " +#~ "«Немає», якщо відступи не потрібні, «Пробіли», якщо слід використовувати " +#~ "додатковий пробіл для позначення рівнів, або «Табуляція», якщо слід " +#~ "використовувати позначення рівнів табуляцію." + +#~ msgid "Help (Ids)" +#~ msgstr "Довідка (ідентифікатори)" + +#~ 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 "" +#~ "Специфічні для ідентифікаторів параметри:\n" +#~ " * Вилучати ідентифікатори з невикористаними назвами для елементів: " +#~ "вилучити всі атрибути ідентифікаторів без посилань.\n" +#~ " * Скорочувати ідентифікатори: зменшити довжину всіх атрибутів " +#~ "ідентифікаторів з призначенням найкоротших записів до найвживаніших " +#~ "посилань. Наприклад, якщо #linearGradient5621 має посилань, його буде " +#~ "замінено на #a.\n" +#~ " * Зберігати створені вручну ідентифікатори з назвами, які не " +#~ "завершуються цифрами: зазвичай, у оптимізованому SVG такі записи " +#~ "вилучаються, але якщо ці записи потрібні (наприклад, #middledot), ви " +#~ "можете скористатися цим пунктом.\n" +#~ " * Зберігати ідентифікатори з такими назвами, відокремленими комами: " +#~ "ви можете скористатися цим пунктом разом з іншими пунктами зберігання " +#~ "деяких інших специфічних назв ідентифікаторів.\n" +#~ " * Зберігати ідентифікатори з назвами на: зазвичай, у оптимізованому " +#~ "SVG вилучаються всі ідентифікатори з невикористаними назвами, але якщо " +#~ "всі потрібні вам назви ідентифікаторів починаються з одного префікса " +#~ "(наприклад, #flag-mx, #flag-pt), ви можете скористатися цим пунктом." + #~ msgid "Max. smooth handle angle" #~ msgstr "Макс. кут елемента керування згладженого вузла" @@ -38965,12 +39737,6 @@ msgstr "Імпорт з XAML" #~ msgid "Arbitrary Angle" #~ msgstr "Довільний кут" -#~ msgid "Horizontal Point:" -#~ msgstr "Горизонтальна точка:" - -#~ msgid "Vertical Point:" -#~ msgstr "Вертикальна точка:" - #~ msgid "Ignore cusp nodes" #~ msgstr "Ігнорувати гострі вузли" @@ -39795,10 +40561,6 @@ msgstr "Імпорт з XAML" #~ msgid "Alternate Process" #~ msgstr "Альтернативний процес" -#~ msgctxt "Symbol" -#~ msgid "Data I/O" -#~ msgstr "Введення-виведення даних" - #~ msgctxt "Symbol" #~ msgid "Card" #~ msgstr "Картка" @@ -40048,14 +40810,6 @@ msgstr "Імпорт з XAML" #~ msgid "Determines on which side the line or line segment is infinite." #~ msgstr "Визначає, який з кінців лінії або її сегмента буде нескінченним." -#~ msgid "Discard original path?" -#~ msgstr "Відкинути початковий контур?" - -#~ msgid "Check this to only keep the mirrored part of the path" -#~ msgstr "" -#~ "Позначте цей пункт, щоб програма зберегла лише віддзеркалену частину " -#~ "контуру" - #~ msgid "Reflection line:" #~ msgstr "Лінія відбиття:" @@ -40065,9 +40819,6 @@ msgstr "Імпорт з XAML" #~ msgid "Handle to control the distance of the offset from the curve" #~ msgstr "Інструмент керування, який визначатиме відстань відступу від кривої" -#~ msgid "Adjust the offset" -#~ msgstr "Скоригувати відступ" - #~ msgid "Specifies the left end of the parallel" #~ msgstr "Визначає лівий кінець паралельної" @@ -40700,12 +41451,6 @@ msgstr "Імпорт з XAML" #~ msgid "Contrast:" #~ msgstr "Контрастність:" -#~ msgid "Colors:" -#~ msgstr "Кольори:" - -#~ msgid "Simplify:" -#~ msgstr "Спрощення:" - #~ msgid "Select only one group to convert to symbol." #~ msgstr "Позначте лише одну групу для перетворення на символ." @@ -40825,9 +41570,6 @@ msgstr "Імпорт з XAML" #~ msgid "Include l_ocked" #~ msgstr "Включити _заблоковані" -#~ msgid "Clear values" -#~ msgstr "Очистити значення" - #~ msgid "Select objects matching all of the fields you filled in" #~ msgstr "Позначити об'єкти, що відповідають усім критеріям пошуку" -- cgit v1.2.3 From f7fb27e90abba4f8c0b033b88c5039dae9339b94 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 17 May 2016 11:49:21 +0200 Subject: GTK3: Give names to more widgets. (bzr r14896) --- src/ui/widget/color-preview.cpp | 1 + src/ui/widget/layer-selector.cpp | 2 ++ src/ui/widget/selected-style.cpp | 1 + src/ui/widget/style-swatch.cpp | 2 ++ src/widgets/desktop-widget.cpp | 3 +++ src/widgets/toolbox.cpp | 4 +++- 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ui/widget/color-preview.cpp b/src/ui/widget/color-preview.cpp index 5bcd16528..62c7cca1d 100644 --- a/src/ui/widget/color-preview.cpp +++ b/src/ui/widget/color-preview.cpp @@ -23,6 +23,7 @@ ColorPreview::ColorPreview (guint32 rgba) { _rgba = rgba; set_has_window(false); + set_name("ColorPreview"); } void diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 2a1fa352b..1a9ce617f 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -45,6 +45,7 @@ public: AlternateIcons(Inkscape::IconSize size, gchar const *a, gchar const *b) : _a(NULL), _b(NULL) { + set_name("AlternateIcons"); if (a) { _a = Gtk::manage(sp_icon_get_icon(a, size)); _a->set_no_show_all(true); @@ -94,6 +95,7 @@ private: LayerSelector::LayerSelector(SPDesktop *desktop) : _desktop(NULL), _layer(NULL) { + set_name("LayerSelector"); AlternateIcons *label; label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION, diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 87cf0b8c4..f7fd63f51 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -155,6 +155,7 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _unit_mis(NULL), _sw_unit(NULL) { + set_name("SelectedStyle"); _drop[0] = _drop[1] = 0; _dropEnabled[0] = _dropEnabled[1] = false; diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp index fa8543c46..188be705d 100644 --- a/src/ui/widget/style-swatch.cpp +++ b/src/ui/widget/style-swatch.cpp @@ -124,6 +124,8 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip) #endif _sw_unit(NULL) { + set_name("StyleSwatch"); + _label[SS_FILL].set_markup(_("Fill:")); _label[SS_STROKE].set_markup(_("Stroke:")); diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 4bd32daca..bae26f98c 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -793,6 +793,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_label_set_markup (GTK_LABEL (dtw->select_status), _("Welcome to Inkscape! Use shape or freehand tools to create objects; use selector (arrow) to move or transform them.")); // space label 2 pixels from left edge gtk_container_add (GTK_CONTAINER (dtw->select_status_eventbox), dtw->select_status); + +// WHAT DOES THE FOLLOWING GTK_BOX DO? #if GTK_CHECK_VERSION(3,0,0) gtk_box_pack_start(GTK_BOX(dtw->statusbar), gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0), @@ -800,6 +802,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #else gtk_box_pack_start (GTK_BOX (dtw->statusbar), gtk_hbox_new(FALSE, 0), FALSE, FALSE, 2); #endif + gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status_eventbox, TRUE, TRUE, 0); gtk_widget_show_all (dtw->vbox); diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 6c3997657..f7b5e585f 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -1411,6 +1411,7 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) // converted to GtkActions and UIManager GtkWidget* kludge = gtk_toolbar_new(); + gtk_widget_set_name( kludge, "Kludge" ); g_object_set_data( G_OBJECT(kludge), "dtw", desktop->canvas); g_object_set_data( G_OBJECT(kludge), "desktop", desktop); dataHolders[aux_toolboxes[i].type_name] = kludge; @@ -1423,7 +1424,7 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) } else { sub_toolbox = aux_toolboxes[i].create_func(desktop); } - + gtk_widget_set_name( sub_toolbox, "SubToolBox" ); gtk_size_group_add_widget( grouper, sub_toolbox ); gtk_container_add(GTK_CONTAINER(toolbox), sub_toolbox); @@ -1441,6 +1442,7 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) #if GTK_CHECK_VERSION(3,0,0) GtkWidget* holder = gtk_grid_new(); + gtk_widget_set_name( holder, "ToolbarHolder" ); gtk_grid_attach( GTK_GRID(holder), kludge, 2, 0, 1, 1); #else GtkWidget* holder = gtk_table_new( 1, 3, FALSE ); -- cgit v1.2.3 From 742cc9ebed209c412c7ec315697a373d008320d3 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 17 May 2016 13:22:07 +0200 Subject: GTK3: Fix error if default style.css file not found. Modified patch from houz. (bzr r14897) --- src/main.cpp | 82 ++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 33 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 07d970d59..8cf52127b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -493,7 +493,7 @@ struct poptOption options[] = { POPT_ARG_NONE, &sp_vacuum_defs, SP_ARG_VACUUM_DEFS, N_("Remove unused definitions from the defs section(s) of the document"), NULL}, - + #ifdef WITH_DBUS {"dbus-listen", 0, POPT_ARG_NONE, &sp_dbus_listen, SP_ARG_DBUS_LISTEN, @@ -551,7 +551,7 @@ static void _win32_set_inkscape_env(gchar const *exe) gchar *perl = g_build_filename(exe, "python", NULL); gchar *pythonlib = g_build_filename(exe, "python", "Lib", NULL); gchar *pythondll = g_build_filename(exe, "python", "DLLs", NULL); - + // Python 2.x needs short paths in PYTHONPATH. // Otherwise it doesn't work when Inkscape is installed in Unicode directories. // g_win32_locale_filename_from_utf8 is the GLib wrapper for GetShortPathName. @@ -602,14 +602,14 @@ static void _win32_set_inkscape_env(gchar const *exe) g_free(perl); g_free(pythonlib); g_free(pythondll); - + g_free(python_s); g_free(pythonlib_s); g_free(pythondll_s); g_free(new_path); g_free(new_pythonpath); - + g_free(localepath); } #endif @@ -619,7 +619,7 @@ static void set_extensions_env() gchar const *pythonpath = g_getenv("PYTHONPATH"); gchar *extdir; gchar *new_pythonpath; - + #ifdef WIN32 extdir = g_win32_locale_filename_from_utf8(INKSCAPE_EXTENSIONDIR); #else @@ -905,7 +905,7 @@ static int sp_common_main( int argc, char const **argv, GSList **flDest ) if ( sp_global_printer ) sp_global_printer_utf8 = g_strdup( sp_global_printer ); } - + #ifdef WITH_DBUS // Before initializing extensions, we must set the DBus bus name if required if (sp_dbus_name != NULL) { @@ -1064,40 +1064,56 @@ sp_main_gui(int argc, char const **argv) Glib::ustring inkscape_style = INKSCAPE_UIDIR; inkscape_style += "/style.css"; // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl; - Glib::RefPtr provider = Gtk::CssProvider::create(); - // From 3.16, throws an error which we must catch. - try { - provider->load_from_path (inkscape_style); - } + if (g_file_test (inkscape_style.c_str(), G_FILE_TEST_EXISTS)) { + Glib::RefPtr provider = Gtk::CssProvider::create(); + + // From 3.16, throws an error which we must catch. + try { + provider->load_from_path (inkscape_style); + } #if GTK_CHECK_VERSION(3,16,0) - // Gtk::CssProviderError not defined until 3.16. - catch (const Gtk::CssProviderError& ex) - { - std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style << "\n (" << ex.what() << ")" << std::endl; - } + // Gtk::CssProviderError not defined until 3.16. + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style + << "\n (" << ex.what() << ")" << std::endl; + } #else - catch (...) - {} + catch (...) + {} #endif - provider->load_from_path (inkscape_style); - Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } else { + std::cerr << "sp_main_gui: Cannot find default style file:\n (" << inkscape_style + << ")" << std::endl; + } Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); // std::cout << "CSS Stylesheet User: " << user_style << std::endl; - Glib::RefPtr provider2 = Gtk::CssProvider::create(); - // From 3.16, throws an error which we must catch. - try { - provider2->load_from_path (user_style); - } - catch (...) - {} - provider2->load_from_path (user_style); + if (g_file_test (user_style.c_str(), G_FILE_TEST_EXISTS)) { + Glib::RefPtr provider2 = Gtk::CssProvider::create(); - Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + // From 3.16, throws an error which we must catch. + try { + provider2->load_from_path (user_style); + } +#if GTK_CHECK_VERSION(3,16,0) + // Gtk::CssProviderError not defined until 3.16. + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << user_style + << "\n (" << ex.what() << ")" << std::endl; + } +#else + catch (...) + {} +#endif + Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } #endif gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); @@ -1183,7 +1199,7 @@ static int sp_process_file_list(GSList *fl) if (sp_vacuum_defs) { doc->vacuumDocument(); } - + // Execute command-line actions (selections and verbs) using our local models bool has_performed_actions = Inkscape::CmdLineAction::doList(INKSCAPE.active_action_context()); @@ -1694,9 +1710,9 @@ static int sp_do_export_png(SPDocument *doc) g_print("Background RRGGBBAA: %08x\n", bgcolor); g_print("Area %g:%g:%g:%g exported to %lu x %lu pixels (%g dpi)\n", area[Geom::X][0], area[Geom::Y][0], area[Geom::X][1], area[Geom::Y][1], width, height, dpi); - + reverse(items.begin(),items.end()); - + if ((width >= 1) && (height >= 1) && (width <= PNG_UINT_31_MAX) && (height <= PNG_UINT_31_MAX)) { if( sp_export_png_file(doc, path.c_str(), area, width, height, dpi, dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : std::vector()) == 1 ) { @@ -1866,7 +1882,7 @@ static int do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const* mime) } /** - * Export a document to EMF or WMF + * Export a document to EMF or WMF * * \param doc Document to export. * \param uri URI to export to. -- cgit v1.2.3 From bf37c1d8ecb463130faf2e756dffff0f7efb868c Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 17 May 2016 21:21:49 +0200 Subject: Remove three unneeded widgets in desktop status bar. (bzr r14898) --- src/widgets/desktop-widget.cpp | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index bae26f98c..80e5fdb4f 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -672,10 +672,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) g_signal_connect (G_OBJECT (dtw->hadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); g_signal_connect (G_OBJECT (dtw->vadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); - GtkWidget *statusbar_tail=gtk_statusbar_new(); - gtk_widget_set_name(statusbar_tail, "StatusBarTail"); - gtk_box_pack_end (GTK_BOX (dtw->statusbar), statusbar_tail, FALSE, FALSE, 0); - // zoom status spinbutton dtw->zoom_status = gtk_spin_button_new_with_range (log(SP_DESKTOP_ZOOM_MIN)/log(2), log(SP_DESKTOP_ZOOM_MAX)/log(2), 0.1); gtk_widget_set_name(dtw->zoom_status, "ZoomStatus"); @@ -712,9 +708,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) GTK_FILL, GTK_FILL, 0, 0); #endif - eventbox = gtk_event_box_new (); - gtk_container_add (GTK_CONTAINER (eventbox), dtw->coord_status); - gtk_widget_set_tooltip_text (eventbox, _("Cursor coordinates")); + gtk_widget_set_tooltip_text (dtw->coord_status, _("Cursor coordinates")); GtkWidget *label_x = gtk_label_new(_("X:")); GtkWidget *label_y = gtk_label_new(_("Y:")); @@ -755,7 +749,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #endif sp_set_font_size_smaller (dtw->coord_status); - gtk_box_pack_end (GTK_BOX (statusbar_tail), eventbox, FALSE, FALSE, 1); + + gtk_box_pack_end (GTK_BOX (dtw->statusbar), dtw->coord_status, FALSE, FALSE, 0); dtw->layer_selector = new Inkscape::Widgets::LayerSelector(NULL); // FIXME: need to unreference on container destruction to avoid leak @@ -794,15 +789,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // space label 2 pixels from left edge gtk_container_add (GTK_CONTAINER (dtw->select_status_eventbox), dtw->select_status); -// WHAT DOES THE FOLLOWING GTK_BOX DO? -#if GTK_CHECK_VERSION(3,0,0) - gtk_box_pack_start(GTK_BOX(dtw->statusbar), - gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0), - FALSE, FALSE, 2); -#else - gtk_box_pack_start (GTK_BOX (dtw->statusbar), gtk_hbox_new(FALSE, 0), FALSE, FALSE, 2); -#endif - gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status_eventbox, TRUE, TRUE, 0); gtk_widget_show_all (dtw->vbox); -- cgit v1.2.3 From e2d369f573b2336dd19c66478adad70b8e474251 Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Tue, 17 May 2016 23:15:25 +0200 Subject: Dutch translation update (bzr r14899) --- po/nl.po | 248 +++++++++++++++++++++++++++------------------------------------ 1 file changed, 104 insertions(+), 144 deletions(-) diff --git a/po/nl.po b/po/nl.po index 5711e614b..e4916f9e5 100644 --- a/po/nl.po +++ b/po/nl.po @@ -59,7 +59,7 @@ msgstr "" "Project-Id-Version: inkscape 0.92\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2015-12-27 14:26+0100\n" -"PO-Revision-Date: 2016-02-04 22:35+0100\n" +"PO-Revision-Date: 2016-05-17 23:14+0100\n" "Last-Translator: Kris De Gussem \n" "Language-Team: Dutch\n" "Language: nl\n" @@ -87,7 +87,7 @@ msgstr "Scalable Vector Graphics-afbeeldingen maken en bewerken" #: ../inkscape.desktop.in.h:5 msgid "image;editor;vector;drawing;" -msgstr "" +msgstr "image;editor;vector;drawing;" #: ../inkscape.desktop.in.h:6 msgid "New Drawing" @@ -8756,7 +8756,7 @@ msgstr "Tensor meshgradiënt" #: ../src/gradient-drag.cpp:565 msgid "Added patch row or column" -msgstr "" +msgstr "Patchrij of -kolom toegevoegd" #: ../src/gradient-drag.cpp:798 msgid "Merge gradient handles" @@ -9645,7 +9645,6 @@ msgstr "" #: ../src/live_effects/lpe-bendpath.cpp:181 #: ../src/live_effects/lpe-patternalongpath.cpp:278 -#, fuzzy msgid "Change the width" msgstr "Lijndikte aanpassen" @@ -22962,10 +22961,9 @@ msgid "Drag curve" msgstr "Kromme verslepen" #: ../src/ui/tool/curve-drag-point.cpp:192 -#, fuzzy msgctxt "Path segment tip" msgid "Shift: drag to open or move BSpline handles" -msgstr "Knooppunthandvatten verschuiven" +msgstr "Shift: sleep om BSpline handvatten te openen of verplaatsen" #: ../src/ui/tool/curve-drag-point.cpp:196 msgctxt "Path segment tip" @@ -22978,15 +22976,13 @@ msgid "Ctrl+Alt: click to insert a node" msgstr "Ctrl+Alt: klik om knooppunt in te voegen" #: ../src/ui/tool/curve-drag-point.cpp:204 -#, fuzzy msgctxt "Path segment tip" msgid "" "BSpline segment: drag to shape the segment, doubleclick to insert " "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" -"Beziersegment: sleep om het segment te vervormen, dubbelklik om een " -"knooppunt in te voegen, klik om te selecteren (toetscombinaties: Shift, Ctrl" -"+Alt)" +"BSpline segment: sleep om het segment te vervormen, dubbelklik om een " +"knooppunt in te voegen, klik om te selecteren (meer: Shift, Ctrl+Alt)" #: ../src/ui/tool/curve-drag-point.cpp:209 msgctxt "Path segment tip" @@ -22995,8 +22991,8 @@ msgid "" "insert node, click to select (more: Shift, Ctrl+Alt)" msgstr "" "Recht segment: sleep om te converteren naar een Beziersegment, " -"dubbelklik om een knooppunt in te voegen, klik om te selecteren " -"(toetscombinaties: Shift, Ctrl+Alt)" +"dubbelklik om een knooppunt in te voegen, klik om te selecteren (meer: " +"Shift, Ctrl+Alt)" #: ../src/ui/tool/curve-drag-point.cpp:213 msgctxt "Path segment tip" @@ -23005,8 +23001,7 @@ msgid "" "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" "Beziersegment: sleep om het segment te vervormen, dubbelklik om een " -"knooppunt in te voegen, klik om te selecteren (toetscombinaties: Shift, Ctrl" -"+Alt)" +"knooppunt in te voegen, klik om te selecteren (meer: Shift, Ctrl+Alt)" #: ../src/ui/tool/multi-path-manipulator.cpp:315 msgid "Retract handles" @@ -23118,10 +23113,9 @@ msgid "more: Shift, Ctrl, Alt" msgstr "meer: Shift, Ctrl, Alt" #: ../src/ui/tool/node.cpp:496 -#, fuzzy msgctxt "Path handle tip" msgid "more: Ctrl" -msgstr "meer: Ctrl, Alt" +msgstr "meer: Ctrl" #: ../src/ui/tool/node.cpp:498 msgctxt "Path handle tip" @@ -23170,6 +23164,8 @@ msgstr "" msgctxt "Path handle tip" msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" msgstr "" +"Ctrl: handvat met dit aantal stappen verplaaten in het BSpline Live " +"Effect" #: ../src/ui/tool/node.cpp:532 #, c-format @@ -23184,10 +23180,9 @@ msgid "Shift: rotate both handles by the same angle" msgstr "Shift: beide handvatten met dezelfde hoek roteren" #: ../src/ui/tool/node.cpp:540 -#, fuzzy msgctxt "Path hande tip" msgid "Shift: move handle" -msgstr "Knooppunthandvatten verschuiven" +msgstr "Shift: handvat verschuiven" #: ../src/ui/tool/node.cpp:547 ../src/ui/tool/node.cpp:551 #, c-format @@ -23198,14 +23193,14 @@ msgstr "" "knooppunt (%s)" #: ../src/ui/tool/node.cpp:554 -#, fuzzy, c-format +#, c-format msgctxt "Path handle tip" msgid "" "BSpline node handle: Shift to drag, double click to reset (%s). %g " "power" msgstr "" -"Automatischknooppunthandvat: sleep om om te zetten naar een glad " -"knooppunt (%s)" +"BSpline knooppunthandvat: Shift om te verslepen, dubbelklik om te " +"resetten (%s). %g kracht" #: ../src/ui/tool/node.cpp:574 #, c-format @@ -23245,17 +23240,17 @@ msgstr "Alt: knooppunten boetseren" #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" -"%s: sleep om het pad te vervormen (toetscombinatie: Shift, Ctrl, Alt)" +msgstr "%s: sleep om het pad te vervormen (meer: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1451 -#, fuzzy, c-format +#, c-format msgctxt "Path node tip" msgid "" "BSpline node: drag to shape the path (more: Shift, Ctrl, Alt). %g " "power" msgstr "" -"%s: sleep om het pad te vervormen (toetscombinatie: Shift, Ctrl, Alt)" +"BSpline knooppunt: sleep om het pad te vervormen (meer: Shift, Ctrl, " +"Alt). %g kracht" #: ../src/ui/tool/node.cpp:1454 #, c-format @@ -23265,7 +23260,7 @@ msgid "" "(more: Shift, Ctrl, Alt)" msgstr "" "%s: sleep om het pad te vervormen, klik om te schakelen tussen " -"schalings- en rotatiehandvatten (toetscombinaties: Shift, Ctrl, Alt)" +"schalings- en rotatiehandvatten (meer: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1458 #, c-format @@ -23275,17 +23270,17 @@ msgid "" "Shift, Ctrl, Alt)" msgstr "" "%s: sleep om het pad te vervormen, klik om enkel dit knooppunt te " -"selecteren (toetscombinaties: Shift, Ctrl, Alt)" +"selecteren (meer: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1461 -#, fuzzy, c-format +#, c-format msgctxt "Path node tip" msgid "" "BSpline node: drag to shape the path, click to select only this node " "(more: Shift, Ctrl, Alt). %g power" msgstr "" -"%s: sleep om het pad te vervormen, klik om enkel dit knooppunt te " -"selecteren (toetscombinaties: Shift, Ctrl, Alt)" +"BSpline knooppunt: sleep om het pad te vervormen, klik om enkel dit " +"knooppunt te selecteren (meer: Shift, Ctrl, Alt). %g kracht" #: ../src/ui/tool/node.cpp:1474 #, c-format @@ -23961,14 +23956,12 @@ msgstr "Kies een gereedschap van de gereedschappenbalk." #. create the knots #: ../src/ui/tools/measure-tool.cpp:338 -#, fuzzy msgid "Measure start" -msgstr "Pad opmeten" +msgstr "Begin meetlat" #: ../src/ui/tools/measure-tool.cpp:344 -#, fuzzy msgid "Measure end" -msgstr "Meetlat" +msgstr "Einde meetlat" #: ../src/ui/tools/measure-tool.cpp:719 ../share/extensions/measure.inx.h:2 msgid "Measure" @@ -23976,25 +23969,24 @@ msgstr "Meetlat" #: ../src/ui/tools/measure-tool.cpp:724 msgid "Base" -msgstr "" +msgstr "Basis" #: ../src/ui/tools/measure-tool.cpp:733 msgid "Add guides from measure tool" -msgstr "" +msgstr "Hulplijnen van meetlat toevoegen" #: ../src/ui/tools/measure-tool.cpp:753 -#, fuzzy msgid "Convert measure to items" -msgstr "Omlijning omzetten naar pad" +msgstr "Meting omzetten naar items" #: ../src/ui/tools/measure-tool.cpp:791 msgid "Add global measure line" -msgstr "" +msgstr "Globale meetlijn toevoegen" #: ../src/ui/tools/measure-tool.cpp:1221 ../src/ui/tools/measure-tool.cpp:1223 -#, fuzzy, c-format +#, c-format msgid "Crossing %d" -msgstr "Kruisingstekens" +msgstr "Kruisingv %d" #. TRANSLATORS: Mind the space in front. This is part of a compound message #: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 @@ -24060,9 +24052,8 @@ msgid "FIXMEShift: draw mesh around the starting point" msgstr "Shift: mesh rond het beginpunt tekenen" #: ../src/ui/tools/mesh-tool.cpp:971 -#, fuzzy msgid "Create mesh" -msgstr "Standaardmesh maken" +msgstr "Mesh maken" #: ../src/ui/tools/node-tool.cpp:653 msgctxt "Node tool tip" @@ -24115,7 +24106,7 @@ msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" "Sleep om te bewerken objecten te selecteren, klik om dit object te bewerken " -"(toetscombinatie: Shift)" +"(meer: Shift)" #: ../src/ui/tools/node-tool.cpp:719 msgctxt "Node tool tip" @@ -24143,11 +24134,12 @@ msgid "Click or click and drag to close and finish the path." msgstr "Klik of klik en sleep om een pad te sluiten." #: ../src/ui/tools/pen-tool.cpp:642 -#, fuzzy msgid "" "Click or click and drag to close and finish the path. Shift" "+Click make a cusp node" -msgstr "Klik of klik en sleep om een pad te sluiten." +msgstr "" +"Klik of klik en sleep om een pad te sluiten en af te werken. " +"Shift+klik om een hoekig knooppunt te maken." #: ../src/ui/tools/pen-tool.cpp:654 msgid "" @@ -24156,12 +24148,12 @@ msgstr "" "Klik of klik en sleep om vanaf daar het pad voort te zetten." #: ../src/ui/tools/pen-tool.cpp:656 -#, fuzzy msgid "" "Click or click and drag to continue the path from this point. " "Shift+Click make a cusp node" msgstr "" -"Klik of klik en sleep om vanaf daar het pad voort te zetten." +"Klik of klik en sleep om vanaf dit punt het pad voort te " +"zetten. Shift+klik om een hoekig knooppunt te maken." #: ../src/ui/tools/pen-tool.cpp:1786 #, c-format @@ -24182,22 +24174,22 @@ msgstr "" "stappen te draaien, Enter om het pad af te maken" #: ../src/ui/tools/pen-tool.cpp:1790 -#, fuzzy, c-format +#, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" msgstr "" -"Segment curve: hoek %3.2f°, afstand %s; gebruik Ctrl om " -"in stappen te draaien, Enter om het pad af te maken" +"Segment curve: hoek %3.2f°, afstand %s; gebruik Shit+Klik " +"om een hoekig knooppunt te maken, Enter om het pad af te maken" #: ../src/ui/tools/pen-tool.cpp:1791 -#, fuzzy, c-format +#, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " "make a cusp node, Enter to finish the path" msgstr "" -"Segment lijn: hoek %3.2f°, afstand %s; gebruik Ctrl om in " -"stappen te draaien, Enter om het pad af te maken" +"Segment lijn: hoek %3.2f°, afstand %s; gebruik Shit+Klik " +"om een hoekig knooppunt te maken, Enter om het pad af te maken" #: ../src/ui/tools/pen-tool.cpp:1808 #, c-format @@ -25586,19 +25578,16 @@ msgid "Radial gradient stroke" msgstr "Radiaal lijnkleurverloop" #: ../src/ui/widget/selected-style.cpp:218 -#, fuzzy msgid "M" -msgstr "L" +msgstr "M" #: ../src/ui/widget/selected-style.cpp:221 -#, fuzzy msgid "Mesh gradient fill" -msgstr "Lineair vulkleurverloop" +msgstr "Vulling meshgradiënt" #: ../src/ui/widget/selected-style.cpp:221 -#, fuzzy msgid "Mesh gradient stroke" -msgstr "Lineair lijnkleurverloop" +msgstr "Lijn meshgradiënt" #: ../src/ui/widget/selected-style.cpp:229 msgid "Different" @@ -26277,7 +26266,7 @@ msgstr "Inkscape afsluiten" #: ../src/verbs.cpp:2459 #, fuzzy msgid "New from _Template..." -msgstr "Nieuw van sjabloon" +msgstr "Nieuw van sjabloon..." #: ../src/verbs.cpp:2460 msgid "Create new project from template" @@ -26646,14 +26635,12 @@ msgid "Delete all the guides in the document" msgstr "Alle hulplijnen uit het document verwijderen" #: ../src/verbs.cpp:2549 -#, fuzzy msgid "Lock All Guides" -msgstr "Alles vergrendelen" +msgstr "Alle hulplijnen vergrendelen" #: ../src/verbs.cpp:2549 ../src/widgets/desktop-widget.cpp:402 -#, fuzzy msgid "Toggle lock of all guides in the document" -msgstr "Alle hulplijnen uit het document verwijderen" +msgstr "Alle hulplijnen in het document ver- of ontgrendelen" #: ../src/verbs.cpp:2550 msgid "Create _Guides Around the Page" @@ -27205,11 +27192,8 @@ msgid "Create Cl_ip Group" msgstr "_Klonen" #: ../src/verbs.cpp:2723 -#, fuzzy msgid "Creates a clip group using the selected objects as a base" -msgstr "" -"Een kloon (een aan het origineel gekoppelde kopie) maken van het " -"geselecteerde object" +msgstr "Een afsnijgroep op basis van de geselecteerde objecten maken" #: ../src/verbs.cpp:2725 msgid "Edit clipping path" @@ -28053,19 +28037,16 @@ msgid "Object_s..." msgstr "Objecten tonen" #: ../src/verbs.cpp:2952 -#, fuzzy msgid "View Objects" msgstr "Objecten tonen" #: ../src/verbs.cpp:2953 -#, fuzzy msgid "Selection se_ts..." -msgstr "Selectie" +msgstr "" #: ../src/verbs.cpp:2954 -#, fuzzy msgid "View Tags" -msgstr "Informatie over de aanwezige lagen tonen" +msgstr "Tags tonen" #: ../src/verbs.cpp:2955 msgid "Path E_ffects ..." @@ -28914,14 +28895,12 @@ msgid "%s%s - Inkscape" msgstr "%s%s - Inkscape" #: ../src/widgets/desktop-widget.cpp:1082 -#, fuzzy msgid "Locked all guides" -msgstr "Alle lagen vergrendelen" +msgstr "Alle hulplijnen vergrendeld" #: ../src/widgets/desktop-widget.cpp:1084 -#, fuzzy msgid "Unlocked all guides" -msgstr "Alle lagen ontgrendelen" +msgstr "Alle hulplijnen ontgrendeld" #: ../src/widgets/desktop-widget.cpp:1101 msgid "Color-managed display is enabled in this window" @@ -29378,39 +29357,35 @@ msgstr "Padeffectenvenster openen (om parameters numeriek aan te passen)" #: ../src/widgets/measure-toolbar.cpp:157 msgid "Start and end measures inactive." -msgstr "" +msgstr "Begin en einde meting inactief." #: ../src/widgets/measure-toolbar.cpp:159 msgid "Start and end measures active." -msgstr "" +msgstr "Begin en einde meting actief." #: ../src/widgets/measure-toolbar.cpp:175 msgid "Show only visible crossings." -msgstr "" +msgstr "Alleen zichtbare kruisings tonen." #: ../src/widgets/measure-toolbar.cpp:177 -#, fuzzy msgid "Show all crossings." -msgstr "Alle lagen tonen" +msgstr "Alle kruisings tonen." #: ../src/widgets/measure-toolbar.cpp:193 msgid "Use all layers in the measure." -msgstr "" +msgstr "Alle lagen in de meetlat gebruiken." #: ../src/widgets/measure-toolbar.cpp:195 -#, fuzzy msgid "Use current layer in the measure." -msgstr "Huidige laag boven alle andere plaatsen" +msgstr "Huidige laag in de meetlat gebruiken." #: ../src/widgets/measure-toolbar.cpp:211 -#, fuzzy msgid "Compute all elements." -msgstr "tutorial-elements.nl.svg" +msgstr "Alle elementen berekenen." #: ../src/widgets/measure-toolbar.cpp:213 -#, fuzzy msgid "Compute max length." -msgstr "In-uit padlengte" +msgstr "Max lengte berekenen." #: ../src/widgets/measure-toolbar.cpp:266 ../src/widgets/text-toolbar.cpp:1361 msgid "Font Size" @@ -29438,7 +29413,6 @@ msgid "Decimal precision of measure" msgstr "Decimale precisie van meetlat" #: ../src/widgets/measure-toolbar.cpp:307 -#, fuzzy msgid "Scale %" msgstr "Schaal %" @@ -29483,9 +29457,8 @@ msgstr "Meting omkeren" #: ../src/widgets/measure-toolbar.cpp:387 #: ../src/widgets/measure-toolbar.cpp:388 -#, fuzzy msgid "To guides" -msgstr "_Hulplijnen weergeven" +msgstr "Naar hulplijnen" #: ../src/widgets/measure-toolbar.cpp:397 #: ../src/widgets/measure-toolbar.cpp:398 @@ -29570,12 +29543,12 @@ msgstr "Zijde- en tensorhandvatten tonen" #: ../src/widgets/mesh-toolbar.cpp:509 msgid "WARNING: Mesh SVG Syntax Subject to Change" -msgstr "" +msgstr "WAARSCHUWING: mesh SVG syntax onderhevig aan veranderingen" #: ../src/widgets/mesh-toolbar.cpp:519 msgctxt "Type" msgid "Coons" -msgstr "" +msgstr "Coons" #: ../src/widgets/mesh-toolbar.cpp:522 msgid "Bicubic" @@ -29583,54 +29556,51 @@ msgstr "Bicubisch" #: ../src/widgets/mesh-toolbar.cpp:524 msgid "Coons" -msgstr "" +msgstr "Coons" #: ../src/widgets/mesh-toolbar.cpp:525 msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." -msgstr "" +msgstr "Coons: geen afvlakking. Bicubisch: afvlakking langs patchranden." #: ../src/widgets/mesh-toolbar.cpp:527 ../src/widgets/pencil-toolbar.cpp:374 msgid "Smoothing:" msgstr "Afvlakking:" #: ../src/widgets/mesh-toolbar.cpp:537 -#, fuzzy msgid "Toggle Sides" -msgstr "Superscript" +msgstr "Zijden aanpassen" #: ../src/widgets/mesh-toolbar.cpp:538 msgid "Toggle selected sides between Beziers and lines." -msgstr "" +msgstr "Zijden veranderen tussen Beziers en lijnen." #: ../src/widgets/mesh-toolbar.cpp:541 -#, fuzzy msgid "Toggle side:" -msgstr "_Focus modus aan/uitzetten" +msgstr "Zijde aanpassen:" #: ../src/widgets/mesh-toolbar.cpp:548 -#, fuzzy msgid "Make elliptical" -msgstr "Cursief maken" +msgstr "Elliptisch maken" #: ../src/widgets/mesh-toolbar.cpp:549 msgid "" "Make selected sides elliptical by changing length of handles. Works best if " "handles already approximate ellipse." msgstr "" +"Geselecteerde zijden elliptisch maken door het aanpassen van de " +"handvatlengte. Werkt het beste indien de handvatten reeds ellipsen benaderen." #: ../src/widgets/mesh-toolbar.cpp:552 -#, fuzzy msgid "Make elliptical:" -msgstr "Cursief maken" +msgstr "Elliptisch maken:" #: ../src/widgets/mesh-toolbar.cpp:559 -#, fuzzy msgid "Pick colors:" -msgstr "Kleur punten" +msgstr "Kleuren kiezen:" #: ../src/widgets/mesh-toolbar.cpp:560 msgid "Pick colors for selected corner nodes from underneath mesh." -msgstr "" +msgstr "Kleuren van geselecteerde hoekknooppunten onder mesh kiezen." #: ../src/widgets/mesh-toolbar.cpp:563 msgid "Pick Color" @@ -31047,7 +31017,7 @@ msgstr "Verticaal — RL" #: ../src/widgets/text-toolbar.cpp:1499 msgid "Vertical text — lines: right to left" -msgstr "" +msgstr "Verticale tekst — lijnen: rechts naar links" #: ../src/widgets/text-toolbar.cpp:1505 msgid "Vertical — LR" @@ -31055,7 +31025,7 @@ msgstr "Verticaal — LR" #: ../src/widgets/text-toolbar.cpp:1506 msgid "Vertical text — lines: left to right" -msgstr "" +msgstr "Verticale tekst — lijnen: links naar rechts" #. Name #: ../src/widgets/text-toolbar.cpp:1511 @@ -33614,9 +33584,8 @@ msgid "SVG Unit:" msgstr "SVG-eenheid:" #: ../share/extensions/empty_generic.inx.h:5 -#, fuzzy msgid "Canvas background:" -msgstr "Achtergrond bewaren" +msgstr "Canvasachtergrond:" #: ../share/extensions/empty_generic.inx.h:6 #: ../share/extensions/empty_page.inx.h:5 @@ -35401,9 +35370,8 @@ msgstr "" #: ../share/extensions/hpgl_output.inx.h:28 #: ../share/extensions/plotter.inx.h:56 -#, fuzzy msgid "Precut" -msgstr "Voorsnijden gebruiken" +msgstr "Voorsnijden" #: ../share/extensions/hpgl_output.inx.h:29 #: ../share/extensions/plotter.inx.h:57 @@ -35459,15 +35427,13 @@ msgid "Export an HP Graphics Language file" msgstr "Naar een HP Graphics Language bestand exporteren" #: ../share/extensions/image_attributes.inx.h:1 -#, fuzzy msgid "Set Image Attributes" -msgstr "Attributen instellen" +msgstr "Afbeeldingsattributen instellen" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:3 -#, fuzzy msgid "Basic" -msgstr "Latijns, basis" +msgstr "Basis" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:5 @@ -35503,9 +35469,8 @@ msgstr "" #. image-rendering #: ../share/extensions/image_attributes.inx.h:17 -#, fuzzy msgid "Scope:" -msgstr "Bereik" +msgstr "Bereik:" #. image-rendering #: ../share/extensions/image_attributes.inx.h:19 @@ -35514,41 +35479,34 @@ msgid "Unset" msgstr "Vergroten" #: ../share/extensions/image_attributes.inx.h:20 -#, fuzzy msgid "Change only selected image(s)" -msgstr "Alleen geselecteerde knooppunten veranderen" +msgstr "Alleen geselecteerde afbeelding(en) aanpassen" #: ../share/extensions/image_attributes.inx.h:21 -#, fuzzy msgid "Change all images in selection" -msgstr "Kon geen ellips in selectie vinden" +msgstr "Alle afbeeldingen in selectie aanpassen" #: ../share/extensions/image_attributes.inx.h:22 -#, fuzzy msgid "Change all images in document" -msgstr "De spelling van de tekst in het document controleren" +msgstr "Alle afbeeldingen in het document aanpassen" #. image-rendering #: ../share/extensions/image_attributes.inx.h:24 -#, fuzzy msgid "Image Rendering Quality" -msgstr "Renderen van afbeelding:" +msgstr "Kwaliteit renderen van afbeelding:" #. image-rendering #: ../share/extensions/image_attributes.inx.h:26 -#, fuzzy msgid "Image rendering attribute:" -msgstr "Rendermodus afbeelding:" +msgstr "Renderattribuut afbeelding:" #: ../share/extensions/image_attributes.inx.h:27 -#, fuzzy msgid "Apply attribute to parent group of selection" -msgstr "Transformatie toepassen op selectie" +msgstr "attribuut toepassen op oudergroep of selectie" #: ../share/extensions/image_attributes.inx.h:28 -#, fuzzy msgid "Apply attribute to SVG root" -msgstr "Te veranderen attribuut:" +msgstr "Attribuut toepassen op SVG-root" #: ../share/extensions/ink2canvas.inx.h:1 msgid "Convert to html5 canvas" @@ -35640,9 +35598,8 @@ msgstr "Stijl interpoleren" #: ../share/extensions/interp.inx.h:7 #: ../share/extensions/interp_att_g.inx.h:10 -#, fuzzy msgid "Use Z-order" -msgstr "Verhoogde rand" +msgstr "Z-orde gebruiken" #: ../share/extensions/interp.inx.h:8 #: ../share/extensions/interp_att_g.inx.h:11 @@ -36602,9 +36559,8 @@ msgid "Start of Path" msgstr "Begin van pad" #: ../share/extensions/measure.inx.h:31 -#, fuzzy msgid "Center of BBox" -msgstr "Massacentrum" +msgstr "Middelpunt van omvattend vak" #: ../share/extensions/measure.inx.h:32 msgid "Center of Mass" @@ -36980,6 +36936,8 @@ msgid "" "The Byte size of your serial connection, 99% of all plotters use the default " "setting (Default: 8 Bits)" msgstr "" +"Bytegrootte van de seriële verbinding, 99% van de plotters gebruiken de " +"standaardwaarde (8 bits)" #: ../share/extensions/plotter.inx.h:11 msgid "Serial stop bits:" @@ -36991,6 +36949,8 @@ msgid "" "The Stop bits of your serial connection, 99% of all plotters use the default " "setting (Default: 1 Bit)" msgstr "" +"Stopbits van de seriële verbinding, 99% van de plotters gebruiken de " +"standaardwaarde (1 bit)" #: ../share/extensions/plotter.inx.h:14 msgid "Serial parity:" @@ -37002,6 +36962,8 @@ msgid "" "The Parity of your serial connection, 99% of all plotters use the default " "setting (Default: None)" msgstr "" +"Pariteit van de seriële verbinding, 99% van de plotters gebruiken de " +"standaardwaarde (geen)" #: ../share/extensions/plotter.inx.h:17 msgid "Serial flow control:" @@ -37641,9 +37603,8 @@ msgid "Bottom" msgstr "Onderaan" #: ../share/extensions/restack.inx.h:21 -#, fuzzy msgid "Based on Z-Order" -msgstr "Verhoogde rand" +msgstr "Gebaseerd op Z-orde" #: ../share/extensions/restack.inx.h:22 #, fuzzy @@ -37651,13 +37612,12 @@ msgid "Restack Mode" msgstr "Herstapelen" #: ../share/extensions/restack.inx.h:23 -#, fuzzy msgid "Reverse Z-Order" -msgstr "Kleurverloop omdraaien" +msgstr "Z-orde omkeren" #: ../share/extensions/restack.inx.h:24 msgid "Shuffle Z-Order" -msgstr "" +msgstr "Z-orde shuffelen" #: ../share/extensions/restack.inx.h:26 msgid "" -- cgit v1.2.3 From dcda41314bb620511d799e7cb633831f5ab18cab Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 18 May 2016 10:45:50 +0200 Subject: Remove unneeded widget in Status Bar. Reorder code. Use two lines for status message in Gtk3. (bzr r14900) --- share/ui/style.css | 12 +++---- src/widgets/desktop-widget.cpp | 79 +++++++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 43 deletions(-) diff --git a/share/ui/style.css b/share/ui/style.css index 091cfc319..6729344d2 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -41,13 +41,9 @@ @define-color bg_color7 #636363; @define-color bg_color8 #000000; /* Black */ -/* Gtk <= 3.18 */ -GtkWidget { -/* font-size: 12pt; */ -} - -/* Gtk >= 3.19.2 */ -widget { +/* 'GtkWidget' for Gtk <= 3.18 */ +/* 'widget' for Gtk <= 3.19.2 */ +GtkWidget, widget { /* font-size: 12pt; */ } @@ -96,7 +92,7 @@ combobox window.popup scrolledwindow treeview separator { -GtkComboBox-appears-as-list: true; } -#guides_lock { +#LockGuides { padding: 0; } diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 80e5fdb4f..c3e0ae372 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -249,7 +249,7 @@ SPDesktopWidget::setMessage (Inkscape::MessageType type, const gchar *message) gdk_window_process_updates(gtk_widget_get_window(GTK_WIDGET(sb)), TRUE); } - gtk_widget_set_tooltip_text (this->select_status_eventbox, gtk_label_get_text (sb)); + gtk_widget_set_tooltip_text (this->select_status, gtk_label_get_text (sb)); } Geom::Point @@ -479,9 +479,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // Horizontal scrollbar dtw->hadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0)); - - - #if GTK_CHECK_VERSION(3,0,0) dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj)); gtk_widget_set_name(dtw->hscrollbar, "HorizontalScrollbar"); @@ -656,10 +653,19 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #endif } + // connect scrollbar signals + g_signal_connect (G_OBJECT (dtw->hadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); + g_signal_connect (G_OBJECT (dtw->vadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); + + + // --------------- Status Tool Bar ------------------// + + // Selected Style (Fill/Stroke/Opacity) dtw->selected_style = new Inkscape::UI::Widget::SelectedStyle(true); GtkHBox *ss_ = dtw->selected_style->gobj(); gtk_box_pack_start (GTK_BOX (dtw->statusbar), GTK_WIDGET(ss_), FALSE, FALSE, 0); + // Separator gtk_box_pack_start(GTK_BOX(dtw->statusbar), #if GTK_CHECK_VERSION(3,0,0) gtk_separator_new(GTK_ORIENTATION_VERTICAL), @@ -668,11 +674,37 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #endif FALSE, FALSE, 0); - // connect scrollbar signals - g_signal_connect (G_OBJECT (dtw->hadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); - g_signal_connect (G_OBJECT (dtw->vadj), "value-changed", G_CALLBACK (sp_desktop_widget_adjustment_value_changed), dtw); + // Layer Selector + dtw->layer_selector = new Inkscape::Widgets::LayerSelector(NULL); + // FIXME: need to unreference on container destruction to avoid leak + dtw->layer_selector->reference(); + //dtw->layer_selector->set_size_request(-1, SP_ICON_SIZE_BUTTON); + gtk_box_pack_start(GTK_BOX(dtw->statusbar), GTK_WIDGET(dtw->layer_selector->gobj()), FALSE, FALSE, 1); + + // Select Status + dtw->select_status = gtk_label_new (NULL); + gtk_widget_set_name( dtw->select_status, "SelectStatus"); + gtk_label_set_ellipsize (GTK_LABEL(dtw->select_status), PANGO_ELLIPSIZE_END); +#if GTK_CHECK_VERSION(3,10,0) + gtk_label_set_line_wrap (GTK_LABEL(dtw->select_status), true); + gtk_label_set_lines (GTK_LABEL(dtw->select_status), 2); +#endif + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(dtw->select_status, GTK_ALIGN_START); +#else + gtk_misc_set_alignment (GTK_MISC (dtw->select_status), 0.0, 0.5); +#endif + + gtk_widget_set_size_request (dtw->select_status, 1, -1); + + // Display the initial welcome message in the statusbar + gtk_label_set_markup (GTK_LABEL (dtw->select_status), _("Welcome to Inkscape! Use shape or freehand tools to create objects; use selector (arrow) to move or transform them.")); + + gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status, TRUE, TRUE, 0); + - // zoom status spinbutton + // Zoom status spinbutton dtw->zoom_status = gtk_spin_button_new_with_range (log(SP_DESKTOP_ZOOM_MIN)/log(2), log(SP_DESKTOP_ZOOM_MAX)/log(2), 0.1); gtk_widget_set_name(dtw->zoom_status, "ZoomStatus"); gtk_widget_set_tooltip_text (dtw->zoom_status, _("Zoom")); @@ -688,10 +720,10 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->zoom_update = g_signal_connect (G_OBJECT (dtw->zoom_status), "value_changed", G_CALLBACK (sp_dtw_zoom_value_changed), dtw); dtw->zoom_update = g_signal_connect (G_OBJECT (dtw->zoom_status), "populate_popup", G_CALLBACK (sp_dtw_zoom_populate_popup), dtw); - // cursor coordinates + // Cursor coordinates #if GTK_CHECK_VERSION(3,0,0) dtw->coord_status = gtk_grid_new(); - gtk_widget_set_name(dtw->coord_status, "CoordinateStatus"); + gtk_widget_set_name(dtw->coord_status, "CoordinateAndZStatus"); gtk_grid_set_row_spacing(GTK_GRID(dtw->coord_status), 0); gtk_grid_set_column_spacing(GTK_GRID(dtw->coord_status), 2); GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL); @@ -752,12 +784,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_box_pack_end (GTK_BOX (dtw->statusbar), dtw->coord_status, FALSE, FALSE, 0); - dtw->layer_selector = new Inkscape::Widgets::LayerSelector(NULL); - // FIXME: need to unreference on container destruction to avoid leak - dtw->layer_selector->reference(); - //dtw->layer_selector->set_size_request(-1, SP_ICON_SIZE_BUTTON); - gtk_box_pack_start(GTK_BOX(dtw->statusbar), GTK_WIDGET(dtw->layer_selector->gobj()), FALSE, FALSE, 1); - + // --------------- Color Management ---------------- // dtw->_tracker = ege_color_prof_tracker_new(GTK_WIDGET(dtw->layer_selector->gobj())); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display"); @@ -772,25 +799,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) g_signal_connect( G_OBJECT(dtw->_tracker), "changed", G_CALLBACK(sp_dtw_color_profile_event), dtw ); - dtw->select_status_eventbox = gtk_event_box_new (); - gtk_widget_set_name(dtw->select_status_eventbox, "SelectStatusEventBox"); - dtw->select_status = gtk_label_new (NULL); - gtk_label_set_ellipsize (GTK_LABEL(dtw->select_status), PANGO_ELLIPSIZE_END); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_halign(dtw->select_status, GTK_ALIGN_START); -#else - gtk_misc_set_alignment (GTK_MISC (dtw->select_status), 0.0, 0.5); -#endif - - gtk_widget_set_size_request (dtw->select_status, 1, -1); - // display the initial welcome message in the statusbar - gtk_label_set_markup (GTK_LABEL (dtw->select_status), _("Welcome to Inkscape! Use shape or freehand tools to create objects; use selector (arrow) to move or transform them.")); - // space label 2 pixels from left edge - gtk_container_add (GTK_CONTAINER (dtw->select_status_eventbox), dtw->select_status); - - gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status_eventbox, TRUE, TRUE, 0); - + // ------------------ Finish Up -------------------- // gtk_widget_show_all (dtw->vbox); gtk_widget_grab_focus (GTK_WIDGET(dtw->canvas)); -- cgit v1.2.3 From 30cdce52c67422b6403fc5bc54fbc4a0404a5b3a Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 18 May 2016 13:47:57 +0200 Subject: GTK3: Give even more widgets names. (bzr r14901) --- src/ui/dialog/swatches.cpp | 1 + src/ui/previewholder.cpp | 4 ++++ src/ui/widget/panel.cpp | 6 +++++- src/widgets/desktop-widget.cpp | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 924ebe03d..f2298b59b 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -594,6 +594,7 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath) : _currentDesktop(0), _currentDocument(0) { + set_name( "SwatchesPanel" ); Gtk::RadioMenuItem* hotItem = 0; _holder = new PreviewHolder(); _clear = new ColorItem( ege::PaintDef::CLEAR ); diff --git a/src/ui/previewholder.cpp b/src/ui/previewholder.cpp index beb83f35c..5e75179a3 100644 --- a/src/ui/previewholder.cpp +++ b/src/ui/previewholder.cpp @@ -49,16 +49,20 @@ PreviewHolder::PreviewHolder() : _wrap(false), _border(BORDER_NONE) { + set_name( "PreviewHolder" ); _scroller = Gtk::manage(new Gtk::ScrolledWindow()); + _scroller->set_name( "PreviewHolderScroller" ); ((Gtk::ScrolledWindow *)_scroller)->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); #if WITH_GTKMM_3_0 _insides = Gtk::manage(new Gtk::Grid()); + _insides->set_name( "PreviewHolderGrid" ); _insides->set_column_spacing(8); // Add a container with the scroller and a spacer Gtk::Grid* spaceHolder = Gtk::manage(new Gtk::Grid()); + spaceHolder->set_name( "PreviewHolderSpaceHolder" ); _scroller->set_hexpand(); _scroller->set_vexpand(); diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index 5d4a25a68..ab13577d7 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -73,6 +73,7 @@ Panel::Panel(Glib::ustring const &label, gchar const *prefs_path, _action_area(0), _fillable(0) { + set_name( "InkscapePanel" ); #if WITH_GTKMM_3_0 set_orientation( Gtk::ORIENTATION_VERTICAL ); #endif @@ -284,7 +285,10 @@ void Panel::_init() pack_start(_top_bar, false, false); Gtk::HBox* boxy = Gtk::manage(new Gtk::HBox()); - + boxy->set_name( "PanelBoxY" ); + _contents.set_name( "PanelContents" ); + _right_bar.set_name( "PanelRightBar" ); + _top_bar.set_name( "PanelTopBar" ); boxy->pack_start(_contents, true, true); boxy->pack_start(_right_bar, false, true); diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index c3e0ae372..0cee426b6 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -366,7 +366,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->panels = new SwatchesPanel("/embedded/swatches" /*false*/); dtw->panels->setOrientation(SP_ANCHOR_SOUTH); - dtw->panels->set_name("SwatchesPanel"); #if GTK_CHECK_VERSION(3,0,0) dtw->panels->set_vexpand(false); #endif @@ -727,6 +726,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_grid_set_row_spacing(GTK_GRID(dtw->coord_status), 0); gtk_grid_set_column_spacing(GTK_GRID(dtw->coord_status), 2); GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL); + gtk_widget_set_name(sep, "CoordinateSeparator"); gtk_grid_attach(GTK_GRID(dtw->coord_status), GTK_WIDGET(sep), 0, 0, 1, 2); -- cgit v1.2.3 From 0a5ca4a41841f4d42dc051255562724a3b64bf66 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 18 May 2016 15:35:03 +0200 Subject: GTK3: Another widget named. (bzr r14902) --- src/ui/dialog/color-item.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index 6603d5c69..34cdb92e3 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -571,6 +571,8 @@ Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewS widget = lbl; } else { GtkWidget* eekWidget = eek_preview_new(); + gtk_widget_set_name( eekWidget, "ColorItemPreview" ); + EekPreview * preview = EEK_PREVIEW(eekWidget); Gtk::Widget* newBlot = Glib::wrap(eekWidget); _regenPreview(preview); -- cgit v1.2.3 From 2e2860676eb00a988435464e0a645e3ff450e77f Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 20 May 2016 00:11:42 +0200 Subject: Fix a bug in node editor in BSpline mode, wrong power when moving nodes (bzr r14903) --- src/ui/tool/path-manipulator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/tool/path-manipulator.cpp b/src/ui/tool/path-manipulator.cpp index 3b25439f3..de071dad3 100644 --- a/src/ui/tool/path-manipulator.cpp +++ b/src/ui/tool/path-manipulator.cpp @@ -1292,7 +1292,7 @@ double PathManipulator::_bsplineHandlePosition(Handle *h, bool check_other) line_inside_nodes->moveto(n->position()); line_inside_nodes->lineto(next_node->position()); if(!are_near(h->position(), n->position())){ - pos = Geom::nearest_time(Geom::Point(h->position()[X] - HANDLE_CUBIC_GAP, h->position()[Y] + HANDLE_CUBIC_GAP), *line_inside_nodes->first_segment()); + pos = Geom::nearest_time(Geom::Point(h->position()[X] - HANDLE_CUBIC_GAP, h->position()[Y] - HANDLE_CUBIC_GAP), *line_inside_nodes->first_segment()); } } if (pos == NO_POWER && check_other){ -- cgit v1.2.3 From 7dd82b62c1175971e19e456989fd8b8543d03e28 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Fri, 20 May 2016 03:15:14 +0100 Subject: Set executable flag in CMake installation of extension scripts (bzr r14904) --- share/extensions/CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/share/extensions/CMakeLists.txt b/share/extensions/CMakeLists.txt index c167a156a..74819309d 100644 --- a/share/extensions/CMakeLists.txt +++ b/share/extensions/CMakeLists.txt @@ -1,3 +1,4 @@ +# Install the set of non-executable data files file(GLOB _FILES "README" "fontfix.conf" @@ -13,13 +14,20 @@ file(GLOB _FILES "svg2xaml.xsl" "xaml2svg.xsl" "inkscape.extension.rng" + "*.inx" + ) + +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions) + +# Install the executable scripts +file(GLOB _SCRIPTS "*.py" "*.pl" "*.sh" "*.rb" - "*.inx" ) -install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions) + +install(PROGRAMS ${_SCRIPTS} DESTINATION ${SHARE_INSTALL}/inkscape/extensions) file(GLOB _FILES "alphabet_soup/*.svg") install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/alphabet_soup) -- cgit v1.2.3 From 3d31e212ee3ea2ba498bd15caf46728e5a46bb4d Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 21 May 2016 10:19:53 +0200 Subject: Fix some snapping bugs that lead to infinite transforms and crashes in 2geom Fixed bugs: - https://launchpad.net/bugs/1541727 (bzr r14905) --- src/pure-transform.cpp | 38 ++++++++++++++++++++++++++------------ src/pure-transform.h | 12 ++++++------ 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/pure-transform.cpp b/src/pure-transform.cpp index 9c7054b9f..db4926258 100644 --- a/src/pure-transform.cpp +++ b/src/pure-transform.cpp @@ -63,9 +63,9 @@ void PureTransform::snap(::SnapManager *sm, std::vectorconstrainedSnap(p, dedicated_constraint, bbox_to_snap); } -void PureStretchConstrained::storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point) { +void PureStretchConstrained::storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point) { Geom::Point const a = snapped_point.getPoint() - _origin; // vector to snapped point Geom::Point const b = original_point.getPoint() - _origin; // vector to original point (not the transformed point!) _stretch_snapped = Geom::Scale(Geom::infinity(), Geom::infinity()); - if (fabs(b[_direction]) > 1e-6) { // if STRETCHING will occur for this point + if (fabs(b[_direction]) > 1e-4) { // if STRETCHING will occur for this point _stretch_snapped[_direction] = a[_direction] / b[_direction]; _stretch_snapped[1-_direction] = _uniform ? _stretch_snapped[_direction] : 1; } else { // STRETCHING might occur for this point, but only when the stretching is uniform - if (_uniform && fabs(b[1-_direction]) > 1e-6) { + if (_uniform && fabs(b[1-_direction]) > 1e-4) { _stretch_snapped[1-_direction] = a[1-_direction] / b[1-_direction]; _stretch_snapped[_direction] = _stretch_snapped[1-_direction]; } @@ -304,7 +318,7 @@ SnappedPoint PureSkewConstrained::snap(::SnapManager *sm, SnapCandidatePoint con return sm->constrainedSnap(p, Inkscape::Snapper::SnapConstraint(constraint_vector), bbox_to_snap); } -void PureSkewConstrained::storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point) { +void PureSkewConstrained::storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point) { Geom::Point const b = original_point.getPoint() - _origin; // vector to original point (not the transformed point!) _skew_snapped = (snapped_point.getPoint()[_direction] - (original_point.getPoint())[_direction]) / b[1 - _direction]; // skew factor @@ -335,7 +349,7 @@ SnappedPoint PureRotateConstrained::snap(::SnapManager *sm, SnapCandidatePoint c return sm->constrainedSnap(p, dedicated_constraint, bbox_to_snap); } -void PureRotateConstrained::storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point) { +void PureRotateConstrained::storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point) { Geom::Point const a = snapped_point.getPoint() - _origin; // vector to snapped point Geom::Point const b = (original_point.getPoint() - _origin); // vector to original point (not the transformed point!) // a is vector to snapped point; b is vector to original point; now lets calculate angle between a and b diff --git a/src/pure-transform.h b/src/pure-transform.h index f973a95b1..98aa9772a 100644 --- a/src/pure-transform.h +++ b/src/pure-transform.h @@ -26,7 +26,7 @@ class PureTransform { protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const = 0; virtual Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const = 0; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point) = 0; + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point) = 0; public: //PureTransform(); @@ -48,7 +48,7 @@ protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const; virtual Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point); + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point); public: // PureTranslate(); // Default constructor @@ -90,7 +90,7 @@ protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const; virtual Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point); + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point); public: // PureScale(); // Default constructor @@ -135,7 +135,7 @@ protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const; virtual Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point); + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point); public: virtual ~PureStretchConstrained() {}; @@ -172,7 +172,7 @@ protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const; Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point); + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point); public: virtual ~PureSkewConstrained() {}; @@ -203,7 +203,7 @@ protected: virtual SnappedPoint snap(::SnapManager *sm, SnapCandidatePoint const &p, Geom::Point pt_orig, Geom::OptRect const &bbox_to_snap) const; virtual Geom::Point getTransformedPoint(SnapCandidatePoint const &p) const; - virtual void storeTransform(SnapCandidatePoint const original_point, SnappedPoint snapped_point); + virtual void storeTransform(SnapCandidatePoint const &original_point, SnappedPoint &snapped_point); public: // PureRotate(); // Default constructor -- cgit v1.2.3 From 930591ebe1aaeb5827db8e0c66e2ef0329f7dcf0 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 21 May 2016 10:21:05 +0200 Subject: Adjust some thresholds for finding intersections in elliptical arcs Fixed bugs: - https://launchpad.net/bugs/1479167 (bzr r14906) --- src/2geom/elliptical-arc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/2geom/elliptical-arc.cpp b/src/2geom/elliptical-arc.cpp index a0e379a21..ec62b4be2 100644 --- a/src/2geom/elliptical-arc.cpp +++ b/src/2geom/elliptical-arc.cpp @@ -570,13 +570,13 @@ void EllipticalArc::_filterIntersections(std::vector &xs, boo std::vector::reverse_iterator i = xs.rbegin(), last = xs.rend(); while (i != last) { Coord &t = is_first ? i->first : i->second; - assert(are_near(_ellipse.pointAt(t), i->point(), 1e-6)); + assert(are_near(_ellipse.pointAt(t), i->point(), 1e-5)); t = timeAtAngle(t); if (!unit.contains(t)) { xs.erase((++i).base()); continue; } else { - assert(are_near(pointAt(t), i->point(), 1e-6)); + assert(are_near(pointAt(t), i->point(), 1e-5)); ++i; } } -- cgit v1.2.3 From 9e9ce2c30be9d6af144ff07f69c15c508d84e776 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 21 May 2016 11:58:25 +0200 Subject: Fix regression: restore order in resources (e.g. pattern list) (bzr r14907) --- src/color-profile.cpp | 4 ++-- src/document-private.h | 2 +- src/document.cpp | 17 +++++++++-------- src/document.h | 2 +- src/gradient-chemistry.cpp | 4 ++-- src/gradient-drag.cpp | 4 ++-- src/layer-manager.cpp | 10 +++++----- src/profile-manager.cpp | 5 ++--- src/resource-manager.cpp | 8 ++++---- src/sp-guide.cpp | 2 +- src/ui/dialog/document-properties.cpp | 32 ++++++++++++++++---------------- src/ui/dialog/filter-effects-dialog.cpp | 4 ++-- src/ui/dialog/svg-fonts-dialog.cpp | 4 ++-- src/ui/dialog/swatches.cpp | 16 ++++++++-------- src/ui/interface.cpp | 4 ++-- src/ui/widget/color-icc-selector.cpp | 4 ++-- src/widgets/desktop-widget.cpp | 4 ++-- src/widgets/gradient-toolbar.cpp | 4 ++-- src/widgets/gradient-vector.cpp | 4 ++-- src/widgets/paint-selector.cpp | 4 ++-- src/xml/rebase-hrefs.cpp | 4 ++-- 21 files changed, 71 insertions(+), 71 deletions(-) diff --git a/src/color-profile.cpp b/src/color-profile.cpp index bcefe994a..523026aa5 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -489,8 +489,8 @@ static int getLcmsIntent( guint svgIntent ) static SPObject* bruteFind( SPDocument* document, gchar const* name ) { SPObject* result = 0; - std::set current = document->getResourceList("iccprofile"); - for (std::set::const_iterator it = current.begin(); (!result) && (it != current.end()); ++it) { + std::vector current = document->getResourceList("iccprofile"); + for (std::vector::const_iterator it = current.begin(); (!result) && (it != current.end()); ++it) { if ( IS_COLORPROFILE(*it) ) { ColorProfile* prof = COLORPROFILE(*it); if ( prof ) { diff --git a/src/document-private.h b/src/document-private.h index eaed0020e..9cac8fac6 100644 --- a/src/document-private.h +++ b/src/document-private.h @@ -49,7 +49,7 @@ struct SPDocumentPrivate { IDChangedSignalMap id_changed_signals; /* Resources */ - std::map > resources; + std::map > resources; ResourcesChangedSignalMap resources_changed_signals; sigc::signal destroySignal; diff --git a/src/document.cpp b/src/document.cpp index 7086fc0be..2500a5cee 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1541,9 +1541,9 @@ bool SPDocument::addResource(gchar const *key, SPObject *object) bool result = false; if ( !object->cloned ) { - std::set rlist = priv->resources[key]; - g_return_val_if_fail(rlist.find(object) == rlist.end(), false); - priv->resources[key].insert(object); + std::vector rlist = priv->resources[key]; + g_return_val_if_fail(std::find(rlist.begin(),rlist.end(),object) == rlist.end(), false); + priv->resources[key].insert(priv->resources[key].begin(),object); GQuark q = g_quark_from_string(key); @@ -1572,10 +1572,11 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object) bool result = false; if ( !object->cloned ) { - std::set rlist = priv->resources[key]; + std::vector rlist = priv->resources[key]; g_return_val_if_fail(!rlist.empty(), false); - g_return_val_if_fail(rlist.find(object) != rlist.end(), false); - priv->resources[key].erase(object); + std::vector::iterator it = std::find(priv->resources[key].begin(),priv->resources[key].end(),object); + g_return_val_if_fail(it != rlist.end(), false); + priv->resources[key].erase(it); GQuark q = g_quark_from_string(key); priv->resources_changed_signals[q].emit(); @@ -1586,9 +1587,9 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object) return result; } -std::set const SPDocument::getResourceList(gchar const *key) const +std::vector const SPDocument::getResourceList(gchar const *key) const { - std::set emptyset; + std::vector emptyset; g_return_val_if_fail(key != NULL, emptyset); g_return_val_if_fail(*key != '\0', emptyset); diff --git a/src/document.h b/src/document.h index 825049cd5..653e9d0db 100644 --- a/src/document.h +++ b/src/document.h @@ -260,7 +260,7 @@ public: int ensureUpToDate(); bool addResource(char const *key, SPObject *object); bool removeResource(char const *key, SPObject *object); - const std::set getResourceList(char const *key) const; + const std::vector getResourceList(char const *key) const; std::vector getItemsInBox(unsigned int dkey, Geom::Rect const &box, bool into_groups = false) const; std::vector getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box, bool into_groups = false) const; SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index 7b4c0ac20..edeb523d7 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -1612,8 +1612,8 @@ void sp_gradient_unset_swatch(SPDesktop *desktop, std::string id) SPDocument *doc = desktop ? desktop->doc() : 0; if (doc) { - const std::set gradients = doc->getResourceList("gradient"); - for (std::set::const_iterator i = gradients.begin(); i != gradients.end(); ++i) { + const std::vector gradients = doc->getResourceList("gradient"); + for (std::vector::const_iterator i = gradients.begin(); i != gradients.end(); ++i) { SPGradient* grad = SP_GRADIENT(*i); if ( id == grad->getId() ) { grad->setSwatch(false); diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 8fd997121..613dc2fc1 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -208,8 +208,8 @@ Glib::ustring GrDrag::makeStopSafeColor( gchar const *str, bool &isNull ) Glib::ustring::size_type pos = colorStr.find("url(#"); if ( pos != Glib::ustring::npos ) { Glib::ustring targetName = colorStr.substr(pos + 5, colorStr.length() - 6); - std::set gradients = desktop->doc()->getResourceList("gradient"); - for (std::set::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { + std::vector gradients = desktop->doc()->getResourceList("gradient"); + for (std::vector::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { SPGradient* grad = SP_GRADIENT(*it); if ( targetName == grad->getId() ) { SPGradient *vect = grad->getVector(); diff --git a/src/layer-manager.cpp b/src/layer-manager.cpp index c0fe95dd7..19c4b890c 100644 --- a/src/layer-manager.cpp +++ b/src/layer-manager.cpp @@ -191,10 +191,10 @@ Glib::ustring LayerManager::getNextLayerName( SPObject* obj, gchar const *label) } std::set currentNames; - std::set layers = _document->getResourceList("layer"); + std::vector layers = _document->getResourceList("layer"); SPObject *root=_desktop->currentRoot(); if ( root ) { - for (std::set::const_iterator iter = layers.begin(); iter != layers.end(); ++iter) { + for (std::vector::const_iterator iter = layers.begin(); iter != layers.end(); ++iter) { if (*iter != obj) currentNames.insert( (*iter)->label() ? Glib::ustring((*iter)->label()) : Glib::ustring() ); } @@ -260,7 +260,7 @@ void LayerManager::_rebuild() { if (!_document) // http://sourceforge.net/mailarchive/forum.php?thread_name=5747bce9a7ed077c1b4fc9f0f4f8a5e0%40localhost&forum_name=inkscape-devel return; - std::set layers = _document->getResourceList("layer"); + std::vector layers = _document->getResourceList("layer"); SPObject *root=_desktop->currentRoot(); if ( root ) { @@ -268,7 +268,7 @@ void LayerManager::_rebuild() { std::set layersToAdd; - for ( std::set::const_iterator iter = layers.begin(); iter != layers.end(); ++iter ) { + for ( std::vector::const_iterator iter = layers.begin(); iter != layers.end(); ++iter ) { SPObject *layer = *iter; // Debug::EventTracker tracker(Util::format("Examining %s", layer->label())); bool needsAdd = false; @@ -281,7 +281,7 @@ void LayerManager::_rebuild() { SPGroup* group = SP_GROUP(curr); if ( group->layerMode() == SPGroup::LAYER ) { // If we have a layer-group as the one or a parent, ensure it is listed as a valid layer. - needsAdd &= ( layers.find(curr) != layers.end() ); + needsAdd &= ( std::find(layers.begin(),layers.end(),curr) != layers.end() ); // XML Tree being used here directly while it shouldn't be... if ( (!(group->getRepr())) || (!(group->getRepr()->parent())) ) { needsAdd = false; diff --git a/src/profile-manager.cpp b/src/profile-manager.cpp index 035aa6051..26e1cd72c 100644 --- a/src/profile-manager.cpp +++ b/src/profile-manager.cpp @@ -34,9 +34,8 @@ void ProfileManager::_resourcesChanged() { std::vector newList; if (_doc) { - std::set current = _doc->getResourceList( "iccprofile" ); - for (std::set::const_iterator i = current.begin(); i != current.end(); ++i) - newList.push_back(*i); + std::vector current = _doc->getResourceList( "iccprofile" ); + newList = current; } sort( newList.begin(), newList.end() ); diff --git a/src/resource-manager.cpp b/src/resource-manager.cpp index 18d7c6ba2..09b9364c6 100644 --- a/src/resource-manager.cpp +++ b/src/resource-manager.cpp @@ -179,8 +179,8 @@ std::vector ResourceManagerImpl::findBrokenLinks( SPDocument *doc std::set uniques; if ( doc ) { - std::set images = doc->getResourceList("image"); - for (std::set::const_iterator it = images.begin(); it != images.end(); ++it) { + std::vector images = doc->getResourceList("image"); + for (std::vector::const_iterator it = images.begin(); it != images.end(); ++it) { Inkscape::XML::Node *ir = (*it)->getRepr(); gchar const *href = ir->attribute("xlink:href"); @@ -306,8 +306,8 @@ bool ResourceManagerImpl::fixupBrokenLinks(SPDocument *doc) bool savedUndoState = DocumentUndo::getUndoSensitive(doc); DocumentUndo::setUndoSensitive(doc, true); - std::set images = doc->getResourceList("image"); - for (std::set::const_iterator it = images.begin(); it != images.end(); ++it) { + std::vector images = doc->getResourceList("image"); + for (std::vector::const_iterator it = images.begin(); it != images.end(); ++it) { Inkscape::XML::Node *ir = (*it)->getRepr(); gchar const *href = ir->attribute("xlink:href"); diff --git a/src/sp-guide.cpp b/src/sp-guide.cpp index 17a1a9ff1..c80fc7122 100644 --- a/src/sp-guide.cpp +++ b/src/sp-guide.cpp @@ -264,7 +264,7 @@ void sp_guide_create_guides_around_page(SPDesktop *dt) void sp_guide_delete_all_guides(SPDesktop *dt) { SPDocument *doc=dt->getDocument(); - std::set current = doc->getResourceList("guide"); + std::vector current = doc->getResourceList("guide"); while (!current.empty()){ SPGuide* guide = SP_GUIDE(*(current.begin())); sp_guide_remove(guide); diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index c2c5c5005..12eaba72a 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -492,8 +492,8 @@ void DocumentProperties::linkSelectedProfile() std::vector > pairs = ColorProfile::getProfileFilesWithNames(); Glib::ustring file = pairs[row].first; Glib::ustring name = pairs[row].second; - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; Inkscape::ColorProfile* prof = reinterpret_cast(obj); if (!strcmp(prof->href, file.c_str())) @@ -532,11 +532,11 @@ void DocumentProperties::linkSelectedProfile() void DocumentProperties::populate_linked_profiles_box() { _LinkedProfilesListStore->clear(); - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); if (! current.empty()) { _emb_profiles_observer.set((*(current.begin()))->parent); } - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; Inkscape::ColorProfile* prof = reinterpret_cast(obj); Gtk::TreeModel::Row row = *(_LinkedProfilesListStore->append()); @@ -614,8 +614,8 @@ void DocumentProperties::removeSelectedProfile(){ return; } } - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; Inkscape::ColorProfile* prof = reinterpret_cast(obj); if (!name.compare(prof->name)){ @@ -738,7 +738,7 @@ void DocumentProperties::build_cms() _LinkedProfilesList.signal_button_release_event().connect_notify(sigc::mem_fun(*this, &DocumentProperties::linked_profiles_list_button_release)); cms_create_popup_menu(_LinkedProfilesList, sigc::mem_fun(*this, &DocumentProperties::removeSelectedProfile)); - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "defs" ); + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "defs" ); if (!current.empty()) { _emb_profiles_observer.set((*(current.begin()))->parent); } @@ -975,7 +975,7 @@ void DocumentProperties::build_scripting() #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) //TODO: review this observers code: - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); if (! current.empty()) { _scripts_observer.set((*(current.begin()))->parent); } @@ -1190,8 +1190,8 @@ void DocumentProperties::removeExternalScript(){ } } - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; if (obj) { SPScript* script = dynamic_cast(obj); @@ -1268,8 +1268,8 @@ void DocumentProperties::changeEmbeddedScript(){ } bool voidscript=true; - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; if (id == obj->getId()){ @@ -1313,8 +1313,8 @@ void DocumentProperties::editEmbeddedScript(){ } Inkscape::XML::Document *xml_doc = SP_ACTIVE_DOCUMENT->getReprDoc(); - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; if (id == obj->getId()){ @@ -1337,13 +1337,13 @@ void DocumentProperties::editEmbeddedScript(){ void DocumentProperties::populate_script_lists(){ _ExternalScriptsListStore->clear(); _EmbeddedScriptsListStore->clear(); - std::set current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList( "script" ); if (!current.empty()) { SPObject *obj = *(current.begin()); g_assert(obj != NULL); _scripts_observer.set(obj->parent); } - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; SPScript* script = dynamic_cast(obj); g_assert(script != NULL); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index ce08ed1f7..d3ad5d1da 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1591,11 +1591,11 @@ void FilterEffectsDialog::FilterModifier::update_filters() SPDesktop* desktop = _dialog.getDesktop(); SPDocument* document = desktop->getDocument(); - std::set filters = document->getResourceList( "filter" ); + std::vector filters = document->getResourceList( "filter" ); _model->clear(); - for (std::set::const_iterator it = filters.begin(); it != filters.end(); ++it) { + for (std::vector::const_iterator it = filters.begin(); it != filters.end(); ++it) { Gtk::TreeModel::Row row = *_model->append(); SPFilter* f = SP_FILTER(*it); row[_columns.filter] = f; diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 46e045c14..790c0e5fb 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -266,10 +266,10 @@ void SvgFontsDialog::update_fonts() { SPDesktop* desktop = this->getDesktop(); SPDocument* document = desktop->getDocument(); - std::set fonts = document->getResourceList( "fonts" ); + std::vector fonts = document->getResourceList( "fonts" ); _model->clear(); - for (std::set::const_iterator it = fonts.begin(); it != fonts.end(); ++it) { + for (std::vector::const_iterator it = fonts.begin(); it != fonts.end(); ++it) { Gtk::TreeModel::Row row = *_model->append(); SPFont* f = SP_FONT(*it); row[_columns.spfont] = f; diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index f2298b59b..6577c8d4e 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -171,8 +171,8 @@ static void editGradient( GtkMenuItem */*menuitem*/, gpointer /*user_data*/ ) SPDocument *doc = desktop ? desktop->doc() : 0; if (doc) { std::string targetName(bounceTarget->def.descr); - std::set gradients = doc->getResourceList("gradient"); - for (std::set::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { + std::vector gradients = doc->getResourceList("gradient"); + for (std::vector::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { SPGradient* grad = SP_GRADIENT(*item); if ( targetName == grad->getId() ) { editGradientImpl( desktop, grad ); @@ -192,8 +192,8 @@ void SwatchesPanelHook::convertGradient( GtkMenuItem * /*menuitem*/, gpointer us gint index = GPOINTER_TO_INT(userData); if ( doc && (index >= 0) && (static_cast(index) < popupItems.size()) ) { Glib::ustring targetName = popupItems[index]; - std::set gradients = doc->getResourceList("gradient"); - for (std::set::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { + std::vector gradients = doc->getResourceList("gradient"); + for (std::vector::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { SPGradient* grad = SP_GRADIENT(*item); if ( targetName == grad->getId() ) { @@ -326,9 +326,9 @@ gboolean colorItemHandleButtonPress( GtkWidget* widget, GdkEventButton* event, g SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(wdgt); if ( dtw && dtw->desktop ) { // Pick up all gradients with vectors - std::set gradients = (dtw->desktop->doc())->getResourceList("gradient"); + std::vector gradients = (dtw->desktop->doc())->getResourceList("gradient"); gint index = 0; - for (std::set::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { + for (std::vector::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { SPGradient* grad = SP_GRADIENT(*item); if ( grad->hasStops() && !grad->isSwatch() ) { //gl = g_slist_prepend(gl, curr->data); @@ -925,8 +925,8 @@ static void recalcSwatchContents(SPDocument* doc, std::map &gradMappings) { std::vector newList; - std::set gradients = doc->getResourceList("gradient"); - for (std::set::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { + std::vector gradients = doc->getResourceList("gradient"); + for (std::vector::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { SPGradient* grad = SP_GRADIENT(*item); if ( grad->isSwatch() ) { newList.push_back(SP_GRADIENT(*item)); diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 3e2a2004c..ab29471ed 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1128,8 +1128,8 @@ sp_ui_drag_data_received(GtkWidget *widget, unsigned int b = color.getB(); SPGradient* matches = 0; - std::set gradients = doc->getResourceList("gradient"); - for (std::set::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { + std::vector gradients = doc->getResourceList("gradient"); + for (std::vector::const_iterator item = gradients.begin(); item != gradients.end(); ++item) { SPGradient* grad = SP_GRADIENT(*item); if ( color.descr == grad->getId() ) { if ( grad->hasStops() ) { diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index ec2e69fb3..2e30a48b5 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -687,8 +687,8 @@ void ColorICCSelectorImpl::_profilesChanged(std::string const &name) gtk_combo_box_set_active(combo, 0); int index = 1; - std::set current = SP_ACTIVE_DOCUMENT->getResourceList("iccprofile"); - for (std::set::const_iterator it = current.begin(); it != current.end(); ++it) { + std::vector current = SP_ACTIVE_DOCUMENT->getResourceList("iccprofile"); + for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject *obj = *it; Inkscape::ColorProfile *prof = reinterpret_cast(obj); diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 0cee426b6..164a06910 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1902,8 +1902,8 @@ bool SPDesktopWidget::onFocusInEvent(GdkEventFocus*) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/options/bitmapautoreload/value", true)) { - std::set imageList = (desktop->doc())->getResourceList("image"); - for (std::set::const_iterator it = imageList.begin(); it != imageList.end(); ++it) { + std::vector imageList = (desktop->doc())->getResourceList("image"); + for (std::vector::const_iterator it = imageList.begin(); it != imageList.end(); ++it) { SPImage* image = SP_IMAGE(*it); sp_image_refresh_if_outdated( image ); } diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index 858aa05db..a44e9962e 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -140,8 +140,8 @@ gboolean gr_vector_list(GtkWidget *combo_box, SPDesktop *desktop, bool selection gtk_list_store_clear(store); std::vector gl; - std::set gradients = document->getResourceList( "gradient" ); - for (std::set::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { + std::vector gradients = document->getResourceList( "gradient" ); + for (std::vector::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { SPGradient *grad = SP_GRADIENT(*it); if ( grad->hasStops() && !grad->isSolid() ) { gl.push_back(*it); diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 3aa44c90a..97e65141f 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -298,8 +298,8 @@ static void sp_gvs_rebuild_gui_full(SPGradientVectorSelector *gvs) /* Pick up all gradients with vectors */ GSList *gl = NULL; if (gvs->gr) { - std::set gradients = gvs->gr->document->getResourceList("gradient"); - for (std::set::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { + std::vector gradients = gvs->gr->document->getResourceList("gradient"); + for (std::vector::const_iterator it = gradients.begin(); it != gradients.end(); ++it) { SPGradient* grad = SP_GRADIENT(*it); if ( grad->hasStops() && (grad->isSwatch() == gvs->swatched) ) { gl = g_slist_prepend(gl, *it); diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 602cad3c3..aafa6bd1e 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -844,8 +844,8 @@ ink_pattern_list_get (SPDocument *source) return NULL; GSList *pl = NULL; - std::set patterns = source->getResourceList("pattern"); - for (std::set::const_iterator it = patterns.begin(); it != patterns.end(); ++it) { + std::vector patterns = source->getResourceList("pattern"); + for (std::vector::const_iterator it = patterns.begin(); it != patterns.end(); ++it) { if (SP_PATTERN(*it) == SP_PATTERN(*it)->rootPattern()) { // only if this is a root pattern pl = g_slist_prepend(pl, *it); } diff --git a/src/xml/rebase-hrefs.cpp b/src/xml/rebase-hrefs.cpp index 2bcae5d81..a8ac3b4cc 100644 --- a/src/xml/rebase-hrefs.cpp +++ b/src/xml/rebase-hrefs.cpp @@ -220,8 +220,8 @@ void Inkscape::XML::rebase_hrefs(SPDocument *const doc, gchar const *const new_b * * Note also that Inkscape only supports fragment hrefs (href="#pattern257") for many of these * cases. */ - std::set images = doc->getResourceList("image"); - for (std::set::const_iterator it = images.begin(); it != images.end(); ++it) { + std::vector images = doc->getResourceList("image"); + for (std::vector::const_iterator it = images.begin(); it != images.end(); ++it) { Inkscape::XML::Node *ir = (*it)->getRepr(); std::string uri; -- cgit v1.2.3 From 1bc3cd7e631ba1a7480e77c0ce57e8b7a5cae9c9 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 21 May 2016 20:22:10 +0200 Subject: Remove duplicated code (bzr r14908) --- src/ui/tools/node-tool.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 4149403ea..23aaf6bb1 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -164,11 +164,6 @@ NodeTool::~NodeTool() { if (this->helperpath_tmpitem) { this->desktop->remove_temporary_canvasitem(this->helperpath_tmpitem); } - - if (this->helperpath_tmpitem) { - this->desktop->remove_temporary_canvasitem(this->helperpath_tmpitem); - } - this->_selection_changed_connection.disconnect(); //this->_selection_modified_connection.disconnect(); this->_mouseover_changed_connection.disconnect(); -- cgit v1.2.3